Stellarator-Tools
|
Module contains subroutines for solver for block tri-diagonal matrices. More...
Functions/Subroutines | |
subroutine, public | initialize (inN, inM) |
To be invoked, before solve, by user. More... | |
subroutine, public | getranks (irank, inranks) |
subroutine, public | setmatrixrowcoll (globrow, Lj, j) |
To be invoked, before solve, after initialize, by user, to set up the matrix. More... | |
subroutine, public | setmatrixrowcold (globrow, Dj, j) |
To be invoked, before solve, after initialize, by user, to set up the matrix. More... | |
subroutine, public | setmatrixrowcolu (globrow, Uj, j) |
To be invoked, before solve, after initialize, by user, to set up the matrix. More... | |
subroutine, public | setmatrixrhs (globrow, b) |
To be invoked, before solve, after initialize, by user, to set up the matrix. More... | |
subroutine, public | getmatrixrowcoll (globrow, Lj, j) |
Can be invoked after initialize, by user, to get a copy of the matrix. More... | |
subroutine, public | getmatrixrowcold (globrow, Dj, j) |
Can be invoked after initialize, by user, to get a copy of the matrix. More... | |
subroutine, public | getmatrixrowcolu (globrow, Uj, j) |
Can be invoked after initialize, by user, to get a copy of the matrix. More... | |
subroutine, public | getmatrixrhs (globrow, b) |
Can be invoked after initialize, by user, to get a copy of the RHS. More... | |
subroutine, public | getsolutionvector (globrow, x) |
To be invoked, after solve, by user to get the solution vector of a local row. More... | |
subroutine, public | finalize (do_mpifinalize) |
To be invoked, after solve, by user. More... | |
subroutine, public | forwardsolve |
BCYCLIC forward phase; to be called after Initialize. | |
subroutine, public | backwardsolve |
BCYCLIC backward phase; to be called after ForwardSolve. | |
subroutine, public | checkconditionnumber (nblkrow, bsize, anorm, rcond, info) |
subroutine, public | checksymmetry (asymIndx) |
subroutine, public | storediagonal (blkrow, colnum, buf) |
subroutine, public | parmatvec (invec, outvec, outveclength) |
subroutine, public | applyparallelscaling (lmp, colscale, lverbose) |
subroutine, public | findminmax_tri (lmp) |
subroutine, public | refactorhessian (lmp) |
subroutine, public | padsides (arrin, blksize, top, bot) |
Variables | |
real(dp), public | maxeigen_tri |
maximum eigenvalue from Gerschgorin theorem | |
real(dp), public | dmin_tri |
minimum non-zero diagonal element, used to scale Levenberg parameter (SPH 08-31-16) | |
Module contains subroutines for solver for block tri-diagonal matrices.
subroutine, public blocktridiagonalsolver_s::finalize | ( | logical, intent(in) | do_mpifinalize | ) |
To be invoked, after solve, by user.
[in] | do_mpifinalize | Invoke MPI_Finalize? |
subroutine, public blocktridiagonalsolver_s::getmatrixrhs | ( | integer, intent(in) | globrow, |
real(dp), dimension(:), intent(out) | b | ||
) |
Can be invoked after initialize, by user, to get a copy of the RHS.
[in] | globrow | Original/global block-row num in [1..N] |
[out] | b | RHS column corr. to globrow |
subroutine, public blocktridiagonalsolver_s::getmatrixrowcold | ( | integer, intent(in) | globrow, |
real(dp), dimension(:), intent(out) | Dj, | ||
integer, intent(in) | j | ||
) |
Can be invoked after initialize, by user, to get a copy of the matrix.
[in] | globrow | Original/global block-row num in [1..N] |
[out] | dj | j'th colum of D at globrow |
[in] | j | column number of L at globrow that is being set |
subroutine, public blocktridiagonalsolver_s::getmatrixrowcoll | ( | integer, intent(in) | globrow, |
real(dp), dimension(:), intent(out) | Lj, | ||
integer, intent(in) | j | ||
) |
Can be invoked after initialize, by user, to get a copy of the matrix.
[in] | globrow | Original/global block-row num in [1..N] |
[out] | lj | j'th colum of L at globrow; 1st L is always 0 |
[in] | j | column number of L at globrow that is being set |
subroutine, public blocktridiagonalsolver_s::getmatrixrowcolu | ( | integer, intent(in) | globrow, |
real(dp), dimension(:), intent(out) | Uj, | ||
integer, intent(in) | j | ||
) |
Can be invoked after initialize, by user, to get a copy of the matrix.
[in] | globrow | Original/global block-row num in [1..N] |
[out] | uj | j'th colum of L at globrow; Nth U is always 0 |
[in] | j | column number of U at globrow that is being set |
subroutine, public blocktridiagonalsolver_s::getsolutionvector | ( | integer, intent(in) | globrow, |
real(dp), dimension(:), intent(out) | x | ||
) |
To be invoked, after solve, by user to get the solution vector of a local row.
[in] | globrow | Original/global block-row num in [1..N] |
[out] | x | Solution column corr. to globrow |
subroutine, public blocktridiagonalsolver_s::initialize | ( | integer, intent(in) | inN, |
integer, intent(in) | inM | ||
) |
To be invoked, before solve, by user.
[in] | inn | Num of row blocks in input block tri-diag matrix |
[in] | inm | Size of each square sub-matrix block |
subroutine, public blocktridiagonalsolver_s::setmatrixrhs | ( | integer, intent(in) | globrow, |
real(dp), dimension(:), intent(in) | b | ||
) |
To be invoked, before solve, after initialize, by user, to set up the matrix.
[in] | globrow | Original/global block-row num in [1..N] |
[in] | b | RHS column corr. to globrow |
subroutine, public blocktridiagonalsolver_s::setmatrixrowcold | ( | integer, intent(in) | globrow, |
real(dp), dimension(:), intent(in) | Dj, | ||
integer, intent(in) | j | ||
) |
To be invoked, before solve, after initialize, by user, to set up the matrix.
[in] | globrow | Original/global block-row num in [1..N] |
[in] | dj | j'th colum of D at globrow |
[in] | j | column number of L at globrow that is being set |
subroutine, public blocktridiagonalsolver_s::setmatrixrowcoll | ( | integer, intent(in) | globrow, |
real(dp), dimension(:), intent(in) | Lj, | ||
integer, intent(in) | j | ||
) |
To be invoked, before solve, after initialize, by user, to set up the matrix.
[in] | globrow | Original/global block-row num in [1..N] |
[in] | lj | j'th colum of L at globrow; 1st L is always 0 |
[in] | j | column number of L at globrow that is being set |
subroutine, public blocktridiagonalsolver_s::setmatrixrowcolu | ( | integer, intent(in) | globrow, |
real(dp), dimension(:), intent(in) | Uj, | ||
integer, intent(in) | j | ||
) |
To be invoked, before solve, after initialize, by user, to set up the matrix.
[in] | globrow | Original/global block-row num in [1..N] |
[in] | uj | j'th colum of U at globrow; Nth U is always 0 |
[in] | j | column number of U at globrow that is being set |