solver Module

Api for different sparse matrix solvers


Uses

  • module~~solver~~UsesGraph module~solver solver iso_c_binding iso_c_binding module~solver->iso_c_binding module~sulu_wrapper sulu_wrapper module~solver->module~sulu_wrapper hsl_ma48_double hsl_ma48_double module~solver->hsl_ma48_double module~mumfpack mumfpack module~solver->module~mumfpack module~sort_arrays sort_arrays module~solver->module~sort_arrays module~num_param num_param module~solver->module~num_param module~data_arch data_arch module~solver->module~data_arch module~mumps_wrapper mumps_wrapper module~solver->module~mumps_wrapper module~sulu_wrapper->iso_c_binding module~mumfpack->iso_c_binding module~sort_arrays->module~data_arch module~num_param->module~data_arch iso_fortran_env iso_fortran_env module~num_param->iso_fortran_env module~data_arch->iso_fortran_env

Used by

  • module~~solver~~UsedByGraph module~solver solver program~test_solvers test_solvers program~test_solvers->module~solver

Contents


Variables

TypeVisibility AttributesNameInitial
integer(kind=I4), public, parameter:: MA48 =0

code for Ma48 solver type

integer(kind=I4), public, parameter:: SULU =1

code for SUPER LU solver type

integer(kind=I4), public, parameter:: MUMP =2

code for MUMPS solver type

integer(kind=I4), public, parameter:: UMFP =3

code for UMFPACK solver type

integer(kind=I4), public :: SOLVER_BS =-1

solver used for bottom scale grids [not used by the present module]

integer(kind=I4), public :: SOLVER_TS =-1

solver used for top scale grids [not used by the present module]


Derived Types

type, public :: MAT_MA48

All the stuff needed by HSL_MA48

Components

TypeVisibility AttributesNameInitial
type(ZD11_TYPE), public :: zmat
type(MA48_CONTROL), public :: ctrl
type(MA48_AINFO), public :: ainf
type(MA48_FINFO), public :: finf
type(MA48_SINFO), public :: sinf
type(MA48_FACTORS), public :: fact
integer(kind=I4), public :: fast
real(kind=R8), public, dimension(2):: resid

type, public :: MAT_UMFP

All the stuff needed by UMFPACK

Components

TypeVisibility AttributesNameInitial
type(c_ptr), public :: c_symbolic
type(c_ptr), public :: c_numeric
real(kind=R8), public, dimension(0:UMFPACK_CONTROL-1):: c_control
real(kind=R8), public, dimension(0:UMFPACK_INFO -1):: c_info

type, public :: MAT_SOLV

MUSST high level system type

Components

TypeVisibility AttributesNameInitial
integer(kind=I4), public :: slv_t

solver type

logical(kind=I4), public :: first =.true.

analysis of the system to be done?

integer(kind=I4), public :: nn

number of nodes

integer(kind=I4), public :: ne

number of elements

integer(kind=I4), public :: nt

number of a priori non-zero terms in the matrix

integer(kind=I4), public :: nz

number of non-zero terms in the matrix

integer(kind=I4), public :: nvar

eltvar length ( if 4-nodes elt -> 2 lines X number of elemental matrices)

integer(kind=I4), public :: code

error code [not used yet]

real(kind=R8), public :: error

error value [not used yet]

character(len=1024), public :: mess

message [not used yet]

type(MAT_MUMP), public :: matmump

matrices for mumps solver

type(MAT_MA48), public :: matma48

matrices for ma48 solver

type(MAT_SULU), public :: matsulu

matrices for SuperLu solver

type(MAT_UMFP), public :: matumfp

matrices for Umfpack solver

integer(kind=I4), public, dimension(:), allocatable:: eltvar

rows in assembled matrix

integer(kind=I4), public, dimension(:), allocatable:: eltptr

element rows pointer

real(kind=R8), public, dimension(:), allocatable:: a_elt

unassembled rigidity matrix

integer(kind=I4), public, dimension(:), allocatable:: irow

line number

integer(kind=I4), public, dimension(:), allocatable:: jcol

column number

integer(kind=I4), public, dimension(:), allocatable:: jptr

line pointer

real(kind=R8), public, dimension(:), allocatable:: b

right hand side vector

real(kind=R8), public, dimension(:), allocatable:: x

unknwon vector

type, public :: MS_MAT_SOLV

MUSST multiscale high level solver type

Read more…

Components

TypeVisibility AttributesNameInitial
type(MAT_SOLV), public :: ts_mat

top-scale solver type matrices

type(MAT_SOLV), public, dimension(:), allocatable:: bs_mat

bottom-scale solver type matrices (table)

integer(kind=I4), public, dimension(:), allocatable:: ass_loc_in_mat

table for assembly location (for parallel computation)


Subroutines

public subroutine solve_syst(mat, step)

Read more…

Arguments

Type IntentOptional AttributesName
type(MAT_SOLV), intent(inout) :: mat

high level system type

character(len=*), intent(in) :: step

'ini'=initialize, 'ana'=analyze, 'fac'=factorize, 'sol'=solve, 'fre'=free memory, 'end'=close solver

public subroutine init_solver(mat)

Read more…

Arguments

Type IntentOptional AttributesName
type(MAT_SOLV), intent(inout) :: mat

high level system type

public subroutine analyse_solver(mat)

Read more…

Arguments

Type IntentOptional AttributesName
type(MAT_SOLV), intent(inout), target:: mat

high level system type

public subroutine factorize_solver(mat)

Read more…

Arguments

Type IntentOptional AttributesName
type(MAT_SOLV), intent(inout) :: mat

high level system type

public subroutine solution_solver(mat)

Read more…

Arguments

Type IntentOptional AttributesName
type(MAT_SOLV), intent(inout), target:: mat

high level system type

public subroutine freefact_solver(mat)

Read more…

Arguments

Type IntentOptional AttributesName
type(MAT_SOLV), intent(inout) :: mat

high level system type

public subroutine close_solver(mat)

Read more…

Arguments

Type IntentOptional AttributesName
type(MAT_SOLV), intent(inout) :: mat

high level system type

public subroutine convert_matrice_format(mat)

Read more…

Arguments

Type IntentOptional AttributesName
type(MAT_SOLV), intent(inout), target:: mat

high level system type

public subroutine from_elemental_to_assembled(mat)

Read more…

Arguments

Type IntentOptional AttributesName
type(MAT_SOLV), intent(inout), target:: mat

high level system type