KirchhoffShell.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) 2019-2021 OpenCFD Ltd.
9 -------------------------------------------------------------------------------
10 License
11  This file is part of OpenFOAM.
12 
13  OpenFOAM is free software: you can redistribute it and/or modify it
14  under the terms of the GNU General Public License as published by
15  the Free Software Foundation, either version 3 of the License, or
16  (at your option) any later version.
17 
18  OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
19  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
20  FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
21  for more details.
22 
23  You should have received a copy of the GNU General Public License
24  along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
25 
26 Class
27  Foam::regionFaModels::KirchhoffShell
28 
29 Description
30 
31 Usage
32  Example of the boundary condition specification:
33  \verbatim
34  <patchName>
35  {
36  // Mandatory/Optional entries
37  ...
38 
39  // Mandatory entries
40  vibrationShellModel KirchhoffShell;
41  f0 0.04;
42  f1 0.0;
43  f2 0.0;
44  }
45  \endverbatim
46 
47  where the entries mean:
48  \table
49  Property | Description | Type | Reqd | Deflt
50  vibrationShellModel | Type name: KirchhoffShell | word | yes | -
51  f0 | Damping coefficient [1/s] | scalar | yes | -
52  f1 | Damping coefficient [1/s] | scalar | yes | -
53  f2 | Damping coefficient [1/s] | scalar | yes | -
54  \endtable
55 
56  The inherited entries are elaborated in:
57  - \link vibrationShellModel.H \endlink
58 
59 SourceFiles
60  KirchhoffShell.C
61 
62 \*---------------------------------------------------------------------------*/
63 
64 #ifndef KirchhoffShell_H
65 #define KirchhoffShell_H
66 
67 #include "volFieldsFwd.H"
68 #include "vibrationShellModel.H"
69 #include "faMesh.H"
70 #include "faCFD.H"
71 
72 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
73 
74 namespace Foam
75 {
76 namespace regionModels
77 {
78 
79 /*---------------------------------------------------------------------------*\
80  Class KirchhoffShell Declaration
81 \*---------------------------------------------------------------------------*/
82 
83 class KirchhoffShell
84 :
85  public vibrationShellModel
86 {
87  // Private Data
88 
89  //- Damping coefficients [1/s]
93 
94 
95  // Private Member Functions
96 
97  //- Initialise KirchhoffShell
98  bool init(const dictionary& dict);
99 
100 
101 protected:
102 
103  // Protected Data
104 
105  // Solution parameters
106 
107  //- Number of non orthogonal correctors
108  label nNonOrthCorr_;
109 
110  //- Sub cycles
111  label nSubCycles_;
112 
113 
114  // Source term fields
115 
116  //- External surface source [Pa]
118 
119  //- Thickness [m]
121 
122  //- Laplace of the displacement
124 
125  //- Laplace of the Laplace for the displacement
127 
128  //- Cache w.oldTime() in sub-cycling
130 
131  //- Cache w.oldTime.oldTime() in sub-cycling
133 
134  //- Cache laplaceW.oldTime() in sub-cycling
136 
137  //- Cache laplace2.oldTime() in sub-cycling
139 
140 
141  // Protected Member Functions
142 
143  // Equations
144 
145  //- Solve energy equation
147 
148 
149 public:
150 
151  //- Runtime type information
152  TypeName("KirchhoffShell");
153 
154 
155  // Constructors
156 
157  //- Construct from components and dict
159  (
160  const word& modelType,
161  const fvPatch& patch,
162  const dictionary& dict
163  );
164 
165  //- No copy construct
166  KirchhoffShell(const KirchhoffShell&) = delete;
167 
168  //- No copy assignment
169  void operator=(const KirchhoffShell&) = delete;
170 
171 
172  //- Destructor
173  virtual ~KirchhoffShell() = default;
174 
175 
176  // Member Functions
177 
178  // Fields
179 
180  //- Return stiffness
181  const tmp<areaScalarField> D() const;
182 
183  //- Return density [Kg/m3]
184  const tmp<areaScalarField> rho() const;
185 
186 
187  // Evolution
188 
189  //- Pre-evolve thermal baffle
190  virtual void preEvolveRegion();
191 
192  //- Evolve the thermal baffle
193  virtual void evolveRegion();
194 
195 
196  // IO
197 
198  //- Provide some feedback
199  virtual void info();
200 };
201 
202 
203 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
204 
205 } // End namespace regionModels
206 } // End namespace Foam
207 
208 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
209 
210 
211 #endif
212 
213 // ************************************************************************* //
Foam::regionModels::KirchhoffShell::rho
const tmp< areaScalarField > rho() const
Return density [Kg/m3].
Definition: KirchhoffShell.C:285
volFieldsFwd.H
Foam::regionModels::KirchhoffShell::KirchhoffShell
KirchhoffShell(const word &modelType, const fvPatch &patch, const dictionary &dict)
Construct from components and dict.
Definition: KirchhoffShell.C:139
vibrationShellModel
Intermediate class for vibration-shell finite-area models.
vibrationShellModel.H
Foam::word
A class for handling words, derived from Foam::string.
Definition: word.H:65
faCFD.H
Foam::tmp
A class for managing temporary objects.
Definition: PtrList.H:61
faMesh.H
Foam::regionModels::KirchhoffShell::info
virtual void info()
Provide some feedback.
Definition: KirchhoffShell.C:307
Foam::regionModels::KirchhoffShell::preEvolveRegion
virtual void preEvolveRegion()
Pre-evolve thermal baffle.
Definition: KirchhoffShell.C:260
Foam::regionModels::vibrationShellModel
Definition: vibrationShellModel.H:118
Foam::regionModels::KirchhoffShell::laplace2W0_
areaScalarField laplace2W0_
Cache laplace2.oldTime() in sub-cycling.
Definition: KirchhoffShell.H:167
Foam::regionModels::KirchhoffShell::D
const tmp< areaScalarField > D() const
Return stiffness.
Definition: KirchhoffShell.C:276
Foam::regionModels::KirchhoffShell::nSubCycles_
label nSubCycles_
Sub cycles.
Definition: KirchhoffShell.H:140
Foam::regionModels::KirchhoffShell::laplace2W_
areaScalarField laplace2W_
Laplace of the Laplace for the displacement.
Definition: KirchhoffShell.H:155
Foam::regionModels::KirchhoffShell::operator=
void operator=(const KirchhoffShell &)=delete
No copy assignment.
Foam::regionModels::KirchhoffShell::solveDisplacement
void solveDisplacement()
Solve energy equation.
Definition: KirchhoffShell.C:57
KirchhoffShell
Foam::regionModels::KirchhoffShell::w00_
areaScalarField w00_
Cache w.oldTime.oldTime() in sub-cycling.
Definition: KirchhoffShell.H:161
Foam::fvPatch
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
Definition: fvPatch.H:65
Foam::regionModels::KirchhoffShell
Definition: KirchhoffShell.H:112
Foam::regionModels::KirchhoffShell::nNonOrthCorr_
label nNonOrthCorr_
Number of non orthogonal correctors.
Definition: KirchhoffShell.H:137
Foam::regionModels::KirchhoffShell::laplaceW0_
areaScalarField laplaceW0_
Cache laplaceW.oldTime() in sub-cycling.
Definition: KirchhoffShell.H:164
dict
dictionary dict
Definition: searchingEngine.H:14
Foam::dictionary
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Definition: dictionary.H:123
Foam::dimensioned< scalar >
Foam
Namespace for OpenFOAM.
Definition: atmBoundaryLayer.C:33
Foam::regionModels::KirchhoffShell::laplaceW_
areaScalarField laplaceW_
Laplace of the displacement.
Definition: KirchhoffShell.H:152
Foam::regionModels::KirchhoffShell::w0_
areaScalarField w0_
Cache w.oldTime() in sub-cycling.
Definition: KirchhoffShell.H:158
Foam::regionModels::KirchhoffShell::ps_
areaScalarField ps_
External surface source [Pa].
Definition: KirchhoffShell.H:146
Foam::foamVersion::patch
const std::string patch
OpenFOAM patch number as a std::string.
Foam::regionModels::KirchhoffShell::evolveRegion
virtual void evolveRegion()
Evolve the thermal baffle.
Definition: KirchhoffShell.C:264
Foam::regionModels::KirchhoffShell::~KirchhoffShell
virtual ~KirchhoffShell()=default
Destructor.
Foam::regionModels::KirchhoffShell::TypeName
TypeName("KirchhoffShell")
Runtime type information.
Foam::GeometricField< scalar, faPatchField, areaMesh >
Foam::regionModels::KirchhoffShell::h_
areaScalarField h_
Thickness [m].
Definition: KirchhoffShell.H:149