34 namespace blendingMethods
53 parameter(alphas, phaseSet, minFullyContinuousAlpha_);
55 parameter(alphas, phaseSet, minPartlyContinuousAlpha_);
69 minFullyContinuousAlpha_
73 "minFullyContinuousAlpha",
80 minPartlyContinuousAlpha_
84 "minPartlyContinuousAlpha",
94 const label i = iter.index();
98 minFullyContinuousAlpha_[i].
valid
99 != minPartlyContinuousAlpha_[i].
valid
103 <<
"Both minimum fully and partly continuous alpha must be "
104 <<
"supplied for phases that can become continuous. Only one "
112 && minFullyContinuousAlpha_[i].value
113 <= minPartlyContinuousAlpha_[i].value
118 <<
"The fully continuous alpha specified for " << iter().name()
119 <<
" is not greater than the partly continuous alpha"
127 && canBeContinuous(1)
130 minFullyContinuousAlpha_[0].value
131 + minPartlyContinuousAlpha_[1].value
135 minFullyContinuousAlpha_[1].value
136 + minPartlyContinuousAlpha_[0].value
143 << typeName.capitalise() <<
" blending function for interface "
144 << interface.name() <<
" is invalid in that it creates negative "
145 <<
"coefficients for sub-modelled values. A valid function will "
146 <<
"have fully continuous alphas that are greater than one minus "
147 <<
"the partly continuous alphas in the opposite phase."
163 return minFullyContinuousAlpha_[index].valid;
171 && canBeContinuous(1)
174 minFullyContinuousAlpha_[0].value
175 + minPartlyContinuousAlpha_[1].value
179 minFullyContinuousAlpha_[1].value
180 + minPartlyContinuousAlpha_[0].value
#define forAllConstIter(Container, container, iter)
Iterate across all elements in the container object of type.
Macros for easy insertion into run-time selection tables.
A templated 1D list of pointers to objects of type <T>, where the size of the array is known and used...
Abstract base class for functions that are used to combine interfacial sub-models according to the vo...
tmp< volScalarField > x(const UPtrList< const volScalarField > &alphas, const label phaseSet, const label systemSet) const
Return the coordinate of the blending function.
tmp< volScalarField > parameter(const UPtrList< const volScalarField > &alphas, const label set, const Pair< blendingParameter > ¶meters) const
Get a blending parameter averaged for the given set.
virtual tmp< volScalarField > f(const UPtrList< const volScalarField > &alphas, const label phaseSet, const label systemSet) const
Evaluate the blending function. Filters out phases that cannot.
Blending method based on piecewise linear functions. Supports the full range of phase fraction space....
virtual tmp< volScalarField > fContinuous(const UPtrList< const volScalarField > &alphas, const label phaseSet, const label systemSet) const
Evaluate the blending function.
virtual bool canSegregate() const
Return whether or not this interface can segregate.
linear(const dictionary &dict, const phaseInterface &interface)
Construct from a dictionary and an interface.
virtual bool canBeContinuous(const label index) const
Return whether or not a phase can be considered continuous.
A list of keyword definitions, which are a keyword followed by any number of values (e....
A class representing the concept of 1 (scalar(1)) used to avoid unnecessary manipulations for objects...
Class to represent an interface between phases. Derivations can further specify the configuration of ...
A class for managing temporary objects.
A class representing the concept of 0 used to avoid unnecessary manipulations for objects that are kn...
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
bool valid(const PtrList< ModelType > &l)
defineTypeNameAndDebug(continuous, 0)
addToRunTimeSelectionTable(blendingMethod, continuous, dictionary)
errorManipArg< error, int > exit(error &err, const int errNo=1)
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
layerAndWeight min(const layerAndWeight &a, const layerAndWeight &b)
layerAndWeight max(const layerAndWeight &a, const layerAndWeight &b)