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,...
const dimensionSet dimless(0, 0, 0, 0, 0, 0, 0)
Dimensionless.
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...
tmp< volVectorField > U() const
Return velocity of SRF for complete mesh.