Go to the documentation of this file.
46 static scalar
calcQE11(
const scalar a,
const scalar
x,
const int e = 30)
55 for (
n = 1; (2*
n) <=
e;
n++)
57 const scalar a_2nm1 = a_2np1;
58 const scalar b_2nm1 = b_2np1;
60 a_2n = a_2nm1 + (
n - a)*a_2n;
61 b_2n = b_2nm1 + (
n - a)*b_2n;
63 a_2np1 =
x*a_2n +
n*a_2nm1;
64 b_2np1 =
x*b_2n +
n*b_2nm1;
79 static scalar
calcPE15(
const scalar a,
const scalar
x,
const int nmax = 20)
84 for (
int n = 1;
n <= nmax;
n++)
90 const scalar
R = (
exp(-
x)*
pow(
x, a))/tgamma(a);
97 static scalar
calcQE16(
const scalar a,
const scalar
x,
const int N = 20)
102 for (
int n = 1;
n <= (
N - 1);
n++)
108 const scalar
R = (
exp(-
x)*
pow(
x, a))/tgamma(a);
110 return R/
x*(1 +
sum);
125 constexpr scalar D0_0 = -0.333333333333333E-00;
126 constexpr scalar D0_1 = 0.833333333333333E-01;
127 constexpr scalar D0_2 = -0.148148148148148E-01;
128 constexpr scalar D0_3 = 0.115740740740741E-02;
129 constexpr scalar D0_4 = 0.352733686067019E-03;
130 constexpr scalar D0_5 = -0.178755144032922E-03;
131 constexpr scalar D0_6 = 0.391926317852244E-04;
140 constexpr scalar D1_0 = -0.185185185185185E-02;
141 constexpr scalar D1_1 = -0.347222222222222E-02;
142 constexpr scalar D1_2 = 0.264550264550265E-02;
143 constexpr scalar D1_3 = -0.990226337448560E-03;
144 constexpr scalar D1_4 = 0.205761316872428E-03;
154 constexpr scalar D2_0 = 0.413359788359788E-02;
155 constexpr scalar D2_1 = -0.268132716049383E-02;
166 const scalar u = 1/a;
178 + D0_3*
pow3(z) + D0_2*
sqr(z) + D0_1*z + D0_0;
181 D1_4*
pow4(z) + D1_3*
pow3(z) + D1_2*
sqr(z) + D1_1*z + D1_0;
183 const scalar C2 = D2_1*z + D2_0;
185 return C2*
sqr(u) + C1*u + C0;
189 const scalar C0 = D0_2*
sqr(z) + D0_1*z + D0_0;
190 const scalar C1 = D1_1*z + D1_0;
191 const scalar C2 = D2_1*z + D2_0;
193 return C2*
sqr(u) + C1*u + C0;
210 <<
"The parameter (i.e. a) cannot be negative or zero"
214 return std::numeric_limits<scalar>::infinity();
220 <<
"The parameter (i.e. x) cannot be negative"
224 return std::numeric_limits<scalar>::infinity();
228 constexpr scalar BIG = 14;
229 constexpr scalar x0 = 17;
230 constexpr scalar e0 = 0.025;
258 for (label
n = 1;
n <= 10; ++
n)
263 const scalar J = -a*
sum;
268 return 1 - (
pow(
x, a)*(1 - J))/tgamma(a + 1);
274 const scalar
H = 1/(tgamma(a + 1)) - 1;
276 return (
pow(
x, a)*J -
L)/tgamma(a + 1) -
H;
282 const scalar
R = (
exp(-
x)*
pow(
x, a))/tgamma(a);
289 const scalar
sigma = fabs(1 -
x/a);
296 const scalar
y = a*
phi;
298 const scalar E = 0.5 - (1 -
y/3)*
sqrt(
y/
pi);
325 const scalar
y = a*
phi;
353 const scalar
R = (
exp(-
x)*
pow(
x, a))/tgamma(a);
367 if (a >
x ||
x >= x0)
377 const scalar
R = (
exp(-
x)*
pow(
x, a))/tgamma(a);
389 if (floor(2*a) == 2*a)
396 for (label
n = 0;
n <= (a - 1); ++
n)
409 for (
int n = 1;
n <= i;
n++)
418 else if (
x <=
max(a,
log(10.0)))
426 const scalar
R = (
exp(-
x)*
pow(
x, a))/tgamma(a);
const vector L(dict.get< vector >("L"))
static scalar calcTE18(const scalar a, const scalar e0, const scalar x, const scalar lambda, const scalar sigma, const scalar phi)
const dimensionedScalar alpha
Fine-structure constant: default SI units: [].
volScalarField H(IOobject("H", runTime.timeName(), mesh, IOobject::NO_READ, IOobject::AUTO_WRITE), mesh, dimensionedScalar(dimLength, Zero))
Ostream & endl(Ostream &os)
Add newline and flush stream.
dimensionedScalar exp(const dimensionedScalar &ds)
static scalar calcQE16(const scalar a, const scalar x, const int N=20)
dimensionedScalar erf(const dimensionedScalar &ds)
scalar incGammaRatio_P(const scalar a, const scalar x)
Regularised lower incomplete gamma function.
scalar incGammaRatio_Q(const scalar a, const scalar x)
Regularised upper incomplete gamma function.
scalar incGamma_Q(const scalar a, const scalar x)
Upper incomplete gamma function.
dimensionedScalar pow4(const dimensionedScalar &ds)
#define R(A, B, C, D, E, F, K, M)
dimensionedScalar pow6(const dimensionedScalar &ds)
dimensionedScalar pow3(const dimensionedScalar &ds)
dimensionedScalar erfc(const dimensionedScalar &ds)
dimensionedScalar pow(const dimensionedScalar &ds, const dimensionedScalar &expt)
label max(const labelHashSet &set, label maxValue=labelMin)
Find the max value in labelHashSet, optionally limited by second argument.
dimensionedScalar pow5(const dimensionedScalar &ds)
dimensionedScalar lambda("lambda", dimTime/sqr(dimLength), laminarTransport)
dimensionedScalar log(const dimensionedScalar &ds)
scalar incGamma_P(const scalar a, const scalar x)
Lower incomplete gamma function.
static scalar calcPE15(const scalar a, const scalar x, const int nmax=20)
dimensionedSymmTensor sqr(const dimensionedVector &dv)
constexpr scalar pi(M_PI)
dimensionedScalar sqrt(const dimensionedScalar &ds)
const dimensionedScalar e
Elementary charge.
dimensioned< Type > sum(const DimensionedField< Type, GeoMesh > &df)
label factorial(label n)
Evaluate n! : 0 < n <= 12.
dimensionedScalar sigma("sigma", dimMass/sqr(dimTime), transportProperties)
const Vector< label > N(dict.get< Vector< label >>("N"))
#define WarningInFunction
Report a warning using Foam::Warning.
static scalar calcQE11(const scalar a, const scalar x, const int e=30)