33 namespace sixDoFSolvers
50 gamma_(
dict.lookupOrDefault<scalar>(
"gamma", 0.5)),
55 0.25*
sqr(gamma_ + 0.5),
56 dict.lookupOrDefault<scalar>(
"beta", 0.25)
80 updateAcceleration(fGlobal, tauGlobal);
85 & (v0() + aDamp()*deltaT*(gamma_*a() + (1 - gamma_)*
a0()));
90 & (pi0() + aDamp()*deltaT*(gamma_*tau() + (1 - gamma_)*tau0()));
99 + aDamp()*
sqr(deltaT)*(beta_*a() + (0.5 - beta_)*
a0())
108 + aDamp()*
sqr(deltaT)*(beta_*tau() + (0.5 - beta_)*tau0())
Macros for easy insertion into run-time selection tables.
A 2-tuple for storing two objects of different types.
const Type1 & first() const
Return first.
A list of keyword definitions, which are a keyword followed by any number of values (e....
Six degree of freedom motion for a rigid body.
Newmark 2nd-order time-integrator for 6DoF solid-body motion.
Newmark(const dictionary &dict, sixDoFRigidBodyMotion &body)
Construct from a dictionary and the body.
virtual ~Newmark()
Destructor.
virtual void solve(bool firstIter, const vector &fGlobal, const vector &tauGlobal, scalar deltaT, scalar deltaT0)
Drag coefficient.
const dimensionedScalar a0
Bohr radius: default SI units: [m].
addToRunTimeSelectionTable(sixDoFSolver, CrankNicolson, dictionary)
defineTypeNameAndDebug(CrankNicolson, 0)
dimensionedSymmTensor sqr(const dimensionedVector &dv)
layerAndWeight max(const layerAndWeight &a, const layerAndWeight &b)