FrontISTR  5.7.0
Large-scale structural analysis program with finit element method
hecmw_precond_DIAG.f90
Go to the documentation of this file.
1 !-------------------------------------------------------------------------------
2 ! Copyright (c) 2019 FrontISTR Commons
3 ! This software is released under the MIT License, see LICENSE.txt
4 !-------------------------------------------------------------------------------
5 
7  use hecmw_util
14  implicit none
15 
16  private
17  public :: hecmw_precond_diag_setup
18  public :: hecmw_precond_diag_clear
19  public :: hecmw_precond_diag_apply
20 
21 contains
22 
23  subroutine hecmw_precond_diag_setup(hecMAT)
24  implicit none
25  type (hecmwst_matrix), intent(inout) :: hecmat
26 
27  select case(hecmat%NDOF)
28  case(3)
29  call hecmw_precond_diag_33_setup(hecmat)
30  case(4)
31  call hecmw_precond_diag_44_setup(hecmat)
32  case(6)
33  call hecmw_precond_diag_66_setup(hecmat)
34  case(1)
35  call hecmw_precond_diag_11_setup(hecmat)
36  case(2)
37  call hecmw_precond_diag_22_setup(hecmat)
38  case default
39  call hecmw_precond_diag_nn_setup(hecmat)
40  end select
41  end subroutine hecmw_precond_diag_setup
42 
43  subroutine hecmw_precond_diag_clear(NDOF)
44  implicit none
45  integer(kind=kint), intent(in) :: ndof
46 
47  select case(ndof)
48  case(3)
50  case(4)
52  case(6)
54  case(1)
56  case(2)
58  case default
60  end select
61  end subroutine hecmw_precond_diag_clear
62 
63  subroutine hecmw_precond_diag_apply(ZP, NDOF)
64  implicit none
65  real(kind=kreal), intent(inout) :: zp(:)
66  integer(kind=kint), intent(in) :: ndof
67 
68  select case(ndof)
69  case(3)
71  case(4)
73  case(6)
75  case(1)
77  case(2)
79  case default
80  call hecmw_precond_diag_nn_apply(zp,ndof)
81  end select
82  end subroutine hecmw_precond_diag_apply
83 
84 end module hecmw_precond_diag
hecmw_precond_diag_22::hecmw_precond_diag_22_setup
subroutine, public hecmw_precond_diag_22_setup(hecMAT)
Definition: hecmw_precond_DIAG_22.f90:28
hecmw_precond_diag_11::hecmw_precond_diag_11_apply
subroutine, public hecmw_precond_diag_11_apply(WW)
Definition: hecmw_precond_DIAG_11.f90:72
hecmw_precond_diag
Definition: hecmw_precond_DIAG.f90:6
hecmw_precond_diag_22
Definition: hecmw_precond_DIAG_22.f90:11
hecmw_precond_diag_22::hecmw_precond_diag_22_clear
subroutine, public hecmw_precond_diag_22_clear()
Definition: hecmw_precond_DIAG_22.f90:118
hecmw_precond_diag_nn::hecmw_precond_diag_nn_clear
subroutine, public hecmw_precond_diag_nn_clear()
Definition: hecmw_precond_DIAG_nn.f90:131
hecmw_precond_diag_44::hecmw_precond_diag_44_clear
subroutine, public hecmw_precond_diag_44_clear()
Definition: hecmw_precond_DIAG_44.f90:164
hecmw_precond_diag_nn
Definition: hecmw_precond_DIAG_nn.f90:11
hecmw_precond_diag_66::hecmw_precond_diag_66_clear
subroutine, public hecmw_precond_diag_66_clear()
Definition: hecmw_precond_DIAG_66.f90:224
hecmw_precond_diag_nn::hecmw_precond_diag_nn_setup
subroutine, public hecmw_precond_diag_nn_setup(hecMAT)
Definition: hecmw_precond_DIAG_nn.f90:28
hecmw_precond_diag_33::hecmw_precond_diag_33_apply
subroutine, public hecmw_precond_diag_33_apply(WW)
Definition: hecmw_precond_DIAG_33.f90:107
hecmw_precond_diag::hecmw_precond_diag_setup
subroutine, public hecmw_precond_diag_setup(hecMAT)
Definition: hecmw_precond_DIAG.f90:24
hecmw_precond_diag_11::hecmw_precond_diag_11_clear
subroutine, public hecmw_precond_diag_11_clear()
Definition: hecmw_precond_DIAG_11.f90:90
hecmw_precond_diag_nn::hecmw_precond_diag_nn_apply
subroutine, public hecmw_precond_diag_nn_apply(WW, NDOF)
Definition: hecmw_precond_DIAG_nn.f90:96
hecmw_util
I/O and Utility.
Definition: hecmw_util_f.F90:7
hecmw_precond_diag_33::hecmw_precond_diag_33_clear
subroutine, public hecmw_precond_diag_33_clear()
Definition: hecmw_precond_DIAG_33.f90:136
hecmw_precond_diag_44::hecmw_precond_diag_44_setup
subroutine, public hecmw_precond_diag_44_setup(hecMAT)
Definition: hecmw_precond_DIAG_44.f90:28
hecmw_precond_diag_22::hecmw_precond_diag_22_apply
subroutine, public hecmw_precond_diag_22_apply(WW)
Definition: hecmw_precond_DIAG_22.f90:93
hecmw_precond_diag_33
Definition: hecmw_precond_DIAG_33.f90:11
hecmw_util::kreal
integer(kind=4), parameter kreal
Definition: hecmw_util_f.F90:16
hecmw_precond_diag_66
Definition: hecmw_precond_DIAG_66.f90:11
hecmw_precond_diag_66::hecmw_precond_diag_66_setup
subroutine, public hecmw_precond_diag_66_setup(hecMAT)
Definition: hecmw_precond_DIAG_66.f90:26
hecmw_precond_diag_11
Definition: hecmw_precond_DIAG_11.f90:11
hecmw_precond_diag::hecmw_precond_diag_clear
subroutine, public hecmw_precond_diag_clear(NDOF)
Definition: hecmw_precond_DIAG.f90:44
hecmw_precond_diag_44::hecmw_precond_diag_44_apply
subroutine, public hecmw_precond_diag_44_apply(WW)
Definition: hecmw_precond_DIAG_44.f90:132
hecmw_precond_diag_66::hecmw_precond_diag_66_apply
subroutine, public hecmw_precond_diag_66_apply(WW)
Definition: hecmw_precond_DIAG_66.f90:184
hecmw_precond_diag_44
Definition: hecmw_precond_DIAG_44.f90:11
hecmw_precond_diag_11::hecmw_precond_diag_11_setup
subroutine, public hecmw_precond_diag_11_setup(hecMAT)
Definition: hecmw_precond_DIAG_11.f90:28
hecmw_precond_diag_33::hecmw_precond_diag_33_setup
subroutine, public hecmw_precond_diag_33_setup(hecMAT)
Definition: hecmw_precond_DIAG_33.f90:28
hecmw_precond_diag::hecmw_precond_diag_apply
subroutine, public hecmw_precond_diag_apply(ZP, NDOF)
Definition: hecmw_precond_DIAG.f90:64
hecmw_util::hecmwst_matrix
Definition: hecmw_util_f.F90:444