Choral
Functions/Subroutines | Variables
ode_sl_ms_mod Module Reference

MULTISTEP SOLVERS FOR SEMILINEAR ODEs More...

Functions/Subroutines

logical function, public check_ode_method_sl_ms (method)
 is 'method' a multi-step semilinear ODE solver ? More...
 
subroutine, public memsize_ode_sl_ms (n_V, n_FY, method)
 required sizes to allocate memory More...
 
subroutine, public set_solver_ode_sl_ms (slv, method)
 set the resolution solver More...
 
subroutine, public create_ode_sl_ms_sol (sol, pb, method)
 create memory for the ode_solution structure 'sol' More...
 
subroutine, public solve_ode_sl_ms (sol, pb, t0, T, dt, method, out, check_overflow, Kinv, kry)
 solve with constant time-step Case where pbN = 1 More...
 
subroutine sl_ms_fbe (sol, ierr, dt, pb, KInv)
 FORWARD/BacWard Euler. More...
 
subroutine sl_ms_fe (sol, ierr, dt, pb, KInv)
 FORWARD Euler. More...
 
subroutine sl_ms_cnab2 (sol, ierr, dt, pb, KInv)
 CN/AB2. More...
 
subroutine sl_ms_mcnab2 (sol, ierr, dt, pb, KInv)
 Modified-CN/AB2. More...
 
subroutine sl_ms_bdfsbdf2 (sol, ierr, dt, pb, KInv)
 BDF2/SBDF2. More...
 
subroutine sl_ms_bdfsbdf3 (sol, ierr, dt, pb, KInv)
 BDF3/SBDF3. More...
 
subroutine sl_ms_bdfsbdf4 (sol, ierr, dt, pb, KInv)
 BDF4/SBDF4. More...
 
subroutine sl_ms_bdfsbdf5 (sol, ierr, dt, pb, KInv)
 BDF5/SBDF5. More...
 

Variables

real(rp), parameter c4_3 = 4._RP / 3._RP
 
real(rp), parameter c2_3 = 2._RP / 3._RP
 
real(rp), parameter c_3 = 1._RP / 3._RP
 
real(rp), parameter c2_11 = 2._RP / 11._RP
 
real(rp), parameter c6_11 = 6._RP / 11._RP
 
real(rp), parameter c9_11 = 9._RP / 11._RP
 
real(rp), parameter c18_11 = 18._RP / 11._RP
 
real(rp), parameter c3_25 = 3._RP / 25._RP
 
real(rp), parameter c12_25 = 12._RP / 25._RP
 
real(rp), parameter c16_25 = 16._RP / 25._RP
 
real(rp), parameter c36_25 = 36._RP / 25._RP
 
real(rp), parameter c48_25 = 48._RP / 25._RP
 
real(rp), parameter c72_25 = 72._RP / 25._RP
 
real(rp), parameter c12_137 = 12._RP /137._RP
 
real(rp), parameter c60_137 = 60._RP /137._RP
 
real(rp), parameter c75_137 = 75._RP /137._RP
 
real(rp), parameter c200_137 = 200._RP /137._RP
 
real(rp), parameter c300_137 = 300._RP /137._RP
 
real(rp), parameter c600_137 = 600._RP /137._RP
 

Detailed Description

MULTISTEP SOLVERS FOR SEMILINEAR ODEs

Multistep solvers for ODE_PB_SL, see ode_problem_mod detailed description.

Author
Charles Pierre

Function/Subroutine Documentation

◆ check_ode_method_sl_ms()

logical function, public ode_sl_ms_mod::check_ode_method_sl_ms ( integer, intent(in)  method)

is 'method' a multi-step semilinear ODE solver ?

Definition at line 59 of file ode_SL_ms_mod.f90.

◆ create_ode_sl_ms_sol()

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

create memory for the ode_solution structure 'sol'

Definition at line 148 of file ode_SL_ms_mod.f90.

Here is the call graph for this function:

◆ memsize_ode_sl_ms()

subroutine, public ode_sl_ms_mod::memsize_ode_sl_ms ( integer, intent(out)  n_V,
integer, intent(out)  n_FY,
integer, intent(in)  method 
)

required sizes to allocate memory

returns iY, iFY depending on the method

  • n_V = required size for V
  • n_FY = required size for AY, BY

Definition at line 82 of file ode_SL_ms_mod.f90.

Here is the call graph for this function:

◆ set_solver_ode_sl_ms()

subroutine, public ode_sl_ms_mod::set_solver_ode_sl_ms ( procedure(ode_lin_solver), pointer  slv,
integer, intent(in)  method 
)

set the resolution solver

Definition at line 116 of file ode_SL_ms_mod.f90.

Here is the call graph for this function:

◆ sl_ms_bdfsbdf2()

subroutine ode_sl_ms_mod::sl_ms_bdfsbdf2 ( 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

BDF2/SBDF2.

Definition at line 585 of file ode_SL_ms_mod.f90.

◆ sl_ms_bdfsbdf3()

subroutine ode_sl_ms_mod::sl_ms_bdfsbdf3 ( 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

BDF3/SBDF3.

Definition at line 633 of file ode_SL_ms_mod.f90.

◆ sl_ms_bdfsbdf4()

subroutine ode_sl_ms_mod::sl_ms_bdfsbdf4 ( 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

BDF4/SBDF4.

Definition at line 689 of file ode_SL_ms_mod.f90.

◆ sl_ms_bdfsbdf5()

subroutine ode_sl_ms_mod::sl_ms_bdfsbdf5 ( 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

BDF5/SBDF5.

Definition at line 748 of file ode_SL_ms_mod.f90.

◆ sl_ms_cnab2()

subroutine ode_sl_ms_mod::sl_ms_cnab2 ( 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

CN/AB2.

Definition at line 466 of file ode_SL_ms_mod.f90.

◆ sl_ms_fbe()

subroutine ode_sl_ms_mod::sl_ms_fbe ( 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

FORWARD/BacWard Euler.

Definition at line 397 of file ode_SL_ms_mod.f90.

◆ sl_ms_fe()

subroutine ode_sl_ms_mod::sl_ms_fe ( 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

FORWARD Euler.

Definition at line 430 of file ode_SL_ms_mod.f90.

◆ sl_ms_mcnab2()

subroutine ode_sl_ms_mod::sl_ms_mcnab2 ( 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

Modified-CN/AB2.

Definition at line 515 of file ode_SL_ms_mod.f90.

◆ solve_ode_sl_ms()

subroutine, public ode_sl_ms_mod::solve_ode_sl_ms ( 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,
logical, intent(in)  check_overflow,
procedure(linsystem_solver), optional  Kinv,
type(krylov), optional  kry 
)

solve with constant time-step Case where pbN = 1

Definition at line 173 of file ode_SL_ms_mod.f90.

Here is the call graph for this function:

Variable Documentation

◆ c12_137

real(rp), parameter ode_sl_ms_mod::c12_137 = 12._RP /137._RP
private

Definition at line 48 of file ode_SL_ms_mod.f90.

◆ c12_25

real(rp), parameter ode_sl_ms_mod::c12_25 = 12._RP / 25._RP
private

Definition at line 43 of file ode_SL_ms_mod.f90.

◆ c16_25

real(rp), parameter ode_sl_ms_mod::c16_25 = 16._RP / 25._RP
private

Definition at line 44 of file ode_SL_ms_mod.f90.

◆ c18_11

real(rp), parameter ode_sl_ms_mod::c18_11 = 18._RP / 11._RP
private

Definition at line 41 of file ode_SL_ms_mod.f90.

◆ c200_137

real(rp), parameter ode_sl_ms_mod::c200_137 = 200._RP /137._RP
private

Definition at line 51 of file ode_SL_ms_mod.f90.

◆ c2_11

real(rp), parameter ode_sl_ms_mod::c2_11 = 2._RP / 11._RP
private

Definition at line 38 of file ode_SL_ms_mod.f90.

◆ c2_3

real(rp), parameter ode_sl_ms_mod::c2_3 = 2._RP / 3._RP
private

Definition at line 36 of file ode_SL_ms_mod.f90.

◆ c300_137

real(rp), parameter ode_sl_ms_mod::c300_137 = 300._RP /137._RP
private

Definition at line 52 of file ode_SL_ms_mod.f90.

◆ c36_25

real(rp), parameter ode_sl_ms_mod::c36_25 = 36._RP / 25._RP
private

Definition at line 45 of file ode_SL_ms_mod.f90.

◆ c3_25

real(rp), parameter ode_sl_ms_mod::c3_25 = 3._RP / 25._RP
private

Definition at line 42 of file ode_SL_ms_mod.f90.

◆ c48_25

real(rp), parameter ode_sl_ms_mod::c48_25 = 48._RP / 25._RP
private

Definition at line 46 of file ode_SL_ms_mod.f90.

◆ c4_3

real(rp), parameter ode_sl_ms_mod::c4_3 = 4._RP / 3._RP
private

Definition at line 35 of file ode_SL_ms_mod.f90.

◆ c600_137

real(rp), parameter ode_sl_ms_mod::c600_137 = 600._RP /137._RP
private

Definition at line 53 of file ode_SL_ms_mod.f90.

◆ c60_137

real(rp), parameter ode_sl_ms_mod::c60_137 = 60._RP /137._RP
private

Definition at line 49 of file ode_SL_ms_mod.f90.

◆ c6_11

real(rp), parameter ode_sl_ms_mod::c6_11 = 6._RP / 11._RP
private

Definition at line 39 of file ode_SL_ms_mod.f90.

◆ c72_25

real(rp), parameter ode_sl_ms_mod::c72_25 = 72._RP / 25._RP
private

Definition at line 47 of file ode_SL_ms_mod.f90.

◆ c75_137

real(rp), parameter ode_sl_ms_mod::c75_137 = 75._RP /137._RP
private

Definition at line 50 of file ode_SL_ms_mod.f90.

◆ c9_11

real(rp), parameter ode_sl_ms_mod::c9_11 = 9._RP / 11._RP
private

Definition at line 40 of file ode_SL_ms_mod.f90.

◆ c_3

real(rp), parameter ode_sl_ms_mod::c_3 = 1._RP / 3._RP
private

Definition at line 37 of file ode_SL_ms_mod.f90.