fvMeshMovers: Rationalised directory structure and library naming convention

to support additional movers in a more modular fashion so that they can be
loaded individually.
This commit is contained in:
Henry Weller
2024-02-13 21:26:52 +00:00
parent fd18d7e528
commit c84e216282
65 changed files with 93 additions and 1668 deletions

View File

@ -19,7 +19,7 @@ mover-disabled
{
type motionSolver;
libs ("libfvMeshMovers.so" "libfvMotionSolvers.so");
libs ("libfvMotionSolvers.so");
motionSolver solidBody;

View File

@ -19,7 +19,7 @@ mover-disabled
{
type motionSolver;
libs ("libfvMeshMovers.so" "libfvMotionSolvers.so");
libs ("libfvMotionSolvers.so");
motionSolver solidBody;

View File

@ -54,7 +54,7 @@ wmake $targetType conversion
parallel/Allwmake $targetType $*
wmake $targetType fvMeshStitchers
wmake $targetType fvMeshMovers
fvMeshMovers/Allwmake $targetType $*
fvMeshTopoChangers/Allwmake $targetType $*
wmake $targetType fvMeshDistributors

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2022 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2022-2024 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -59,7 +59,7 @@ Usage
{
type motionSolver;
libs ("libfvMeshMovers.so" "libfvMotionSolvers.so");
libs ("libfvMotionSolvers.so");
motionSolver solidBody;

12
src/fvMeshMovers/Allwmake Executable file
View File

@ -0,0 +1,12 @@
#!/bin/sh
cd ${0%/*} || exit 1 # Run from this directory
# Parse arguments for library compilation
. $WM_PROJECT_DIR/wmake/scripts/AllwmakeParseArguments
wmake $targetType motionSolver
wmake $targetType interpolator
wmake $targetType multiValveEngine
wmake $targetType inkJet
#------------------------------------------------------------------------------

View File

@ -1,9 +0,0 @@
motionSolver/fvMeshMoversMotionSolver.C
interpolator/fvMeshMoversInterpolator.C
inkJet/fvMeshMoversInkJet.C
engine/engine/fvMeshMoversEngine.C
engine/layered/fvMeshMoversLayeredEngine.C
engine/engineValve/engineValve.C
engine/enginePiston/enginePiston.C
LIB = $(FOAM_LIBBIN)/libfvMeshMovers

View File

@ -1,152 +0,0 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2011-2023 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
OpenFOAM is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Class
Foam::DynamicID
Description
A class that holds the data needed to identify patches and zones.
The object is identified by name and the index is updated if the mesh has
changed.
\*---------------------------------------------------------------------------*/
#ifndef DynamicID_H
#define DynamicID_H
#include "word.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
// Forward declaration of friend functions and operators
template<class> class DynamicID;
template<class ObjectType>
Ostream& operator<<(Ostream&, const DynamicID<ObjectType>&);
/*---------------------------------------------------------------------------*\
Class DynamicID Declaration
\*---------------------------------------------------------------------------*/
template<class ObjectType>
class DynamicID
{
// Private Data
//- Object name
word name_;
//- Object index
label index_;
public:
// Constructors
//- Construct from name
DynamicID(const word& name, const ObjectType& obj)
:
name_(name),
index_(obj.findIndex(name_))
{}
//- Construct from Istream
DynamicID(Istream& is, const ObjectType& obj)
:
name_(is),
index_(obj.findIndex(name_))
{}
// Member Functions
// Access
//- Return name
const word& name() const
{
return name_;
}
//- Return index of first matching zone
label index() const
{
return index_;
}
//- Has the zone been found
bool active() const
{
return index_ != -1;
}
// Edit
//- Update
void update(const ObjectType& obj)
{
index_ = obj.findIndex(name_);
}
// IOstream Operators
friend Ostream& operator<< <ObjectType>
(
Ostream&,
const DynamicID<ObjectType>&
);
};
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
template<class ObjectType>
Ostream& operator<<(Ostream& os, const DynamicID<ObjectType>& dynId)
{
os << token::BEGIN_LIST
<< dynId.name() << token::SPACE << dynId.index()
<< token::END_LIST;
// Check state of Ostream
os.check("Ostream& operator<<(Ostream&, const DynamicID<ObjectType>&)");
return os;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#endif
// ************************************************************************* //

View File

@ -1,44 +0,0 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2011-2023 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
OpenFOAM is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
\*---------------------------------------------------------------------------*/
#ifndef polyPatchDynamicID_H
#define polyPatchDynamicID_H
#include "DynamicID.H"
#include "polyBoundaryMesh.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
//- Foam::polyPatchDynamicID
typedef DynamicID<polyBoundaryMesh> polyPatchDynamicID;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#endif
// ************************************************************************* //

View File

@ -1,219 +0,0 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2021 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
OpenFOAM is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
\*---------------------------------------------------------------------------*/
#include "fvMeshMoversEngine.H"
#include "engineTime.H"
#include "unitConversion.H"
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
namespace Foam
{
namespace fvMeshMovers
{
defineTypeNameAndDebug(engine, 0);
}
}
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
Foam::fvMeshMovers::engine::engine(fvMesh& mesh)
:
fvMeshMover(mesh),
meshCoeffs_(dict()),
rpm_
(
refCast<const userTimes::engine>(mesh.time().userTime()).rpm()
),
conRodLength_("conRodLength", dimLength, meshCoeffs_),
bore_("bore", dimLength, meshCoeffs_),
stroke_("stroke", dimLength, meshCoeffs_),
clearance_("clearance", dimLength, meshCoeffs_),
pistonIndex_(-1),
linerIndex_(-1),
cylinderHeadIndex_(-1),
deckHeight_("deckHeight", dimLength, great),
pistonPosition_("pistonPosition", dimLength, -great)
{
bool foundPiston = false;
bool foundLiner = false;
bool foundCylinderHead = false;
forAll(mesh.boundary(), i)
{
if (mesh.boundary()[i].name() == "piston")
{
pistonIndex_ = i;
foundPiston = true;
}
else if (mesh.boundary()[i].name() == "liner")
{
linerIndex_ = i;
foundLiner = true;
}
else if (mesh.boundary()[i].name() == "cylinderHead")
{
cylinderHeadIndex_ = i;
foundCylinderHead = true;
}
}
reduce(foundPiston, orOp<bool>());
reduce(foundLiner, orOp<bool>());
reduce(foundCylinderHead, orOp<bool>());
if (!foundPiston)
{
FatalErrorInFunction
<< "cannot find piston patch"
<< exit(FatalError);
}
if (!foundLiner)
{
FatalErrorInFunction
<< "cannot find liner patch"
<< exit(FatalError);
}
if (!foundCylinderHead)
{
FatalErrorInFunction
<< "cannot find cylinderHead patch"
<< exit(FatalError);
}
{
if (pistonIndex_ != -1)
{
pistonPosition_.value() = -great;
if (mesh.boundary()[pistonIndex_].patch().localPoints().size())
{
pistonPosition_.value() =
max(mesh.boundary()[pistonIndex_].patch().localPoints())
.z();
}
}
reduce(pistonPosition_.value(), maxOp<scalar>());
if (cylinderHeadIndex_ != -1)
{
deckHeight_.value() = great;
if
(
mesh.boundary()[cylinderHeadIndex_].patch().localPoints().size()
)
{
deckHeight_.value() = min
(
mesh.boundary()[cylinderHeadIndex_].patch().localPoints()
).z();
}
}
reduce(deckHeight_.value(), minOp<scalar>());
Info<< "deckHeight: " << deckHeight_.value() << nl
<< "piston position: " << pistonPosition_.value() << endl;
}
}
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
Foam::fvMeshMovers::engine::~engine()
{}
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
Foam::scalar Foam::fvMeshMovers::engine::theta() const
{
return mesh().time().userTimeValue();
}
Foam::scalar Foam::fvMeshMovers::engine::deltaTheta() const
{
return mesh().time().timeToUserTime(mesh().time().deltaTValue());
}
Foam::scalar Foam::fvMeshMovers::engine::pistonPosition
(
const scalar theta
) const
{
return
(
conRodLength_.value()
+ stroke_.value()/2.0
+ clearance_.value()
)
- (
stroke_.value()*::cos(degToRad(theta))/2.0
+ ::sqrt
(
sqr(conRodLength_.value())
- sqr(stroke_.value()*::sin(degToRad(theta))/2.0)
)
);
}
Foam::dimensionedScalar Foam::fvMeshMovers::engine::pistonPosition() const
{
return dimensionedScalar
(
"pistonPosition",
dimLength,
pistonPosition(theta())
);
}
Foam::dimensionedScalar Foam::fvMeshMovers::engine::pistonDisplacement() const
{
return dimensionedScalar
(
"pistonDisplacement",
dimLength,
pistonPosition(theta() - deltaTheta()) - pistonPosition().value()
);
}
Foam::dimensionedScalar Foam::fvMeshMovers::engine::pistonSpeed() const
{
return dimensionedScalar
(
"pistonSpeed",
dimVelocity,
pistonDisplacement().value()/(mesh().time().deltaTValue() + vSmall)
);
}
// ************************************************************************* //

View File

@ -1,165 +0,0 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2021 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
OpenFOAM is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Class
Foam::fvMeshMovers::engine
Description
Basic mesh motion specifically for engines.
SourceFiles
fvMeshMoversEngine.C
\*---------------------------------------------------------------------------*/
#ifndef fvMeshMoversEngine_H
#define fvMeshMoversEngine_H
#include "fvMeshMover.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
namespace fvMeshMovers
{
/*---------------------------------------------------------------------------*\
Class fvMeshMovers::engine Declaration
\*---------------------------------------------------------------------------*/
class engine
:
public fvMeshMover
{
protected:
// Protected Data
dictionary meshCoeffs_;
//- RPM
dimensionedScalar rpm_;
//- Optional engine geometry parameters
dimensionedScalar conRodLength_;
dimensionedScalar bore_;
dimensionedScalar stroke_;
dimensionedScalar clearance_;
label pistonIndex_;
label linerIndex_;
label cylinderHeadIndex_;
dimensionedScalar deckHeight_;
dimensionedScalar pistonPosition_;
public:
//- Runtime type information
TypeName("engine");
// Constructors
//- Construct from fvMesh
explicit engine(fvMesh& mesh);
//- Disallow default bitwise copy construction
engine(const engine&) = delete;
//- Destructor
virtual ~engine();
// Member Functions
//- Return the engines current operating RPM
const dimensionedScalar& rpm() const
{
return rpm_;
}
//- Return the engines connecting-rod length
const dimensionedScalar& conRodLength() const
{
return conRodLength_;
}
//- Return the engines bore
const dimensionedScalar& bore() const
{
return bore_;
}
//- Return the engines stroke
const dimensionedScalar& stroke() const
{
return stroke_;
}
//- Return the engines clearance-gap
const dimensionedScalar& clearance() const
{
return clearance_;
}
//- Return current crank-angle
virtual scalar theta() const;
//- Return crank-angle increment
virtual scalar deltaTheta() const;
//- Calculate the piston position from the engine geometry
// and given crank angle.
scalar pistonPosition(const scalar theta) const;
//- Return current piston position
dimensionedScalar pistonPosition() const;
//- Return piston displacement for current time step
dimensionedScalar pistonDisplacement() const;
//- Return piston speed for current time step
dimensionedScalar pistonSpeed() const;
// Member Operators
//- Disallow default bitwise assignment
void operator=(const engine&) = delete;
};
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace fvMeshMovers
} // End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#endif
// ************************************************************************* //

View File

@ -1,80 +0,0 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2011-2023 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
OpenFOAM is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
\*---------------------------------------------------------------------------*/
#include "enginePiston.H"
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
Foam::enginePiston::enginePiston
(
const fvMeshMover& meshMover,
const word& pistonPatchName,
const autoPtr<coordinateSystem>& pistonCS,
const scalar minLayer,
const scalar maxLayer
)
:
meshMover_(refCast<const fvMeshMovers::engine>(meshMover)),
patchIndex_(pistonPatchName, meshMover_.mesh().boundaryMesh()),
csPtr_(pistonCS),
minLayer_(minLayer),
maxLayer_(maxLayer)
{}
Foam::enginePiston::enginePiston
(
const fvMeshMover& meshMover,
const dictionary& dict
)
:
meshMover_(refCast<const fvMeshMovers::engine>(meshMover)),
patchIndex_(dict.lookup("patch"), meshMover_.mesh().boundaryMesh()),
csPtr_
(
coordinateSystem::New
(
meshMover_.mesh(),
dict.subDict("coordinateSystem")
)
),
minLayer_(dict.lookup<scalar>("minLayer")),
maxLayer_(dict.lookup<scalar>("maxLayer"))
{}
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
void Foam::enginePiston::writeDict(Ostream& os) const
{
os << nl << token::BEGIN_BLOCK
<< "patch " << patchIndex_.name() << token::END_STATEMENT << nl
<< "minLayer " << minLayer_ << token::END_STATEMENT << nl
<< "maxLayer " << maxLayer_ << token::END_STATEMENT << nl
<< token::END_BLOCK << endl;
}
// ************************************************************************* //

View File

@ -1,146 +0,0 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2011-2023 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
OpenFOAM is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Class
Foam::enginePiston
Description
Foam::enginePiston
SourceFiles
enginePiston.C
\*---------------------------------------------------------------------------*/
#ifndef enginePiston_H
#define enginePiston_H
#include "fvMeshMoversEngine.H"
#include "polyPatchDynamicID.H"
#include "coordinateSystem.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
/*---------------------------------------------------------------------------*\
Class enginePiston Declaration
\*---------------------------------------------------------------------------*/
class enginePiston
{
// Private Data
//- Reference to engine mesh mover
const fvMeshMovers::engine& meshMover_;
//- Piston patch
polyPatchDynamicID patchIndex_;
//- Coordinate system
autoPtr<coordinateSystem> csPtr_;
// Piston layering data
//- Min layer thickness
const scalar minLayer_;
//- Max layer thickness
const scalar maxLayer_;
public:
// Constructors
//- Construct from components
enginePiston
(
const fvMeshMover& meshMover,
const word& pistonPatchName,
const autoPtr<coordinateSystem>& pistonCS,
const scalar minLayer,
const scalar maxLayer
);
//- Construct from dictionary
enginePiston
(
const fvMeshMover& meshMover,
const dictionary& dict
);
//- Disallow default bitwise copy construction
enginePiston(const enginePiston&) = delete;
// Member Functions
//- Return coordinate system
const coordinateSystem& cs() const
{
return csPtr_();
}
//- Return ID of piston patch
const polyPatchDynamicID& patchIndex() const
{
return patchIndex_;
}
// Piston layering thickness
scalar minLayer() const
{
return minLayer_;
}
scalar maxLayer() const
{
return maxLayer_;
}
//- Write dictionary
void writeDict(Ostream&) const;
// Member Operators
//- Disallow default bitwise assignment
void operator=(const enginePiston&) = delete;
};
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#endif
// ************************************************************************* //

View File

@ -1,261 +0,0 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2011-2023 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
OpenFOAM is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
\*---------------------------------------------------------------------------*/
#include "engineValve.H"
// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * //
Foam::scalar Foam::engineValve::adjustCrankAngle(const scalar theta) const
{
if (theta < liftProfileStart_)
{
scalar adjustedTheta = theta;
while (adjustedTheta < liftProfileStart_)
{
adjustedTheta += liftProfileEnd_ - liftProfileStart_;
}
return adjustedTheta;
}
else if (theta > liftProfileEnd_)
{
scalar adjustedTheta = theta;
while (adjustedTheta > liftProfileEnd_)
{
adjustedTheta -= liftProfileEnd_ - liftProfileStart_;
}
return adjustedTheta;
}
else
{
return theta;
}
}
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
Foam::engineValve::engineValve
(
const word& name,
const fvMeshMover& meshMover,
const autoPtr<coordinateSystem>& valveCS,
const word& bottomPatchName,
const word& poppetPatchName,
const word& stemPatchName,
const word& curtainInPortPatchName,
const word& curtainInCylinderPatchName,
const word& detachInCylinderPatchName,
const word& detachInPortPatchName,
const labelList& detachFaces,
const Function1s::Table<scalar>& liftProfile,
const scalar minLift,
const scalar minTopLayer,
const scalar maxTopLayer,
const scalar minBottomLayer,
const scalar maxBottomLayer,
const scalar diameter
)
:
name_(name),
meshMover_(refCast<const fvMeshMovers::engine>(meshMover)),
csPtr_(valveCS),
bottomPatch_(bottomPatchName, meshMover_.mesh().boundaryMesh()),
poppetPatch_(poppetPatchName, meshMover_.mesh().boundaryMesh()),
stemPatch_(stemPatchName, meshMover_.mesh().boundaryMesh()),
curtainInPortPatch_
(
curtainInPortPatchName, meshMover_.mesh().boundaryMesh()
),
curtainInCylinderPatch_
(
curtainInCylinderPatchName, meshMover_.mesh().boundaryMesh()
),
detachInCylinderPatch_
(
detachInCylinderPatchName, meshMover_.mesh().boundaryMesh()
),
detachInPortPatch_(detachInPortPatchName, meshMover_.mesh().boundaryMesh()),
detachFaces_(detachFaces),
liftProfile_(liftProfile),
liftProfileStart_(min(liftProfile_.x())),
liftProfileEnd_(max(liftProfile_.x())),
minLift_(minLift),
minTopLayer_(minTopLayer),
maxTopLayer_(maxTopLayer),
minBottomLayer_(minBottomLayer),
maxBottomLayer_(maxBottomLayer),
diameter_(diameter)
{}
Foam::engineValve::engineValve
(
const word& name,
const fvMeshMover& meshMover,
const dictionary& dict
)
:
name_(name),
meshMover_(refCast<const fvMeshMovers::engine>(meshMover)),
csPtr_
(
coordinateSystem::New
(
meshMover_.mesh(),
dict.subDict("coordinateSystem")
)
),
bottomPatch_(dict.lookup("bottomPatch"), meshMover_.mesh().boundaryMesh()),
poppetPatch_(dict.lookup("poppetPatch"), meshMover_.mesh().boundaryMesh()),
stemPatch_(dict.lookup("stemPatch"), meshMover_.mesh().boundaryMesh()),
curtainInPortPatch_
(
dict.lookup("curtainInPortPatch"),
meshMover_.mesh().boundaryMesh()
),
curtainInCylinderPatch_
(
dict.lookup("curtainInCylinderPatch"),
meshMover_.mesh().boundaryMesh()
),
detachInCylinderPatch_
(
dict.lookup("detachInCylinderPatch"),
meshMover_.mesh().boundaryMesh()
),
detachInPortPatch_
(
dict.lookup("detachInPortPatch"),
meshMover_.mesh().boundaryMesh()
),
detachFaces_(dict.lookup("detachFaces")),
liftProfile_("liftProfile", dict),
liftProfileStart_(min(liftProfile_.x())),
liftProfileEnd_(max(liftProfile_.x())),
minLift_(dict.lookup<scalar>("minLift")),
minTopLayer_(dict.lookup<scalar>("minTopLayer")),
maxTopLayer_(dict.lookup<scalar>("maxTopLayer")),
minBottomLayer_(dict.lookup<scalar>("minBottomLayer")),
maxBottomLayer_(dict.lookup<scalar>("maxBottomLayer")),
diameter_(dict.lookup<scalar>("diameter"))
{}
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
Foam::scalar Foam::engineValve::lift(const scalar theta) const
{
return liftProfile_.value(adjustCrankAngle(theta));
}
bool Foam::engineValve::isOpen() const
{
return lift(meshMover_.theta()) >= minLift_;
}
Foam::scalar Foam::engineValve::curLift() const
{
return max
(
lift(meshMover_.theta()),
minLift_
);
}
Foam::scalar Foam::engineValve::curVelocity() const
{
return
-(
curLift()
- max
(
lift(meshMover_.theta() - meshMover_.deltaTheta()),
minLift_
)
)/(meshMover_.mesh().time().deltaTValue() + vSmall);
}
Foam::labelList Foam::engineValve::movingPatchIndices() const
{
labelList mpIDs(2);
label nMpIDs = 0;
if (bottomPatch_.active())
{
mpIDs[nMpIDs] = bottomPatch_.index();
nMpIDs++;
}
if (poppetPatch_.active())
{
mpIDs[nMpIDs] = poppetPatch_.index();
nMpIDs++;
}
mpIDs.setSize(nMpIDs);
return mpIDs;
}
void Foam::engineValve::writeDict(Ostream& os) const
{
os << nl << name() << nl << token::BEGIN_BLOCK;
cs().writeDict(os);
os << "bottomPatch " << bottomPatch_.name() << token::END_STATEMENT << nl
<< "poppetPatch " << poppetPatch_.name() << token::END_STATEMENT << nl
<< "stemPatch " << stemPatch_.name() << token::END_STATEMENT << nl
<< "curtainInPortPatch " << curtainInPortPatch_.name()
<< token::END_STATEMENT << nl
<< "curtainInCylinderPatch " << curtainInCylinderPatch_.name()
<< token::END_STATEMENT << nl
<< "detachInCylinderPatch " << detachInCylinderPatch_.name()
<< token::END_STATEMENT << nl
<< "detachInPortPatch " << detachInPortPatch_.name()
<< token::END_STATEMENT << nl
<< "detachFaces " << detachFaces_ << token::END_STATEMENT << nl
<< "liftProfile " << nl << token::BEGIN_BLOCK
<< liftProfile_ << token::END_BLOCK << token::END_STATEMENT << nl
<< "minLift " << minLift_ << token::END_STATEMENT << nl
<< "minTopLayer " << minTopLayer_ << token::END_STATEMENT << nl
<< "maxTopLayer " << maxTopLayer_ << token::END_STATEMENT << nl
<< "minBottomLayer " << minBottomLayer_ << token::END_STATEMENT << nl
<< "maxBottomLayer " << maxBottomLayer_ << token::END_STATEMENT << nl
<< "diameter " << diameter_ << token::END_STATEMENT << nl
<< token::END_BLOCK << endl;
}
// ************************************************************************* //

View File

@ -1,313 +0,0 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2011-2023 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
OpenFOAM is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Class
Foam::engineValve
Description
Foam::engineValve
SourceFiles
engineValve.C
\*---------------------------------------------------------------------------*/
#ifndef engineValve_H
#define engineValve_H
#include "fvMeshMoversEngine.H"
#include "coordinateSystem.H"
#include "polyPatchDynamicID.H"
#include "Table.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
/*---------------------------------------------------------------------------*\
Class engineValve Declaration
\*---------------------------------------------------------------------------*/
class engineValve
{
// Private Data
//- Name of valve
word name_;
//- Reference to engine mesh mover
const fvMeshMovers::engine& meshMover_;
//- Coordinate system
autoPtr<coordinateSystem> csPtr_;
// Patch and zone names
//- Valve bottom patch
polyPatchDynamicID bottomPatch_;
//- Valve poppet patch
polyPatchDynamicID poppetPatch_;
//- Valve stem patch
polyPatchDynamicID stemPatch_;
//- Valve curtain manifold patch
polyPatchDynamicID curtainInPortPatch_;
//- Valve curtain cylinder patch
polyPatchDynamicID curtainInCylinderPatch_;
//- Valve detach in cylinder patch
polyPatchDynamicID detachInCylinderPatch_;
//- Valve detach in port patch
polyPatchDynamicID detachInPortPatch_;
//- Faces to detach
labelList detachFaces_;
// Valve lift data
//- Valve lift profile
Function1s::Table<scalar> liftProfile_;
//- Lift curve start angle
scalar liftProfileStart_;
//- Lift curve end angle
scalar liftProfileEnd_;
//- Minimum valve lift. On this lift the valve is considered closed
const scalar minLift_;
// Valve layering data
//- Min top layer thickness
const scalar minTopLayer_;
//- Max top layer thickness
const scalar maxTopLayer_;
//- Min bottom layer thickness
const scalar minBottomLayer_;
//- Max bottom layer thickness
const scalar maxBottomLayer_;
//- Valve diameter
const scalar diameter_;
// Private Member Functions
//- Adjust crank angle to drop within the limits of the lift profile
scalar adjustCrankAngle(const scalar theta) const;
public:
// Constructors
//- Construct from components
engineValve
(
const word& name,
const fvMeshMover& meshMover,
const autoPtr<coordinateSystem>& valveCS,
const word& bottomPatchName,
const word& poppetPatchName,
const word& stemPatchName,
const word& curtainInPortPatchName,
const word& curtainInCylinderPatchName,
const word& detachInCylinderPatchName,
const word& detachInPortPatchName,
const labelList& detachFaces,
const Function1s::Table<scalar>& liftProfile,
const scalar minLift,
const scalar minTopLayer,
const scalar maxTopLayer,
const scalar minBottomLayer,
const scalar maxBottomLayer,
const scalar diameter
);
//- Construct from dictionary
engineValve
(
const word& name,
const fvMeshMover& meshMover,
const dictionary& dict
);
//- Disallow default bitwise copy construction
engineValve(const engineValve&) = delete;
// Member Functions
//- Return name
const word& name() const
{
return name_;
}
//- Return coordinate system
const coordinateSystem& cs() const
{
return csPtr_();
}
//- Return lift profile
const Function1s::Table<scalar>& liftProfile() const
{
return liftProfile_;
}
//- Return valve diameter
scalar diameter() const
{
return diameter_;
}
// Valve patches
//- Return ID of bottom patch
const polyPatchDynamicID& bottomPatchIndex() const
{
return bottomPatch_;
}
//- Return ID of poppet patch
const polyPatchDynamicID& poppetPatchIndex() const
{
return poppetPatch_;
}
//- Return ID of stem patch
const polyPatchDynamicID& stemPatchIndex() const
{
return stemPatch_;
}
//- Return ID of curtain in cylinder patch
const polyPatchDynamicID& curtainInCylinderPatchIndex() const
{
return curtainInCylinderPatch_;
}
//- Return ID of curtain in port patch
const polyPatchDynamicID& curtainInPortPatchIndex() const
{
return curtainInPortPatch_;
}
//- Return ID of detach in cylinder patch
const polyPatchDynamicID& detachInCylinderPatchIndex() const
{
return detachInCylinderPatch_;
}
//- Return ID of detach in port patch
const polyPatchDynamicID& detachInPortPatchIndex() const
{
return detachInPortPatch_;
}
//- Return face labels of detach curtain
const labelList& detachFaces() const
{
return detachFaces_;
}
// Valve layering thickness
scalar minTopLayer() const
{
return minTopLayer_;
}
scalar maxTopLayer() const
{
return maxTopLayer_;
}
scalar minBottomLayer() const
{
return minBottomLayer_;
}
scalar maxBottomLayer() const
{
return maxBottomLayer_;
}
// Valve position and velocity
//- Return valve lift given crank angle in degrees
scalar lift(const scalar theta) const;
//- Is the valve open?
bool isOpen() const;
//- Return current lift
scalar curLift() const;
//- Return valve velocity for current time-step
scalar curVelocity() const;
//- Return list of active patch labels for the valve head
// (stem is excluded)
labelList movingPatchIndices() const;
//- Write dictionary
void writeDict(Ostream&) const;
// Member Operators
//- Disallow default bitwise assignment
void operator=(const engineValve&) = delete;
};
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#endif
// ************************************************************************* //

View File

@ -1,117 +0,0 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2021-2022 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
OpenFOAM is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
\*---------------------------------------------------------------------------*/
#include "fvMeshMoversLayeredEngine.H"
#include "addToRunTimeSelectionTable.H"
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
namespace Foam
{
namespace fvMeshMovers
{
defineTypeNameAndDebug(layeredEngine, 0);
addToRunTimeSelectionTable(fvMeshMover, layeredEngine, fvMesh);
}
}
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
Foam::fvMeshMovers::layeredEngine::layeredEngine(fvMesh& mesh)
:
engine(mesh),
pistonLayers_("pistonLayers", dimLength, meshCoeffs_)
{}
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
Foam::fvMeshMovers::layeredEngine::~layeredEngine()
{}
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
bool Foam::fvMeshMovers::layeredEngine::update()
{
const scalar deltaZ = pistonDisplacement().value();
Info<< "deltaZ = " << deltaZ << endl;
// Position of the top of the static mesh layers above the piston
const scalar pistonPlusLayers =
pistonPosition_.value() + pistonLayers_.value();
pointField newPoints(mesh().points());
forAll(newPoints, pointi)
{
point& p = newPoints[pointi];
if (p.z() < pistonPlusLayers) // In piston bowl
{
p.z() += deltaZ;
}
else if (p.z() < deckHeight_.value()) // In liner region
{
p.z() +=
deltaZ
*(deckHeight_.value() - p.z())
/(deckHeight_.value() - pistonPlusLayers);
}
}
mesh().movePoints(newPoints);
pistonPosition_.value() += deltaZ;
const scalar pistonSpeed = deltaZ/mesh().time().deltaTValue();
Info<< "clearance: " << deckHeight_.value() - pistonPosition_.value() << nl
<< "Piston speed = " << pistonSpeed << " m/s" << endl;
return true;
}
void Foam::fvMeshMovers::layeredEngine::topoChange(const polyTopoChangeMap&)
{
NotImplemented;
}
void Foam::fvMeshMovers::layeredEngine::mapMesh(const polyMeshMap&)
{}
void Foam::fvMeshMovers::layeredEngine::distribute
(
const polyDistributionMap&
)
{
NotImplemented;
}
// ************************************************************************* //

View File

@ -1,110 +0,0 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2021-2022 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
OpenFOAM is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Class
Foam::fvMeshMoversLayeredEngine
Description
Foam::fvMeshMoversLayeredEngine
SourceFiles
fvMeshMoversLayeredEngine.C
\*---------------------------------------------------------------------------*/
#ifndef fvMeshMoversLayeredEngine_H
#define fvMeshMoversLayeredEngine_H
#include "fvMeshMoversEngine.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
namespace fvMeshMovers
{
/*---------------------------------------------------------------------------*\
Class fvMeshMovers::layeredEngine Declaration
\*---------------------------------------------------------------------------*/
class layeredEngine
:
public engine
{
// Private Data
dimensionedScalar pistonLayers_;
public:
//- Runtime type information
TypeName("layeredEngine");
// Constructors
//- Construct from fvMesh
layeredEngine(fvMesh& mesh);
//- Disallow default bitwise copy construction
layeredEngine(const layeredEngine&) = delete;
//- Destructor
~layeredEngine();
// Member Functions
//- Update the mesh for both mesh motion and topology change
virtual bool update();
//- Update corresponding to the given map
virtual void topoChange(const polyTopoChangeMap&);
//- Update from another mesh using the given map
virtual void mapMesh(const polyMeshMap&);
//- Update corresponding to the given distribution map
virtual void distribute(const polyDistributionMap&);
// Member Operators
//- Disallow default bitwise assignment
void operator=(const layeredEngine&) = delete;
};
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace fvMeshMovers
} // End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#endif
// ************************************************************************* //

View File

@ -0,0 +1,3 @@
fvMeshMoversInkJet.C
LIB = $(FOAM_LIBBIN)/libfvMeshMoversInkJet

View File

@ -0,0 +1,3 @@
fvMeshMoversInterpolator.C
LIB = $(FOAM_LIBBIN)/libfvMeshMoversInterpolator

View File

@ -0,0 +1,10 @@
EXE_INC = \
-I$(LIB_SRC)/motionSolvers/lnInclude \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude
LIB_LIBS = \
-lmotionSolvers \
-lfiniteVolume \
-lmeshTools \
-lfvMeshStitchers

View File

@ -0,0 +1,3 @@
fvMeshMoversMotionSolver.C
LIB = $(FOAM_LIBBIN)/libfvMeshMoversMotionSolver

View File

@ -0,0 +1,10 @@
EXE_INC = \
-I$(LIB_SRC)/motionSolvers/lnInclude \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude
LIB_LIBS = \
-lmotionSolvers \
-lfiniteVolume \
-lmeshTools \
-lfvMeshStitchers

View File

@ -2,7 +2,7 @@ EXE_INC = \
-I$(LIB_SRC)/triSurface/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/motionSolvers/lnInclude \
-I$(LIB_SRC)/fvMeshMovers/lnInclude \
-I$(LIB_SRC)/fvMeshMovers/motionSolver/lnInclude \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/fileFormats/lnInclude \
-I$(LIB_SRC)/functionObjects/forces/lnInclude
@ -11,6 +11,6 @@ LIB_LIBS = \
-ltriSurface \
-lmeshTools \
-lmotionSolvers \
-lfvMeshMovers \
-lfvMeshMoversMotionSolver \
-lfiniteVolume \
-lfileFormats

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2018-2023 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2018-2024 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -32,7 +32,7 @@ Description
\verbatim
mover motionSolver;
libs ("libfvMeshMovers.so" "libfvMotionSolvers.so");
libs ("libfvMotionSolvers.so");
motionSolver displacementLinearMotion;

View File

@ -11,4 +11,4 @@ LIB_LIBS = \
-lforces \
-lmeshTools \
-lfileFormats \
-lmotionSolvers
-lfvMeshMoversMotionSolver

View File

@ -1,11 +1,11 @@
EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/motionSolvers/lnInclude \
-I$(LIB_SRC)/fvMeshMovers/lnInclude \
-I$(LIB_SRC)/fvMeshMovers/motionSolver/lnInclude \
-I$(LIB_SRC)/rigidBodyDynamics/lnInclude
LIB_LIBS = \
-lfiniteVolume \
-lmotionSolvers \
-lfvMeshMovers \
-lfvMeshMoversMotionSolver \
-lrigidBodyDynamics

View File

@ -9,4 +9,4 @@ LIB_LIBS = \
-lforces \
-lmeshTools \
-lfileFormats \
-lmotionSolvers
-lfvMeshMoversMotionSolver

View File

@ -1,11 +1,11 @@
EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/motionSolvers/lnInclude \
-I$(LIB_SRC)/fvMeshMovers/lnInclude \
-I$(LIB_SRC)/fvMeshMovers/motionSolver/lnInclude \
-I$(LIB_SRC)/sixDoFRigidBodyMotion/lnInclude
LIB_LIBS = \
-lfiniteVolume \
-lmotionSolvers \
-lfvMeshMovers \
-lfvMeshMoversMotionSolver \
-lsixDoFRigidBodyMotion

View File

@ -18,7 +18,7 @@ mover
{
type motionSolver;
libs ("libfvMeshMovers.so" "libfvMotionSolvers.so");
libs ("libfvMotionSolvers.so");
motionSolver solidBody;

View File

@ -18,7 +18,7 @@ mover
{
type motionSolver;
libs ("libfvMeshMovers.so" "libfvMotionSolvers.so");
libs ("libfvMotionSolvers.so");
motionSolver solidBody;

View File

@ -20,7 +20,7 @@ mover
{
type motionSolver;
libs ("libfvMeshMovers.so" "libfvMotionSolvers.so");
libs ("libfvMotionSolvers.so");
motionSolver solidBody;

View File

@ -18,7 +18,7 @@ mover
{
type motionSolver;
libs ("libfvMeshMovers.so" "libfvMotionSolvers.so");
libs ("libfvMotionSolvers.so");
motionSolver solidBody;

View File

@ -18,7 +18,7 @@ mover
{
type motionSolver;
libs ("libfvMeshMovers.so" "libfvMotionSolvers.so");
libs ("libfvMotionSolvers.so");
motionSolver solidBody;

View File

@ -18,7 +18,7 @@ mover
{
type motionSolver;
libs ("libfvMeshMovers.so" "libfvMotionSolvers.so");
libs ("libfvMotionSolvers.so");
motionSolver solidBody;

View File

@ -18,7 +18,7 @@ mover
{
type motionSolver;
libs ("libfvMeshMovers.so" "libfvMotionSolvers.so");
libs ("libfvMotionSolvers.so");
motionSolver motionSolverList;

View File

@ -18,7 +18,7 @@ mover
{
type motionSolver;
libs ("libfvMeshMovers.so" "libfvMotionSolvers.so");
libs ("libfvMotionSolvers.so");
motionSolver velocityComponentLaplacian;

View File

@ -18,7 +18,7 @@ mover
{
type motionSolver;
libs ("libfvMeshMovers.so" "libfvMotionSolvers.so");
libs ("libfvMotionSolvers.so");
motionSolver solidBody;

View File

@ -18,7 +18,7 @@ mover
{
type motionSolver;
libs ("libfvMeshMovers.so" "libfvMotionSolvers.so");
libs ("libfvMotionSolvers.so");
motionSolver solidBody;

View File

@ -18,7 +18,7 @@ mover
{
type motionSolver;
libs ("libfvMeshMovers.so" "libfvMotionSolvers.so");
libs ("libfvMotionSolvers.so");
motionSolver solidBody;

View File

@ -17,7 +17,7 @@ mover
{
type motionSolver;
libs ("libfvMeshMovers.so" "libsixDoFRigidBodyMotion.so");
libs ("libsixDoFRigidBodyMotion.so");
motionSolver sixDoFRigidBodyMotion;

View File

@ -17,7 +17,7 @@ mover
{
type motionSolver;
libs ("libfvMeshMovers.so" "librigidBodyMeshMotion.so");
libs ("librigidBodyMeshMotion.so");
motionSolver rigidBodyMotion;

View File

@ -17,7 +17,7 @@ mover
{
type motionSolver;
libs ("libfvMeshMovers.so" "libsixDoFRigidBodyMotion.so");
libs ("libsixDoFRigidBodyMotion.so");
motionSolver sixDoFRigidBodyMotion;

View File

@ -18,7 +18,7 @@ mover
{
type motionSolver;
libs ("libfvMeshMovers.so" "librigidBodyMeshMotion.so");
libs ("librigidBodyMeshMotion.so");
motionSolver rigidBodyMotion;

View File

@ -17,7 +17,7 @@ mover
{
type motionSolver;
libs ("libfvMeshMovers.so" "librigidBodyMeshMotion.so");
libs ("librigidBodyMeshMotion.so");
motionSolver rigidBodyMotion;

View File

@ -17,7 +17,7 @@ mover
{
type motionSolver;
libs ("libfvMeshMovers.so" "libsixDoFRigidBodyMotion.so");
libs ("libsixDoFRigidBodyMotion.so");
motionSolver sixDoFRigidBodyMotion;

View File

@ -17,7 +17,7 @@ mover
{
type motionSolver;
libs ("libfvMeshMovers.so" "librigidBodyMeshMotion.so");
libs ("librigidBodyMeshMotion.so");
motionSolver rigidBodyMotion;

View File

@ -17,7 +17,7 @@ mover
{
type motionSolver;
libs ("libfvMeshMovers.so" "libsixDoFRigidBodyMotion.so");
libs ("libsixDoFRigidBodyMotion.so");
motionSolver sixDoFRigidBodyMotion;

View File

@ -18,7 +18,7 @@ mover
{
type motionSolver;
libs ("libfvMeshMovers.so" "libfvMotionSolvers.so");
libs ("libfvMotionSolvers.so");
motionSolver solidBody;

View File

@ -18,7 +18,7 @@ mover
{
type motionSolver;
libs ("libfvMeshMovers.so" "libfvMotionSolvers.so");
libs ("libfvMotionSolvers.so");
motionSolver motionSolverList;

View File

@ -17,7 +17,7 @@ mover
{
type motionSolver;
libs ("libfvMeshMovers.so" "librigidBodyMeshMotion.so");
libs ("librigidBodyMeshMotion.so");
motionSolver rigidBodyMotion;

View File

@ -18,7 +18,7 @@ mover
{
type motionSolver;
libs ("libfvMeshMovers.so" "libfvMotionSolvers.so");
libs ("libfvMotionSolvers.so");
motionSolver solidBody;

View File

@ -18,7 +18,7 @@ mover
{
type motionSolver;
libs ("libfvMeshMovers.so" "libfvMotionSolvers.so");
libs ("libfvMotionSolvers.so");
motionSolver solidBody;

View File

@ -18,7 +18,7 @@ mover
{
type motionSolver;
libs ("libfvMeshMovers.so" "libfvMotionSolvers.so");
libs ("libfvMotionSolvers.so");
motionSolver solidBody;

View File

@ -18,7 +18,7 @@ mover
{
type motionSolver;
libs ("libfvMeshMovers.so" "libfvMotionSolvers.so");
libs ("libfvMotionSolvers.so");
motionSolver solidBody;

View File

@ -18,7 +18,7 @@ mover
{
type motionSolver;
libs ("libfvMeshMovers.so" "libfvMotionSolvers.so");
libs ("libfvMotionSolvers.so");
motionSolver solidBody;

View File

@ -18,7 +18,7 @@ mover
{
type motionSolver;
libs ("libfvMeshMovers.so" "libfvMotionSolvers.so");
libs ("libfvMotionSolvers.so");
motionSolver solidBody;

View File

@ -18,7 +18,7 @@ mover
{
type motionSolver;
libs ("libfvMeshMovers.so" "libfvMotionSolvers.so");
libs ("libfvMotionSolvers.so");
motionSolver solidBody;

View File

@ -18,7 +18,7 @@ mover
{
type motionSolver;
libs ("libfvMeshMovers.so" "libfvMotionSolvers.so");
libs ("libfvMotionSolvers.so");
motionSolver solidBody;

View File

@ -18,7 +18,7 @@ mover
{
type motionSolver;
libs ("libfvMeshMovers.so" "libfvMotionSolvers.so");
libs ("libfvMotionSolvers.so");
motionSolver solidBody;

View File

@ -19,7 +19,7 @@ mover
{
type motionSolver;
libs ("libfvMeshMovers.so" "libfvMotionSolvers.so");
libs ("libfvMotionSolvers.so");
motionSolver displacementLaplacian;

View File

@ -19,7 +19,7 @@ mover
{
type motionSolver;
libs ("libfvMeshMovers.so" "libfvMotionSolvers.so");
libs ("libfvMotionSolvers.so");
motionSolver displacementSBRStress;

View File

@ -18,7 +18,7 @@ mover
{
type motionSolver;
libs ("libfvMeshMovers.so" "libfvMotionSolvers.so");
libs ("libfvMotionSolvers.so");
motionSolver solidBody;

View File

@ -18,7 +18,7 @@ mover
{
type motionSolver;
libs ("libfvMeshMovers.so" "libfvMotionSolvers.so");
libs ("libfvMotionSolvers.so");
motionSolver solidBody;

View File

@ -18,7 +18,7 @@ mover
{
type motionSolver;
libs ("libfvMeshMovers.so" "libfvMotionSolvers.so");
libs ("libfvMotionSolvers.so");
motionSolver solidBody;

View File

@ -18,7 +18,7 @@ mover
{
type motionSolver;
libs ("libfvMeshMovers.so" "libfvMotionSolvers.so");
libs ("libfvMotionSolvers.so");
motionSolver velocityComponentLaplacian;