Loading...
Searching...
No Matches
momentOfInertia Class Reference

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< tensorFieldmeshInertia (const polyMesh &mesh)
static tensor meshInertia (const polyMesh &mesh, label celli)

Detailed Description

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

Source files

Definition at line 61 of file momentOfInertia.H.

Member Function Documentation

◆ massPropertiesSolid() [1/2]

void massPropertiesSolid ( const pointField & pts,
const triFaceList & triFaces,
scalar density,
scalar & mass,
vector & cM,
tensor & J )
static

◆ massPropertiesShell() [1/2]

void massPropertiesShell ( const pointField & pts,
const triFaceList & triFaces,
scalar density,
scalar & mass,
vector & cM,
tensor & J,
bool doReduce = false )
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().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ massPropertiesSolid() [2/2]

void massPropertiesSolid ( const triSurface & surf,
scalar density,
scalar & mass,
vector & cM,
tensor & J )
static

Definition at line 252 of file momentOfInertia.C.

References forAll, massPropertiesSolid(), PrimitivePatch< FaceList, PointField >::points(), UList< T >::size(), and triFace().

Here is the call graph for this function:

◆ massPropertiesShell() [2/2]

void massPropertiesShell ( const triSurface & surf,
scalar density,
scalar & mass,
vector & cM,
tensor & J,
bool doReduce = false )
static

Definition at line 272 of file momentOfInertia.C.

References forAll, massPropertiesShell(), PrimitivePatch< FaceList, PointField >::points(), UList< T >::size(), and triFace().

Here is the call graph for this function:

◆ massPropertiesPatch()

void massPropertiesPatch ( const polyPatch & pp,
scalar density,
scalar & mass,
vector & cM,
tensor & J,
bool doReduce = false )
static

Definition at line 293 of file momentOfInertia.C.

References DynamicList< T, SizeMin >::append(), f(), forAll, massPropertiesShell(), pp(), List< T >::transfer(), and triFace().

Here is the call graph for this function:

◆ applyParallelAxisTheorem()

Foam::tensor applyParallelAxisTheorem ( scalar mass,
const vector & cM,
const tensor & J,
const vector & refPt )
static

Definition at line 327 of file momentOfInertia.C.

References Foam::I.

◆ meshInertia() [1/2]

Foam::tmp< Foam::tensorField > meshInertia ( const polyMesh & mesh)
static

Definition at line 345 of file momentOfInertia.C.

References forAll, mesh, meshInertia(), and tmp< T >::New().

Referenced by meshInertia().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ meshInertia() [2/2]

Foam::tensor meshInertia ( const polyMesh & mesh,
label celli )
static

Definition at line 362 of file momentOfInertia.C.

References polyMeshTetDecomposition::cellTetIndices(), forAll, massPropertiesSolid(), mesh, UList< T >::size(), and Foam::Zero.

Here is the call graph for this function:

The documentation for this class was generated from the following files: