Merge branch 'master' of ssh://git.code.sf.net/p/foam-extend/foam-extend-3.2
[foam-extend-3.2.git] / applications / solvers / equationReaderDemo / evaluateEquations.H
blobc58abd5b0608fba806a09c14203155d827ef7d95
1     // Update dependents
2     eqnSrcR == turbulence->R();
4     // scalars
5     scalarOut = eqns.evaluateScalar("sOut");
7     dimensionedScalarOut = eqns.evaluateDimensionedScalar("dsOut");
9     eqns.evaluateDimensionedScalarField(dimensionedScalarFieldOut, "dsfOut");
11     eqns.evaluateGeometricScalarField(volScalarFieldOut, "volSfOut");
13     // vectors
14     vectorOut.x() = eqns.evaluateScalar("vOut.x");
15     vectorOut.y() = eqns.evaluateScalar("vOut.y");
16     vectorOut.z() = eqns.evaluateScalar("vOut.z");
18     dimensionedVectorOut.value().x() = eqns.evaluateScalar("dvOut.x");
19     dimensionedVectorOut.value().y() = eqns.evaluateScalar("dvOut.y");
20     dimensionedVectorOut.value().z() = eqns.evaluateScalar("dvOut.z");
21     // There is currently no elegant way to check the dimensions of each
22     // component of a "dimensionedType".  (dimensionedTypeFields and
23     // GeometricTypeFields work automatically, though.)  This is how we do
24     // it:
25     dimensionedVectorOut.dimensions() = eqns.evaluateDimensions("dvOut.x");
26     dimensionedVectorOut.dimensions() = eqns.evaluateDimensions("dvOut.y");
27     dimensionedVectorOut.dimensions() = eqns.evaluateDimensions("dvOut.z");
29     eqns.evaluateDimensionedTypeField
30     (
31         dimensionedVectorFieldOut,
32         "x",
33         "dvfOut.x"
34     );
35     eqns.evaluateDimensionedTypeField
36     (
37         dimensionedVectorFieldOut,
38         "y",
39         "dvfOut.y"
40     );
41     eqns.evaluateDimensionedTypeField
42     (
43         dimensionedVectorFieldOut,
44         "z",
45         "dvfOut.z"
46     );
48     eqns.evaluateGeometricTypeField(volVectorFieldOut, "x", "volVfOut.x");
49     eqns.evaluateGeometricTypeField(volVectorFieldOut, "y", "volVfOut.y");
50     eqns.evaluateGeometricTypeField(volVectorFieldOut, "z", "volVfOut.z");
52     // tensors
53     tensorOut.xx() = eqns.evaluateScalar("tOut.xx");
54     tensorOut.xy() = eqns.evaluateScalar("tOut.xy");
55     tensorOut.xz() = eqns.evaluateScalar("tOut.xz");
56     tensorOut.yx() = eqns.evaluateScalar("tOut.yx");
57     tensorOut.yy() = eqns.evaluateScalar("tOut.yy");
58     tensorOut.yz() = eqns.evaluateScalar("tOut.yz");
59     tensorOut.zx() = eqns.evaluateScalar("tOut.zx");
60     tensorOut.zy() = eqns.evaluateScalar("tOut.zy");
61     tensorOut.zz() = eqns.evaluateScalar("tOut.zz");
63     dimensionedTensorOut.value().xx() = eqns.evaluateScalar("dtOut.xx");
64     dimensionedTensorOut.value().xy() = eqns.evaluateScalar("dtOut.xy");
65     dimensionedTensorOut.value().xz() = eqns.evaluateScalar("dtOut.xz");
66     dimensionedTensorOut.value().yx() = eqns.evaluateScalar("dtOut.yx");
67     dimensionedTensorOut.value().yy() = eqns.evaluateScalar("dtOut.yy");
68     dimensionedTensorOut.value().yz() = eqns.evaluateScalar("dtOut.yz");
69     dimensionedTensorOut.value().zx() = eqns.evaluateScalar("dtOut.zx");
70     dimensionedTensorOut.value().zy() = eqns.evaluateScalar("dtOut.zy");
71     dimensionedTensorOut.value().zz() = eqns.evaluateScalar("dtOut.zz");
72     // There is currently no elegant way to check the dimensions of each
73     // component of a "dimensionedType".  (dimensionedTypeFields and
74     // GeometricTypeFields work automatically, though.)  This is how we do
75     // it:
76     dimensionedTensorOut.dimensions() = eqns.evaluateDimensions("dtOut.xx");
77     dimensionedTensorOut.dimensions() = eqns.evaluateDimensions("dtOut.xy");
78     dimensionedTensorOut.dimensions() = eqns.evaluateDimensions("dtOut.xz");
79     dimensionedTensorOut.dimensions() = eqns.evaluateDimensions("dtOut.yx");
80     dimensionedTensorOut.dimensions() = eqns.evaluateDimensions("dtOut.yy");
81     dimensionedTensorOut.dimensions() = eqns.evaluateDimensions("dtOut.yz");
82     dimensionedTensorOut.dimensions() = eqns.evaluateDimensions("dtOut.zx");
83     dimensionedTensorOut.dimensions() = eqns.evaluateDimensions("dtOut.zy");
84     dimensionedTensorOut.dimensions() = eqns.evaluateDimensions("dtOut.zz");
86     eqns.evaluateDimensionedTypeField
87     (
88         dimensionedTensorFieldOut,
89         "xx",
90         "dtfOut.xx"
91     );
92     eqns.evaluateDimensionedTypeField
93     (
94         dimensionedTensorFieldOut,
95         "xy",
96         "dtfOut.xy"
97     );
98     eqns.evaluateDimensionedTypeField
99     (
100         dimensionedTensorFieldOut,
101         "xz",
102         "dtfOut.xz"
103     );
104     eqns.evaluateDimensionedTypeField
105     (
106         dimensionedTensorFieldOut,
107         "yx",
108         "dtfOut.yx"
109     );
110     eqns.evaluateDimensionedTypeField
111     (
112         dimensionedTensorFieldOut,
113         "yy",
114         "dtfOut.yy"
115     );
116     eqns.evaluateDimensionedTypeField
117     (
118         dimensionedTensorFieldOut,
119         "yz",
120         "dtfOut.yz"
121     );
122     eqns.evaluateDimensionedTypeField
123     (
124         dimensionedTensorFieldOut,
125         "zx",
126         "dtfOut.zx"
127     );
128     eqns.evaluateDimensionedTypeField
129     (
130         dimensionedTensorFieldOut,
131         "zy",
132         "dtfOut.zy"
133     );
134     eqns.evaluateDimensionedTypeField
135     (
136         dimensionedTensorFieldOut,
137         "zz",
138         "dtfOut.zz"
139     );
140     eqns.evaluateGeometricTypeField(volTensorFieldOut, "xx", "volTfOut.xx");
141     eqns.evaluateGeometricTypeField(volTensorFieldOut, "xy", "volTfOut.xy");
142     eqns.evaluateGeometricTypeField(volTensorFieldOut, "xz", "volTfOut.xz");
143     eqns.evaluateGeometricTypeField(volTensorFieldOut, "yx", "volTfOut.yx");
144     eqns.evaluateGeometricTypeField(volTensorFieldOut, "yy", "volTfOut.yy");
145     eqns.evaluateGeometricTypeField(volTensorFieldOut, "yz", "volTfOut.yz");
146     eqns.evaluateGeometricTypeField(volTensorFieldOut, "zx", "volTfOut.zx");
147     eqns.evaluateGeometricTypeField(volTensorFieldOut, "zy", "volTfOut.zy");
148     eqns.evaluateGeometricTypeField(volTensorFieldOut, "zz", "volTfOut.zz");
150     // Update the equation output dictionary
151     eqnOutputDict.set("sOut", scalarOut);
152     eqnOutputDict.set("dsOut", dimensionedScalarOut);
153     eqnOutputDict.set("vOut", vectorOut);
154     eqnOutputDict.set("dvOut", dimensionedVectorOut);
155     eqnOutputDict.set("tOut", tensorOut);
156     eqnOutputDict.set("dtOut", dimensionedTensorOut);