timestep_rkf_lowsto
Module
Description
$Id$
Runge-Kutta-Fehlberg Low-Storage method Christopher A. Kennedy, Mark H. Carpenter, R.Michael Lewis, Low-storage, explicit Runge-Kutta schemes for the compressible Navier-Stokes equations, Applied Numerical Mathematics, Volume 35, Issue 3, 2000, Pages 177-219, ISSN 0168-9274, https://doi.org/10.1016/S0168-9274(99)00141-5.
** AUTOMATIC CPARAM.INC GENERATION ************************
CPARAM logical, parameter :: lcourant_dt = .false.
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/beta_hat (5) [real,private]
- timestep/dt_alpha_ts (5) [real,private]
- timestep/dt_beta_hat (5) [real,private]
- timestep/dt_decrease [real,private]
- timestep/dt_increase [real,private]
- timestep/errdf (*,*,*,*) [real,private/allocatable]
- timestep/errmax [real,private]
- timestep/errmaxs [real,private]
- timestep/f1 (*,*,*,*) [real,private/target/allocatable]
- timestep/farr (*,*,*,*) [real,private/pointer/contiguous]
- timestep/farraymin (mvar) [real,private]
- timestep/itter [integer,private]
- timestep/ode [private]
- timestep/ode_timestep_first [private]
- timestep/ode_timestep_second [private]
- timestep/safety [real,private/optional/default=0.95]
- timestep/split_update [private]
- timestep/update_after_substep [private]
Subroutines and functions
- subroutine timestep/initialize_timestep()
Coefficients for up to order 4(3). 14-oct-24/fred: adapted from timestep.f90 using low storage adaptive
Runge-Kutta-Fehlberg derived scheme. Unlike timestep_rkf.f90 intermediate substep df are not retained but overwritten inside two farray size registers which alternate for f and df at each substep. 5th order and above require more than 5 substeps and would require replacing alpha and beta din cdata.f90 so are not yet implemented. Current tests using interstellar sample yield much lower timesteps and therefore longer integration times than RKFded, but this implementation can be more easily integrated into the GPU coupled code.
- Use :
messages(not_implemented(),warning()),general(itoa(),rtoa())- Call to:
warning(),not_implemented(),particles_timestep_first(),pointmasses_timestep_first(),solid_cells_timestep_first(),pde(),border_quenching(),pointmasses_timestep_second(),particles_timestep_second(),solid_cells_timestep_second(),impose_floors_ceilings(),update_ghosts(),advance_shear(),split_update_density(),split_update_energy(),split_update_magnetic(),split_update_viscosity(),split_update_particles(),hydro_after_timestep(),magnetic_after_timestep(),energy_after_timestep(),special_after_timestep(),particles_special_after_dtsub(),particles_write_rmv(),dspecial_dt_ode()
- subroutine timestep/time_step(f, df, p)
14-oct-24/fred: coded
- Parameters:
f (,,*,*) [real,target/contiguous]
df (,,*,*) [real,contiguous]
p [pencil_case]
- Use :
boundcond(update_ghosts()),borderprofiles(border_quenching()),equ(pde(),impose_floors_ceilings()),mpicomm(mpiallreduce_max(),mpi_comm_pencil()),messages(warning()),particles_main(particles_timestep_first(),particles_timestep_second()),pointmasses(pointmasses_timestep_first(),pointmasses_timestep_second()),solid_cells(solid_cells_timestep_first(),solid_cells_timestep_second()),shear(advance_shear())- Call to:
particles_timestep_first(),pointmasses_timestep_first(),solid_cells_timestep_first(),pde(),border_quenching(),pointmasses_timestep_second(),particles_timestep_second(),solid_cells_timestep_second(),impose_floors_ceilings(),update_ghosts(),advance_shear(),warning(),split_update_density(),split_update_energy(),split_update_magnetic(),split_update_viscosity(),split_update_particles(),hydro_after_timestep(),magnetic_after_timestep(),energy_after_timestep(),special_after_timestep(),particles_special_after_dtsub(),particles_write_rmv(),dspecial_dt_ode()