157 lines
5.8 KiB
C++
157 lines
5.8 KiB
C++
// Update dependents
|
|
eqnSrcR == turbulence->R();
|
|
|
|
// scalars
|
|
scalarOut = eqns.evaluateScalar("sOut");
|
|
|
|
dimensionedScalarOut = eqns.evaluateDimensionedScalar("dsOut");
|
|
|
|
eqns.evaluateDimensionedScalarField(dimensionedScalarFieldOut, "dsfOut");
|
|
|
|
eqns.evaluateGeometricScalarField(volScalarFieldOut, "volSfOut");
|
|
|
|
// vectors
|
|
vectorOut.x() = eqns.evaluateScalar("vOut.x");
|
|
vectorOut.y() = eqns.evaluateScalar("vOut.y");
|
|
vectorOut.z() = eqns.evaluateScalar("vOut.z");
|
|
|
|
dimensionedVectorOut.value().x() = eqns.evaluateScalar("dvOut.x");
|
|
dimensionedVectorOut.value().y() = eqns.evaluateScalar("dvOut.y");
|
|
dimensionedVectorOut.value().z() = eqns.evaluateScalar("dvOut.z");
|
|
// There is currently no elegant way to check the dimensions of each
|
|
// component of a "dimensionedType". (dimensionedTypeFields and
|
|
// GeometricTypeFields work automatically, though.) This is how we do
|
|
// it:
|
|
dimensionedVectorOut.dimensions() = eqns.evaluateDimensions("dvOut.x");
|
|
dimensionedVectorOut.dimensions() = eqns.evaluateDimensions("dvOut.y");
|
|
dimensionedVectorOut.dimensions() = eqns.evaluateDimensions("dvOut.z");
|
|
|
|
eqns.evaluateDimensionedTypeField
|
|
(
|
|
dimensionedVectorFieldOut,
|
|
"x",
|
|
"dvfOut.x"
|
|
);
|
|
eqns.evaluateDimensionedTypeField
|
|
(
|
|
dimensionedVectorFieldOut,
|
|
"y",
|
|
"dvfOut.y"
|
|
);
|
|
eqns.evaluateDimensionedTypeField
|
|
(
|
|
dimensionedVectorFieldOut,
|
|
"z",
|
|
"dvfOut.z"
|
|
);
|
|
|
|
eqns.evaluateGeometricTypeField(volVectorFieldOut, "x", "volVfOut.x");
|
|
eqns.evaluateGeometricTypeField(volVectorFieldOut, "y", "volVfOut.y");
|
|
eqns.evaluateGeometricTypeField(volVectorFieldOut, "z", "volVfOut.z");
|
|
|
|
// tensors
|
|
tensorOut.xx() = eqns.evaluateScalar("tOut.xx");
|
|
tensorOut.xy() = eqns.evaluateScalar("tOut.xy");
|
|
tensorOut.xz() = eqns.evaluateScalar("tOut.xz");
|
|
tensorOut.yx() = eqns.evaluateScalar("tOut.yx");
|
|
tensorOut.yy() = eqns.evaluateScalar("tOut.yy");
|
|
tensorOut.yz() = eqns.evaluateScalar("tOut.yz");
|
|
tensorOut.zx() = eqns.evaluateScalar("tOut.zx");
|
|
tensorOut.zy() = eqns.evaluateScalar("tOut.zy");
|
|
tensorOut.zz() = eqns.evaluateScalar("tOut.zz");
|
|
|
|
dimensionedTensorOut.value().xx() = eqns.evaluateScalar("dtOut.xx");
|
|
dimensionedTensorOut.value().xy() = eqns.evaluateScalar("dtOut.xy");
|
|
dimensionedTensorOut.value().xz() = eqns.evaluateScalar("dtOut.xz");
|
|
dimensionedTensorOut.value().yx() = eqns.evaluateScalar("dtOut.yx");
|
|
dimensionedTensorOut.value().yy() = eqns.evaluateScalar("dtOut.yy");
|
|
dimensionedTensorOut.value().yz() = eqns.evaluateScalar("dtOut.yz");
|
|
dimensionedTensorOut.value().zx() = eqns.evaluateScalar("dtOut.zx");
|
|
dimensionedTensorOut.value().zy() = eqns.evaluateScalar("dtOut.zy");
|
|
dimensionedTensorOut.value().zz() = eqns.evaluateScalar("dtOut.zz");
|
|
// There is currently no elegant way to check the dimensions of each
|
|
// component of a "dimensionedType". (dimensionedTypeFields and
|
|
// GeometricTypeFields work automatically, though.) This is how we do
|
|
// it:
|
|
dimensionedTensorOut.dimensions() = eqns.evaluateDimensions("dtOut.xx");
|
|
dimensionedTensorOut.dimensions() = eqns.evaluateDimensions("dtOut.xy");
|
|
dimensionedTensorOut.dimensions() = eqns.evaluateDimensions("dtOut.xz");
|
|
dimensionedTensorOut.dimensions() = eqns.evaluateDimensions("dtOut.yx");
|
|
dimensionedTensorOut.dimensions() = eqns.evaluateDimensions("dtOut.yy");
|
|
dimensionedTensorOut.dimensions() = eqns.evaluateDimensions("dtOut.yz");
|
|
dimensionedTensorOut.dimensions() = eqns.evaluateDimensions("dtOut.zx");
|
|
dimensionedTensorOut.dimensions() = eqns.evaluateDimensions("dtOut.zy");
|
|
dimensionedTensorOut.dimensions() = eqns.evaluateDimensions("dtOut.zz");
|
|
|
|
eqns.evaluateDimensionedTypeField
|
|
(
|
|
dimensionedTensorFieldOut,
|
|
"xx",
|
|
"dtfOut.xx"
|
|
);
|
|
eqns.evaluateDimensionedTypeField
|
|
(
|
|
dimensionedTensorFieldOut,
|
|
"xy",
|
|
"dtfOut.xy"
|
|
);
|
|
eqns.evaluateDimensionedTypeField
|
|
(
|
|
dimensionedTensorFieldOut,
|
|
"xz",
|
|
"dtfOut.xz"
|
|
);
|
|
eqns.evaluateDimensionedTypeField
|
|
(
|
|
dimensionedTensorFieldOut,
|
|
"yx",
|
|
"dtfOut.yx"
|
|
);
|
|
eqns.evaluateDimensionedTypeField
|
|
(
|
|
dimensionedTensorFieldOut,
|
|
"yy",
|
|
"dtfOut.yy"
|
|
);
|
|
eqns.evaluateDimensionedTypeField
|
|
(
|
|
dimensionedTensorFieldOut,
|
|
"yz",
|
|
"dtfOut.yz"
|
|
);
|
|
eqns.evaluateDimensionedTypeField
|
|
(
|
|
dimensionedTensorFieldOut,
|
|
"zx",
|
|
"dtfOut.zx"
|
|
);
|
|
eqns.evaluateDimensionedTypeField
|
|
(
|
|
dimensionedTensorFieldOut,
|
|
"zy",
|
|
"dtfOut.zy"
|
|
);
|
|
eqns.evaluateDimensionedTypeField
|
|
(
|
|
dimensionedTensorFieldOut,
|
|
"zz",
|
|
"dtfOut.zz"
|
|
);
|
|
eqns.evaluateGeometricTypeField(volTensorFieldOut, "xx", "volTfOut.xx");
|
|
eqns.evaluateGeometricTypeField(volTensorFieldOut, "xy", "volTfOut.xy");
|
|
eqns.evaluateGeometricTypeField(volTensorFieldOut, "xz", "volTfOut.xz");
|
|
eqns.evaluateGeometricTypeField(volTensorFieldOut, "yx", "volTfOut.yx");
|
|
eqns.evaluateGeometricTypeField(volTensorFieldOut, "yy", "volTfOut.yy");
|
|
eqns.evaluateGeometricTypeField(volTensorFieldOut, "yz", "volTfOut.yz");
|
|
eqns.evaluateGeometricTypeField(volTensorFieldOut, "zx", "volTfOut.zx");
|
|
eqns.evaluateGeometricTypeField(volTensorFieldOut, "zy", "volTfOut.zy");
|
|
eqns.evaluateGeometricTypeField(volTensorFieldOut, "zz", "volTfOut.zz");
|
|
|
|
// Update the equation output dictionary
|
|
eqnOutputDict.set("sOut", scalarOut);
|
|
eqnOutputDict.set("dsOut", dimensionedScalarOut);
|
|
eqnOutputDict.set("vOut", vectorOut);
|
|
eqnOutputDict.set("dvOut", dimensionedVectorOut);
|
|
eqnOutputDict.set("tOut", tensorOut);
|
|
eqnOutputDict.set("dtOut", dimensionedTensorOut);
|
|
|