43 #ifndef filteredLinear2V_H
44 #define filteredLinear2V_H
57 template<
class LimiterFunc>
88 <<
"coefficient = " << k_
89 <<
" should be >= 0 and <= 1"
96 <<
"coefficient = " << l_
97 <<
" should be >= 0 and <= 1"
106 const scalar cdWeight,
107 const scalar faceFlux,
108 const typename LimiterFunc::phiType& phiP,
109 const typename LimiterFunc::phiType& phiN,
110 const typename LimiterFunc::gradPhiType& gradcP,
111 const typename LimiterFunc::gradPhiType& gradcN,
120 scalar df = dfV & dfV;
124 scalar tdcP = 2*(dfV & (d & gradcP));
125 scalar tdcN = 2*(dfV & (d & gradcN));
133 - k_*
min(
max(df - tdcP, 0),
max(df - tdcN, 0))
139 - k_*
min(
max(tdcP - df, 0),
max(tdcN - df, 0))
An Istream is an abstract base class for all input systems (streams, files, token lists etc)....
Class to generate weighting factors for the filteredLinear2V interpolation scheme.
scalar limiter(const scalar cdWeight, const scalar faceFlux, const typename LimiterFunc::phiType &phiP, const typename LimiterFunc::phiType &phiN, const typename LimiterFunc::gradPhiType &gradcP, const typename LimiterFunc::gradPhiType &gradcN, const vector &d) const
filteredLinear2VLimiter(Istream &is)
#define FatalIOErrorInFunction(ios)
Report an error message using Foam::FatalIOError.
errorManipArg< error, int > exit(error &err, const int errNo=1)
layerAndWeight min(const layerAndWeight &a, const layerAndWeight &b)
bool readScalar(const char *buf, doubleScalar &s)
Read whole of buf as a scalar. Return true if successful.
dimensioned< scalar > mag(const dimensioned< Type > &)
layerAndWeight max(const layerAndWeight &a, const layerAndWeight &b)