Files
OpenFOAM-12/src/rigidBodyDynamics/rigidBodyModelState/rigidBodyModelState.H
Will Bainbridge 10e75bf28a rigidBodyModelState: Added time value member
The absolute value of the the time has been added to the rigid body
model state. This value is not directly necessary for calculating the
evolution of the rigid body system, it just facilitates the
implementation of sub-models which are in some way time-dependent.
2017-12-13 12:06:53 +00:00

167 lines
4.4 KiB
C++

/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2016-2017 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
OpenFOAM is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Class
Foam::RBD::rigidBodyModelState
Description
Holds the motion state of rigid-body model.
SourceFiles
rigidBodyModelStateI.H
rigidBodyModelState.C
rigidBodyModelStateIO.C
\*---------------------------------------------------------------------------*/
#ifndef rigidBodyModelState_H
#define rigidBodyModelState_H
#include "rigidBodyModel.H"
#include "scalarField.H"
#include "dictionary.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
// Forward declaration of classes
class Istream;
class Ostream;
namespace RBD
{
// Forward declaration of friend functions and operators
class rigidBodyModelState;
Istream& operator>>(Istream&, rigidBodyModelState&);
Ostream& operator<<(Ostream&, const rigidBodyModelState&);
/*---------------------------------------------------------------------------*\
Class rigidBodyModelState Declaration
\*---------------------------------------------------------------------------*/
class rigidBodyModelState
{
// Private data
//- Joint position and orientation
scalarField q_;
//- Joint velocity
scalarField qDot_;
//- Joint acceleration
scalarField qDdot_;
//- The time
scalar t_;
//- The time-step used to integrate to this state
scalar deltaT_;
public:
// Constructors
//- Construct for the given rigidBodyModel
rigidBodyModelState(const rigidBodyModel& model);
//- Construct from dictionary for the given rigidBodyModel
rigidBodyModelState
(
const rigidBodyModel& model,
const dictionary& dict
);
// Member Functions
// Access
//- Return access to the joint position and orientation
inline const scalarField& q() const;
//- Return access to the joint velocity
inline const scalarField& qDot() const;
//- Return access to the joint acceleration
inline const scalarField& qDdot() const;
//- Return access to the time
inline scalar t() const;
//- Return access to the time-step
inline scalar deltaT() const;
// Edit
//- Return access to the joint position and orientation
inline scalarField& q();
//- Return access to the joint velocity
inline scalarField& qDot();
//- Return access to the joint acceleration
inline scalarField& qDdot();
//- Return access to the time
inline scalar& t();
//- Return access to the time-step
inline scalar& deltaT();
//- Write to dictionary
void write(dictionary& dict) const;
//- Write to stream
void write(Ostream&) const;
// IOstream Operators
friend Istream& operator>>(Istream&, rigidBodyModelState&);
friend Ostream& operator<<(Ostream&, const rigidBodyModelState&);
};
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace RBD
} // End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#include "rigidBodyModelStateI.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#endif
// ************************************************************************* //