mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
ENH: tensor: stabilise eigenvectors
This commit is contained in:
@ -150,7 +150,7 @@ Foam::vector Foam::eigenValues(const tensor& t)
|
|||||||
if (R2 < Q3)
|
if (R2 < Q3)
|
||||||
{
|
{
|
||||||
scalar sqrtQ = sqrt(Q);
|
scalar sqrtQ = sqrt(Q);
|
||||||
scalar theta = acos(R/(Q*sqrtQ));
|
scalar theta = acos(min(1.0, max(-1.0, R/(Q*sqrtQ))));
|
||||||
|
|
||||||
scalar m2SqrtQ = -2*sqrtQ;
|
scalar m2SqrtQ = -2*sqrtQ;
|
||||||
scalar aBy3 = a/3;
|
scalar aBy3 = a/3;
|
||||||
@ -345,7 +345,7 @@ Foam::vector Foam::eigenValues(const symmTensor& t)
|
|||||||
if (R2 < Q3)
|
if (R2 < Q3)
|
||||||
{
|
{
|
||||||
scalar sqrtQ = sqrt(Q);
|
scalar sqrtQ = sqrt(Q);
|
||||||
scalar theta = acos(R/(Q*sqrtQ));
|
scalar theta = acos(min(1.0, max(-1.0, R/(Q*sqrtQ))));
|
||||||
|
|
||||||
scalar m2SqrtQ = -2*sqrtQ;
|
scalar m2SqrtQ = -2*sqrtQ;
|
||||||
scalar aBy3 = a/3;
|
scalar aBy3 = a/3;
|
||||||
|
|||||||
Reference in New Issue
Block a user