Home
Downloads
Documentation
Installation
User Guide
man-pages
API Documentation
README
Release Notes
Changes
License
Support
SourceForge Project
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Pages
src
OpenFOAM
dimensionedTypes
dimensionedTensor
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
27
#include <
OpenFOAM/dimensionedTensor.H
>
28
29
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
30
31
namespace
Foam
32
{
33
34
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
35
36
template
<>
37
dimensionedTensor
dimensionedTensor::T
()
const
38
{
39
return
dimensionedTensor
40
(
41
name
()+
".T()"
,
42
dimensions(),
43
value().
T
()
44
);
45
}
46
47
48
// * * * * * * * * * * * * * * * Friend Functions * * * * * * * * * * * * * //
49
50
dimensionedScalar
tr
(
const
dimensionedTensor
& dt)
51
{
52
return
dimensionedScalar
53
(
54
"tr("
+dt.
name
()+
')'
,
55
dt.
dimensions
(),
56
tr
(dt.
value
())
57
);
58
}
59
60
61
dimensionedTensor
dev
(
const
dimensionedTensor
& dt)
62
{
63
return
dimensionedTensor
64
(
65
"dev("
+dt.name()+
')'
,
66
dt.dimensions(),
67
dev
(dt.value())
68
);
69
}
70
71
72
dimensionedTensor
dev2
(
const
dimensionedTensor
& dt)
73
{
74
return
dimensionedTensor
75
(
76
"dev2("
+dt.name()+
')'
,
77
dt.dimensions(),
78
dev2
(dt.value())
79
);
80
}
81
82
83
dimensionedScalar
det
(
const
dimensionedTensor
& dt)
84
{
85
return
dimensionedScalar
86
(
87
"det("
+dt.name()+
')'
,
88
pow
(dt.dimensions(), tensor::dim),
89
det
(dt.value())
90
);
91
}
92
93
94
dimensionedTensor
cof
(
const
dimensionedTensor
& dt)
95
{
96
return
dimensionedTensor
97
(
98
"cof("
+dt.name()+
')'
,
99
dt.dimensions(),
100
cof
(dt.value())
101
);
102
}
103
104
105
dimensionedTensor
inv
(
const
dimensionedTensor
& dt)
106
{
107
return
dimensionedTensor
108
(
109
"inv("
+dt.name()+
')'
,
110
dimless
/dt.dimensions(),
111
inv
(dt.value())
112
);
113
}
114
115
116
dimensionedSymmTensor
symm
(
const
dimensionedTensor
& dt)
117
{
118
return
dimensionedSymmTensor
119
(
120
"symm("
+dt.name()+
')'
,
121
dt.dimensions(),
122
symm
(dt.value())
123
);
124
}
125
126
dimensionedSymmTensor
twoSymm
(
const
dimensionedTensor
& dt)
127
{
128
return
dimensionedSymmTensor
129
(
130
"twoSymm("
+dt.name()+
')'
,
131
dt.dimensions(),
132
twoSymm
(dt.value())
133
);
134
}
135
136
dimensionedTensor
skew
(
const
dimensionedTensor
& dt)
137
{
138
return
dimensionedTensor
139
(
140
"skew("
+dt.
name
()+
')'
,
141
dt.
dimensions
(),
142
skew
(dt.
value
())
143
);
144
}
145
146
147
dimensionedVector
eigenValues
(
const
dimensionedTensor
& dt)
148
{
149
return
dimensionedVector
150
(
151
"eigenValues("
+dt.
name
()+
')'
,
152
dt.
dimensions
(),
153
eigenValues
(dt.
value
())
154
);
155
}
156
157
158
dimensionedTensor
eigenVectors
(
const
dimensionedTensor
& dt)
159
{
160
return
dimensionedTensor
161
(
162
"eigenVectors("
+dt.
name
()+
')'
,
163
dimless
,
164
eigenVectors
(dt.
value
())
165
);
166
}
167
168
169
dimensionedVector
eigenValues
(
const
dimensionedSymmTensor
& dt)
170
{
171
return
dimensionedVector
172
(
173
"eigenValues("
+dt.name()+
')'
,
174
dt.dimensions(),
175
eigenValues
(dt.value())
176
);
177
}
178
179
180
dimensionedTensor
eigenVectors
(
const
dimensionedSymmTensor
& dt)
181
{
182
return
dimensionedTensor
183
(
184
"eigenVectors("
+dt.name()+
')'
,
185
dimless
,
186
eigenVectors
(dt.value())
187
);
188
}
189
190
191
// * * * * * * * * * * * * * * * Friend Operators * * * * * * * * * * * * * //
192
193
dimensionedVector
operator*
(
const
dimensionedTensor
& dt)
194
{
195
return
dimensionedVector
196
(
197
"*"
+dt.name(),
198
dt.dimensions(),
199
*dt.value()
200
);
201
}
202
203
204
dimensionedTensor
operator*
(
const
dimensionedVector
& dv)
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: ************************ //