Choral
Data Types | Functions/Subroutines
ode_opsplt_mod Module Reference

DERIVED TYPE ode_opSplt: operator splitting methods for ODEs. More...

Data Types

interface  clear
 destructor More...
 
interface  ode_opsplt
 The type opSplt defines operator spltting methods. More...
 
interface  print
 print 'ode_opSplt' parameters More...
 
interface  valid
 check 'ode_opSplt' parameters More...
 

Functions/Subroutines

subroutine ode_opsplt_clear (os)
 destructor for 'ode_opSplt' More...
 
type(ode_opsplt) function ode_opsplt_create (method, L_meth, NL_meth, check_overflow)
  Constructor for the type ode_opSplt More...
 
subroutine def_splitting (os)
 Define splitting methods. More...
 
logical function ode_opsplt_valid (os)
 
subroutine ode_opsplt_print (os)
 
character(len=15) function, public name_ode_method_opsplt (method)
 Get operator splitting method name. More...
 
integer function, public order_ode_method_opsplt (method)
 Get operator splitting method name. More...
 
subroutine, public create_ode_opsplt_sol (sol, pb, os)
 
subroutine, public solve_ode_opsplt (sol, t0, T, dt, os, pb, kry, out)
 solve : operator splitting with constant time step More...
 

Detailed Description

DERIVED TYPE ode_opSplt: operator splitting methods for ODEs.

Choral constants for operator splitting methods for ODEs: ODE_OS_xxx, see the list.

The type ode_opsplt defines operator splitting methods for ODEs.

Addressed ODE problems (see ode_problem_mod detailed description):

An ode_opsplt method 'os' is constructed with:

os = opsplt(os_meth, l_meth, nl_meth)

To solve an ODE with an operator splitting solver, follow the steps in ode_solver_mod.

Author
Charles Pierre

Function/Subroutine Documentation

◆ create_ode_opsplt_sol()

subroutine, public ode_opsplt_mod::create_ode_opsplt_sol ( type(ode_solution), intent(inout)  sol,
type(ode_problem), intent(in)  pb,
type(ode_opsplt), intent(in)  os 
)

Definition at line 377 of file ode_opSplt_mod.f90.

Here is the call graph for this function:

◆ def_splitting()

subroutine ode_opsplt_mod::def_splitting ( type(ode_opsplt), intent(inout)  os)
private

Define splitting methods.

Definition at line 218 of file ode_opSplt_mod.f90.

Here is the call graph for this function:

◆ name_ode_method_opsplt()

character(len=15) function, public ode_opsplt_mod::name_ode_method_opsplt ( integer, intent(in)  method)

Get operator splitting method name.

Definition at line 321 of file ode_opSplt_mod.f90.

◆ ode_opsplt_clear()

subroutine ode_opsplt_mod::ode_opsplt_clear ( type(ode_opsplt), intent(inout)  os)
private

destructor for 'ode_opSplt'

Definition at line 149 of file ode_opSplt_mod.f90.

◆ ode_opsplt_create()

type(ode_opsplt) function ode_opsplt_mod::ode_opsplt_create ( integer, intent(in)  method,
integer, intent(in)  L_meth,
integer, intent(in)  NL_meth,
logical, intent(in), optional  check_overflow 
)
private

Constructor for the type ode_opSplt

  • INPUT:
    • method = operator spltiting method
    • L_meth = one step solver for the linear part
    • NL_meth = one step solver for the non-linear part
    • optional: check_overflow = checks overflow when solving

Definition at line 183 of file ode_opSplt_mod.f90.

Here is the call graph for this function:

◆ ode_opsplt_print()

subroutine ode_opsplt_mod::ode_opsplt_print ( type(ode_opsplt), intent(in)  os)
private

Definition at line 300 of file ode_opSplt_mod.f90.

Here is the call graph for this function:

◆ ode_opsplt_valid()

logical function ode_opsplt_mod::ode_opsplt_valid ( type(ode_opsplt), intent(in)  os)
private

Definition at line 286 of file ode_opSplt_mod.f90.

Here is the call graph for this function:

◆ order_ode_method_opsplt()

integer function, public ode_opsplt_mod::order_ode_method_opsplt ( integer, intent(in)  method)

Get operator splitting method name.

Definition at line 351 of file ode_opSplt_mod.f90.

◆ solve_ode_opsplt()

subroutine, public ode_opsplt_mod::solve_ode_opsplt ( type(ode_solution), intent(inout)  sol,
real(rp), intent(in)  t0,
real(rp), intent(in)  T,
real(rp), intent(in)  dt,
type(ode_opsplt), intent(in)  os,
type(ode_problem), intent(in)  pb,
type(krylov), intent(inout)  kry,
procedure(ode_output_proc out 
)

solve : operator splitting with constant time step

Definition at line 399 of file ode_opSplt_mod.f90.

Here is the call graph for this function: