diff --git a/applications/solvers/combustion/reactingFoam/engineFoam/Make/files b/applications/solvers/combustion/reactingFoam/engineFoam/Make/files
deleted file mode 100644
index 131a3bee64..0000000000
--- a/applications/solvers/combustion/reactingFoam/engineFoam/Make/files
+++ /dev/null
@@ -1,3 +0,0 @@
-engineFoam.C
-
-EXE = $(FOAM_APPBIN)/engineFoam
diff --git a/applications/solvers/combustion/reactingFoam/engineFoam/Make/options b/applications/solvers/combustion/reactingFoam/engineFoam/Make/options
deleted file mode 100644
index 41206767e5..0000000000
--- a/applications/solvers/combustion/reactingFoam/engineFoam/Make/options
+++ /dev/null
@@ -1,38 +0,0 @@
-EXE_INC = \
- -I. \
- -I.. \
- -I$(LIB_SRC)/finiteVolume/lnInclude \
- -I$(LIB_SRC)/finiteVolume/cfdTools \
- -I$(LIB_SRC)/sampling/lnInclude \
- -I$(LIB_SRC)/meshTools/lnInclude \
- -I$(LIB_SRC)/MomentumTransportModels/momentumTransportModels/lnInclude \
- -I$(LIB_SRC)/MomentumTransportModels/compressible/lnInclude \
- -I$(LIB_SRC)/ThermophysicalTransportModels/lnInclude \
- -I$(LIB_SRC)/ThermophysicalTransportModels/fluidReactionThermo/lnInclude \
- -I$(LIB_SRC)/physicalProperties/lnInclude \
- -I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
- -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
- -I$(LIB_SRC)/thermophysicalModels/thermophysicalProperties/lnInclude \
- -I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
- -I$(LIB_SRC)/thermophysicalModels/chemistryModel/lnInclude \
- -I$(LIB_SRC)/ODE/lnInclude \
- -I$(LIB_SRC)/combustionModels/lnInclude \
- -I$(LIB_SRC)/engine/lnInclude
-
-EXE_LIBS = \
- -lfiniteVolume \
- -lfvModels \
- -lfvConstraints \
- -lsampling \
- -lmeshTools \
- -lmomentumTransportModels \
- -lcompressibleMomentumTransportModels \
- -lthermophysicalTransportModels \
- -lfluidReactionThermophysicalTransportModels \
- -lspecie \
- -lfluidThermophysicalModels \
- -lreactionThermophysicalModels \
- -lchemistryModel \
- -lODE \
- -lcombustionModels \
- -lengine
diff --git a/applications/solvers/combustion/reactingFoam/engineFoam/engineFoam.C b/applications/solvers/combustion/reactingFoam/engineFoam/engineFoam.C
deleted file mode 100644
index fe44729fbb..0000000000
--- a/applications/solvers/combustion/reactingFoam/engineFoam/engineFoam.C
+++ /dev/null
@@ -1,177 +0,0 @@
-/*---------------------------------------------------------------------------*\
- ========= |
- \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
- \\ / O peration | Website: https://openfoam.org
- \\ / A nd | Copyright (C) 2011-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 .
-
-Application
- engineFoam
-
-Description
- Transient solver for compressible, turbulent engine flow with a spray
- particle cloud.
-
-\*---------------------------------------------------------------------------*/
-
-#include "fvCFD.H"
-#include "engineMesh.H"
-#include "compressibleMomentumTransportModels.H"
-#include "fluidReactionThermophysicalTransportModel.H"
-#include "combustionModel.H"
-#include "fvModels.H"
-#include "fvConstraints.H"
-#include "pimpleControl.H"
-#include "pressureReference.H"
-#include "CorrectPhi.H"
-#include "localEulerDdtScheme.H"
-#include "fvcSmooth.H"
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-int main(int argc, char *argv[])
-{
- #define CREATE_MESH createEngineMesh.H
- #include "postProcess.H"
-
- #include "setRootCaseLists.H"
- #include "createTime.H"
- #include "createEngineMesh.H"
- #include "createEngineControls.H"
- #include "initContinuityErrs.H"
- #include "createFields.H"
- #include "createFieldRefs.H"
- #include "createRhoUfIfPresent.H"
- #include "startSummary.H"
-
- turbulence->validate();
-
- if (!LTS)
- {
- #include "compressibleCourantNo.H"
- #include "setInitialDeltaT.H"
- }
-
- // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
- Info<< "\nStarting time loop\n" << endl;
-
- while (pimple.run(runTime))
- {
- #include "readEngineControls.H"
-
- // Store divrhoU from the previous mesh so that it can be mapped
- // and used in correctPhi to ensure the corrected phi has the
- // same divergence
- autoPtr divrhoU;
- if (correctPhi)
- {
- divrhoU = new volScalarField
- (
- "divrhoU",
- fvc::div(fvc::absolute(phi, rho, U))
- );
- }
-
- if (LTS)
- {
- #include "setRDeltaT.H"
- }
- else
- {
- #include "compressibleCourantNo.H"
- #include "setDeltaT.H"
- }
-
- runTime++;
-
- Info<< "Engine time = " << runTime.userTimeName() << endl;
-
- // Store momentum to set rhoUf for introduced faces.
- autoPtr rhoU;
- if (rhoUf.valid())
- {
- rhoU = new volVectorField("rhoU", rho*U);
- }
-
- fvModels.preUpdateMesh();
-
- // Do any mesh changes
- mesh.move();
-
- if (mesh.changing())
- {
- MRF.update();
-
- if (correctPhi)
- {
- #include "../../../compressible/rhoPimpleFoam/correctPhi.H"
- }
-
- if (checkMeshCourantNo)
- {
- #include "meshCourantNo.H"
- }
- }
-
- if (!pimple.simpleRho())
- {
- #include "rhoEqn.H"
- }
-
- // --- PIMPLE loop
- while (pimple.loop())
- {
- fvModels.correct();
-
- #include "UEqn.H"
- #include "YEqn.H"
- #include "EEqn.H"
-
- // --- Pressure corrector loop
- while (pimple.correct())
- {
- #include "../../../compressible/rhoPimpleFoam/pEqn.H"
- }
-
- if (pimple.turbCorr())
- {
- turbulence->correct();
- thermophysicalTransport->correct();
- }
- }
-
- #include "logSummary.H"
-
- rho = thermo.rho();
-
- runTime.write();
-
- Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
- << " ClockTime = " << runTime.elapsedClockTime() << " s"
- << nl << endl;
- }
-
- Info<< "End" << endl;
-
- return 0;
-}
-
-
-// ************************************************************************* //
diff --git a/applications/solvers/combustion/reactingFoam/engineFoam/logSummary.H b/applications/solvers/combustion/reactingFoam/engineFoam/logSummary.H
deleted file mode 100644
index ce7d69b424..0000000000
--- a/applications/solvers/combustion/reactingFoam/engineFoam/logSummary.H
+++ /dev/null
@@ -1,12 +0,0 @@
-Info<< "Mean pressure:" << p.weightedAverage(mesh.V()).value() << endl;
-Info<< "Mean temperature:" << T.weightedAverage(mesh.V()).value() << endl;
-Info<< "Mean u':"
- << (sqrt((2.0/3.0)*turbulence->k()))().weightedAverage(mesh.V()).value()
- << endl;
-
-logSummaryFile
- << runTime.userTimeValue() << tab
- << p.weightedAverage(mesh.V()).value() << tab
- << T.weightedAverage(mesh.V()).value() << tab
- << (sqrt((2.0/3.0)*turbulence->k()))().weightedAverage(mesh.V()).value()
- << endl;
diff --git a/applications/solvers/combustion/reactingFoam/engineFoam/startSummary.H b/applications/solvers/combustion/reactingFoam/engineFoam/startSummary.H
deleted file mode 100644
index f79076d419..0000000000
--- a/applications/solvers/combustion/reactingFoam/engineFoam/startSummary.H
+++ /dev/null
@@ -1,11 +0,0 @@
-Info<< "Total cylinder mass: " << fvc::domainIntegrate(rho).value() << endl;
-//Info<< "Total fuel mass: "
-// << fvc::domainIntegrate(rho*composition.ft()).value() << endl;
-
-OFstream logSummaryFile
-(
- runTime.path()/("logSummary." + runTime.timeName() + ".dat")
-);
-
-logSummaryFile
- << "# CA" << " p" << " T" << " u'" << endl;
diff --git a/bin/engineFoam b/bin/engineFoam
new file mode 100755
index 0000000000..048466a0ea
--- /dev/null
+++ b/bin/engineFoam
@@ -0,0 +1,59 @@
+#!/bin/sh
+#------------------------------------------------------------------------------
+# ========= |
+# \\ / 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 .
+#
+# Script
+# engineFoam
+#
+# Description
+# Script to inform the user that engineFoam has been replaced by the more
+# general reactingFoam solver.
+#
+#------------------------------------------------------------------------------
+
+cat << EOF
+
+The engineFoam solver has solver has been replaced by the more general reactingFoam
+solver, which supports engine mesh motion using an appropriate
+fvMeshMover. e.g. layeredEngine
+
+To run a engineFoam case in reactingFoam add a mover entry in
+constant/dynamicMeshDict
+e.g. from the tutorials/combustion/reactingFoam/RAS/kivaTest case:
+
+mover
+{
+ type layeredEngine;
+
+ libs ("libfvMeshMovers.so");
+
+ conRodLength 0.147;
+ bore 0.092;
+ stroke 0.08423;
+ clearance 0.00115;
+ pistonLayers 0;
+}
+
+EOF
+
+#------------------------------------------------------------------------------
diff --git a/etc/config.sh/bash_completion b/etc/config.sh/bash_completion
index f8ee18b653..b8d269b8e2 100644
--- a/etc/config.sh/bash_completion
+++ b/etc/config.sh/bash_completion
@@ -539,31 +539,6 @@ _chtMultiRegionFoam_ ()
}
complete -o filenames -o nospace -F _chtMultiRegionFoam_ chtMultiRegionFoam
-_coldEngineFoam_ ()
-{
- local cur="${COMP_WORDS[COMP_CWORD]}"
- local prev="${COMP_WORDS[COMP_CWORD-1]}"
- local line=${COMP_LINE}
- local used=$(echo "$line" | grep -oE "\-[a-zA-Z]+ ")
-
- opts="-case -doc -fileHandler -help -hostRoots -libs -listFunctionObjects -listFvConstraints -listFvModels -listMomentumTransportModels -listScalarBCs -listSwitches -listVectorBCs -noFunctionObjects -parallel -postProcess -roots -srcDoc"
- for o in $used ; do opts="${opts/$o/}" ; done
- extra=""
-
- [ "$COMP_CWORD" = 1 ] || \
- case "$prev" in
- -case)
- opts="" ; extra="-d" ;;
- -fileHandler)
- opts="uncollated collated masterUncollated" ; extra="" ;;
- -hostRoots|-libs|-roots)
- opts="" ; extra="" ;;
- *) ;;
- esac
- COMPREPLY=( $(compgen -W "${opts}" $extra -- ${cur}) )
-}
-complete -o filenames -o nospace -F _coldEngineFoam_ coldEngineFoam
-
_collapseEdges_ ()
{
local cur="${COMP_WORDS[COMP_CWORD]}"
@@ -2297,31 +2272,6 @@ _moveDynamicMesh_ ()
}
complete -o filenames -o nospace -F _moveDynamicMesh_ moveDynamicMesh
-_moveEngineMesh_ ()
-{
- local cur="${COMP_WORDS[COMP_CWORD]}"
- local prev="${COMP_WORDS[COMP_CWORD-1]}"
- local line=${COMP_LINE}
- local used=$(echo "$line" | grep -oE "\-[a-zA-Z]+ ")
-
- opts="-case -doc -fileHandler -help -hostRoots -libs -noFunctionObjects -parallel -roots -srcDoc"
- for o in $used ; do opts="${opts/$o/}" ; done
- extra=""
-
- [ "$COMP_CWORD" = 1 ] || \
- case "$prev" in
- -case)
- opts="" ; extra="-d" ;;
- -fileHandler)
- opts="uncollated collated masterUncollated" ; extra="" ;;
- -hostRoots|-libs|-roots)
- opts="" ; extra="" ;;
- *) ;;
- esac
- COMPREPLY=( $(compgen -W "${opts}" $extra -- ${cur}) )
-}
-complete -o filenames -o nospace -F _moveEngineMesh_ moveEngineMesh
-
_moveMesh_ ()
{
local cur="${COMP_WORDS[COMP_CWORD]}"
@@ -2486,31 +2436,6 @@ _noise_ ()
}
complete -o filenames -o nospace -F _noise_ noise
-_nonNewtonianIcoFoam_ ()
-{
- local cur="${COMP_WORDS[COMP_CWORD]}"
- local prev="${COMP_WORDS[COMP_CWORD-1]}"
- local line=${COMP_LINE}
- local used=$(echo "$line" | grep -oE "\-[a-zA-Z]+ ")
-
- opts="-case -doc -fileHandler -help -hostRoots -libs -listFunctionObjects -listScalarBCs -listSwitches -listVectorBCs -noFunctionObjects -parallel -postProcess -roots -srcDoc"
- for o in $used ; do opts="${opts/$o/}" ; done
- extra=""
-
- [ "$COMP_CWORD" = 1 ] || \
- case "$prev" in
- -case)
- opts="" ; extra="-d" ;;
- -fileHandler)
- opts="uncollated collated masterUncollated" ; extra="" ;;
- -hostRoots|-libs|-roots)
- opts="" ; extra="" ;;
- *) ;;
- esac
- COMPREPLY=( $(compgen -W "${opts}" $extra -- ${cur}) )
-}
-complete -o filenames -o nospace -F _nonNewtonianIcoFoam_ nonNewtonianIcoFoam
-
_objToVTK_ ()
{
local cur="${COMP_WORDS[COMP_CWORD]}"
@@ -4961,31 +4886,6 @@ _writeMeshObj_ ()
}
complete -o filenames -o nospace -F _writeMeshObj_ writeMeshObj
-_XiEngineFoam_ ()
-{
- local cur="${COMP_WORDS[COMP_CWORD]}"
- local prev="${COMP_WORDS[COMP_CWORD-1]}"
- local line=${COMP_LINE}
- local used=$(echo "$line" | grep -oE "\-[a-zA-Z]+ ")
-
- opts="-case -doc -fileHandler -help -hostRoots -libs -listFunctionObjects -listFvConstraints -listFvModels -listMomentumTransportModels -listScalarBCs -listSwitches -listVectorBCs -noFunctionObjects -parallel -postProcess -roots -srcDoc"
- for o in $used ; do opts="${opts/$o/}" ; done
- extra=""
-
- [ "$COMP_CWORD" = 1 ] || \
- case "$prev" in
- -case)
- opts="" ; extra="-d" ;;
- -fileHandler)
- opts="uncollated collated masterUncollated" ; extra="" ;;
- -hostRoots|-libs|-roots)
- opts="" ; extra="" ;;
- *) ;;
- esac
- COMPREPLY=( $(compgen -W "${opts}" $extra -- ${cur}) )
-}
-complete -o filenames -o nospace -F _XiEngineFoam_ XiEngineFoam
-
_XiFoam_ ()
{
local cur="${COMP_WORDS[COMP_CWORD]}"
diff --git a/src/Allwmake b/src/Allwmake
index 2dfdad6574..0e2409efc8 100755
--- a/src/Allwmake
+++ b/src/Allwmake
@@ -69,7 +69,6 @@ renumber/Allwmake $targetType $*
fvAgglomerationMethods/Allwmake $targetType $*
wmake $targetType fvMotionSolver
-wmake $targetType engine
wmake $targetType fvModels
wmake $targetType fvConstraints
diff --git a/src/engine/Make/files b/src/engine/Make/files
deleted file mode 100644
index 995e3db325..0000000000
--- a/src/engine/Make/files
+++ /dev/null
@@ -1,6 +0,0 @@
-engineMesh/engineMesh/engineMesh.C
-engineMesh/engineMesh/engineMeshNew.C
-engineMesh/layeredEngineMesh/layeredEngineMesh.C
-engineMesh/fvMotionSolverEngineMesh/fvMotionSolverEngineMesh.C
-
-LIB = $(FOAM_LIBBIN)/libengine
diff --git a/src/engine/Make/options b/src/engine/Make/options
deleted file mode 100644
index 0929e2bc8f..0000000000
--- a/src/engine/Make/options
+++ /dev/null
@@ -1,11 +0,0 @@
-EXE_INC = \
- -I$(LIB_SRC)/finiteVolume/lnInclude \
- -I$(LIB_SRC)/meshTools/lnInclude \
- -I$(LIB_SRC)/dynamicMesh/lnInclude \
- -I$(LIB_SRC)/fvMotionSolver/lnInclude
-
-LIB_LIBS = \
- -lfiniteVolume \
- -lmeshTools \
- -ldynamicMesh \
- -lfvMotionSolvers
diff --git a/src/engine/engineMesh/engineMesh/engineMesh.C b/src/engine/engineMesh/engineMesh/engineMesh.C
deleted file mode 100644
index 6529ac3bf9..0000000000
--- a/src/engine/engineMesh/engineMesh/engineMesh.C
+++ /dev/null
@@ -1,221 +0,0 @@
-/*---------------------------------------------------------------------------*\
- ========= |
- \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
- \\ / O peration | Website: https://openfoam.org
- \\ / A nd | Copyright (C) 2011-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 .
-
-\*---------------------------------------------------------------------------*/
-
-#include "engineMesh.H"
-#include "../OpenFOAM/lnInclude/engineTime.H"
-#include "unitConversion.H"
-
-// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
-
-namespace Foam
-{
- defineTypeNameAndDebug(engineMesh, 0);
- defineRunTimeSelectionTable(engineMesh, IOobject);
-}
-
-
-// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
-
-Foam::engineMesh::engineMesh(const IOobject& io)
-:
- fvMesh(io),
- dict_
- (
- IOobject
- (
- "engineGeometry",
- time().constant(),
- time(),
- IOobject::MUST_READ_IF_MODIFIED,
- IOobject::NO_WRITE,
- false
- )
- ),
- rpm_
- (
- refCast(time().userTime()).rpm()
- ),
- conRodLength_("conRodLength", dimLength, dict_),
- bore_("bore", dimLength, dict_),
- stroke_("stroke", dimLength, dict_),
- clearance_("clearance", dimLength, dict_),
- pistonIndex_(-1),
- linerIndex_(-1),
- cylinderHeadIndex_(-1),
- deckHeight_("deckHeight", dimLength, great),
- pistonPosition_("pistonPosition", dimLength, -great)
-{
- bool foundPiston = false;
- bool foundLiner = false;
- bool foundCylinderHead = false;
-
- forAll(boundary(), i)
- {
- if (boundary()[i].name() == "piston")
- {
- pistonIndex_ = i;
- foundPiston = true;
- }
- else if (boundary()[i].name() == "liner")
- {
- linerIndex_ = i;
- foundLiner = true;
- }
- else if (boundary()[i].name() == "cylinderHead")
- {
- cylinderHeadIndex_ = i;
- foundCylinderHead = true;
- }
- }
-
- reduce(foundPiston, orOp());
- reduce(foundLiner, orOp());
- reduce(foundCylinderHead, orOp());
-
- 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 (boundary()[pistonIndex_].patch().localPoints().size())
- {
- pistonPosition_.value() =
- max(boundary()[pistonIndex_].patch().localPoints()).z();
- }
- }
- reduce(pistonPosition_.value(), maxOp());
-
- if (cylinderHeadIndex_ != -1)
- {
- deckHeight_.value() = great;
- if (boundary()[cylinderHeadIndex_].patch().localPoints().size())
- {
- deckHeight_.value() = min
- (
- boundary()[cylinderHeadIndex_].patch().localPoints()
- ).z();
- }
- }
- reduce(deckHeight_.value(), minOp());
-
- Info<< "deckHeight: " << deckHeight_.value() << nl
- << "piston position: " << pistonPosition_.value() << endl;
- }
-}
-
-
-// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
-
-Foam::engineMesh::~engineMesh()
-{}
-
-
-// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
-
-Foam::scalar Foam::engineMesh::theta() const
-{
- return time().userTimeValue();
-}
-
-
-Foam::scalar Foam::engineMesh::deltaTheta() const
-{
- return time().timeToUserTime(time().deltaTValue());
-}
-
-
-Foam::scalar Foam::engineMesh::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::engineMesh::pistonPosition() const
-{
- return dimensionedScalar
- (
- "pistonPosition",
- dimLength,
- pistonPosition(theta())
- );
-}
-
-
-Foam::dimensionedScalar Foam::engineMesh::pistonDisplacement() const
-{
- return dimensionedScalar
- (
- "pistonDisplacement",
- dimLength,
- pistonPosition(theta() - deltaTheta()) - pistonPosition().value()
- );
-}
-
-
-Foam::dimensionedScalar Foam::engineMesh::pistonSpeed() const
-{
- return dimensionedScalar
- (
- "pistonSpeed",
- dimVelocity,
- pistonDisplacement().value()/(time().deltaTValue() + vSmall)
- );
-}
-
-
-// ************************************************************************* //
diff --git a/src/engine/engineMesh/engineMesh/engineMesh.H b/src/engine/engineMesh/engineMesh/engineMesh.H
deleted file mode 100644
index 21e285ce7d..0000000000
--- a/src/engine/engineMesh/engineMesh/engineMesh.H
+++ /dev/null
@@ -1,191 +0,0 @@
-/*---------------------------------------------------------------------------*\
- ========= |
- \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
- \\ / O peration | Website: https://openfoam.org
- \\ / A nd | Copyright (C) 2011-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 .
-
-Class
- Foam::engineMesh
-
-Description
- Foam::engineMesh
-
-SourceFiles
- engineMesh.C
-
-\*---------------------------------------------------------------------------*/
-
-#ifndef engineMesh_H
-#define engineMesh_H
-
-#include "fvMesh.H"
-#include "autoPtr.H"
-#include "runTimeSelectionTables.H"
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-namespace Foam
-{
-
-/*---------------------------------------------------------------------------*\
- Class engineMesh Declaration
-\*---------------------------------------------------------------------------*/
-
-class engineMesh
-:
- public fvMesh
-{
-protected:
-
- // Protected data
-
- const IOdictionary dict_;
-
- //- 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("engineMesh");
-
-
- // Declare run-time constructor selection table
-
- declareRunTimeSelectionTable
- (
- autoPtr,
- engineMesh,
- IOobject,
- (const IOobject& io),
- (io)
- );
-
-
- // Constructors
-
- //- Construct from objectRegistry, and read/write options
- explicit engineMesh(const IOobject& io);
-
- //- Disallow default bitwise copy construction
- engineMesh(const engineMesh&) = delete;
-
-
- // Selectors
-
- //- Select null constructed
- static autoPtr New(const IOobject& io);
-
-
- //- Destructor
- virtual ~engineMesh();
-
-
- // Member Functions
-
- //- Is mesh dynamic
- virtual bool dynamic() const
- {
- return true;
- }
-
- //- 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;
-
-
- virtual void move() = 0;
-
-
- // Member Operators
-
- //- Disallow default bitwise assignment
- void operator=(const engineMesh&) = delete;
-};
-
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-} // End namespace Foam
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-#endif
-
-// ************************************************************************* //
diff --git a/src/engine/engineMesh/engineMesh/engineMeshNew.C b/src/engine/engineMesh/engineMesh/engineMeshNew.C
deleted file mode 100644
index 950ba29bc2..0000000000
--- a/src/engine/engineMesh/engineMesh/engineMeshNew.C
+++ /dev/null
@@ -1,73 +0,0 @@
-/*---------------------------------------------------------------------------*\
- ========= |
- \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
- \\ / O peration | Website: https://openfoam.org
- \\ / A nd | Copyright (C) 2011-2018 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 .
-
-\*---------------------------------------------------------------------------*/
-
-#include "engineMesh.H"
-#include "Time.H"
-
-// * * * * * * * * * * * * * * * * Selectors * * * * * * * * * * * * * * * * //
-
-Foam::autoPtr Foam::engineMesh::New
-(
- const Foam::IOobject& io
-)
-{
- // get model name, but do not register the dictionary
- // otherwise it is registered in the database twice
- const word modelType
- (
- IOdictionary
- (
- IOobject
- (
- "engineGeometry",
- io.time().constant(),
- io.db(),
- IOobject::MUST_READ_IF_MODIFIED,
- IOobject::NO_WRITE,
- false
- )
- ).lookup("engineMesh")
- );
-
- Info<< "Selecting engineMesh " << modelType << endl;
-
- IOobjectConstructorTable::iterator cstrIter =
- IOobjectConstructorTablePtr_->find(modelType);
-
- if (cstrIter == IOobjectConstructorTablePtr_->end())
- {
- FatalErrorInFunction
- << "Unknown engineMesh type "
- << modelType << nl << nl
- << "Valid engineMesh types are :" << endl
- << IOobjectConstructorTablePtr_->sortedToc()
- << exit(FatalError);
- }
-
- return autoPtr(cstrIter()(io));
-}
-
-
-// ************************************************************************* //
diff --git a/src/engine/engineMesh/fvMotionSolverEngineMesh/fvMotionSolverEngineMesh.C b/src/engine/engineMesh/fvMotionSolverEngineMesh/fvMotionSolverEngineMesh.C
deleted file mode 100644
index 5cd0755638..0000000000
--- a/src/engine/engineMesh/fvMotionSolverEngineMesh/fvMotionSolverEngineMesh.C
+++ /dev/null
@@ -1,99 +0,0 @@
-/*---------------------------------------------------------------------------*\
- ========= |
- \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
- \\ / O peration | Website: https://openfoam.org
- \\ / A nd | Copyright (C) 2011-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 .
-
-\*---------------------------------------------------------------------------*/
-
-#include "fvMotionSolverEngineMesh.H"
-#include "addToRunTimeSelectionTable.H"
-#include "fvcMeshPhi.H"
-#include "surfaceInterpolate.H"
-
-// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
-
-namespace Foam
-{
- defineTypeNameAndDebug(fvMotionSolverEngineMesh, 0);
- addToRunTimeSelectionTable(engineMesh, fvMotionSolverEngineMesh, IOobject);
-}
-
-
-// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
-
-Foam::fvMotionSolverEngineMesh::fvMotionSolverEngineMesh(const IOobject& io)
-:
- engineMesh(io),
- pistonLayers_("pistonLayers", dimLength, 0.0),
- motionSolver_
- (
- *this,
- dict_
- )
-{
- dict_.readIfPresent("pistonLayers", pistonLayers_);
-}
-
-
-// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
-
-Foam::fvMotionSolverEngineMesh::~fvMotionSolverEngineMesh()
-{}
-
-
-// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
-
-void Foam::fvMotionSolverEngineMesh::move()
-{
- scalar deltaZ = pistonDisplacement().value();
- Info<< "deltaZ = " << deltaZ << endl;
-
- // Position of the top of the static mesh layers above the piston
- scalar pistonPlusLayers = pistonPosition_.value() + pistonLayers_.value();
-
- scalar pistonSpeed = deltaZ/time().deltaTValue();
-
- motionSolver_.pointMotionU().boundaryFieldRef()[pistonIndex_] ==
- pistonSpeed;
-
- {
- scalarField linerPoints
- (
- boundary()[linerIndex_].patch().localPoints().component(vector::Z)
- );
-
- motionSolver_.pointMotionU().boundaryFieldRef()[linerIndex_] ==
- pistonSpeed*pos0(deckHeight_.value() - linerPoints)
- *(deckHeight_.value() - linerPoints)
- /(deckHeight_.value() - pistonPlusLayers);
- }
-
- motionSolver_.solve();
- movePoints(motionSolver_.curPoints());
-
- pistonPosition_.value() += deltaZ;
-
- Info<< "clearance: " << deckHeight_.value() - pistonPosition_.value() << nl
- << "Piston speed = " << pistonSpeed << " m/s" << endl;
-}
-
-
-// ************************************************************************* //
diff --git a/src/engine/engineMesh/fvMotionSolverEngineMesh/fvMotionSolverEngineMesh.H b/src/engine/engineMesh/fvMotionSolverEngineMesh/fvMotionSolverEngineMesh.H
deleted file mode 100644
index aaf00dba75..0000000000
--- a/src/engine/engineMesh/fvMotionSolverEngineMesh/fvMotionSolverEngineMesh.H
+++ /dev/null
@@ -1,103 +0,0 @@
-/*---------------------------------------------------------------------------*\
- ========= |
- \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
- \\ / O peration | Website: https://openfoam.org
- \\ / A nd | Copyright (C) 2011-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 .
-
-Class
- Foam::fvMotionSolverEngineMesh
-
-Description
- Foam::fvMotionSolverEngineMesh
-
-SourceFiles
- fvMotionSolverEngineMesh.C
-
-\*---------------------------------------------------------------------------*/
-
-#ifndef fvMotionSolverEngineMesh_H
-#define fvMotionSolverEngineMesh_H
-
-#include "engineMesh.H"
-#include "velocityComponentLaplacianFvMotionSolver.H"
-#include "dimensionedScalar.H"
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-namespace Foam
-{
-
-/*---------------------------------------------------------------------------*\
- Class fvMotionSolverEngineMesh Declaration
-\*---------------------------------------------------------------------------*/
-
-class fvMotionSolverEngineMesh
-:
- public engineMesh
-{
- // Private Data
-
- dimensionedScalar pistonLayers_;
-
- //- Mesh-motion solver to solve for the "z" component of the cell-centre
- // displacements
- velocityComponentLaplacianFvMotionSolver motionSolver_;
-
-
-public:
-
- //- Runtime type information
- TypeName("fvMotionSolver");
-
-
- // Constructors
-
- //- Construct from IOobject
- fvMotionSolverEngineMesh(const IOobject& io);
-
- //- Disallow default bitwise copy construction
- fvMotionSolverEngineMesh(const fvMotionSolverEngineMesh&) = delete;
-
-
- //- Destructor
- ~fvMotionSolverEngineMesh();
-
-
- // Member Functions
-
- void move();
-
-
- // Member Operators
-
- //- Disallow default bitwise assignment
- void operator=(const fvMotionSolverEngineMesh&) = delete;
-};
-
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-} // End namespace Foam
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-#endif
-
-// ************************************************************************* //
diff --git a/src/engine/engineMesh/layeredEngineMesh/layeredEngineMesh.C b/src/engine/engineMesh/layeredEngineMesh/layeredEngineMesh.C
deleted file mode 100644
index 595db5db93..0000000000
--- a/src/engine/engineMesh/layeredEngineMesh/layeredEngineMesh.C
+++ /dev/null
@@ -1,96 +0,0 @@
-/*---------------------------------------------------------------------------*\
- ========= |
- \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
- \\ / O peration | Website: https://openfoam.org
- \\ / A nd | Copyright (C) 2011-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 .
-
-\*---------------------------------------------------------------------------*/
-
-#include "layeredEngineMesh.H"
-#include "addToRunTimeSelectionTable.H"
-#include "fvcMeshPhi.H"
-#include "surfaceInterpolate.H"
-
-// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
-
-namespace Foam
-{
- defineTypeNameAndDebug(layeredEngineMesh, 0);
- addToRunTimeSelectionTable(engineMesh, layeredEngineMesh, IOobject);
-}
-
-
-// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
-
-Foam::layeredEngineMesh::layeredEngineMesh(const IOobject& io)
-:
- engineMesh(io),
- pistonLayers_("pistonLayers", dimLength, 0.0)
-{
- dict_.readIfPresent("pistonLayers", pistonLayers_);
-}
-
-
-// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
-
-Foam::layeredEngineMesh::~layeredEngineMesh()
-{}
-
-
-// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
-
-void Foam::layeredEngineMesh::move()
-{
- scalar deltaZ = pistonDisplacement().value();
- Info<< "deltaZ = " << deltaZ << endl;
-
- // Position of the top of the static mesh layers above the piston
- scalar pistonPlusLayers = pistonPosition_.value() + pistonLayers_.value();
-
- pointField newPoints(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);
- }
- }
-
- movePoints(newPoints);
-
- pistonPosition_.value() += deltaZ;
- scalar pistonSpeed = deltaZ/time().deltaTValue();
-
- Info<< "clearance: " << deckHeight_.value() - pistonPosition_.value() << nl
- << "Piston speed = " << pistonSpeed << " m/s" << endl;
-}
-
-
-// ************************************************************************* //
diff --git a/src/engine/engineMesh/layeredEngineMesh/layeredEngineMesh.H b/src/engine/engineMesh/layeredEngineMesh/layeredEngineMesh.H
deleted file mode 100644
index 352a1aff84..0000000000
--- a/src/engine/engineMesh/layeredEngineMesh/layeredEngineMesh.H
+++ /dev/null
@@ -1,98 +0,0 @@
-/*---------------------------------------------------------------------------*\
- ========= |
- \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
- \\ / O peration | Website: https://openfoam.org
- \\ / A nd | Copyright (C) 2011-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 .
-
-Class
- Foam::layeredEngineMesh
-
-Description
- Foam::layeredEngineMesh
-
-SourceFiles
- layeredEngineMesh.C
-
-\*---------------------------------------------------------------------------*/
-
-#ifndef layeredEngineMesh_H
-#define layeredEngineMesh_H
-
-#include "engineMesh.H"
-#include "dimensionedScalar.H"
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-namespace Foam
-{
-
-/*---------------------------------------------------------------------------*\
- Class layeredEngineMesh Declaration
-\*---------------------------------------------------------------------------*/
-
-class layeredEngineMesh
-:
- public engineMesh
-{
- // Private Data
-
- dimensionedScalar pistonLayers_;
-
-
-public:
-
- //- Runtime type information
- TypeName("layered");
-
-
- // Constructors
-
- //- Construct from IOobject
- layeredEngineMesh(const IOobject& io);
-
- //- Disallow default bitwise copy construction
- layeredEngineMesh(const layeredEngineMesh&) = delete;
-
-
- //- Destructor
- ~layeredEngineMesh();
-
-
- // Member Functions
-
- void move();
-
-
- // Member Operators
-
- //- Disallow default bitwise assignment
- void operator=(const layeredEngineMesh&) = delete;
-};
-
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-} // End namespace Foam
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-#endif
-
-// ************************************************************************* //
diff --git a/src/engine/include/createEngineControls.H b/src/engine/include/createEngineControls.H
deleted file mode 100644
index 5a57cfa6c7..0000000000
--- a/src/engine/include/createEngineControls.H
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "createDyMControls.H"
-
-maxDeltaT = runTime.userTimeToTime(maxDeltaT);
diff --git a/src/engine/include/createEngineMesh.H b/src/engine/include/createEngineMesh.H
deleted file mode 100644
index 263ebed5ff..0000000000
--- a/src/engine/include/createEngineMesh.H
+++ /dev/null
@@ -1,18 +0,0 @@
- Info<< "Create mesh for time = "
- << runTime.timeName() << nl << endl;
-
- autoPtr meshPtr
- (
- engineMesh::New
- (
- IOobject
- (
- engineMesh::defaultRegion,
- runTime.timeName(),
- runTime,
- Foam::IOobject::MUST_READ
- )
- )
- );
-
- engineMesh& mesh = meshPtr();
diff --git a/src/engine/include/createEngineTimeControls.H b/src/engine/include/createEngineTimeControls.H
deleted file mode 100644
index cb4f8e891c..0000000000
--- a/src/engine/include/createEngineTimeControls.H
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "createTimeControls.H"
-
-maxDeltaT = runTime.userTimeToTime(maxDeltaT);
diff --git a/src/engine/include/readEngineControls.H b/src/engine/include/readEngineControls.H
deleted file mode 100644
index 4497ef2116..0000000000
--- a/src/engine/include/readEngineControls.H
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "readDyMControls.H"
-
-maxDeltaT = runTime.userTimeToTime(maxDeltaT);
diff --git a/src/engine/include/readEngineTimeControls.H b/src/engine/include/readEngineTimeControls.H
deleted file mode 100644
index 8d6d5f28b3..0000000000
--- a/src/engine/include/readEngineTimeControls.H
+++ /dev/null
@@ -1,3 +0,0 @@
- #include "readTimeControls.H"
-
- maxDeltaT = runTime.userTimeToTime(maxDeltaT);