-
Notifications
You must be signed in to change notification settings - Fork 117
Super Time Stepping
Explicit integration of diffusive physics requires taking a parabolic time-step, which is proportional to , where is the linear resolution of the calculation. This parabolic time-step is often much smaller than the hyperbolic time-step, thus dramatically increasing the required compute time when running Athena++ with diffusive physics enabled.
Super-time-stepping offers an avenue to bypass the penalty associated with taking the parabolic time-step. When super-time-stepping is enabled, diffusive physics is treated in an operator-split fashion using the RKL1 algorithm (see Meyer et al. 2014). This enables us to take the hyperbolic time-step inside the main integration loop, while diffusion physics is integrated over a super-time-step (equal to the hyperbolic time-step) in an operator-split update. Each super-time-step is comprised of several sub-stages, where the stability criterion for these stages is given by the recursion relation of Legendre polynomials.
Important Note: Super-time-stepping with the RKL1 algorithm is only a first-order scheme.
Presently, super-time-stepping can only be applied to problems with diffusive physics. To enable super-time-stepping, configure Athena++ with the -sts
option.
> python configure.py -sts
If super-time-stepping is enabled, at least one of the following input parameters for diffusion processes must be set in the input file under the <problem>
block:
<problem>
nu_iso = 0.01 # isotropic viscosity coefficient
nu_aniso = 0.0 # anisotropic viscosity coefficient
kappa_iso = 0.01 # isotropic thermal conduction coefficient
kappa_aniso = 0.0 # anisotropic thermal conduction coefficient
eta_ohm = 0.01 # Ohmic resistivity coefficient
eta_ad = 0.0 # Ambipolar diffusion coefficient
Ohmic diffusion of a Gaussian magnetic field:
> python configure.py -b -sts --prob=resist --flux=hlld --eos=isothermal
Error convergence and performance diagnostics for super-time-stepping vs. explicit integration in Ohmic diffusion problem:
- Mesh refinement with super-time-stepping is not yet available.
- Time dependent boundary conditions (e.g., shearing BC's
-shear
) and source terms are not yet compatible with super-time-stepping.
Getting Started
User Guide
- Configuring
- Compiling
- The Input File
- Problem Generators
- Boundary Conditions
- Coordinate Systems and Meshes
- Running the Code
- Outputs
- Using MPI and OpenMP
- Static Mesh Refinement
- Adaptive Mesh Refinement
- Load Balancing
- Special Relativity
- General Relativity
- Passive Scalars
- Shearing Box
- Diffusion Processes
- General Equation of State
- FFT
- High-Order Methods
- Super-Time-Stepping
- Orbital Advection
- Rotating System
- Reading Data from External Files
Programmer Guide