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-------------------------------------------------------------------------------
10License
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
26Class
27 Foam::regionFaModels::KirchhoffShell
28
29Description
30
31Usage
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
59SourceFiles
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
74namespace Foam
75{
76namespace regionModels
77{
78
79/*---------------------------------------------------------------------------*\
80 Class KirchhoffShell Declaration
81\*---------------------------------------------------------------------------*/
82
84:
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
101protected:
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_;
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
141 // Protected Member Functions
142
143 // Equations
144
145 //- Solve energy equation
147
148
149public:
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 );
165 //- No copy construct
166 KirchhoffShell(const KirchhoffShell&) = delete;
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
196 // IO
197
198 //- Provide some feedback
199 virtual void info();
200};
201
203// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
204
205} // End namespace regionModels
206} // End namespace Foam
207
208// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
209
210
211#endif
212
213// ************************************************************************* //
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Definition: dictionary.H:126
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
Definition: fvPatch.H:71
KirchhoffShell(const KirchhoffShell &)=delete
No copy construct.
areaScalarField h_
Thickness [m].
areaScalarField laplace2W0_
Cache laplace2.oldTime() in sub-cycling.
const tmp< areaScalarField > rho() const
Return density [Kg/m3].
virtual ~KirchhoffShell()=default
Destructor.
areaScalarField ps_
External surface source [Pa].
areaScalarField laplaceW_
Laplace of the displacement.
void operator=(const KirchhoffShell &)=delete
No copy assignment.
void solveDisplacement()
Solve energy equation.
areaScalarField w0_
Cache w.oldTime() in sub-cycling.
areaScalarField w00_
Cache w.oldTime.oldTime() in sub-cycling.
TypeName("KirchhoffShell")
Runtime type information.
virtual void preEvolveRegion()
Pre-evolve thermal baffle.
virtual void info()
Provide some feedback.
areaScalarField laplaceW0_
Cache laplaceW.oldTime() in sub-cycling.
areaScalarField laplace2W_
Laplace of the Laplace for the displacement.
label nNonOrthCorr_
Number of non orthogonal correctors.
const tmp< areaScalarField > D() const
Return stiffness.
virtual void evolveRegion()
Evolve the thermal baffle.
Intermediate class for vibration-shell finite-area models.
A class for managing temporary objects.
Definition: tmp.H:65
A class for handling words, derived from Foam::string.
Definition: word.H:68
Namespace for OpenFOAM.
dictionary dict
#define TypeName(TypeNameString)
Declare a ClassName() with extra virtual type info.
Definition: typeInfo.H:73