PLUTO
|
Super Time Stepping driver for integration of diffusion terms. More...
#include "pluto.h"
Go to the source code of this file.
Macros | |
#define | STS_NU 0.01 |
Sets the nu parameter used in STS. More... | |
#define | STS_MAX_STEPS 1024 |
Functions | |
static void | STS_ComputeSubSteps (double, double tau[], int) |
static double | STS_FindRoot (double, double, double) |
static double | STS_CorrectTimeStep (int, double) |
void | STS (const Data *d, Time_Step *Dts, Grid *grid) |
Super Time Stepping driver for integration of diffusion terms.
Take one step in the solution of the diffusion equation where R is a nonlinear right hand side involving second derivatives. The super step is taken to be equal to the current time step g_dt and the number of substeps Nsts is given by solving the following nonlinear equation:
where is set by the macro STS_NU (default equal to 0.01). The previous relation is given by Eq. [2.10] of Alexiades et al. with the explicit parabolic time step
being computed from
where is the parabolic Courant number,
is the number of spatial dimensions and the maximum of the square bracket is computed during the call to ParabolicRHS.
This function is called in an operator-split way before/after advection has been carried out.
References
Definition in file sts.c.
Solve diffusion equation(s) using Super-Time-Stepping.
[in,out] | d | pointer to Data structure |
[in,out] | Dts | pointer to Time_Step structure |
[in] | grid | pointer to an array of Grid structures |
Definition at line 55 of file sts.c.
|
static |
|
static |