18 logical,
save :: INITIALIZED = .false.
19 logical,
save :: NEED_ANALYSIS = .true.
20 type (sparse_matrix),
save :: spMAT
26 type (hecmwst_local_mesh),
intent(in) :: hecmesh
27 type (hecmwst_matrix ),
intent(inout) :: hecmat
29 logical,
intent(in) :: is_sym
30 integer(kind=kint) :: spmat_type
31 integer(kind=kint) :: spmat_symtype
32 integer(kind=kint) :: mumps_job
33 integer(kind=kint) :: istat
39 write(*,*)
'ERROR: MUMPS returned with error', istat
57 write(*,*)
'ERROR: MUMPS returned with error', istat
61 need_analysis = .true.
67 type (hecmwst_local_mesh),
intent(in) :: hecmesh
68 type (hecmwst_matrix ),
intent(inout) :: hecmat
70 integer(kind=kint),
intent(out) :: istat
71 type (hecmwst_matrix),
intent(in),
optional :: conmat
73 integer(kind=kint) :: mumps_job
75 call hecmw_mat_dump(hecmat, hecmesh)
78 if (need_analysis)
then
83 write(*,*)
'ERROR: MUMPS returned with error', istat
86 if (
myrank==0)
write(*,*)
' [MUMPS]: Analysis completed.'
87 need_analysis = .false.
103 write(*,*)
'ERROR: MUMPS returned with error', istat
107 if (
myrank==0)
write(*,*)
' [MUMPS]: Factorization and Solution completed.'
109 call hecmw_mat_dump_solution(hecmat)
This module defined coomon data and basic structures for analysis.
integer(kind=kint) myrank
PARALLEL EXECUTION.
logical paracontactflag
PARALLEL CONTACT FLAG.
This module provides wrapper for parallel sparse direct solver MUMPS.
subroutine, public hecmw_mumps_wrapper(spMAT, job, istat)
This module provides DOF based sparse matrix data structure (CSR and COO)
integer(kind=kint), parameter, public sparse_matrix_type_coo
integer(kind=kint), parameter, public sparse_matrix_symtype_sym
subroutine, public sparse_matrix_finalize(spMAT)
integer(kind=kint), parameter, public sparse_matrix_symtype_asym
subroutine, public sparse_matrix_set_type(spMAT, type, symtype)