| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| character(len=:), | private, | allocatable | :: | algorithm | |||
| type(type_iterator_config), | private | :: | config | ||||
| real(kind=real64), | private | :: | init_res_norm_inf | = | 0.0d0 | ||
| real(kind=real64), | private | :: | init_res_norm_l2 | = | 0.0d0 | ||
| real(kind=real64), | private | :: | init_upd_norm_inf | = | 0.0d0 | ||
| real(kind=real64), | private | :: | init_upd_norm_l2 | = | 0.0d0 | ||
| logical, | private | :: | is_converged | = | .false. | ||
| integer(kind=int32), | private | :: | iter | = | 0 | ||
| integer(kind=int32), | private | :: | step | = | 0 |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(type_iteration), | intent(inout) | :: | self | |||
| real(kind=real64), | intent(in) | :: | res_vec(:) | |||
| real(kind=real64), | intent(in) | :: | upd_vec(:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(type_iteration), | intent(in) | :: | self |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(type_iteration), | intent(in) | :: | self |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(type_iteration), | intent(in) | :: | self |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(type_iteration), | intent(in) | :: | self |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(type_iteration), | intent(inout) | :: | self |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(type_iteration), | intent(inout) | :: | self |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(type_iteration), | intent(out) | :: | self | |||
| type(type_input), | intent(in) | :: | input |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(type_iteration), | intent(inout) | :: | self |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(type_iteration), | intent(inout) | :: | self |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(type_iteration), | intent(inout) | :: | self | |||
| real(kind=real64), | intent(in), | optional | :: | res_vec(:) | ||
| real(kind=real64), | intent(in), | optional | :: | upd_vec(:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(type_iteration), | intent(in) | :: | self |
type :: type_iteration private integer(int32) :: iter = 0 ! 非線形反復回数 integer(int32) :: step = 0 ! ステップカウンタ logical :: is_converged = .false. real(real64) :: init_res_norm_l2 = 0.0d0 real(real64) :: init_res_norm_inf = 0.0d0 real(real64) :: init_upd_norm_l2 = 0.0d0 real(real64) :: init_upd_norm_inf = 0.0d0 character(:), allocatable :: algorithm type(type_iterator_config) :: config contains procedure, pass(self), public :: initialize => initialize_type_iteration procedure, pass(self), public :: reset_step procedure, pass(self), public :: set_initial_norms procedure, pass(self), public :: reset_timestep procedure, pass(self), public :: check_convergence procedure, pass(self), public :: increment_iter procedure, pass(self), public :: increment_step procedure, pass(self), public :: should_continue => continue_loop procedure, pass(self), public :: get_iter procedure, pass(self), public :: get_step procedure, pass(self), public :: get_algorithm_name procedure, pass(self), public :: has_converged => get_status end type type_iteration