hrweno_tvdode Module

This module contains two total variation diminishing (TVD) high-order schemes for solving initial value problems. It is very important to use TVD schemes for time integration. Even with a TVD spacial discretization, if the time discretization is done by a non-TVD method, the result may be oscillatory. Source: ICASE 97-65 by Shu, 1997.


Uses

  • module~~hrweno_tvdode~~UsesGraph module~hrweno_tvdode hrweno_tvdode module~hrweno_kinds hrweno_kinds module~hrweno_tvdode->module~hrweno_kinds stdlib_optval stdlib_optval module~hrweno_tvdode->stdlib_optval iso_fortran_env iso_fortran_env module~hrweno_kinds->iso_fortran_env

Used by

  • module~~hrweno_tvdode~~UsedByGraph module~hrweno_tvdode hrweno_tvdode program~example1_burgers_1d_fv example1_burgers_1d_fv program~example1_burgers_1d_fv->module~hrweno_tvdode program~example_pbe_2d_fv example_pbe_2d_fv program~example_pbe_2d_fv->module~hrweno_tvdode

Interfaces

public interface rktvd

  • private function rktvd_init(fu, neq, order) result(self)

    Initialize rktvd object.

    Arguments

    Type IntentOptional Attributes Name
    procedure(integrand) :: fu

    subroutine with the derivative

    integer, intent(in) :: neq

    number of equations

    integer, intent(in) :: order

    order of the method (1, 2 or 3)

    Return Value type(rktvd)

public interface mstvd

  • private function mstvd_init(fu, neq) result(self)

    Initialize mstvd object.

    Arguments

    Type IntentOptional Attributes Name
    procedure(integrand) :: fu

    subroutine with the derivative

    integer, intent(in) :: neq

    number of equations

    Return Value type(mstvd)


Derived Types

type, public, extends(../../tvdode) ::  rktvd

Runge-Kutta TVD ODE solver class.

Components

Type Visibility Attributes Name Initial
integer, public :: neq

number of equations

integer, public :: order

order of the method

integer, public :: fevals = 0

number of function evaluations

integer, public :: istate = 0

flag indicating the state of the integration: 1 first call for a problem, 2 subsequent call for a problem.

character(len=:), public, allocatable :: msg

error message

Constructor

private function rktvd_init (fu, neq, order)

Initialize rktvd object.

Type-Bound Procedures

procedure, public, pass(self) :: error_msg
procedure, public, pass(self) :: integrate => rktvd_integrate

type, public, extends(../../tvdode) ::  mstvd

Multi-step TVD ODE solver class.

Components

Type Visibility Attributes Name Initial
integer, public :: neq

number of equations

integer, public :: order

order of the method

integer, public :: fevals = 0

number of function evaluations

integer, public :: istate = 0

flag indicating the state of the integration: 1 first call for a problem, 2 subsequent call for a problem.

character(len=:), public, allocatable :: msg

error message

Constructor

private function mstvd_init (fu, neq)

Initialize mstvd object.

Type-Bound Procedures

procedure, public, pass(self) :: error_msg
procedure, public, pass(self) :: integrate => mstvd_integrate