adjointRotatingWallVelocityFvPatchVectorField.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) 2020 PCOpt/NTUA
9  Copyright (C) 2020 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::adjointRotatingWallVelocityFvPatchVectorField
30 
31 Description
32  The same as adjointWallVelocity but additionally computes the sensitivity
33  contribution emerging from the change in the positions of the face centres,
34  in case rotatingWallVelocity is used for the flow simulation.
35 
36 SourceFiles
37  adjointRotatingWallVelocityFvPatchVectorField.C
38 
39 \*---------------------------------------------------------------------------*/
40 
41 #ifndef adjointRotatingWallVelocityFvPatchVectorField_H
42 #define adjointRotatingWallVelocityFvPatchVectorField_H
43 
45 #include "Function1.H"
46 
47 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
48 
49 namespace Foam
50 {
51 
52 /*---------------------------------------------------------------------------*\
53  Class adjointRotatingWallVelocity Declaration
54 \*---------------------------------------------------------------------------*/
55 
57 :
59 {
60 private:
61 
62  // Private Data
63 
64  //- Origin of the rotation
65  vector origin_;
66 
67  //- Axis of the rotation
68  vector axis_;
69 
70  //- Rotational speed
72 
73 
74 public:
75 
76  //- Runtime type information
77  TypeName("adjointRotatingWallVelocity");
78 
79 
80  // Constructors
81 
82  //- Construct from patch and internal field
84  (
85  const fvPatch&,
87  );
88 
89  //- Construct from patch, internal field and dictionary
91  (
92  const fvPatch&,
94  const dictionary&
95  );
96 
97  //- Construct by mapping given
98  //- adjointRotatingWallVelocityFvPatchVectorField onto a new patch
100  (
102  const fvPatch&,
104  const fvPatchFieldMapper&
105  );
106 
107  //- Construct and return a clone
108  virtual tmp<fvPatchVectorField> clone() const
109  {
111  (
113  );
114  }
115 
116  //- Construct as copy setting internal field reference
118  (
121  );
122 
123  //- Construct and return a clone setting internal field reference
125  (
127  ) const
128  {
130  (
132  );
133  }
134 
135 
136  // Member functions
137 
138  //- Compute contribution to SDs
139  virtual tmp<tensorField> dxdbMult() const;
140 
141  //- Write
142  virtual void write(Ostream&) const;
143 };
144 
145 
146 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
147 
148 } // End namespace Foam
149 
150 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
151 
152 #endif
153 
154 // ************************************************************************* //
Foam::adjointRotatingWallVelocityFvPatchVectorField::TypeName
TypeName("adjointRotatingWallVelocity")
Runtime type information.
Foam::adjointRotatingWallVelocityFvPatchVectorField::clone
virtual tmp< fvPatchVectorField > clone() const
Construct and return a clone.
Definition: adjointRotatingWallVelocityFvPatchVectorField.H:107
Foam::tmp
A class for managing temporary objects.
Definition: PtrList.H:61
Function1.H
Foam::adjointRotatingWallVelocityFvPatchVectorField
The same as adjointWallVelocity but additionally computes the sensitivity contribution emerging from ...
Definition: adjointRotatingWallVelocityFvPatchVectorField.H:55
Foam::adjointRotatingWallVelocityFvPatchVectorField::write
virtual void write(Ostream &) const
Write.
Definition: adjointRotatingWallVelocityFvPatchVectorField.C:113
Foam::adjointRotatingWallVelocityFvPatchVectorField::adjointRotatingWallVelocityFvPatchVectorField
adjointRotatingWallVelocityFvPatchVectorField(const fvPatch &, const DimensionedField< vector, volMesh > &)
Construct from patch and internal field.
Definition: adjointRotatingWallVelocityFvPatchVectorField.C:36
Foam::fvPatch
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
Definition: fvPatch.H:65
Foam::adjointWallVelocityFvPatchVectorField
Adjoint wall velocity boundary condition. If nutUSpaldingWallFunction is employed in the flow solutio...
Definition: adjointWallVelocityFvPatchVectorField.H:68
Foam::dictionary
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Definition: dictionary.H:123
Foam
Namespace for OpenFOAM.
Definition: atmBoundaryLayer.C:33
Foam::adjointRotatingWallVelocityFvPatchVectorField::dxdbMult
virtual tmp< tensorField > dxdbMult() const
Compute contribution to SDs.
Definition: adjointRotatingWallVelocityFvPatchVectorField.C:96
adjointWallVelocityFvPatchVectorField.H
Foam::autoPtr
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
Definition: HashPtrTable.H:53
Foam::Vector< scalar >
Foam::fvPatchFieldMapper
Foam::fvPatchFieldMapper.
Definition: fvPatchFieldMapper.H:47
Foam::Ostream
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
Definition: Ostream.H:56
Foam::DimensionedField
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
Definition: DimensionedField.H:54