summaryrefslogtreecommitdiff
path: root/src/qms_solve.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/qms_solve.c')
-rw-r--r--src/qms_solve.c26
1 files changed, 17 insertions, 9 deletions
diff --git a/src/qms_solve.c b/src/qms_solve.c
index f1e6ee8..3ce463b 100644
--- a/src/qms_solve.c
+++ b/src/qms_solve.c
@@ -188,8 +188,7 @@ struct QMSSolverPriv {
};
/* mapping between our indices and thorn names */
-static const char *metric_vars[] = {
-#if QMS_CCZ4
+static const char *metric_vars_ccz4[] = {
[GTXX] = "ML_CCZ4::gt11",
[GTYY] = "ML_CCZ4::gt22",
[GTZZ] = "ML_CCZ4::gt33",
@@ -214,7 +213,8 @@ static const char *metric_vars[] = {
[KDOT_XY] = "ML_CCZ4::Kdot12",
[KDOT_XZ] = "ML_CCZ4::Kdot13",
[KDOT_YZ] = "ML_CCZ4::Kdot23",
-#else
+};
+static const char *metric_vars_bssn[] = {
[GTXX] = "ML_BSSN::gt11",
[GTYY] = "ML_BSSN::gt22",
[GTZZ] = "ML_BSSN::gt33",
@@ -240,7 +240,6 @@ static const char *metric_vars[] = {
[KDOT_XY] = "ML_BSSN::Kdot12",
[KDOT_XZ] = "ML_BSSN::Kdot13",
[KDOT_YZ] = "ML_BSSN::Kdot23",
-#endif
};
/* mapping between the cactus grid values and interpolated values */
@@ -1093,7 +1092,8 @@ fail:
int qms_solver_init(QMSSolver **pctx,
cGH *cctkGH,
int basis_order_r, int basis_order_z,
- double outer_bound, double filter_power, double input_filter_power)
+ double outer_bound, double filter_power, double input_filter_power,
+ int ccz4)
{
QMSSolver *ctx;
QMSSolverPriv *s;
@@ -1219,10 +1219,18 @@ int qms_solver_init(QMSSolver **pctx,
s->interp_value_codes[i] = CCTK_VARIABLE_REAL;
}
- for (int i = 0; i < ARRAY_ELEMS(metric_vars); i++) {
- s->interp_vars_indices[i] = CCTK_VarIndex(metric_vars[i]);
- if (s->interp_vars_indices[i] < 0)
- CCTK_VWarn(0, __LINE__, __FILE__, CCTK_THORNSTRING, "Error getting the index of variable: %s\n", metric_vars[i]);
+ if (ccz4) {
+ for (int i = 0; i < ARRAY_ELEMS(metric_vars_ccz4); i++) {
+ s->interp_vars_indices[i] = CCTK_VarIndex(metric_vars_ccz4[i]);
+ if (s->interp_vars_indices[i] < 0)
+ CCTK_VWarn(0, __LINE__, __FILE__, CCTK_THORNSTRING, "Error getting the index of variable: %s\n", metric_vars_ccz4[i]);
+ }
+ } else {
+ for (int i = 0; i < ARRAY_ELEMS(metric_vars_bssn); i++) {
+ s->interp_vars_indices[i] = CCTK_VarIndex(metric_vars_bssn[i]);
+ if (s->interp_vars_indices[i] < 0)
+ CCTK_VWarn(0, __LINE__, __FILE__, CCTK_THORNSTRING, "Error getting the index of variable: %s\n", metric_vars_bssn[i]);
+ }
}
s->coord_system = CCTK_CoordSystemHandle("cart3d");