The tModule Structure

A module in bamps refers to project in bamps. It contains all necessary information needed for bamps to evolve the underlying equtions. These include funtion pointers to the relevant RHS of the evolution equations, boundary conditions, etc.

Members

Metadata

tModuleType type

Type of module, this option determines which variables will be allocated. Possible values are:

  • METRIC_M …​ 10 components metric tensor $g_{ab}$ + 40 Christoffels $\Gamma_{abc}$.

  • MATTER_M …​ 10 components stress-energy tensor $T_{ab}$

  • DF_M …​ 16 components inverse Jacobian $(Ja_b){-1}$

  • ELLIPTIC_M …​ ??? Unused ???

  • NONE_M …​ do not allocate anything, used for dummy modules

int nm

Number of this module

int nms

Number of modules loaded

int DG

Does this module use DG? char* name: Name of this module

Function pointers

void (*f_interface) (tArray *interface, tArray *u)

Compute metric and Christoffels variables or energy momentum tensor.

void (*f_initial_data) (struct tMODULE *m)

Compute initial data.

void (*f_pre_evolve) (tArray & u)

Computations to be carried out before time evolution>?

void (*f_post_rhs) (tArray *u, double t)

Computations to be carried out after time evolution>?

void (*f_analyze) (tArray * ana, tArray * u)

Compute analysis variables.

void (*f_boundary_inner) (tArray * ru, tArray * u, tBoundary *bndy)

Compute bounadry conditions at inner shell boundary.

void (*f_boundary_outer) (tArray * ru, tArray * u, tBoundary *bndy)

Compute boundary conditions at outer shell boundary.

void (*f_boundary_patch) (tArray * ru, tArray * u, tBoundary *bndy)

Compute boundary conditions at cell interfaces (grid patches).

void (*f_boundary_symmetry) (tArray * ru, tArray * u, tBoundary *bndy)

Compute boundary conditions for symmetry boundaries.

void (*f_cartoon) (tArray *ru, tArray *u)

Compute cartoon derivatives.

void (*f_cartoon_symcon) (tArray *ru, tArray *u, tBoundary *bndy)

Compute symmetry conditions for cartoon method.

double (*f_refine_indicator) (tGrid *g, double *u)

Evaluate refinement indicator function for AMR.

void (*f_limiter) (tArray *u)

Apply limiting routine (for WENO scheme)???

void (*f_post_checkpoint) (struct tMODULE *m)

???

void (*f_post_analyze) (void)

???

tVar *vars

Pointer to the variable names and properties

tLimiterType LimType

Execute Limiter after time step or after RK step. Possible values:

  • NO_L …​ no limiter

  • AFTER_TIME_STEP …​ apply limiter after full time step

  • AFTER_RK_STEP …​ apply limiter after RK sub step