exprMixedFvPatchField.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-2021 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::exprMixedFvPatchField
28 
29 Description
30  A mixed boundary condition with expressions.
31 
32 Usage
33  \table
34  Property | Description | Required | Default
35  valueExpr | expression for uniformValue | partly | 0
36  gradientExpr | expression for uniformGradient | partly | 0
37  fractionExpr | expression for valueFraction | partly | depends
38  value | initial field value | optional |
39  \endtable
40 
41 Note
42  The \c value entry (optional) is used for the initial values.
43  Otherwise uses some heuristics of other entries
44  (not properly documented now since this boundary condition is deprecated).
45 
46  This boundary condition is deprecated in favour of
47  Foam::uniformMixedFvPatchField,
48  Foam::uniformFixedValueFvPatchField,
49  Foam::uniformFixedGradientFvPatchField
50  with expression entries.
51 
52 SourceFiles
53  exprMixedFvPatchField.C
54 
55 \*---------------------------------------------------------------------------*/
56 
57 #ifndef FoamDeprecated_exprMixedFvPatchField_H
58 #define FoamDeprecated_exprMixedFvPatchField_H
59 
60 #include "mixedFvPatchField.H"
61 #include "patchExprFieldBase.H"
62 #include "patchExprDriver.H"
63 
64 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
65 
66 namespace Foam
67 {
68 
69 /*---------------------------------------------------------------------------*\
70  Class exprMixedFvPatchField Declaration
71 \*---------------------------------------------------------------------------*/
72 
73 template<class Type>
74 class exprMixedFvPatchField
75 :
76  public mixedFvPatchField<Type>,
77  public expressions::patchExprFieldBase
78 {
79  //- The parent boundary condition type
80  typedef mixedFvPatchField<Type> parent_bctype;
81 
82 
83 protected:
84 
85  // Protected Data
86 
87  //- Dictionary contents for the boundary condition
89 
90  //- The expression driver
91  expressions::patchExpr::parseDriver driver_;
92 
93 
94  // Protected Member Functions
95 
96  //- Set debug ON if "debug" is enabled
97  void setDebug();
98 
99 
100 public:
101 
102  //- Runtime type information
103  TypeName("exprMixed");
104 
105 
106  // Constructors
107 
108  //- Construct from patch and internal field
110  (
111  const fvPatch& p,
113  );
114 
115  //- Construct from patch, internal field and dictionary
117  (
118  const fvPatch&,
120  const dictionary& dict
121  );
122 
123  //- Construct by mapping onto a new patch
125  (
127  const fvPatch&,
129  const fvPatchFieldMapper&
130  );
131 
132  //- Construct as copy
134  (
136  );
137 
138  //- Construct and return a clone
139  virtual tmp<fvPatchField<Type>> clone() const
140  {
141  return tmp<fvPatchField<Type>>
142  (
143  new exprMixedFvPatchField<Type>(*this)
144  );
145  }
146 
147  //- Construct as copy setting internal field reference
149  (
152  );
153 
154  //- Construct and return a clone setting internal field reference
156  (
158  ) const
159  {
160  return tmp<fvPatchField<Type>>
161  (
162  new exprMixedFvPatchField<Type>(*this, iF)
163  );
164  }
165 
166 
167  // Member Functions
168 
169  //- Update the coefficients associated with the patch field
170  virtual void updateCoeffs();
171 
172  //- Write
173  virtual void write(Ostream& os) const;
174 };
175 
176 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
177 
178 } // End namespace Foam
180 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
181 
182 #ifdef NoRepository
183  #include "exprMixedFvPatchField.C"
184 #endif
185 
186 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
187 
188 #endif
189 
190 // ************************************************************************* //
dictionary dict
A list of keyword definitions, which are a keyword followed by a number of values (eg...
Definition: dictionary.H:129
A mixed boundary condition with expressions.
TypeName("exprMixed")
Runtime type information.
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
Definition: fvPatch.H:70
expressions::patchExpr::parseDriver driver_
The expression driver.
virtual void write(Ostream &os) const
Write.
dictionary dict_
Dictionary contents for the boundary condition.
virtual tmp< fvPatchField< Type > > clone() const
Construct and return a clone.
exprMixedFvPatchField(const fvPatch &p, const DimensionedField< Type, volMesh > &)
Construct from patch and internal field.
virtual void updateCoeffs()
Update the coefficients associated with the patch field.
A FieldMapper for finite-volume patch fields.
OBJstream os(runTime.globalPath()/outputName)
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
Definition: areaFieldsFwd.H:42
volScalarField & p
A class for managing temporary objects.
Definition: HashPtrTable.H:50
void setDebug()
Set debug ON if "debug" is enabled.
Namespace for OpenFOAM.