Calculates the inertia tensor and principal axes and moments of a polyhedra/cells/triSurfaces. Inertia can either be of the solid body or of a thin shell. More...
#include <momentOfInertia.H>
Static Public Member Functions | |
| static void | massPropertiesSolid (const pointField &pts, const triFaceList &triFaces, scalar density, scalar &mass, vector &cM, tensor &J) |
| static void | massPropertiesShell (const pointField &pts, const triFaceList &triFaces, scalar density, scalar &mass, vector &cM, tensor &J, bool doReduce=false) |
| static void | massPropertiesSolid (const triSurface &surf, scalar density, scalar &mass, vector &cM, tensor &J) |
| static void | massPropertiesShell (const triSurface &surf, scalar density, scalar &mass, vector &cM, tensor &J, bool doReduce=false) |
| static void | massPropertiesPatch (const polyPatch &pp, scalar density, scalar &mass, vector &cM, tensor &J, bool doReduce=false) |
| static tensor | applyParallelAxisTheorem (scalar mass, const vector &cM, const tensor &J, const vector &refPt) |
| static tmp< tensorField > | meshInertia (const polyMesh &mesh) |
| static tensor | meshInertia (const polyMesh &mesh, label celli) |
Calculates the inertia tensor and principal axes and moments of a polyhedra/cells/triSurfaces. Inertia can either be of the solid body or of a thin shell.
References:
"Fast and Accurate Computation of Polyhedral Mass Properties",
Brian Mirtich,
Journal of Graphics Tools, Volume 1, Number 2, 1996.
https://people.eecs.berkeley.edu/~jfc/mirtich/massProps.html https://people.eecs.berkeley.edu/~jfc/mirtich/papers/volInt.ps.gz https://people.eecs.berkeley.edu/~jfc/mirtich/code/volumeIntegration.tar
Definition at line 61 of file momentOfInertia.H.
|
static |
Definition at line 27 of file momentOfInertia.C.
References forAll, Foam::I, n, pts, Vector< Cmpt >::x(), Tensor< Cmpt >::xx(), Tensor< Cmpt >::xy(), Tensor< Cmpt >::xz(), Vector< Cmpt >::y(), Tensor< Cmpt >::yx(), Tensor< Cmpt >::yy(), Tensor< Cmpt >::yz(), Vector< Cmpt >::z(), Foam::Zero, Tensor< Cmpt >::zx(), Tensor< Cmpt >::zy(), and Tensor< Cmpt >::zz().
Referenced by massPropertiesSolid(), and meshInertia().


|
static |
Definition at line 184 of file momentOfInertia.C.
References triangle< Point, PointRef >::centre(), forAll, triangle< Point, PointRef >::inertia(), triangle< Point, PointRef >::mag(), pts, Foam::reduce(), and Foam::Zero.
Referenced by massPropertiesPatch(), and massPropertiesShell().


|
static |
Definition at line 252 of file momentOfInertia.C.
References forAll, massPropertiesSolid(), PrimitivePatch< FaceList, PointField >::points(), UList< T >::size(), and triFace().

|
static |
Definition at line 272 of file momentOfInertia.C.
References forAll, massPropertiesShell(), PrimitivePatch< FaceList, PointField >::points(), UList< T >::size(), and triFace().

|
static |
Definition at line 293 of file momentOfInertia.C.
References DynamicList< T, SizeMin >::append(), f(), forAll, massPropertiesShell(), pp(), List< T >::transfer(), and triFace().

|
static |
Definition at line 327 of file momentOfInertia.C.
References Foam::I.
|
static |
Definition at line 345 of file momentOfInertia.C.
References forAll, mesh, meshInertia(), and tmp< T >::New().
Referenced by meshInertia().


|
static |
Definition at line 362 of file momentOfInertia.C.
References polyMeshTetDecomposition::cellTetIndices(), forAll, massPropertiesSolid(), mesh, UList< T >::size(), and Foam::Zero.
