METHOD
RK4_10 Class Reference

#include <RKPlus.h>

Inheritance diagram for RK4_10:
Collaboration diagram for RK4_10:

Public Member Functions

 RK4_10 (Data *data, Model *model, Bcs *bcs, FluxMethod *fluxMethod, ModelExtension *modelExtension=NULL)
 
virtual ~RK4_10 ()
 
void prepare1 (double *cons, double *prims, double *aux)
 
void prepare2 (double *cons, double *prims, double *aux)
 
void stageRepeat (double *cons, double *prims, double *aux, double dt)
 
void stageFinal (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 * u2cons
 
double * u2prims
 
double * u2aux
 
double * rhs1
 
- Public Attributes inherited from RKPlus
double * fluxCont
 
- Public Attributes inherited from TimeIntegratorBase
Datadata
 
Modelmodel
 
Bcsbcs
 
FluxMethodfluxMethod
 
ModelExtensionmodelExtension
 

Detailed Description

Fourth order RK.

SSPRK(10,4) from Gottlieb 2009, see code example in paper. This can run the AdvectionSingleFluid test with cfl=3.6

Definition at line 421 of file RKPlus.h.

Constructor & Destructor Documentation

◆ RK4_10()

RK4_10::RK4_10 ( 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.

Parameters
[in]*conspointer to conserved vector work array. Size is \(N_{cons} \times N_x \times N_y \times N_z\)
[in]*primspointer to primitive vector work array. Size is \(N_{prims} \times N_x \times N_y \times N_z\)
[in]*auxpointer to auxiliary vector work array. Size is \(N_{aux} \times N_x \times N_y \times N_z\)
dtthe step size desired to move by. Defaults to the value in the Data class
See also
TimeIntegrator::TimeIntegrator
RKPlus::RKPlus

◆ ~RK4_10()

virtual RK4_10::~RK4_10 ( )
virtual

Member Function Documentation

◆ prepare1()

void RK4_10::prepare1 ( double *  cons,
double *  prims,
double *  aux 
)

Prepare for stages 1-5.

Prepare the work arrays for the first 5 stages.

Parameters
[in]*conspointer to conserved vector work array. Size is \(N_{cons} \times N_x \times N_y \times N_z\)
[in]*primspointer to primitive vector work array. Size is \(N_{prims} \times N_x \times N_y \times N_z\)
[in]*auxpointer to auxiliary vector work array. Size is \(N_{aux} \times N_x \times N_y \times N_z\)
dtthe step size desired to move by. Defaults to the value in the Data class
See also
RK4_10::RK4_10

◆ prepare2()

void RK4_10::prepare2 ( double *  cons,
double *  prims,
double *  aux 
)

Prepare for stages 6-9.

Prepare the work arrays for the next 4 stages.

Parameters
[in]*conspointer to conserved vector work array. Size is \(N_{cons} \times N_x \times N_y \times N_z\)
[in]*primspointer to primitive vector work array. Size is \(N_{prims} \times N_x \times N_y \times N_z\)
[in]*auxpointer to auxiliary vector work array. Size is \(N_{aux} \times N_x \times N_y \times N_z\)
dtthe step size desired to move by. Defaults to the value in the Data class
See also
RK4_10::RK4_10

◆ stageFinal()

void RK4_10::stageFinal ( double *  cons,
double *  prims,
double *  aux,
double  dt 
)

Final stage result.

Compute and storethe final stage result.

Parameters
[in]*conspointer to conserved vector work array. Size is \(N_{cons} \times N_x \times N_y \times N_z\)
[in]*primspointer to primitive vector work array. Size is \(N_{prims} \times N_x \times N_y \times N_z\)
[in]*auxpointer to auxiliary vector work array. Size is \(N_{aux} \times N_x \times N_y \times N_z\)
dtthe step size desired to move by. Defaults to the value in the Data class
See also
RK4_10::RK4_10

◆ stageRepeat()

void RK4_10::stageRepeat ( double *  cons,
double *  prims,
double *  aux,
double  dt 
)

Compute the stage that it iteratively applied.

Compute and store the stage for this integrator.

Parameters
[in]*conspointer to conserved vector work array. Size is \(N_{cons} \times N_x \times N_y \times N_z\)
[in]*primspointer to primitive vector work array. Size is \(N_{prims} \times N_x \times N_y \times N_z\)
[in]*auxpointer to auxiliary vector work array. Size is \(N_{aux} \times N_x \times N_y \times N_z\)
dtthe step size desired to move by. Defaults to the value in the Data class
See also
RK4_10::RK4_10

◆ step()

void RK4_10::step ( double *  cons,
double *  prims,
double *  aux,
double  dt = 0 
)
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.

Parameters
[in]*conspointer to conserved vector work array. Size is \(N_{cons} \times N_x \times N_y \times N_z\)
[in]*primspointer to primitive vector work array. Size is \(N_{prims} \times N_x \times N_y \times N_z\)
[in]*auxpointer to auxiliary vector work array. Size is \(N_{aux} \times N_x \times N_y \times N_z\)
dtthe step size desired to move by. Defaults to the value in the Data class
See also
TimeIntegrator::step

Implements TimeIntegratorBase.

Member Data Documentation

◆ rhs1

double * RK4_10::rhs1

Work arrays for interstage results.

Definition at line 428 of file RKPlus.h.

◆ u1aux

double * RK4_10::u1aux

Work arrays for interstage results.

Definition at line 428 of file RKPlus.h.

◆ u1cons

double* RK4_10::u1cons

Work arrays for interstage results.

Definition at line 428 of file RKPlus.h.

◆ u1prims

double * RK4_10::u1prims

Work arrays for interstage results.

Definition at line 428 of file RKPlus.h.

◆ u2aux

double * RK4_10::u2aux

Work arrays for interstage results.

Definition at line 428 of file RKPlus.h.

◆ u2cons

double * RK4_10::u2cons

Work arrays for interstage results.

Definition at line 428 of file RKPlus.h.

◆ u2prims

double * RK4_10::u2prims

Work arrays for interstage results.

Definition at line 428 of file RKPlus.h.


The documentation for this class was generated from the following file: