Type definition for MUMPS solver.
|
subroutine, public | call_mumps (solver, job) |
| Call MUMPS and look for error or warning (check INFOG(1)). More...
|
|
subroutine, public | mumps_setup (solver, n_nonzeros, rhs_size) |
| Initialization of MUMPS (JOB = -1) and set-up the parameters for the analysis without filling the matrix. More...
|
|
subroutine, public | distribute_solution (solution, isol_loc, sol_loc, row_offsets) |
| Redistribute the solution across the processes. More...
|
|
subroutine | compute_row_rank (row, row_offsets, row_rank) |
| Computes the rank of the processor to which the row belongs. More...
|
|
◆ call_mumps()
subroutine, public type_solver_mumps::call_mumps |
( |
class(t_mumps_solver), intent(inout) |
solver, |
|
|
integer, intent(in) |
job |
|
) |
| |
- Parameters
-
[in,out] | solver | MUMPS solver. |
[in] | job | job number. |
MUMPS interface
◆ compute_row_rank()
subroutine type_solver_mumps::compute_row_rank |
( |
integer, intent(in) |
row, |
|
|
integer, dimension(:), intent(in) |
row_offsets, |
|
|
integer, intent(out) |
row_rank |
|
) |
| |
Use a binary search algorithm for faster performance.
- Parameters
-
[in] | row | row index. |
[in] | row_offsets | offsets of the global indices (size n_mpi_proc). |
[out] | row_rank | rank of the processor to which the row belongs. |
◆ distribute_solution()
subroutine, public type_solver_mumps::distribute_solution |
( |
double precision, dimension(:), intent(out) |
solution, |
|
|
integer, dimension(:), intent(in) |
isol_loc, |
|
|
double precision, dimension(:), intent(in) |
sol_loc, |
|
|
integer, dimension(:), intent(in) |
row_offsets |
|
) |
| |
The solution returned by MUMPS is indexed differently from the global indexing. This routine redistribute the solution.
- Parameters
-
[out] | solution | solution of the linear system. |
[in] | isol_loc | indices of the solution returned by MUMPS. |
[in] | sol_loc | values of the solution returned by MUMPS. |
[in] | row_offsets | offsets of the global indices (size n_mpi_proc). |
◆ mumps_setup()
subroutine, public type_solver_mumps::mumps_setup |
( |
class(t_mumps_solver), intent(inout) |
solver, |
|
|
integer(kind=8), intent(in) |
n_nonzeros, |
|
|
integer, intent(in) |
rhs_size |
|
) |
| |
- Parameters
-
[in,out] | solver | MUMPS solver. |
[in] | n_nonzeros | number of nonzero coefficients. |
[in] | rhs_size | size of the global right-hand side. |