afivo-streamer 1.1
1D/2D/3D streamer simulations with AMR
Loading...
Searching...
No Matches
Time integration

Time integration method

Time integration is performed explicitly, using the Afivo time integration module, which is described in the Afivo online documentation.

Several time integrators can be used, which can be set using the time_integrator variable. The following options are for example supported:

  • forward_euler (first order)
  • heuns_method (second order, SSP)
  • midpoint_method (second order)
  • ssprk3 (third order, SSP)

Here SSP stands for "strong stability preserving".

Time step restrictions

Due to the explicit time integration, there are a number of time step restrictions:

  • A CFL condition
  • A condition due to explicit diffusion (usually not important, that's why diffusion is handled explicitly)
  • An optional time step restriction due to the plasma chemistry
  • A time step restriction due to the dielectric relaxation time

For more details about these time step restrictions, see e.g. the paper about afivo-streamer. More on the dielectric relaxation time, and ways to avoid it, can be found in this paper.

If dt_chemistry_nmin is set to a positive value, there is a time step restriction of the form

dt < max(n, dt_chemistry_nmin) / (d/dt n)'

where d/dt n is the time derivative due to chemical reactions. When a density is (almost) zero, the parameter dt_chemistry_nmin avoids a very small time step.

Relevant parameters

In the m_dt module, there are a couple of relevant parameters for the time integration:

call cfg_add_get(cfg, "dt_max", dt_max, &
"The maximum timestep (s)")
call cfg_add_get(cfg, "dt_min", dt_min, &
"The minimum timestep (s)")
call cfg_add_get(cfg, "dt_safety_factor", dt_safety_factor, &
"Safety factor for the time step")
call cfg_add_get(cfg, "dt_cfl_number", dt_cfl_number, &
"CFL number to use")
call cfg_add_get(cfg, "dt_chemistry_nmin", dt_chemistry_nmin, &
"If > 0, a density to control the accuracy of the chemistry time step")
call cfg_add_get(cfg, "dt_chemistry_limit_loss", dt_chemistry_limit_loss, &
"Limit dt to prevent negative densities due to loss reactions")

Abort on small time steps

When the time step becomes smaller than dt_min, the simulation will abort, assuming an instability has occurred. This can be prevented by:

  • Decreasing the minimal time step dt_min, see m_dt
  • Increasing the n0 for the chemistry time step (see above)