diff options
Diffstat (limited to 'src/qms_solve.c')
-rw-r--r-- | src/qms_solve.c | 26 |
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"); |