timestep_LSODE

Module

Description

$Id$

Timestepping routine corresponding to the use of LSODE to solve chemistry. The transport equations are solved as usual using RK methods but the chemistry ODEs are separated and solved implicitly using LSODE either following a sequential (1 chemistry step) or symmetric (2 chemistry steps) splitting scheme.

** AUTOMATIC CPARAM.INC GENERATION ************************ CPARAM logical, parameter :: lcourant_dt = .true. ***********************************************************

Quick access

Variables:

a21, a31, a32, advance_substeps, after_substep_sum_time, b1, b2, b3, b4, beta_hat, c21, c31, c32, c41, c42, c43, calc_pencils_sub_cycle, dt_alpha_ts, dt_beta_hat, dt_decrease, dt_increase, dt_major, e1, e2, e3, e4, errcon, errdf, errmax, errmaxs, f1, farr, farraymin, gam, grow, itter, maxtry, ode, ode_timestep_first, ode_timestep_second, pde_energy_only, rk3, rkck, rkck3, rkl_coeff, safety, shrnk, split_update, stiff, substeps, swap, update_after_substep

Routines:

initialize_timestep(), time_step()

Needed modules

Variables

  • timestep/after_substep_sum_time [real,public/optional/default=0.0]

Subroutines and functions

subroutine  timestep/initialize_timestep()

Coefficients for up to order 3.

Use :

messages (not_implemented()), general (itoa())

Call to:

not_implemented(), pde_chemistry(), lsode_fc(), particles_timestep_first(), pde(), border_quenching(), particles_timestep_second(), advance_shear(), special_after_timestep()

subroutine  timestep/time_step(f, df, p)

Runge Kutta advance, accurate to order itorder. At the moment, itorder can be 1, 2, or 3.

2-apr-01/axel: coded

14-sep-01/axel: moved itorder to cdata

Parameters:
Use :

borderprofiles (border_quenching()), equ, mpicomm (mpiallreduce_max(), mpi_comm_pencil()), particles_main, shear (advance_shear()), special (special_after_timestep())

Call to:

pde_chemistry(), lsode_fc(), particles_timestep_first(), pde(), border_quenching(), particles_timestep_second(), advance_shear(), special_after_timestep()