Old:
- Previous versions created k and epsilon fields by default, and
then processed omega and nuTilda fields if present.
- Depending on the choice of turbulence model, not all of these fields
would be used, and could lead to errors when running some utilities
due to erroneous values.
- If the omega field did not exist, it would be derived from the epsilon
field, and also inherit the epsilon boundary conditions (wall
functions)
New:
- This version will only update fields that already exist on file, i.e.
will not generate any new fields, and will preserve the boundary
conditions
The joint-space dynamics is solved on the master processor only and the
resulting joint-state distributed to the slave processors on which the
body-state is then updated. This guarantees consistency of the body
position and orientation on all processors.
The motion of the bodies is integrated using the rigidBodyDynamics
library with joints, restraints and external forces.
The mesh-motion is interpolated using septernion averaging.
This development is sponsored by Carnegie Wave Energy Ltd.
inline Foam::vector Foam::septernion::transformPoint(const vector& v) const
{
return r().transform(v - t());
}
Now there is a 1:1 correspondence between septernion and
spatialTransform and a septernion constructor from spatialTransform
provided.
Additionally "septernion::transform" has been renamed
"septernion::transformPoint" to clarify that it transforms coordinate
points rather than displacements or other relative vectors.
'w' is now obtained from 'v' using the relation w = sqrt(1 - |sqr(v)|)
and 'v' is stored in the joint state field 'q' and integrated in the
usual manner but corrected using quaternion transformations.
Currently supported solvers: symplectic, Newmark, CrankNicolson
The symplectic solver should only be used if iteration over the forces
and body-motion is not required. Newmark and CrankNicolson both require
iteration to provide 2nd-order behavior.
See applications/test/rigidBodyDynamics/spring for an example of the
application of the Newmark solver.
This development is sponsored by Carnegie Wave Energy Ltd.
This is a more convenient way of maintaining the state or multiple
states (for higher-order integration), storing, retrieving and passing
between processors.