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-2020 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  //- Disallow copy without setting internal field reference
90  (
92  ) = delete;
93 
94  //- Copy constructor setting internal field reference
96  (
99  );
100 
101  //- Construct and return a clone setting internal field reference
103  (
105  ) const
106  {
108  (
109  new fixedValueFvsPatchField<Type>(*this, iF)
110  );
111  }
112 
113 
114  // Member Functions
115 
116  // Access
117 
118  //- Return true if this patch field fixes a value.
119  // Needed to check if a level has to be specified while solving
120  // Poissons equations.
121  virtual bool fixesValue() const
122  {
123  return true;
124  }
125 
126 
127  // Evaluation functions
128 
129  //- Return the matrix diagonal coefficients corresponding to the
130  // evaluation of the value of this patchField with given weights
132  (
133  const tmp<scalarField>&
134  ) const;
135 
136  //- Return the matrix source coefficients corresponding to the
137  // evaluation of the value of this patchField with given weights
139  (
140  const tmp<scalarField>&
141  ) const;
142 
143  //- Return the matrix diagonal coefficients corresponding to the
144  // evaluation of the gradient of this patchField
145  virtual tmp<Field<Type>> gradientInternalCoeffs() const;
146 
147  //- Return the matrix source coefficients corresponding to the
148  // evaluation of the gradient of this patchField
149  virtual tmp<Field<Type>> gradientBoundaryCoeffs() const;
150 
151 
152  // Member Operators
154  virtual void operator=(const UList<Type>&) {}
156  virtual void operator=(const fvsPatchField<Type>&) {}
157  virtual void operator+=(const fvsPatchField<Type>&) {}
158  virtual void operator-=(const fvsPatchField<Type>&) {}
159  virtual void operator*=(const fvsPatchField<scalar>&) {}
160  virtual void operator/=(const fvsPatchField<scalar>&) {}
162  virtual void operator+=(const Field<Type>&) {}
163  virtual void operator-=(const Field<Type>&) {}
165  virtual void operator*=(const Field<scalar>&) {}
166  virtual void operator/=(const Field<scalar>&) {}
168  virtual void operator=(const Type&) {}
169  virtual void operator+=(const Type&) {}
170  virtual void operator-=(const Type&) {}
171  virtual void operator*=(const scalar) {}
172  virtual void operator/=(const scalar) {}
173 };
174 
175 
176 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
177 
178 } // End namespace Foam
179 
180 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
181 
182 #ifdef NoRepository
183  #include "fixedValueFvsPatchField.C"
184 #endif
185 
186 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
187 
188 #endif
189 
190 // ************************************************************************* //
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:156
Foam::fixedValueFvsPatchField.
virtual void operator+=(const fvsPatchField< Type > &)
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
Definition: fvPatch.H:63
fixedValueFvsPatchField(const fvPatch &, const DimensionedField< Type, surfaceMesh > &)
Construct from patch and internal field.
Pre-declare SubField and related Field type.
Definition: Field.H:56
tmp< fvsPatchField< Type > > clone() const
Disallow clone without setting internal field reference.
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.