Go to the documentation of this file.
31 #include "surfaceInterpolate.H"
44 Foam::layeredEngineMesh::layeredEngineMesh(
const IOobject& io)
63 scalar deltaZ = engineDB_.pistonDisplacement().value();
64 Info<<
"deltaZ = " << deltaZ <<
endl;
67 scalar pistonPlusLayers = pistonPosition_.value() + pistonLayers_.value();
73 point&
p = newPoints[pointi];
75 if (
p.z() < pistonPlusLayers)
79 else if (
p.z() < deckHeight_.value())
83 *(deckHeight_.value() -
p.z())
84 /(deckHeight_.value() - pistonPlusLayers);
99 bool absolutePhi =
false;
106 movePoints(newPoints);
115 movePoints(newPoints);
118 pistonPosition_.value() += deltaZ;
119 scalar pistonSpeed = deltaZ/engineDB_.deltaTValue();
121 Info<<
"clearance: " << deckHeight_.value() - pistonPosition_.value() <<
nl
122 <<
"Piston speed = " << pistonSpeed <<
" m/s" <<
endl;
addToRunTimeSelectionTable(decompositionMethod, kahipDecomp, dictionary)
Defines the attributes of an object for which implicit objectRegistry management is supported,...
~layeredEngineMesh()
Destructor.
const dimensionSet dimLength(0, 1, 0, 0, 0, 0, 0)
static constexpr const zero Zero
Global zero (0)
Calculate the mesh motion flux and convert fluxes from absolute to relative and back.
tmp< surfaceScalarField > meshPhi(const volVectorField &U)
Ostream & endl(Ostream &os)
Add newline and flush stream.
#define forAll(list, i)
Loop across all elements in list.
messageStream Info
Information stream (stdout output on master, null elsewhere)
Macros for easy insertion into run-time selection tables.
static tmp< GeometricField< Type, fvsPatchField, surfaceMesh > > interpolate(const GeometricField< Type, fvPatchField, volMesh > &tvf, const surfaceScalarField &faceFlux, Istream &schemeData)
Interpolate field onto faces using scheme given by Istream.
const IOdictionary & engineDict() const
Return the engine geometry dictionary.
const engineTime & engineDB_
defineTypeNameAndDebug(combustionModel, 0)
bool readIfPresent(const word &keyword, T &val, enum keyType::option matchOpt=keyType::REGEX) const