version 0.6.0
type_solver_mumps Module Reference

Type definition for MUMPS solver.

Data Types

type  t_mumps_solver
 MUMPS solvers. More...
 

Functions/Subroutines

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...
 

Function/Subroutine Documentation

◆ call_mumps()

subroutine, public type_solver_mumps::call_mumps ( class(t_mumps_solver), intent(inout)  solver,
integer, intent(in)  job 
)
Parameters
[in,out]solverMUMPS solver.
[in]jobjob 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]rowrow index.
[in]row_offsetsoffsets of the global indices (size n_mpi_proc).
[out]row_rankrank 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]solutionsolution of the linear system.
[in]isol_locindices of the solution returned by MUMPS.
[in]sol_locvalues of the solution returned by MUMPS.
[in]row_offsetsoffsets 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]solverMUMPS solver.
[in]n_nonzerosnumber of nonzero coefficients.
[in]rhs_sizesize of the global right-hand side.