23 type (hecmwST_matrix),
target :: hecMAT
24 type (hecmwST_local_mesh) :: hecMESH
26 real(kind=
kreal) :: resid
27 integer(kind=kint) :: i, myrank, NDOF
28 integer(kind=kint) :: imsg = 51
37 select case(hecmat%Iarray(99))
48 if (hecmat%Iarray(97) .gt. 1) hecmat%Iarray(97)=1
53 if (hecmat%Iarray(2) .eq. 102)
then
54 if(hecmesh%PETOT.GT.1)
then
59 elseif (hecmat%Iarray(2) .eq. 104)
then
62 if(hecmesh%PETOT.GT.1)
then
72 if (hecmat%Iarray(21) > 0 .or. hecmat%Iarray(22) > 0)
then
73 write(*,
"(a,1pe12.5)")
'### Relative residual =', resid
75 if( resid >= 1.0d-8)
then
76 write(*,
"(a)")
'### Relative residual exceeded 1.0d-8---Direct Solver### '
97 type (hecmwST_local_mesh) :: hecMESH
98 type (hecmwST_matrix) :: hecMATorig
99 type (hecmwST_matrix),
pointer :: hecMAT => null()
100 integer(kind=kint) NDOF
101 if (ndof == hecmatorig%NDOF)
then
103 else if (ndof < hecmatorig%NDOF)
then
127 if (ndof /= hecmatorig%NDOF)
then
real(kind=kreal) function, public hecmw_mat_get_resid(hecmat)
subroutine, public hecmw_mat_set_flag_converged(hecmat, flag_converged)
subroutine, public hecmw_mat_set_flag_diverged(hecmat, flag_diverged)
This module provides linear equation solver interface for Cluster Pardiso.
subroutine, public hecmw_solve_direct_clustermkl(hecmesh, hecmat)
This module provides linear equation solver interface for Pardiso.
subroutine, public hecmw_solve_direct_mkl(hecmesh, hecmat)
This module provides linear equation solver interface for MUMPS.
subroutine, public hecmw_solve_direct_mumps(hecmesh, hecmat)
subroutine, public hecmw_solve_direct_parallel(hecmesh, hecmat, ii)
HECMW_SOLVE_DIRECT is a program for the matrix direct solver.
subroutine, public hecmw_solve_direct(hecmesh, hecmat, ifmsg)
HECMW_SOLVE_DIRECT is a program for the matrix solver.
logical function hecmw_solve_check_zerorhs(hecmesh, hecmat)
subroutine hecmw_solve_iterative(hecmesh, hecmat)
real(kind=kreal) function, public hecmw_rel_resid_l2_nn(hecmesh, hecmat, commtime)
subroutine hecmw_solve(hecmesh, hecmat)
subroutine hecmw_substitute_solver(hecmesh, hecmatorig, ndof)
subroutine hecmw_vector_contract(hecmatorig, hecmat, ndof)
subroutine hecmw_blockmatrix_expand(hecmatorig, hecmat, ndof)
integer(kind=kint) function hecmw_comm_get_comm()
integer(kind=4), parameter kreal
integer(kind=kint) function hecmw_comm_get_rank()
subroutine hecmw_abort(comm)
subroutine hecmw_clone_matrix(hecmatorig, hecmat)