34 namespace blendingMethods
46 const UPtrList<const volScalarField>& alphas,
51 tmp<volScalarField> x = this->
x(alphas, phaseSet, systemSet);
52 tmp<volScalarField> f =
53 parameter(alphas, phaseSet, minFullyContinuousAlpha_);
54 tmp<volScalarField> p =
55 parameter(alphas, phaseSet, minPartlyContinuousAlpha_);
56 return min(
max((x -
p())/
max(f -
p(), rootVSmall), zero()), one());
64 const dictionary&
dict,
65 const phaseInterface& interface
68 blendingMethod(dict, interface),
69 minFullyContinuousAlpha_
73 "minFullyContinuousAlpha",
80 minPartlyContinuousAlpha_
84 "minPartlyContinuousAlpha",
94 const label i = iter.index();
98 isParameter(minFullyContinuousAlpha_[i])
99 != isParameter(minPartlyContinuousAlpha_[i])
103 <<
"Both minimum fully and partly continuous alpha must be " 104 <<
"supplied for phases that can become continuous. Only one " 112 && minFullyContinuousAlpha_[i] <= minPartlyContinuousAlpha_[i]
117 <<
"The fully continuous alpha specified for " << iter().name()
118 <<
" is not greater than the partly continuous alpha" 126 && canBeContinuous(1)
129 minFullyContinuousAlpha_[0] + minPartlyContinuousAlpha_[1]
133 minFullyContinuousAlpha_[1] + minPartlyContinuousAlpha_[0]
141 << interface.name() <<
" is invalid in that it creates negative " 142 <<
"coefficients for sub-modelled values. A valid function will " 143 <<
"have fully continuous alphas that are greater than one minus " 144 <<
"the partly continuous alphas in the opposite phase." 160 return isParameter(minFullyContinuousAlpha_[index]);
168 && canBeContinuous(1)
170 minFullyContinuousAlpha_[0] + minPartlyContinuousAlpha_[1]
173 minFullyContinuousAlpha_[1] + minPartlyContinuousAlpha_[0]
layerAndWeight max(const layerAndWeight &a, const layerAndWeight &b)
FvWallInfoData< WallInfo, label > label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
errorManipArg< error, int > exit(error &err, const int errNo=1)
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
#define forAllConstIter(Container, container, iter)
Iterate across all elements in the container object of type.
virtual tmp< volScalarField > fContinuous(const UPtrList< const volScalarField > &alphas, const label phaseSet, const label systemSet) const
Evaluate the blending function.
Macros for easy insertion into run-time selection tables.
virtual bool canSegregate() const
Return whether or not this interface can segregate.
layerAndWeight min(const layerAndWeight &a, const layerAndWeight &b)
addToRunTimeSelectionTable(ensightPart, ensightPartCells, istream)
virtual bool canBeContinuous(const label index) const
Return whether or not a phase can be considered continuous.
defineTypeNameAndDebug(combustionModel, 0)
static word typeName()
Return the instantiated type name.
linear(const dictionary &dict, const phaseInterface &interface)
Construct from a dictionary and an interface.
A class for managing temporary objects.
word capitalise() const
Return the word with the first letter capitalised.