TVD RK integrator.
The integrator must be created or initialized (initialize the RK coeficients) before used.
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
real(kind=R_P), | public, | allocatable | :: | alph(:,:) | \(\alpha\) Butcher's coefficients. |
||
real(kind=R_P), | public, | allocatable | :: | beta(:) | \(\beta\) Butcher's coefficients. |
||
real(kind=R_P), | public, | allocatable | :: | gamm(:) | \(\gamma\) Butcher's coefficients. |
||
integer(kind=I_P), | public | :: | stages | = | 0 | Number of stages. |
Destroy the integrator.
Destoy the integrator.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(tvd_runge_kutta_integrator), | intent(inout) | :: | self | Integrator. |
Initialize (create) the integrator.
Create the actual RK integrator: initialize the Butcher' table coefficients.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(tvd_runge_kutta_integrator), | intent(inout) | :: | self | RK integrator. |
||
integer(kind=I_P), | intent(in) | :: | stages | Number of stages used. |
Integrate integrand field.
Integrate field with explicit TVD (or SSP) Runge-Kutta scheme.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(tvd_runge_kutta_integrator), | intent(in) | :: | self | Actual RK integrator. |
||
class(euler_1D_caf_nf), | intent(inout) | :: | U | Field to be integrated. |
||
class(euler_1D_caf_nf), | intent(inout) | :: | stage(1:) | Runge-Kutta stages [1:stages]. |
||
real(kind=R_P), | intent(in) | :: | Dt | Time step. |
||
real(kind=R_P), | intent(in) | :: | t | Time. |
type :: tvd_runge_kutta_integrator
!< TVD RK integrator.
!<
!< @note The integrator must be created or initialized (initialize the RK coeficients) before used.
integer(I_P) :: stages=0 !< Number of stages.
real(R_P), allocatable :: alph(:,:) !< \(\alpha\) Butcher's coefficients.
real(R_P), allocatable :: beta(:) !< \(\beta\) Butcher's coefficients.
real(R_P), allocatable :: gamm(:) !< \(\gamma\) Butcher's coefficients.
contains
procedure, pass(self), public :: destroy => destroy_rk !< Destroy the integrator.
procedure, pass(self), public :: init => init_rk !< Initialize (create) the integrator.
procedure, pass(self), public :: integrate => integrate_rk !< Integrate integrand field.
endtype tvd_runge_kutta_integrator