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:

initialize_timestep(), time_step()

Needed modules

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 :

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

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()