Skip to content

oscillatingRotatingMotion for pointDisplacement field does not decompose if not written differently

Summary

Boundary condition type solidBodyMotionDisplacement; with solidBodyMotionFunction oscillatingRotatingMotion; for pointDisplacement field runs fine in serial but needs to be written differently if the case wants to be decomposed.

Steps to reproduce

Decomposing the tutorial case $FOAM_TUTORIALS/mesh/moveDynamicMesh/relativeMotion/box2D_moveDynamicMesh I get the following error when decomposing the field:

Processor 0: field transfer
 

--> FOAM FATAL IO ERROR: (openfoam-2206)
Entry 'solidBodyMotionFunction' not found in dictionary "/scratch/cibanez/relativeMotion/box2D_moveDynamicMesh/0/pointDisplacement.boundaryField.wing2.oscillatingRotatingMotionCoeffs"


file: 0/pointDisplacement.boundaryField.wing2.oscillatingRotatingMotionCoeffs at line 56 to 59.

    From bool Foam::dictionary::readEntry(const Foam::word&, T&, Foam::keyType::option, bool) const [with T = Foam::word]
    in file /prog/OpenFOAM/OpenFOAM-v2206/src/OpenFOAM/lnInclude/dictionaryTemplates.C at line 322.

FOAM exiting

What is the current bug behaviour?

The current BC in pointDisplacement runs in serial

    wing2
    {
        // Make wing2 rotate around its centre
        type        solidBodyMotionDisplacement;
        solidBodyMotionFunction  oscillatingRotatingMotion;
        oscillatingRotatingMotionCoeffs
        {
           origin      (-0.41 0 0);
           axis        (0 0 1);
           omega       10;          // rad/s, 1rad/s=9.5rpm
           amplitude   (0 0 10);    // max amplitude (degrees)
        }
    }

but it needs to be written as follows to be able to decompose the boundary field

    wing2
    {
        // Make wing2 rotate around its centre
        type        solidBodyMotionDisplacement;
        solidBodyMotionFunction  oscillatingRotatingMotion;
        oscillatingRotatingMotionCoeffs
        {
           solidBodyMotionFunction  oscillatingRotatingMotion; // This line added inside the coeffs
           origin      (-0.41 0 0);
           axis        (0 0 1);
           omega       10;          // rad/s, 1rad/s=9.5rpm
           amplitude   (0 0 10);    // max amplitude (degrees)
        }
    }

What is the expected correct behavior?

It should decompose as it's written in the tutorial.

Environment information

  • OpenFOAM version : v2206 | v2112