adjointOutletNuaTildaFluxFvPatchScalarField.C
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) 2007-2020 PCOpt/NTUA
9 Copyright (C) 2013-2020 FOSS GP
10 Copyright (C) 2019 OpenCFD Ltd.
11-------------------------------------------------------------------------------
12License
13 This file is part of OpenFOAM.
14
15 OpenFOAM is free software: you can redistribute it and/or modify it
16 under the terms of the GNU General Public License as published by
17 the Free Software Foundation, either version 3 of the License, or
18 (at your option) any later version.
19
20 OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
21 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
22 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
23 for more details.
24
25 You should have received a copy of the GNU General Public License
26 along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
27
28\*---------------------------------------------------------------------------*/
29
32#include "fvPatchFieldMapper.H"
33#include "volFields.H"
34
35// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
36
37namespace Foam
38{
39
40// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
41
42adjointOutletNuaTildaFluxFvPatchScalarField::
43adjointOutletNuaTildaFluxFvPatchScalarField
44(
45 const fvPatch& p,
47)
48:
49 fixedValueFvPatchScalarField(p, iF),
51{}
52
53
54adjointOutletNuaTildaFluxFvPatchScalarField::
55adjointOutletNuaTildaFluxFvPatchScalarField
56(
58 const fvPatch& p,
60 const fvPatchFieldMapper& mapper
61)
62:
63 fixedValueFvPatchScalarField(ptf, p, iF, mapper),
64 adjointScalarBoundaryCondition(p, iF, ptf.adjointSolverName_)
65{}
66
67
68adjointOutletNuaTildaFluxFvPatchScalarField::
69adjointOutletNuaTildaFluxFvPatchScalarField
70(
71 const fvPatch& p,
73 const dictionary& dict
74)
75:
76 fixedValueFvPatchScalarField(p, iF),
77 adjointScalarBoundaryCondition(p, iF, dict.get<word>("solverName"))
78{
80 (
81 scalarField("value", dict, p.size())
82 );
83}
84
85
86adjointOutletNuaTildaFluxFvPatchScalarField::
87adjointOutletNuaTildaFluxFvPatchScalarField
88(
91)
92:
93 fixedValueFvPatchScalarField(tppsf, iF),
95{}
96
97
98// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
99
101{
102 if (updated())
103 {
104 return;
105 }
106
107 operator == (scalarField(patch().size(), Zero));
108
109 fixedValueFvPatchScalarField::updateCoeffs();
110}
111
112
115(
116 const tmp<scalarField>&
117) const
118{
119 return tmp<Field<scalar>>::New(this->size(), Zero);
120}
121
122
125(
126 const tmp<scalarField>&
127) const
128{
129 return tmp<Field<scalar>>::New(this->size(), Zero);
130}
131
132
135{
136 return tmp<Field<scalar>>::New(this->size(), Zero);
137}
138
139
142{
143 return tmp<Field<scalar>>::New(this->size(), Zero);
144}
145
146
148{
150 writeEntry("value", os);
151 os.writeEntry("solverName", adjointSolverName_);
152}
153
154
155// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
156
158(
161);
162
163// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
164
165} // End namespace Foam
166
167// ************************************************************************* //
Macros for easy insertion into run-time selection tables.
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
Ostream & writeEntry(const keyType &key, const T &value)
Write a keyword/value entry.
Definition: Ostream.H:239
void size(const label n)
Older name for setAddressableSize.
Definition: UList.H:114
Base class for solution control classes.
word adjointSolverName_
adjointSolver name corresponding to field
virtual tmp< Field< scalar > > valueBoundaryCoeffs(const tmp< scalarField > &) const
virtual tmp< Field< scalar > > valueInternalCoeffs(const tmp< scalarField > &) const
virtual void updateCoeffs()
Update the coefficients associated with the patch field.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Definition: dictionary.H:126
virtual bool write()
Write the output fields.
A FieldMapper for finite-volume patch fields.
Abstract base class with a fat-interface to all derived classes covering all possible ways in which t...
Definition: fvPatchField.H:82
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
Definition: fvPatch.H:71
A class for managing temporary objects.
Definition: tmp.H:65
A class for handling words, derived from Foam::string.
Definition: word.H:68
volScalarField & p
OBJstream os(runTime.globalPath()/outputName)
#define makePatchTypeField(PatchTypeField, typePatchTypeField)
Definition: fvPatchField.H:676
Namespace for OpenFOAM.
Field< scalar > scalarField
Specialisation of Field<T> for scalar.
tmp< faMatrix< Type > > operator==(const faMatrix< Type > &, const faMatrix< Type > &)
static constexpr const zero Zero
Global zero (0)
Definition: zero.H:131
tmp< DimensionedField< TypeR, GeoMesh > > New(const tmp< DimensionedField< TypeR, GeoMesh > > &tdf1, const word &name, const dimensionSet &dimensions)
Global function forwards to reuseTmpDimensionedField::New.
dictionary dict