Loading...
Searching...
No Matches
LambVector.H
Go to the documentation of this file.
1/*---------------------------------------------------------------------------*\
2 ========= |
3 \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4 \\ / O peration |
5 \\ / A nd | www.openfoam.com
6 \\/ M anipulation |
7-------------------------------------------------------------------------------
8 Copyright (C) 2019-2020 OpenCFD Ltd.
9-------------------------------------------------------------------------------
10License
11 This file is part of OpenFOAM.
12
13 OpenFOAM is free software: you can redistribute it and/or modify it
14 under the terms of the GNU General Public License as published by
15 the Free Software Foundation, either version 3 of the License, or
16 (at your option) any later version.
17
18 OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
19 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
20 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
21 for more details.
22
23 You should have received a copy of the GNU General Public License
24 along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
25
26Class
27 Foam::functionObjects::LambVector
28
29Group
30 grpFieldFunctionObjects
31
32Description
33 Computes Lamb vector, i.e. the cross product of vorticity and velocity.
34 Calculation of the divergence of the Lamb vector can be performed by using
35 \c div function object on this \c LambVector function object.
36
37 The motivation of the function object is the literature-reported
38 quantitative connection between the Lamb vector (divergence) and
39 the spatially localised instantaneous fluid motions, e.g. high- and
40 low-momentum fluid parcels, which possess considerable level of capacity
41 to affect the rate of change of momentum, and to generate forces such as
42 drag.
43
44 Operands:
45 \table
46 Operand | Type | Location
47 input | volVectorField | <time>/inputField
48 output file | - | -
49 output field | volVectorField | <time>/outputField
50 \endtable
51
52Usage
53 Minimal example by using \c system/controlDict.functions:
54 \verbatim
55 LambVectorFO
56 {
57 // Mandatory entries
58 type LambVector;
59 libs (fieldFunctionObjects);
60
61 // Inherited entries
62 ...
63 }
64 \endverbatim
65
66 where the entries mean:
67 \table
68 Property | Description | Type | Reqd | Deflt
69 type | Type name: LambVector | word | yes | -
70 libs | Library name: fieldFunctionObjects | word | yes | -
71 \endtable
72
73 The inherited entries are elaborated in:
74 - \link fieldExpression.H \endlink
75
76Note
77 To execute \c LambVector function object on an input <field>, a numerical
78 scheme should be defined for \c div(LambVector) in
79 \c system/fvSchemes.divSchemes.
80
81SourceFiles
82 LambVector.C
83
84\*---------------------------------------------------------------------------*/
85
86#ifndef Foam_functionObjects_LambVector_H
87#define Foam_functionObjects_LambVector_H
88
89#include "fieldExpression.H"
90
91// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
92
93namespace Foam
94{
95namespace functionObjects
96{
97
98/*---------------------------------------------------------------------------*\
99 Class LambVector Declaration
100\*---------------------------------------------------------------------------*/
101
102class LambVector
103:
104 public fieldExpression
105{
106 // Private Member Functions
107
108 //- Calculate the LambVector field and return true if successful
109 virtual bool calc();
110
111
112public:
113
114 //- Runtime type information
115 TypeName("LambVector");
116
117
118 // Constructors
119
120 //- Construct from name, Time and dictionary
122 (
123 const word& name,
124 const Time& runTime,
125 const dictionary& dict
126 );
127
128 //- No copy construct
129 LambVector(const LambVector&) = delete;
130
131 //- No copy assignment
132 void operator=(const LambVector&) = delete;
133
134
135 //- Destructor
136 virtual ~LambVector() = default;
137};
138
139
140// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
141
142} // End namespace functionObjects
143} // End namespace Foam
144
145// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
146
147#endif
149// ************************************************************************* //
Class to control time during OpenFOAM simulations that is also the top-level objectRegistry.
Definition Time.H:75
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Definition dictionary.H:133
const word & name() const noexcept
Return the name of this functionObject.
Computes Lamb vector, i.e. the cross product of vorticity and velocity. Calculation of the divergence...
Definition LambVector.H:134
void operator=(const LambVector &)=delete
No copy assignment.
virtual ~LambVector()=default
Destructor.
TypeName("LambVector")
Runtime type information.
LambVector(const word &name, const Time &runTime, const dictionary &dict)
Construct from name, Time and dictionary.
Definition LambVector.C:54
LambVector(const LambVector &)=delete
No copy construct.
Intermediate class for handling field expression function objects (e.g. blendingFactor etc....
fieldExpression(const word &name, const Time &runTime, const dictionary &dict, const word &fieldName=word::null, const word &resultName=word::null)
Construct from name, Time and dictionary.
virtual bool calc()=0
Calculate the components of the field and return true if successful.
A class for handling words, derived from Foam::string.
Definition word.H:66
engineTime & runTime
Function objects are OpenFOAM utilities to ease workflow configurations and enhance workflows.
Namespace for OpenFOAM.
word name(const expressions::valueTypeCode typeCode)
A word representation of a valueTypeCode. Empty for expressions::valueTypeCode::INVALID.
Definition exprTraits.C:127
dictionary dict
#define TypeName(TypeNameString)
Declare a ClassName() with extra virtual type info.
Definition typeInfo.H:68