FreeFOAM The Cross-Platform CFD Toolkit
dimensionedTensor.C
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration |
5  \\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8 License
9  This file is part of OpenFOAM.
10 
11  OpenFOAM is free software: you can redistribute it and/or modify it
12  under the terms of the GNU General Public License as published by
13  the Free Software Foundation, either version 3 of the License, or
14  (at your option) any later version.
15 
16  OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
17  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18  FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
19  for more details.
20 
21  You should have received a copy of the GNU General Public License
22  along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
23  Dimensioned tensor obtained from generic dimensioned type.
24 
25 \*---------------------------------------------------------------------------*/
26 
28 
29 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
30 
31 namespace Foam
32 {
33 
34 // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
35 
36 template<>
38 {
39  return dimensionedTensor
40  (
41  name()+".T()",
42  dimensions(),
43  value().T()
44  );
45 }
46 
47 
48 // * * * * * * * * * * * * * * * Friend Functions * * * * * * * * * * * * * //
49 
51 {
52  return dimensionedScalar
53  (
54  "tr("+dt.name()+')',
55  dt.dimensions(),
56  tr(dt.value())
57  );
58 }
59 
60 
62 {
63  return dimensionedTensor
64  (
65  "dev("+dt.name()+')',
66  dt.dimensions(),
67  dev(dt.value())
68  );
69 }
70 
71 
73 {
74  return dimensionedTensor
75  (
76  "dev2("+dt.name()+')',
77  dt.dimensions(),
78  dev2(dt.value())
79  );
80 }
81 
82 
84 {
85  return dimensionedScalar
86  (
87  "det("+dt.name()+')',
88  pow(dt.dimensions(), tensor::dim),
89  det(dt.value())
90  );
91 }
92 
93 
95 {
96  return dimensionedTensor
97  (
98  "cof("+dt.name()+')',
99  dt.dimensions(),
100  cof(dt.value())
101  );
102 }
103 
104 
106 {
107  return dimensionedTensor
108  (
109  "inv("+dt.name()+')',
110  dimless/dt.dimensions(),
111  inv(dt.value())
112  );
113 }
114 
115 
117 {
118  return dimensionedSymmTensor
119  (
120  "symm("+dt.name()+')',
121  dt.dimensions(),
122  symm(dt.value())
123  );
124 }
125 
127 {
128  return dimensionedSymmTensor
129  (
130  "twoSymm("+dt.name()+')',
131  dt.dimensions(),
132  twoSymm(dt.value())
133  );
134 }
135 
137 {
138  return dimensionedTensor
139  (
140  "skew("+dt.name()+')',
141  dt.dimensions(),
142  skew(dt.value())
143  );
144 }
145 
146 
148 {
149  return dimensionedVector
150  (
151  "eigenValues("+dt.name()+')',
152  dt.dimensions(),
153  eigenValues(dt.value())
154  );
155 }
156 
157 
159 {
160  return dimensionedTensor
161  (
162  "eigenVectors("+dt.name()+')',
163  dimless,
164  eigenVectors(dt.value())
165  );
166 }
167 
168 
170 {
171  return dimensionedVector
172  (
173  "eigenValues("+dt.name()+')',
174  dt.dimensions(),
175  eigenValues(dt.value())
176  );
177 }
178 
179 
181 {
182  return dimensionedTensor
183  (
184  "eigenVectors("+dt.name()+')',
185  dimless,
186  eigenVectors(dt.value())
187  );
188 }
189 
190 
191 // * * * * * * * * * * * * * * * Friend Operators * * * * * * * * * * * * * //
192 
194 {
195  return dimensionedVector
196  (
197  "*"+dt.name(),
198  dt.dimensions(),
199  *dt.value()
200  );
201 }
202 
203 
205 {
206  return dimensionedTensor
207  (
208  "*"+dv.name(),
209  dv.dimensions(),
210  *dv.value()
211  );
212 }
213 
214 
215 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
216 
217 } // End namespace Foam
218 
219 // ************************ vim: set sw=4 sts=4 et: ************************ //