dense_coefficients Subroutine

private pure subroutine dense_coefficients(me, b, form)

Returns the dense output coefficients for the method. This is the default for methods that do not have a dense output (b is not allocated).

A method with a dense output overrides this to return the matrix b (number_of_stages x degree), defining the interpolant over the step , with . The coefficients can be in either of the two forms commonly used in the literature (so they can be used as published), where are the function evaluations stored in me%funcs by the step function (and dense_extra_stages, if the method requires them):

  • dense_form_polynomial: , where . So, row i of b contains the coefficients of in .

  • dense_form_dopri (the form used in DOPRI5 and DOP853): , where and . So, column j of b contains the coefficients of .

Type Bound

rk_class

Arguments

Type IntentOptional Attributes Name
class(rk_class), intent(in) :: me
real(kind=wp), intent(out), dimension(:,:), allocatable :: b

dense output coefficients

integer, intent(out) :: form

the form of b (dense_form_polynomial or dense_form_dopri)


Called by

proc~~dense_coefficients~~CalledByGraph proc~dense_coefficients rk_class%dense_coefficients proc~initialize_rk_class rk_class%initialize_rk_class proc~initialize_rk_class->proc~dense_coefficients

Source Code

    pure subroutine dense_coefficients(me,b,form)
        class(rk_class),intent(in) :: me
        real(wp),dimension(:,:),allocatable,intent(out) :: b !! dense output coefficients
        integer,intent(out) :: form !! the form of `b` (`dense_form_polynomial` or `dense_form_dopri`)
        form = 0
    end subroutine dense_coefficients