FEDEM Solver
R8.0
Source code of the dynamics solver
|
Solves an eigenvalue problem. More...
Public Member Functions | |
subroutine | solveeigenvaluea (A, lambda, Z, n, nVal, nVec, ierr) |
Solves a symmetric-definite eigenvalue problem. More... | |
subroutine | solveeigenvalueb (A, B, lambda, Z, n, nVal, nVec, ierr) |
Solves a generalized symmetric-definite eigenvalue problem. More... | |
Solves an eigenvalue problem.
subroutine densematrixmodule::solveeigenvalues::solveeigenvaluea | ( | real(dp), dimension(:,:), intent(inout) | A, |
real(dp), dimension(:), intent(out) | lambda, | ||
real(dp), dimension(:,:), intent(out) | Z, | ||
integer, intent(in) | n, | ||
integer, intent(in) | nVal, | ||
integer, intent(in) | nVec, | ||
integer, intent(out) | ierr | ||
) |
Solves a symmetric-definite eigenvalue problem.
A | Dense coefficient matrix | |
[out] | lambda | Computed eigenvalues |
[out] | Z | Computed eigenvectors |
[in] | n | Dimension of the eigenvalue problem |
[in] | nVal | Number of eigenvalues to solve for |
[in] | nVec | Number of eigenvectors to solve for |
[out] | ierr | Error flag |
The eigenvalues and (optionally) the associated eigenvectors of the symmetric-definite eigenproblem A*x - λx = 0 is computed using LAPACK::DSYEVX, where A is a dense symmetric matrix.
subroutine densematrixmodule::solveeigenvalues::solveeigenvalueb | ( | real(dp), dimension(:,:), intent(inout) | A, |
real(dp), dimension(:,:), intent(inout) | B, | ||
real(dp), dimension(:), intent(out) | lambda, | ||
real(dp), dimension(:,:), intent(out), target | Z, | ||
integer, intent(in) | n, | ||
integer, intent(in) | nVal, | ||
integer, intent(in) | nVec, | ||
integer, intent(out) | ierr | ||
) |
Solves a generalized symmetric-definite eigenvalue problem.
A | Dense stiffness matrix | |
B | Dense or diagonal mass matrix | |
[out] | lambda | Computed eigenvalues |
[out] | Z | Computed eigenvectors |
[in] | n | Dimension of the eigenvalue problem |
[in] | nVal | Number of eigenvalues to solve for |
[in] | nVec | Number of eigenvectors to solve for |
[out] | ierr | Error flag |
The eigenvalues and (optionally) the associated eigenvectors of the generalized symmetric-definite eigenproblem A*x - λ*B*x = 0 is computed using LAPACK::DSYGVX, where A and B are dense matrices. If B is a diagonal matrix, the eigenvalue problem is transformed into the form A*x - λ*I*x = 0 where I is the identity matrix, and is solved using the LAPACK::DSYEVX subroutine instead.