FEDEM Solver
R8.0
Source code of the dynamics solver
|
Module with subroutines for solution of dense linear equation systems. More...
Data Types | |
interface | solveeigenvalues |
Solves an eigenvalue problem. More... | |
Functions/Subroutines | |
subroutine | solveaxb (A, B, ierr, ndim) |
Solves the linear equation system A*x = B. More... | |
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... | |
Module with subroutines for solution of dense linear equation systems.
This module contains subroutines for solving dense linear systems of equations, by wrapping subroutines from the LAPACK linear algebra package.
subroutine densematrixmodule::solveaxb | ( | real(dp), dimension(:,:), intent(inout) | A, |
real(dp), dimension(:,:), intent(inout) | B, | ||
integer, intent(out) | ierr, | ||
integer, intent(in), optional | ndim | ||
) |
Solves the linear equation system A*x = B.
A | Dense coefficient matrix | |
B | Right-hand-side vectors on input, solution vectors on output | |
[out] | ierr | Error flag |
[in] | ndim | Dimension of equation system, specify only if less than size(A,1) |
subroutine densematrixmodule::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::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.