rklib_fixed_properties.f90 Source File


This file depends on

sourcefile~~rklib_fixed_properties.f90~~EfferentGraph sourcefile~rklib_fixed_properties.f90 rklib_fixed_properties.f90 sourcefile~rklib_module.f90 rklib_module.F90 sourcefile~rklib_fixed_properties.f90->sourcefile~rklib_module.f90

Source Code

!*****************************************************************************************
!>
!  Procedures specifying the properties of the various fixed-step RK methods.

    submodule(rklib_module) rklib_fixed_properties

    implicit none

    contains
!*****************************************************************************************

    module procedure euler_properties
        !! Returns the properties of the [[euler]] method
        p%short_name = 'euler'
        p%long_name = 'Euler'
        p%order = 1
        p%number_of_stages = 1
        p%number_of_registers = 1
        p%cfl = 1.0_wp
    end procedure euler_properties

    module procedure midpoint_properties
        !! Returns the properties of the [[midpoint]] method
        p%short_name = 'midpoint'
        p%long_name = 'Midpoint'
        p%order = 2
        p%number_of_stages = 2
        p%number_of_registers = 2
    end procedure midpoint_properties

    module procedure heun_properties
        !! Returns the properties of the [[heun]] method
        p%short_name = 'heun'
        p%long_name = 'Heun'
        p%order = 2
        p%number_of_stages = 2
        p%number_of_registers = 2
    end procedure heun_properties

    module procedure rkssp22_properties
        !! Returns the properties of the [[rkssp22]] method
        p%short_name = 'rkssp22'
        p%long_name = '2-stage, 2nd order TVD Runge-Kutta Shu-Osher'
        p%order = 2
        p%number_of_stages = 2
        p%number_of_registers = 1
        p%strong_stability_preserving = .true.
        p%cfl = 1.0_wp
    end procedure rkssp22_properties

    module procedure rk3_properties
        !! Returns the properties of the [[rk3]] method
        p%short_name = 'rk3'
        p%long_name = '3th order Runge-Kutta'
        p%order = 3
        p%number_of_stages = 3
        p%number_of_registers = 3
    end procedure rk3_properties

    module procedure rkssp33_properties
        !! Returns the properties of the [[rkssp33]] method
        p%short_name = 'rkssp33'
        p%long_name = '3-stage, 3rd order TVD Runge-Kutta Shu-Osher'
        p%order = 3
        p%number_of_stages = 3
        p%number_of_registers = 1
        p%strong_stability_preserving = .true.
        p%cfl = 1.0_wp
    end procedure rkssp33_properties

    module procedure rkssp53_properties
        !! Returns the properties of the [[rkssp53]] method
        p%short_name = 'rkssp53'
        p%long_name = '5-stage, 3rd order SSP Runge-Kutta Spiteri-Ruuth'
        p%order = 3
        p%number_of_stages = 5
        p%number_of_registers = 2
        p%strong_stability_preserving = .true.
        p%cfl = 2.65_wp
    end procedure rkssp53_properties

    module procedure rk4_properties
        !! Returns the properties of the [[rk4]] method
        p%short_name = 'rk4'
        p%long_name = 'Classic 4th order Runge-Kutta'
        p%order = 4
        p%number_of_stages = 4
        p%number_of_registers = 4
    end procedure rk4_properties

    module procedure rks4_properties
        !! Returns the properties of the [[rks4]] method
        p%short_name = 'rks4'
        p%long_name = '4th order Runge-Kutta Shanks'
        p%order = 4
        p%number_of_stages = 4
        p%number_of_registers = 4
    end procedure rks4_properties

    module procedure rkr4_properties
        !! Returns the properties of the [[rkr4]] method
        p%short_name = 'rkr4'
        p%long_name = '4th order Runge-Kutta Ralston'
        p%order = 4
        p%number_of_stages = 4
        p%number_of_registers = 4
    end procedure rkr4_properties

    module procedure rkls44_properties
        !! Returns the properties of the [[rkls44]] method
        p%short_name = 'rkls44'
        p%long_name = '4-stage, 4th order low storage non-TVD Runge-Kutta Jiang-Shu'
        p%order = 4
        p%number_of_stages = 4
        p%number_of_registers = 2
        p%low_storage = .true.
    end procedure rkls44_properties

    module procedure rkls54_properties
        !! Returns the properties of the [[rkls54]] method
        p%short_name = 'rkls54'
        p%long_name = '5-stage, 4th order low storage Runge-Kutta Carpenter-Kennedy'
        p%order = 4
        p%number_of_stages = 5
        p%number_of_registers = 2
        p%low_storage = .true.
        p%cfl = 0.32_wp
    end procedure rkls54_properties

    module procedure rkssp54_properties
        !! Returns the properties of the [[rkssp54]] method
        p%short_name = 'rkssp54'
        p%long_name = '5-stage, 4th order SSP Runge-Kutta Spiteri-Ruuth'
        p%order = 4
        p%number_of_stages = 5
        p%number_of_registers = 4
        p%strong_stability_preserving = .true.
        p%cfl = 1.51_wp
    end procedure rkssp54_properties

    module procedure rks5_properties
        !! Returns the properties of the [[rks5]] method
        p%short_name = 'rks5'
        p%long_name = '5th order Runge-Kutta Shanks'
        p%order = 5
        p%number_of_stages = 5
        p%number_of_registers = 5
    end procedure rks5_properties

    module procedure rk5_properties
        !! Returns the properties of the [[rk5]] method
        p%short_name = 'rk5'
        p%long_name = '5th order Runge-Kutta'
        p%order = 5
        p%number_of_stages = 6
        p%number_of_registers = 6
    end procedure rk5_properties

    module procedure rkc5_properties
        !! Returns the properties of the [[rkc5]] method
        p%short_name = 'rkc5'
        p%long_name = '5th order Runge-Kutta Cassity'
        p%order = 5
        p%number_of_stages = 6
        p%number_of_registers = 6
    end procedure rkc5_properties

    module procedure rkl5_properties
        !! Returns the properties of the [[rkl5]] method
        p%short_name = 'rkl5'
        p%long_name = '5th order Runge-Kutta Lawson'
        p%order = 5
        p%number_of_stages = 6
        p%number_of_registers = 6
    end procedure rkl5_properties

    module procedure rklk5a_properties
        !! Returns the properties of the [[rklk5a]] method
        p%short_name = 'rklk5a'
        p%long_name = '5th order Runge-Kutta Luther-Konen 1'
        p%order = 5
        p%number_of_stages = 6
        p%number_of_registers = 6
    end procedure rklk5a_properties

    module procedure rklk5b_properties
        !! Returns the properties of the [[rklk5b]] method
        p%short_name = 'rklk5b'
        p%long_name = '5th order Runge-Kutta Luther-Konen 2'
        p%order = 5
        p%number_of_stages = 6
        p%number_of_registers = 6
    end procedure rklk5b_properties

    module procedure rkb6_properties
        !! Returns the properties of the [[rkb6]] method
        p%short_name = 'rkb6'
        p%long_name = '6th order Runge-Kutta Butcher'
        p%order = 6
        p%number_of_stages = 7
        p%number_of_registers = 7
    end procedure rkb6_properties

    module procedure rk7_properties
        !! Returns the properties of the [[rk7]] method
        p%short_name = 'rk7'
        p%long_name = '7th order Runge-Kutta Shanks'
        p%order = 7
        p%number_of_stages = 9
        p%number_of_registers = 9
    end procedure rk7_properties

    module procedure rk8_10_properties
        !! Returns the properties of the [[rk8_10]] method
        p%short_name = 'rk8_10'
        p%long_name = '10-stage, 8th order Runge-Kutta Shanks'
        p%order = 8
        p%number_of_stages = 10
        p%number_of_registers = 10
    end procedure rk8_10_properties

    module procedure rkcv8_properties
        !! Returns the properties of the [[rkcv8]] method
        p%short_name = 'rkcv8'
        p%long_name = '11-stage, 8th order Runge-Kutta Cooper-Verner'
        p%order = 8
        p%number_of_stages = 11
        p%number_of_registers = 11
    end procedure rkcv8_properties

    module procedure rk8_12_properties
        !! Returns the properties of the [[rk8_12]] method
        p%short_name = 'rk8_12'
        p%long_name = '12-stage, 8th order Runge-Kutta Shanks'
        p%order = 8
        p%number_of_stages = 12
        p%number_of_registers = 12
    end procedure rk8_12_properties

    module procedure rkz10_properties
        !! Returns the properties of the [[rkz10]] method
        p%short_name = 'rkz10'
        p%long_name = '10th order Runge-Kutta Zhang'
        p%order = 10
        p%number_of_stages = 16
        p%number_of_registers = 16
    end procedure rkz10_properties

    module procedure rko10_properties
        !! Returns the properties of the [[rko10]] method
        p%short_name = 'rko10'
        p%long_name = '10th order Runge-Kutta Ono'
        p%order = 10
        p%number_of_stages = 17
        p%number_of_registers = 17
    end procedure rko10_properties

    module procedure rkh10_properties
        !! Returns the properties of the [[rkh10]] method
        p%short_name = 'rkh10'
        p%long_name = '10th order Runge-Kutta Hairer'
        p%order = 10
        p%number_of_stages = 17
        p%number_of_registers = 17
    end procedure rkh10_properties

!*****************************************************************************************
    end submodule rklib_fixed_properties
!*****************************************************************************************