mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
BUG: mantis #1373: eigen value/vector calculation now handles repeated eigen values
This commit is contained in:
@ -69,5 +69,121 @@ int main()
|
||||
Info<< (symm(t7) && t7) - (0.5*(t7 + t7.T()) && t7) << endl;
|
||||
Info<< (t7 && symm(t7)) - (t7 && 0.5*(t7 + t7.T())) << endl;
|
||||
|
||||
|
||||
/*
|
||||
// Lots of awkward eigenvector tests ...
|
||||
|
||||
tensor T_rand_real
|
||||
(
|
||||
0.9999996423721313, 0.3330855667591095, 0.6646450161933899,
|
||||
0.9745196104049683, 0.0369445420801640, 0.0846728682518005,
|
||||
0.6474838852882385, 0.1617118716239929, 0.2041363865137100
|
||||
);
|
||||
Debug(T_rand_real);
|
||||
vector L_rand_real(eigenValues(T_rand_real));
|
||||
Debug(L_rand_real);
|
||||
tensor U_rand_real(eigenVectors(T_rand_real));
|
||||
Debug(U_rand_real);
|
||||
|
||||
Info << endl << endl;
|
||||
|
||||
tensor T_rand_imag
|
||||
(
|
||||
0.8668024539947510, 0.1664607226848602, 0.8925783634185791,
|
||||
0.9126510620117188, 0.7408077120780945, 0.1499115079641342,
|
||||
0.0936608463525772, 0.7615650296211243, 0.8953040242195129
|
||||
);
|
||||
Debug(T_rand_imag);
|
||||
vector L_rand_imag(eigenValues(T_rand_imag));
|
||||
Debug(L_rand_imag);
|
||||
tensor U_rand_imag(eigenVectors(T_rand_imag));
|
||||
Debug(U_rand_imag);
|
||||
|
||||
Info << endl << endl;
|
||||
|
||||
tensor T_rand_symm
|
||||
(
|
||||
1.9999992847442627, 1.3076051771640778, 1.3121289014816284,
|
||||
1.3076051771640778, 0.0738890841603279, 0.2463847398757935,
|
||||
1.3121289014816284, 0.2463847398757935, 0.4082727730274200
|
||||
);
|
||||
Debug(T_rand_symm);
|
||||
vector L_rand_symm(eigenValues(T_rand_symm));
|
||||
Debug(L_rand_symm);
|
||||
tensor U_rand_symm(eigenVectors(T_rand_symm));
|
||||
Debug(U_rand_symm);
|
||||
|
||||
Info << endl << endl;
|
||||
|
||||
symmTensor T_rand_Symm
|
||||
(
|
||||
1.9999992847442627, 1.3076051771640778, 1.3121289014816284,
|
||||
0.0738890841603279, 0.2463847398757935,
|
||||
0.4082727730274200
|
||||
);
|
||||
Debug(T_rand_Symm);
|
||||
vector L_rand_Symm(eigenValues(T_rand_Symm));
|
||||
Debug(L_rand_Symm);
|
||||
tensor U_rand_Symm(eigenVectors(T_rand_Symm));
|
||||
Debug(U_rand_Symm);
|
||||
|
||||
Info << endl << endl;
|
||||
|
||||
tensor T_rand_diag
|
||||
(
|
||||
0.8668024539947510, 0, 0,
|
||||
0, 0.7408077120780945, 0,
|
||||
0, 0, 0.8953040242195129
|
||||
);
|
||||
Debug(T_rand_diag);
|
||||
vector L_rand_diag(eigenValues(T_rand_diag));
|
||||
Debug(L_rand_diag);
|
||||
tensor U_rand_diag(eigenVectors(T_rand_diag));
|
||||
Debug(U_rand_diag);
|
||||
|
||||
Info << endl << endl;
|
||||
|
||||
tensor T_repeated
|
||||
(
|
||||
0, 1, 1,
|
||||
1, 0, 1,
|
||||
1, 1, 0
|
||||
);
|
||||
Debug(T_repeated);
|
||||
vector L_repeated(eigenValues(T_repeated));
|
||||
Debug(L_repeated);
|
||||
tensor U_repeated(eigenVectors(T_repeated));
|
||||
Debug(U_repeated);
|
||||
|
||||
Info << endl << endl;
|
||||
|
||||
tensor T_repeated_zero
|
||||
(
|
||||
1, 1, 1,
|
||||
1, 1, 1,
|
||||
1, 1, 1
|
||||
);
|
||||
Debug(T_repeated_zero);
|
||||
vector L_repeated_zero(eigenValues(T_repeated_zero));
|
||||
Debug(L_repeated_zero);
|
||||
tensor U_repeated_zero(eigenVectors(T_repeated_zero));
|
||||
Debug(U_repeated_zero);
|
||||
|
||||
Info << endl << endl;
|
||||
|
||||
tensor T_triple
|
||||
(
|
||||
2, 0, 0,
|
||||
0, 2, 0,
|
||||
0, 0, 2
|
||||
);
|
||||
Debug(T_triple);
|
||||
vector L_triple(eigenValues(T_triple));
|
||||
Debug(L_triple);
|
||||
tensor U_triple(eigenVectors(T_triple));
|
||||
Debug(U_triple);
|
||||
*/
|
||||
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user