36 namespace sixDoFSolvers
53 gamma_(
dict.getOrDefault<scalar>(
"gamma", 0.5)),
58 0.25*
sqr(gamma_ + 0.5),
59 dict.getOrDefault<scalar>(
"beta", 0.25)
83 updateAcceleration(fGlobal, tauGlobal);
91 & (v0() + aDamp()*deltaT*(gamma_*a() + (1 - gamma_)*
a0()));
96 & (pi0() + aDamp()*deltaT*(gamma_*tau() + (1 - gamma_)*tau0()));
105 + aDamp()*
sqr(deltaT)*(beta_*a() + (0.5 - beta_)*
a0())
114 + aDamp()*
sqr(deltaT)*(beta_*tau() + (0.5 - beta_)*tau0())
Six degree of freedom motion for a rigid body.
A list of keyword definitions, which are a keyword followed by a number of values (eg...
A 2-tuple for storing two objects of dissimilar types. The container is similar in purpose to std::pa...
label max(const labelHashSet &set, label maxValue=labelMin)
Find the max value in labelHashSet, optionally limited by second argument.
dimensionedSymmTensor sqr(const dimensionedVector &dv)
virtual ~Newmark()
Destructor.
defineTypeNameAndDebug(CrankNicolson, 0)
Macros for easy insertion into run-time selection tables.
Newmark(const dictionary &dict, sixDoFRigidBodyMotion &body)
Construct from a dictionary and the body.
addToRunTimeSelectionTable(sixDoFSolver, CrankNicolson, dictionary)
virtual void solve(bool firstIter, const vector &fGlobal, const vector &tauGlobal, scalar deltaT, scalar deltaT0)
Drag coefficient.
constexpr scalar pi(M_PI)
A Vector of values with scalar precision, where scalar is float/double depending on the compilation f...
const dimensionedScalar a0
Bohr radius: default SI units: [m].
const T1 & first() const noexcept
Access the first element.