HyPar  1.0
Finite-Difference Hyperbolic-Parabolic PDE Solver on Cartesian Grids
timeintegration_struct.h File Reference

Contains structures for time integration. More...

#include <sys/time.h>
#include <basic.h>

Go to the source code of this file.

Data Structures

struct  TimeIntegration
 Structure of variables/parameters and function pointers for time integration. More...
 
struct  ExplicitRKParameters
 Structure containing the parameters for an explicit Runge-Kutta method. More...
 
struct  GLMGEEParameters
 Structure containing the parameters for the General Linear Methods with Global Error Estimators (GLM-GEE) More...
 

Macros

#define _FORWARD_EULER_   "euler"
 
#define _RK_   "rk"
 
#define _GLM_GEE_   "glm-gee"
 
#define _RK_1FE_   "1fe"
 
#define _RK_22_   "22"
 
#define _RK_33_   "33"
 
#define _RK_44_   "44"
 
#define _RK_SSP3_   "ssprk3"
 
#define _RK_TVD3_   "tvdrk3"
 
#define _GLM_GEE_YYT_   "yyt"
 
#define _GLM_GEE_YEPS_   "yeps"
 
#define _GLM_GEE_23_   "23"
 
#define _GLM_GEE_24_   "24"
 
#define _GLM_GEE_25I_   "25i"
 
#define _GLM_GEE_35_   "35"
 
#define _GLM_GEE_EXRK2A_   "exrk2a"
 
#define _GLM_GEE_RK32G1_   "rk32g1"
 
#define _GLM_GEE_RK285EX_   "rk285ex"
 

Detailed Description

Contains structures for time integration.

Author
Debojyoti Ghosh

Definition in file timeintegration_struct.h.


Data Structure Documentation

◆ ExplicitRKParameters

struct ExplicitRKParameters

Structure containing the parameters for an explicit Runge-Kutta method.

Contains the parameters defining an explicit Runge Kutta time integration method.

See also
TimeRK()

Definition at line 177 of file timeintegration_struct.h.

Data Fields
int nstages

number of stages

double * A

Stage computation coefficients (Butcher tableau form), saved as a 1D-array in row-major form

double * b

Step completion coefficients (Butcher tableau form)

double * c

Stage time coefficients (Butcher tableau form)

◆ GLMGEEParameters

struct GLMGEEParameters

Structure containing the parameters for the General Linear Methods with Global Error Estimators (GLM-GEE)

Contains the parameters defining a General Linear time-integration method with global error estimators.

See also
TimeGLMGEE()

Definition at line 267 of file timeintegration_struct.h.

Data Fields
int nstages

Number of stages

int r

Number of auxiliary solutions propagated with solution

char ee_mode[_MAX_STRING_SIZE_]

Error estimation mode (_GLM_GEE_YYT_ or _GLM_GEE_YEPS_)

double * A_yyt

Stage computation coefficients ( \(y-\tilde{y}\) error-estimation mode) (row-major)

double * B_yyt

Step completion coefficients ( \(y-\tilde{y}\) error-estimation mode) (row-major)

double * C_yyt

Stage computation coefficients ( \(y-\tilde{y}\) error-estimation mode) (row-major)

double * D_yyt

Step completion coefficients ( \(y-\tilde{y}\) error-estimation mode) (row-major)

double * c_yyt

Stage time coefficients ( \(y-\tilde{y}\) error-estimation mode) (row-major)

double * A_yeps

Stage computation coefficients ( \(y-\epsilon\) error-estimation mode) (row-major)

double * B_yeps

Step completion coefficients ( \(y-\epsilon\) error-estimation mode) (row-major)

double * C_yeps

Stage computation coefficients ( \(y-\epsilon\) error-estimation mode) (row-major)

double * D_yeps

Step completion coefficients ( \(y-\epsilon\) error-estimation mode) (row-major)

double * c_yeps

Stage time coefficients ( \(y-\epsilon\) error-estimation mode) (row-major)

double * A

Pointer to the stage computation coefficients

double * B

Pointer to the step completion coefficients

double * C

Pointer to the stage computation coefficients

double * D

Pointer to the step completion coefficients

double * c

Pointer to stage time coefficients

double gamma

Gamma parameter

Macro Definition Documentation

◆ _FORWARD_EULER_

#define _FORWARD_EULER_   "euler"

Forward Euler time integration

See also
TimeForwardEuler()

Definition at line 14 of file timeintegration_struct.h.

◆ _RK_

#define _RK_   "rk"

Runge-Kutta time integration method

See also
TimeRK()

Definition at line 16 of file timeintegration_struct.h.

◆ _GLM_GEE_

#define _GLM_GEE_   "glm-gee"

General Linear Methods with Global Error Estimators

See also
TimeGLMGEE()

Definition at line 18 of file timeintegration_struct.h.

◆ _RK_1FE_

#define _RK_1FE_   "1fe"

Forward Euler, written as a Runge Kutta method (1 stage, 1st order)

\(\begin{array}{c|c} 0 & 0 \\ \hline & 1 \end{array}\)

See also
TimeExplicitRKInitialize()

Definition at line 128 of file timeintegration_struct.h.

◆ _RK_22_

#define _RK_22_   "22"

2-stage, 2nd order Runge Kutta method, often known as "RK2a"

\(\begin{array}{c|cc} 0 & & \\ 1 & 1 & \\ \hline & \frac{1}{2} & \frac{1}{2}\end{array}\)

See also
TimeExplicitRKInitialize()

Definition at line 136 of file timeintegration_struct.h.

◆ _RK_33_

#define _RK_33_   "33"

3-stage, 3rd order Runge Kutta method

\(\begin{array}{c|ccc} 0 & & & \\ \frac{2}{3} & \frac{2}{3} & & \\ \frac{2}{3} & \frac{5}{12} & \frac{1}{4} & \\ \hline & \frac{1}{4} & -\frac{1}{4} & 1\end{array}\)

See also
TimeExplicitRKInitialize()

Definition at line 144 of file timeintegration_struct.h.

◆ _RK_44_

#define _RK_44_   "44"

The classical 4-stage, 4th order Runge Kutta method

\( \begin{array}{c|cccc} 0 & & & & \\ \frac{1}{2} & \frac{1}{2} & & & \\ \frac{1}{2} & & \frac{1}{2} & & \\ 1 & & & 1 & \\ \hline & \frac{1}{6} & \frac{1}{3} & \frac{1}{3} & \frac{1}{6} \end{array} \)

See also
TimeExplicitRKInitialize()

Definition at line 152 of file timeintegration_struct.h.

◆ _RK_SSP3_

#define _RK_SSP3_   "ssprk3"

Strong-Stability-Preserving (SSP) 3-stage, 3rd order Runge Kutta method

\( \begin{array}{c|ccc} 0 & & & \\ 1 & 1 & & \\ \frac{1}{2} & \frac{1}{4} & \frac{1}{4} & \\ \hline & \frac{1}{6} & \frac{1}{6} & \frac{2}{3} \end{array}\)

See also
TimeExplicitRKInitialize()

Reference:

Definition at line 165 of file timeintegration_struct.h.

◆ _RK_TVD3_

#define _RK_TVD3_   "tvdrk3"

Same as _RK_SSP3_

Definition at line 166 of file timeintegration_struct.h.

◆ _GLM_GEE_YYT_

#define _GLM_GEE_YYT_   "yyt"

\(y-\tilde{y}\) form

See also
TimeGLMGEEInitialize()

Reference:

Definition at line 193 of file timeintegration_struct.h.

◆ _GLM_GEE_YEPS_

#define _GLM_GEE_YEPS_   "yeps"

\(y-\epsilon\) form

See also
TimeGLMGEEInitialize()

Reference:

Definition at line 201 of file timeintegration_struct.h.

◆ _GLM_GEE_23_

#define _GLM_GEE_23_   "23"

A 3-stage, 2nd order method

See also
TimeGLMGEEInitialize()

Reference:

Definition at line 209 of file timeintegration_struct.h.

◆ _GLM_GEE_24_

#define _GLM_GEE_24_   "24"

A 4-stage, 2nd order method

See also
TimeGLMGEEInitialize()

Reference:

Definition at line 217 of file timeintegration_struct.h.

◆ _GLM_GEE_25I_

#define _GLM_GEE_25I_   "25i"

A 5-stage, 2nd order method, with good imaginary stability

See also
TimeGLMGEEInitialize()

Reference:

Definition at line 225 of file timeintegration_struct.h.

◆ _GLM_GEE_35_

#define _GLM_GEE_35_   "35"

A 5-stage, 3rd order method

See also
TimeGLMGEEInitialize()

Reference:

Definition at line 233 of file timeintegration_struct.h.

◆ _GLM_GEE_EXRK2A_

#define _GLM_GEE_EXRK2A_   "exrk2a"

RK-2a with an error estimator

See also
TimeGLMGEEInitialize()

Reference:

Definition at line 241 of file timeintegration_struct.h.

◆ _GLM_GEE_RK32G1_

#define _GLM_GEE_RK32G1_   "rk32g1"

A 3rd order method

See also
TimeGLMGEEInitialize()

Reference:

Definition at line 249 of file timeintegration_struct.h.

◆ _GLM_GEE_RK285EX_

#define _GLM_GEE_RK285EX_   "rk285ex"

A 2nd order RK method with an error estimator

See also
TimeGLMGEEInitialize()

Reference:

Definition at line 257 of file timeintegration_struct.h.