Go to the documentation of this file.
43 { KMethodType::mtFluidThermo,
"fluidThermo" },
44 { KMethodType::mtSolidThermo,
"solidThermo" },
45 { KMethodType::mtDirectionalSolidThermo,
"directionalSolidThermo" },
46 { KMethodType::mtLookup,
"lookup" }
55 const word& calculationType,
56 const word& kappaName,
57 const word& alphaAniName,
62 method_(KMethodTypeNames_[calculationType]),
63 kappaName_(kappaName),
64 alphaAniName_(alphaAniName),
76 method_(KMethodTypeNames_.get(
"kappaMethod",
dict)),
77 kappaName_(
dict.getOrDefault<
word>(
"kappa",
"none")),
78 alphaAniName_(
dict.getOrDefault<
word>(
"alphaAni",
"none")),
79 alphaName_(
dict.getOrDefault<
word>(
"alpha",
"none"))
83 case mtDirectionalSolidThermo:
85 if (!
dict.found(
"alphaAni"))
88 <<
"Did not find entry 'alphaAni'"
89 " required for 'kappaMethod' "
90 << KMethodTypeNames_[method_]
99 if (!
dict.found(
"kappa"))
102 <<
"Did not find entry 'kappa'"
103 " required for 'kappaMethod' "
104 << KMethodTypeNames_[method_] <<
nl
105 <<
" Please set 'kappa' to the name of a volScalarField"
106 " or volSymmTensorField"
142 const fvMesh&
mesh = patch_.boundaryMesh().mesh();
143 const label patchi = patch_.index();
155 turbulenceModel::propertiesName
160 return ptr->kappaEff(patchi);
170 return ptr->
kappa(patchi);
180 return ptr->
kappa(patchi);
190 return ptr->
kappa(patchi);
195 <<
"Using kappaMethod " << KMethodTypeNames_[method_]
196 <<
", but thermo package not available\n"
207 return thermo.kappa(patchi);
211 case mtDirectionalSolidThermo:
250 return n & KWall &
n;
255 <<
"Did not find field " << kappaName_
256 <<
" on mesh " <<
mesh.name() <<
" patch " << patch_.name()
258 <<
" Please set 'kappa' to the name of a volScalarField"
259 <<
" or volSymmTensorField."
268 <<
"Unimplemented method " << KMethodTypeNames_[method_] <<
nl
269 <<
"Please set 'kappaMethod' to one of "
271 <<
"and 'kappa' to the name of the volScalar"
272 <<
" or volSymmTensor field (if kappaMethod=lookup)"
288 const fvMesh&
mesh = patch_.boundaryMesh().mesh();
289 const label patchi = patch_.index();
301 turbulenceModel::propertiesName
306 return ptr->alphaEff(patchi);
316 return ptr->
alpha(patchi);
326 return ptr->
alpha(patchi);
336 return ptr->
alpha(patchi);
341 <<
"Using kappaMethod " << KMethodTypeNames_[method_]
342 <<
", but thermo package not available\n"
353 return thermo.alpha(patchi);
357 case mtDirectionalSolidThermo:
367 return n & alphaAni &
n;
390 return n & alphaWall &
n;
395 <<
"Did not find field " << alphaName_
396 <<
" on mesh " <<
mesh.name() <<
" patch " << patch_.name()
398 <<
"Please set 'kappaMethod' to one of "
400 <<
"and 'alpha' to the name of the volScalar"
401 <<
" or volSymmTensor field (if kappaMethod=lookup)"
411 <<
"Unimplemented method " << KMethodTypeNames_[method_] <<
nl
412 <<
"Please set 'kappaMethod' to one of "
414 <<
"and 'alpha' to the name of the volScalar"
415 <<
" or volSymmTensor field (if kappaMethod=lookup)"
Field< scalar > scalarField
Specialisation of Field<T> for scalar.
Enum is a wrapper around a list of names/values that represent particular enumeration (or int) values...
A class for handling words, derived from Foam::string.
const word alphaAniName_
Name of the non-Isotropic alpha (default: Anialpha)
A class for managing temporary objects.
Fundamental fluid thermodynamic properties.
const word dictName("blockMeshDict")
Common functions used in temperature coupled boundaries.
Basic thermodynamics type based on the use of fitting functions for cp, h, s obtained from the templa...
Abstract base-class for fluid and solid thermodynamic properties.
static const Enum< KMethodType > KMethodTypeNames_
const dimensionedScalar kappa
Coulomb constant: default SI units: [N.m2/C2].
Fundamental solid thermodynamic properties.
const KMethodType method_
How to get K.
GeometricField< symmTensor, fvPatchField, volMesh > volSymmTensorField
ThermalDiffusivity< CompressibleTurbulenceModel< fluidThermo > > turbulenceModel
KMethodType
Type of supplied Kappa.
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
virtual tmp< scalarField > alpha(const scalarField &Tp) const
Given patch temperature calculate corresponding alphaEff field.
GeometricField< scalar, fvPatchField, volMesh > volScalarField
virtual tmp< volScalarField > kappa() const =0
Thermal diffusivity for temperature of mixture [J/m/s/K].
Abstract base class for turbulence models (RAS, LES and laminar).
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
const word alphaName_
Name of thermal diffusivity.
Mesh data needed to do the Finite Volume discretisation.
FlatOutput::OutputAdaptor< Container, Delimiters > flatOutput(const Container &obj, Delimiters delim)
Global flatOutput() function with specified output delimiters.
errorManipArg< error, int > exit(error &err, const int errNo=1)
const word kappaName_
Name of thermal conductivity field (if looked up from database)
virtual const volScalarField & alpha() const
Thermal diffusivity for enthalpy of mixture [kg/m/s].
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
const std::string patch
OpenFOAM patch number as a std::string.
Templated wrapper class to provide compressible turbulence models thermal diffusivity based thermal t...
virtual tmp< scalarField > kappa(const scalarField &Tp) const
Given patch temperature calculate corresponding K field.
Ostream & writeEntry(const keyType &key, const T &value)
Write a keyword/value entry.
#define FatalIOErrorInFunction(ios)
Report an error message using Foam::FatalIOError.
void write(Ostream &os) const
Write.
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
temperatureCoupledBase(const fvPatch &patch, const word &calculationMethod, const word &kappaName, const word &alphaAniName, const word &alphaName)
Construct from patch and K name.