0.6.0
Loading...
Searching...
No Matches
type_solver_mumps Module Reference

Type definition for MUMPS solver. More...

Data Types

type  t_mumps_solver
 MUMPS solvers. More...
 

Enumerations

enum  {
  verbosity_none = 0 , verbosity_error , verbosity_warning , verbosity_diagnostic ,
  verbosity_info
}
 Enumerator for the 'verbosity' parameter. More...
 

Functions/Subroutines

subroutine, public call_mumps (solver, job)
 Call MUMPS and look for error or warning (check INFOG(1)).
 
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.
 
subroutine, public distribute_solution (solution, isol_loc, sol_loc, row_offsets)
 Redistribute the solution across the processes.
 
subroutine compute_row_rank (row, row_offsets, row_rank)
 Computes the rank of the processor to which the row belongs.
 

Detailed Description

Type definition for MUMPS solver.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
private

Enumerator for the 'verbosity' parameter.

Enumerator
verbosity_none 

No message output.

verbosity_error 

Error messages only.

verbosity_warning 

Errors, warning, and main statistics printed.

verbosity_diagnostic 

Errors, warning, and terse diagnostics printed.

verbosity_info 

Errors, warning, information on input, and output parameters printed.

Function/Subroutine Documentation

◆ call_mumps()

subroutine, public type_solver_mumps::call_mumps ( class(t_mumps_solver), intent(inout) solver,
integer, intent(in) job )

Call MUMPS and look for error or warning (check INFOG(1)).

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 )
private

Computes the rank of the processor to which the row belongs.

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 )

Redistribute the solution across the processes.

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 )

Initialization of MUMPS (JOB = -1) and set-up the parameters for the analysis without filling the matrix.

Parameters
[in,out]solverMUMPS solver.
[in]n_nonzerosnumber of nonzero coefficients.
[in]rhs_sizesize of the global right-hand side.