functionalRigidBody Class Reference

Multiple rigid body mesh motion in which movement is specified as a solidBodyMotionFunction for each body and optionally for the exterior of the region. More...

Inheritance diagram for functionalRigidBody:
Collaboration diagram for functionalRigidBody:

Public Member Functions

 TypeName ("functionalRigidBody")
 Runtime type information. More...
 
 functionalRigidBody (const polyMesh &, const dictionary &dict)
 Construct from polyMesh and dictionary. More...
 
 functionalRigidBody (const functionalRigidBody &)=delete
 Disallow default bitwise copy construction. More...
 
 ~functionalRigidBody ()
 Destructor. More...
 
void operator= (const functionalRigidBody &)=delete
 Disallow default bitwise assignment. More...
 
- Public Member Functions inherited from multiRigidBody
 TypeName ("multiRigidBody")
 Runtime type information. More...
 
 multiRigidBody (const polyMesh &, const dictionary &dict)
 Construct from polyMesh and dictionary. More...
 
 multiRigidBody (const multiRigidBody &)=delete
 Disallow default bitwise copy construction. More...
 
 ~multiRigidBody ()
 Destructor. More...
 
virtual tmp< pointFieldnewPoints ()
 Return point location obtained from the current motion field. More...
 
virtual void topoChange (const polyTopoChangeMap &)
 Update local data for topology changes. More...
 
virtual void mapMesh (const polyMeshMap &)
 Update from another mesh using the given map. More...
 
void operator= (const multiRigidBody &)=delete
 Disallow default bitwise assignment. More...
 
- Public Member Functions inherited from displacementPoints0
 TypeName ("displacementPoints0")
 Runtime type information. More...
 
 displacementPoints0 (const polyMesh &, const dictionary &, const word &type)
 Construct from mesh and dictionary. More...
 
 displacementPoints0 (const displacementPoints0 &)=delete
 Disallow default bitwise copy construction. More...
 
virtual ~displacementPoints0 ()
 Destructor. More...
 
pointFieldpoints0 ()
 Return reference to the reference field. More...
 
const pointFieldpoints0 () const
 Return reference to the reference field. More...
 
virtual void movePoints (const pointField &)
 Update local data for geometry changes. More...
 
virtual void distribute (const polyDistributionMap &)
 Update corresponding to the given distribution map. More...
 
virtual bool write () const
 Write points0 if the mesh topology changed. More...
 
void operator= (const displacementPoints0 &)=delete
 Disallow default bitwise assignment. More...
 
- Public Member Functions inherited from pointMeshMover
 TypeName ("pointMeshMover")
 Runtime type information. More...
 
 declareRunTimeSelectionTable (autoPtr, pointMeshMover, dictionary,(const polyMesh &mesh, const dictionary &dict),(mesh, dict))
 
 pointMeshMover (const polyMesh &mesh, const word &type)
 Construct from polyMesh and dictionary and type. More...
 
virtual autoPtr< pointMeshMoverclone () const
 Clone function. More...
 
virtual ~pointMeshMover ()
 Destructor. More...
 
const polyMeshpoly () const
 Return reference to mesh. More...
 
virtual void twoDCorrectPoints (pointField &) const
 Correct point field for reduced-dimensionality cases. More...
 
virtual bool solidBodyMotion () const
 Is the motion solid body? I.e., are the volumes and area magnitudes. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from displacementPoints0
static pointVectorField readPoints0 (const polyMesh &mesh)
 
- Static Public Member Functions inherited from pointMeshMover
static autoPtr< pointMeshMoverNew (const polyMesh &, const dictionary &)
 Select constructed from polyMesh and dictionary. More...
 
- Protected Attributes inherited from multiRigidBody
PtrList< bodyMeshbodyMeshes_
 List of the bodyMeshes containing the patches and point motion. More...
 
- Protected Attributes inherited from displacementPoints0
pointVectorField points0_
 Starting points. More...
 

Detailed Description

Multiple rigid body mesh motion in which movement is specified as a solidBodyMotionFunction for each body and optionally for the exterior of the region.

Applies distance weighted SLERP interpolation between the septernions returned by each of the body movement functions.

The mesh patches for each body must be specified and optionally pointZones that move with each body. The motion of the mesh around each body may be constrained by the optional innerDistance and outerDistance, the mesh within the innerDistance moves with the body without distortion and the mesh beyond the outerDistance does not move with body but may move by the proximity of other bodies or by the optionally specified exterior motion.

Example of the motion of a single body in a stationary region:

mover
{
    type            pointMeshMover;

    libs            ("libpointMeshMovers.so");

    pointMeshMover
    {
        type            functionalRigidBody;

        exterior
        {
            innerDistance   0.05;
            outerDistance   0.35;
        }

        patches         (floatingObject);
        innerDistance   0.05;
        outerDistance   0.35;

        function
        {
            type            oscillatingRotatingMotion;
            origin          (0.5 0.45 0.35);
            amplitude       (0 10 0);
            omega           2;
        }
    }
}

Example of the motion of a two bodies in a moving region all of which rotate around the same axis with an oscillatory manner:

mover
{
    type            pointMeshMover;

    libs            ("libpointMeshMovers.so");

    pointMeshMover
    {
        type            functionalRigidBody;

        exterior
        {
            innerDistance   0.05;
            outerDistance   0.35;

            function
            {
                type            oscillatingRotatingMotion;
                origin          (0.5 0.45 0.35);
                amplitude       (0 1 0);
                omega           1;
            }
        }

        bodies
        {
            floatingObject1
            {
                patches         (floatingObject1);
                innerDistance   0.05;
                outerDistance   0.3;

                function
                {
                    type            oscillatingRotatingMotion;
                    origin          (0.5 0.45 0.35);
                    amplitude       (0 5 0);
                    omega           2;
                }
            }

            floatingObject2
            {
                patches         (floatingObject2);
                innerDistance   0.05;
                outerDistance   0.3;

                function
                {
                    type            oscillatingRotatingMotion;
                    origin          (0.5 0.45 0.35);
                    amplitude       (0 5 0);
                    omega           -2;
                }
            }
        }
    }
}
See also
Foam::multiRigidBodyMeshMotion
Source files

Definition at line 162 of file functionalRigidBody_pointMeshMover.H.

Constructor & Destructor Documentation

◆ functionalRigidBody() [1/2]

functionalRigidBody ( const polyMesh mesh,
const dictionary dict 
)

Construct from polyMesh and dictionary.

Definition at line 70 of file functionalRigidBody_pointMeshMover.C.

References multiRigidBody::bodyMeshes_, dict, forAllConstIter, mesh, solidBodyMotionFunction::New(), UPtrList< T >::size(), and fvMesh::time().

Here is the call graph for this function:

◆ functionalRigidBody() [2/2]

Disallow default bitwise copy construction.

◆ ~functionalRigidBody()

Destructor.

Definition at line 131 of file functionalRigidBody_pointMeshMover.C.

Member Function Documentation

◆ TypeName()

TypeName ( "functionalRigidBody"  )

Runtime type information.

◆ operator=()

void operator= ( const functionalRigidBody )
delete

Disallow default bitwise assignment.


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