OpenFOAM: API Guide
v1912
The open source CFD toolbox
cuboidI.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) 2016 OpenFOAM Foundation
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
\*---------------------------------------------------------------------------*/
27
28
// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * //
29
30
inline
Foam::symmTensor
Foam::RBD::cuboid::I
31
(
32
const
scalar m,
33
const
vector
&
L
34
)
const
35
{
36
const
scalar mBy12 =
m
/12.0;
37
const
scalar mSqrLx = mBy12*
sqr
(
L
.
x
());
38
const
scalar mSqrLy = mBy12*
sqr
(
L
.
y
());
39
const
scalar mSqrLz = mBy12*
sqr
(
L
.
z
());
40
41
return
symmTensor
42
(
43
mSqrLy + mSqrLz, 0, 0,
44
mSqrLx + mSqrLz, 0,
45
mSqrLx + mSqrLy
46
);
47
}
48
49
50
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
51
52
inline
Foam::RBD::cuboid::cuboid
53
(
54
const
word
&
name
,
55
const
scalar m,
56
const
vector
&
c
,
57
const
vector
&
L
58
)
59
:
60
rigidBody
(
name
, m,
c
,
I
(m,
L
)),
61
L_(
L
)
62
{}
63
64
65
inline
Foam::RBD::cuboid::cuboid
66
(
67
const
word
&
name
,
68
const
dictionary
&
dict
69
)
70
:
71
rigidBody
(
name
,
rigidBodyInertia
()),
72
L_(
dict
.get<
vector
>(
"L"
))
73
{
74
const
scalar m(
dict
.get<scalar>(
"mass"
));
75
const
vector
c
(
dict
.get<
vector
>(
"centreOfMass"
));
76
rigidBodyInertia::operator=(
rigidBodyInertia
(m,
c
,
I
(m, L_)));
77
}
78
79
80
// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * //
81
82
inline
const
Foam::vector
&
Foam::RBD::cuboid::L
()
const
83
{
84
return
L_;
85
}
86
87
88
// ************************************************************************* //
Foam::RBD::rigidBody
Definition:
rigidBody.H:65
L
const vector L(dict.get< vector >("L"))
Foam::Vector::x
const Cmpt & x() const
Access to the vector x component.
Definition:
VectorI.H:78
Foam::SymmTensor< scalar >
Foam::word
A class for handling words, derived from Foam::string.
Definition:
word.H:62
Foam::RBD::cuboid::cuboid
cuboid(const word &name, const scalar m, const vector &c, const vector &L)
Construct from name, mass, centre of mass and lengths of the sides.
Definition:
cuboidI.H:53
Foam::Vector::z
const Cmpt & z() const
Access to the vector z component.
Definition:
VectorI.H:90
Foam::name
word name(const complex &c)
Return string representation of complex.
Definition:
complex.C:76
Foam::RBD::cuboid::L
const vector & L() const
Return the lengths of the sides of the cuboid.
Definition:
cuboidI.H:82
Foam::RBD::rigidBodyInertia::m
scalar m() const
Return the mass of the rigid-body.
Definition:
rigidBodyInertiaI.H:93
Foam::symmTensor
SymmTensor< scalar > symmTensor
SymmTensor of scalars.
Definition:
symmTensor.H:50
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:121
Foam::vector
Vector< scalar > vector
A scalar version of the templated Vector.
Definition:
vector.H:51
Foam::Vector::y
const Cmpt & y() const
Access to the vector y component.
Definition:
VectorI.H:84
Foam::sqr
dimensionedSymmTensor sqr(const dimensionedVector &dv)
Definition:
dimensionedSymmTensor.C:51
Foam::Vector< scalar >
Foam::constant::universal::c
const dimensionedScalar c
Speed of light in a vacuum.
Foam::I
static const Identity< scalar > I
Definition:
Identity.H:95
Foam::RBD::rigidBodyInertia
Definition:
rigidBodyInertia.H:77
src
rigidBodyDynamics
bodies
cuboid
cuboidI.H
Generated by
1.8.17
OPENFOAM® is a registered
trademark
of OpenCFD Ltd.