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(),
236 if (isA<SRFVelocityFvPatchVectorField>(bvf[i]))
241 refCast<const SRFVelocityFvPatchVectorField>(bvf[i]);
244 Uabsbf[i] += Urel_.boundaryField()[i];
249 Uabsbf[i] += Urel_.boundaryField()[i];
Internal::FieldType & primitiveFieldRef(const bool updateAccessTime=true)
Return a reference to the internal field.
Boundary & boundaryFieldRef(const bool updateAccessTime=true)
Return a reference to the boundary field.
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,...
Velocity condition to be used in conjunction with the single rotating frame (SRF) model (see: SRFMode...
bool relative() const
Is supplied inlet value relative to the SRF?
Top level model for single rotating frame.
tmp< volVectorField::Internal > Fcentrifugal() const
Return the centrifugal force.
tmp< volVectorField > Uabs() const
Return absolute velocity for complete mesh.
tmp< volVectorField::Internal > Su() const
Source term component for momentum equation.
const dimensionedVector & origin() const
Return the origin of rotation.
vectorField velocity(const vectorField &positions) const
Return velocity vector from positions.
tmp< volVectorField::Internal > Fcoriolis() const
Return the coriolis force.
tmp< volVectorField > U() const
Return velocity of SRF for complete mesh.
const vector & axis() const
Return the axis of rotation.
const dimensionedVector & omega() const
Return the angular velocity field [rad/s].
virtual ~SRFModel()
Destructor.
virtual bool read()
Read radiationProperties dictionary.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
constant condensation/saturation model.
virtual bool read()
Read object.
A class for managing temporary objects.
A class for handling words, derived from Foam::string.
#define defineTypeNameAndDebug(Type, DebugSwitch)
Define the typeName and debug information.
const dimensionSet dimless
Dimensionless.
quaternion normalised(const quaternion &q)
Return the normalised (unit) quaternion of the given quaternion.
const dimensionSet dimLength(0, 1, 0, 0, 0, 0, 0)
const dimensionSet dimTime(0, 0, 1, 0, 0, 0, 0)
fileName::Type type(const fileName &name, const bool followLink=true)
Return the file type: DIRECTORY or FILE, normally following symbolic links.
#define defineRunTimeSelectionTable(baseType, argNames)
Define run-time selection table.
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))
#define forAll(list, i)
Loop across all elements in list.