Go to the documentation of this file.
45 Foam::SRF::SRFModel::SRFModel
56 Urel.time().constant(),
58 IOobject::MUST_READ_IF_MODIFIED,
64 origin_(
"origin",
dimLength, get<vector>(
"origin")),
66 SRFModelCoeffs_(optionalSubDict(
type +
"Coeffs")),
84 readEntry(
"origin", origin_);
87 readEntry(
"axis", axis_);
91 SRFModelCoeffs_ = optionalSubDict(
type() +
"Coeffs");
128 mesh_.time().timeName(),
149 mesh_.time().timeName(),
154 omega_ ^ (omega_ ^ (mesh_.C() - origin_))
163 return Fcoriolis() + Fcentrifugal();
175 (positions - origin_.value())
176 - axis_*(axis_ & (positions - origin_.value()))
192 mesh_.time().timeName(),
198 ^ ((mesh_.C() - origin_) - axis_*(axis_ & (mesh_.C() - origin_)))
215 mesh_.time().timeName(),
228 Uabs.primitiveFieldRef() += Urel_.primitiveField();
231 volVectorField::Boundary& Uabsbf = Uabs.boundaryFieldRef();
232 const volVectorField::Boundary& bvf = Urel_.boundaryField();
236 if (isA<SRFVelocityFvPatchVectorField>(bvf[i]))
241 refCast<const SRFVelocityFvPatchVectorField>(bvf[i]);
244 Uabsbf[i] += Urel_.boundaryField()[i];
249 Uabsbf[i] += Urel_.boundaryField()[i];
IOdictionary is derived from dictionary and IOobject to give the dictionary automatic IO functionalit...
Defines the attributes of an object for which implicit objectRegistry management is supported,...
A class for handling words, derived from Foam::string.
const dimensionSet dimLength(0, 1, 0, 0, 0, 0, 0)
A class for managing temporary objects.
static constexpr const zero Zero
Global zero (0)
virtual ~SRFModel()
Destructor.
tmp< volVectorField > Uabs() const
Return absolute velocity for complete mesh.
virtual bool read()
Read object.
vectorField velocity(const vectorField &positions) const
Return velocity vector from positions.
defineRunTimeSelectionTable(SRFModel, dictionary)
tmp< volVectorField::Internal > Fcoriolis() const
Return the coriolis force.
#define forAll(list, i)
Loop across all elements in list.
dimensioned< vector > dimensionedVector
Dimensioned vector obtained from generic dimensioned type.
const dimensionSet dimTime(0, 0, 1, 0, 0, 0, 0)
bool relative() const
Is supplied inlet value relative to the SRF?
const vector & axis() const
Return the axis of rotation.
virtual bool read()
Read radiationProperties dictionary.
tmp< volVectorField::Internal > Su() const
Source term component for momentum equation.
const dimensionedVector & omega() const
Return the angular velocity field [rad/s].
VectorSpace< Form, Cmpt, Ncmpts > normalised(const VectorSpace< Form, Cmpt, Ncmpts > &vs)
const dimensionedVector & origin() const
Return the origin of rotation.
Info<< "Reading field p\n"<< endl;volScalarField p(IOobject("p", runTime.timeName(), mesh, IOobject::MUST_READ, IOobject::AUTO_WRITE), mesh);Info<< "Reading field Urel\n"<< endl;volVectorField Urel(IOobject("Urel", runTime.timeName(), mesh, IOobject::MUST_READ, IOobject::AUTO_WRITE), mesh);Info<< "Reading/calculating face flux field phi\n"<< endl;surfaceScalarField phi(IOobject("phi", runTime.timeName(), mesh, IOobject::READ_IF_PRESENT, IOobject::AUTO_WRITE), linearInterpolate(Urel) &mesh.Sf());label pRefCell=0;scalar pRefValue=0.0;setRefCell(p, pimple.dict(), pRefCell, pRefValue);mesh.setFluxRequired(p.name());Info<< "Creating SRF model\n"<< endl;autoPtr< SRF::SRFModel > SRF(SRF::SRFModel::New(Urel))
Internal & ref(const bool updateAccessTime=true)
Return a reference to the dimensioned internal field.
fileName::Type type(const fileName &name, const bool followLink=true)
Return the file type: DIRECTORY or FILE, normally following symbolic links.
Velocity condition to be used in conjunction with the single rotating frame (SRF) model (see: SRFMode...
tmp< volVectorField::Internal > Fcentrifugal() const
Return the centrifugal force.
defineTypeNameAndDebug(rpm, 0)
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
const dimensionSet dimless
Dimensionless.
tmp< volVectorField > U() const
Return velocity of SRF for complete mesh.