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 -------------------------------------------------------------------------------
10 License
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 
26 Class
27  Foam::functionObjects::LambVector
28 
29 Group
30  grpFieldFunctionObjects
31 
32 Description
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 | $FOAM_CASE/<time>/<inpField>
48  output file | - | -
49  output field | volVectorField | $FOAM_CASE/<time>/<outField>
50  \endtable
51 
52 Usage
53  Minimal example by using \c system/controlDict.functions:
54  \verbatim
55  LambVector1
56  {
57  // Mandatory entries (unmodifiable)
58  type LambVector;
59  libs (fieldFunctionObjects);
60 
61  // Optional (inherited) entries
62  ...
63  }
64  \endverbatim
65 
66  where the entries mean:
67  \table
68  Property | Description | Type | Req'd | Dflt
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 functionObject.H \endlink
75  - \link fieldExpression.H \endlink
76 
77  Minimal example by using the \c postProcess utility:
78  \verbatim
79  postProcess -func LambVector
80  \endverbatim
81 
82 Note
83  To execute \c LambVector function object on an input <field>, a numerical
84  scheme should be defined for \c div(LambVector) in
85  \c system/fvSchemes.divSchemes.
86 
87 See also
88  - Foam::functionObject
89  - Foam::functionObjects::fvMeshFunctionObject
90  - Foam::functionObjects::fieldExpression
91  - ExtendedCodeGuide::functionObjects::field::LambVector
92 
93 SourceFiles
94  LambVector.C
95 
96 \*---------------------------------------------------------------------------*/
97 
98 #ifndef functionObjects_LambVector_H
99 #define functionObjects_LambVector_H
100 
101 #include "fieldExpression.H"
102 
103 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
104 
105 namespace Foam
106 {
107 namespace functionObjects
108 {
109 
110 /*---------------------------------------------------------------------------*\
111  Class LambVector Declaration
112 \*---------------------------------------------------------------------------*/
113 
114 class LambVector
115 :
116  public fieldExpression
117 {
118  // Private Member Functions
119 
120  //- Calculate the LambVector field and return true if successful
121  virtual bool calc();
122 
123 
124 public:
125 
126  //- Runtime type information
127  TypeName("LambVector");
128 
129 
130  // Constructors
131 
132  //- Construct from Time and dictionary
133  LambVector
134  (
135  const word& name,
136  const Time& runTime,
137  const dictionary& dict
138  );
139 
140  //- No copy construct
141  LambVector(const LambVector&) = delete;
142 
143  //- No copy assignment
144  void operator=(const LambVector&) = delete;
145 
146 
147  //- Destructor
148  virtual ~LambVector() = default;
149 };
150 
151 
152 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
153 
154 } // End namespace functionObjects
155 } // End namespace Foam
156 
157 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
158 
159 #endif
160 
161 // ************************************************************************* //
runTime
engineTime & runTime
Definition: createEngineTime.H:13
Foam::Time
Class to control time during OpenFOAM simulations that is also the top-level objectRegistry.
Definition: Time.H:73
Foam::word
A class for handling words, derived from Foam::string.
Definition: word.H:65
Foam::functionObjects::LambVector
Computes Lamb vector, i.e. the cross product of vorticity and velocity. Calculation of the divergence...
Definition: LambVector.H:147
dict
dictionary dict
Definition: searchingEngine.H:14
Foam::dictionary
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Definition: dictionary.H:123
Foam
Namespace for OpenFOAM.
Definition: atmBoundaryLayer.C:33
Foam::functionObject::name
const word & name() const noexcept
Return the name of this functionObject.
Definition: functionObject.C:143
Foam::functionObjects::fieldExpression
Intermediate class for handling field expression function objects (e.g. blendingFactor etc....
Definition: fieldExpression.H:120
Foam::functionObjects::LambVector::~LambVector
virtual ~LambVector()=default
Destructor.
Foam::functionObjects::LambVector::operator=
void operator=(const LambVector &)=delete
No copy assignment.
fieldExpression.H
Foam::functionObjects::LambVector::LambVector
LambVector(const word &name, const Time &runTime, const dictionary &dict)
Construct from Time and dictionary.
Definition: LambVector.C:61
Foam::functionObjects::LambVector::TypeName
TypeName("LambVector")
Runtime type information.