|View Issue Details|
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0000388||OpenFOAM||Contribution||public||2012-01-14 00:44||2017-11-01 18:08|
|Target Version||Fixed in Version|
|Summary||0000388: Generic eigensolver|
|Description||I 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 Information||TNT/JAMA is public domain: http://math.nist.gov/tnt/download.html|
@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?
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
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?
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.
|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.|
|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|