Commit Graph

1399 Commits

Author SHA1 Message Date
76e22b44ea applications/test/rigidBodyDynamics/pendulumAndSpring: Another slightly more complex test 2016-04-17 15:47:03 +01:00
189c6c6820 rigidBodyMeshMotion: Read initial state and g from dictionary if present 2016-04-17 15:46:22 +01:00
bac78ef989 PtrListIO: Indent list elements on output.
Particularly useful for lists of dictionaries.
2016-04-17 15:45:29 +01:00
04fe885920 BrownianMotionForce: Corrected expression for s0
Patch provided by Bruno Santos
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=2036
2016-04-17 15:39:09 +01:00
c1c4862028 Updated references
See also http://www.openfoam.org/mantisbt/view.php?id=2036
2016-04-17 15:29:51 +01:00
eda27b9e75 externalWallHeatFluxTemperatureFvPatchScalarField: Corrected handling of QrPrevious_
Patch contributed by Bruno Santos
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=2052
2016-04-16 18:43:51 +01:00
287603474a vector::zero -> Zero 2016-04-16 18:34:41 +01:00
04e4e1a7bb rigidBodyMeshMotion: displacementMotionSolver for the mesh-motion of multiple articulated rigid-bodies
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.
2016-04-16 16:02:25 +01:00
831e429dc8 linearSpring: Minor improvement in messages 2016-04-16 16:01:38 +01:00
fc32d53828 quaternion/septernion: Added multi- quaternion/septernion averaging
Using method based on
http://ntrs.nasa.gov/archive/nasa/casi.ntrs.nasa.gov/20070017872.pdf
but simplified for the case where the quaternions are similar.
2016-04-16 15:59:05 +01:00
d02e0aa05f src/Pstream/mpi/UPstream.C: Updated for Int64
Patch contributed by Bruno Santos
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=2055
2016-04-16 13:26:41 +01:00
2c2a7f5b97 doc/Doxygen/_Footer: Updated link to http://openfoam.org
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=2053
2016-04-16 09:57:25 +01:00
40ccb21eb3 doc/Doxygen/_Footer: Updated copyright date
Patch contributed by Bruno Santos
2016-04-16 09:54:21 +01:00
81b13d0244 sixDoFRigidBodyMotion: Updated for change in definition of septernion::transform 2016-04-15 11:33:06 +01:00
860a82c0d4 vector::zero -> Zero 2016-04-15 11:32:42 +01:00
6a5d5e903e septernion: Changed definition of the forward transformation for consistency with spatialTransform
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.
2016-04-15 11:27:18 +01:00
980717ad36 rigidBodySolver: Updated comments 2016-04-12 22:23:04 +01:00
bc70e36915 rigidBodyDynamics: Removed quaternion counter and index: 'nw', 'wIndex'
Replaced with 'unitQuaterion()' virtual function to indicate if the
joint uses a unit quaternion to represent rotation.
2016-04-12 22:17:52 +01:00
df1cb90dc6 rigidBodyDynamics: Simplify handling of quaternions by maintaining a unit quaternion in the joint state field 'q'
'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.
2016-04-12 21:44:34 +01:00
4197cb075a quaternion: Added static member function to return a unit quaternion constructed from a vector
//- Return the unit quaternion (versor) from the given vector
    //  (w = sqrt(1 - |sqr(v)|))
    static inline quaternion unit(const vector& v);
2016-04-12 21:43:03 +01:00
4a7f5ed19a applications/test/rigidBodyDynamics/sphericalJoint: Test for the quaternion-based spherical joint 2016-04-12 16:37:52 +01:00
b2563a8f1b applications/test/rigidBodyDynamics/spring: Updated comment 2016-04-12 16:37:26 +01:00
591cb1d11e rigidBodyDynamics/rigidBodySolvers: Added support for the integration of quaternion joints 2016-04-12 16:16:57 +01:00
ab6fcff621 applications/test/rigidBodyDynamics/spring: Correct typo 2016-04-12 16:16:30 +01:00
9e24a9b5e2 rigidBodyDynamics: Simplified the interface to the solvers 2016-04-12 12:57:31 +01:00
5cfd0fbd47 Updated header 2016-04-12 11:36:59 +01:00
c07bc87f95 rigidBodyDynamics/rigidBodySolvers: Added run-time selectable solvers to integrate the rigid-body motion
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.
2016-04-12 11:33:20 +01:00
f4baa3a864 vtkSurfaceWriter: Changed precision of points to "double" to avoid the error
“Error when reading ascii data. Possible mismatch of datasize with
declaration.”

Patch contributed by Karl Meredith, FMGlobal
2016-04-12 09:03:12 +01:00
81eec80d5d rigidBodyDynamics/rigidBodyModelState: New class to hold the motion state of the rigid-body model
This is a more convenient way of maintaining the state or multiple
states (for higher-order integration), storing, retrieving and passing
between processors.
2016-04-11 19:01:16 +01:00
0825c1b924 rigidBodyDynamics/restraints: Added sphericalAngularDamper, spherical angular damper restraint 2016-04-11 16:12:23 +01:00
8b92402930 rigidBodyDynamics/restraints: Added linearAxialAngularSpring, linear axial angular spring restraint
Included for backward-compatibility with the 6-DoF solver but in the
future will be re-implemented as a joint rather than body restraint and
accumulated in tau (internal forces) rather than fx (external forces).
2016-04-11 15:14:18 +01:00
ef45d5872f Updated header 2016-04-11 14:29:00 +01:00
f29d184f28 rigidBodyDynamics/restraints: Added linearDamper 2016-04-11 14:28:09 +01:00
1177554029 rigidBodyDynamics/restraints: Complete dictionary IO 2016-04-11 11:45:51 +01:00
c019071604 rigidBodyDynamics: Added support for restraints and a linear spring with damper
applications/test/rigidBodyDynamics/spring: Test of the linear spring with damper restraint
Damped simple harmonic motion of a weight on a spring is simulated and
the results compared with analytical solution

    Test-spring
    gnuplot spring.gnuplot
    evince spring.eps

This development is sponsored by Carnegie Wave Energy Ltd.
2016-04-10 23:12:07 +01:00
c49982fbd6 rigidBodyDynamics/bodies/subBody: Changed "parent" to "master" to avoid confusion with the parent to which this composite body is joined 2016-04-10 23:08:45 +01:00
c8d5033af6 rigidBodyDynamics/joints: Added doc for namespace 2016-04-10 23:07:45 +01:00
7d757a7960 applications/test/rigidBodyDynamics/pendulum: Cleanup 2016-04-10 23:07:23 +01:00
292543a3a5 spatialTransform: Added the "&&" operator to transform positions 2016-04-10 23:06:35 +01:00
48427f7a4e applications/test/rigidBodyDynamics/pendulum/pendulum: Corrected joint type 2016-04-08 18:03:51 +01:00
b0d331aba7 rigidBodyModel: Add a few more comments 2016-04-08 17:25:17 +01:00
8df5ca61d2 rigidBodyDynamics/bodies/jointBody: Special body to support elements of composite joints 2016-04-08 17:16:01 +01:00
0c48b153de rigidBodyModel: Added operator<<(Ostream&, const rigidBodyModel&) 2016-04-08 17:02:02 +01:00
33a97bb848 rigidBodyDynamics: Simplified the IO of bodies 2016-04-08 16:56:48 +01:00
e2c9cb4563 rigidBodyDynamics: Added dictionary-based IO of the rigidBodyModel, bodies and joints
Added support for composite joints including a specialized 6-DoF form for floating bodies.
2016-04-08 16:35:49 +01:00
b701ec9f3d rigidBodyDynamics/bodies: Complete set of clone functions to support copy construction and assignment 2016-04-07 23:04:17 +01:00
6d7eb1ac4d rigidBodyModel: Provide support for copy-construction and assignment 2016-04-07 22:28:52 +01:00
8ffd700ca6 rigidBodyDynamics: Added dictionary-based IO of the rigidBodyModel 2016-04-07 21:47:08 +01:00
9aaf17d45d List: Remove the inherited UList::shallowCopy to avoid accidental misuse 2016-04-07 21:05:26 +01:00
fda9aadb3a Specialized dotInterpolate for the efficient calculation of flux fields
e.g. (fvc::interpolate(HbyA) & mesh.Sf()) -> fvc::flux(HbyA)

This removes the need to create an intermediate face-vector field when
computing fluxes which is more efficient, reduces the peak storage and
improved cache coherency in addition to providing a simpler and cleaner
API.
2016-04-06 20:20:53 +01:00