2017-11-24 09:12 GMT

View Issue Details Jump to Notes ]
IDProjectCategoryView StatusLast Update
0000388OpenFOAMContributionpublic2017-11-01 18:08
Assigned To 
Platformx86_64OSopenSUSEOS Version12.1
Product Version 
Target VersionFixed in Version 
Summary0000388: Generic eigensolver
DescriptionI have ported the generic eigensolver in TNT/JAMA (derived from EISPACK) to OpenFOAM. Both symmetric and non-symmetric matrices are supported.

- Symmetric matrices are made tri-diagonal by means of the Householder transformation, and the result is provided as input to the QL algorithm.

- Non-symmetric matrices, are reduced to Hessemberg form, and then their real Schur form is computed.

If you think it is of general interest, you can include it in the release. You can download it from my Bitbucket git repository:

git clone https://bitbucket.org/albertop/eigensolver.git
Additional InformationTNT/JAMA is public domain: http://math.nist.gov/tnt/download.html
Attached Files




wyldckat (updater)

@albertop and @will: Is this contribution still useful?

I remember that Will implemented improvements to the eigen calculations back in March 2017 here: https://github.com/OpenFOAM/OpenFOAM-dev/commit/997b66913d4353da3480fafa2a8cfb9e2b2b1e2b

Therefore, the question here is if this report can be closed or if it's still open for study?


albertop (reporter)

I think the major difference is that eigenSolver is for any matrix size, while currently OpenFOAM can find eigenvalues for tensors (or 3x3 matrices).

P.S. There were a few minor changes I made to the eigenSolver class and pushed to OpenQBMM. Mostly style: https://github.com/OpenQBMM/OpenQBMM/tree/development/src/eigenSolver


henry (manager)

While the general eigen solver is needed for the QBMM implementation in OpenQBMM it is not currently needed for the functionality provided with OpenFOAM and it is not clear what it might be useful for other than QBMM. There is no issue with the licencing of the code so it can be included in OpenFOAM if there is a general or even specific need for it.

It might be more useful if all of the linear algebra algorithms in the TNT/JAMA library were updated for consistency with OpenFOAM containers and changed to use the new "(i, j)" element access rather than the old "[i][j]" method for consistency with the rest of OpenFOAM. Would someone be interested in taking on this task?


albertop (reporter)

Making the code consistent with the new structure is a good idea.

When you say "all the linear algebra algorithms in the TNT/JAMA library", do you mean limited to the eigensolver? I am asking because JAMA has Cholesky, LU, QR and SVD algorithms in addition to the eigensolver, but they are already available in OpenFOAM.


henry (manager)

I think it might be a good idea to replace all of these implementations with the JAMA versions for consistency. However I am not sure about the relative performance and robustness of the implementations so it might cause some problems.

-Issue History
Date Modified Username Field Change
2012-01-14 00:44 albertop New Issue
2015-02-04 20:54 wyldckat Tag Attached: contribution
2017-09-02 16:42 wyldckat Note Added: 0008671
2017-09-02 19:44 albertop Note Added: 0008674
2017-09-04 17:04 henry Note Added: 0008685
2017-09-05 16:25 albertop Note Added: 0008699
2017-09-05 16:36 henry Note Added: 0008700
2017-11-01 18:08 wyldckat Category Bug => Contribution
+Issue History