Go to the documentation of this file.
117 #include "surfaceInterpolate.H"
135 public surfaceInterpolationScheme<Type>,
136 public blendedSchemeBase<Type>
176 void operator=(
const DEShybrid&) =
delete;
197 CH3_*Omega*
max(S, Omega)
212 nuEff/(
pow(0.09, 1.5)*
K),
225 CDES_*
delta/
max(lTurb*
g, SMALL*L0_) - 0.5
233 typeName +
":Factor",
251 vf.name() +
"BlendingFactor",
281 CDES_(readScalar(is)),
284 sigmaMin_(readScalar(is)),
285 sigmaMax_(readScalar(is)),
286 OmegaLim_(readScalar(is)),
291 if (U0_.
value() <= 0)
294 <<
"U0 coefficient must be > 0. "
297 if (L0_.
value() <= 0)
300 <<
"L0 coefficient must be > 0. "
306 <<
"sigmaMin coefficient must be >= 0. "
312 <<
"sigmaMax coefficient must be >= 0. "
318 <<
"sigmaMin coefficient must be <= 1. "
324 <<
"sigmaMax coefficient must be <= 1. "
347 CDES_(readScalar(is)),
350 sigmaMin_(readScalar(is)),
351 sigmaMax_(readScalar(is)),
352 OmegaLim_(readScalar(is)),
357 if (U0_.
value() <= 0)
360 <<
"U0 coefficient must be > 0. "
363 if (L0_.
value() <= 0)
366 <<
"L0 coefficient must be > 0. "
372 <<
"sigmaMin coefficient must be >= 0. "
378 <<
"sigmaMax coefficient must be >= 0. "
384 <<
"sigmaMin coefficient must be <= 1. "
390 <<
"sigmaMax coefficient must be <= 1. "
411 lookupObject<const volScalarField>(deltaName_);
420 const icoModel& model =
423 return calcBlendingFactor(vf, model.nuEff(), model.U(),
delta);
427 const cmpModel& model =
430 return calcBlendingFactor
432 vf, model.muEff()/model.rho(), model.U(),
delta
437 <<
"Scheme requires a turbulence model to be present. "
438 <<
"Unable to retrieve turbulence model from the mesh "
446 tmp<surfaceScalarField>
weights
448 const GeometricField<Type, fvPatchField, volMesh>& vf
454 (scalar(1) - bf)*tScheme1_().weights(vf)
455 + bf*tScheme2_().weights(vf);
470 (scalar(1) - bf)*tScheme1_().interpolate(vf)
471 + bf*tScheme2_().interpolate(vf);
478 return tScheme1_().corrected() || tScheme2_().corrected();
Defines the attributes of an object for which implicit objectRegistry management is supported,...
static tmp< surfaceInterpolationScheme< Type > > New(const fvMesh &mesh, Istream &schemeData)
dimensionedSymmTensor symm(const dimensionedSymmTensor &dt)
tmp< GeometricField< typename outerProduct< vector, Type >::type, fvPatchField, volMesh >> grad(const GeometricField< Type, fvsPatchField, surfaceMesh > &ssf)
A class for handling words, derived from Foam::string.
dimensionedTensor skew(const dimensionedTensor &dt)
const dimensionSet dimLength(0, 1, 0, 0, 0, 0, 0)
A class for managing temporary objects.
static const Foam::dimensionedScalar B("", Foam::dimless, 18.678)
static const Foam::dimensionedScalar A("", Foam::dimPressure, 611.21)
const Type & value() const
bool foundObject(const word &name, const bool recursive=false) const
CGAL::Exact_predicates_exact_constructions_kernel K
const dimensionSet dimTime(0, 0, 1, 0, 0, 0, 0)
dimensionedScalar pow4(const dimensionedScalar &ds)
dimensionedScalar tanh(const dimensionedScalar &ds)
An Istream is an abstract base class for all input systems (streams, files, token lists etc)....
dimensioned< scalar > dimensionedScalar
Dimensioned scalar obtained from generic dimensioned type.
const Type & lookupObject(const word &name, const bool recursive=false) const
dimensionedScalar pow(const dimensionedScalar &ds, const dimensionedScalar &expt)
label max(const labelHashSet &set, label maxValue=labelMin)
virtual tmp< surfaceScalarField > blendingFactor(const GeometricField< Type, fvPatchField, volMesh > &vf) const
Generic dimensioned Type class.
virtual tmp< GeometricField< Type, fvsPatchField, surfaceMesh > > correction(const GeometricField< Type, fvPatchField, volMesh > &vf) const
Mesh data needed to do the Finite Volume discretisation.
virtual bool corrected() const
const uniformDimensionedVectorField & g
static tmp< GeometricField< Type, fvsPatchField, surfaceMesh > > interpolate(const GeometricField< Type, fvPatchField, volMesh > &tvf, const surfaceScalarField &faceFlux, Istream &schemeData)
errorManipArg< error, int > exit(error &err, const int errNo=1)
#define FatalErrorInFunction
dimensionedSymmTensor sqr(const dimensionedVector &dv)
GeometricField< scalar, fvsPatchField, surfaceMesh > surfaceScalarField
tmp< GeometricField< Type, fvsPatchField, surfaceMesh > > interpolate(const GeometricField< Type, fvPatchField, volMesh > &vf) const
Templated wrapper class to provide compressible turbulence models thermal diffusivity based thermal t...
dimensionedScalar sqrt(const dimensionedScalar &ds)
Calculate the gradient of the given field.
dimensioned< typename typeOfMag< Type >::type > mag(const dimensioned< Type > &dt)
Abstract base class for surface interpolation schemes.
tmp< surfaceScalarField > weights(const GeometricField< Type, fvPatchField, volMesh > &vf) const
Hybrid convection scheme of Travin et al. for hybrid RAS/LES calculations.
Templated abstract base class for single-phase incompressible turbulence models.
const fvMesh & mesh() const
Generic GeometricField class.
DEShybrid(const fvMesh &mesh, Istream &is)
Base class for blended schemes to provide access to the blending factor surface field.