diff options
Diffstat (limited to 'src/SetSym.c')
-rw-r--r-- | src/SetSym.c | 163 |
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); } |