19 type (hecmwST_matrix) :: hecMAT
20 type (hecmwST_matrix_lagrange) :: hecLagMAT
30 type (hecmwST_local_mesh) :: hecMESH
31 type (hecmwST_matrix) :: hecMAT
32 type (hecmwST_matrix_lagrange) :: hecLagMAT
33 type (hecmwST_ebc) :: hecEBC
34 integer (kind=4) :: ntdf, ilag_sta
35 integer (kind=4) :: numNon0
36 integer (kind=4) :: ierr, nprocs, myrank
38 real(kind=8), allocatable :: b(:)
39 integer(kind=kint) :: mpc_method
42 if (mpc_method /= 1 .and. mpc_method /= 3)
then
46 if (mpc_method /= 1)
then
47 write(*,*)
'ERROR: MPCMETHOD other than penalty is not available for DIRECT solver', &
48 ' in contact analysis without elimination'
59 ntdf = hecmat%NP*hecmat%NDOF + heclagmat%num_lagrange
60 ilag_sta = hecmat%NP*hecmat%NDOF + 1
61 numnon0 = hecmat%NPU*hecmat%NDOF**2+hecmat%NP*hecmat%NDOF*(ntdf+1)/2 &
62 + (heclagmat%numU_lagrange)*hecmat%NDOF+heclagmat%num_lagrange
64 allocate(b(
size(hecmat%B)))
Essential boundary conditions kept as per-DOF marks and values so that they can be imposed on the mat...
subroutine, public hecmw_ebc_apply(hecMESH, hecMAT, hecEBC, conMAT)
subroutine, public hecmw_mat_ass_equation_rhs(hecMESH, hecMAT)
subroutine, public hecmw_mat_ass_equation(hecMESH, hecMAT)
subroutine, public hecmw_mat_dump(hecMAT, hecMESH)
subroutine, public hecmw_mat_dump_solution(hecMAT)
integer(kind=kint) function, public hecmw_mat_get_mpc_method(hecMAT)
subroutine, public hecmw_mat_set_mpc_method(hecMAT, mpc_method)
subroutine, public hecmw_solve_direct_serial_lag(nrows, ilag_sta, nttbr, pointers, indices, values, b)
subroutine solve_lineq_serial_lag_hecmw_init(hecMAT, hecLagMAT, is_sym)
subroutine solve_lineq_serial_lag_hecmw(hecMESH, hecMAT, hecLagMAT, hecEBC)