mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
Minor change to the tolerances in the eigenvalue calculation
This commit is contained in:
@ -97,17 +97,17 @@ vector eigenValues(const tensor& t)
|
|||||||
+ t.xy()*t.yx()*t.zz() + t.xx()*t.yz()*t.zy();
|
+ t.xy()*t.yx()*t.zz() + t.xx()*t.yz()*t.zy();
|
||||||
|
|
||||||
// If there is a zero root
|
// If there is a zero root
|
||||||
if (mag(c) < SMALL)
|
if (mag(c) < 1.0e-100)
|
||||||
{
|
{
|
||||||
scalar disc = sqr(a) - 4*b;
|
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;
|
i = 0;
|
||||||
ii = q;
|
ii = -0.5*a + q;
|
||||||
iii = b/q;
|
iii = -0.5*a - q;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -185,7 +185,7 @@ vector eigenValues(const tensor& t)
|
|||||||
|
|
||||||
vector eigenVector(const tensor& t, const scalar lambda)
|
vector eigenVector(const tensor& t, const scalar lambda)
|
||||||
{
|
{
|
||||||
if (mag(lambda) < SMALL)
|
if (lambda < SMALL)
|
||||||
{
|
{
|
||||||
return vector::zero;
|
return vector::zero;
|
||||||
}
|
}
|
||||||
@ -380,7 +380,7 @@ vector eigenValues(const symmTensor& t)
|
|||||||
|
|
||||||
vector eigenVector(const symmTensor& t, const scalar lambda)
|
vector eigenVector(const symmTensor& t, const scalar lambda)
|
||||||
{
|
{
|
||||||
if (mag(lambda) < SMALL)
|
if (lambda < SMALL)
|
||||||
{
|
{
|
||||||
return vector::zero;
|
return vector::zero;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user