31 #include "surfaceInterpolate.H" 44 Foam::layeredEngineMesh::layeredEngineMesh(
const IOobject&
io)
49 engineDB_.engineDict().
readIfPresent(
"pistonLayers", pistonLayers_);
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;
~layeredEngineMesh()
Destructor.
constexpr char nl
The newline '\n' character (0x0a)
Ostream & endl(Ostream &os)
Add newline and flush stream.
GeometricField< vector, fvPatchField, volMesh > volVectorField
Macros for easy insertion into run-time selection tables.
#define forAll(list, i)
Loop across all elements in list.
GeometricField< scalar, fvPatchField, volMesh > volScalarField
A Vector of values with scalar precision, where scalar is float/double depending on the compilation f...
bool readIfPresent(const word &keyword, T &val, enum keyType::option matchOpt=keyType::REGEX) const
Find an entry if present, and assign to T val. FatalIOError if it is found and the number of tokens i...
defineTypeNameAndDebug(combustionModel, 0)
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.
addToRunTimeSelectionTable(decompositionMethod, kahipDecomp, dictionary)
Calculate the mesh motion flux and convert fluxes from absolute to relative and back.
const dimensionSet dimLength(0, 1, 0, 0, 0, 0, 0)
tmp< surfaceScalarField > meshPhi(const volVectorField &U)
messageStream Info
Information stream (stdout output on master, null elsewhere)
IOobject io("surfaceFilmProperties", mesh.time().constant(), mesh, IOobject::READ_IF_PRESENT, IOobject::NO_WRITE, IOobject::NO_REGISTER)
GeometricField< scalar, fvsPatchField, surfaceMesh > surfaceScalarField
Defines the attributes of an object for which implicit objectRegistry management is supported...
static constexpr const zero Zero
Global zero (0)