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-------------------------------------------------------------------------------
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::exprMixedFvPatchField
28
29Description
30 A mixed boundary condition with expressions.
31
32Usage
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 \endtable
39
40Note
41 For fixed-value boundary conditions, can also just use
42 uniformFixedValueFvPatchField with an expression for the
43 PatchFunction1, or a exprMixedFvPatchField.
44
45 For gradient boundary conditions, can also just use
46 uniformFixedGradientFvPatchField with an expression for the
47 PatchFunction1.
48
49SourceFiles
50 exprMixedFvPatchField.C
51
52\*---------------------------------------------------------------------------*/
53
54#ifndef exprMixedFvPatchField_H
55#define exprMixedFvPatchField_H
56
57#include "mixedFvPatchField.H"
58#include "patchExprFieldBase.H"
59#include "patchExprDriver.H"
60
61// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
62
63namespace Foam
64{
65
66/*---------------------------------------------------------------------------*\
67 Class exprMixedFvPatchField Declaration
68\*---------------------------------------------------------------------------*/
69
70template<class Type>
71class exprMixedFvPatchField
72:
73 public mixedFvPatchField<Type>,
74 public expressions::patchExprFieldBase
75{
76 //- The parent boundary condition type
77 typedef mixedFvPatchField<Type> parent_bctype;
78
79
80protected:
81
82 // Protected Data
83
84 //- Dictionary contents for the boundary condition
85 dictionary dict_;
86
87 //- The expression driver
88 expressions::patchExpr::parseDriver driver_;
89
91 // Protected Member Functions
92
93 //- Set debug ON if "debug" is enabled
94 void setDebug();
95
96
97public:
98
99 //- Runtime type information
100 TypeName("exprMixed");
101
102
103 // Constructors
105 //- Construct from patch and internal field
108 const fvPatch& p,
110 );
111
112 //- Construct from patch, internal field and dictionary
114 (
115 const fvPatch&,
117 const dictionary& dict
118 );
120 //- Construct by mapping onto a new patch
122 (
124 const fvPatch&,
126 const fvPatchFieldMapper&
127 );
128
129 //- Construct as copy
131 (
133 );
134
135 //- Construct and return a clone
136 virtual tmp<fvPatchField<Type>> clone() const
137 {
139 (
141 );
142 }
143
144 //- Construct as copy setting internal field reference
146 (
149 );
150
151 //- Construct and return a clone setting internal field reference
153 (
155 ) const
156 {
158 (
159 new exprMixedFvPatchField<Type>(*this, iF)
160 );
161 }
162
163
164 // Member Functions
165
166 //- Update the coefficients associated with the patch field
167 virtual void updateCoeffs();
168
169 //- Write
170 virtual void write(Ostream& os) const;
172
173// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
174
175} // End namespace Foam
176
177// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
178
179#ifdef NoRepository
180 #include "exprMixedFvPatchField.C"
181#endif
182
183// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
184
185#endif
186
187// ************************************************************************* //
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
Definition: Ostream.H:62
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Definition: dictionary.H:126
A mixed boundary condition with expressions.
TypeName("exprMixed")
Runtime type information.
dictionary dict_
Dictionary contents for the boundary condition.
expressions::patchExpr::parseDriver driver_
The expression driver.
virtual void updateCoeffs()
Update the coefficients associated with the patch field.
void setDebug()
Set debug ON if "debug" is enabled.
virtual tmp< fvPatchField< Type > > clone() const
Construct and return a clone.
virtual tmp< fvPatchField< Type > > clone(const DimensionedField< Type, volMesh > &iF) const
Construct and return a clone setting internal field reference.
Base class for managing patches with expressions. The expected input supports value,...
A FieldMapper for finite-volume patch fields.
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
Definition: fvPatch.H:71
This boundary condition provides a base class for 'mixed' type boundary conditions,...
A class for managing temporary objects.
Definition: tmp.H:65
volScalarField & p
OBJstream os(runTime.globalPath()/outputName)
Namespace for OpenFOAM.
runTime write()
dictionary dict
#define TypeName(TypeNameString)
Declare a ClassName() with extra virtual type info.
Definition: typeInfo.H:73