64 SRFModelCoeffs_(optionalSubDict(type +
"Coeffs")),
85 lookup(
"origin") >> origin_;
92 SRFModelCoeffs_ = optionalSubDict(
type() +
"Coeffs");
138 omega_ ^ (omega_ ^ (mesh_.C() - origin_))
146 return Fcoriolis() + Fcentrifugal();
158 (positions - origin_.value())
159 - axis_*(axis_ & (positions - origin_.value()))
171 omega_ ^ ((mesh_.C() - origin_) - axis_*(axis_ & (mesh_.C() - origin_)))
192 const volVectorField::Boundary& bvf = Urel_.boundaryField();
196 if (isA<SRFVelocityFvPatchVectorField>(bvf[i]))
201 refCast<const SRFVelocityFvPatchVectorField>(bvf[i]);
204 Uabsbf[i] += Urel_.boundaryField()[i];
209 Uabsbf[i] += Urel_.boundaryField()[i];
defineTypeNameAndDebug(rpm, 0)
#define forAll(list, i)
Loop across all elements in list.
static tmp< DimensionedField< Type, GeoMesh > > New(const word &name, const Mesh &mesh, const dimensionSet &)
Return a temporary field constructed from name, mesh.
const Switch & relative() const
Return const access to the relative flag.
virtual bool read()
Read object.
T & ref() const
Return non-const reference or generate a fatal error.
static tmp< GeometricField< vector, fvPatchField, volMesh > > New(const word &name, const Internal &, const PtrList< fvPatchField< vector >> &)
Return a temporary field constructed from name,.
dimensioned< vector > dimensionedVector
Dimensioned vector obtained from generic dimensioned type.
const dimensionSet dimless
defineRunTimeSelectionTable(SRFModel, dictionary)
const vector & axis() const
Return the axis of rotation.
const dimensionSet dimLength
IOdictionary is derived from dictionary and IOobject to give the dictionary automatic IO functionalit...
const dimensionSet dimTime
virtual bool read()
Read SRFProperties dictionary.
Info<< "Reading field p\"<< endl;volScalarField p(IOobject("p", runTime.timeName(), mesh, IOobject::MUST_READ, IOobject::AUTO_WRITE), mesh);Info<< "Reading field Urel\"<< endl;volVectorField Urel(IOobject("Urel", runTime.timeName(), mesh, IOobject::MUST_READ, IOobject::AUTO_WRITE), mesh);Info<< "Reading/calculating face flux field phi\"<< endl;surfaceScalarField phi(IOobject("phi", runTime.timeName(), mesh, IOobject::READ_IF_PRESENT, IOobject::AUTO_WRITE), linearInterpolate(Urel) &mesh.Sf());pressureReference pressureReference(p, pimple.dict());mesh.setFluxRequired(p.name());Info<< "Creating SRF model\"<< endl;autoPtr< SRF::SRFModel > SRF(SRF::SRFModel::New(Urel))
stressControl lookup("compactNormalStress") >> compactNormalStress
A class for handling words, derived from string.
const word & constant() const
Return constant name.
const dimensionedVector & omega() const
Return the angular velocity field [rad/s].
const dimensionedVector & origin() const
Return the origin of rotation.
Internal::FieldType & primitiveFieldRef()
Return a reference to the internal field.
tmp< volVectorField::Internal > Fcoriolis() const
Return the coriolis force.
tmp< volVectorField::Internal > Su() const
Source term component for momentum equation.
tmp< volVectorField > U() const
Return velocity of SRF for complete mesh.
tmp< volVectorField::Internal > Fcentrifugal() const
Return the centrifugal force.
SRFModel(const word &type, const volVectorField &Urel)
Construct from components.
Boundary & boundaryFieldRef()
Return a reference to the boundary field.
const Time & time() const
Return time.
tmp< volVectorField > Uabs() const
Return absolute velocity for complete mesh.
fileType type(const fileName &, const bool checkVariants=true, const bool followLink=true)
Return the file type: directory or file.
virtual ~SRFModel()
Destructor.
dimensioned< scalar > mag(const dimensioned< Type > &)
A class for managing temporary objects.
const objectRegistry & db() const
Return the local objectRegistry.
IOobject defines the attributes of an object for which implicit objectRegistry management is supporte...
vectorField velocity(const vectorField &positions) const
Return velocity vector from positions.
Velocity condition to be used in conjunction with the single rotating frame (SRF) model (see: SRFMode...