timestep_sts

Module

Description

$Id$

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

Module for the super-time-stepping scheme (STS) for diffusive terms (Alexiades, V., Amiez, G., & Gremaud, P. 1996, Commun. Num. Meth. Eng., 12, 31) which goes back to W. Gentzsch (ZAMM 58, T415-T416, 1978).

TODO: add i.e. particles, interstellar, shear

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/substeps [private]

Subroutines and functions

subroutine  timestep/initialize_timestep()
Call to:

pde(), border_quenching(), special_after_timestep(), fatal_error()

subroutine  timestep/time_step(f, df, p)

Temporal advance for a diffusion problem using STS. ‘itorder’ plays the role of the parameter N in Alexiades paper, which usually lies between 3 and 20, where lower values have higher accuracy and higher values give larger speed-ups. ‘nu_sts’ is defined in run_pars and must have vales between 0.0 and 1.0 (default 0.1).

17-march-11/gustavo: coded 08-march-12/bing+bourdin.kis: first stable

Parameters:
  • f (,,*,*) [real,inout,contiguous]

  • df (,,*,*) [real,out,contiguous]

  • p [pencil_case,out]

Use :

borderprofiles (border_quenching()), equ (pde()), mpicomm (mpiallreduce_max(), mpi_comm_pencil()), special (special_after_timestep())

Call to:

pde(), border_quenching(), special_after_timestep(), fatal_error()