adjointWallVelocityFvPatchVectorField.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) 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
29Class
30 Foam::adjointWallVelocityFvPatchVectorField
31
32Description
33 Adjoint wall velocity boundary condition. If nutUSpaldingWallFunction is
34 employed in the flow solution, the corresponding adjoint wall function is
35 used. Otherwise, the typical low-Re boundary condition is applied
36
37 Reference:
38 \verbatim
39 For both the low- and high-Re variants
40
41 Papoutsis-Kiachagias, E. M., & Giannakoglou, K. C. (2014).
42 Continuous Adjoint Methods for Turbulent Flows, Applied to Shape
43 and Topology Optimization: Industrial Applications.
44 Archives of Computational Methods in Engineering, 23(2), 255-299.
45 http://doi.org/10.1007/s11831-014-9141-9
46 \endverbatim
47
48SourceFiles
49 adjointWallVelocityFvPatchVectorField.C
50
51\*---------------------------------------------------------------------------*/
52
53#ifndef adjointWallVelocityFvPatchVectorField_H
54#define adjointWallVelocityFvPatchVectorField_H
55
56#include "fvPatchFields.H"
59
60// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
61
62namespace Foam
63{
64
65/*---------------------------------------------------------------------------*\
66 Class adjointWallVelocity Declaration
67\*---------------------------------------------------------------------------*/
70:
71 public fixedValueFvPatchVectorField,
73{
74private:
75
76 // Private Data
77
78 scalar kappa_;
79 scalar E_;
80
81
82public:
83
84 //- Runtime type information
85 TypeName("adjointWallVelocity");
86
87
88 // Constructors
89
90 //- Construct from patch and internal field
92 (
93 const fvPatch&,
95 );
96
97 //- Construct from patch, internal field and dictionary
99 (
100 const fvPatch&,
102 const dictionary&
103 );
104
105 //- Construct by mapping given adjointWallVelocityFvPatchVectorField
106 //- onto a new patch
108 (
110 const fvPatch&,
112 const fvPatchFieldMapper&
113 );
114
115 //- Construct and return a clone
116 virtual tmp<fvPatchVectorField> clone() const
117 {
119 (
121 );
122 }
123
124 //- Construct as copy setting internal field reference
126 (
129 );
130
131 //- Construct and return a clone setting internal field reference
133 (
135 ) const
136 {
138 (
140 );
141 }
142
143
144 // Member functions
145
146 //- In case of High-Re runs based on the nutUSpaldingWallFunction
147 //- add source terms in the first cell centre off the wall
148 virtual void manipulateMatrix(fvMatrix<vector>& matrix);
149
150 //- Update the coefficients associated with the patch field
151 virtual void updateCoeffs();
152
153 //- Write
154 virtual void write(Ostream&) const;
155};
156
157
158// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
159
160} // End namespace Foam
161
162// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
163
164#endif
165
166// ************************************************************************* //
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
Base class for solution control classes.
Adjoint wall velocity boundary condition. If nutUSpaldingWallFunction is employed in the flow solutio...
TypeName("adjointWallVelocity")
Runtime type information.
virtual tmp< fvPatchVectorField > clone(const DimensionedField< vector, volMesh > &iF) const
Construct and return a clone setting internal field reference.
virtual tmp< fvPatchVectorField > clone() const
Construct and return a clone.
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
A special matrix type and solver, designed for finite volume solutions of scalar equations....
Definition: fvMatrix.H:121
A FieldMapper for finite-volume patch fields.
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
Definition: fvPatch.H:71
A class for managing temporary objects.
Definition: tmp.H:65
Namespace for OpenFOAM.
runTime write()
#define TypeName(TypeNameString)
Declare a ClassName() with extra virtual type info.
Definition: typeInfo.H:73