fixedValueFvsPatchField.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) 2011-2018 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::fixedValueFvsPatchField
26 
27 Description
28  Foam::fixedValueFvsPatchField
29 
30 SourceFiles
31  fixedValueFvsPatchField.C
32 
33 \*---------------------------------------------------------------------------*/
34 
35 #ifndef fixedValueFvsPatchField_H
36 #define fixedValueFvsPatchField_H
37 
38 #include "fvsPatchField.H"
39 
40 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
41 
42 namespace Foam
43 {
44 
45 /*---------------------------------------------------------------------------*\
46  Class fixedValueFvsPatch Declaration
47 \*---------------------------------------------------------------------------*/
48 
49 template<class Type>
51 :
52  public fvsPatchField<Type>
53 {
54 
55 public:
56 
57  //- Runtime type information
58  TypeName("fixedValue");
59 
60 
61  // Constructors
62 
63  //- Construct from patch and internal field
65  (
66  const fvPatch&,
68  );
69 
70  //- Construct from patch, internal field and dictionary
72  (
73  const fvPatch&,
75  const dictionary&
76  );
77 
78  //- Construct by mapping the given fixedValueFvsPatchField<Type>
79  // onto a new patch
81  (
83  const fvPatch&,
85  const fvPatchFieldMapper&
86  );
87 
88  //- Construct as copy
90  (
92  );
93 
94  //- Construct and return a clone
95  virtual tmp<fvsPatchField<Type>> clone() const
96  {
98  (
100  );
101  }
102 
103  //- Construct as copy setting internal field reference
105  (
108  );
109 
110  //- Construct and return a clone setting internal field reference
112  (
114  ) const
115  {
117  (
118  new fixedValueFvsPatchField<Type>(*this, iF)
119  );
120  }
121 
122 
123  // Member functions
124 
125  // Access
126 
127  //- Return true if this patch field fixes a value.
128  // Needed to check if a level has to be specified while solving
129  // Poissons equations.
130  virtual bool fixesValue() const
131  {
132  return true;
133  }
134 
135 
136  // Evaluation functions
137 
138  //- Return the matrix diagonal coefficients corresponding to the
139  // evaluation of the value of this patchField with given weights
141  (
142  const tmp<scalarField>&
143  ) const;
144 
145  //- Return the matrix source coefficients corresponding to the
146  // evaluation of the value of this patchField with given weights
148  (
149  const tmp<scalarField>&
150  ) const;
151 
152  //- Return the matrix diagonal coefficients corresponding to the
153  // evaluation of the gradient of this patchField
154  virtual tmp<Field<Type>> gradientInternalCoeffs() const;
155 
156  //- Return the matrix source coefficients corresponding to the
157  // evaluation of the gradient of this patchField
158  virtual tmp<Field<Type>> gradientBoundaryCoeffs() const;
159 
160 
161  // Member operators
163  virtual void operator=(const UList<Type>&) {}
165  virtual void operator=(const fvsPatchField<Type>&) {}
166  virtual void operator+=(const fvsPatchField<Type>&) {}
167  virtual void operator-=(const fvsPatchField<Type>&) {}
168  virtual void operator*=(const fvsPatchField<scalar>&) {}
169  virtual void operator/=(const fvsPatchField<scalar>&) {}
171  virtual void operator+=(const Field<Type>&) {}
172  virtual void operator-=(const Field<Type>&) {}
174  virtual void operator*=(const Field<scalar>&) {}
175  virtual void operator/=(const Field<scalar>&) {}
177  virtual void operator=(const Type&) {}
178  virtual void operator+=(const Type&) {}
179  virtual void operator-=(const Type&) {}
180  virtual void operator*=(const scalar) {}
181  virtual void operator/=(const scalar) {}
182 };
183 
184 
185 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
186 
187 } // End namespace Foam
188 
189 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
190 
191 #ifdef NoRepository
192  #include "fixedValueFvsPatchField.C"
193 #endif
194 
195 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
196 
197 #endif
198 
199 // ************************************************************************* //
virtual tmp< fvsPatchField< Type > > clone() const
Construct and return a clone.
virtual void operator/=(const fvsPatchField< scalar > &)
A list of keyword definitions, which are a keyword followed by any number of values (e...
Definition: dictionary.H:137
Foam::fixedValueFvsPatchField.
virtual void operator+=(const fvsPatchField< Type > &)
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
Definition: fvPatch.H:61
fixedValueFvsPatchField(const fvPatch &, const DimensionedField< Type, surfaceMesh > &)
Construct from patch and internal field.
Pre-declare SubField and related Field type.
Definition: Field.H:57
Foam::fvPatchFieldMapper.
virtual void operator=(const UList< Type > &)
virtual tmp< Field< Type > > valueInternalCoeffs(const tmp< scalarField > &) const
Return the matrix diagonal coefficients corresponding to the.
virtual void operator-=(const fvsPatchField< Type > &)
virtual tmp< Field< Type > > gradientInternalCoeffs() const
Return the matrix diagonal coefficients corresponding to the.
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
virtual bool fixesValue() const
Return true if this patch field fixes a value.
virtual tmp< Field< Type > > gradientBoundaryCoeffs() const
Return the matrix source coefficients corresponding to the.
A class for managing temporary objects.
Definition: PtrList.H:53
TypeName("fixedValue")
Runtime type information.
An abstract base class with a fat-interface to all derived classes covering all possible ways in whic...
Definition: fvsPatchField.H:65
virtual void operator*=(const fvsPatchField< scalar > &)
Namespace for OpenFOAM.
virtual tmp< Field< Type > > valueBoundaryCoeffs(const tmp< scalarField > &) const
Return the matrix source coefficients corresponding to the.