codedFixedValuePointPatchField.H
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration | Website: https://openfoam.org
5  \\ / A nd | Copyright (C) 2012-2026 OpenFOAM Foundation
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8 License
9  This file is part of OpenFOAM.
10 
11  OpenFOAM is free software: you can redistribute it and/or modify it
12  under the terms of the GNU General Public License as published by
13  the Free Software Foundation, either version 3 of the License, or
14  (at your option) any later version.
15 
16  OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
17  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18  FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
19  for more details.
20 
21  You should have received a copy of the GNU General Public License
22  along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
23 
24 Class
25  Foam::codedFixedValuePointPatchField
26 
27 Description
28  Constructs on-the-fly a new boundary condition (derived from
29  fixedValuePointPatchField) which is then used to evaluate.
30 
31  Example:
32  \verbatim
33  movingWall
34  {
35  type codedFixedValue;
36  value uniform 0;
37  name rampedFixedValue; // name of generated bc
38 
39  code
40  #{
41  operator==
42  (
43  vector(0,0,1)
44  *min(10, 0.1*this->time().value())
45  );
46  #};
47 
48  // codeInclude
49  //#{
50  // #include ".H"
51  //#};
52 
53  // codeOptions
54  //#{
55  // -I$(LIB_SRC)/finiteVolume/lnInclude
56  //#};
57  }
58  \endverbatim
59 
60  A special form is if the \c code section is not supplied. In this case
61  the code gets read from a (runTimeModifiable!) dictionary system/codeDict
62  which would have a corresponding entry
63 
64  \verbatim
65  rampedFixedValue
66  {
67  code
68  #{
69  operator==(min(10, 0.1*this->time().value()));
70  #};
71  }
72  \endverbatim
73 
74 See also
75  codedFixedValueFvPatchField
76 
77 SourceFiles
78  codedFixedValuePointPatchField.C
79 
80 \*---------------------------------------------------------------------------*/
81 
82 #ifndef codedFixedValuePointPatchField_H
83 #define codedFixedValuePointPatchField_H
84 
86 #include "codedBase.H"
87 
88 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
89 
90 namespace Foam
91 {
92 
93 /*---------------------------------------------------------------------------*\
94  Class codedFixedValuePointPatchField Declaration
95 \*---------------------------------------------------------------------------*/
96 
97 template<class Type>
99 :
100  public fixedValuePointPatchField<Type>,
101  public codedBase
102 {
103  // Private Data
104 
105  //- Keywords associated with source code
106  static const wordList codeKeys;
107 
108  //- Name of the dictionary variables in the source code
109  static const wordList codeDictVars;
110 
111  // Name of the code options template file
112  static const word codeOptions;
113 
114  // Names of the source files to compile
115  static const wordList compileFiles;
116 
117  // Names of the source files to copy (header files)
118  static const wordList copyFiles;
119 
120  mutable autoPtr<pointPatchField<Type>> redirectPatchFieldPtr_;
121 
122 
123 public:
124 
125  //- Runtime type information
126  TypeName("codedFixedValue");
127 
128 
129  // Constructors
130 
131  //- Construct from patch, internal field and dictionary
133  (
134  const pointPatch&,
136  const dictionary&
137  );
138 
139  //- Construct by mapping given codedFixedValuePointPatchField
140  // onto a new patch
142  (
144  const pointPatch&,
146  const fieldMapper&
147  );
148 
149  //- Disallow copy without setting internal field reference
151  (
153  ) = delete;
154 
155  //- Copy constructor setting internal field reference
157  (
160  );
161 
162  //- Construct and return a clone setting internal field reference
164  (
166  ) const
167  {
169  (
171  (
172  *this,
173  iF
174  )
175  );
176  }
177 
178 
179  // Member Functions
180 
181  //- Get reference to the underlying patch
183 
184  //- Update the coefficients associated with the patch field
185  virtual void updateCoeffs();
186 
187  //- Evaluate the patch field, sets Updated to false
188  virtual void evaluate
189  (
191  );
192 
193  //- Write
194  virtual void write(Ostream&) const;
195 
196 
197  // Member Operators
198 
199  //- Inherit assignment
201 };
202 
203 
204 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
205 
206 } // End namespace Foam
207 
208 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
209 
210 #ifdef NoRepository
212 #endif
213 
214 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
215 
216 #endif
217 
218 // ************************************************************************* //
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:57
commsTypes
Types of communications.
Definition: UPstream.H:65
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
Definition: autoPtr.H:51
Base class for coded functionObjects, fvModels, Function1, Function2.
Definition: codedBase.H:53
Constructs on-the-fly a new boundary condition (derived from fixedValuePointPatchField) which is then...
virtual void evaluate(const Pstream::commsTypes commsType=Pstream::commsTypes::blocking)
Evaluate the patch field, sets Updated to false.
TypeName("codedFixedValue")
Runtime type information.
codedFixedValuePointPatchField(const pointPatch &, const DimensionedField< Type, pointMesh > &, const dictionary &)
Construct from patch, internal field and dictionary.
virtual void write(Ostream &) const
Write.
const pointPatchField< Type > & redirectPatchField() const
Get reference to the underlying patch.
virtual void updateCoeffs()
Update the coefficients associated with the patch field.
A list of keywords followed by any number of values (e.g. words and numbers) or sub-dictionaries.
Definition: dictionary.H:162
Abstract base class for field mapping.
Definition: fieldMapper.H:48
A FixedValue boundary condition for pointField.
Abstract base class for point-mesh patch fields.
autoPtr< pointPatchField< Type > > clone() const
Disallow clone without setting internal field reference.
Basic pointPatch represents a set of points from the mesh.
Definition: pointPatch.H:61
A class for handling words, derived from string.
Definition: word.H:63
Namespace for OpenFOAM.