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
-