timestep_strang
Module
Description
$Id$
MODULE_DOC: Runge-Kutta time advance, accurate to order itorder. MODULE_DOC: At the moment, itorder can be 1, 2, or 3. MODULE_DOC: Split one dt into two dt/2 steps with RK method. MODULE_DOC: Please add documentation on why this is beneficial…
** 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:
Needed modules
cdata: $Id$
Variables
- timestep/after_substep_sum_time [real,public/optional/default=0.0]
- timestep/dt_major [real,private/optional/default=0.0]
- timestep/rk3 [private]
- timestep/split_update [private]
Subroutines and functions
- subroutine timestep/initialize_timestep()
Coefficients for up to order 3.
- Use :
- Call to:
not_implemented(),particles_timestep_first(),pde(),shift_dt(),border_quenching(),particles_timestep_second(),impose_floors_ceilings(),update_ghosts(),advance_shear(),special_after_timestep(),split_update_density(),split_update_energy(),split_update_magnetic(),split_update_viscosity(),split_update_particles()
- subroutine timestep/time_step(f, df, p)
Use Strang splitting to advance one time step.
22-jun-15/ccyang: coded.
- Parameters:
f (,,*,*) [real,inout,contiguous]
df (,,*,*) [real,inout,contiguous]
p [pencil_case,inout]
- Call to:
particles_timestep_first(),pde(),shift_dt(),border_quenching(),particles_timestep_second(),impose_floors_ceilings(),update_ghosts(),advance_shear(),special_after_timestep(),split_update_density(),split_update_energy(),split_update_magnetic(),split_update_viscosity(),split_update_particles()