Loading...
Searching...
No Matches
vibrationShellFvPatchScalarField.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-2025 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::compressible::vibrationShellFvPatchScalarField
28
29Group
30 grpVibrationBoundaryConditions
31
32Description
33 This boundary condition provides a coupled acoustic pressure condition
34 between a primary region (3D mesh) and a vibration shell model (2D mesh).
35
36Usage
37 Example of the boundary condition specification:
38 \verbatim
39 <masterPatchName>
40 {
41 // Mandatory entries
42 type vibrationShell;
43
44 // Inherited entries
45 ...
46 }
47 \endverbatim
48
49 where the entries mean:
50 \table
51 Property | Description | Type | Reqd | Deflt
52 type | Type name: vibrationShell | word | yes | -
53 \endtable
54
55 The inherited entries are elaborated in:
56 - \link mixedFvPatchField.H \endlink
57 - \link vibrationShellModel.H \endlink
58
59SourceFiles
60 vibrationShellFvPatchScalarField.C
61
62\*---------------------------------------------------------------------------*/
63
64#ifndef vibrationShellFvPatchScalarField_H
65#define vibrationShellFvPatchScalarField_H
66
67#include "vibrationShellModel.H"
68#include "mixedFvPatchFields.H"
69
70// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
71
72namespace Foam
73{
74
75/*---------------------------------------------------------------------------*\
76 Class vibrationShellFvPatchScalarField Declaration
77\*---------------------------------------------------------------------------*/
78
80:
81 public mixedFvPatchField<scalar>
82{
83 // Typedefs
84
85 //- The parent boundary condition type
86 typedef mixedFvPatchField<scalar> parent_bctype;
87
88 //- The finite-area region model
89 typedef regionModels::vibrationShellModel baffleType;
90
91
92 // Private Data
93
94 //- Dictionary
95 dictionary dict_;
96
97 //- The vibration shell model
98 autoPtr<baffleType> baffle_;
99
100
101 // Private Methods
102
103 //- Create vibration baffle (if required)
104 void create_baffle();
105
106
107public:
108
109 //- Runtime type information
110 TypeName("vibrationShell");
111
112
113 // Constructors
114
115 //- Construct from patch and internal field
117 (
118 const fvPatch&,
120 );
121
122 //- Construct from patch, internal field and dictionary
124 (
125 const fvPatch&,
127 const dictionary&
128 );
130 //- Construct by mapping given
131 //- vibrationShellFvPatchScalarField onto a new patch
133 (
135 const fvPatch&,
137 const fvPatchFieldMapper&
138 );
139
140 //- Copy construct with internal field reference
142 (
145 );
146
147 //- Copy construct
149 (
151 )
152 :
154 {}
155
156
157 //- Return a clone
158 virtual tmp<fvPatchField<scalar>> clone() const
159 {
160 return fvPatchField<scalar>::Clone(*this);
161 }
162
163 //- Clone with an internal field reference
164 virtual tmp<fvPatchField<scalar>> clone
165 (
166 const DimensionedField<scalar, volMesh>& iF
167 ) const
168 {
169 return fvPatchField<scalar>::Clone(*this, iF);
170 }
171
172
173 // Member Functions
174
175 //- Update the coefficients associated with the patch field
176 virtual void updateCoeffs();
178 //- Write
179 virtual void write(Ostream&) const;
180};
181
182
183// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
184
185} // End namespace Foam
186
187// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
188
190#endif
191
192// ************************************************************************* //
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:59
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
Definition autoPtr.H:65
This boundary condition provides a coupled acoustic pressure condition between a primary region (3D m...
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Definition dictionary.H:133
A FieldMapper for finite-volume patch fields.
const DimensionedField< scalar, volMesh > & internalField() const noexcept
static tmp< fvPatchField< Type > > Clone(const DerivedPatchField &pf, Args &&... args)
Clone a patch field, optionally with internal field reference etc.
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
Definition fvPatch.H:71
mixedFvPatchField(const fvPatch &, const DimensionedField< scalar, volMesh > &)
Intermediate class for vibration-shell finite-area models.
A class for managing temporary objects.
Definition tmp.H:75
TypeName("vibrationShell")
Runtime type information.
virtual tmp< fvPatchField< scalar > > clone(const DimensionedField< scalar, volMesh > &iF) const
Clone with an internal field reference.
virtual tmp< fvPatchField< scalar > > clone() const
Return a clone.
vibrationShellFvPatchScalarField(const fvPatch &, const DimensionedField< scalar, volMesh > &)
Construct from patch and internal field.
virtual void updateCoeffs()
Update the coefficients associated with the patch field.
vibrationShellFvPatchScalarField(const vibrationShellFvPatchScalarField &pfld)
Copy construct.
Namespace for OpenFOAM.
runTime write()
#define TypeName(TypeNameString)
Declare a ClassName() with extra virtual type info.
Definition typeInfo.H:68