Go to the documentation of this file.
31 #include "surfaceInterpolate.H"
44 Foam::fvMotionSolverEngineMesh::fvMotionSolverEngineMesh(
const IOobject& io)
51 engineDB_.engineDict()
68 scalar deltaZ = engineDB_.pistonDisplacement().value();
69 Info<<
"deltaZ = " << deltaZ <<
endl;
72 scalar pistonPlusLayers = pistonPosition_.value() + pistonLayers_.value();
74 scalar pistonSpeed = deltaZ/engineDB_.deltaTValue();
76 motionSolver_.pointMotionU().boundaryFieldRef()[pistonIndex_] ==
85 motionSolver_.pointMotionU().boundaryFieldRef()[linerIndex_] ==
86 pistonSpeed*
pos0(deckHeight_.value() - linerPoints)
87 *(deckHeight_.value() - linerPoints)
88 /(deckHeight_.value() - pistonPlusLayers);
91 motionSolver_.solve();
104 bool absolutePhi =
false;
111 movePoints(motionSolver_.curPoints());
120 movePoints(motionSolver_.curPoints());
124 pistonPosition_.value() += deltaZ;
126 Info<<
"clearance: " << deckHeight_.value() - pistonPosition_.value() <<
nl
127 <<
"Piston speed = " << pistonSpeed <<
" m/s" <<
endl;
addToRunTimeSelectionTable(decompositionMethod, kahipDecomp, dictionary)
Defines the attributes of an object for which implicit objectRegistry management is supported,...
void component(FieldField< Field, typename FieldField< Field, Type >::cmptType > &sf, const FieldField< Field, Type > &f, const direction d)
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.
dimensionedScalar pos0(const dimensionedScalar &ds)
messageStream Info
Information stream (uses stdout - output is on the master only)
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.
~fvMotionSolverEngineMesh()
Destructor.
const std::string patch
OpenFOAM patch number as a std::string.
const engineTime & engineDB_
defineTypeNameAndDebug(combustionModel, 0)
bool readIfPresent(const word &keyword, T &val, enum keyType::option matchOpt=keyType::REGEX) const