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 | $FOAM_CASE/<time>/<inpField>
48 output file | - | -
49 output field | volVectorField | $FOAM_CASE/<time>/<outField>
50 \endtable
51
52Usage
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
82Note
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
87See also
88 - Foam::functionObject
89 - Foam::functionObjects::fvMeshFunctionObject
90 - Foam::functionObjects::fieldExpression
91 - ExtendedCodeGuide::functionObjects::field::LambVector
92
93SourceFiles
94 LambVector.C
95
96\*---------------------------------------------------------------------------*/
97
98#ifndef functionObjects_LambVector_H
99#define functionObjects_LambVector_H
100
101#include "fieldExpression.H"
102
103// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
104
105namespace Foam
106{
107namespace functionObjects
108{
109
110/*---------------------------------------------------------------------------*\
111 Class LambVector Declaration
112\*---------------------------------------------------------------------------*/
113
114class 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
124public:
125
126 //- Runtime type information
127 TypeName("LambVector");
128
129
130 // Constructors
131
132 //- Construct from Time and dictionary
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
161// ************************************************************************* //
Class to control time during OpenFOAM simulations that is also the top-level objectRegistry.
Definition: Time.H:80
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Definition: dictionary.H:126
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:150
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 Time and dictionary.
Definition: LambVector.C:61
LambVector(const LambVector &)=delete
No copy construct.
Intermediate class for handling field expression function objects (e.g. blendingFactor etc....
A class for handling words, derived from Foam::string.
Definition: word.H:68
engineTime & runTime
Namespace for OpenFOAM.
dictionary dict
#define TypeName(TypeNameString)
Declare a ClassName() with extra virtual type info.
Definition: typeInfo.H:73