adjointFarFieldTMVar2FvPatchScalarField.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) 2014-2022 PCOpt/NTUA
9  Copyright (C) 2014-2022 FOSS GP
10 -------------------------------------------------------------------------------
11 License
12  This file is part of OpenFOAM.
13 
14  OpenFOAM is free software: you can redistribute it and/or modify it
15  under the terms of the GNU General Public License as published by
16  the Free Software Foundation, either version 3 of the License, or
17  (at your option) any later version.
18 
19  OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
20  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
21  FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
22  for more details.
23 
24  You should have received a copy of the GNU General Public License
25  along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
26 
27 
28 Class
29  Foam::adjointFarFieldTMVar2FvPatchScalarField
30 
31 Description
32 
33 SourceFiles
34  adjointFarFieldTMVar2FvPatchScalarField.C
35 
36 \*---------------------------------------------------------------------------*/
37 
38 #ifndef adjointFarFieldTMVar2FvPatchScalarField_H
39 #define adjointFarFieldTMVar2FvPatchScalarField_H
40 
43 
44 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
45 
46 namespace Foam
47 {
48 
49 /*---------------------------------------------------------------------------*\
50  Class adjointFarFieldTMVar2FvPatch Declaration
51 \*---------------------------------------------------------------------------*/
52 
54 :
55  public fixedValueFvPatchScalarField,
57 {
58 public:
59 
60  //- Runtime type information
61  TypeName("adjointFarFieldTMVar2");
62 
63 
64  // Constructors
65 
66  //- Construct from patch and internal field
68  (
69  const fvPatch&,
71  );
72 
73  //- Construct from patch, internal field and dictionary
75  (
76  const fvPatch&,
78  const dictionary&
79  );
80 
81  //- Construct by mapping given adjointFarFieldTMVar2FvPatchScalarField
82  //- onto a new patch
84  (
86  const fvPatch&,
88  const fvPatchFieldMapper&
89  );
90 
91  //- Construct as copy setting internal field reference
93  (
96  );
97 
98  //- Return a clone
99  virtual tmp<fvPatchField<scalar>> clone() const
100  {
101  return fvPatchField<scalar>::Clone(*this);
102  }
103 
104  //- Clone with an internal field reference
106  (
108  ) const
109  {
110  return fvPatchField<scalar>::Clone(*this, iF);
111  }
112 
113 
114  // Member functions
116  // Evaluation functions
117 
118  //- Update the coefficients associated with the patch field
119  virtual void updateCoeffs();
120 
121  //- Return the matrix diagonal coefficients corresponding to the
122  //- evaluation of the value of this patchField with given weights
124  (
125  const tmp<scalarField>&
126  ) const;
127 
128  //- Return the matrix source coefficients corresponding to the
129  //- evaluation of the value of this patchField with given weights
131  (
132  const tmp<scalarField>&
133  ) const;
134 
135  //- Write
136  virtual void write(Ostream&) const;
137 };
138 
139 
140 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
141 
142 } // End namespace Foam
143 
144 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
145 
146 #endif
147 
148 // ************************************************************************* //
A list of keyword definitions, which are a keyword followed by a number of values (eg...
Definition: dictionary.H:129
virtual void updateCoeffs()
Update the coefficients associated with the patch field.
virtual tmp< fvPatchField< scalar > > clone() const
Return a clone.
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
Definition: fvPatch.H:70
virtual tmp< Field< scalar > > valueBoundaryCoeffs(const tmp< scalarField > &) const
Return the matrix source coefficients corresponding to the evaluation of the value of this patchField...
adjointFarFieldTMVar2FvPatchScalarField(const fvPatch &, const DimensionedField< scalar, volMesh > &)
Construct from patch and internal field.
static tmp< fvPatchField< Type > > Clone(const DerivedPatchField &pf, Args &&... args)
Clone a patch field, optionally with internal field reference etc.
Definition: fvPatchField.H:597
A FieldMapper for finite-volume patch fields.
virtual tmp< Field< scalar > > valueInternalCoeffs(const tmp< scalarField > &) const
Return the matrix diagonal coefficients corresponding to the evaluation of the value of this patchFie...
An Ostream is an abstract base class for all output systems (streams, files, token lists...
Definition: Ostream.H:56
TypeName("adjointFarFieldTMVar2")
Runtime type information.
Base class for solution control classes.
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
A class for managing temporary objects.
Definition: HashPtrTable.H:50
Namespace for OpenFOAM.