Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Development
openfoam
Commits
bb034f8b
Commit
bb034f8b
authored
Jun 11, 2008
by
henry
Browse files
Further tinkering and additional test of the eigenvaues of symmTensors.
parent
951e70cd
Changes
2
Hide whitespace changes
Inline
Side-by-side
applications/test/tensor/tensorTest.C
View file @
bb034f8b
...
...
@@ -38,6 +38,12 @@ int main()
<<
(
eigenVector
(
t6
,
e
[
2
])
&
t6
)
<<
e
[
2
]
*
eigenVector
(
t6
,
e
[
2
])
<<
endl
;
Info
<<
"Check eigenvalues for symmTensor "
<<
eigenValues
(
symm
(
t6
))
-
eigenValues
(
tensor
(
symm
(
t6
)))
<<
endl
;
Info
<<
"Check eigenvectors for symmTensor "
<<
eigenVectors
(
symm
(
t6
))
-
eigenVectors
(
tensor
(
symm
(
t6
)))
<<
endl
;
tensor
t7
(
1
,
2
,
3
,
2
,
4
,
5
,
3
,
5
,
6
);
Info
<<
"Check transformation "
...
...
@@ -49,7 +55,7 @@ int main()
<<
transform
(
t1
,
st1
)
<<
endl
;
vector
v1
(
1
,
2
,
3
);
Info
<<
sqr
(
v1
)
<<
endl
;
Info
<<
symm
(
t7
)
<<
endl
;
Info
<<
twoSymm
(
t7
)
<<
endl
;
...
...
src/OpenFOAM/primitives/tensor/tensor.C
View file @
bb034f8b
...
...
@@ -185,7 +185,7 @@ vector eigenValues(const tensor& t)
vector
eigenVector
(
const
tensor
&
t
,
const
scalar
lambda
)
{
if
(
lambda
<
SMALL
)
if
(
mag
(
lambda
)
<
SMALL
)
{
return
vector
::
zero
;
}
...
...
@@ -292,22 +292,22 @@ vector eigenValues(const symmTensor& t)
+
t
.
xy
()
*
t
.
xy
()
*
t
.
zz
()
+
t
.
xx
()
*
t
.
yz
()
*
t
.
yz
();
// If there is a zero root
if
(
mag
(
c
)
<
SMALL
)
if
(
mag
(
c
)
<
1.0e-100
)
{
scalar
disc
=
sqr
(
a
)
-
4
*
b
;
if
(
disc
>
0
)
if
(
disc
>
=
-
SMALL
)
{
scalar
q
=
-
0
.
5
*
(
a
+
sign
(
a
)
*
sqrt
(
disc
));
scalar
q
=
-
0
.
5
*
sqrt
(
max
(
0
.
0
,
disc
));
i
=
0
;
ii
=
q
;
iii
=
b
/
q
;
ii
=
-
0
.
5
*
a
+
q
;
iii
=
-
0
.
5
*
a
-
q
;
}
else
{
FatalErrorIn
(
"eigenValues(const
symmT
ensor&)"
)
<<
"zero and complex eigenvalues in
symmT
ensor: "
<<
t
FatalErrorIn
(
"eigenValues(const
t
ensor&)"
)
<<
"zero and complex eigenvalues in
t
ensor: "
<<
t
<<
abort
(
FatalError
);
}
}
...
...
@@ -380,7 +380,7 @@ vector eigenValues(const symmTensor& t)
vector
eigenVector
(
const
symmTensor
&
t
,
const
scalar
lambda
)
{
if
(
lambda
<
SMALL
)
if
(
mag
(
lambda
)
<
SMALL
)
{
return
vector
::
zero
;
}
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment