|
METHOD
|
#include <RKPlus.h>


Public Member Functions | |
| RK2B (Data *data, Model *model, Bcs *bcs, FluxMethod *fluxMethod, ModelExtension *modelExtension=NULL) | |
| virtual | ~RK2B () |
| void | stage1 (double *cons, double *prims, double *aux, double dt) |
| void | stage2 (double *cons, double *prims, double *aux, double dt) |
| void | step (double *cons, double *prims, double *aux, double dt=0) |
Public Member Functions inherited from RKPlus | |
| RKPlus (Data *data, Model *model, Bcs *bcs, FluxMethod *fluxMethod, ModelExtension *modelExtension=NULL) | |
| virtual | ~RKPlus () |
| virtual void | rhs (double *cons, double *prims, double *aux, double *rhsVec) |
Public Member Functions inherited from TimeIntegrator | |
| TimeIntegrator (Data *data, Model *model, Bcs *bcs, FluxMethod *fluxMethod, ModelExtension *modelExtension=NULL) | |
| virtual | ~TimeIntegrator () |
| void | finalise (double *cons, double *prims, double *aux) |
Public Member Functions inherited from TimeIntegratorBase | |
| TimeIntegratorBase (Data *data, Model *model, Bcs *bcs, FluxMethod *fluxMethod, ModelExtension *modelExtension=NULL) | |
| virtual | ~TimeIntegratorBase () |
Public Attributes | |
| double * | u1cons |
| double * | u1prims |
| double * | u1aux |
| double * | rhs1 |
| double * | rhs2 |
Public Attributes inherited from RKPlus | |
| double * | fluxCont |
Public Attributes inherited from TimeIntegratorBase | |
| Data * | data |
| Model * | model |
| Bcs * | bcs |
| FluxMethod * | fluxMethod |
| ModelExtension * | modelExtension |
Second order RK.
The step function performs the following stages. Stage 1:
\begin{align} U^{(1)} = U^n + \Delta t \mathcal{L}(U^n). \end{align}
Stage 2:
\begin{align} U^{n+1} = \frac{1}{2} U^n + \frac{1}{2} U^{(1)} + \frac{1}{2} \Delta t \mathcal{L}(U^{(1)}) \end{align}
| RK2B::RK2B | ( | Data * | data, |
| Model * | model, | ||
| Bcs * | bcs, | ||
| FluxMethod * | fluxMethod, | ||
| ModelExtension * | modelExtension = NULL |
||
| ) |
Constructor.
Constructor requires simulation data and the flux and source functions from the model class. Stores the necessary pointer.
| [in] | *cons | pointer to conserved vector work array. Size is \(N_{cons} \times N_x \times N_y \times N_z\) |
| [in] | *prims | pointer to primitive vector work array. Size is \(N_{prims} \times N_x \times N_y \times N_z\) |
| [in] | *aux | pointer to auxiliary vector work array. Size is \(N_{aux} \times N_x \times N_y \times N_z\) |
| dt | the step size desired to move by. Defaults to the value in the Data class |
|
virtual |
| void RK2B::stage1 | ( | double * | cons, |
| double * | prims, | ||
| double * | aux, | ||
| double | dt | ||
| ) |
Stage 1 result.
Compute and store stage 1 result.
| [in] | *cons | pointer to conserved vector work array. Size is \(N_{cons} \times N_x \times N_y \times N_z\) |
| [in] | *prims | pointer to primitive vector work array. Size is \(N_{prims} \times N_x \times N_y \times N_z\) |
| [in] | *aux | pointer to auxiliary vector work array. Size is \(N_{aux} \times N_x \times N_y \times N_z\) |
| dt | the step size desired to move by. Defaults to the value in the Data class |
| void RK2B::stage2 | ( | double * | cons, |
| double * | prims, | ||
| double * | aux, | ||
| double | dt | ||
| ) |
Stage 2 result.
Compute and store stage 2 result.
| [in] | *cons | pointer to conserved vector work array. Size is \(N_{cons} \times N_x \times N_y \times N_z\) |
| [in] | *prims | pointer to primitive vector work array. Size is \(N_{prims} \times N_x \times N_y \times N_z\) |
| [in] | *aux | pointer to auxiliary vector work array. Size is \(N_{aux} \times N_x \times N_y \times N_z\) |
| dt | the step size desired to move by. Defaults to the value in the Data class |
|
virtual |
Performs a single time step.
The timestep will use the current values of the conserved, primitive and auxiliary variables at t=t0 and compute the values of all of them at time \(t=t_0 + dt\). I.e. the conserved vector is evolved forward, and the corresponding prims and aux vars are found.
| [in] | *cons | pointer to conserved vector work array. Size is \(N_{cons} \times N_x \times N_y \times N_z\) |
| [in] | *prims | pointer to primitive vector work array. Size is \(N_{prims} \times N_x \times N_y \times N_z\) |
| [in] | *aux | pointer to auxiliary vector work array. Size is \(N_{aux} \times N_x \times N_y \times N_z\) |
| dt | the step size desired to move by. Defaults to the value in the Data class |
Implements TimeIntegratorBase.