mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
BUG: surfaceInertia analytic eigendecomposition (fixes #1599)
- was missing cast to symmTensor
This commit is contained in:
committed by
Mark Olesen
parent
e3f681fa59
commit
9be1772e0c
@ -82,9 +82,9 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
J = f.inertia(pts, Cf, density);
|
J = f.inertia(pts, Cf, density);
|
||||||
|
|
||||||
vector eVal = eigenValues(J);
|
vector eVal = eigenValues(symm(J));
|
||||||
|
|
||||||
tensor eVec = eigenVectors(J);
|
tensor eVec = eigenVectors(symm(J));
|
||||||
|
|
||||||
Info<< nl << "Inertia tensor of test face " << J << nl
|
Info<< nl << "Inertia tensor of test face " << J << nl
|
||||||
<< "eigenValues (principal moments) " << eVal << nl
|
<< "eigenValues (principal moments) " << eVal << nl
|
||||||
@ -148,9 +148,9 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
momentOfInertia::massPropertiesSolid(pts, tetFaces, density, m, cM, J);
|
momentOfInertia::massPropertiesSolid(pts, tetFaces, density, m, cM, J);
|
||||||
|
|
||||||
vector eVal = eigenValues(J);
|
vector eVal = eigenValues(symm(J));
|
||||||
|
|
||||||
tensor eVec = eigenVectors(J);
|
tensor eVec = eigenVectors(symm(J));
|
||||||
|
|
||||||
Info<< nl
|
Info<< nl
|
||||||
<< "Mass of tetrahedron " << m << nl
|
<< "Mass of tetrahedron " << m << nl
|
||||||
@ -204,7 +204,7 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
tensor& J = mI[celli];
|
tensor& J = mI[celli];
|
||||||
|
|
||||||
vector eVal = eigenValues(J);
|
vector eVal = eigenValues(symm(J));
|
||||||
|
|
||||||
Info<< nl
|
Info<< nl
|
||||||
<< "Inertia tensor of cell " << celli << " " << J << nl
|
<< "Inertia tensor of cell " << celli << " " << J << nl
|
||||||
@ -212,7 +212,7 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
J /= cmptMax(eVal);
|
J /= cmptMax(eVal);
|
||||||
|
|
||||||
tensor eVec = eigenVectors(J);
|
tensor eVec = eigenVectors(symm(J));
|
||||||
|
|
||||||
Info<< "eigenVectors (principal axes, from normalised inertia) " << eVec
|
Info<< "eigenVectors (principal axes, from normalised inertia) " << eVec
|
||||||
<< endl;
|
<< endl;
|
||||||
|
|||||||
@ -115,9 +115,9 @@ int main(int argc, char *argv[])
|
|||||||
<< "Negative mass detected, the surface may be inside-out." << endl;
|
<< "Negative mass detected, the surface may be inside-out." << endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
vector eVal = eigenValues(J);
|
vector eVal = eigenValues(symm(J));
|
||||||
|
|
||||||
tensor eVec = eigenVectors(J);
|
tensor eVec = eigenVectors(symm(J));
|
||||||
|
|
||||||
label pertI = 0;
|
label pertI = 0;
|
||||||
|
|
||||||
@ -133,9 +133,9 @@ int main(int argc, char *argv[])
|
|||||||
J.yy() *= 1.0 + SMALL*rand.sample01<scalar>();
|
J.yy() *= 1.0 + SMALL*rand.sample01<scalar>();
|
||||||
J.zz() *= 1.0 + SMALL*rand.sample01<scalar>();
|
J.zz() *= 1.0 + SMALL*rand.sample01<scalar>();
|
||||||
|
|
||||||
eVal = eigenValues(J);
|
eVal = eigenValues(symm(J));
|
||||||
|
|
||||||
eVec = eigenVectors(J);
|
eVec = eigenVectors(symm(J));
|
||||||
|
|
||||||
pertI++;
|
pertI++;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user