FrontISTR  5.7.0
Large-scale structural analysis program with finit element method
hecmw_precond_SSOR.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_ssor_setup
18  public :: hecmw_precond_ssor_clear
19  public :: hecmw_precond_ssor_apply
20 
21 contains
22 
23  subroutine hecmw_precond_ssor_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_ssor_33_setup(hecmat)
30  case(4)
31  call hecmw_precond_ssor_44_setup(hecmat)
32  case(6)
33  call hecmw_precond_ssor_66_setup(hecmat)
34  case(1)
35  call hecmw_precond_ssor_11_setup(hecmat)
36  case(2)
37  call hecmw_precond_ssor_22_setup(hecmat)
38  case default
39  call hecmw_precond_ssor_nn_setup(hecmat)
40  end select
41  end subroutine hecmw_precond_ssor_setup
42 
43  subroutine hecmw_precond_ssor_clear(hecMAT)
44  implicit none
45  type (hecmwst_matrix), intent(inout) :: hecmat
46 
47  select case(hecmat%NDOF)
48  case(3)
49  call hecmw_precond_ssor_33_clear(hecmat)
50  case(4)
51  call hecmw_precond_ssor_44_clear(hecmat)
52  case(6)
53  call hecmw_precond_ssor_66_clear(hecmat)
54  case(1)
55  call hecmw_precond_ssor_11_clear(hecmat)
56  case(2)
57  call hecmw_precond_ssor_22_clear(hecmat)
58  case default
59  call hecmw_precond_ssor_nn_clear(hecmat)
60  end select
61  end subroutine hecmw_precond_ssor_clear
62 
63  subroutine hecmw_precond_ssor_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_ssor_nn_apply(zp,ndof)
81  end select
82  end subroutine hecmw_precond_ssor_apply
83 
84 end module hecmw_precond_ssor
hecmw_precond_ssor_nn::hecmw_precond_ssor_nn_setup
subroutine, public hecmw_precond_ssor_nn_setup(hecMAT)
Definition: hecmw_precond_SSOR_nn.f90:47
hecmw_precond_ssor::hecmw_precond_ssor_clear
subroutine, public hecmw_precond_ssor_clear(hecMAT)
Definition: hecmw_precond_SSOR.f90:44
hecmw_precond_ssor_11::hecmw_precond_ssor_11_setup
subroutine, public hecmw_precond_ssor_11_setup(hecMAT)
Definition: hecmw_precond_SSOR_11.f90:47
hecmw_precond_ssor::hecmw_precond_ssor_setup
subroutine, public hecmw_precond_ssor_setup(hecMAT)
Definition: hecmw_precond_SSOR.f90:24
hecmw_precond_ssor_44
Definition: hecmw_precond_SSOR_44.f90:11
hecmw_precond_ssor_66::hecmw_precond_ssor_66_clear
subroutine, public hecmw_precond_ssor_66_clear(hecMAT)
Definition: hecmw_precond_SSOR_66.f90:433
hecmw_precond_ssor_33::hecmw_precond_ssor_33_apply
subroutine, public hecmw_precond_ssor_33_apply(ZP)
Definition: hecmw_precond_SSOR_33.f90:245
hecmw_precond_ssor_22::hecmw_precond_ssor_22_clear
subroutine, public hecmw_precond_ssor_22_clear(hecMAT)
Definition: hecmw_precond_SSOR_22.f90:314
hecmw_precond_ssor_44::hecmw_precond_ssor_44_apply
subroutine, public hecmw_precond_ssor_44_apply(ZP)
Definition: hecmw_precond_SSOR_44.f90:189
hecmw_precond_ssor_33::hecmw_precond_ssor_33_setup
subroutine, public hecmw_precond_ssor_33_setup(hecMAT)
Definition: hecmw_precond_SSOR_33.f90:56
hecmw_precond_ssor_11::hecmw_precond_ssor_11_apply
subroutine, public hecmw_precond_ssor_11_apply(ZP)
Definition: hecmw_precond_SSOR_11.f90:150
hecmw_precond_ssor_33
Definition: hecmw_precond_SSOR_33.f90:11
hecmw_util
I/O and Utility.
Definition: hecmw_util_f.F90:7
hecmw_precond_ssor_66::hecmw_precond_ssor_66_apply
subroutine, public hecmw_precond_ssor_66_apply(ZP)
Definition: hecmw_precond_SSOR_66.f90:226
hecmw_precond_ssor_nn
Definition: hecmw_precond_SSOR_nn.f90:11
hecmw_precond_ssor
Definition: hecmw_precond_SSOR.f90:6
hecmw_precond_ssor_11::hecmw_precond_ssor_11_clear
subroutine, public hecmw_precond_ssor_11_clear(hecMAT)
Definition: hecmw_precond_SSOR_11.f90:284
hecmw_util::kreal
integer(kind=4), parameter kreal
Definition: hecmw_util_f.F90:16
hecmw_precond_ssor_22::hecmw_precond_ssor_22_apply
subroutine, public hecmw_precond_ssor_22_apply(ZP)
Definition: hecmw_precond_SSOR_22.f90:167
hecmw_precond_ssor_22
Definition: hecmw_precond_SSOR_22.f90:11
hecmw_precond_ssor_66::hecmw_precond_ssor_66_setup
subroutine, public hecmw_precond_ssor_66_setup(hecMAT)
Definition: hecmw_precond_SSOR_66.f90:45
hecmw_precond_ssor_22::hecmw_precond_ssor_22_setup
subroutine, public hecmw_precond_ssor_22_setup(hecMAT)
Definition: hecmw_precond_SSOR_22.f90:47
hecmw_precond_ssor_44::hecmw_precond_ssor_44_clear
subroutine, public hecmw_precond_ssor_44_clear(hecMAT)
Definition: hecmw_precond_SSOR_44.f90:370
hecmw_precond_ssor_44::hecmw_precond_ssor_44_setup
subroutine, public hecmw_precond_ssor_44_setup(hecMAT)
Definition: hecmw_precond_SSOR_44.f90:47
hecmw_precond_ssor_nn::hecmw_precond_ssor_nn_apply
subroutine, public hecmw_precond_ssor_nn_apply(ZP, NDOF)
Definition: hecmw_precond_SSOR_nn.f90:172
hecmw_precond_ssor_33::hecmw_precond_ssor_33_clear
subroutine, public hecmw_precond_ssor_33_clear(hecMAT)
Definition: hecmw_precond_SSOR_33.f90:361
hecmw_precond_ssor_nn::hecmw_precond_ssor_nn_clear
subroutine, public hecmw_precond_ssor_nn_clear(hecMAT)
Definition: hecmw_precond_SSOR_nn.f90:343
hecmw_precond_ssor_11
Definition: hecmw_precond_SSOR_11.f90:11
hecmw_precond_ssor::hecmw_precond_ssor_apply
subroutine, public hecmw_precond_ssor_apply(ZP, NDOF)
Definition: hecmw_precond_SSOR.f90:64
hecmw_precond_ssor_66
Definition: hecmw_precond_SSOR_66.f90:11
hecmw_util::hecmwst_matrix
Definition: hecmw_util_f.F90:444