aboutsummaryrefslogtreecommitdiff
path: root/src/SetSym.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/SetSym.c')
-rw-r--r--src/SetSym.c163
1 files changed, 106 insertions, 57 deletions
diff --git a/src/SetSym.c b/src/SetSym.c
index 423b0b0..febd1b4 100644
--- a/src/SetSym.c
+++ b/src/SetSym.c
@@ -81,27 +81,53 @@ Cartoon_SetSym_Einstein(CCTK_ARGUMENTS)
DECLARE_CCTK_ARGUMENTS
int one;
+ int testsystem;
char* evo_sys;
CCTK_INFO("Resetting cartoon boundary symmetries for Einstein variables");
- ResetSym(cctkGH, "einstein::gxx");
- ResetSym(cctkGH, "einstein::gyy");
- ResetSym(cctkGH, "einstein::gzz");
- ResetSym(cctkGH, "einstein::gxy");
- ResetSym(cctkGH, "einstein::gxz");
- ResetSym(cctkGH, "einstein::gyz");
- ResetSym(cctkGH, "einstein::kxx");
- ResetSym(cctkGH, "einstein::kyy");
- ResetSym(cctkGH, "einstein::kzz");
- ResetSym(cctkGH, "einstein::kxy");
- ResetSym(cctkGH, "einstein::kxz");
- ResetSym(cctkGH, "einstein::kyz");
- ResetSym(cctkGH, "einstein::alp");
- ResetSym(cctkGH, "einstein::betax");
- ResetSym(cctkGH, "einstein::betay");
- ResetSym(cctkGH, "einstein::betaz");
- ResetSym(cctkGH, "einstein::emask");
+ /* Handle both old and new einstein systems */
+ if (CCTK_GroupIndex("einstein::metric") > -1)
+ {
+ ResetSym(cctkGH, "einstein::gxx");
+ ResetSym(cctkGH, "einstein::gyy");
+ ResetSym(cctkGH, "einstein::gzz");
+ ResetSym(cctkGH, "einstein::gxy");
+ ResetSym(cctkGH, "einstein::gxz");
+ ResetSym(cctkGH, "einstein::gyz");
+ ResetSym(cctkGH, "einstein::kxx");
+ ResetSym(cctkGH, "einstein::kyy");
+ ResetSym(cctkGH, "einstein::kzz");
+ ResetSym(cctkGH, "einstein::kxy");
+ ResetSym(cctkGH, "einstein::kxz");
+ ResetSym(cctkGH, "einstein::kyz");
+ ResetSym(cctkGH, "einstein::alp");
+ ResetSym(cctkGH, "einstein::betax");
+ ResetSym(cctkGH, "einstein::betay");
+ ResetSym(cctkGH, "einstein::betaz");
+ ResetSym(cctkGH, "einstein::emask");
+ }
+ else if (CCTK_GroupIndex("admbase::metric") > -1)
+ {
+ ResetSym(cctkGH, "admbase::gxx");
+ ResetSym(cctkGH, "admbase::gyy");
+ ResetSym(cctkGH, "admbase::gzz");
+ ResetSym(cctkGH, "admbase::gxy");
+ ResetSym(cctkGH, "admbase::gxz");
+ ResetSym(cctkGH, "admbase::gyz");
+ ResetSym(cctkGH, "admbase::kxx");
+ ResetSym(cctkGH, "admbase::kyy");
+ ResetSym(cctkGH, "admbase::kzz");
+ ResetSym(cctkGH, "admbase::kxy");
+ ResetSym(cctkGH, "admbase::kxz");
+ ResetSym(cctkGH, "admbase::kyz");
+ ResetSym(cctkGH, "admbase::alp");
+ ResetSym(cctkGH, "admbase::betax");
+ ResetSym(cctkGH, "admbase::betay");
+ ResetSym(cctkGH, "admbase::betaz");
+ ResetSym(cctkGH, "spacemask::emask");
+ }
+
}
/*@@
@@ -121,52 +147,70 @@ Cartoon_SetSym_BSSN(CCTK_ARGUMENTS)
DECLARE_CCTK_ARGUMENTS
DECLARE_CCTK_PARAMETERS
+ int ret=0;
char* method;
char* evolution_system;
+ char* evolution_method;
evolution_system = CCTK_ParameterValString("evolution_system", "Einstein");
-
- if (!CCTK_Equals(evolution_system, "adm_bssn"))
+ evolution_method = CCTK_ParameterValString("evolution_method", "ADMBase");
+
+ if (evolution_system)
+ {
+ ret = CCTK_Equals(evolution_system, "adm_bssn");
+ }
+ else if (evolution_method)
+ {
+ ret = CCTK_Equals(evolution_method, "adm_bssn");
+ }
+
+ if (ret)
+ {
+
+ CCTK_INFO("Resetting cartoon boundary symmetries for ADM_BSSN variables");
+
+ ResetSym(cctkGH, "adm_bssn::ADM_BS_dtalp");
+ ResetSym(cctkGH, "adm_bssn::ADM_BS_phi");
+ ResetSym(cctkGH, "adm_bssn::ADM_BS_gxx");
+ ResetSym(cctkGH, "adm_bssn::ADM_BS_gyy");
+ ResetSym(cctkGH, "adm_bssn::ADM_BS_gzz");
+ ResetSym(cctkGH, "adm_bssn::ADM_BS_K");
+ ResetSym(cctkGH, "adm_bssn::ADM_BS_Axx");
+ ResetSym(cctkGH, "adm_bssn::ADM_BS_Ayy");
+ ResetSym(cctkGH, "adm_bssn::ADM_BS_Azz");
+ ResetSym(cctkGH, "adm_bssn::ADM_BS_mask");
+ ResetSym(cctkGH, "adm_bssn::ADM_BS_gxy");
+ ResetSym(cctkGH, "adm_bssn::ADM_BS_Axy");
+ ResetSym(cctkGH, "adm_bssn::ADM_BS_gxz");
+ ResetSym(cctkGH, "adm_bssn::ADM_BS_Axz");
+ ResetSym(cctkGH, "adm_bssn::ADM_BS_gyz");
+ ResetSym(cctkGH, "adm_bssn::ADM_BS_Ayz");
+ ResetSym(cctkGH, "adm_bssn::ADM_BS_Gx");
+ ResetSym(cctkGH, "adm_bssn::ADM_BS_Bx");
+ ResetSym(cctkGH, "adm_bssn::ADM_BS_dirx");
+ ResetSym(cctkGH, "adm_bssn::ADM_BS_Gy");
+ ResetSym(cctkGH, "adm_bssn::ADM_BS_By");
+ ResetSym(cctkGH, "adm_bssn::ADM_BS_diry");
+ ResetSym(cctkGH, "adm_bssn::ADM_BS_Gz");
+ ResetSym(cctkGH, "adm_bssn::ADM_BS_Bz");
+ ResetSym(cctkGH, "adm_bssn::ADM_BS_dirz");
+
+ if (CCTK_GroupIndex("einstein::shift") > -1)
{
- free(evolution_system);
- return;
+ ResetSym(cctkGH, "einstein::betax");
+ ResetSym(cctkGH, "einstein::betay");
+ ResetSym(cctkGH, "einstein::betaz");
+ }
+ else if (CCTK_GroupIndex("admbase::shift") > -1)
+ {
+ ResetSym(cctkGH, "admbase::betax");
+ ResetSym(cctkGH, "admbase::betay");
+ ResetSym(cctkGH, "admbase::betaz");
}
- free(evolution_system);
- CCTK_INFO("Resetting cartoon boundary symmetries for ADM_BSSN variables");
-
- ResetSym(cctkGH, "adm_bssn::ADM_BS_dtalp");
- ResetSym(cctkGH, "adm_bssn::ADM_BS_phi");
- ResetSym(cctkGH, "adm_bssn::ADM_BS_gxx");
- ResetSym(cctkGH, "adm_bssn::ADM_BS_gyy");
- ResetSym(cctkGH, "adm_bssn::ADM_BS_gzz");
- ResetSym(cctkGH, "adm_bssn::ADM_BS_K");
- ResetSym(cctkGH, "adm_bssn::ADM_BS_Axx");
- ResetSym(cctkGH, "adm_bssn::ADM_BS_Ayy");
- ResetSym(cctkGH, "adm_bssn::ADM_BS_Azz");
- ResetSym(cctkGH, "adm_bssn::ADM_BS_mask");
- ResetSym(cctkGH, "adm_bssn::ADM_BS_gxy");
- ResetSym(cctkGH, "adm_bssn::ADM_BS_Axy");
- ResetSym(cctkGH, "adm_bssn::ADM_BS_gxz");
- ResetSym(cctkGH, "adm_bssn::ADM_BS_Axz");
- ResetSym(cctkGH, "adm_bssn::ADM_BS_gyz");
- ResetSym(cctkGH, "adm_bssn::ADM_BS_Ayz");
- ResetSym(cctkGH, "einstein::betax");
- ResetSym(cctkGH, "adm_bssn::ADM_BS_Gx");
- ResetSym(cctkGH, "adm_bssn::ADM_BS_Bx");
- ResetSym(cctkGH, "adm_bssn::ADM_BS_dirx");
- ResetSym(cctkGH, "einstein::betay");
- ResetSym(cctkGH, "adm_bssn::ADM_BS_Gy");
- ResetSym(cctkGH, "adm_bssn::ADM_BS_By");
- ResetSym(cctkGH, "adm_bssn::ADM_BS_diry");
- ResetSym(cctkGH, "einstein::betaz");
- ResetSym(cctkGH, "adm_bssn::ADM_BS_Gz");
- ResetSym(cctkGH, "adm_bssn::ADM_BS_Bz");
- ResetSym(cctkGH, "adm_bssn::ADM_BS_dirz");
-
- method = CCTK_ParameterValString("method", "ADM_BSSN");
-
- if (CCTK_Equals(method, "stagleap"))
+ method = CCTK_ParameterValString("method", "ADM_BSSN");
+
+ if (CCTK_Equals(method, "stagleap"))
{
ResetSym(cctkGH, "adm_bssn::ADM_BS_K_stag");
ResetSym(cctkGH, "adm_bssn::ADM_BS_Axx_stag");
@@ -176,6 +220,11 @@ Cartoon_SetSym_BSSN(CCTK_ARGUMENTS)
ResetSym(cctkGH, "adm_bssn::ADM_BS_Axz_stag");
ResetSym(cctkGH, "adm_bssn::ADM_BS_Ayz_stag");
}
- free(method);
+ free(method);
+
+ }
+
+ free(evolution_system);
+ free(evolution_method);
}