71 CLASS(Timedisc_ssprk),
INTENT(INOUT) :: this
72 CLASS(Mesh_base),
INTENT(INOUT) :: Mesh
73 CLASS(Physics_base),
INTENT(IN) :: Physics
74 TYPE(Dict_TYP),
POINTER :: config,IO
77 CALL getattr(config,
"order", this%order, 5)
80 SELECT CASE(this%GetOrder())
86 CALL this%Error(
"timedisc_ssprk::InitTimedisc_ssprk",
"time order must be 3 or 5")
96 CLASS(timedisc_ssprk) :: this
98 SELECT CASE(this%GetOrder())
100 CALL this%Warning(
"timedisc_ssprk", &
101 "This 3rd order embedded SSP RK scheme has been constructed from a second " // &
102 "third order SSP RK scheme by hand! It seems to work, but I am not sure, that one " // &
103 "is allowed to do so. An optimal embedded third order SSP RK scheme is described " // &
104 "in chapter 6.3 of the main reference (see above), but still needs to be translated into " // &
105 "a butchers tableau. => Better use the 5th order scheme!")
106 this%b_high = (/ 1./6., 1./6., 2./3. /)
107 this%b_low = (/ 0.5, 0.5, 0. /)
108 this%c = (/ 0., 1., 0.5 /)
109 this%a = transpose(reshape((/ &
112 0.25, 0.25, 0.0 /),(/this%m,this%m/)))
114 this%b_high = (/ 0.17279, 0.094505, 0.12947, 0.29899, 0.30424 /)
115 this%b_low = (/ 0.12293, 0.31981, -0.15316, 0.31887, 0.39155 /)
116 this%c = (/ 0., 0.36717, 0.58522, 0.44156, 0.8464 /)
117 this%a = transpose(reshape((/ &
118 0., 0., 0., 0., 0., &
119 0.36717, 0., 0., 0., 0., &
120 0.26802, 0.3172, 0., 0., 0., &
121 0.11606, 0.13735, 0.18816, 0., 0., &
122 0.11212, 0.13269, 0.18178, 0.4198, 0. /),(/this%m,this%m/)))
124 CALL this%Error(
"timedisc_ssprk::SetButcherTableau",
"only order 3 or 5 supported")
131 CLASS(timedisc_ssprk) :: this
133 CALL this%timedisc_rkfehlberg%Finalize()
generic source terms module providing functionaly common to all source terms
character(len=32), parameter odesolver_name
integer, parameter, public ssprk
subroutine finalize(this)
subroutine setbutchertableau(this)
set coefficients for RK-Fehlberg schemes
Dictionary for generic data types.
subroutine inittimedisc_ssprk(this, Mesh, Physics, config, IO)
subroutines for Runge-Kutta Fehlberg method
subroutines for strong stability preserving (SSP) Runge Kutta methods
base module for numerical flux functions