diff options
author | Barry Wardell <barry.wardell@gmail.com> | 2012-05-01 17:23:23 +0100 |
---|---|---|
committer | Barry Wardell <barry.wardell@gmail.com> | 2012-05-01 18:37:21 +0100 |
commit | 1fecccd15bdb93d92596541c455782c6c6efbabd (patch) | |
tree | f62a14d9347fbacd3d2ea473b6dad77cba538c74 /ML_CCZ4_Helper/src | |
parent | 6d8ba38ffa081c47e9e0e4de3ebdc57195089628 (diff) |
Add CCZ4 Helper thorn.
Diffstat (limited to 'ML_CCZ4_Helper/src')
-rw-r--r-- | ML_CCZ4_Helper/src/ExtrapolateGammas.c | 29 | ||||
-rw-r--r-- | ML_CCZ4_Helper/src/NewRad.c | 69 | ||||
-rw-r--r-- | ML_CCZ4_Helper/src/RegisterConstrained.c | 32 | ||||
-rw-r--r-- | ML_CCZ4_Helper/src/RegisterSlicing.c | 9 | ||||
-rw-r--r-- | ML_CCZ4_Helper/src/SelectBCsADMBase.c | 31 | ||||
-rw-r--r-- | ML_CCZ4_Helper/src/SetGroupTags.c | 77 | ||||
-rw-r--r-- | ML_CCZ4_Helper/src/make.code.defn | 2 |
7 files changed, 249 insertions, 0 deletions
diff --git a/ML_CCZ4_Helper/src/ExtrapolateGammas.c b/ML_CCZ4_Helper/src/ExtrapolateGammas.c new file mode 100644 index 0000000..efa08dd --- /dev/null +++ b/ML_CCZ4_Helper/src/ExtrapolateGammas.c @@ -0,0 +1,29 @@ +#include <cctk.h> +#include <cctk_Arguments.h> + +static void +extrap (cGH const * restrict cctkGH, + CCTK_REAL * restrict var); + +void +ML_CCZ4_ExtrapolateGammas (CCTK_ARGUMENTS) +{ + DECLARE_CCTK_ARGUMENTS; + + extrap (cctkGH, Xt1); + extrap (cctkGH, Xt2); + extrap (cctkGH, Xt3); + + extrap (cctkGH, A); + + extrap (cctkGH, B1); + extrap (cctkGH, B2); + extrap (cctkGH, B3); +} + +static void +extrap (cGH const * restrict const cctkGH, + CCTK_REAL * restrict const var) +{ + ExtrapolateGammas (cctkGH, var); +} diff --git a/ML_CCZ4_Helper/src/NewRad.c b/ML_CCZ4_Helper/src/NewRad.c new file mode 100644 index 0000000..756e5bf --- /dev/null +++ b/ML_CCZ4_Helper/src/NewRad.c @@ -0,0 +1,69 @@ +#include <math.h> + +#include <cctk.h> +#include <cctk_Arguments.h> +#include <cctk_Parameters.h> + +static void +newrad (cGH const * restrict cctkGH, + CCTK_REAL const * restrict var, + CCTK_REAL * restrict rhs, + CCTK_REAL var0, + CCTK_REAL v0); + +void +ML_CCZ4_NewRad (CCTK_ARGUMENTS) +{ + DECLARE_CCTK_ARGUMENTS; + DECLARE_CCTK_PARAMETERS; + + CCTK_REAL const v0 = sqrt (harmonicF); + + newrad (cctkGH, phi , phirhs , 0.0, v0 ); + + newrad (cctkGH, gt11 , gt11rhs , 1.0, 1.0); + newrad (cctkGH, gt12 , gt12rhs , 0.0, 1.0); + newrad (cctkGH, gt13 , gt13rhs , 0.0, 1.0); + newrad (cctkGH, gt22 , gt22rhs , 1.0, 1.0); + newrad (cctkGH, gt23 , gt23rhs , 0.0, 1.0); + newrad (cctkGH, gt33 , gt33rhs , 1.0, 1.0); + + newrad (cctkGH, Xt1 , Xt1rhs , 0.0, 1.0); + newrad (cctkGH, Xt2 , Xt2rhs , 0.0, 1.0); + newrad (cctkGH, Xt3 , Xt3rhs , 0.0, 1.0); + + newrad (cctkGH, trK , trKrhs , 0.0, v0 ); + + newrad (cctkGH, At11 , At11rhs , 0.0, 1.0); + newrad (cctkGH, At12 , At12rhs , 0.0, 1.0); + newrad (cctkGH, At13 , At13rhs , 0.0, 1.0); + newrad (cctkGH, At22 , At22rhs , 0.0, 1.0); + newrad (cctkGH, At23 , At23rhs , 0.0, 1.0); + newrad (cctkGH, At33 , At33rhs , 0.0, 1.0); + + newrad (cctkGH, alpha, alpharhs, 1.0, v0 ); + + newrad (cctkGH, A , Arhs , 0.0, v0 ); + + newrad (cctkGH, beta1, beta1rhs, 0.0, 1.0); + newrad (cctkGH, beta2, beta2rhs, 0.0, 1.0); + newrad (cctkGH, beta3, beta3rhs, 0.0, 1.0); + + newrad (cctkGH, B1 , B1rhs , 0.0, 1.0); + newrad (cctkGH, B2 , B2rhs , 0.0, 1.0); + newrad (cctkGH, B3 , B3rhs , 0.0, 1.0); + + newrad (cctkGH, Theta, Thetarhs, 0.0, 1.0); +} + +static void +newrad (cGH const * restrict const cctkGH, + CCTK_REAL const * restrict const var, + CCTK_REAL * restrict const rhs, + CCTK_REAL const var0, + CCTK_REAL const v0) +{ + DECLARE_CCTK_PARAMETERS; + + NewRad_Apply (cctkGH, var, rhs, var0, v0, radpower); +} diff --git a/ML_CCZ4_Helper/src/RegisterConstrained.c b/ML_CCZ4_Helper/src/RegisterConstrained.c new file mode 100644 index 0000000..ab906a3 --- /dev/null +++ b/ML_CCZ4_Helper/src/RegisterConstrained.c @@ -0,0 +1,32 @@ +#include <assert.h> +#include <stdlib.h> +#include <string.h> + +#include <cctk.h> +#include <cctk_Arguments.h> + +static void +register_constrained (char const * restrict const gn); + +void +ML_CCZ4_RegisterConstrained (CCTK_ARGUMENTS) +{ + DECLARE_CCTK_ARGUMENTS; + + register_constrained ("ADMBase::metric"); + register_constrained ("ADMBase::curv"); + register_constrained ("ADMBase::lapse"); + register_constrained ("ADMBase::shift"); + register_constrained ("ADMBase::dtlapse"); + register_constrained ("ADMBase::dtshift"); +} + +static void +register_constrained (char const * restrict const gn) +{ + assert (gn); + + int const gi = CCTK_GroupIndex (gn); + int const ierr = MoLRegisterConstrainedGroup (gi); + assert (! ierr); +} diff --git a/ML_CCZ4_Helper/src/RegisterSlicing.c b/ML_CCZ4_Helper/src/RegisterSlicing.c new file mode 100644 index 0000000..437e185 --- /dev/null +++ b/ML_CCZ4_Helper/src/RegisterSlicing.c @@ -0,0 +1,9 @@ +#include <cctk.h> +#include <Slicing.h> + +int +ML_CCZ4_RegisterSlicing (void) +{ + Einstein_RegisterSlicing ("ML_CCZ4"); + return 0; +} diff --git a/ML_CCZ4_Helper/src/SelectBCsADMBase.c b/ML_CCZ4_Helper/src/SelectBCsADMBase.c new file mode 100644 index 0000000..10c01f9 --- /dev/null +++ b/ML_CCZ4_Helper/src/SelectBCsADMBase.c @@ -0,0 +1,31 @@ +#include <assert.h> + +#include <cctk.h> +#include <cctk_Arguments.h> +#include <cctk_Parameters.h> + +static void +select_bcs (cGH const * restrict cctkGH, char const * restrict gn); + +void +ML_CCZ4_SelectBCsADMBase (CCTK_ARGUMENTS) +{ + DECLARE_CCTK_ARGUMENTS; + + select_bcs (cctkGH, "ADMBase::metric"); + select_bcs (cctkGH, "ADMBase::curv"); + select_bcs (cctkGH, "ADMBase::lapse"); + select_bcs (cctkGH, "ADMBase::shift"); + select_bcs (cctkGH, "ADMBase::dtlapse"); + select_bcs (cctkGH, "ADMBase::dtshift"); +} + +static void +select_bcs (cGH const * restrict const cctkGH, char const * restrict const gn) +{ + DECLARE_CCTK_PARAMETERS; + + int const ierr = Boundary_SelectGroupForBC + (cctkGH, CCTK_ALL_FACES, boundary_width, -1, gn, "none"); + assert (! ierr); +} diff --git a/ML_CCZ4_Helper/src/SetGroupTags.c b/ML_CCZ4_Helper/src/SetGroupTags.c new file mode 100644 index 0000000..00878ee --- /dev/null +++ b/ML_CCZ4_Helper/src/SetGroupTags.c @@ -0,0 +1,77 @@ +#include <cctk.h> +#include <cctk_Parameters.h> +#include <util_Table.h> + +#include <assert.h> + +static void +set_group_tags (int const checkpoint, + int const persistent, + int const prolongate, + char const * restrict const gn); + +int +ML_CCZ4_SetGroupTags (void) +{ + DECLARE_CCTK_PARAMETERS; + + int const checkpoint = timelevels > 1; + set_group_tags (checkpoint, checkpoint, 1, "ADMBase::metric"); + set_group_tags (checkpoint, checkpoint, 1, "ADMBase::curv"); + set_group_tags (checkpoint, checkpoint, 1, "ADMBase::lapse"); + set_group_tags (checkpoint, checkpoint, 1, "ADMBase::shift"); + set_group_tags (checkpoint, checkpoint, 1, "ADMBase::dtlapse"); + set_group_tags (checkpoint, checkpoint, 1, "ADMBase::dtshift"); + + set_group_tags (checkpoint, checkpoint, 0, "ML_CCZ4::ML_cons_detg"); + set_group_tags (checkpoint, checkpoint, 0, "ML_CCZ4::ML_cons_Gamma"); + set_group_tags (checkpoint, checkpoint, 0, "ML_CCZ4::ML_cons_traceA"); + set_group_tags (checkpoint, checkpoint, 0, "ML_CCZ4::ML_Ham"); + set_group_tags (checkpoint, checkpoint, 0, "ML_CCZ4::ML_mom"); + + int const rhs_checkpoint = rhs_timelevels > 1; + set_group_tags (rhs_checkpoint, rhs_checkpoint, 0, "ML_CCZ4::ML_log_confacrhs"); + set_group_tags (rhs_checkpoint, rhs_checkpoint, 0, "ML_CCZ4::ML_metricrhs"); + set_group_tags (rhs_checkpoint, rhs_checkpoint, 0, "ML_CCZ4::ML_Gammarhs"); + set_group_tags (rhs_checkpoint, rhs_checkpoint, 0, "ML_CCZ4::ML_trace_curvrhs"); + set_group_tags (rhs_checkpoint, rhs_checkpoint, 0, "ML_CCZ4::ML_curvrhs"); + set_group_tags (rhs_checkpoint, rhs_checkpoint, 0, "ML_CCZ4::ML_lapserhs"); + set_group_tags (rhs_checkpoint, rhs_checkpoint, 0, "ML_CCZ4::ML_dtlapserhs"); + set_group_tags (rhs_checkpoint, rhs_checkpoint, 0, "ML_CCZ4::ML_shiftrhs"); + set_group_tags (rhs_checkpoint, rhs_checkpoint, 0, "ML_CCZ4::ML_dtshiftrhs"); + set_group_tags (rhs_checkpoint, rhs_checkpoint, 0, "ML_CCZ4::ML_Thetarhs"); + + return 0; +} + +static void +set_group_tags (int const checkpoint, + int const persistent, + int const prolongate, + char const * restrict const gn) +{ + assert (gn); + + int const gi = CCTK_GroupIndex (gn); + assert (gi >= 0); + + int const table = CCTK_GroupTagsTableI (gi); + assert (table >= 0); + + if (! checkpoint) { + int const ierr = Util_TableSetString (table, "no", "Checkpoint"); + assert (! ierr); + } + + if (! persistent) { + int const ierr = Util_TableSetString (table, "no", "Persistent"); + assert (! ierr); + } + + if (! prolongate) { + int const iret = Util_TableDeleteKey (table, "ProlongationParameter"); + assert (iret == 0 || iret == UTIL_ERROR_TABLE_NO_SUCH_KEY); + int const ierr = Util_TableSetString (table, "none", "Prolongation"); + assert (! ierr); + } +} diff --git a/ML_CCZ4_Helper/src/make.code.defn b/ML_CCZ4_Helper/src/make.code.defn new file mode 100644 index 0000000..a3ac433 --- /dev/null +++ b/ML_CCZ4_Helper/src/make.code.defn @@ -0,0 +1,2 @@ +# -*-Makefile-*- +SRCS = ExtrapolateGammas.c NewRad.c RegisterConstrained.c RegisterSlicing.c SelectBCsADMBase.c SetGroupTags.c |