Home
Downloads
Documentation
Installation
User Guide
man-pages
API Documentation
README
Release Notes
Changes
License
Support
SourceForge Project
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Pages
src
postProcessing
functionObjects
forces
pointPatchFields
derived
sixDoFRigidBodyDisplacement
sixDoFRigidBodyDisplacementPointPatchVectorField.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 | Copyright (C) 1991-2010 OpenCFD Ltd.
6
\\/ M anipulation |
7
-------------------------------------------------------------------------------
8
License
9
This file is part of OpenFOAM.
10
11
OpenFOAM is free software: you can redistribute it and/or modify it
12
under the terms of the GNU General Public License as published by
13
the Free Software Foundation, either version 3 of the License, or
14
(at your option) any later version.
15
16
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
17
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
19
for more details.
20
21
You should have received a copy of the GNU General Public License
22
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
23
24
Class
25
Foam::sixDoFRigidBodyDisplacementPointPatchVectorField
26
27
Description
28
Foam::sixDoFRigidBodyDisplacementPointPatchVectorField
29
30
SourceFiles
31
sixDoFRigidBodyDisplacementPointPatchVectorField.C
32
33
\*---------------------------------------------------------------------------*/
34
35
#ifndef sixDoFRigidBodyDisplacementPointPatchVectorField_H
36
#define sixDoFRigidBodyDisplacementPointPatchVectorField_H
37
38
#include <
OpenFOAM/fixedValuePointPatchField.H
>
39
#include <
forces/sixDoFRigidBodyMotion.H
>
40
41
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
42
43
namespace
Foam
44
{
45
46
/*---------------------------------------------------------------------------*\
47
Class sixDoFRigidBodyDisplacementPointPatchVectorField Declaration
48
\*---------------------------------------------------------------------------*/
49
50
class
sixDoFRigidBodyDisplacementPointPatchVectorField
51
:
52
public
fixedValuePointPatchField
<vector>
53
{
54
// Private data
55
56
//- Six dof motion object
57
sixDoFRigidBodyMotion
motion_;
58
59
//- Initial positions of points on the patch
60
pointField
initialPoints_;
61
62
//- Reference density required by the forces object for
63
// incompressible calculations, required if rhoName == rhoInf
64
scalar rhoInf_;
65
66
//- Name of density field, optional unless used for an
67
// incompressible simulation, when this needs to be specified
68
// as rhoInf
69
word
rhoName_;
70
71
//- State of gravity lookup:
72
// -1 = not determined yet, as the BC may be instantiated before g has
73
// been read into the db yet. Determination deferred until first
74
// call to updateCoeffs. A g keyword was not supplied to the
75
// dictionary.
76
// -2 = as for -1, but a gravity value was specified in the dictionary,
77
// specifying a value in the dictionary is considered a fatal
78
// error if g is available from the db.
79
// 0 = Use this boundary condition's own value of gravity, as not
80
// available from the db.
81
// 1 = Lookup gravity from db.
82
label lookupGravity_;
83
84
//- Gravity vector to store when not available from the db
85
vector
g_;
86
87
88
public
:
89
90
//- Runtime type information
91
TypeName
(
"sixDoFRigidBodyDisplacement"
);
92
93
94
// Constructors
95
96
//- Construct from patch and internal field
97
sixDoFRigidBodyDisplacementPointPatchVectorField
98
(
99
const
pointPatch
&,
100
const
DimensionedField<vector, pointMesh>
&
101
);
102
103
//- Construct from patch, internal field and dictionary
104
sixDoFRigidBodyDisplacementPointPatchVectorField
105
(
106
const
pointPatch
&,
107
const
DimensionedField<vector, pointMesh>
&,
108
const
dictionary
&
109
);
110
111
//- Construct by mapping given patchField<vector> onto a new patch
112
sixDoFRigidBodyDisplacementPointPatchVectorField
113
(
114
const
sixDoFRigidBodyDisplacementPointPatchVectorField
&,
115
const
pointPatch
&,
116
const
DimensionedField<vector, pointMesh>
&,
117
const
pointPatchFieldMapper
&
118
);
119
120
//- Construct and return a clone
121
virtual
autoPtr<pointPatchField<vector>
>
clone
()
const
122
{
123
return
autoPtr<pointPatchField<vector>
>
124
(
125
new
sixDoFRigidBodyDisplacementPointPatchVectorField
126
(
127
*
this
128
)
129
);
130
}
131
132
//- Construct as copy setting internal field reference
133
sixDoFRigidBodyDisplacementPointPatchVectorField
134
(
135
const
sixDoFRigidBodyDisplacementPointPatchVectorField
&,
136
const
DimensionedField<vector, pointMesh>
&
137
);
138
139
//- Construct and return a clone setting internal field reference
140
virtual
autoPtr<pointPatchField<vector>
>
clone
141
(
142
const
DimensionedField<vector, pointMesh>
& iF
143
)
const
144
{
145
return
autoPtr<pointPatchField<vector>
>
146
(
147
new
sixDoFRigidBodyDisplacementPointPatchVectorField
148
(
149
*
this
,
150
iF
151
)
152
);
153
}
154
155
156
// Member functions
157
158
// Mapping functions
159
160
//- Map (and resize as needed) from self given a mapping object
161
virtual
void
autoMap
162
(
163
const
pointPatchFieldMapper
&
164
);
165
166
//- Reverse map the given pointPatchField onto this pointPatchField
167
virtual
void
rmap
168
(
169
const
pointPatchField<vector>
&,
170
const
labelList
&
171
);
172
173
174
// Evaluation functions
175
176
//- Update the coefficients associated with the patch field
177
virtual
void
updateCoeffs
();
178
179
180
//- Write
181
virtual
void
write
(
Ostream
&)
const
;
182
};
183
184
185
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
186
187
}
// End namespace Foam
188
189
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
190
191
#endif
192
193
// ************************************************************************* //