Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #include <OpenFOAM/dimensionedTensor.H>
00028
00029
00030
00031 namespace Foam
00032 {
00033
00034
00035
00036 template<>
00037 dimensionedTensor dimensionedTensor::T() const
00038 {
00039 return dimensionedTensor
00040 (
00041 name()+".T()",
00042 dimensions(),
00043 value().T()
00044 );
00045 }
00046
00047
00048
00049
00050 dimensionedScalar tr(const dimensionedTensor& dt)
00051 {
00052 return dimensionedScalar
00053 (
00054 "tr("+dt.name()+')',
00055 dt.dimensions(),
00056 tr(dt.value())
00057 );
00058 }
00059
00060
00061 dimensionedTensor dev(const dimensionedTensor& dt)
00062 {
00063 return dimensionedTensor
00064 (
00065 "dev("+dt.name()+')',
00066 dt.dimensions(),
00067 dev(dt.value())
00068 );
00069 }
00070
00071
00072 dimensionedTensor dev2(const dimensionedTensor& dt)
00073 {
00074 return dimensionedTensor
00075 (
00076 "dev2("+dt.name()+')',
00077 dt.dimensions(),
00078 dev2(dt.value())
00079 );
00080 }
00081
00082
00083 dimensionedScalar det(const dimensionedTensor& dt)
00084 {
00085 return dimensionedScalar
00086 (
00087 "det("+dt.name()+')',
00088 pow(dt.dimensions(), tensor::dim),
00089 det(dt.value())
00090 );
00091 }
00092
00093
00094 dimensionedTensor cof(const dimensionedTensor& dt)
00095 {
00096 return dimensionedTensor
00097 (
00098 "cof("+dt.name()+')',
00099 dt.dimensions(),
00100 cof(dt.value())
00101 );
00102 }
00103
00104
00105 dimensionedTensor inv(const dimensionedTensor& dt)
00106 {
00107 return dimensionedTensor
00108 (
00109 "inv("+dt.name()+')',
00110 dimless/dt.dimensions(),
00111 inv(dt.value())
00112 );
00113 }
00114
00115
00116 dimensionedSymmTensor symm(const dimensionedTensor& dt)
00117 {
00118 return dimensionedSymmTensor
00119 (
00120 "symm("+dt.name()+')',
00121 dt.dimensions(),
00122 symm(dt.value())
00123 );
00124 }
00125
00126 dimensionedSymmTensor twoSymm(const dimensionedTensor& dt)
00127 {
00128 return dimensionedSymmTensor
00129 (
00130 "twoSymm("+dt.name()+')',
00131 dt.dimensions(),
00132 twoSymm(dt.value())
00133 );
00134 }
00135
00136 dimensionedTensor skew(const dimensionedTensor& dt)
00137 {
00138 return dimensionedTensor
00139 (
00140 "skew("+dt.name()+')',
00141 dt.dimensions(),
00142 skew(dt.value())
00143 );
00144 }
00145
00146
00147 dimensionedVector eigenValues(const dimensionedTensor& dt)
00148 {
00149 return dimensionedVector
00150 (
00151 "eigenValues("+dt.name()+')',
00152 dt.dimensions(),
00153 eigenValues(dt.value())
00154 );
00155 }
00156
00157
00158 dimensionedTensor eigenVectors(const dimensionedTensor& dt)
00159 {
00160 return dimensionedTensor
00161 (
00162 "eigenVectors("+dt.name()+')',
00163 dimless,
00164 eigenVectors(dt.value())
00165 );
00166 }
00167
00168
00169 dimensionedVector eigenValues(const dimensionedSymmTensor& dt)
00170 {
00171 return dimensionedVector
00172 (
00173 "eigenValues("+dt.name()+')',
00174 dt.dimensions(),
00175 eigenValues(dt.value())
00176 );
00177 }
00178
00179
00180 dimensionedTensor eigenVectors(const dimensionedSymmTensor& dt)
00181 {
00182 return dimensionedTensor
00183 (
00184 "eigenVectors("+dt.name()+')',
00185 dimless,
00186 eigenVectors(dt.value())
00187 );
00188 }
00189
00190
00191
00192
00193 dimensionedVector operator*(const dimensionedTensor& dt)
00194 {
00195 return dimensionedVector
00196 (
00197 "*"+dt.name(),
00198 dt.dimensions(),
00199 *dt.value()
00200 );
00201 }
00202
00203
00204 dimensionedTensor operator*(const dimensionedVector& dv)
00205 {
00206 return dimensionedTensor
00207 (
00208 "*"+dv.name(),
00209 dv.dimensions(),
00210 *dv.value()
00211 );
00212 }
00213
00214
00215
00216
00217 }
00218
00219