Newmark.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-------------------------------------------------------------------------------
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::RBD::rigidBodySolvers::Newmark
28
29Description
30 Newmark 2nd-order time-integrator for 6DoF solid-body motion.
31
32 Reference:
33 \verbatim
34 Newmark, N. M. (1959).
35 A method of computation for structural dynamics.
36 Journal of the Engineering Mechanics Division, 85(3), 67-94.
37 \endverbatim
38
39 Example specification in dynamicMeshDict:
40 \verbatim
41 solver
42 {
43 type Newmark;
44 gamma 0.5; // Velocity integration coefficient
45 beta 0.25; // Position integration coefficient
46 }
47 \endverbatim
48
49SourceFiles
50 Newmark.C
51
52\*---------------------------------------------------------------------------*/
53
54#ifndef Newmark_H
55#define Newmark_H
56
57#include "rigidBodySolver.H"
58
59// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
60
61namespace Foam
62{
63namespace RBD
64{
65namespace rigidBodySolvers
66{
67
68/*---------------------------------------------------------------------------*\
69 Class Newmark Declaration
70\*---------------------------------------------------------------------------*/
72class Newmark
73:
74 public rigidBodySolver
75{
76 // Private data
77
78 //- Coefficient for velocity integration (default: 0.5)
79 const scalar gamma_;
80
81 //- Coefficient for position and orientation integration (default: 0.25)
82 const scalar beta_;
83
84
85public:
86
87 //- Runtime type information
88 TypeName("Newmark");
89
90
91 // Constructors
92
93 //- Construct for the given body from dictionary
95 (
96 rigidBodyMotion& body,
97 const dictionary& dict
98 );
99
100
101 //- Destructor
102 virtual ~Newmark();
103
104
105 // Member Functions
106
107 //- Integrate the rigid-body motion for one time-step
108 virtual void solve
109 (
110 const scalarField& tau,
111 const Field<spatialVector>& fx
112 );
113};
114
115
116// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
117
118} // End namespace rigidBodySolvers
119} // End namespace RBD
120} // End namespace Foam
121
122// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
123
124#endif
125
126// ************************************************************************* //
Six degree of freedom motion for a rigid body.
Newmark 2nd-order time-integrator for 6DoF solid-body motion.
Definition: Newmark.H:74
virtual ~Newmark()
Destructor.
Definition: Newmark.C:70
TypeName("Newmark")
Runtime type information.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Definition: dictionary.H:126
Namespace for OpenFOAM.
dictionary dict
CEqn solve()
#define TypeName(TypeNameString)
Declare a ClassName() with extra virtual type info.
Definition: typeInfo.H:73