IMEX or additive or semi-implicit Runge-Kutta stepper type
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer, | public | :: | npieces | ||||
integer, | public | :: | order | ||||
real(kind=pfdp), | public, | allocatable | :: | AmatI(:,:) | |||
real(kind=pfdp), | public, | allocatable | :: | AmatE(:,:) | |||
real(kind=pfdp), | public, | allocatable | :: | cvec(:) | |||
real(kind=pfdp), | public, | allocatable | :: | bvecI(:) | |||
real(kind=pfdp), | public, | allocatable | :: | bvecE(:) | |||
real(kind=pfdp), | public, | allocatable | :: | QtilI(:,:) | |||
logical, | public | :: | explicit | = | .true. | ||
logical, | public | :: | implicit | = | .true. | ||
integer, | public | :: | nstages |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(pf_ark_t), | intent(inout) | :: | this | |||
class(pf_encap_t), | intent(in) | :: | y | |||
real(kind=pfdp), | intent(in) | :: | t | |||
integer, | intent(in) | :: | level_index | |||
class(pf_encap_t), | intent(inout) | :: | f | |||
integer, | intent(in) | :: | piece |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(pf_ark_t), | intent(inout) | :: | this | |||
class(pf_encap_t), | intent(inout) | :: | y | |||
real(kind=pfdp), | intent(in) | :: | t | |||
real(kind=pfdp), | intent(in) | :: | dtq | |||
class(pf_encap_t), | intent(in) | :: | rhs | |||
integer, | intent(in) | :: | level_index | |||
class(pf_encap_t), | intent(inout) | :: | f | |||
integer, | intent(in) | :: | piece |
Perform N steps of ark on level level_index and set qend appropriately. Assign pointer to appropriate level
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(pf_ark_t), | intent(inout) | :: | this | |||
type(pf_pfasst_t), | intent(inout), | target | :: | pf | ||
integer, | intent(in) | :: | level_index | Level of the index to step on |
||
real(kind=pfdp), | intent(in) | :: | t0 | Time at start of time interval |
||
real(kind=pfdp), | intent(in) | :: | big_dt | Size of time interval to integrato on |
||
integer, | intent(in) | :: | nsteps_rk | Number of steps to use |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(pf_ark_t), | intent(inout) | :: | this | |||
class(pf_level_t), | intent(inout) | :: | lev |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(pf_ark_t), | intent(inout) | :: | this | |||
class(pf_level_t), | intent(inout) | :: | lev |
type, extends(pf_stepper_t), abstract :: pf_ark_t
real(pfdp), allocatable :: AmatI(:,:)
real(pfdp), allocatable :: AmatE(:,:)
real(pfdp), allocatable :: cvec(:)
real(pfdp), allocatable :: bvecI(:)
real(pfdp), allocatable :: bvecE(:)
real(pfdp), allocatable :: QtilI(:,:)
logical :: explicit = .true.
logical :: implicit = .true.
integer :: nstages
contains
procedure(pf_f_eval_p), deferred :: f_eval
procedure(pf_f_comp_p), deferred :: f_comp
procedure :: do_n_steps => ark_do_n_steps
procedure :: initialize => ark_initialize
procedure :: destroy => ark_destroy
end type pf_ark_t