Go to the documentation of this file.
65 VGREAT, VGREAT, VGREAT,
66 VGREAT, VGREAT, VGREAT,
67 VGREAT, VGREAT, VGREAT
73 -VGREAT, -VGREAT, -VGREAT,
74 -VGREAT, -VGREAT, -VGREAT,
75 -VGREAT, -VGREAT, -VGREAT
116 - t.
xx() - t.
yy() - t.
zz();
130 scalar P = (a*a - 3*
b)/9;
133 scalar
Q = (2*a*a*a - 9*a*
b + 27*
c)/54;
137 if (
mag(P) < SMALL &&
mag(
Q) < SMALL)
139 return vector(- aBy3, - aBy3, - aBy3);
143 else if (
mag(PPP/QQ - 1) < SMALL)
145 scalar sqrtP =
sqrt(P);
146 scalar signQ =
sign(
Q);
148 i = ii = signQ*sqrtP - aBy3;
149 iii = - 2*signQ*sqrtP - aBy3;
155 scalar sqrtP =
sqrt(P);
159 i = - 2*sqrtP*value - aBy3;
160 ii = sqrtP*(value +
delta) - aBy3;
161 iii = sqrtP*(value -
delta) - aBy3;
169 <<
"complex eigenvalues detected for tensor: " << t
182 return vector(-VGREAT, i, VGREAT);
202 return vector(i, ii, iii);
225 scalar sd0, sd1, sd2;
226 scalar magSd0, magSd1, magSd2;
229 sd0 =
A.yy()*
A.zz() -
A.yz()*
A.zy();
230 sd1 =
A.zz()*
A.xx() -
A.zx()*
A.xz();
231 sd2 =
A.xx()*
A.yy() -
A.xy()*
A.yx();
237 if (magSd0 >= magSd1 && magSd0 >= magSd2 && magSd0 > SMALL)
242 (
A.yz()*
A.zx() -
A.zz()*
A.yx())/sd0,
243 (
A.zy()*
A.yx() -
A.yy()*
A.zx())/sd0
248 else if (magSd1 >= magSd2 && magSd1 > SMALL)
252 (
A.xz()*
A.zy() -
A.zz()*
A.xy())/sd1,
254 (
A.zx()*
A.xy() -
A.xx()*
A.zy())/sd1
259 else if (magSd2 > SMALL)
263 (
A.xy()*
A.yz() -
A.yy()*
A.xz())/sd2,
264 (
A.yx()*
A.xz() -
A.xx()*
A.yz())/sd2,
280 if (magSd0 >= magSd1 && magSd0 >= magSd2 && magSd0 > SMALL)
291 else if (magSd1 >= magSd2 && magSd1 > SMALL)
302 else if (magSd2 > SMALL)
static const char * componentNames[]
Templated 3D tensor derived from VectorSpace adding construction from 9 components,...
volScalarField w(IOobject("w", runTime.timeName(), mesh, IOobject::READ_IF_PRESENT, IOobject::NO_WRITE), mesh, dimensionedScalar("w", dimensionSet(0, 0, 0, 0, 0, 0, 0), 0.0))
dimensionedTensor eigenVectors(const dimensionedTensor &dt)
Tensor< scalar > tensor
Tensor of scalars.
Ostream & endl(Ostream &os)
Add newline and flush stream.
dimensioned< scalar > mag(const dimensioned< Type > &)
dimensionedScalar sign(const dimensionedScalar &ds)
static const char *const typeName
simpleMatrix< scalar > A(Nc)
This function object calculates and outputs the second invariant of the velocity gradient tensor [1/s...
const dimensionedScalar b
Wien displacement law constant: default SI units: [m.K].
vector eigenVector(const tensor &, const scalar lambda)
dimensionedVector eigenValues(const dimensionedTensor &dt)
static const sphericalTensor I(1)
Vector< scalar > vector
A scalar version of the templated Vector.
dimensionedScalar sqrt(const dimensionedScalar &ds)
dimensionedScalar acos(const dimensionedScalar &ds)
const dimensionedScalar c
Speed of light in a vacuum.
dimensionedScalar cbrt(const dimensionedScalar &ds)
#define WarningInFunction
Report a warning using Foam::Warning.
dimensionedScalar lambda(laminarTransport.lookup("lambda"))
dimensionedScalar cos(const dimensionedScalar &ds)