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:
@ -19,7 +19,7 @@ mover-disabled
|
||||
{
|
||||
type motionSolver;
|
||||
|
||||
libs ("libfvMeshMovers.so" "libfvMotionSolvers.so");
|
||||
libs ("libfvMotionSolvers.so");
|
||||
|
||||
motionSolver solidBody;
|
||||
|
||||
|
||||
@ -19,7 +19,7 @@ mover-disabled
|
||||
{
|
||||
type motionSolver;
|
||||
|
||||
libs ("libfvMeshMovers.so" "libfvMotionSolvers.so");
|
||||
libs ("libfvMotionSolvers.so");
|
||||
|
||||
motionSolver solidBody;
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
@ -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
12
src/fvMeshMovers/Allwmake
Executable 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
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
@ -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
|
||||
@ -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
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -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
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -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)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -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
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -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;
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -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
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -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;
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -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
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -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;
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -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
|
||||
|
||||
// ************************************************************************* //
|
||||
3
src/fvMeshMovers/inkJet/Make/files
Normal file
3
src/fvMeshMovers/inkJet/Make/files
Normal file
@ -0,0 +1,3 @@
|
||||
fvMeshMoversInkJet.C
|
||||
|
||||
LIB = $(FOAM_LIBBIN)/libfvMeshMoversInkJet
|
||||
3
src/fvMeshMovers/interpolator/Make/files
Normal file
3
src/fvMeshMovers/interpolator/Make/files
Normal file
@ -0,0 +1,3 @@
|
||||
fvMeshMoversInterpolator.C
|
||||
|
||||
LIB = $(FOAM_LIBBIN)/libfvMeshMoversInterpolator
|
||||
10
src/fvMeshMovers/interpolator/Make/options
Normal file
10
src/fvMeshMovers/interpolator/Make/options
Normal 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
|
||||
3
src/fvMeshMovers/motionSolver/Make/files
Normal file
3
src/fvMeshMovers/motionSolver/Make/files
Normal file
@ -0,0 +1,3 @@
|
||||
fvMeshMoversMotionSolver.C
|
||||
|
||||
LIB = $(FOAM_LIBBIN)/libfvMeshMoversMotionSolver
|
||||
10
src/fvMeshMovers/motionSolver/Make/options
Normal file
10
src/fvMeshMovers/motionSolver/Make/options
Normal 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
|
||||
@ -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
|
||||
|
||||
@ -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;
|
||||
|
||||
|
||||
@ -11,4 +11,4 @@ LIB_LIBS = \
|
||||
-lforces \
|
||||
-lmeshTools \
|
||||
-lfileFormats \
|
||||
-lmotionSolvers
|
||||
-lfvMeshMoversMotionSolver
|
||||
|
||||
@ -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
|
||||
|
||||
@ -9,4 +9,4 @@ LIB_LIBS = \
|
||||
-lforces \
|
||||
-lmeshTools \
|
||||
-lfileFormats \
|
||||
-lmotionSolvers
|
||||
-lfvMeshMoversMotionSolver
|
||||
|
||||
@ -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
|
||||
|
||||
@ -18,7 +18,7 @@ mover
|
||||
{
|
||||
type motionSolver;
|
||||
|
||||
libs ("libfvMeshMovers.so" "libfvMotionSolvers.so");
|
||||
libs ("libfvMotionSolvers.so");
|
||||
|
||||
motionSolver solidBody;
|
||||
|
||||
|
||||
@ -18,7 +18,7 @@ mover
|
||||
{
|
||||
type motionSolver;
|
||||
|
||||
libs ("libfvMeshMovers.so" "libfvMotionSolvers.so");
|
||||
libs ("libfvMotionSolvers.so");
|
||||
|
||||
motionSolver solidBody;
|
||||
|
||||
|
||||
@ -20,7 +20,7 @@ mover
|
||||
{
|
||||
type motionSolver;
|
||||
|
||||
libs ("libfvMeshMovers.so" "libfvMotionSolvers.so");
|
||||
libs ("libfvMotionSolvers.so");
|
||||
|
||||
motionSolver solidBody;
|
||||
|
||||
|
||||
@ -18,7 +18,7 @@ mover
|
||||
{
|
||||
type motionSolver;
|
||||
|
||||
libs ("libfvMeshMovers.so" "libfvMotionSolvers.so");
|
||||
libs ("libfvMotionSolvers.so");
|
||||
|
||||
motionSolver solidBody;
|
||||
|
||||
|
||||
@ -18,7 +18,7 @@ mover
|
||||
{
|
||||
type motionSolver;
|
||||
|
||||
libs ("libfvMeshMovers.so" "libfvMotionSolvers.so");
|
||||
libs ("libfvMotionSolvers.so");
|
||||
|
||||
motionSolver solidBody;
|
||||
|
||||
|
||||
@ -18,7 +18,7 @@ mover
|
||||
{
|
||||
type motionSolver;
|
||||
|
||||
libs ("libfvMeshMovers.so" "libfvMotionSolvers.so");
|
||||
libs ("libfvMotionSolvers.so");
|
||||
|
||||
motionSolver solidBody;
|
||||
|
||||
|
||||
@ -18,7 +18,7 @@ mover
|
||||
{
|
||||
type motionSolver;
|
||||
|
||||
libs ("libfvMeshMovers.so" "libfvMotionSolvers.so");
|
||||
libs ("libfvMotionSolvers.so");
|
||||
|
||||
motionSolver motionSolverList;
|
||||
|
||||
|
||||
@ -18,7 +18,7 @@ mover
|
||||
{
|
||||
type motionSolver;
|
||||
|
||||
libs ("libfvMeshMovers.so" "libfvMotionSolvers.so");
|
||||
libs ("libfvMotionSolvers.so");
|
||||
|
||||
motionSolver velocityComponentLaplacian;
|
||||
|
||||
|
||||
@ -18,7 +18,7 @@ mover
|
||||
{
|
||||
type motionSolver;
|
||||
|
||||
libs ("libfvMeshMovers.so" "libfvMotionSolvers.so");
|
||||
libs ("libfvMotionSolvers.so");
|
||||
|
||||
motionSolver solidBody;
|
||||
|
||||
|
||||
@ -18,7 +18,7 @@ mover
|
||||
{
|
||||
type motionSolver;
|
||||
|
||||
libs ("libfvMeshMovers.so" "libfvMotionSolvers.so");
|
||||
libs ("libfvMotionSolvers.so");
|
||||
|
||||
motionSolver solidBody;
|
||||
|
||||
|
||||
@ -18,7 +18,7 @@ mover
|
||||
{
|
||||
type motionSolver;
|
||||
|
||||
libs ("libfvMeshMovers.so" "libfvMotionSolvers.so");
|
||||
libs ("libfvMotionSolvers.so");
|
||||
|
||||
motionSolver solidBody;
|
||||
|
||||
|
||||
@ -17,7 +17,7 @@ mover
|
||||
{
|
||||
type motionSolver;
|
||||
|
||||
libs ("libfvMeshMovers.so" "libsixDoFRigidBodyMotion.so");
|
||||
libs ("libsixDoFRigidBodyMotion.so");
|
||||
|
||||
motionSolver sixDoFRigidBodyMotion;
|
||||
|
||||
|
||||
@ -17,7 +17,7 @@ mover
|
||||
{
|
||||
type motionSolver;
|
||||
|
||||
libs ("libfvMeshMovers.so" "librigidBodyMeshMotion.so");
|
||||
libs ("librigidBodyMeshMotion.so");
|
||||
|
||||
motionSolver rigidBodyMotion;
|
||||
|
||||
|
||||
@ -17,7 +17,7 @@ mover
|
||||
{
|
||||
type motionSolver;
|
||||
|
||||
libs ("libfvMeshMovers.so" "libsixDoFRigidBodyMotion.so");
|
||||
libs ("libsixDoFRigidBodyMotion.so");
|
||||
|
||||
motionSolver sixDoFRigidBodyMotion;
|
||||
|
||||
|
||||
@ -18,7 +18,7 @@ mover
|
||||
{
|
||||
type motionSolver;
|
||||
|
||||
libs ("libfvMeshMovers.so" "librigidBodyMeshMotion.so");
|
||||
libs ("librigidBodyMeshMotion.so");
|
||||
|
||||
motionSolver rigidBodyMotion;
|
||||
|
||||
|
||||
@ -17,7 +17,7 @@ mover
|
||||
{
|
||||
type motionSolver;
|
||||
|
||||
libs ("libfvMeshMovers.so" "librigidBodyMeshMotion.so");
|
||||
libs ("librigidBodyMeshMotion.so");
|
||||
|
||||
motionSolver rigidBodyMotion;
|
||||
|
||||
|
||||
@ -17,7 +17,7 @@ mover
|
||||
{
|
||||
type motionSolver;
|
||||
|
||||
libs ("libfvMeshMovers.so" "libsixDoFRigidBodyMotion.so");
|
||||
libs ("libsixDoFRigidBodyMotion.so");
|
||||
|
||||
motionSolver sixDoFRigidBodyMotion;
|
||||
|
||||
|
||||
@ -17,7 +17,7 @@ mover
|
||||
{
|
||||
type motionSolver;
|
||||
|
||||
libs ("libfvMeshMovers.so" "librigidBodyMeshMotion.so");
|
||||
libs ("librigidBodyMeshMotion.so");
|
||||
|
||||
motionSolver rigidBodyMotion;
|
||||
|
||||
|
||||
@ -17,7 +17,7 @@ mover
|
||||
{
|
||||
type motionSolver;
|
||||
|
||||
libs ("libfvMeshMovers.so" "libsixDoFRigidBodyMotion.so");
|
||||
libs ("libsixDoFRigidBodyMotion.so");
|
||||
|
||||
motionSolver sixDoFRigidBodyMotion;
|
||||
|
||||
|
||||
@ -18,7 +18,7 @@ mover
|
||||
{
|
||||
type motionSolver;
|
||||
|
||||
libs ("libfvMeshMovers.so" "libfvMotionSolvers.so");
|
||||
libs ("libfvMotionSolvers.so");
|
||||
|
||||
motionSolver solidBody;
|
||||
|
||||
|
||||
@ -18,7 +18,7 @@ mover
|
||||
{
|
||||
type motionSolver;
|
||||
|
||||
libs ("libfvMeshMovers.so" "libfvMotionSolvers.so");
|
||||
libs ("libfvMotionSolvers.so");
|
||||
|
||||
motionSolver motionSolverList;
|
||||
|
||||
|
||||
@ -17,7 +17,7 @@ mover
|
||||
{
|
||||
type motionSolver;
|
||||
|
||||
libs ("libfvMeshMovers.so" "librigidBodyMeshMotion.so");
|
||||
libs ("librigidBodyMeshMotion.so");
|
||||
|
||||
motionSolver rigidBodyMotion;
|
||||
|
||||
|
||||
@ -18,7 +18,7 @@ mover
|
||||
{
|
||||
type motionSolver;
|
||||
|
||||
libs ("libfvMeshMovers.so" "libfvMotionSolvers.so");
|
||||
libs ("libfvMotionSolvers.so");
|
||||
|
||||
motionSolver solidBody;
|
||||
|
||||
|
||||
@ -18,7 +18,7 @@ mover
|
||||
{
|
||||
type motionSolver;
|
||||
|
||||
libs ("libfvMeshMovers.so" "libfvMotionSolvers.so");
|
||||
libs ("libfvMotionSolvers.so");
|
||||
|
||||
motionSolver solidBody;
|
||||
|
||||
|
||||
@ -18,7 +18,7 @@ mover
|
||||
{
|
||||
type motionSolver;
|
||||
|
||||
libs ("libfvMeshMovers.so" "libfvMotionSolvers.so");
|
||||
libs ("libfvMotionSolvers.so");
|
||||
|
||||
motionSolver solidBody;
|
||||
|
||||
|
||||
@ -18,7 +18,7 @@ mover
|
||||
{
|
||||
type motionSolver;
|
||||
|
||||
libs ("libfvMeshMovers.so" "libfvMotionSolvers.so");
|
||||
libs ("libfvMotionSolvers.so");
|
||||
|
||||
motionSolver solidBody;
|
||||
|
||||
|
||||
@ -18,7 +18,7 @@ mover
|
||||
{
|
||||
type motionSolver;
|
||||
|
||||
libs ("libfvMeshMovers.so" "libfvMotionSolvers.so");
|
||||
libs ("libfvMotionSolvers.so");
|
||||
|
||||
motionSolver solidBody;
|
||||
|
||||
|
||||
@ -18,7 +18,7 @@ mover
|
||||
{
|
||||
type motionSolver;
|
||||
|
||||
libs ("libfvMeshMovers.so" "libfvMotionSolvers.so");
|
||||
libs ("libfvMotionSolvers.so");
|
||||
|
||||
motionSolver solidBody;
|
||||
|
||||
|
||||
@ -18,7 +18,7 @@ mover
|
||||
{
|
||||
type motionSolver;
|
||||
|
||||
libs ("libfvMeshMovers.so" "libfvMotionSolvers.so");
|
||||
libs ("libfvMotionSolvers.so");
|
||||
|
||||
motionSolver solidBody;
|
||||
|
||||
|
||||
@ -18,7 +18,7 @@ mover
|
||||
{
|
||||
type motionSolver;
|
||||
|
||||
libs ("libfvMeshMovers.so" "libfvMotionSolvers.so");
|
||||
libs ("libfvMotionSolvers.so");
|
||||
|
||||
motionSolver solidBody;
|
||||
|
||||
|
||||
@ -18,7 +18,7 @@ mover
|
||||
{
|
||||
type motionSolver;
|
||||
|
||||
libs ("libfvMeshMovers.so" "libfvMotionSolvers.so");
|
||||
libs ("libfvMotionSolvers.so");
|
||||
|
||||
motionSolver solidBody;
|
||||
|
||||
|
||||
@ -19,7 +19,7 @@ mover
|
||||
{
|
||||
type motionSolver;
|
||||
|
||||
libs ("libfvMeshMovers.so" "libfvMotionSolvers.so");
|
||||
libs ("libfvMotionSolvers.so");
|
||||
|
||||
motionSolver displacementLaplacian;
|
||||
|
||||
|
||||
@ -19,7 +19,7 @@ mover
|
||||
{
|
||||
type motionSolver;
|
||||
|
||||
libs ("libfvMeshMovers.so" "libfvMotionSolvers.so");
|
||||
libs ("libfvMotionSolvers.so");
|
||||
|
||||
motionSolver displacementSBRStress;
|
||||
|
||||
|
||||
@ -18,7 +18,7 @@ mover
|
||||
{
|
||||
type motionSolver;
|
||||
|
||||
libs ("libfvMeshMovers.so" "libfvMotionSolvers.so");
|
||||
libs ("libfvMotionSolvers.so");
|
||||
|
||||
motionSolver solidBody;
|
||||
|
||||
|
||||
@ -18,7 +18,7 @@ mover
|
||||
{
|
||||
type motionSolver;
|
||||
|
||||
libs ("libfvMeshMovers.so" "libfvMotionSolvers.so");
|
||||
libs ("libfvMotionSolvers.so");
|
||||
|
||||
motionSolver solidBody;
|
||||
|
||||
|
||||
@ -18,7 +18,7 @@ mover
|
||||
{
|
||||
type motionSolver;
|
||||
|
||||
libs ("libfvMeshMovers.so" "libfvMotionSolvers.so");
|
||||
libs ("libfvMotionSolvers.so");
|
||||
|
||||
motionSolver solidBody;
|
||||
|
||||
|
||||
@ -18,7 +18,7 @@ mover
|
||||
{
|
||||
type motionSolver;
|
||||
|
||||
libs ("libfvMeshMovers.so" "libfvMotionSolvers.so");
|
||||
libs ("libfvMotionSolvers.so");
|
||||
|
||||
motionSolver velocityComponentLaplacian;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user