motionSolvers::motionSolverList: Updated as a PtrDictionary

so that the input is now dictionary rather than list of dictionaries which
provides support for dictionary substitutions within the motionSolver
sub-dictionaries and also simplifies lookup of specific motionSolvers within the
list.  For example the dynamicMeshDict for the floatingObject case with a second
floating object would be:

mover
{
    type            motionSolver;

    libs            ("libfvMeshMovers.so" "librigidBodyMeshMotion.so");

    motionSolver       motionSolverList;

    solvers
    {
        floatingObject
        {
            motionSolver rigidBodyMotion;

            report          on;

            solver
            {
                type Newmark;
            }

            accelerationRelaxation 0.7;

            bodies
            {
                floatingObject
                {
                    type            cuboid;
                    parent          root;

                    // Cuboid dimensions
                    Lx              0.3;
                    Ly              0.2;
                    Lz              0.5;

                    // Density of the cuboid
                    rho             500;

                    // Cuboid mass
                    mass            #calc "$rho*$Lx*$Ly*$Lz";
                    L               ($Lx $Ly $Lz);
                    centreOfMass    (0 0 0.25);
                    transform       (1 0 0 0 1 0 0 0 1) (0.5 0.45 0.1);

                    joint
                    {
                        type            composite;
                        joints
                        (
                            {
                                type Py;
                            }
                            {
                                type Ry;
                            }
                        );
                    }

                    patches         (floatingObject);
                    innerDistance   0.05;
                    outerDistance   0.35;
                }
            }
        }

        anotherFloatingObject
        {
        .
        .
        .
        }
    }
}
This commit is contained in:
Henry Weller
2022-04-04 16:38:20 +01:00
parent c1acd88a37
commit 98fa8df9a1
45 changed files with 178 additions and 125 deletions

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2011-2021 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2022 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -55,7 +55,8 @@ int main(int argc, char *argv[])
)
);
autoPtr<motionSolver> motionPtr = motionSolver::New(mesh, dynamicMeshDict);
autoPtr<motionSolver> motionPtr =
motionSolver::New("motionSolver", mesh, dynamicMeshDict);
while (runTime.loop())
{