Choral
Functions/Subroutines
ode_lin_1s_mod Module Reference

ONE-STEP SOLVERS FOR LINEAR ODEs More...

Functions/Subroutines

logical function, public check_ode_method_lin_1s (method)
 is 'method' a one-step linear ODE solver ? More...
 
subroutine, public memsize_ode_lin_1s (n_V, method)
 required sizes to allocate memory More...
 
subroutine, public set_solver_ode_lin_1s (slv, method)
 Setting the solver for diffusion. More...
 
subroutine, public create_ode_lin_1s_sol (sol, pb, method)
 allocate memory for the ode_solution structure 'sol' More...
 
subroutine, public solve_ode_lin_1s (sol, pb, t0, T, dt, method, out, Kinv, kry)
 solve with constant time-step More...
 
subroutine lin_1s_be (sol, ierr, dt, pb, KInv)
 BacWard Euler. More...
 
subroutine lin_1s_cn (sol, ierr, dt, pb, KInv)
 Crank - Nicolson. More...
 
subroutine lin_1s_sdirk4 (sol, ierr, dt, pb, KInv)
 SDIRK4 HAIRER II p. 100. More...
 

Detailed Description

ONE-STEP SOLVERS FOR LINEAR ODEs

One step solvers for ODE_PB_LIN, see ode_problem_mod detailed description.

Author
Charles Pierre

Function/Subroutine Documentation

◆ check_ode_method_lin_1s()

logical function, public ode_lin_1s_mod::check_ode_method_lin_1s ( integer, intent(in)  method)

is 'method' a one-step linear ODE solver ?

Definition at line 37 of file ode_Lin_1s_mod.f90.

◆ create_ode_lin_1s_sol()

subroutine, public ode_lin_1s_mod::create_ode_lin_1s_sol ( type(ode_solution), intent(inout)  sol,
type(ode_problem), intent(in)  pb,
integer, intent(in)  method 
)

allocate memory for the ode_solution structure 'sol'

Definition at line 102 of file ode_Lin_1s_mod.f90.

Here is the call graph for this function:

◆ lin_1s_be()

subroutine ode_lin_1s_mod::lin_1s_be ( type(ode_solution), intent(inout)  sol,
logical, intent(out)  ierr,
real(rp), intent(in)  dt,
type(ode_problem), intent(in)  pb,
procedure(linsystem_solver)  KInv 
)
private

BacWard Euler.

Definition at line 227 of file ode_Lin_1s_mod.f90.

◆ lin_1s_cn()

subroutine ode_lin_1s_mod::lin_1s_cn ( type(ode_solution), intent(inout)  sol,
logical, intent(out)  ierr,
real(rp), intent(in)  dt,
type(ode_problem), intent(in)  pb,
procedure(linsystem_solver)  KInv 
)
private

Crank - Nicolson.

Definition at line 242 of file ode_Lin_1s_mod.f90.

◆ lin_1s_sdirk4()

subroutine ode_lin_1s_mod::lin_1s_sdirk4 ( type(ode_solution), intent(inout)  sol,
logical, intent(out)  ierr,
real(rp), intent(in)  dt,
type(ode_problem), intent(in)  pb,
procedure(linsystem_solver)  KInv 
)
private

SDIRK4 HAIRER II p. 100.

Definition at line 260 of file ode_Lin_1s_mod.f90.

◆ memsize_ode_lin_1s()

subroutine, public ode_lin_1s_mod::memsize_ode_lin_1s ( integer, intent(out)  n_V,
integer, intent(in)  method 
)

required sizes to allocate memory

returns nV depending on the method

  • n_V = required size for V

Definition at line 58 of file ode_Lin_1s_mod.f90.

Here is the call graph for this function:

◆ set_solver_ode_lin_1s()

subroutine, public ode_lin_1s_mod::set_solver_ode_lin_1s ( procedure(ode_lin_solver), pointer  slv,
integer, intent(in)  method 
)

Setting the solver for diffusion.

Definition at line 80 of file ode_Lin_1s_mod.f90.

Here is the call graph for this function:

◆ solve_ode_lin_1s()

subroutine, public ode_lin_1s_mod::solve_ode_lin_1s ( type(ode_solution), intent(inout)  sol,
type(ode_problem), intent(in)  pb,
real(rp), intent(in)  t0,
real(rp), intent(in)  T,
real(rp), intent(in)  dt,
integer, intent(in)  method,
procedure(ode_output_proc out,
procedure(linsystem_solver), optional  Kinv,
type(krylov), optional  kry 
)

solve with constant time-step

Definition at line 123 of file ode_Lin_1s_mod.f90.

Here is the call graph for this function: