aboutsummaryrefslogtreecommitdiff
path: root/Examples
diff options
context:
space:
mode:
authorIan Hinder <ian.hinder@aei.mpg.de>2012-11-14 19:53:02 +0100
committerIan Hinder <ian.hinder@aei.mpg.de>2012-11-14 19:53:02 +0100
commitcda73baf0fbca06d75e51ad28ed708d7a087a849 (patch)
tree4fac3164d827c0713877954ac0730f166714a5ad /Examples
parent72b0c57fbcbbc71f55464dfdf751dbdb0b45fcb8 (diff)
Regenerate examples
Diffstat (limited to 'Examples')
-rw-r--r--Examples/AdvectCaKernel/cakernel.ccl15
-rw-r--r--Examples/AdvectCaKernel/configuration.ccl1
-rw-r--r--Examples/AdvectCaKernel/interface.ccl14
-rw-r--r--Examples/AdvectCaKernel/schedule.ccl27
-rw-r--r--Examples/AdvectCaKernel/src/CaKernel__initial_gaussian.code7
-rw-r--r--Examples/AdvectCaKernel/src/make.code.defn7
-rw-r--r--Examples/Burgers/param.ccl6
-rw-r--r--Examples/Burgers/schedule.ccl26
-rw-r--r--Examples/Burgers/src/burgers_flux_1.cc21
-rw-r--r--Examples/Burgers/src/burgers_initial_shock.cc20
-rw-r--r--Examples/Burgers/src/burgers_initial_sine.cc22
-rw-r--r--Examples/Burgers/src/burgers_reconstruct_1.cc25
-rw-r--r--Examples/Burgers/src/burgers_rhs_1.cc20
-rw-r--r--Examples/Burgers/src/burgers_zero_rhs.cc19
-rw-r--r--Examples/Burgers/src/make.code.defn2
-rw-r--r--Examples/EM/param.ccl6
-rw-r--r--Examples/EM/schedule.ccl47
-rw-r--r--Examples/EM/src/Differencing.h144
-rw-r--r--Examples/EM/src/EM_constraints.cc37
-rw-r--r--Examples/EM/src/EM_energy.cc37
-rw-r--r--Examples/EM/src/EM_evol.cc38
-rw-r--r--Examples/EM/src/EM_initial.cc43
-rw-r--r--Examples/EM/src/make.code.defn2
-rw-r--r--Examples/Euler/param.ccl6
-rw-r--r--Examples/Euler/schedule.ccl118
-rw-r--r--Examples/Euler/src/euler_conserved.cc36
-rw-r--r--Examples/Euler/src/euler_conserved_flux_1.cc42
-rw-r--r--Examples/Euler/src/euler_flux_1.cc45
-rw-r--r--Examples/Euler/src/euler_initial_shock.cc34
-rw-r--r--Examples/Euler/src/euler_primitives.cc36
-rw-r--r--Examples/Euler/src/euler_reconstruct_1.cc39
-rw-r--r--Examples/Euler/src/euler_rhs_1.cc36
-rw-r--r--Examples/Euler/src/euler_zero_rhs.cc33
-rw-r--r--Examples/Euler/src/make.code.defn2
-rw-r--r--Examples/EulerAuto/schedule.ccl268
-rw-r--r--Examples/EulerAuto/src/eulerauto_cons_calc_conserved.cc24
-rw-r--r--Examples/EulerAuto/src/eulerauto_cons_calc_flux_1.cc33
-rw-r--r--Examples/EulerAuto/src/eulerauto_cons_calc_flux_2.cc33
-rw-r--r--Examples/EulerAuto/src/eulerauto_cons_calc_flux_3.cc33
-rw-r--r--Examples/EulerAuto/src/eulerauto_cons_calc_intercell_conserved_1.cc28
-rw-r--r--Examples/EulerAuto/src/eulerauto_cons_calc_intercell_conserved_2.cc28
-rw-r--r--Examples/EulerAuto/src/eulerauto_cons_calc_intercell_conserved_3.cc28
-rw-r--r--Examples/EulerAuto/src/eulerauto_cons_calc_primitives.cc24
-rw-r--r--Examples/EulerAuto/src/eulerauto_cons_calc_reconstruct_1.cc26
-rw-r--r--Examples/EulerAuto/src/eulerauto_cons_calc_reconstruct_2.cc26
-rw-r--r--Examples/EulerAuto/src/eulerauto_cons_calc_reconstruct_3.cc26
-rw-r--r--Examples/EulerAuto/src/eulerauto_cons_calc_rhs_1.cc26
-rw-r--r--Examples/EulerAuto/src/eulerauto_cons_calc_rhs_2.cc26
-rw-r--r--Examples/EulerAuto/src/eulerauto_cons_calc_rhs_3.cc26
-rw-r--r--Examples/EulerAuto/src/eulerauto_cons_calc_zero_rhs.cc21
-rw-r--r--Examples/EulerAuto/src/eulerauto_initial_shock.cc22
-rw-r--r--Examples/EulerAuto/src/make.code.defn2
-rw-r--r--Examples/EulerSR/schedule.ccl295
-rw-r--r--Examples/EulerSR/src/eulersr_cons_calc_conserved.cc27
-rw-r--r--Examples/EulerSR/src/eulersr_cons_calc_flux_1.cc31
-rw-r--r--Examples/EulerSR/src/eulersr_cons_calc_flux_2.cc31
-rw-r--r--Examples/EulerSR/src/eulersr_cons_calc_flux_3.cc31
-rw-r--r--Examples/EulerSR/src/eulersr_cons_calc_intercell_conserved_1.cc31
-rw-r--r--Examples/EulerSR/src/eulersr_cons_calc_intercell_conserved_2.cc31
-rw-r--r--Examples/EulerSR/src/eulersr_cons_calc_intercell_conserved_3.cc31
-rw-r--r--Examples/EulerSR/src/eulersr_cons_calc_primitives.cc43
-rw-r--r--Examples/EulerSR/src/eulersr_cons_calc_reconstruct_1.cc26
-rw-r--r--Examples/EulerSR/src/eulersr_cons_calc_reconstruct_2.cc26
-rw-r--r--Examples/EulerSR/src/eulersr_cons_calc_reconstruct_3.cc26
-rw-r--r--Examples/EulerSR/src/eulersr_cons_calc_rhs_1.cc26
-rw-r--r--Examples/EulerSR/src/eulersr_cons_calc_rhs_2.cc26
-rw-r--r--Examples/EulerSR/src/eulersr_cons_calc_rhs_3.cc26
-rw-r--r--Examples/EulerSR/src/eulersr_cons_calc_zero_rhs.cc21
-rw-r--r--Examples/EulerSR/src/eulersr_initial_shock.cc22
-rw-r--r--Examples/EulerSR/src/make.code.defn2
-rw-r--r--Examples/Laplace/schedule.ccl23
-rw-r--r--Examples/Laplace/src/Laplace_boundary.cc23
-rw-r--r--Examples/Laplace/src/Laplace_initial.cc26
-rw-r--r--Examples/Laplace/src/Laplace_initial_boundary.cc26
-rw-r--r--Examples/Laplace/src/Laplace_relax.cc24
-rw-r--r--Examples/Laplace/src/make.code.defn2
-rw-r--r--Examples/Makefile5
-rw-r--r--Examples/SimpleWave/schedule.ccl19
-rw-r--r--Examples/SimpleWave/src/calc_rhs.cc20
-rw-r--r--Examples/SimpleWave/src/initial_sine.cc24
-rw-r--r--Examples/SimpleWave/src/make.code.defn2
-rw-r--r--Examples/SimpleWaveOpenCL/cakernel.ccl1
-rw-r--r--Examples/SimpleWaveOpenCL/schedule.ccl27
-rw-r--r--Examples/SimpleWaveOpenCL/src/Differencing.h2
-rw-r--r--Examples/SimpleWaveOpenCL/src/calc_rhs.cc36
-rw-r--r--Examples/SimpleWaveOpenCL/src/initial_sine.cc40
-rw-r--r--Examples/SimpleWaveOpenCL/src/make.code.defn2
-rw-r--r--Examples/Wave/param.ccl6
-rw-r--r--Examples/Wave/schedule.ccl57
-rw-r--r--Examples/Wave/src/Differencing.h116
-rw-r--r--Examples/Wave/src/make.code.defn2
-rw-r--r--Examples/Wave/src/wave_boundary.cc42
-rw-r--r--Examples/Wave/src/wave_calc_errors.cc36
-rw-r--r--Examples/Wave/src/wave_calc_norm.cc36
-rw-r--r--Examples/Wave/src/wave_evolve.cc35
-rw-r--r--Examples/Wave/src/wave_exact_gaussian.cc55
-rw-r--r--Examples/Wave/src/wave_exact_sine.cc39
-rw-r--r--Examples/Wave/src/wave_import_exact.cc35
-rw-r--r--Examples/WaveCaKernel/cakernel.ccl87
-rw-r--r--Examples/WaveCaKernel/configuration.ccl2
-rw-r--r--Examples/WaveCaKernel/interface.ccl3
-rw-r--r--Examples/WaveCaKernel/schedule.ccl80
-rw-r--r--Examples/WaveCaKernel/src/CaKernel__calc_bound_rhs.code6
-rw-r--r--Examples/WaveCaKernel/src/CaKernel__calc_rhs_2.code6
-rw-r--r--Examples/WaveCaKernel/src/CaKernel__calc_rhs_4.code6
-rw-r--r--Examples/WaveCaKernel/src/CaKernel__copy_to_device.code6
-rw-r--r--Examples/WaveCaKernel/src/initial_gaussian.cc8
l---------Examples/WaveCaKernel/test2
-rw-r--r--Examples/WaveHost/schedule.ccl52
-rw-r--r--Examples/WaveHost/src/calc_bound_rhs.cc8
-rw-r--r--Examples/WaveHost/src/calc_rhs_2.cc8
-rw-r--r--Examples/WaveHost/src/calc_rhs_4.cc8
-rw-r--r--Examples/WaveHost/src/initial_gaussian.cc8
113 files changed, 2109 insertions, 1407 deletions
diff --git a/Examples/AdvectCaKernel/cakernel.ccl b/Examples/AdvectCaKernel/cakernel.ccl
index ddec99a..058f48a 100644
--- a/Examples/AdvectCaKernel/cakernel.ccl
+++ b/Examples/AdvectCaKernel/cakernel.ccl
@@ -1,15 +1,6 @@
-CCTK_CUDA_KERNEL initial_gaussian TYPE=gpu_cuda/3dblock STENCIL="0,0,0,0,0,0" TILE="8,8,8" SHARECODE=yes
+CCTK_CUDA_KERNEL initial_gaussian TYPE=gpu_cuda/3dblock TILE="8,8,8" SHARECODE=yes STENCIL="0,0,0,0,0,0"
{
- CCTK_CUDA_KERNEL_VARIABLE cached=yes intent=out
- {
- phi
- }
- "phi"
-
- CCTK_CUDA_KERNEL_VARIABLE cached=yes intent=in
- {
- x
- }
- "x"
+ CCTK_CUDA_KERNEL_VARIABLE cached=no intent=out {phi} "phi"
+ CCTK_CUDA_KERNEL_VARIABLE cached=no intent=in {x} "x"
}
diff --git a/Examples/AdvectCaKernel/configuration.ccl b/Examples/AdvectCaKernel/configuration.ccl
index 0a66ec2..6d94724 100644
--- a/Examples/AdvectCaKernel/configuration.ccl
+++ b/Examples/AdvectCaKernel/configuration.ccl
@@ -4,3 +4,4 @@ REQUIRES GenericFD
OPTIONAL LoopControl
{
}
+REQUIRES CUDA MPI
diff --git a/Examples/AdvectCaKernel/interface.ccl b/Examples/AdvectCaKernel/interface.ccl
index beec223..bac17d7 100644
--- a/Examples/AdvectCaKernel/interface.ccl
+++ b/Examples/AdvectCaKernel/interface.ccl
@@ -2,13 +2,14 @@
implements: AdvectCaKernel
-inherits: Grid GenericFD Boundary
+inherits: Grid GenericFD Boundary Accelerator
USES INCLUDE: GenericFD.h
USES INCLUDE: Symmetry.h
USES INCLUDE: sbp_calc_coeffs.h
+USES INCLUDE: CaCUDALib_driver_support.h
USES INCLUDE: Boundary.h
USES INCLUDE: loopcontrol.h
@@ -32,3 +33,14 @@ CCTK_REAL phi_g type=GF timelevels=1 tags=''
{
phi
} "phi_g"
+
+# These functions are provided by the CaKernel thorn
+
+CCTK_INT FUNCTION Device_RegisterMem(CCTK_POINTER IN cctkGH, CCTK_INT IN vi, CCTK_INT IN num_tls)
+REQUIRES FUNCTION Device_RegisterMem
+
+CCTK_INT FUNCTION Device_UnRegisterMem(CCTK_POINTER IN cctkGH, CCTK_INT IN vi)
+REQUIRES FUNCTION Device_UnRegisterMem
+
+CCTK_POINTER FUNCTION Device_GetVarI (CCTK_POINTER IN cctkGH, CCTK_INT IN vi, CCTK_INT IN num_tls)
+REQUIRES FUNCTION Device_GetVarI
diff --git a/Examples/AdvectCaKernel/schedule.ccl b/Examples/AdvectCaKernel/schedule.ccl
index b83b7b8..f0cafb4 100644
--- a/Examples/AdvectCaKernel/schedule.ccl
+++ b/Examples/AdvectCaKernel/schedule.ccl
@@ -12,21 +12,18 @@ schedule AdvectCaKernel_Startup at STARTUP
OPTIONS: meta
} "create banner"
-schedule AdvectCaKernel_RegisterVars in MoL_Register
-{
- LANG: C
- OPTIONS: meta
-} "Register Variables for MoL"
-
schedule AdvectCaKernel_RegisterSymmetries in SymmetryRegister
{
LANG: C
OPTIONS: meta
} "register symmetries"
-schedule CAKERNEL_Launch_initial_gaussian AT INITIAL
+schedule CAKERNEL_Launch_initial_gaussian as initial_gaussian AT INITIAL
{
LANG: C
+ TAGS: Device=1
+ READS: grid::x
+ WRITES: AdvectCaKernel::phi
} "initial_gaussian"
schedule AdvectCaKernel_SelectBoundConds in MoL_PostStep
@@ -41,17 +38,19 @@ schedule AdvectCaKernel_CheckBoundaries at BASEGRID
OPTIONS: meta
} "check boundaries treatment"
-schedule CaKernel_CopyFromDev at ANALYSIS
+schedule AdvectCaKernel_RegisterVars in MoL_Register
+{
+ LANG: C
+ OPTIONS: meta
+} "Register Variables for MoL"
+
+schedule AdvectCaKernel_Init in CCTK_BASEGRID after Accelerator_SetDevice
{
LANG: C
-} "Copy variables from devices"
+ OPTIONS: local
+} "Initialize CUDA Device"
schedule group ApplyBCs as AdvectCaKernel_ApplyBCs in MoL_PostStep after AdvectCaKernel_SelectBoundConds
{
# no language specified
} "Apply boundary conditions controlled by thorn Boundary"
-
-
-############################################################
-#CAKERNEL AUTO GENERATED PART. DO NOT EDIT BELOW THIS POINT#
-############################################################
diff --git a/Examples/AdvectCaKernel/src/CaKernel__initial_gaussian.code b/Examples/AdvectCaKernel/src/CaKernel__initial_gaussian.code
index 19ecad8..c239ee0 100644
--- a/Examples/AdvectCaKernel/src/CaKernel__initial_gaussian.code
+++ b/Examples/AdvectCaKernel/src/CaKernel__initial_gaussian.code
@@ -3,15 +3,16 @@
#include "Differencing.h"
#include "GenericFD.h"
+#undef KRANC_GFOFFSET3D
#define KRANC_GFOFFSET3D(u,i,j,k) I3D(u,i,j,k)
/* Define macros used in calculations */
#define INITVALUE (42)
-#define QAD(x) (SQR(SQR(x)))
-#define INV(x) ((1.0) / (x))
+#define INV(x) ((CCTK_REAL)1.0 / (x))
#define SQR(x) ((x) * (x))
-#define CUB(x) ((x) * (x) * (x))
+#define CUB(x) ((x) * SQR(x))
+#define QAD(x) (SQR(SQR(x)))
CAKERNEL_initial_gaussian_Begin
diff --git a/Examples/AdvectCaKernel/src/make.code.defn b/Examples/AdvectCaKernel/src/make.code.defn
index 9f29474..b3329bd 100644
--- a/Examples/AdvectCaKernel/src/make.code.defn
+++ b/Examples/AdvectCaKernel/src/make.code.defn
@@ -1,8 +1,3 @@
# File produced by Kranc
-SRCS = Startup.cc RegisterMoL.cc RegisterSymmetries.cc Boundaries.cc
-
-
-############################################################
-#CAKERNEL AUTO GENERATED PART. DO NOT EDIT BELOW THIS POINT#
-############################################################
+SRCS = Startup.cc RegisterSymmetries.cc RegisterMoL.cc Boundaries.cc
diff --git a/Examples/Burgers/param.ccl b/Examples/Burgers/param.ccl
index 0b3226d..3a53840 100644
--- a/Examples/Burgers/param.ccl
+++ b/Examples/Burgers/param.ccl
@@ -52,12 +52,6 @@ CCTK_REAL alpha "alpha"
"*:*" :: ""
} 0
-restricted:
-CCTK_REAL hlleAlpha "hlleAlpha"
-{
- "*:*" :: ""
-} 0
-
private:
KEYWORD initial_data "initial_data"
{
diff --git a/Examples/Burgers/schedule.ccl b/Examples/Burgers/schedule.ccl
index 2384e1a..a52f5d3 100644
--- a/Examples/Burgers/schedule.ccl
+++ b/Examples/Burgers/schedule.ccl
@@ -48,12 +48,6 @@ schedule Burgers_Startup at STARTUP
OPTIONS: meta
} "create banner"
-schedule Burgers_RegisterVars in MoL_Register
-{
- LANG: C
- OPTIONS: meta
-} "Register Variables for MoL"
-
schedule Burgers_RegisterSymmetries in SymmetryRegister
{
LANG: C
@@ -66,6 +60,8 @@ if (CCTK_EQUALS(initial_data, "sine"))
schedule burgers_initial_sine at CCTK_INITIAL as burgers_initial
{
LANG: C
+ READS: grid::x
+ WRITES: Burgers::u
} "burgers_initial_sine"
}
@@ -75,12 +71,15 @@ if (CCTK_EQUALS(initial_data, "shock"))
schedule burgers_initial_shock at CCTK_INITIAL as burgers_initial
{
LANG: C
+ READS: grid::x
+ WRITES: Burgers::u
} "burgers_initial_shock"
}
schedule burgers_zero_rhs in MoL_CalcRHS
{
LANG: C
+ WRITES: Burgers::urhs
} "burgers_zero_rhs"
schedule group burgers_reconstruct_1_group in MoL_CalcRHS after burgers_zero_rhs
@@ -91,6 +90,9 @@ schedule group burgers_reconstruct_1_group in MoL_CalcRHS after burgers_zero_rhs
schedule burgers_reconstruct_1 in burgers_reconstruct_1_group
{
LANG: C
+ READS: Burgers::u
+ WRITES: Burgers::uLeft
+ WRITES: Burgers::uR
} "burgers_reconstruct_1"
schedule burgers_reconstruct_1_SelectBCs in burgers_reconstruct_1_bc_group
@@ -124,6 +126,9 @@ schedule group burgers_flux_1_group in MoL_CalcRHS after burgers_reconstruct_1
schedule burgers_flux_1 in burgers_flux_1_group
{
LANG: C
+ READS: Burgers::uLeft
+ READS: Burgers::uR
+ WRITES: Burgers::uF
} "burgers_flux_1"
schedule burgers_flux_1_SelectBCs in burgers_flux_1_bc_group
@@ -151,6 +156,9 @@ schedule group burgers_flux_1_bc_group in MoL_PseudoEvolutionBoundaries after Mo
schedule burgers_rhs_1 in MoL_CalcRHS after burgers_flux_1
{
LANG: C
+ READS: Burgers::uF
+ READS: Burgers::urhs
+ WRITES: Burgers::urhs
} "burgers_rhs_1"
schedule Burgers_SelectBoundConds in MoL_PostStep
@@ -166,6 +174,12 @@ schedule Burgers_CheckBoundaries at BASEGRID
OPTIONS: meta
} "check boundaries treatment"
+schedule Burgers_RegisterVars in MoL_Register
+{
+ LANG: C
+ OPTIONS: meta
+} "Register Variables for MoL"
+
schedule group ApplyBCs as Burgers_ApplyBCs in MoL_PostStep after Burgers_SelectBoundConds
{
# no language specified
diff --git a/Examples/Burgers/src/burgers_flux_1.cc b/Examples/Burgers/src/burgers_flux_1.cc
index 947110f..a0a2300 100644
--- a/Examples/Burgers/src/burgers_flux_1.cc
+++ b/Examples/Burgers/src/burgers_flux_1.cc
@@ -17,10 +17,10 @@
/* Define macros used in calculations */
#define INITVALUE (42)
-#define QAD(x) (SQR(SQR(x)))
-#define INV(x) ((1.0) / (x))
+#define INV(x) ((CCTK_REAL)1.0 / (x))
#define SQR(x) ((x) * (x))
-#define CUB(x) ((x) * (x) * (x))
+#define CUB(x) ((x) * SQR(x))
+#define QAD(x) (SQR(SQR(x)))
extern "C" void burgers_flux_1_SelectBCs(CCTK_ARGUMENTS)
{
@@ -40,8 +40,6 @@ static void burgers_flux_1_Body(cGH const * restrict const cctkGH, int const dir
DECLARE_CCTK_PARAMETERS;
- /* Declare finite differencing variables */
-
/* Include user-supplied include files */
/* Initialise finite differencing variables */
@@ -84,9 +82,9 @@ static void burgers_flux_1_Body(cGH const * restrict const cctkGH, int const dir
/* Loop over the grid points */
#pragma omp parallel
- CCTK_LOOP3 (burgers_flux_1,
+ CCTK_LOOP3(burgers_flux_1,
i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2],
- cctk_lsh[0],cctk_lsh[1],cctk_lsh[2])
+ cctk_ash[0],cctk_ash[1],cctk_ash[2])
{
ptrdiff_t const index = di*i + dj*j + dk*k;
@@ -108,7 +106,7 @@ static void burgers_flux_1_Body(cGH const * restrict const cctkGH, int const dir
/* Copy local copies back to grid functions */
uF[index] = uFL;
}
- CCTK_ENDLOOP3 (burgers_flux_1);
+ CCTK_ENDLOOP3(burgers_flux_1);
}
extern "C" void burgers_flux_1(CCTK_ARGUMENTS)
@@ -127,12 +125,15 @@ extern "C" void burgers_flux_1(CCTK_ARGUMENTS)
return;
}
- const char *groups[] = {"Burgers::uF_group","Burgers::uLeft_group","Burgers::uR_group"};
+ const char *const groups[] = {
+ "Burgers::uF_group",
+ "Burgers::uLeft_group",
+ "Burgers::uR_group"};
GenericFD_AssertGroupStorage(cctkGH, "burgers_flux_1", 3, groups);
GenericFD_EnsureStencilFits(cctkGH, "burgers_flux_1", 1, 1, 1);
- GenericFD_LoopOverInterior(cctkGH, &burgers_flux_1_Body);
+ GenericFD_LoopOverInterior(cctkGH, burgers_flux_1_Body);
if (verbose > 1)
{
diff --git a/Examples/Burgers/src/burgers_initial_shock.cc b/Examples/Burgers/src/burgers_initial_shock.cc
index 6aaa0fc..22dc55a 100644
--- a/Examples/Burgers/src/burgers_initial_shock.cc
+++ b/Examples/Burgers/src/burgers_initial_shock.cc
@@ -17,10 +17,10 @@
/* Define macros used in calculations */
#define INITVALUE (42)
-#define QAD(x) (SQR(SQR(x)))
-#define INV(x) ((1.0) / (x))
+#define INV(x) ((CCTK_REAL)1.0 / (x))
#define SQR(x) ((x) * (x))
-#define CUB(x) ((x) * (x) * (x))
+#define CUB(x) ((x) * SQR(x))
+#define QAD(x) (SQR(SQR(x)))
static void burgers_initial_shock_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const imin[3], int const imax[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
@@ -28,8 +28,6 @@ static void burgers_initial_shock_Body(cGH const * restrict const cctkGH, int co
DECLARE_CCTK_PARAMETERS;
- /* Declare finite differencing variables */
-
/* Include user-supplied include files */
/* Initialise finite differencing variables */
@@ -72,9 +70,9 @@ static void burgers_initial_shock_Body(cGH const * restrict const cctkGH, int co
/* Loop over the grid points */
#pragma omp parallel
- CCTK_LOOP3 (burgers_initial_shock,
+ CCTK_LOOP3(burgers_initial_shock,
i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2],
- cctk_lsh[0],cctk_lsh[1],cctk_lsh[2])
+ cctk_ash[0],cctk_ash[1],cctk_ash[2])
{
ptrdiff_t const index = di*i + dj*j + dk*k;
@@ -94,7 +92,7 @@ static void burgers_initial_shock_Body(cGH const * restrict const cctkGH, int co
/* Copy local copies back to grid functions */
u[index] = uL;
}
- CCTK_ENDLOOP3 (burgers_initial_shock);
+ CCTK_ENDLOOP3(burgers_initial_shock);
}
extern "C" void burgers_initial_shock(CCTK_ARGUMENTS)
@@ -113,11 +111,13 @@ extern "C" void burgers_initial_shock(CCTK_ARGUMENTS)
return;
}
- const char *groups[] = {"grid::coordinates","Burgers::u_group"};
+ const char *const groups[] = {
+ "grid::coordinates",
+ "Burgers::u_group"};
GenericFD_AssertGroupStorage(cctkGH, "burgers_initial_shock", 2, groups);
- GenericFD_LoopOverEverything(cctkGH, &burgers_initial_shock_Body);
+ GenericFD_LoopOverEverything(cctkGH, burgers_initial_shock_Body);
if (verbose > 1)
{
diff --git a/Examples/Burgers/src/burgers_initial_sine.cc b/Examples/Burgers/src/burgers_initial_sine.cc
index d6aa092..0e5daaa 100644
--- a/Examples/Burgers/src/burgers_initial_sine.cc
+++ b/Examples/Burgers/src/burgers_initial_sine.cc
@@ -17,10 +17,10 @@
/* Define macros used in calculations */
#define INITVALUE (42)
-#define QAD(x) (SQR(SQR(x)))
-#define INV(x) ((1.0) / (x))
+#define INV(x) ((CCTK_REAL)1.0 / (x))
#define SQR(x) ((x) * (x))
-#define CUB(x) ((x) * (x) * (x))
+#define CUB(x) ((x) * SQR(x))
+#define QAD(x) (SQR(SQR(x)))
static void burgers_initial_sine_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const imin[3], int const imax[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
@@ -28,8 +28,6 @@ static void burgers_initial_sine_Body(cGH const * restrict const cctkGH, int con
DECLARE_CCTK_PARAMETERS;
- /* Declare finite differencing variables */
-
/* Include user-supplied include files */
/* Initialise finite differencing variables */
@@ -72,9 +70,9 @@ static void burgers_initial_sine_Body(cGH const * restrict const cctkGH, int con
/* Loop over the grid points */
#pragma omp parallel
- CCTK_LOOP3 (burgers_initial_sine,
+ CCTK_LOOP3(burgers_initial_sine,
i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2],
- cctk_lsh[0],cctk_lsh[1],cctk_lsh[2])
+ cctk_ash[0],cctk_ash[1],cctk_ash[2])
{
ptrdiff_t const index = di*i + dj*j + dk*k;
@@ -88,12 +86,12 @@ static void burgers_initial_sine_Body(cGH const * restrict const cctkGH, int con
/* Precompute derivatives */
/* Calculate temporaries and grid functions */
- CCTK_REAL uL = 1 + Sin(2*xL*Pi)*ToReal(amp);
+ CCTK_REAL uL = 1 + sin(2*xL*Pi)*ToReal(amp);
/* Copy local copies back to grid functions */
u[index] = uL;
}
- CCTK_ENDLOOP3 (burgers_initial_sine);
+ CCTK_ENDLOOP3(burgers_initial_sine);
}
extern "C" void burgers_initial_sine(CCTK_ARGUMENTS)
@@ -112,11 +110,13 @@ extern "C" void burgers_initial_sine(CCTK_ARGUMENTS)
return;
}
- const char *groups[] = {"grid::coordinates","Burgers::u_group"};
+ const char *const groups[] = {
+ "grid::coordinates",
+ "Burgers::u_group"};
GenericFD_AssertGroupStorage(cctkGH, "burgers_initial_sine", 2, groups);
- GenericFD_LoopOverEverything(cctkGH, &burgers_initial_sine_Body);
+ GenericFD_LoopOverEverything(cctkGH, burgers_initial_sine_Body);
if (verbose > 1)
{
diff --git a/Examples/Burgers/src/burgers_reconstruct_1.cc b/Examples/Burgers/src/burgers_reconstruct_1.cc
index 4a79c1e..2a14321 100644
--- a/Examples/Burgers/src/burgers_reconstruct_1.cc
+++ b/Examples/Burgers/src/burgers_reconstruct_1.cc
@@ -17,10 +17,10 @@
/* Define macros used in calculations */
#define INITVALUE (42)
-#define QAD(x) (SQR(SQR(x)))
-#define INV(x) ((1.0) / (x))
+#define INV(x) ((CCTK_REAL)1.0 / (x))
#define SQR(x) ((x) * (x))
-#define CUB(x) ((x) * (x) * (x))
+#define CUB(x) ((x) * SQR(x))
+#define QAD(x) (SQR(SQR(x)))
extern "C" void burgers_reconstruct_1_SelectBCs(CCTK_ARGUMENTS)
{
@@ -43,8 +43,6 @@ static void burgers_reconstruct_1_Body(cGH const * restrict const cctkGH, int co
DECLARE_CCTK_PARAMETERS;
- /* Declare finite differencing variables */
-
/* Include user-supplied include files */
/* Initialise finite differencing variables */
@@ -87,9 +85,9 @@ static void burgers_reconstruct_1_Body(cGH const * restrict const cctkGH, int co
/* Loop over the grid points */
#pragma omp parallel
- CCTK_LOOP3 (burgers_reconstruct_1,
+ CCTK_LOOP3(burgers_reconstruct_1,
i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2],
- cctk_lsh[0],cctk_lsh[1],cctk_lsh[2])
+ cctk_ash[0],cctk_ash[1],cctk_ash[2])
{
ptrdiff_t const index = di*i + dj*j + dk*k;
@@ -109,8 +107,8 @@ static void burgers_reconstruct_1_Body(cGH const * restrict const cctkGH, int co
CCTK_REAL slopeR = DiffPlus1u;
- CCTK_REAL slope = IfThen(slopeL*slopeR < 0,0,IfThen(Abs(slopeL) <
- Abs(slopeR),slopeL,slopeR));
+ CCTK_REAL slope = IfThen(slopeL*slopeR < 0,0,IfThen(fabs(slopeL) <
+ fabs(slopeR),slopeL,slopeR));
CCTK_REAL uLeftL = uL - 0.5*slope;
@@ -120,7 +118,7 @@ static void burgers_reconstruct_1_Body(cGH const * restrict const cctkGH, int co
uLeft[index] = uLeftL;
uR[index] = uRL;
}
- CCTK_ENDLOOP3 (burgers_reconstruct_1);
+ CCTK_ENDLOOP3(burgers_reconstruct_1);
}
extern "C" void burgers_reconstruct_1(CCTK_ARGUMENTS)
@@ -139,12 +137,15 @@ extern "C" void burgers_reconstruct_1(CCTK_ARGUMENTS)
return;
}
- const char *groups[] = {"Burgers::u_group","Burgers::uLeft_group","Burgers::uR_group"};
+ const char *const groups[] = {
+ "Burgers::u_group",
+ "Burgers::uLeft_group",
+ "Burgers::uR_group"};
GenericFD_AssertGroupStorage(cctkGH, "burgers_reconstruct_1", 3, groups);
GenericFD_EnsureStencilFits(cctkGH, "burgers_reconstruct_1", 1, 1, 1);
- GenericFD_LoopOverInterior(cctkGH, &burgers_reconstruct_1_Body);
+ GenericFD_LoopOverInterior(cctkGH, burgers_reconstruct_1_Body);
if (verbose > 1)
{
diff --git a/Examples/Burgers/src/burgers_rhs_1.cc b/Examples/Burgers/src/burgers_rhs_1.cc
index 557e7a0..644aca7 100644
--- a/Examples/Burgers/src/burgers_rhs_1.cc
+++ b/Examples/Burgers/src/burgers_rhs_1.cc
@@ -17,10 +17,10 @@
/* Define macros used in calculations */
#define INITVALUE (42)
-#define QAD(x) (SQR(SQR(x)))
-#define INV(x) ((1.0) / (x))
+#define INV(x) ((CCTK_REAL)1.0 / (x))
#define SQR(x) ((x) * (x))
-#define CUB(x) ((x) * (x) * (x))
+#define CUB(x) ((x) * SQR(x))
+#define QAD(x) (SQR(SQR(x)))
extern "C" void burgers_rhs_1_SelectBCs(CCTK_ARGUMENTS)
{
@@ -40,8 +40,6 @@ static void burgers_rhs_1_Body(cGH const * restrict const cctkGH, int const dir,
DECLARE_CCTK_PARAMETERS;
- /* Declare finite differencing variables */
-
/* Include user-supplied include files */
/* Initialise finite differencing variables */
@@ -84,9 +82,9 @@ static void burgers_rhs_1_Body(cGH const * restrict const cctkGH, int const dir,
/* Loop over the grid points */
#pragma omp parallel
- CCTK_LOOP3 (burgers_rhs_1,
+ CCTK_LOOP3(burgers_rhs_1,
i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2],
- cctk_lsh[0],cctk_lsh[1],cctk_lsh[2])
+ cctk_ash[0],cctk_ash[1],cctk_ash[2])
{
ptrdiff_t const index = di*i + dj*j + dk*k;
@@ -107,7 +105,7 @@ static void burgers_rhs_1_Body(cGH const * restrict const cctkGH, int const dir,
/* Copy local copies back to grid functions */
urhs[index] = urhsL;
}
- CCTK_ENDLOOP3 (burgers_rhs_1);
+ CCTK_ENDLOOP3(burgers_rhs_1);
}
extern "C" void burgers_rhs_1(CCTK_ARGUMENTS)
@@ -126,12 +124,14 @@ extern "C" void burgers_rhs_1(CCTK_ARGUMENTS)
return;
}
- const char *groups[] = {"Burgers::uF_group","Burgers::u_grouprhs"};
+ const char *const groups[] = {
+ "Burgers::uF_group",
+ "Burgers::u_grouprhs"};
GenericFD_AssertGroupStorage(cctkGH, "burgers_rhs_1", 2, groups);
GenericFD_EnsureStencilFits(cctkGH, "burgers_rhs_1", 1, 1, 1);
- GenericFD_LoopOverInterior(cctkGH, &burgers_rhs_1_Body);
+ GenericFD_LoopOverInterior(cctkGH, burgers_rhs_1_Body);
if (verbose > 1)
{
diff --git a/Examples/Burgers/src/burgers_zero_rhs.cc b/Examples/Burgers/src/burgers_zero_rhs.cc
index 10f020f..689339b 100644
--- a/Examples/Burgers/src/burgers_zero_rhs.cc
+++ b/Examples/Burgers/src/burgers_zero_rhs.cc
@@ -17,10 +17,10 @@
/* Define macros used in calculations */
#define INITVALUE (42)
-#define QAD(x) (SQR(SQR(x)))
-#define INV(x) ((1.0) / (x))
+#define INV(x) ((CCTK_REAL)1.0 / (x))
#define SQR(x) ((x) * (x))
-#define CUB(x) ((x) * (x) * (x))
+#define CUB(x) ((x) * SQR(x))
+#define QAD(x) (SQR(SQR(x)))
static void burgers_zero_rhs_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const imin[3], int const imax[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
@@ -28,8 +28,6 @@ static void burgers_zero_rhs_Body(cGH const * restrict const cctkGH, int const d
DECLARE_CCTK_PARAMETERS;
- /* Declare finite differencing variables */
-
/* Include user-supplied include files */
/* Initialise finite differencing variables */
@@ -72,9 +70,9 @@ static void burgers_zero_rhs_Body(cGH const * restrict const cctkGH, int const d
/* Loop over the grid points */
#pragma omp parallel
- CCTK_LOOP3 (burgers_zero_rhs,
+ CCTK_LOOP3(burgers_zero_rhs,
i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2],
- cctk_lsh[0],cctk_lsh[1],cctk_lsh[2])
+ cctk_ash[0],cctk_ash[1],cctk_ash[2])
{
ptrdiff_t const index = di*i + dj*j + dk*k;
@@ -92,7 +90,7 @@ static void burgers_zero_rhs_Body(cGH const * restrict const cctkGH, int const d
/* Copy local copies back to grid functions */
urhs[index] = urhsL;
}
- CCTK_ENDLOOP3 (burgers_zero_rhs);
+ CCTK_ENDLOOP3(burgers_zero_rhs);
}
extern "C" void burgers_zero_rhs(CCTK_ARGUMENTS)
@@ -111,11 +109,12 @@ extern "C" void burgers_zero_rhs(CCTK_ARGUMENTS)
return;
}
- const char *groups[] = {"Burgers::u_grouprhs"};
+ const char *const groups[] = {
+ "Burgers::u_grouprhs"};
GenericFD_AssertGroupStorage(cctkGH, "burgers_zero_rhs", 1, groups);
- GenericFD_LoopOverEverything(cctkGH, &burgers_zero_rhs_Body);
+ GenericFD_LoopOverEverything(cctkGH, burgers_zero_rhs_Body);
if (verbose > 1)
{
diff --git a/Examples/Burgers/src/make.code.defn b/Examples/Burgers/src/make.code.defn
index cfdb103..513e66c 100644
--- a/Examples/Burgers/src/make.code.defn
+++ b/Examples/Burgers/src/make.code.defn
@@ -1,3 +1,3 @@
# File produced by Kranc
-SRCS = Startup.cc RegisterMoL.cc RegisterSymmetries.cc burgers_initial_sine.cc burgers_initial_shock.cc burgers_zero_rhs.cc burgers_reconstruct_1.cc burgers_flux_1.cc burgers_rhs_1.cc Boundaries.cc
+SRCS = Startup.cc RegisterSymmetries.cc RegisterMoL.cc burgers_initial_sine.cc burgers_initial_shock.cc burgers_zero_rhs.cc burgers_reconstruct_1.cc burgers_flux_1.cc burgers_rhs_1.cc Boundaries.cc
diff --git a/Examples/EM/param.ccl b/Examples/EM/param.ccl
index 4d95cbd..7b16dd2 100644
--- a/Examples/EM/param.ccl
+++ b/Examples/EM/param.ccl
@@ -23,12 +23,6 @@ CCTK_REAL sigma "sigma"
} 0
restricted:
-CCTK_REAL hlleAlpha "hlleAlpha"
-{
- "*:*" :: ""
-} 0
-
-restricted:
CCTK_INT EM_MaxNumEvolvedVars "Number of evolved variables used by this thorn" ACCUMULATOR-BASE=MethodofLines::MoL_Num_Evolved_Vars STEERABLE=RECOVER
{
6:6 :: "Number of evolved variables used by this thorn"
diff --git a/Examples/EM/schedule.ccl b/Examples/EM/schedule.ccl
index 3dfb80d..2ada2aa 100644
--- a/Examples/EM/schedule.ccl
+++ b/Examples/EM/schedule.ccl
@@ -69,12 +69,6 @@ schedule EM_Startup at STARTUP
OPTIONS: meta
} "create banner"
-schedule EM_RegisterVars in MoL_Register
-{
- LANG: C
- OPTIONS: meta
-} "Register Variables for MoL"
-
schedule EM_RegisterSymmetries in SymmetryRegister
{
LANG: C
@@ -84,11 +78,31 @@ schedule EM_RegisterSymmetries in SymmetryRegister
schedule EM_initial at CCTK_INITIAL
{
LANG: C
+ READS: grid::x
+ READS: grid::y
+ WRITES: EM::B1
+ WRITES: EM::B2
+ WRITES: EM::B3
+ WRITES: EM::El1
+ WRITES: EM::El2
+ WRITES: EM::El3
} "EM_initial"
schedule EM_evol in MoL_CalcRHS
{
LANG: C
+ READS: EM::B1
+ READS: EM::B2
+ READS: EM::B3
+ READS: EM::El1
+ READS: EM::El2
+ READS: EM::El3
+ WRITES: EM::B1rhs
+ WRITES: EM::B2rhs
+ WRITES: EM::B3rhs
+ WRITES: EM::El1rhs
+ WRITES: EM::El2rhs
+ WRITES: EM::El3rhs
} "EM_evol"
schedule group EM_constraints_group in MoL_PseudoEvolution
@@ -99,6 +113,14 @@ schedule group EM_constraints_group in MoL_PseudoEvolution
schedule EM_constraints in EM_constraints_group
{
LANG: C
+ READS: EM::B1
+ READS: EM::B2
+ READS: EM::B3
+ READS: EM::El1
+ READS: EM::El2
+ READS: EM::El3
+ WRITES: EM::CB
+ WRITES: EM::CEl
} "EM_constraints"
schedule EM_constraints_SelectBCs in EM_constraints_bc_group
@@ -131,6 +153,13 @@ schedule group EM_energy_group in MoL_PseudoEvolution
schedule EM_energy in EM_energy_group
{
LANG: C
+ READS: EM::B1
+ READS: EM::B2
+ READS: EM::B3
+ READS: EM::El1
+ READS: EM::El2
+ READS: EM::El3
+ WRITES: EM::rho
} "EM_energy"
schedule EM_SelectBoundConds in MoL_PostStep
@@ -147,6 +176,12 @@ schedule EM_CheckBoundaries at BASEGRID
OPTIONS: meta
} "check boundaries treatment"
+schedule EM_RegisterVars in MoL_Register
+{
+ LANG: C
+ OPTIONS: meta
+} "Register Variables for MoL"
+
schedule group ApplyBCs as EM_ApplyBCs in MoL_PostStep after EM_SelectBoundConds
{
# no language specified
diff --git a/Examples/EM/src/Differencing.h b/Examples/EM/src/Differencing.h
index e6b9ac7..93bbe62 100644
--- a/Examples/EM/src/Differencing.h
+++ b/Examples/EM/src/Differencing.h
@@ -286,147 +286,3 @@ static CCTK_REAL PDstandard4th32_impl(CCTK_REAL const* restrict const u, CCTK_RE
}
#endif
-#ifndef KRANC_DIFF_FUNCTIONS
-# define DiffPlus1(u) ((-KRANC_GFOFFSET3D(u,0,0,0) + KRANC_GFOFFSET3D(u,1,0,0))*p1o1)
-#else
-# define DiffPlus1(u) (DiffPlus1_impl(u,p1o1,cdj,cdk))
-static CCTK_REAL DiffPlus1_impl(CCTK_REAL const* restrict const u, CCTK_REAL const p1o1, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED;
-static CCTK_REAL DiffPlus1_impl(CCTK_REAL const* restrict const u, CCTK_REAL const p1o1, ptrdiff_t const cdj, ptrdiff_t const cdk)
-{
- ptrdiff_t const cdi=sizeof(CCTK_REAL);
- return (-KRANC_GFOFFSET3D(u,0,0,0) + KRANC_GFOFFSET3D(u,1,0,0))*p1o1;
-}
-#endif
-
-#ifndef KRANC_DIFF_FUNCTIONS
-# define DiffPlus2(u) ((-KRANC_GFOFFSET3D(u,0,0,0) + KRANC_GFOFFSET3D(u,0,1,0))*p1o1)
-#else
-# define DiffPlus2(u) (DiffPlus2_impl(u,p1o1,cdj,cdk))
-static CCTK_REAL DiffPlus2_impl(CCTK_REAL const* restrict const u, CCTK_REAL const p1o1, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED;
-static CCTK_REAL DiffPlus2_impl(CCTK_REAL const* restrict const u, CCTK_REAL const p1o1, ptrdiff_t const cdj, ptrdiff_t const cdk)
-{
- ptrdiff_t const cdi=sizeof(CCTK_REAL);
- return (-KRANC_GFOFFSET3D(u,0,0,0) + KRANC_GFOFFSET3D(u,0,1,0))*p1o1;
-}
-#endif
-
-#ifndef KRANC_DIFF_FUNCTIONS
-# define DiffPlus3(u) ((-KRANC_GFOFFSET3D(u,0,0,0) + KRANC_GFOFFSET3D(u,0,0,1))*p1o1)
-#else
-# define DiffPlus3(u) (DiffPlus3_impl(u,p1o1,cdj,cdk))
-static CCTK_REAL DiffPlus3_impl(CCTK_REAL const* restrict const u, CCTK_REAL const p1o1, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED;
-static CCTK_REAL DiffPlus3_impl(CCTK_REAL const* restrict const u, CCTK_REAL const p1o1, ptrdiff_t const cdj, ptrdiff_t const cdk)
-{
- ptrdiff_t const cdi=sizeof(CCTK_REAL);
- return (-KRANC_GFOFFSET3D(u,0,0,0) + KRANC_GFOFFSET3D(u,0,0,1))*p1o1;
-}
-#endif
-
-#ifndef KRANC_DIFF_FUNCTIONS
-# define DiffMinus1(u) ((KRANC_GFOFFSET3D(u,0,0,0) - KRANC_GFOFFSET3D(u,-1,0,0))*p1o1)
-#else
-# define DiffMinus1(u) (DiffMinus1_impl(u,p1o1,cdj,cdk))
-static CCTK_REAL DiffMinus1_impl(CCTK_REAL const* restrict const u, CCTK_REAL const p1o1, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED;
-static CCTK_REAL DiffMinus1_impl(CCTK_REAL const* restrict const u, CCTK_REAL const p1o1, ptrdiff_t const cdj, ptrdiff_t const cdk)
-{
- ptrdiff_t const cdi=sizeof(CCTK_REAL);
- return (KRANC_GFOFFSET3D(u,0,0,0) - KRANC_GFOFFSET3D(u,-1,0,0))*p1o1;
-}
-#endif
-
-#ifndef KRANC_DIFF_FUNCTIONS
-# define DiffMinus2(u) ((KRANC_GFOFFSET3D(u,0,0,0) - KRANC_GFOFFSET3D(u,0,-1,0))*p1o1)
-#else
-# define DiffMinus2(u) (DiffMinus2_impl(u,p1o1,cdj,cdk))
-static CCTK_REAL DiffMinus2_impl(CCTK_REAL const* restrict const u, CCTK_REAL const p1o1, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED;
-static CCTK_REAL DiffMinus2_impl(CCTK_REAL const* restrict const u, CCTK_REAL const p1o1, ptrdiff_t const cdj, ptrdiff_t const cdk)
-{
- ptrdiff_t const cdi=sizeof(CCTK_REAL);
- return (KRANC_GFOFFSET3D(u,0,0,0) - KRANC_GFOFFSET3D(u,0,-1,0))*p1o1;
-}
-#endif
-
-#ifndef KRANC_DIFF_FUNCTIONS
-# define DiffMinus3(u) ((KRANC_GFOFFSET3D(u,0,0,0) - KRANC_GFOFFSET3D(u,0,0,-1))*p1o1)
-#else
-# define DiffMinus3(u) (DiffMinus3_impl(u,p1o1,cdj,cdk))
-static CCTK_REAL DiffMinus3_impl(CCTK_REAL const* restrict const u, CCTK_REAL const p1o1, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED;
-static CCTK_REAL DiffMinus3_impl(CCTK_REAL const* restrict const u, CCTK_REAL const p1o1, ptrdiff_t const cdj, ptrdiff_t const cdk)
-{
- ptrdiff_t const cdi=sizeof(CCTK_REAL);
- return (KRANC_GFOFFSET3D(u,0,0,0) - KRANC_GFOFFSET3D(u,0,0,-1))*p1o1;
-}
-#endif
-
-#ifndef KRANC_DIFF_FUNCTIONS
-# define ShiftMinus1(u) (KRANC_GFOFFSET3D(u,-1,0,0)*p1o1)
-#else
-# define ShiftMinus1(u) (ShiftMinus1_impl(u,p1o1,cdj,cdk))
-static CCTK_REAL ShiftMinus1_impl(CCTK_REAL const* restrict const u, CCTK_REAL const p1o1, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED;
-static CCTK_REAL ShiftMinus1_impl(CCTK_REAL const* restrict const u, CCTK_REAL const p1o1, ptrdiff_t const cdj, ptrdiff_t const cdk)
-{
- ptrdiff_t const cdi=sizeof(CCTK_REAL);
- return KRANC_GFOFFSET3D(u,-1,0,0)*p1o1;
-}
-#endif
-
-#ifndef KRANC_DIFF_FUNCTIONS
-# define ShiftMinus2(u) (KRANC_GFOFFSET3D(u,0,-1,0)*p1o1)
-#else
-# define ShiftMinus2(u) (ShiftMinus2_impl(u,p1o1,cdj,cdk))
-static CCTK_REAL ShiftMinus2_impl(CCTK_REAL const* restrict const u, CCTK_REAL const p1o1, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED;
-static CCTK_REAL ShiftMinus2_impl(CCTK_REAL const* restrict const u, CCTK_REAL const p1o1, ptrdiff_t const cdj, ptrdiff_t const cdk)
-{
- ptrdiff_t const cdi=sizeof(CCTK_REAL);
- return KRANC_GFOFFSET3D(u,0,-1,0)*p1o1;
-}
-#endif
-
-#ifndef KRANC_DIFF_FUNCTIONS
-# define ShiftMinus3(u) (KRANC_GFOFFSET3D(u,0,0,-1)*p1o1)
-#else
-# define ShiftMinus3(u) (ShiftMinus3_impl(u,p1o1,cdj,cdk))
-static CCTK_REAL ShiftMinus3_impl(CCTK_REAL const* restrict const u, CCTK_REAL const p1o1, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED;
-static CCTK_REAL ShiftMinus3_impl(CCTK_REAL const* restrict const u, CCTK_REAL const p1o1, ptrdiff_t const cdj, ptrdiff_t const cdk)
-{
- ptrdiff_t const cdi=sizeof(CCTK_REAL);
- return KRANC_GFOFFSET3D(u,0,0,-1)*p1o1;
-}
-#endif
-
-#ifndef KRANC_DIFF_FUNCTIONS
-# define PDplus1(u) ((-KRANC_GFOFFSET3D(u,0,0,0) + KRANC_GFOFFSET3D(u,1,0,0))*p1odx)
-#else
-# define PDplus1(u) (PDplus1_impl(u,p1odx,cdj,cdk))
-static CCTK_REAL PDplus1_impl(CCTK_REAL const* restrict const u, CCTK_REAL const p1odx, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED;
-static CCTK_REAL PDplus1_impl(CCTK_REAL const* restrict const u, CCTK_REAL const p1odx, ptrdiff_t const cdj, ptrdiff_t const cdk)
-{
- ptrdiff_t const cdi=sizeof(CCTK_REAL);
- return (-KRANC_GFOFFSET3D(u,0,0,0) + KRANC_GFOFFSET3D(u,1,0,0))*p1odx;
-}
-#endif
-
-#ifndef KRANC_DIFF_FUNCTIONS
-# define PDplus2(u) ((-KRANC_GFOFFSET3D(u,0,0,0) + KRANC_GFOFFSET3D(u,0,1,0))*p1ody)
-#else
-# define PDplus2(u) (PDplus2_impl(u,p1ody,cdj,cdk))
-static CCTK_REAL PDplus2_impl(CCTK_REAL const* restrict const u, CCTK_REAL const p1ody, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED;
-static CCTK_REAL PDplus2_impl(CCTK_REAL const* restrict const u, CCTK_REAL const p1ody, ptrdiff_t const cdj, ptrdiff_t const cdk)
-{
- ptrdiff_t const cdi=sizeof(CCTK_REAL);
- return (-KRANC_GFOFFSET3D(u,0,0,0) + KRANC_GFOFFSET3D(u,0,1,0))*p1ody;
-}
-#endif
-
-#ifndef KRANC_DIFF_FUNCTIONS
-# define PDplus3(u) ((-KRANC_GFOFFSET3D(u,0,0,0) + KRANC_GFOFFSET3D(u,0,0,1))*p1odz)
-#else
-# define PDplus3(u) (PDplus3_impl(u,p1odz,cdj,cdk))
-static CCTK_REAL PDplus3_impl(CCTK_REAL const* restrict const u, CCTK_REAL const p1odz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED;
-static CCTK_REAL PDplus3_impl(CCTK_REAL const* restrict const u, CCTK_REAL const p1odz, ptrdiff_t const cdj, ptrdiff_t const cdk)
-{
- ptrdiff_t const cdi=sizeof(CCTK_REAL);
- return (-KRANC_GFOFFSET3D(u,0,0,0) + KRANC_GFOFFSET3D(u,0,0,1))*p1odz;
-}
-#endif
-
diff --git a/Examples/EM/src/EM_constraints.cc b/Examples/EM/src/EM_constraints.cc
index dc40783..a03e93f 100644
--- a/Examples/EM/src/EM_constraints.cc
+++ b/Examples/EM/src/EM_constraints.cc
@@ -17,10 +17,10 @@
/* Define macros used in calculations */
#define INITVALUE (42)
-#define QAD(x) (SQR(SQR(x)))
-#define INV(x) ((1.0) / (x))
+#define INV(x) ((CCTK_REAL)1.0 / (x))
#define SQR(x) ((x) * (x))
-#define CUB(x) ((x) * (x) * (x))
+#define CUB(x) ((x) * SQR(x))
+#define QAD(x) (SQR(SQR(x)))
extern "C" void EM_constraints_SelectBCs(CCTK_ARGUMENTS)
{
@@ -40,8 +40,6 @@ static void EM_constraints_Body(cGH const * restrict const cctkGH, int const dir
DECLARE_CCTK_PARAMETERS;
- /* Declare finite differencing variables */
-
/* Include user-supplied include files */
/* Initialise finite differencing variables */
@@ -69,24 +67,20 @@ static void EM_constraints_Body(cGH const * restrict const cctkGH, int const dir
CCTK_REAL const hdzi = 0.5 * dzi;
/* Initialize predefined quantities */
- CCTK_REAL const p1o1 = 1;
CCTK_REAL const p1o12dx = 0.0833333333333333333333333333333*INV(dx);
CCTK_REAL const p1o12dy = 0.0833333333333333333333333333333*INV(dy);
CCTK_REAL const p1o12dz = 0.0833333333333333333333333333333*INV(dz);
- CCTK_REAL const p1o144dxdy = 0.00694444444444444444444444444444*INV(dx)*INV(dy);
- CCTK_REAL const p1o144dxdz = 0.00694444444444444444444444444444*INV(dx)*INV(dz);
- CCTK_REAL const p1o144dydz = 0.00694444444444444444444444444444*INV(dy)*INV(dz);
+ CCTK_REAL const p1o144dxdy = 0.00694444444444444444444444444444*INV(dx*dy);
+ CCTK_REAL const p1o144dxdz = 0.00694444444444444444444444444444*INV(dx*dz);
+ CCTK_REAL const p1o144dydz = 0.00694444444444444444444444444444*INV(dy*dz);
CCTK_REAL const p1o2dx = 0.5*INV(dx);
CCTK_REAL const p1o2dy = 0.5*INV(dy);
CCTK_REAL const p1o2dz = 0.5*INV(dz);
- CCTK_REAL const p1o4dxdy = 0.25*INV(dx)*INV(dy);
- CCTK_REAL const p1o4dxdz = 0.25*INV(dx)*INV(dz);
- CCTK_REAL const p1o4dydz = 0.25*INV(dy)*INV(dz);
- CCTK_REAL const p1odx = INV(dx);
+ CCTK_REAL const p1o4dxdy = 0.25*INV(dx*dy);
+ CCTK_REAL const p1o4dxdz = 0.25*INV(dx*dz);
+ CCTK_REAL const p1o4dydz = 0.25*INV(dy*dz);
CCTK_REAL const p1odx2 = INV(SQR(dx));
- CCTK_REAL const p1ody = INV(dy);
CCTK_REAL const p1ody2 = INV(SQR(dy));
- CCTK_REAL const p1odz = INV(dz);
CCTK_REAL const p1odz2 = INV(SQR(dz));
CCTK_REAL const pm1o12dx2 = -0.0833333333333333333333333333333*INV(SQR(dx));
CCTK_REAL const pm1o12dy2 = -0.0833333333333333333333333333333*INV(SQR(dy));
@@ -102,9 +96,9 @@ static void EM_constraints_Body(cGH const * restrict const cctkGH, int const dir
/* Loop over the grid points */
#pragma omp parallel
- CCTK_LOOP3 (EM_constraints,
+ CCTK_LOOP3(EM_constraints,
i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2],
- cctk_lsh[0],cctk_lsh[1],cctk_lsh[2])
+ cctk_ash[0],cctk_ash[1],cctk_ash[2])
{
ptrdiff_t const index = di*i + dj*j + dk*k;
@@ -139,7 +133,7 @@ static void EM_constraints_Body(cGH const * restrict const cctkGH, int const dir
CB[index] = CBL;
CEl[index] = CElL;
}
- CCTK_ENDLOOP3 (EM_constraints);
+ CCTK_ENDLOOP3(EM_constraints);
}
extern "C" void EM_constraints(CCTK_ARGUMENTS)
@@ -158,12 +152,15 @@ extern "C" void EM_constraints(CCTK_ARGUMENTS)
return;
}
- const char *groups[] = {"EM::B_group","EM::constraints","EM::El_group"};
+ const char *const groups[] = {
+ "EM::B_group",
+ "EM::constraints",
+ "EM::El_group"};
GenericFD_AssertGroupStorage(cctkGH, "EM_constraints", 3, groups);
GenericFD_EnsureStencilFits(cctkGH, "EM_constraints", 1, 1, 1);
- GenericFD_LoopOverInterior(cctkGH, &EM_constraints_Body);
+ GenericFD_LoopOverInterior(cctkGH, EM_constraints_Body);
if (verbose > 1)
{
diff --git a/Examples/EM/src/EM_energy.cc b/Examples/EM/src/EM_energy.cc
index b8e1a17..410c9b3 100644
--- a/Examples/EM/src/EM_energy.cc
+++ b/Examples/EM/src/EM_energy.cc
@@ -17,10 +17,10 @@
/* Define macros used in calculations */
#define INITVALUE (42)
-#define QAD(x) (SQR(SQR(x)))
-#define INV(x) ((1.0) / (x))
+#define INV(x) ((CCTK_REAL)1.0 / (x))
#define SQR(x) ((x) * (x))
-#define CUB(x) ((x) * (x) * (x))
+#define CUB(x) ((x) * SQR(x))
+#define QAD(x) (SQR(SQR(x)))
static void EM_energy_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const imin[3], int const imax[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
@@ -28,8 +28,6 @@ static void EM_energy_Body(cGH const * restrict const cctkGH, int const dir, int
DECLARE_CCTK_PARAMETERS;
- /* Declare finite differencing variables */
-
/* Include user-supplied include files */
/* Initialise finite differencing variables */
@@ -57,24 +55,20 @@ static void EM_energy_Body(cGH const * restrict const cctkGH, int const dir, int
CCTK_REAL const hdzi = 0.5 * dzi;
/* Initialize predefined quantities */
- CCTK_REAL const p1o1 = 1;
CCTK_REAL const p1o12dx = 0.0833333333333333333333333333333*INV(dx);
CCTK_REAL const p1o12dy = 0.0833333333333333333333333333333*INV(dy);
CCTK_REAL const p1o12dz = 0.0833333333333333333333333333333*INV(dz);
- CCTK_REAL const p1o144dxdy = 0.00694444444444444444444444444444*INV(dx)*INV(dy);
- CCTK_REAL const p1o144dxdz = 0.00694444444444444444444444444444*INV(dx)*INV(dz);
- CCTK_REAL const p1o144dydz = 0.00694444444444444444444444444444*INV(dy)*INV(dz);
+ CCTK_REAL const p1o144dxdy = 0.00694444444444444444444444444444*INV(dx*dy);
+ CCTK_REAL const p1o144dxdz = 0.00694444444444444444444444444444*INV(dx*dz);
+ CCTK_REAL const p1o144dydz = 0.00694444444444444444444444444444*INV(dy*dz);
CCTK_REAL const p1o2dx = 0.5*INV(dx);
CCTK_REAL const p1o2dy = 0.5*INV(dy);
CCTK_REAL const p1o2dz = 0.5*INV(dz);
- CCTK_REAL const p1o4dxdy = 0.25*INV(dx)*INV(dy);
- CCTK_REAL const p1o4dxdz = 0.25*INV(dx)*INV(dz);
- CCTK_REAL const p1o4dydz = 0.25*INV(dy)*INV(dz);
- CCTK_REAL const p1odx = INV(dx);
+ CCTK_REAL const p1o4dxdy = 0.25*INV(dx*dy);
+ CCTK_REAL const p1o4dxdz = 0.25*INV(dx*dz);
+ CCTK_REAL const p1o4dydz = 0.25*INV(dy*dz);
CCTK_REAL const p1odx2 = INV(SQR(dx));
- CCTK_REAL const p1ody = INV(dy);
CCTK_REAL const p1ody2 = INV(SQR(dy));
- CCTK_REAL const p1odz = INV(dz);
CCTK_REAL const p1odz2 = INV(SQR(dz));
CCTK_REAL const pm1o12dx2 = -0.0833333333333333333333333333333*INV(SQR(dx));
CCTK_REAL const pm1o12dy2 = -0.0833333333333333333333333333333*INV(SQR(dy));
@@ -90,9 +84,9 @@ static void EM_energy_Body(cGH const * restrict const cctkGH, int const dir, int
/* Loop over the grid points */
#pragma omp parallel
- CCTK_LOOP3 (EM_energy,
+ CCTK_LOOP3(EM_energy,
i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2],
- cctk_lsh[0],cctk_lsh[1],cctk_lsh[2])
+ cctk_ash[0],cctk_ash[1],cctk_ash[2])
{
ptrdiff_t const index = di*i + dj*j + dk*k;
@@ -117,7 +111,7 @@ static void EM_energy_Body(cGH const * restrict const cctkGH, int const dir, int
/* Copy local copies back to grid functions */
rho[index] = rhoL;
}
- CCTK_ENDLOOP3 (EM_energy);
+ CCTK_ENDLOOP3(EM_energy);
}
extern "C" void EM_energy(CCTK_ARGUMENTS)
@@ -136,11 +130,14 @@ extern "C" void EM_energy(CCTK_ARGUMENTS)
return;
}
- const char *groups[] = {"EM::B_group","EM::El_group","EM::endens"};
+ const char *const groups[] = {
+ "EM::B_group",
+ "EM::El_group",
+ "EM::endens"};
GenericFD_AssertGroupStorage(cctkGH, "EM_energy", 3, groups);
- GenericFD_LoopOverEverything(cctkGH, &EM_energy_Body);
+ GenericFD_LoopOverEverything(cctkGH, EM_energy_Body);
if (verbose > 1)
{
diff --git a/Examples/EM/src/EM_evol.cc b/Examples/EM/src/EM_evol.cc
index ad67af3..80c756b 100644
--- a/Examples/EM/src/EM_evol.cc
+++ b/Examples/EM/src/EM_evol.cc
@@ -17,10 +17,10 @@
/* Define macros used in calculations */
#define INITVALUE (42)
-#define QAD(x) (SQR(SQR(x)))
-#define INV(x) ((1.0) / (x))
+#define INV(x) ((CCTK_REAL)1.0 / (x))
#define SQR(x) ((x) * (x))
-#define CUB(x) ((x) * (x) * (x))
+#define CUB(x) ((x) * SQR(x))
+#define QAD(x) (SQR(SQR(x)))
extern "C" void EM_evol_SelectBCs(CCTK_ARGUMENTS)
{
@@ -43,8 +43,6 @@ static void EM_evol_Body(cGH const * restrict const cctkGH, int const dir, int c
DECLARE_CCTK_PARAMETERS;
- /* Declare finite differencing variables */
-
/* Include user-supplied include files */
/* Initialise finite differencing variables */
@@ -72,24 +70,20 @@ static void EM_evol_Body(cGH const * restrict const cctkGH, int const dir, int c
CCTK_REAL const hdzi = 0.5 * dzi;
/* Initialize predefined quantities */
- CCTK_REAL const p1o1 = 1;
CCTK_REAL const p1o12dx = 0.0833333333333333333333333333333*INV(dx);
CCTK_REAL const p1o12dy = 0.0833333333333333333333333333333*INV(dy);
CCTK_REAL const p1o12dz = 0.0833333333333333333333333333333*INV(dz);
- CCTK_REAL const p1o144dxdy = 0.00694444444444444444444444444444*INV(dx)*INV(dy);
- CCTK_REAL const p1o144dxdz = 0.00694444444444444444444444444444*INV(dx)*INV(dz);
- CCTK_REAL const p1o144dydz = 0.00694444444444444444444444444444*INV(dy)*INV(dz);
+ CCTK_REAL const p1o144dxdy = 0.00694444444444444444444444444444*INV(dx*dy);
+ CCTK_REAL const p1o144dxdz = 0.00694444444444444444444444444444*INV(dx*dz);
+ CCTK_REAL const p1o144dydz = 0.00694444444444444444444444444444*INV(dy*dz);
CCTK_REAL const p1o2dx = 0.5*INV(dx);
CCTK_REAL const p1o2dy = 0.5*INV(dy);
CCTK_REAL const p1o2dz = 0.5*INV(dz);
- CCTK_REAL const p1o4dxdy = 0.25*INV(dx)*INV(dy);
- CCTK_REAL const p1o4dxdz = 0.25*INV(dx)*INV(dz);
- CCTK_REAL const p1o4dydz = 0.25*INV(dy)*INV(dz);
- CCTK_REAL const p1odx = INV(dx);
+ CCTK_REAL const p1o4dxdy = 0.25*INV(dx*dy);
+ CCTK_REAL const p1o4dxdz = 0.25*INV(dx*dz);
+ CCTK_REAL const p1o4dydz = 0.25*INV(dy*dz);
CCTK_REAL const p1odx2 = INV(SQR(dx));
- CCTK_REAL const p1ody = INV(dy);
CCTK_REAL const p1ody2 = INV(SQR(dy));
- CCTK_REAL const p1odz = INV(dz);
CCTK_REAL const p1odz2 = INV(SQR(dz));
CCTK_REAL const pm1o12dx2 = -0.0833333333333333333333333333333*INV(SQR(dx));
CCTK_REAL const pm1o12dy2 = -0.0833333333333333333333333333333*INV(SQR(dy));
@@ -105,9 +99,9 @@ static void EM_evol_Body(cGH const * restrict const cctkGH, int const dir, int c
/* Loop over the grid points */
#pragma omp parallel
- CCTK_LOOP3 (EM_evol,
+ CCTK_LOOP3(EM_evol,
i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2],
- cctk_lsh[0],cctk_lsh[1],cctk_lsh[2])
+ cctk_ash[0],cctk_ash[1],cctk_ash[2])
{
ptrdiff_t const index = di*i + dj*j + dk*k;
@@ -158,7 +152,7 @@ static void EM_evol_Body(cGH const * restrict const cctkGH, int const dir, int c
El2rhs[index] = El2rhsL;
El3rhs[index] = El3rhsL;
}
- CCTK_ENDLOOP3 (EM_evol);
+ CCTK_ENDLOOP3(EM_evol);
}
extern "C" void EM_evol(CCTK_ARGUMENTS)
@@ -177,12 +171,16 @@ extern "C" void EM_evol(CCTK_ARGUMENTS)
return;
}
- const char *groups[] = {"EM::B_group","EM::B_grouprhs","EM::El_group","EM::El_grouprhs"};
+ const char *const groups[] = {
+ "EM::B_group",
+ "EM::B_grouprhs",
+ "EM::El_group",
+ "EM::El_grouprhs"};
GenericFD_AssertGroupStorage(cctkGH, "EM_evol", 4, groups);
GenericFD_EnsureStencilFits(cctkGH, "EM_evol", 1, 1, 1);
- GenericFD_LoopOverInterior(cctkGH, &EM_evol_Body);
+ GenericFD_LoopOverInterior(cctkGH, EM_evol_Body);
if (verbose > 1)
{
diff --git a/Examples/EM/src/EM_initial.cc b/Examples/EM/src/EM_initial.cc
index 8d0e0b0..727a18f 100644
--- a/Examples/EM/src/EM_initial.cc
+++ b/Examples/EM/src/EM_initial.cc
@@ -17,10 +17,10 @@
/* Define macros used in calculations */
#define INITVALUE (42)
-#define QAD(x) (SQR(SQR(x)))
-#define INV(x) ((1.0) / (x))
+#define INV(x) ((CCTK_REAL)1.0 / (x))
#define SQR(x) ((x) * (x))
-#define CUB(x) ((x) * (x) * (x))
+#define CUB(x) ((x) * SQR(x))
+#define QAD(x) (SQR(SQR(x)))
static void EM_initial_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const imin[3], int const imax[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
@@ -28,8 +28,6 @@ static void EM_initial_Body(cGH const * restrict const cctkGH, int const dir, in
DECLARE_CCTK_PARAMETERS;
- /* Declare finite differencing variables */
-
/* Include user-supplied include files */
/* Initialise finite differencing variables */
@@ -57,24 +55,20 @@ static void EM_initial_Body(cGH const * restrict const cctkGH, int const dir, in
CCTK_REAL const hdzi = 0.5 * dzi;
/* Initialize predefined quantities */
- CCTK_REAL const p1o1 = 1;
CCTK_REAL const p1o12dx = 0.0833333333333333333333333333333*INV(dx);
CCTK_REAL const p1o12dy = 0.0833333333333333333333333333333*INV(dy);
CCTK_REAL const p1o12dz = 0.0833333333333333333333333333333*INV(dz);
- CCTK_REAL const p1o144dxdy = 0.00694444444444444444444444444444*INV(dx)*INV(dy);
- CCTK_REAL const p1o144dxdz = 0.00694444444444444444444444444444*INV(dx)*INV(dz);
- CCTK_REAL const p1o144dydz = 0.00694444444444444444444444444444*INV(dy)*INV(dz);
+ CCTK_REAL const p1o144dxdy = 0.00694444444444444444444444444444*INV(dx*dy);
+ CCTK_REAL const p1o144dxdz = 0.00694444444444444444444444444444*INV(dx*dz);
+ CCTK_REAL const p1o144dydz = 0.00694444444444444444444444444444*INV(dy*dz);
CCTK_REAL const p1o2dx = 0.5*INV(dx);
CCTK_REAL const p1o2dy = 0.5*INV(dy);
CCTK_REAL const p1o2dz = 0.5*INV(dz);
- CCTK_REAL const p1o4dxdy = 0.25*INV(dx)*INV(dy);
- CCTK_REAL const p1o4dxdz = 0.25*INV(dx)*INV(dz);
- CCTK_REAL const p1o4dydz = 0.25*INV(dy)*INV(dz);
- CCTK_REAL const p1odx = INV(dx);
+ CCTK_REAL const p1o4dxdy = 0.25*INV(dx*dy);
+ CCTK_REAL const p1o4dxdz = 0.25*INV(dx*dz);
+ CCTK_REAL const p1o4dydz = 0.25*INV(dy*dz);
CCTK_REAL const p1odx2 = INV(SQR(dx));
- CCTK_REAL const p1ody = INV(dy);
CCTK_REAL const p1ody2 = INV(SQR(dy));
- CCTK_REAL const p1odz = INV(dz);
CCTK_REAL const p1odz2 = INV(SQR(dz));
CCTK_REAL const pm1o12dx2 = -0.0833333333333333333333333333333*INV(SQR(dx));
CCTK_REAL const pm1o12dy2 = -0.0833333333333333333333333333333*INV(SQR(dy));
@@ -90,9 +84,9 @@ static void EM_initial_Body(cGH const * restrict const cctkGH, int const dir, in
/* Loop over the grid points */
#pragma omp parallel
- CCTK_LOOP3 (EM_initial,
+ CCTK_LOOP3(EM_initial,
i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2],
- cctk_lsh[0],cctk_lsh[1],cctk_lsh[2])
+ cctk_ash[0],cctk_ash[1],cctk_ash[2])
{
ptrdiff_t const index = di*i + dj*j + dk*k;
@@ -107,9 +101,9 @@ static void EM_initial_Body(cGH const * restrict const cctkGH, int const dir, in
/* Precompute derivatives */
/* Calculate temporaries and grid functions */
- CCTK_REAL El1L = Cos(2*(xL + yL)*Pi)*ToReal(sigma);
+ CCTK_REAL El1L = cos(2*(xL + yL)*Pi)*ToReal(sigma);
- CCTK_REAL El2L = Cos(2*xL*Pi)*(-1 + ToReal(sigma)) - Cos(2*(xL +
+ CCTK_REAL El2L = cos(2*xL*Pi)*(-1 + ToReal(sigma)) - cos(2*(xL +
yL)*Pi)*ToReal(sigma);
CCTK_REAL El3L = 0;
@@ -118,7 +112,7 @@ static void EM_initial_Body(cGH const * restrict const cctkGH, int const dir, in
CCTK_REAL B2L = 0;
- CCTK_REAL B3L = -(Cos(2*xL*Pi)*(-1 + ToReal(sigma))) + Cos(2*(xL +
+ CCTK_REAL B3L = -(cos(2*xL*Pi)*(-1 + ToReal(sigma))) + cos(2*(xL +
yL)*Pi)*ToReal(sigma);
/* Copy local copies back to grid functions */
@@ -129,7 +123,7 @@ static void EM_initial_Body(cGH const * restrict const cctkGH, int const dir, in
El2[index] = El2L;
El3[index] = El3L;
}
- CCTK_ENDLOOP3 (EM_initial);
+ CCTK_ENDLOOP3(EM_initial);
}
extern "C" void EM_initial(CCTK_ARGUMENTS)
@@ -148,11 +142,14 @@ extern "C" void EM_initial(CCTK_ARGUMENTS)
return;
}
- const char *groups[] = {"EM::B_group","EM::El_group","grid::coordinates"};
+ const char *const groups[] = {
+ "EM::B_group",
+ "EM::El_group",
+ "grid::coordinates"};
GenericFD_AssertGroupStorage(cctkGH, "EM_initial", 3, groups);
- GenericFD_LoopOverEverything(cctkGH, &EM_initial_Body);
+ GenericFD_LoopOverEverything(cctkGH, EM_initial_Body);
if (verbose > 1)
{
diff --git a/Examples/EM/src/make.code.defn b/Examples/EM/src/make.code.defn
index 0d52b41..79facad 100644
--- a/Examples/EM/src/make.code.defn
+++ b/Examples/EM/src/make.code.defn
@@ -1,3 +1,3 @@
# File produced by Kranc
-SRCS = Startup.cc RegisterMoL.cc RegisterSymmetries.cc EM_initial.cc EM_evol.cc EM_constraints.cc EM_energy.cc Boundaries.cc
+SRCS = Startup.cc RegisterSymmetries.cc RegisterMoL.cc EM_initial.cc EM_evol.cc EM_constraints.cc EM_energy.cc Boundaries.cc
diff --git a/Examples/Euler/param.ccl b/Examples/Euler/param.ccl
index 96ee289..c14ea15 100644
--- a/Examples/Euler/param.ccl
+++ b/Examples/Euler/param.ccl
@@ -82,12 +82,6 @@ CCTK_REAL alpha "alpha"
"*:*" :: ""
} 0
-restricted:
-CCTK_REAL hlleAlpha "hlleAlpha"
-{
- "*:*" :: ""
-} 0
-
private:
KEYWORD initial_data "initial_data"
{
diff --git a/Examples/Euler/schedule.ccl b/Examples/Euler/schedule.ccl
index 0e5da74..a2a23c6 100644
--- a/Examples/Euler/schedule.ccl
+++ b/Examples/Euler/schedule.ccl
@@ -175,12 +175,6 @@ schedule Euler_Startup at STARTUP
OPTIONS: meta
} "create banner"
-schedule Euler_RegisterVars in MoL_Register
-{
- LANG: C
- OPTIONS: meta
-} "Register Variables for MoL"
-
schedule Euler_RegisterSymmetries in SymmetryRegister
{
LANG: C
@@ -193,22 +187,53 @@ if (CCTK_EQUALS(initial_data, "shock"))
schedule euler_initial_shock at CCTK_INITIAL as euler_initial
{
LANG: C
+ READS: grid::x
+ WRITES: Euler::p
+ WRITES: Euler::rho
+ WRITES: Euler::v1
+ WRITES: Euler::v2
+ WRITES: Euler::v3
} "euler_initial_shock"
}
schedule euler_primitives in MoL_PostStep after Euler_ApplyBCs
{
LANG: C
+ READS: Euler::Den
+ READS: Euler::En
+ READS: Euler::S1
+ READS: Euler::S2
+ READS: Euler::S3
+ WRITES: Euler::p
+ WRITES: Euler::rho
+ WRITES: Euler::v1
+ WRITES: Euler::v2
+ WRITES: Euler::v3
} "euler_primitives"
schedule euler_conserved at INITIAL after euler_initial
{
LANG: C
+ READS: Euler::p
+ READS: Euler::rho
+ READS: Euler::v1
+ READS: Euler::v2
+ READS: Euler::v3
+ WRITES: Euler::Den
+ WRITES: Euler::En
+ WRITES: Euler::S1
+ WRITES: Euler::S2
+ WRITES: Euler::S3
} "euler_conserved"
schedule euler_zero_rhs in MoL_CalcRHS
{
LANG: C
+ WRITES: Euler::Denrhs
+ WRITES: Euler::Enrhs
+ WRITES: Euler::S1rhs
+ WRITES: Euler::S2rhs
+ WRITES: Euler::S3rhs
} "euler_zero_rhs"
schedule group euler_reconstruct_1_group in MoL_CalcRHS after euler_zero_rhs
@@ -219,6 +244,21 @@ schedule group euler_reconstruct_1_group in MoL_CalcRHS after euler_zero_rhs
schedule euler_reconstruct_1 in euler_reconstruct_1_group
{
LANG: C
+ READS: Euler::p
+ READS: Euler::rho
+ READS: Euler::v1
+ READS: Euler::v2
+ READS: Euler::v3
+ WRITES: Euler::pLeft
+ WRITES: Euler::pRight
+ WRITES: Euler::rhoLeft
+ WRITES: Euler::rhoRight
+ WRITES: Euler::vLeft1
+ WRITES: Euler::vLeft2
+ WRITES: Euler::vLeft3
+ WRITES: Euler::vRight1
+ WRITES: Euler::vRight2
+ WRITES: Euler::vRight3
} "euler_reconstruct_1"
schedule euler_reconstruct_1_SelectBCs in euler_reconstruct_1_bc_group
@@ -251,6 +291,26 @@ schedule group euler_reconstruct_1_bc_group in MoL_PseudoEvolutionBoundaries aft
schedule euler_conserved_flux_1 in MoL_CalcRHS after euler_reconstruct_1
{
LANG: C
+ READS: Euler::pLeft
+ READS: Euler::pRight
+ READS: Euler::rhoLeft
+ READS: Euler::rhoRight
+ READS: Euler::vLeft1
+ READS: Euler::vLeft2
+ READS: Euler::vLeft3
+ READS: Euler::vRight1
+ READS: Euler::vRight2
+ READS: Euler::vRight3
+ WRITES: Euler::DenLeft
+ WRITES: Euler::DenRight
+ WRITES: Euler::EnLeft
+ WRITES: Euler::EnRight
+ WRITES: Euler::SLeft1
+ WRITES: Euler::SLeft2
+ WRITES: Euler::SLeft3
+ WRITES: Euler::SRight1
+ WRITES: Euler::SRight2
+ WRITES: Euler::SRight3
} "euler_conserved_flux_1"
schedule group euler_flux_1_group in MoL_CalcRHS after euler_conserved_flux_1
@@ -261,6 +321,31 @@ schedule group euler_flux_1_group in MoL_CalcRHS after euler_conserved_flux_1
schedule euler_flux_1 in euler_flux_1_group
{
LANG: C
+ READS: Euler::DenLeft
+ READS: Euler::DenRight
+ READS: Euler::EnLeft
+ READS: Euler::EnRight
+ READS: Euler::pLeft
+ READS: Euler::pRight
+ READS: Euler::rhoLeft
+ READS: Euler::rhoRight
+ READS: Euler::SLeft1
+ READS: Euler::SLeft2
+ READS: Euler::SLeft3
+ READS: Euler::SRight1
+ READS: Euler::SRight2
+ READS: Euler::SRight3
+ READS: Euler::vLeft1
+ READS: Euler::vLeft2
+ READS: Euler::vLeft3
+ READS: Euler::vRight1
+ READS: Euler::vRight2
+ READS: Euler::vRight3
+ WRITES: Euler::DenF
+ WRITES: Euler::EnF
+ WRITES: Euler::SF1
+ WRITES: Euler::SF2
+ WRITES: Euler::SF3
} "euler_flux_1"
schedule euler_flux_1_SelectBCs in euler_flux_1_bc_group
@@ -290,6 +375,21 @@ schedule group euler_flux_1_bc_group in MoL_PseudoEvolutionBoundaries after MoL_
schedule euler_rhs_1 in MoL_CalcRHS after euler_flux_1
{
LANG: C
+ READS: Euler::DenF
+ READS: Euler::Denrhs
+ READS: Euler::EnF
+ READS: Euler::Enrhs
+ READS: Euler::S1rhs
+ READS: Euler::S2rhs
+ READS: Euler::S3rhs
+ READS: Euler::SF1
+ READS: Euler::SF2
+ READS: Euler::SF3
+ WRITES: Euler::Denrhs
+ WRITES: Euler::Enrhs
+ WRITES: Euler::S1rhs
+ WRITES: Euler::S2rhs
+ WRITES: Euler::S3rhs
} "euler_rhs_1"
schedule Euler_SelectBoundConds in MoL_PostStep
@@ -307,6 +407,12 @@ schedule Euler_CheckBoundaries at BASEGRID
OPTIONS: meta
} "check boundaries treatment"
+schedule Euler_RegisterVars in MoL_Register
+{
+ LANG: C
+ OPTIONS: meta
+} "Register Variables for MoL"
+
schedule group ApplyBCs as Euler_ApplyBCs in MoL_PostStep after Euler_SelectBoundConds
{
# no language specified
diff --git a/Examples/Euler/src/euler_conserved.cc b/Examples/Euler/src/euler_conserved.cc
index bfa9113..7f82841 100644
--- a/Examples/Euler/src/euler_conserved.cc
+++ b/Examples/Euler/src/euler_conserved.cc
@@ -17,10 +17,10 @@
/* Define macros used in calculations */
#define INITVALUE (42)
-#define QAD(x) (SQR(SQR(x)))
-#define INV(x) ((1.0) / (x))
+#define INV(x) ((CCTK_REAL)1.0 / (x))
#define SQR(x) ((x) * (x))
-#define CUB(x) ((x) * (x) * (x))
+#define CUB(x) ((x) * SQR(x))
+#define QAD(x) (SQR(SQR(x)))
static void euler_conserved_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const imin[3], int const imax[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
@@ -28,8 +28,6 @@ static void euler_conserved_Body(cGH const * restrict const cctkGH, int const di
DECLARE_CCTK_PARAMETERS;
- /* Declare finite differencing variables */
-
/* Include user-supplied include files */
/* Initialise finite differencing variables */
@@ -61,15 +59,15 @@ static void euler_conserved_Body(cGH const * restrict const cctkGH, int const di
CCTK_REAL const p1o12dx = 0.0833333333333333333333333333333*INV(dx);
CCTK_REAL const p1o12dy = 0.0833333333333333333333333333333*INV(dy);
CCTK_REAL const p1o12dz = 0.0833333333333333333333333333333*INV(dz);
- CCTK_REAL const p1o144dxdy = 0.00694444444444444444444444444444*INV(dx)*INV(dy);
- CCTK_REAL const p1o144dxdz = 0.00694444444444444444444444444444*INV(dx)*INV(dz);
- CCTK_REAL const p1o144dydz = 0.00694444444444444444444444444444*INV(dy)*INV(dz);
+ CCTK_REAL const p1o144dxdy = 0.00694444444444444444444444444444*INV(dx*dy);
+ CCTK_REAL const p1o144dxdz = 0.00694444444444444444444444444444*INV(dx*dz);
+ CCTK_REAL const p1o144dydz = 0.00694444444444444444444444444444*INV(dy*dz);
CCTK_REAL const p1o2dx = 0.5*INV(dx);
CCTK_REAL const p1o2dy = 0.5*INV(dy);
CCTK_REAL const p1o2dz = 0.5*INV(dz);
- CCTK_REAL const p1o4dxdy = 0.25*INV(dx)*INV(dy);
- CCTK_REAL const p1o4dxdz = 0.25*INV(dx)*INV(dz);
- CCTK_REAL const p1o4dydz = 0.25*INV(dy)*INV(dz);
+ CCTK_REAL const p1o4dxdy = 0.25*INV(dx*dy);
+ CCTK_REAL const p1o4dxdz = 0.25*INV(dx*dz);
+ CCTK_REAL const p1o4dydz = 0.25*INV(dy*dz);
CCTK_REAL const p1odx = INV(dx);
CCTK_REAL const p1odx2 = INV(SQR(dx));
CCTK_REAL const p1ody = INV(dy);
@@ -93,9 +91,9 @@ static void euler_conserved_Body(cGH const * restrict const cctkGH, int const di
/* Loop over the grid points */
#pragma omp parallel
- CCTK_LOOP3 (euler_conserved,
+ CCTK_LOOP3(euler_conserved,
i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2],
- cctk_lsh[0],cctk_lsh[1],cctk_lsh[2])
+ cctk_ash[0],cctk_ash[1],cctk_ash[2])
{
ptrdiff_t const index = di*i + dj*j + dk*k;
@@ -131,7 +129,7 @@ static void euler_conserved_Body(cGH const * restrict const cctkGH, int const di
S2[index] = S2L;
S3[index] = S3L;
}
- CCTK_ENDLOOP3 (euler_conserved);
+ CCTK_ENDLOOP3(euler_conserved);
}
extern "C" void euler_conserved(CCTK_ARGUMENTS)
@@ -150,11 +148,17 @@ extern "C" void euler_conserved(CCTK_ARGUMENTS)
return;
}
- const char *groups[] = {"Euler::Den_group","Euler::En_group","Euler::p_group","Euler::rho_group","Euler::S_group","Euler::v_group"};
+ const char *const groups[] = {
+ "Euler::Den_group",
+ "Euler::En_group",
+ "Euler::p_group",
+ "Euler::rho_group",
+ "Euler::S_group",
+ "Euler::v_group"};
GenericFD_AssertGroupStorage(cctkGH, "euler_conserved", 6, groups);
- GenericFD_LoopOverEverything(cctkGH, &euler_conserved_Body);
+ GenericFD_LoopOverEverything(cctkGH, euler_conserved_Body);
if (verbose > 1)
{
diff --git a/Examples/Euler/src/euler_conserved_flux_1.cc b/Examples/Euler/src/euler_conserved_flux_1.cc
index 13cf71b..f0abdd5 100644
--- a/Examples/Euler/src/euler_conserved_flux_1.cc
+++ b/Examples/Euler/src/euler_conserved_flux_1.cc
@@ -17,10 +17,10 @@
/* Define macros used in calculations */
#define INITVALUE (42)
-#define QAD(x) (SQR(SQR(x)))
-#define INV(x) ((1.0) / (x))
+#define INV(x) ((CCTK_REAL)1.0 / (x))
#define SQR(x) ((x) * (x))
-#define CUB(x) ((x) * (x) * (x))
+#define CUB(x) ((x) * SQR(x))
+#define QAD(x) (SQR(SQR(x)))
static void euler_conserved_flux_1_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const imin[3], int const imax[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
@@ -28,8 +28,6 @@ static void euler_conserved_flux_1_Body(cGH const * restrict const cctkGH, int c
DECLARE_CCTK_PARAMETERS;
- /* Declare finite differencing variables */
-
/* Include user-supplied include files */
/* Initialise finite differencing variables */
@@ -61,15 +59,15 @@ static void euler_conserved_flux_1_Body(cGH const * restrict const cctkGH, int c
CCTK_REAL const p1o12dx = 0.0833333333333333333333333333333*INV(dx);
CCTK_REAL const p1o12dy = 0.0833333333333333333333333333333*INV(dy);
CCTK_REAL const p1o12dz = 0.0833333333333333333333333333333*INV(dz);
- CCTK_REAL const p1o144dxdy = 0.00694444444444444444444444444444*INV(dx)*INV(dy);
- CCTK_REAL const p1o144dxdz = 0.00694444444444444444444444444444*INV(dx)*INV(dz);
- CCTK_REAL const p1o144dydz = 0.00694444444444444444444444444444*INV(dy)*INV(dz);
+ CCTK_REAL const p1o144dxdy = 0.00694444444444444444444444444444*INV(dx*dy);
+ CCTK_REAL const p1o144dxdz = 0.00694444444444444444444444444444*INV(dx*dz);
+ CCTK_REAL const p1o144dydz = 0.00694444444444444444444444444444*INV(dy*dz);
CCTK_REAL const p1o2dx = 0.5*INV(dx);
CCTK_REAL const p1o2dy = 0.5*INV(dy);
CCTK_REAL const p1o2dz = 0.5*INV(dz);
- CCTK_REAL const p1o4dxdy = 0.25*INV(dx)*INV(dy);
- CCTK_REAL const p1o4dxdz = 0.25*INV(dx)*INV(dz);
- CCTK_REAL const p1o4dydz = 0.25*INV(dy)*INV(dz);
+ CCTK_REAL const p1o4dxdy = 0.25*INV(dx*dy);
+ CCTK_REAL const p1o4dxdz = 0.25*INV(dx*dz);
+ CCTK_REAL const p1o4dydz = 0.25*INV(dy*dz);
CCTK_REAL const p1odx = INV(dx);
CCTK_REAL const p1odx2 = INV(SQR(dx));
CCTK_REAL const p1ody = INV(dy);
@@ -93,9 +91,9 @@ static void euler_conserved_flux_1_Body(cGH const * restrict const cctkGH, int c
/* Loop over the grid points */
#pragma omp parallel
- CCTK_LOOP3 (euler_conserved_flux_1,
+ CCTK_LOOP3(euler_conserved_flux_1,
i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2],
- cctk_lsh[0],cctk_lsh[1],cctk_lsh[2])
+ cctk_ash[0],cctk_ash[1],cctk_ash[2])
{
ptrdiff_t const index = di*i + dj*j + dk*k;
@@ -154,7 +152,7 @@ static void euler_conserved_flux_1_Body(cGH const * restrict const cctkGH, int c
SRight2[index] = SRight2L;
SRight3[index] = SRight3L;
}
- CCTK_ENDLOOP3 (euler_conserved_flux_1);
+ CCTK_ENDLOOP3(euler_conserved_flux_1);
}
extern "C" void euler_conserved_flux_1(CCTK_ARGUMENTS)
@@ -173,11 +171,23 @@ extern "C" void euler_conserved_flux_1(CCTK_ARGUMENTS)
return;
}
- const char *groups[] = {"Euler::DenLeft_group","Euler::DenRight_group","Euler::EnLeft_group","Euler::EnRight_group","Euler::pLeft_group","Euler::pRight_group","Euler::rhoLeft_group","Euler::rhoRight_group","Euler::SLeft_group","Euler::SRight_group","Euler::vLeft_group","Euler::vRight_group"};
+ const char *const groups[] = {
+ "Euler::DenLeft_group",
+ "Euler::DenRight_group",
+ "Euler::EnLeft_group",
+ "Euler::EnRight_group",
+ "Euler::pLeft_group",
+ "Euler::pRight_group",
+ "Euler::rhoLeft_group",
+ "Euler::rhoRight_group",
+ "Euler::SLeft_group",
+ "Euler::SRight_group",
+ "Euler::vLeft_group",
+ "Euler::vRight_group"};
GenericFD_AssertGroupStorage(cctkGH, "euler_conserved_flux_1", 12, groups);
- GenericFD_LoopOverEverything(cctkGH, &euler_conserved_flux_1_Body);
+ GenericFD_LoopOverEverything(cctkGH, euler_conserved_flux_1_Body);
if (verbose > 1)
{
diff --git a/Examples/Euler/src/euler_flux_1.cc b/Examples/Euler/src/euler_flux_1.cc
index 4786a56..4286e42 100644
--- a/Examples/Euler/src/euler_flux_1.cc
+++ b/Examples/Euler/src/euler_flux_1.cc
@@ -17,10 +17,10 @@
/* Define macros used in calculations */
#define INITVALUE (42)
-#define QAD(x) (SQR(SQR(x)))
-#define INV(x) ((1.0) / (x))
+#define INV(x) ((CCTK_REAL)1.0 / (x))
#define SQR(x) ((x) * (x))
-#define CUB(x) ((x) * (x) * (x))
+#define CUB(x) ((x) * SQR(x))
+#define QAD(x) (SQR(SQR(x)))
extern "C" void euler_flux_1_SelectBCs(CCTK_ARGUMENTS)
{
@@ -46,8 +46,6 @@ static void euler_flux_1_Body(cGH const * restrict const cctkGH, int const dir,
DECLARE_CCTK_PARAMETERS;
- /* Declare finite differencing variables */
-
/* Include user-supplied include files */
/* Initialise finite differencing variables */
@@ -79,15 +77,15 @@ static void euler_flux_1_Body(cGH const * restrict const cctkGH, int const dir,
CCTK_REAL const p1o12dx = 0.0833333333333333333333333333333*INV(dx);
CCTK_REAL const p1o12dy = 0.0833333333333333333333333333333*INV(dy);
CCTK_REAL const p1o12dz = 0.0833333333333333333333333333333*INV(dz);
- CCTK_REAL const p1o144dxdy = 0.00694444444444444444444444444444*INV(dx)*INV(dy);
- CCTK_REAL const p1o144dxdz = 0.00694444444444444444444444444444*INV(dx)*INV(dz);
- CCTK_REAL const p1o144dydz = 0.00694444444444444444444444444444*INV(dy)*INV(dz);
+ CCTK_REAL const p1o144dxdy = 0.00694444444444444444444444444444*INV(dx*dy);
+ CCTK_REAL const p1o144dxdz = 0.00694444444444444444444444444444*INV(dx*dz);
+ CCTK_REAL const p1o144dydz = 0.00694444444444444444444444444444*INV(dy*dz);
CCTK_REAL const p1o2dx = 0.5*INV(dx);
CCTK_REAL const p1o2dy = 0.5*INV(dy);
CCTK_REAL const p1o2dz = 0.5*INV(dz);
- CCTK_REAL const p1o4dxdy = 0.25*INV(dx)*INV(dy);
- CCTK_REAL const p1o4dxdz = 0.25*INV(dx)*INV(dz);
- CCTK_REAL const p1o4dydz = 0.25*INV(dy)*INV(dz);
+ CCTK_REAL const p1o4dxdy = 0.25*INV(dx*dy);
+ CCTK_REAL const p1o4dxdz = 0.25*INV(dx*dz);
+ CCTK_REAL const p1o4dydz = 0.25*INV(dy*dz);
CCTK_REAL const p1odx = INV(dx);
CCTK_REAL const p1odx2 = INV(SQR(dx));
CCTK_REAL const p1ody = INV(dy);
@@ -111,9 +109,9 @@ static void euler_flux_1_Body(cGH const * restrict const cctkGH, int const dir,
/* Loop over the grid points */
#pragma omp parallel
- CCTK_LOOP3 (euler_flux_1,
+ CCTK_LOOP3(euler_flux_1,
i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2],
- cctk_lsh[0],cctk_lsh[1],cctk_lsh[2])
+ cctk_ash[0],cctk_ash[1],cctk_ash[2])
{
ptrdiff_t const index = di*i + dj*j + dk*k;
@@ -189,7 +187,7 @@ static void euler_flux_1_Body(cGH const * restrict const cctkGH, int const dir,
SF2[index] = SF2L;
SF3[index] = SF3L;
}
- CCTK_ENDLOOP3 (euler_flux_1);
+ CCTK_ENDLOOP3(euler_flux_1);
}
extern "C" void euler_flux_1(CCTK_ARGUMENTS)
@@ -208,12 +206,27 @@ extern "C" void euler_flux_1(CCTK_ARGUMENTS)
return;
}
- const char *groups[] = {"Euler::DenF_group","Euler::DenLeft_group","Euler::DenRight_group","Euler::EnF_group","Euler::EnLeft_group","Euler::EnRight_group","Euler::pLeft_group","Euler::pRight_group","Euler::rhoLeft_group","Euler::rhoRight_group","Euler::SF_group","Euler::SLeft_group","Euler::SRight_group","Euler::vLeft_group","Euler::vRight_group"};
+ const char *const groups[] = {
+ "Euler::DenF_group",
+ "Euler::DenLeft_group",
+ "Euler::DenRight_group",
+ "Euler::EnF_group",
+ "Euler::EnLeft_group",
+ "Euler::EnRight_group",
+ "Euler::pLeft_group",
+ "Euler::pRight_group",
+ "Euler::rhoLeft_group",
+ "Euler::rhoRight_group",
+ "Euler::SF_group",
+ "Euler::SLeft_group",
+ "Euler::SRight_group",
+ "Euler::vLeft_group",
+ "Euler::vRight_group"};
GenericFD_AssertGroupStorage(cctkGH, "euler_flux_1", 15, groups);
GenericFD_EnsureStencilFits(cctkGH, "euler_flux_1", 1, 1, 1);
- GenericFD_LoopOverInterior(cctkGH, &euler_flux_1_Body);
+ GenericFD_LoopOverInterior(cctkGH, euler_flux_1_Body);
if (verbose > 1)
{
diff --git a/Examples/Euler/src/euler_initial_shock.cc b/Examples/Euler/src/euler_initial_shock.cc
index e1350f0..73af884 100644
--- a/Examples/Euler/src/euler_initial_shock.cc
+++ b/Examples/Euler/src/euler_initial_shock.cc
@@ -17,10 +17,10 @@
/* Define macros used in calculations */
#define INITVALUE (42)
-#define QAD(x) (SQR(SQR(x)))
-#define INV(x) ((1.0) / (x))
+#define INV(x) ((CCTK_REAL)1.0 / (x))
#define SQR(x) ((x) * (x))
-#define CUB(x) ((x) * (x) * (x))
+#define CUB(x) ((x) * SQR(x))
+#define QAD(x) (SQR(SQR(x)))
static void euler_initial_shock_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const imin[3], int const imax[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
@@ -28,8 +28,6 @@ static void euler_initial_shock_Body(cGH const * restrict const cctkGH, int cons
DECLARE_CCTK_PARAMETERS;
- /* Declare finite differencing variables */
-
/* Include user-supplied include files */
/* Initialise finite differencing variables */
@@ -61,15 +59,15 @@ static void euler_initial_shock_Body(cGH const * restrict const cctkGH, int cons
CCTK_REAL const p1o12dx = 0.0833333333333333333333333333333*INV(dx);
CCTK_REAL const p1o12dy = 0.0833333333333333333333333333333*INV(dy);
CCTK_REAL const p1o12dz = 0.0833333333333333333333333333333*INV(dz);
- CCTK_REAL const p1o144dxdy = 0.00694444444444444444444444444444*INV(dx)*INV(dy);
- CCTK_REAL const p1o144dxdz = 0.00694444444444444444444444444444*INV(dx)*INV(dz);
- CCTK_REAL const p1o144dydz = 0.00694444444444444444444444444444*INV(dy)*INV(dz);
+ CCTK_REAL const p1o144dxdy = 0.00694444444444444444444444444444*INV(dx*dy);
+ CCTK_REAL const p1o144dxdz = 0.00694444444444444444444444444444*INV(dx*dz);
+ CCTK_REAL const p1o144dydz = 0.00694444444444444444444444444444*INV(dy*dz);
CCTK_REAL const p1o2dx = 0.5*INV(dx);
CCTK_REAL const p1o2dy = 0.5*INV(dy);
CCTK_REAL const p1o2dz = 0.5*INV(dz);
- CCTK_REAL const p1o4dxdy = 0.25*INV(dx)*INV(dy);
- CCTK_REAL const p1o4dxdz = 0.25*INV(dx)*INV(dz);
- CCTK_REAL const p1o4dydz = 0.25*INV(dy)*INV(dz);
+ CCTK_REAL const p1o4dxdy = 0.25*INV(dx*dy);
+ CCTK_REAL const p1o4dxdz = 0.25*INV(dx*dz);
+ CCTK_REAL const p1o4dydz = 0.25*INV(dy*dz);
CCTK_REAL const p1odx = INV(dx);
CCTK_REAL const p1odx2 = INV(SQR(dx));
CCTK_REAL const p1ody = INV(dy);
@@ -93,9 +91,9 @@ static void euler_initial_shock_Body(cGH const * restrict const cctkGH, int cons
/* Loop over the grid points */
#pragma omp parallel
- CCTK_LOOP3 (euler_initial_shock,
+ CCTK_LOOP3(euler_initial_shock,
i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2],
- cctk_lsh[0],cctk_lsh[1],cctk_lsh[2])
+ cctk_ash[0],cctk_ash[1],cctk_ash[2])
{
ptrdiff_t const index = di*i + dj*j + dk*k;
@@ -129,7 +127,7 @@ static void euler_initial_shock_Body(cGH const * restrict const cctkGH, int cons
v2[index] = v2L;
v3[index] = v3L;
}
- CCTK_ENDLOOP3 (euler_initial_shock);
+ CCTK_ENDLOOP3(euler_initial_shock);
}
extern "C" void euler_initial_shock(CCTK_ARGUMENTS)
@@ -148,11 +146,15 @@ extern "C" void euler_initial_shock(CCTK_ARGUMENTS)
return;
}
- const char *groups[] = {"grid::coordinates","Euler::p_group","Euler::rho_group","Euler::v_group"};
+ const char *const groups[] = {
+ "grid::coordinates",
+ "Euler::p_group",
+ "Euler::rho_group",
+ "Euler::v_group"};
GenericFD_AssertGroupStorage(cctkGH, "euler_initial_shock", 4, groups);
- GenericFD_LoopOverEverything(cctkGH, &euler_initial_shock_Body);
+ GenericFD_LoopOverEverything(cctkGH, euler_initial_shock_Body);
if (verbose > 1)
{
diff --git a/Examples/Euler/src/euler_primitives.cc b/Examples/Euler/src/euler_primitives.cc
index 6f28417..94e0338 100644
--- a/Examples/Euler/src/euler_primitives.cc
+++ b/Examples/Euler/src/euler_primitives.cc
@@ -17,10 +17,10 @@
/* Define macros used in calculations */
#define INITVALUE (42)
-#define QAD(x) (SQR(SQR(x)))
-#define INV(x) ((1.0) / (x))
+#define INV(x) ((CCTK_REAL)1.0 / (x))
#define SQR(x) ((x) * (x))
-#define CUB(x) ((x) * (x) * (x))
+#define CUB(x) ((x) * SQR(x))
+#define QAD(x) (SQR(SQR(x)))
static void euler_primitives_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const imin[3], int const imax[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
@@ -28,8 +28,6 @@ static void euler_primitives_Body(cGH const * restrict const cctkGH, int const d
DECLARE_CCTK_PARAMETERS;
- /* Declare finite differencing variables */
-
/* Include user-supplied include files */
/* Initialise finite differencing variables */
@@ -61,15 +59,15 @@ static void euler_primitives_Body(cGH const * restrict const cctkGH, int const d
CCTK_REAL const p1o12dx = 0.0833333333333333333333333333333*INV(dx);
CCTK_REAL const p1o12dy = 0.0833333333333333333333333333333*INV(dy);
CCTK_REAL const p1o12dz = 0.0833333333333333333333333333333*INV(dz);
- CCTK_REAL const p1o144dxdy = 0.00694444444444444444444444444444*INV(dx)*INV(dy);
- CCTK_REAL const p1o144dxdz = 0.00694444444444444444444444444444*INV(dx)*INV(dz);
- CCTK_REAL const p1o144dydz = 0.00694444444444444444444444444444*INV(dy)*INV(dz);
+ CCTK_REAL const p1o144dxdy = 0.00694444444444444444444444444444*INV(dx*dy);
+ CCTK_REAL const p1o144dxdz = 0.00694444444444444444444444444444*INV(dx*dz);
+ CCTK_REAL const p1o144dydz = 0.00694444444444444444444444444444*INV(dy*dz);
CCTK_REAL const p1o2dx = 0.5*INV(dx);
CCTK_REAL const p1o2dy = 0.5*INV(dy);
CCTK_REAL const p1o2dz = 0.5*INV(dz);
- CCTK_REAL const p1o4dxdy = 0.25*INV(dx)*INV(dy);
- CCTK_REAL const p1o4dxdz = 0.25*INV(dx)*INV(dz);
- CCTK_REAL const p1o4dydz = 0.25*INV(dy)*INV(dz);
+ CCTK_REAL const p1o4dxdy = 0.25*INV(dx*dy);
+ CCTK_REAL const p1o4dxdz = 0.25*INV(dx*dz);
+ CCTK_REAL const p1o4dydz = 0.25*INV(dy*dz);
CCTK_REAL const p1odx = INV(dx);
CCTK_REAL const p1odx2 = INV(SQR(dx));
CCTK_REAL const p1ody = INV(dy);
@@ -93,9 +91,9 @@ static void euler_primitives_Body(cGH const * restrict const cctkGH, int const d
/* Loop over the grid points */
#pragma omp parallel
- CCTK_LOOP3 (euler_primitives,
+ CCTK_LOOP3(euler_primitives,
i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2],
- cctk_lsh[0],cctk_lsh[1],cctk_lsh[2])
+ cctk_ash[0],cctk_ash[1],cctk_ash[2])
{
ptrdiff_t const index = di*i + dj*j + dk*k;
@@ -131,7 +129,7 @@ static void euler_primitives_Body(cGH const * restrict const cctkGH, int const d
v2[index] = v2L;
v3[index] = v3L;
}
- CCTK_ENDLOOP3 (euler_primitives);
+ CCTK_ENDLOOP3(euler_primitives);
}
extern "C" void euler_primitives(CCTK_ARGUMENTS)
@@ -150,11 +148,17 @@ extern "C" void euler_primitives(CCTK_ARGUMENTS)
return;
}
- const char *groups[] = {"Euler::Den_group","Euler::En_group","Euler::p_group","Euler::rho_group","Euler::S_group","Euler::v_group"};
+ const char *const groups[] = {
+ "Euler::Den_group",
+ "Euler::En_group",
+ "Euler::p_group",
+ "Euler::rho_group",
+ "Euler::S_group",
+ "Euler::v_group"};
GenericFD_AssertGroupStorage(cctkGH, "euler_primitives", 6, groups);
- GenericFD_LoopOverEverything(cctkGH, &euler_primitives_Body);
+ GenericFD_LoopOverEverything(cctkGH, euler_primitives_Body);
if (verbose > 1)
{
diff --git a/Examples/Euler/src/euler_reconstruct_1.cc b/Examples/Euler/src/euler_reconstruct_1.cc
index 976472d..604cb0a 100644
--- a/Examples/Euler/src/euler_reconstruct_1.cc
+++ b/Examples/Euler/src/euler_reconstruct_1.cc
@@ -17,10 +17,10 @@
/* Define macros used in calculations */
#define INITVALUE (42)
-#define QAD(x) (SQR(SQR(x)))
-#define INV(x) ((1.0) / (x))
+#define INV(x) ((CCTK_REAL)1.0 / (x))
#define SQR(x) ((x) * (x))
-#define CUB(x) ((x) * (x) * (x))
+#define CUB(x) ((x) * SQR(x))
+#define QAD(x) (SQR(SQR(x)))
extern "C" void euler_reconstruct_1_SelectBCs(CCTK_ARGUMENTS)
{
@@ -55,8 +55,6 @@ static void euler_reconstruct_1_Body(cGH const * restrict const cctkGH, int cons
DECLARE_CCTK_PARAMETERS;
- /* Declare finite differencing variables */
-
/* Include user-supplied include files */
/* Initialise finite differencing variables */
@@ -88,15 +86,15 @@ static void euler_reconstruct_1_Body(cGH const * restrict const cctkGH, int cons
CCTK_REAL const p1o12dx = 0.0833333333333333333333333333333*INV(dx);
CCTK_REAL const p1o12dy = 0.0833333333333333333333333333333*INV(dy);
CCTK_REAL const p1o12dz = 0.0833333333333333333333333333333*INV(dz);
- CCTK_REAL const p1o144dxdy = 0.00694444444444444444444444444444*INV(dx)*INV(dy);
- CCTK_REAL const p1o144dxdz = 0.00694444444444444444444444444444*INV(dx)*INV(dz);
- CCTK_REAL const p1o144dydz = 0.00694444444444444444444444444444*INV(dy)*INV(dz);
+ CCTK_REAL const p1o144dxdy = 0.00694444444444444444444444444444*INV(dx*dy);
+ CCTK_REAL const p1o144dxdz = 0.00694444444444444444444444444444*INV(dx*dz);
+ CCTK_REAL const p1o144dydz = 0.00694444444444444444444444444444*INV(dy*dz);
CCTK_REAL const p1o2dx = 0.5*INV(dx);
CCTK_REAL const p1o2dy = 0.5*INV(dy);
CCTK_REAL const p1o2dz = 0.5*INV(dz);
- CCTK_REAL const p1o4dxdy = 0.25*INV(dx)*INV(dy);
- CCTK_REAL const p1o4dxdz = 0.25*INV(dx)*INV(dz);
- CCTK_REAL const p1o4dydz = 0.25*INV(dy)*INV(dz);
+ CCTK_REAL const p1o4dxdy = 0.25*INV(dx*dy);
+ CCTK_REAL const p1o4dxdz = 0.25*INV(dx*dz);
+ CCTK_REAL const p1o4dydz = 0.25*INV(dy*dz);
CCTK_REAL const p1odx = INV(dx);
CCTK_REAL const p1odx2 = INV(SQR(dx));
CCTK_REAL const p1ody = INV(dy);
@@ -120,9 +118,9 @@ static void euler_reconstruct_1_Body(cGH const * restrict const cctkGH, int cons
/* Loop over the grid points */
#pragma omp parallel
- CCTK_LOOP3 (euler_reconstruct_1,
+ CCTK_LOOP3(euler_reconstruct_1,
i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2],
- cctk_lsh[0],cctk_lsh[1],cctk_lsh[2])
+ cctk_ash[0],cctk_ash[1],cctk_ash[2])
{
ptrdiff_t const index = di*i + dj*j + dk*k;
@@ -212,7 +210,7 @@ static void euler_reconstruct_1_Body(cGH const * restrict const cctkGH, int cons
vRight2[index] = vRight2L;
vRight3[index] = vRight3L;
}
- CCTK_ENDLOOP3 (euler_reconstruct_1);
+ CCTK_ENDLOOP3(euler_reconstruct_1);
}
extern "C" void euler_reconstruct_1(CCTK_ARGUMENTS)
@@ -231,12 +229,21 @@ extern "C" void euler_reconstruct_1(CCTK_ARGUMENTS)
return;
}
- const char *groups[] = {"Euler::p_group","Euler::pLeft_group","Euler::pRight_group","Euler::rho_group","Euler::rhoLeft_group","Euler::rhoRight_group","Euler::v_group","Euler::vLeft_group","Euler::vRight_group"};
+ const char *const groups[] = {
+ "Euler::p_group",
+ "Euler::pLeft_group",
+ "Euler::pRight_group",
+ "Euler::rho_group",
+ "Euler::rhoLeft_group",
+ "Euler::rhoRight_group",
+ "Euler::v_group",
+ "Euler::vLeft_group",
+ "Euler::vRight_group"};
GenericFD_AssertGroupStorage(cctkGH, "euler_reconstruct_1", 9, groups);
GenericFD_EnsureStencilFits(cctkGH, "euler_reconstruct_1", 1, 1, 1);
- GenericFD_LoopOverInterior(cctkGH, &euler_reconstruct_1_Body);
+ GenericFD_LoopOverInterior(cctkGH, euler_reconstruct_1_Body);
if (verbose > 1)
{
diff --git a/Examples/Euler/src/euler_rhs_1.cc b/Examples/Euler/src/euler_rhs_1.cc
index fa611a2..a2fa763 100644
--- a/Examples/Euler/src/euler_rhs_1.cc
+++ b/Examples/Euler/src/euler_rhs_1.cc
@@ -17,10 +17,10 @@
/* Define macros used in calculations */
#define INITVALUE (42)
-#define QAD(x) (SQR(SQR(x)))
-#define INV(x) ((1.0) / (x))
+#define INV(x) ((CCTK_REAL)1.0 / (x))
#define SQR(x) ((x) * (x))
-#define CUB(x) ((x) * (x) * (x))
+#define CUB(x) ((x) * SQR(x))
+#define QAD(x) (SQR(SQR(x)))
extern "C" void euler_rhs_1_SelectBCs(CCTK_ARGUMENTS)
{
@@ -46,8 +46,6 @@ static void euler_rhs_1_Body(cGH const * restrict const cctkGH, int const dir, i
DECLARE_CCTK_PARAMETERS;
- /* Declare finite differencing variables */
-
/* Include user-supplied include files */
/* Initialise finite differencing variables */
@@ -79,15 +77,15 @@ static void euler_rhs_1_Body(cGH const * restrict const cctkGH, int const dir, i
CCTK_REAL const p1o12dx = 0.0833333333333333333333333333333*INV(dx);
CCTK_REAL const p1o12dy = 0.0833333333333333333333333333333*INV(dy);
CCTK_REAL const p1o12dz = 0.0833333333333333333333333333333*INV(dz);
- CCTK_REAL const p1o144dxdy = 0.00694444444444444444444444444444*INV(dx)*INV(dy);
- CCTK_REAL const p1o144dxdz = 0.00694444444444444444444444444444*INV(dx)*INV(dz);
- CCTK_REAL const p1o144dydz = 0.00694444444444444444444444444444*INV(dy)*INV(dz);
+ CCTK_REAL const p1o144dxdy = 0.00694444444444444444444444444444*INV(dx*dy);
+ CCTK_REAL const p1o144dxdz = 0.00694444444444444444444444444444*INV(dx*dz);
+ CCTK_REAL const p1o144dydz = 0.00694444444444444444444444444444*INV(dy*dz);
CCTK_REAL const p1o2dx = 0.5*INV(dx);
CCTK_REAL const p1o2dy = 0.5*INV(dy);
CCTK_REAL const p1o2dz = 0.5*INV(dz);
- CCTK_REAL const p1o4dxdy = 0.25*INV(dx)*INV(dy);
- CCTK_REAL const p1o4dxdz = 0.25*INV(dx)*INV(dz);
- CCTK_REAL const p1o4dydz = 0.25*INV(dy)*INV(dz);
+ CCTK_REAL const p1o4dxdy = 0.25*INV(dx*dy);
+ CCTK_REAL const p1o4dxdz = 0.25*INV(dx*dz);
+ CCTK_REAL const p1o4dydz = 0.25*INV(dy*dz);
CCTK_REAL const p1odx = INV(dx);
CCTK_REAL const p1odx2 = INV(SQR(dx));
CCTK_REAL const p1ody = INV(dy);
@@ -111,9 +109,9 @@ static void euler_rhs_1_Body(cGH const * restrict const cctkGH, int const dir, i
/* Loop over the grid points */
#pragma omp parallel
- CCTK_LOOP3 (euler_rhs_1,
+ CCTK_LOOP3(euler_rhs_1,
i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2],
- cctk_lsh[0],cctk_lsh[1],cctk_lsh[2])
+ cctk_ash[0],cctk_ash[1],cctk_ash[2])
{
ptrdiff_t const index = di*i + dj*j + dk*k;
@@ -158,7 +156,7 @@ static void euler_rhs_1_Body(cGH const * restrict const cctkGH, int const dir, i
S2rhs[index] = S2rhsL;
S3rhs[index] = S3rhsL;
}
- CCTK_ENDLOOP3 (euler_rhs_1);
+ CCTK_ENDLOOP3(euler_rhs_1);
}
extern "C" void euler_rhs_1(CCTK_ARGUMENTS)
@@ -177,12 +175,18 @@ extern "C" void euler_rhs_1(CCTK_ARGUMENTS)
return;
}
- const char *groups[] = {"Euler::DenF_group","Euler::Den_grouprhs","Euler::EnF_group","Euler::En_grouprhs","Euler::SF_group","Euler::S_grouprhs"};
+ const char *const groups[] = {
+ "Euler::DenF_group",
+ "Euler::Den_grouprhs",
+ "Euler::EnF_group",
+ "Euler::En_grouprhs",
+ "Euler::SF_group",
+ "Euler::S_grouprhs"};
GenericFD_AssertGroupStorage(cctkGH, "euler_rhs_1", 6, groups);
GenericFD_EnsureStencilFits(cctkGH, "euler_rhs_1", 1, 1, 1);
- GenericFD_LoopOverInterior(cctkGH, &euler_rhs_1_Body);
+ GenericFD_LoopOverInterior(cctkGH, euler_rhs_1_Body);
if (verbose > 1)
{
diff --git a/Examples/Euler/src/euler_zero_rhs.cc b/Examples/Euler/src/euler_zero_rhs.cc
index b5371b0..caabc05 100644
--- a/Examples/Euler/src/euler_zero_rhs.cc
+++ b/Examples/Euler/src/euler_zero_rhs.cc
@@ -17,10 +17,10 @@
/* Define macros used in calculations */
#define INITVALUE (42)
-#define QAD(x) (SQR(SQR(x)))
-#define INV(x) ((1.0) / (x))
+#define INV(x) ((CCTK_REAL)1.0 / (x))
#define SQR(x) ((x) * (x))
-#define CUB(x) ((x) * (x) * (x))
+#define CUB(x) ((x) * SQR(x))
+#define QAD(x) (SQR(SQR(x)))
static void euler_zero_rhs_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const imin[3], int const imax[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
@@ -28,8 +28,6 @@ static void euler_zero_rhs_Body(cGH const * restrict const cctkGH, int const dir
DECLARE_CCTK_PARAMETERS;
- /* Declare finite differencing variables */
-
/* Include user-supplied include files */
/* Initialise finite differencing variables */
@@ -61,15 +59,15 @@ static void euler_zero_rhs_Body(cGH const * restrict const cctkGH, int const dir
CCTK_REAL const p1o12dx = 0.0833333333333333333333333333333*INV(dx);
CCTK_REAL const p1o12dy = 0.0833333333333333333333333333333*INV(dy);
CCTK_REAL const p1o12dz = 0.0833333333333333333333333333333*INV(dz);
- CCTK_REAL const p1o144dxdy = 0.00694444444444444444444444444444*INV(dx)*INV(dy);
- CCTK_REAL const p1o144dxdz = 0.00694444444444444444444444444444*INV(dx)*INV(dz);
- CCTK_REAL const p1o144dydz = 0.00694444444444444444444444444444*INV(dy)*INV(dz);
+ CCTK_REAL const p1o144dxdy = 0.00694444444444444444444444444444*INV(dx*dy);
+ CCTK_REAL const p1o144dxdz = 0.00694444444444444444444444444444*INV(dx*dz);
+ CCTK_REAL const p1o144dydz = 0.00694444444444444444444444444444*INV(dy*dz);
CCTK_REAL const p1o2dx = 0.5*INV(dx);
CCTK_REAL const p1o2dy = 0.5*INV(dy);
CCTK_REAL const p1o2dz = 0.5*INV(dz);
- CCTK_REAL const p1o4dxdy = 0.25*INV(dx)*INV(dy);
- CCTK_REAL const p1o4dxdz = 0.25*INV(dx)*INV(dz);
- CCTK_REAL const p1o4dydz = 0.25*INV(dy)*INV(dz);
+ CCTK_REAL const p1o4dxdy = 0.25*INV(dx*dy);
+ CCTK_REAL const p1o4dxdz = 0.25*INV(dx*dz);
+ CCTK_REAL const p1o4dydz = 0.25*INV(dy*dz);
CCTK_REAL const p1odx = INV(dx);
CCTK_REAL const p1odx2 = INV(SQR(dx));
CCTK_REAL const p1ody = INV(dy);
@@ -93,9 +91,9 @@ static void euler_zero_rhs_Body(cGH const * restrict const cctkGH, int const dir
/* Loop over the grid points */
#pragma omp parallel
- CCTK_LOOP3 (euler_zero_rhs,
+ CCTK_LOOP3(euler_zero_rhs,
i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2],
- cctk_lsh[0],cctk_lsh[1],cctk_lsh[2])
+ cctk_ash[0],cctk_ash[1],cctk_ash[2])
{
ptrdiff_t const index = di*i + dj*j + dk*k;
@@ -125,7 +123,7 @@ static void euler_zero_rhs_Body(cGH const * restrict const cctkGH, int const dir
S2rhs[index] = S2rhsL;
S3rhs[index] = S3rhsL;
}
- CCTK_ENDLOOP3 (euler_zero_rhs);
+ CCTK_ENDLOOP3(euler_zero_rhs);
}
extern "C" void euler_zero_rhs(CCTK_ARGUMENTS)
@@ -144,11 +142,14 @@ extern "C" void euler_zero_rhs(CCTK_ARGUMENTS)
return;
}
- const char *groups[] = {"Euler::Den_grouprhs","Euler::En_grouprhs","Euler::S_grouprhs"};
+ const char *const groups[] = {
+ "Euler::Den_grouprhs",
+ "Euler::En_grouprhs",
+ "Euler::S_grouprhs"};
GenericFD_AssertGroupStorage(cctkGH, "euler_zero_rhs", 3, groups);
- GenericFD_LoopOverEverything(cctkGH, &euler_zero_rhs_Body);
+ GenericFD_LoopOverEverything(cctkGH, euler_zero_rhs_Body);
if (verbose > 1)
{
diff --git a/Examples/Euler/src/make.code.defn b/Examples/Euler/src/make.code.defn
index 4081620..48ce643 100644
--- a/Examples/Euler/src/make.code.defn
+++ b/Examples/Euler/src/make.code.defn
@@ -1,3 +1,3 @@
# File produced by Kranc
-SRCS = Startup.cc RegisterMoL.cc RegisterSymmetries.cc euler_initial_shock.cc euler_primitives.cc euler_conserved.cc euler_zero_rhs.cc euler_reconstruct_1.cc euler_conserved_flux_1.cc euler_flux_1.cc euler_rhs_1.cc Boundaries.cc
+SRCS = Startup.cc RegisterSymmetries.cc RegisterMoL.cc euler_initial_shock.cc euler_primitives.cc euler_conserved.cc euler_zero_rhs.cc euler_reconstruct_1.cc euler_conserved_flux_1.cc euler_flux_1.cc euler_rhs_1.cc Boundaries.cc
diff --git a/Examples/EulerAuto/schedule.ccl b/Examples/EulerAuto/schedule.ccl
index 2911d7b..1b1eeda 100644
--- a/Examples/EulerAuto/schedule.ccl
+++ b/Examples/EulerAuto/schedule.ccl
@@ -175,12 +175,6 @@ schedule EulerAuto_Startup at STARTUP
OPTIONS: meta
} "create banner"
-schedule EulerAuto_RegisterVars in MoL_Register
-{
- LANG: C
- OPTIONS: meta
-} "Register Variables for MoL"
-
schedule EulerAuto_RegisterSymmetries in SymmetryRegister
{
LANG: C
@@ -193,22 +187,53 @@ if (CCTK_EQUALS(initial_data, "shock"))
schedule eulerauto_initial_shock at CCTK_INITIAL as eulerauto_initial
{
LANG: C
+ READS: grid::x
+ WRITES: EulerAuto::p
+ WRITES: EulerAuto::rho
+ WRITES: EulerAuto::v1
+ WRITES: EulerAuto::v2
+ WRITES: EulerAuto::v3
} "eulerauto_initial_shock"
}
schedule eulerauto_cons_calc_zero_rhs in MoL_CalcRHS
{
LANG: C
+ WRITES: EulerAuto::Denrhs
+ WRITES: EulerAuto::Enrhs
+ WRITES: EulerAuto::S1rhs
+ WRITES: EulerAuto::S2rhs
+ WRITES: EulerAuto::S3rhs
} "eulerauto_cons_calc_zero_rhs"
schedule eulerauto_cons_calc_conserved at POSTINITIAL
{
LANG: C
+ READS: EulerAuto::p
+ READS: EulerAuto::rho
+ READS: EulerAuto::v1
+ READS: EulerAuto::v2
+ READS: EulerAuto::v3
+ WRITES: EulerAuto::Den
+ WRITES: EulerAuto::En
+ WRITES: EulerAuto::S1
+ WRITES: EulerAuto::S2
+ WRITES: EulerAuto::S3
} "eulerauto_cons_calc_conserved"
schedule eulerauto_cons_calc_primitives in MoL_PostStep after EulerAuto_ApplyBCs
{
LANG: C
+ READS: EulerAuto::Den
+ READS: EulerAuto::En
+ READS: EulerAuto::S1
+ READS: EulerAuto::S2
+ READS: EulerAuto::S3
+ WRITES: EulerAuto::p
+ WRITES: EulerAuto::rho
+ WRITES: EulerAuto::v1
+ WRITES: EulerAuto::v2
+ WRITES: EulerAuto::v3
} "eulerauto_cons_calc_primitives"
schedule group eulerauto_cons_calc_reconstruct_1_group in MoL_CalcRHS after eulerauto_cons_calc_zero_rhs
@@ -219,6 +244,21 @@ schedule group eulerauto_cons_calc_reconstruct_1_group in MoL_CalcRHS after eule
schedule eulerauto_cons_calc_reconstruct_1 in eulerauto_cons_calc_reconstruct_1_group
{
LANG: C
+ READS: EulerAuto::p
+ READS: EulerAuto::rho
+ READS: EulerAuto::v1
+ READS: EulerAuto::v2
+ READS: EulerAuto::v3
+ WRITES: EulerAuto::pLeft
+ WRITES: EulerAuto::pRight
+ WRITES: EulerAuto::rhoLeft
+ WRITES: EulerAuto::rhoRight
+ WRITES: EulerAuto::v1Left
+ WRITES: EulerAuto::v1Right
+ WRITES: EulerAuto::v2Left
+ WRITES: EulerAuto::v2Right
+ WRITES: EulerAuto::v3Left
+ WRITES: EulerAuto::v3Right
} "eulerauto_cons_calc_reconstruct_1"
schedule eulerauto_cons_calc_reconstruct_1_SelectBCs in eulerauto_cons_calc_reconstruct_1_bc_group
@@ -250,6 +290,26 @@ schedule group eulerauto_cons_calc_reconstruct_1_bc_group in MoL_PseudoEvolution
schedule eulerauto_cons_calc_intercell_conserved_1 in MoL_CalcRHS after eulerauto_cons_calc_reconstruct_1
{
LANG: C
+ READS: EulerAuto::pLeft
+ READS: EulerAuto::pRight
+ READS: EulerAuto::rhoLeft
+ READS: EulerAuto::rhoRight
+ READS: EulerAuto::v1Left
+ READS: EulerAuto::v1Right
+ READS: EulerAuto::v2Left
+ READS: EulerAuto::v2Right
+ READS: EulerAuto::v3Left
+ READS: EulerAuto::v3Right
+ WRITES: EulerAuto::DenLeft
+ WRITES: EulerAuto::DenRight
+ WRITES: EulerAuto::EnLeft
+ WRITES: EulerAuto::EnRight
+ WRITES: EulerAuto::S1Left
+ WRITES: EulerAuto::S1Right
+ WRITES: EulerAuto::S2Left
+ WRITES: EulerAuto::S2Right
+ WRITES: EulerAuto::S3Left
+ WRITES: EulerAuto::S3Right
} "eulerauto_cons_calc_intercell_conserved_1"
schedule group eulerauto_cons_calc_flux_1_group in MoL_CalcRHS after eulerauto_cons_calc_intercell_conserved_1
@@ -260,6 +320,31 @@ schedule group eulerauto_cons_calc_flux_1_group in MoL_CalcRHS after eulerauto_c
schedule eulerauto_cons_calc_flux_1 in eulerauto_cons_calc_flux_1_group
{
LANG: C
+ READS: EulerAuto::DenLeft
+ READS: EulerAuto::DenRight
+ READS: EulerAuto::EnLeft
+ READS: EulerAuto::EnRight
+ READS: EulerAuto::pLeft
+ READS: EulerAuto::pRight
+ READS: EulerAuto::rhoLeft
+ READS: EulerAuto::rhoRight
+ READS: EulerAuto::S1Left
+ READS: EulerAuto::S1Right
+ READS: EulerAuto::S2Left
+ READS: EulerAuto::S2Right
+ READS: EulerAuto::S3Left
+ READS: EulerAuto::S3Right
+ READS: EulerAuto::v1Left
+ READS: EulerAuto::v1Right
+ READS: EulerAuto::v2Left
+ READS: EulerAuto::v2Right
+ READS: EulerAuto::v3Left
+ READS: EulerAuto::v3Right
+ WRITES: EulerAuto::DenFlux
+ WRITES: EulerAuto::EnFlux
+ WRITES: EulerAuto::S1Flux
+ WRITES: EulerAuto::S2Flux
+ WRITES: EulerAuto::S3Flux
} "eulerauto_cons_calc_flux_1"
schedule eulerauto_cons_calc_flux_1_SelectBCs in eulerauto_cons_calc_flux_1_bc_group
@@ -291,6 +376,21 @@ schedule group eulerauto_cons_calc_flux_1_bc_group in MoL_PseudoEvolutionBoundar
schedule eulerauto_cons_calc_rhs_1 in MoL_CalcRHS after eulerauto_cons_calc_flux_1
{
LANG: C
+ READS: EulerAuto::DenFlux
+ READS: EulerAuto::Denrhs
+ READS: EulerAuto::EnFlux
+ READS: EulerAuto::Enrhs
+ READS: EulerAuto::S1Flux
+ READS: EulerAuto::S1rhs
+ READS: EulerAuto::S2Flux
+ READS: EulerAuto::S2rhs
+ READS: EulerAuto::S3Flux
+ READS: EulerAuto::S3rhs
+ WRITES: EulerAuto::Denrhs
+ WRITES: EulerAuto::Enrhs
+ WRITES: EulerAuto::S1rhs
+ WRITES: EulerAuto::S2rhs
+ WRITES: EulerAuto::S3rhs
} "eulerauto_cons_calc_rhs_1"
schedule group eulerauto_cons_calc_reconstruct_2_group in MoL_CalcRHS after eulerauto_cons_calc_rhs_1
@@ -301,6 +401,21 @@ schedule group eulerauto_cons_calc_reconstruct_2_group in MoL_CalcRHS after eule
schedule eulerauto_cons_calc_reconstruct_2 in eulerauto_cons_calc_reconstruct_2_group
{
LANG: C
+ READS: EulerAuto::p
+ READS: EulerAuto::rho
+ READS: EulerAuto::v1
+ READS: EulerAuto::v2
+ READS: EulerAuto::v3
+ WRITES: EulerAuto::pLeft
+ WRITES: EulerAuto::pRight
+ WRITES: EulerAuto::rhoLeft
+ WRITES: EulerAuto::rhoRight
+ WRITES: EulerAuto::v1Left
+ WRITES: EulerAuto::v1Right
+ WRITES: EulerAuto::v2Left
+ WRITES: EulerAuto::v2Right
+ WRITES: EulerAuto::v3Left
+ WRITES: EulerAuto::v3Right
} "eulerauto_cons_calc_reconstruct_2"
schedule eulerauto_cons_calc_reconstruct_2_SelectBCs in eulerauto_cons_calc_reconstruct_2_bc_group
@@ -332,6 +447,26 @@ schedule group eulerauto_cons_calc_reconstruct_2_bc_group in MoL_PseudoEvolution
schedule eulerauto_cons_calc_intercell_conserved_2 in MoL_CalcRHS after eulerauto_cons_calc_reconstruct_2
{
LANG: C
+ READS: EulerAuto::pLeft
+ READS: EulerAuto::pRight
+ READS: EulerAuto::rhoLeft
+ READS: EulerAuto::rhoRight
+ READS: EulerAuto::v1Left
+ READS: EulerAuto::v1Right
+ READS: EulerAuto::v2Left
+ READS: EulerAuto::v2Right
+ READS: EulerAuto::v3Left
+ READS: EulerAuto::v3Right
+ WRITES: EulerAuto::DenLeft
+ WRITES: EulerAuto::DenRight
+ WRITES: EulerAuto::EnLeft
+ WRITES: EulerAuto::EnRight
+ WRITES: EulerAuto::S1Left
+ WRITES: EulerAuto::S1Right
+ WRITES: EulerAuto::S2Left
+ WRITES: EulerAuto::S2Right
+ WRITES: EulerAuto::S3Left
+ WRITES: EulerAuto::S3Right
} "eulerauto_cons_calc_intercell_conserved_2"
schedule group eulerauto_cons_calc_flux_2_group in MoL_CalcRHS after eulerauto_cons_calc_intercell_conserved_2
@@ -342,6 +477,31 @@ schedule group eulerauto_cons_calc_flux_2_group in MoL_CalcRHS after eulerauto_c
schedule eulerauto_cons_calc_flux_2 in eulerauto_cons_calc_flux_2_group
{
LANG: C
+ READS: EulerAuto::DenLeft
+ READS: EulerAuto::DenRight
+ READS: EulerAuto::EnLeft
+ READS: EulerAuto::EnRight
+ READS: EulerAuto::pLeft
+ READS: EulerAuto::pRight
+ READS: EulerAuto::rhoLeft
+ READS: EulerAuto::rhoRight
+ READS: EulerAuto::S1Left
+ READS: EulerAuto::S1Right
+ READS: EulerAuto::S2Left
+ READS: EulerAuto::S2Right
+ READS: EulerAuto::S3Left
+ READS: EulerAuto::S3Right
+ READS: EulerAuto::v1Left
+ READS: EulerAuto::v1Right
+ READS: EulerAuto::v2Left
+ READS: EulerAuto::v2Right
+ READS: EulerAuto::v3Left
+ READS: EulerAuto::v3Right
+ WRITES: EulerAuto::DenFlux
+ WRITES: EulerAuto::EnFlux
+ WRITES: EulerAuto::S1Flux
+ WRITES: EulerAuto::S2Flux
+ WRITES: EulerAuto::S3Flux
} "eulerauto_cons_calc_flux_2"
schedule eulerauto_cons_calc_flux_2_SelectBCs in eulerauto_cons_calc_flux_2_bc_group
@@ -373,6 +533,21 @@ schedule group eulerauto_cons_calc_flux_2_bc_group in MoL_PseudoEvolutionBoundar
schedule eulerauto_cons_calc_rhs_2 in MoL_CalcRHS after eulerauto_cons_calc_flux_2
{
LANG: C
+ READS: EulerAuto::DenFlux
+ READS: EulerAuto::Denrhs
+ READS: EulerAuto::EnFlux
+ READS: EulerAuto::Enrhs
+ READS: EulerAuto::S1Flux
+ READS: EulerAuto::S1rhs
+ READS: EulerAuto::S2Flux
+ READS: EulerAuto::S2rhs
+ READS: EulerAuto::S3Flux
+ READS: EulerAuto::S3rhs
+ WRITES: EulerAuto::Denrhs
+ WRITES: EulerAuto::Enrhs
+ WRITES: EulerAuto::S1rhs
+ WRITES: EulerAuto::S2rhs
+ WRITES: EulerAuto::S3rhs
} "eulerauto_cons_calc_rhs_2"
schedule group eulerauto_cons_calc_reconstruct_3_group in MoL_CalcRHS after eulerauto_cons_calc_rhs_2
@@ -383,6 +558,21 @@ schedule group eulerauto_cons_calc_reconstruct_3_group in MoL_CalcRHS after eule
schedule eulerauto_cons_calc_reconstruct_3 in eulerauto_cons_calc_reconstruct_3_group
{
LANG: C
+ READS: EulerAuto::p
+ READS: EulerAuto::rho
+ READS: EulerAuto::v1
+ READS: EulerAuto::v2
+ READS: EulerAuto::v3
+ WRITES: EulerAuto::pLeft
+ WRITES: EulerAuto::pRight
+ WRITES: EulerAuto::rhoLeft
+ WRITES: EulerAuto::rhoRight
+ WRITES: EulerAuto::v1Left
+ WRITES: EulerAuto::v1Right
+ WRITES: EulerAuto::v2Left
+ WRITES: EulerAuto::v2Right
+ WRITES: EulerAuto::v3Left
+ WRITES: EulerAuto::v3Right
} "eulerauto_cons_calc_reconstruct_3"
schedule eulerauto_cons_calc_reconstruct_3_SelectBCs in eulerauto_cons_calc_reconstruct_3_bc_group
@@ -414,6 +604,26 @@ schedule group eulerauto_cons_calc_reconstruct_3_bc_group in MoL_PseudoEvolution
schedule eulerauto_cons_calc_intercell_conserved_3 in MoL_CalcRHS after eulerauto_cons_calc_reconstruct_3
{
LANG: C
+ READS: EulerAuto::pLeft
+ READS: EulerAuto::pRight
+ READS: EulerAuto::rhoLeft
+ READS: EulerAuto::rhoRight
+ READS: EulerAuto::v1Left
+ READS: EulerAuto::v1Right
+ READS: EulerAuto::v2Left
+ READS: EulerAuto::v2Right
+ READS: EulerAuto::v3Left
+ READS: EulerAuto::v3Right
+ WRITES: EulerAuto::DenLeft
+ WRITES: EulerAuto::DenRight
+ WRITES: EulerAuto::EnLeft
+ WRITES: EulerAuto::EnRight
+ WRITES: EulerAuto::S1Left
+ WRITES: EulerAuto::S1Right
+ WRITES: EulerAuto::S2Left
+ WRITES: EulerAuto::S2Right
+ WRITES: EulerAuto::S3Left
+ WRITES: EulerAuto::S3Right
} "eulerauto_cons_calc_intercell_conserved_3"
schedule group eulerauto_cons_calc_flux_3_group in MoL_CalcRHS after eulerauto_cons_calc_intercell_conserved_3
@@ -424,6 +634,31 @@ schedule group eulerauto_cons_calc_flux_3_group in MoL_CalcRHS after eulerauto_c
schedule eulerauto_cons_calc_flux_3 in eulerauto_cons_calc_flux_3_group
{
LANG: C
+ READS: EulerAuto::DenLeft
+ READS: EulerAuto::DenRight
+ READS: EulerAuto::EnLeft
+ READS: EulerAuto::EnRight
+ READS: EulerAuto::pLeft
+ READS: EulerAuto::pRight
+ READS: EulerAuto::rhoLeft
+ READS: EulerAuto::rhoRight
+ READS: EulerAuto::S1Left
+ READS: EulerAuto::S1Right
+ READS: EulerAuto::S2Left
+ READS: EulerAuto::S2Right
+ READS: EulerAuto::S3Left
+ READS: EulerAuto::S3Right
+ READS: EulerAuto::v1Left
+ READS: EulerAuto::v1Right
+ READS: EulerAuto::v2Left
+ READS: EulerAuto::v2Right
+ READS: EulerAuto::v3Left
+ READS: EulerAuto::v3Right
+ WRITES: EulerAuto::DenFlux
+ WRITES: EulerAuto::EnFlux
+ WRITES: EulerAuto::S1Flux
+ WRITES: EulerAuto::S2Flux
+ WRITES: EulerAuto::S3Flux
} "eulerauto_cons_calc_flux_3"
schedule eulerauto_cons_calc_flux_3_SelectBCs in eulerauto_cons_calc_flux_3_bc_group
@@ -455,6 +690,21 @@ schedule group eulerauto_cons_calc_flux_3_bc_group in MoL_PseudoEvolutionBoundar
schedule eulerauto_cons_calc_rhs_3 in MoL_CalcRHS after eulerauto_cons_calc_flux_3
{
LANG: C
+ READS: EulerAuto::DenFlux
+ READS: EulerAuto::Denrhs
+ READS: EulerAuto::EnFlux
+ READS: EulerAuto::Enrhs
+ READS: EulerAuto::S1Flux
+ READS: EulerAuto::S1rhs
+ READS: EulerAuto::S2Flux
+ READS: EulerAuto::S2rhs
+ READS: EulerAuto::S3Flux
+ READS: EulerAuto::S3rhs
+ WRITES: EulerAuto::Denrhs
+ WRITES: EulerAuto::Enrhs
+ WRITES: EulerAuto::S1rhs
+ WRITES: EulerAuto::S2rhs
+ WRITES: EulerAuto::S3rhs
} "eulerauto_cons_calc_rhs_3"
schedule EulerAuto_SelectBoundConds in MoL_PostStep
@@ -472,6 +722,12 @@ schedule EulerAuto_CheckBoundaries at BASEGRID
OPTIONS: meta
} "check boundaries treatment"
+schedule EulerAuto_RegisterVars in MoL_Register
+{
+ LANG: C
+ OPTIONS: meta
+} "Register Variables for MoL"
+
schedule group ApplyBCs as EulerAuto_ApplyBCs in MoL_PostStep after EulerAuto_SelectBoundConds
{
# no language specified
diff --git a/Examples/EulerAuto/src/eulerauto_cons_calc_conserved.cc b/Examples/EulerAuto/src/eulerauto_cons_calc_conserved.cc
index b41803a..9696876 100644
--- a/Examples/EulerAuto/src/eulerauto_cons_calc_conserved.cc
+++ b/Examples/EulerAuto/src/eulerauto_cons_calc_conserved.cc
@@ -17,10 +17,10 @@
/* Define macros used in calculations */
#define INITVALUE (42)
-#define QAD(x) (SQR(SQR(x)))
-#define INV(x) ((1.0) / (x))
+#define INV(x) ((CCTK_REAL)1.0 / (x))
#define SQR(x) ((x) * (x))
-#define CUB(x) ((x) * (x) * (x))
+#define CUB(x) ((x) * SQR(x))
+#define QAD(x) (SQR(SQR(x)))
static void eulerauto_cons_calc_conserved_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const imin[3], int const imax[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
@@ -28,8 +28,6 @@ static void eulerauto_cons_calc_conserved_Body(cGH const * restrict const cctkGH
DECLARE_CCTK_PARAMETERS;
- /* Declare finite differencing variables */
-
/* Include user-supplied include files */
/* Initialise finite differencing variables */
@@ -72,9 +70,9 @@ static void eulerauto_cons_calc_conserved_Body(cGH const * restrict const cctkGH
/* Loop over the grid points */
#pragma omp parallel
- CCTK_LOOP3 (eulerauto_cons_calc_conserved,
+ CCTK_LOOP3(eulerauto_cons_calc_conserved,
i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2],
- cctk_lsh[0],cctk_lsh[1],cctk_lsh[2])
+ cctk_ash[0],cctk_ash[1],cctk_ash[2])
{
ptrdiff_t const index = di*i + dj*j + dk*k;
@@ -110,7 +108,7 @@ static void eulerauto_cons_calc_conserved_Body(cGH const * restrict const cctkGH
S2[index] = S2L;
S3[index] = S3L;
}
- CCTK_ENDLOOP3 (eulerauto_cons_calc_conserved);
+ CCTK_ENDLOOP3(eulerauto_cons_calc_conserved);
}
extern "C" void eulerauto_cons_calc_conserved(CCTK_ARGUMENTS)
@@ -129,11 +127,17 @@ extern "C" void eulerauto_cons_calc_conserved(CCTK_ARGUMENTS)
return;
}
- const char *groups[] = {"EulerAuto::Den_group","EulerAuto::En_group","EulerAuto::p_group","EulerAuto::rho_group","EulerAuto::S_group","EulerAuto::v_group"};
+ const char *const groups[] = {
+ "EulerAuto::Den_group",
+ "EulerAuto::En_group",
+ "EulerAuto::p_group",
+ "EulerAuto::rho_group",
+ "EulerAuto::S_group",
+ "EulerAuto::v_group"};
GenericFD_AssertGroupStorage(cctkGH, "eulerauto_cons_calc_conserved", 6, groups);
- GenericFD_LoopOverEverything(cctkGH, &eulerauto_cons_calc_conserved_Body);
+ GenericFD_LoopOverEverything(cctkGH, eulerauto_cons_calc_conserved_Body);
if (verbose > 1)
{
diff --git a/Examples/EulerAuto/src/eulerauto_cons_calc_flux_1.cc b/Examples/EulerAuto/src/eulerauto_cons_calc_flux_1.cc
index 02eec61..01c2e08 100644
--- a/Examples/EulerAuto/src/eulerauto_cons_calc_flux_1.cc
+++ b/Examples/EulerAuto/src/eulerauto_cons_calc_flux_1.cc
@@ -17,10 +17,10 @@
/* Define macros used in calculations */
#define INITVALUE (42)
-#define QAD(x) (SQR(SQR(x)))
-#define INV(x) ((1.0) / (x))
+#define INV(x) ((CCTK_REAL)1.0 / (x))
#define SQR(x) ((x) * (x))
-#define CUB(x) ((x) * (x) * (x))
+#define CUB(x) ((x) * SQR(x))
+#define QAD(x) (SQR(SQR(x)))
extern "C" void eulerauto_cons_calc_flux_1_SelectBCs(CCTK_ARGUMENTS)
{
@@ -52,8 +52,6 @@ static void eulerauto_cons_calc_flux_1_Body(cGH const * restrict const cctkGH, i
DECLARE_CCTK_PARAMETERS;
- /* Declare finite differencing variables */
-
/* Include user-supplied include files */
/* Initialise finite differencing variables */
@@ -96,9 +94,9 @@ static void eulerauto_cons_calc_flux_1_Body(cGH const * restrict const cctkGH, i
/* Loop over the grid points */
#pragma omp parallel
- CCTK_LOOP3 (eulerauto_cons_calc_flux_1,
+ CCTK_LOOP3(eulerauto_cons_calc_flux_1,
i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2],
- cctk_lsh[0],cctk_lsh[1],cctk_lsh[2])
+ cctk_ash[0],cctk_ash[1],cctk_ash[2])
{
ptrdiff_t const index = di*i + dj*j + dk*k;
@@ -187,7 +185,7 @@ static void eulerauto_cons_calc_flux_1_Body(cGH const * restrict const cctkGH, i
S2Flux[index] = S2FluxL;
S3Flux[index] = S3FluxL;
}
- CCTK_ENDLOOP3 (eulerauto_cons_calc_flux_1);
+ CCTK_ENDLOOP3(eulerauto_cons_calc_flux_1);
}
extern "C" void eulerauto_cons_calc_flux_1(CCTK_ARGUMENTS)
@@ -206,12 +204,27 @@ extern "C" void eulerauto_cons_calc_flux_1(CCTK_ARGUMENTS)
return;
}
- const char *groups[] = {"EulerAuto::Den_flux_group","EulerAuto::Den_lr_group","EulerAuto::En_flux_group","EulerAuto::En_lr_group","EulerAuto::p_lr_group","EulerAuto::rho_lr_group","EulerAuto::S1_flux_group","EulerAuto::S1_lr_group","EulerAuto::S2_flux_group","EulerAuto::S2_lr_group","EulerAuto::S3_flux_group","EulerAuto::S3_lr_group","EulerAuto::v1_lr_group","EulerAuto::v2_lr_group","EulerAuto::v3_lr_group"};
+ const char *const groups[] = {
+ "EulerAuto::Den_flux_group",
+ "EulerAuto::Den_lr_group",
+ "EulerAuto::En_flux_group",
+ "EulerAuto::En_lr_group",
+ "EulerAuto::p_lr_group",
+ "EulerAuto::rho_lr_group",
+ "EulerAuto::S1_flux_group",
+ "EulerAuto::S1_lr_group",
+ "EulerAuto::S2_flux_group",
+ "EulerAuto::S2_lr_group",
+ "EulerAuto::S3_flux_group",
+ "EulerAuto::S3_lr_group",
+ "EulerAuto::v1_lr_group",
+ "EulerAuto::v2_lr_group",
+ "EulerAuto::v3_lr_group"};
GenericFD_AssertGroupStorage(cctkGH, "eulerauto_cons_calc_flux_1", 15, groups);
GenericFD_EnsureStencilFits(cctkGH, "eulerauto_cons_calc_flux_1", 1, 1, 1);
- GenericFD_LoopOverInterior(cctkGH, &eulerauto_cons_calc_flux_1_Body);
+ GenericFD_LoopOverInterior(cctkGH, eulerauto_cons_calc_flux_1_Body);
if (verbose > 1)
{
diff --git a/Examples/EulerAuto/src/eulerauto_cons_calc_flux_2.cc b/Examples/EulerAuto/src/eulerauto_cons_calc_flux_2.cc
index eb6fac5..8ad72ef 100644
--- a/Examples/EulerAuto/src/eulerauto_cons_calc_flux_2.cc
+++ b/Examples/EulerAuto/src/eulerauto_cons_calc_flux_2.cc
@@ -17,10 +17,10 @@
/* Define macros used in calculations */
#define INITVALUE (42)
-#define QAD(x) (SQR(SQR(x)))
-#define INV(x) ((1.0) / (x))
+#define INV(x) ((CCTK_REAL)1.0 / (x))
#define SQR(x) ((x) * (x))
-#define CUB(x) ((x) * (x) * (x))
+#define CUB(x) ((x) * SQR(x))
+#define QAD(x) (SQR(SQR(x)))
extern "C" void eulerauto_cons_calc_flux_2_SelectBCs(CCTK_ARGUMENTS)
{
@@ -52,8 +52,6 @@ static void eulerauto_cons_calc_flux_2_Body(cGH const * restrict const cctkGH, i
DECLARE_CCTK_PARAMETERS;
- /* Declare finite differencing variables */
-
/* Include user-supplied include files */
/* Initialise finite differencing variables */
@@ -96,9 +94,9 @@ static void eulerauto_cons_calc_flux_2_Body(cGH const * restrict const cctkGH, i
/* Loop over the grid points */
#pragma omp parallel
- CCTK_LOOP3 (eulerauto_cons_calc_flux_2,
+ CCTK_LOOP3(eulerauto_cons_calc_flux_2,
i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2],
- cctk_lsh[0],cctk_lsh[1],cctk_lsh[2])
+ cctk_ash[0],cctk_ash[1],cctk_ash[2])
{
ptrdiff_t const index = di*i + dj*j + dk*k;
@@ -187,7 +185,7 @@ static void eulerauto_cons_calc_flux_2_Body(cGH const * restrict const cctkGH, i
S2Flux[index] = S2FluxL;
S3Flux[index] = S3FluxL;
}
- CCTK_ENDLOOP3 (eulerauto_cons_calc_flux_2);
+ CCTK_ENDLOOP3(eulerauto_cons_calc_flux_2);
}
extern "C" void eulerauto_cons_calc_flux_2(CCTK_ARGUMENTS)
@@ -206,12 +204,27 @@ extern "C" void eulerauto_cons_calc_flux_2(CCTK_ARGUMENTS)
return;
}
- const char *groups[] = {"EulerAuto::Den_flux_group","EulerAuto::Den_lr_group","EulerAuto::En_flux_group","EulerAuto::En_lr_group","EulerAuto::p_lr_group","EulerAuto::rho_lr_group","EulerAuto::S1_flux_group","EulerAuto::S1_lr_group","EulerAuto::S2_flux_group","EulerAuto::S2_lr_group","EulerAuto::S3_flux_group","EulerAuto::S3_lr_group","EulerAuto::v1_lr_group","EulerAuto::v2_lr_group","EulerAuto::v3_lr_group"};
+ const char *const groups[] = {
+ "EulerAuto::Den_flux_group",
+ "EulerAuto::Den_lr_group",
+ "EulerAuto::En_flux_group",
+ "EulerAuto::En_lr_group",
+ "EulerAuto::p_lr_group",
+ "EulerAuto::rho_lr_group",
+ "EulerAuto::S1_flux_group",
+ "EulerAuto::S1_lr_group",
+ "EulerAuto::S2_flux_group",
+ "EulerAuto::S2_lr_group",
+ "EulerAuto::S3_flux_group",
+ "EulerAuto::S3_lr_group",
+ "EulerAuto::v1_lr_group",
+ "EulerAuto::v2_lr_group",
+ "EulerAuto::v3_lr_group"};
GenericFD_AssertGroupStorage(cctkGH, "eulerauto_cons_calc_flux_2", 15, groups);
GenericFD_EnsureStencilFits(cctkGH, "eulerauto_cons_calc_flux_2", 1, 1, 1);
- GenericFD_LoopOverInterior(cctkGH, &eulerauto_cons_calc_flux_2_Body);
+ GenericFD_LoopOverInterior(cctkGH, eulerauto_cons_calc_flux_2_Body);
if (verbose > 1)
{
diff --git a/Examples/EulerAuto/src/eulerauto_cons_calc_flux_3.cc b/Examples/EulerAuto/src/eulerauto_cons_calc_flux_3.cc
index 140cd47..752fec3 100644
--- a/Examples/EulerAuto/src/eulerauto_cons_calc_flux_3.cc
+++ b/Examples/EulerAuto/src/eulerauto_cons_calc_flux_3.cc
@@ -17,10 +17,10 @@
/* Define macros used in calculations */
#define INITVALUE (42)
-#define QAD(x) (SQR(SQR(x)))
-#define INV(x) ((1.0) / (x))
+#define INV(x) ((CCTK_REAL)1.0 / (x))
#define SQR(x) ((x) * (x))
-#define CUB(x) ((x) * (x) * (x))
+#define CUB(x) ((x) * SQR(x))
+#define QAD(x) (SQR(SQR(x)))
extern "C" void eulerauto_cons_calc_flux_3_SelectBCs(CCTK_ARGUMENTS)
{
@@ -52,8 +52,6 @@ static void eulerauto_cons_calc_flux_3_Body(cGH const * restrict const cctkGH, i
DECLARE_CCTK_PARAMETERS;
- /* Declare finite differencing variables */
-
/* Include user-supplied include files */
/* Initialise finite differencing variables */
@@ -96,9 +94,9 @@ static void eulerauto_cons_calc_flux_3_Body(cGH const * restrict const cctkGH, i
/* Loop over the grid points */
#pragma omp parallel
- CCTK_LOOP3 (eulerauto_cons_calc_flux_3,
+ CCTK_LOOP3(eulerauto_cons_calc_flux_3,
i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2],
- cctk_lsh[0],cctk_lsh[1],cctk_lsh[2])
+ cctk_ash[0],cctk_ash[1],cctk_ash[2])
{
ptrdiff_t const index = di*i + dj*j + dk*k;
@@ -187,7 +185,7 @@ static void eulerauto_cons_calc_flux_3_Body(cGH const * restrict const cctkGH, i
S2Flux[index] = S2FluxL;
S3Flux[index] = S3FluxL;
}
- CCTK_ENDLOOP3 (eulerauto_cons_calc_flux_3);
+ CCTK_ENDLOOP3(eulerauto_cons_calc_flux_3);
}
extern "C" void eulerauto_cons_calc_flux_3(CCTK_ARGUMENTS)
@@ -206,12 +204,27 @@ extern "C" void eulerauto_cons_calc_flux_3(CCTK_ARGUMENTS)
return;
}
- const char *groups[] = {"EulerAuto::Den_flux_group","EulerAuto::Den_lr_group","EulerAuto::En_flux_group","EulerAuto::En_lr_group","EulerAuto::p_lr_group","EulerAuto::rho_lr_group","EulerAuto::S1_flux_group","EulerAuto::S1_lr_group","EulerAuto::S2_flux_group","EulerAuto::S2_lr_group","EulerAuto::S3_flux_group","EulerAuto::S3_lr_group","EulerAuto::v1_lr_group","EulerAuto::v2_lr_group","EulerAuto::v3_lr_group"};
+ const char *const groups[] = {
+ "EulerAuto::Den_flux_group",
+ "EulerAuto::Den_lr_group",
+ "EulerAuto::En_flux_group",
+ "EulerAuto::En_lr_group",
+ "EulerAuto::p_lr_group",
+ "EulerAuto::rho_lr_group",
+ "EulerAuto::S1_flux_group",
+ "EulerAuto::S1_lr_group",
+ "EulerAuto::S2_flux_group",
+ "EulerAuto::S2_lr_group",
+ "EulerAuto::S3_flux_group",
+ "EulerAuto::S3_lr_group",
+ "EulerAuto::v1_lr_group",
+ "EulerAuto::v2_lr_group",
+ "EulerAuto::v3_lr_group"};
GenericFD_AssertGroupStorage(cctkGH, "eulerauto_cons_calc_flux_3", 15, groups);
GenericFD_EnsureStencilFits(cctkGH, "eulerauto_cons_calc_flux_3", 1, 1, 1);
- GenericFD_LoopOverInterior(cctkGH, &eulerauto_cons_calc_flux_3_Body);
+ GenericFD_LoopOverInterior(cctkGH, eulerauto_cons_calc_flux_3_Body);
if (verbose > 1)
{
diff --git a/Examples/EulerAuto/src/eulerauto_cons_calc_intercell_conserved_1.cc b/Examples/EulerAuto/src/eulerauto_cons_calc_intercell_conserved_1.cc
index fdcd6f7..6f22748 100644
--- a/Examples/EulerAuto/src/eulerauto_cons_calc_intercell_conserved_1.cc
+++ b/Examples/EulerAuto/src/eulerauto_cons_calc_intercell_conserved_1.cc
@@ -17,10 +17,10 @@
/* Define macros used in calculations */
#define INITVALUE (42)
-#define QAD(x) (SQR(SQR(x)))
-#define INV(x) ((1.0) / (x))
+#define INV(x) ((CCTK_REAL)1.0 / (x))
#define SQR(x) ((x) * (x))
-#define CUB(x) ((x) * (x) * (x))
+#define CUB(x) ((x) * SQR(x))
+#define QAD(x) (SQR(SQR(x)))
static void eulerauto_cons_calc_intercell_conserved_1_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const imin[3], int const imax[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
@@ -28,8 +28,6 @@ static void eulerauto_cons_calc_intercell_conserved_1_Body(cGH const * restrict
DECLARE_CCTK_PARAMETERS;
- /* Declare finite differencing variables */
-
/* Include user-supplied include files */
/* Initialise finite differencing variables */
@@ -72,9 +70,9 @@ static void eulerauto_cons_calc_intercell_conserved_1_Body(cGH const * restrict
/* Loop over the grid points */
#pragma omp parallel
- CCTK_LOOP3 (eulerauto_cons_calc_intercell_conserved_1,
+ CCTK_LOOP3(eulerauto_cons_calc_intercell_conserved_1,
i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2],
- cctk_lsh[0],cctk_lsh[1],cctk_lsh[2])
+ cctk_ash[0],cctk_ash[1],cctk_ash[2])
{
ptrdiff_t const index = di*i + dj*j + dk*k;
@@ -133,7 +131,7 @@ static void eulerauto_cons_calc_intercell_conserved_1_Body(cGH const * restrict
S3Left[index] = S3LeftL;
S3Right[index] = S3RightL;
}
- CCTK_ENDLOOP3 (eulerauto_cons_calc_intercell_conserved_1);
+ CCTK_ENDLOOP3(eulerauto_cons_calc_intercell_conserved_1);
}
extern "C" void eulerauto_cons_calc_intercell_conserved_1(CCTK_ARGUMENTS)
@@ -152,11 +150,21 @@ extern "C" void eulerauto_cons_calc_intercell_conserved_1(CCTK_ARGUMENTS)
return;
}
- const char *groups[] = {"EulerAuto::Den_lr_group","EulerAuto::En_lr_group","EulerAuto::p_lr_group","EulerAuto::rho_lr_group","EulerAuto::S1_lr_group","EulerAuto::S2_lr_group","EulerAuto::S3_lr_group","EulerAuto::v1_lr_group","EulerAuto::v2_lr_group","EulerAuto::v3_lr_group"};
+ const char *const groups[] = {
+ "EulerAuto::Den_lr_group",
+ "EulerAuto::En_lr_group",
+ "EulerAuto::p_lr_group",
+ "EulerAuto::rho_lr_group",
+ "EulerAuto::S1_lr_group",
+ "EulerAuto::S2_lr_group",
+ "EulerAuto::S3_lr_group",
+ "EulerAuto::v1_lr_group",
+ "EulerAuto::v2_lr_group",
+ "EulerAuto::v3_lr_group"};
GenericFD_AssertGroupStorage(cctkGH, "eulerauto_cons_calc_intercell_conserved_1", 10, groups);
- GenericFD_LoopOverEverything(cctkGH, &eulerauto_cons_calc_intercell_conserved_1_Body);
+ GenericFD_LoopOverEverything(cctkGH, eulerauto_cons_calc_intercell_conserved_1_Body);
if (verbose > 1)
{
diff --git a/Examples/EulerAuto/src/eulerauto_cons_calc_intercell_conserved_2.cc b/Examples/EulerAuto/src/eulerauto_cons_calc_intercell_conserved_2.cc
index 9a8709d..3d9488e 100644
--- a/Examples/EulerAuto/src/eulerauto_cons_calc_intercell_conserved_2.cc
+++ b/Examples/EulerAuto/src/eulerauto_cons_calc_intercell_conserved_2.cc
@@ -17,10 +17,10 @@
/* Define macros used in calculations */
#define INITVALUE (42)
-#define QAD(x) (SQR(SQR(x)))
-#define INV(x) ((1.0) / (x))
+#define INV(x) ((CCTK_REAL)1.0 / (x))
#define SQR(x) ((x) * (x))
-#define CUB(x) ((x) * (x) * (x))
+#define CUB(x) ((x) * SQR(x))
+#define QAD(x) (SQR(SQR(x)))
static void eulerauto_cons_calc_intercell_conserved_2_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const imin[3], int const imax[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
@@ -28,8 +28,6 @@ static void eulerauto_cons_calc_intercell_conserved_2_Body(cGH const * restrict
DECLARE_CCTK_PARAMETERS;
- /* Declare finite differencing variables */
-
/* Include user-supplied include files */
/* Initialise finite differencing variables */
@@ -72,9 +70,9 @@ static void eulerauto_cons_calc_intercell_conserved_2_Body(cGH const * restrict
/* Loop over the grid points */
#pragma omp parallel
- CCTK_LOOP3 (eulerauto_cons_calc_intercell_conserved_2,
+ CCTK_LOOP3(eulerauto_cons_calc_intercell_conserved_2,
i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2],
- cctk_lsh[0],cctk_lsh[1],cctk_lsh[2])
+ cctk_ash[0],cctk_ash[1],cctk_ash[2])
{
ptrdiff_t const index = di*i + dj*j + dk*k;
@@ -133,7 +131,7 @@ static void eulerauto_cons_calc_intercell_conserved_2_Body(cGH const * restrict
S3Left[index] = S3LeftL;
S3Right[index] = S3RightL;
}
- CCTK_ENDLOOP3 (eulerauto_cons_calc_intercell_conserved_2);
+ CCTK_ENDLOOP3(eulerauto_cons_calc_intercell_conserved_2);
}
extern "C" void eulerauto_cons_calc_intercell_conserved_2(CCTK_ARGUMENTS)
@@ -152,11 +150,21 @@ extern "C" void eulerauto_cons_calc_intercell_conserved_2(CCTK_ARGUMENTS)
return;
}
- const char *groups[] = {"EulerAuto::Den_lr_group","EulerAuto::En_lr_group","EulerAuto::p_lr_group","EulerAuto::rho_lr_group","EulerAuto::S1_lr_group","EulerAuto::S2_lr_group","EulerAuto::S3_lr_group","EulerAuto::v1_lr_group","EulerAuto::v2_lr_group","EulerAuto::v3_lr_group"};
+ const char *const groups[] = {
+ "EulerAuto::Den_lr_group",
+ "EulerAuto::En_lr_group",
+ "EulerAuto::p_lr_group",
+ "EulerAuto::rho_lr_group",
+ "EulerAuto::S1_lr_group",
+ "EulerAuto::S2_lr_group",
+ "EulerAuto::S3_lr_group",
+ "EulerAuto::v1_lr_group",
+ "EulerAuto::v2_lr_group",
+ "EulerAuto::v3_lr_group"};
GenericFD_AssertGroupStorage(cctkGH, "eulerauto_cons_calc_intercell_conserved_2", 10, groups);
- GenericFD_LoopOverEverything(cctkGH, &eulerauto_cons_calc_intercell_conserved_2_Body);
+ GenericFD_LoopOverEverything(cctkGH, eulerauto_cons_calc_intercell_conserved_2_Body);
if (verbose > 1)
{
diff --git a/Examples/EulerAuto/src/eulerauto_cons_calc_intercell_conserved_3.cc b/Examples/EulerAuto/src/eulerauto_cons_calc_intercell_conserved_3.cc
index 2c4f3a1..096f13c 100644
--- a/Examples/EulerAuto/src/eulerauto_cons_calc_intercell_conserved_3.cc
+++ b/Examples/EulerAuto/src/eulerauto_cons_calc_intercell_conserved_3.cc
@@ -17,10 +17,10 @@
/* Define macros used in calculations */
#define INITVALUE (42)
-#define QAD(x) (SQR(SQR(x)))
-#define INV(x) ((1.0) / (x))
+#define INV(x) ((CCTK_REAL)1.0 / (x))
#define SQR(x) ((x) * (x))
-#define CUB(x) ((x) * (x) * (x))
+#define CUB(x) ((x) * SQR(x))
+#define QAD(x) (SQR(SQR(x)))
static void eulerauto_cons_calc_intercell_conserved_3_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const imin[3], int const imax[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
@@ -28,8 +28,6 @@ static void eulerauto_cons_calc_intercell_conserved_3_Body(cGH const * restrict
DECLARE_CCTK_PARAMETERS;
- /* Declare finite differencing variables */
-
/* Include user-supplied include files */
/* Initialise finite differencing variables */
@@ -72,9 +70,9 @@ static void eulerauto_cons_calc_intercell_conserved_3_Body(cGH const * restrict
/* Loop over the grid points */
#pragma omp parallel
- CCTK_LOOP3 (eulerauto_cons_calc_intercell_conserved_3,
+ CCTK_LOOP3(eulerauto_cons_calc_intercell_conserved_3,
i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2],
- cctk_lsh[0],cctk_lsh[1],cctk_lsh[2])
+ cctk_ash[0],cctk_ash[1],cctk_ash[2])
{
ptrdiff_t const index = di*i + dj*j + dk*k;
@@ -133,7 +131,7 @@ static void eulerauto_cons_calc_intercell_conserved_3_Body(cGH const * restrict
S3Left[index] = S3LeftL;
S3Right[index] = S3RightL;
}
- CCTK_ENDLOOP3 (eulerauto_cons_calc_intercell_conserved_3);
+ CCTK_ENDLOOP3(eulerauto_cons_calc_intercell_conserved_3);
}
extern "C" void eulerauto_cons_calc_intercell_conserved_3(CCTK_ARGUMENTS)
@@ -152,11 +150,21 @@ extern "C" void eulerauto_cons_calc_intercell_conserved_3(CCTK_ARGUMENTS)
return;
}
- const char *groups[] = {"EulerAuto::Den_lr_group","EulerAuto::En_lr_group","EulerAuto::p_lr_group","EulerAuto::rho_lr_group","EulerAuto::S1_lr_group","EulerAuto::S2_lr_group","EulerAuto::S3_lr_group","EulerAuto::v1_lr_group","EulerAuto::v2_lr_group","EulerAuto::v3_lr_group"};
+ const char *const groups[] = {
+ "EulerAuto::Den_lr_group",
+ "EulerAuto::En_lr_group",
+ "EulerAuto::p_lr_group",
+ "EulerAuto::rho_lr_group",
+ "EulerAuto::S1_lr_group",
+ "EulerAuto::S2_lr_group",
+ "EulerAuto::S3_lr_group",
+ "EulerAuto::v1_lr_group",
+ "EulerAuto::v2_lr_group",
+ "EulerAuto::v3_lr_group"};
GenericFD_AssertGroupStorage(cctkGH, "eulerauto_cons_calc_intercell_conserved_3", 10, groups);
- GenericFD_LoopOverEverything(cctkGH, &eulerauto_cons_calc_intercell_conserved_3_Body);
+ GenericFD_LoopOverEverything(cctkGH, eulerauto_cons_calc_intercell_conserved_3_Body);
if (verbose > 1)
{
diff --git a/Examples/EulerAuto/src/eulerauto_cons_calc_primitives.cc b/Examples/EulerAuto/src/eulerauto_cons_calc_primitives.cc
index 1b16069..b2cafeb 100644
--- a/Examples/EulerAuto/src/eulerauto_cons_calc_primitives.cc
+++ b/Examples/EulerAuto/src/eulerauto_cons_calc_primitives.cc
@@ -17,10 +17,10 @@
/* Define macros used in calculations */
#define INITVALUE (42)
-#define QAD(x) (SQR(SQR(x)))
-#define INV(x) ((1.0) / (x))
+#define INV(x) ((CCTK_REAL)1.0 / (x))
#define SQR(x) ((x) * (x))
-#define CUB(x) ((x) * (x) * (x))
+#define CUB(x) ((x) * SQR(x))
+#define QAD(x) (SQR(SQR(x)))
static void eulerauto_cons_calc_primitives_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const imin[3], int const imax[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
@@ -28,8 +28,6 @@ static void eulerauto_cons_calc_primitives_Body(cGH const * restrict const cctkG
DECLARE_CCTK_PARAMETERS;
- /* Declare finite differencing variables */
-
/* Include user-supplied include files */
/* Initialise finite differencing variables */
@@ -72,9 +70,9 @@ static void eulerauto_cons_calc_primitives_Body(cGH const * restrict const cctkG
/* Loop over the grid points */
#pragma omp parallel
- CCTK_LOOP3 (eulerauto_cons_calc_primitives,
+ CCTK_LOOP3(eulerauto_cons_calc_primitives,
i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2],
- cctk_lsh[0],cctk_lsh[1],cctk_lsh[2])
+ cctk_ash[0],cctk_ash[1],cctk_ash[2])
{
ptrdiff_t const index = di*i + dj*j + dk*k;
@@ -110,7 +108,7 @@ static void eulerauto_cons_calc_primitives_Body(cGH const * restrict const cctkG
v2[index] = v2L;
v3[index] = v3L;
}
- CCTK_ENDLOOP3 (eulerauto_cons_calc_primitives);
+ CCTK_ENDLOOP3(eulerauto_cons_calc_primitives);
}
extern "C" void eulerauto_cons_calc_primitives(CCTK_ARGUMENTS)
@@ -129,11 +127,17 @@ extern "C" void eulerauto_cons_calc_primitives(CCTK_ARGUMENTS)
return;
}
- const char *groups[] = {"EulerAuto::Den_group","EulerAuto::En_group","EulerAuto::p_group","EulerAuto::rho_group","EulerAuto::S_group","EulerAuto::v_group"};
+ const char *const groups[] = {
+ "EulerAuto::Den_group",
+ "EulerAuto::En_group",
+ "EulerAuto::p_group",
+ "EulerAuto::rho_group",
+ "EulerAuto::S_group",
+ "EulerAuto::v_group"};
GenericFD_AssertGroupStorage(cctkGH, "eulerauto_cons_calc_primitives", 6, groups);
- GenericFD_LoopOverEverything(cctkGH, &eulerauto_cons_calc_primitives_Body);
+ GenericFD_LoopOverEverything(cctkGH, eulerauto_cons_calc_primitives_Body);
if (verbose > 1)
{
diff --git a/Examples/EulerAuto/src/eulerauto_cons_calc_reconstruct_1.cc b/Examples/EulerAuto/src/eulerauto_cons_calc_reconstruct_1.cc
index be96c9f..f0dbe5f 100644
--- a/Examples/EulerAuto/src/eulerauto_cons_calc_reconstruct_1.cc
+++ b/Examples/EulerAuto/src/eulerauto_cons_calc_reconstruct_1.cc
@@ -17,10 +17,10 @@
/* Define macros used in calculations */
#define INITVALUE (42)
-#define QAD(x) (SQR(SQR(x)))
-#define INV(x) ((1.0) / (x))
+#define INV(x) ((CCTK_REAL)1.0 / (x))
#define SQR(x) ((x) * (x))
-#define CUB(x) ((x) * (x) * (x))
+#define CUB(x) ((x) * SQR(x))
+#define QAD(x) (SQR(SQR(x)))
extern "C" void eulerauto_cons_calc_reconstruct_1_SelectBCs(CCTK_ARGUMENTS)
{
@@ -52,8 +52,6 @@ static void eulerauto_cons_calc_reconstruct_1_Body(cGH const * restrict const cc
DECLARE_CCTK_PARAMETERS;
- /* Declare finite differencing variables */
-
/* Include user-supplied include files */
/* Initialise finite differencing variables */
@@ -96,9 +94,9 @@ static void eulerauto_cons_calc_reconstruct_1_Body(cGH const * restrict const cc
/* Loop over the grid points */
#pragma omp parallel
- CCTK_LOOP3 (eulerauto_cons_calc_reconstruct_1,
+ CCTK_LOOP3(eulerauto_cons_calc_reconstruct_1,
i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2],
- cctk_lsh[0],cctk_lsh[1],cctk_lsh[2])
+ cctk_ash[0],cctk_ash[1],cctk_ash[2])
{
ptrdiff_t const index = di*i + dj*j + dk*k;
@@ -188,7 +186,7 @@ static void eulerauto_cons_calc_reconstruct_1_Body(cGH const * restrict const cc
v3Left[index] = v3LeftL;
v3Right[index] = v3RightL;
}
- CCTK_ENDLOOP3 (eulerauto_cons_calc_reconstruct_1);
+ CCTK_ENDLOOP3(eulerauto_cons_calc_reconstruct_1);
}
extern "C" void eulerauto_cons_calc_reconstruct_1(CCTK_ARGUMENTS)
@@ -207,12 +205,20 @@ extern "C" void eulerauto_cons_calc_reconstruct_1(CCTK_ARGUMENTS)
return;
}
- const char *groups[] = {"EulerAuto::p_group","EulerAuto::p_lr_group","EulerAuto::rho_group","EulerAuto::rho_lr_group","EulerAuto::v1_lr_group","EulerAuto::v2_lr_group","EulerAuto::v3_lr_group","EulerAuto::v_group"};
+ const char *const groups[] = {
+ "EulerAuto::p_group",
+ "EulerAuto::p_lr_group",
+ "EulerAuto::rho_group",
+ "EulerAuto::rho_lr_group",
+ "EulerAuto::v1_lr_group",
+ "EulerAuto::v2_lr_group",
+ "EulerAuto::v3_lr_group",
+ "EulerAuto::v_group"};
GenericFD_AssertGroupStorage(cctkGH, "eulerauto_cons_calc_reconstruct_1", 8, groups);
GenericFD_EnsureStencilFits(cctkGH, "eulerauto_cons_calc_reconstruct_1", 1, 1, 1);
- GenericFD_LoopOverInterior(cctkGH, &eulerauto_cons_calc_reconstruct_1_Body);
+ GenericFD_LoopOverInterior(cctkGH, eulerauto_cons_calc_reconstruct_1_Body);
if (verbose > 1)
{
diff --git a/Examples/EulerAuto/src/eulerauto_cons_calc_reconstruct_2.cc b/Examples/EulerAuto/src/eulerauto_cons_calc_reconstruct_2.cc
index 34b7f55..f47b0d7 100644
--- a/Examples/EulerAuto/src/eulerauto_cons_calc_reconstruct_2.cc
+++ b/Examples/EulerAuto/src/eulerauto_cons_calc_reconstruct_2.cc
@@ -17,10 +17,10 @@
/* Define macros used in calculations */
#define INITVALUE (42)
-#define QAD(x) (SQR(SQR(x)))
-#define INV(x) ((1.0) / (x))
+#define INV(x) ((CCTK_REAL)1.0 / (x))
#define SQR(x) ((x) * (x))
-#define CUB(x) ((x) * (x) * (x))
+#define CUB(x) ((x) * SQR(x))
+#define QAD(x) (SQR(SQR(x)))
extern "C" void eulerauto_cons_calc_reconstruct_2_SelectBCs(CCTK_ARGUMENTS)
{
@@ -52,8 +52,6 @@ static void eulerauto_cons_calc_reconstruct_2_Body(cGH const * restrict const cc
DECLARE_CCTK_PARAMETERS;
- /* Declare finite differencing variables */
-
/* Include user-supplied include files */
/* Initialise finite differencing variables */
@@ -96,9 +94,9 @@ static void eulerauto_cons_calc_reconstruct_2_Body(cGH const * restrict const cc
/* Loop over the grid points */
#pragma omp parallel
- CCTK_LOOP3 (eulerauto_cons_calc_reconstruct_2,
+ CCTK_LOOP3(eulerauto_cons_calc_reconstruct_2,
i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2],
- cctk_lsh[0],cctk_lsh[1],cctk_lsh[2])
+ cctk_ash[0],cctk_ash[1],cctk_ash[2])
{
ptrdiff_t const index = di*i + dj*j + dk*k;
@@ -188,7 +186,7 @@ static void eulerauto_cons_calc_reconstruct_2_Body(cGH const * restrict const cc
v3Left[index] = v3LeftL;
v3Right[index] = v3RightL;
}
- CCTK_ENDLOOP3 (eulerauto_cons_calc_reconstruct_2);
+ CCTK_ENDLOOP3(eulerauto_cons_calc_reconstruct_2);
}
extern "C" void eulerauto_cons_calc_reconstruct_2(CCTK_ARGUMENTS)
@@ -207,12 +205,20 @@ extern "C" void eulerauto_cons_calc_reconstruct_2(CCTK_ARGUMENTS)
return;
}
- const char *groups[] = {"EulerAuto::p_group","EulerAuto::p_lr_group","EulerAuto::rho_group","EulerAuto::rho_lr_group","EulerAuto::v1_lr_group","EulerAuto::v2_lr_group","EulerAuto::v3_lr_group","EulerAuto::v_group"};
+ const char *const groups[] = {
+ "EulerAuto::p_group",
+ "EulerAuto::p_lr_group",
+ "EulerAuto::rho_group",
+ "EulerAuto::rho_lr_group",
+ "EulerAuto::v1_lr_group",
+ "EulerAuto::v2_lr_group",
+ "EulerAuto::v3_lr_group",
+ "EulerAuto::v_group"};
GenericFD_AssertGroupStorage(cctkGH, "eulerauto_cons_calc_reconstruct_2", 8, groups);
GenericFD_EnsureStencilFits(cctkGH, "eulerauto_cons_calc_reconstruct_2", 1, 1, 1);
- GenericFD_LoopOverInterior(cctkGH, &eulerauto_cons_calc_reconstruct_2_Body);
+ GenericFD_LoopOverInterior(cctkGH, eulerauto_cons_calc_reconstruct_2_Body);
if (verbose > 1)
{
diff --git a/Examples/EulerAuto/src/eulerauto_cons_calc_reconstruct_3.cc b/Examples/EulerAuto/src/eulerauto_cons_calc_reconstruct_3.cc
index 5481fba..3075063 100644
--- a/Examples/EulerAuto/src/eulerauto_cons_calc_reconstruct_3.cc
+++ b/Examples/EulerAuto/src/eulerauto_cons_calc_reconstruct_3.cc
@@ -17,10 +17,10 @@
/* Define macros used in calculations */
#define INITVALUE (42)
-#define QAD(x) (SQR(SQR(x)))
-#define INV(x) ((1.0) / (x))
+#define INV(x) ((CCTK_REAL)1.0 / (x))
#define SQR(x) ((x) * (x))
-#define CUB(x) ((x) * (x) * (x))
+#define CUB(x) ((x) * SQR(x))
+#define QAD(x) (SQR(SQR(x)))
extern "C" void eulerauto_cons_calc_reconstruct_3_SelectBCs(CCTK_ARGUMENTS)
{
@@ -52,8 +52,6 @@ static void eulerauto_cons_calc_reconstruct_3_Body(cGH const * restrict const cc
DECLARE_CCTK_PARAMETERS;
- /* Declare finite differencing variables */
-
/* Include user-supplied include files */
/* Initialise finite differencing variables */
@@ -96,9 +94,9 @@ static void eulerauto_cons_calc_reconstruct_3_Body(cGH const * restrict const cc
/* Loop over the grid points */
#pragma omp parallel
- CCTK_LOOP3 (eulerauto_cons_calc_reconstruct_3,
+ CCTK_LOOP3(eulerauto_cons_calc_reconstruct_3,
i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2],
- cctk_lsh[0],cctk_lsh[1],cctk_lsh[2])
+ cctk_ash[0],cctk_ash[1],cctk_ash[2])
{
ptrdiff_t const index = di*i + dj*j + dk*k;
@@ -188,7 +186,7 @@ static void eulerauto_cons_calc_reconstruct_3_Body(cGH const * restrict const cc
v3Left[index] = v3LeftL;
v3Right[index] = v3RightL;
}
- CCTK_ENDLOOP3 (eulerauto_cons_calc_reconstruct_3);
+ CCTK_ENDLOOP3(eulerauto_cons_calc_reconstruct_3);
}
extern "C" void eulerauto_cons_calc_reconstruct_3(CCTK_ARGUMENTS)
@@ -207,12 +205,20 @@ extern "C" void eulerauto_cons_calc_reconstruct_3(CCTK_ARGUMENTS)
return;
}
- const char *groups[] = {"EulerAuto::p_group","EulerAuto::p_lr_group","EulerAuto::rho_group","EulerAuto::rho_lr_group","EulerAuto::v1_lr_group","EulerAuto::v2_lr_group","EulerAuto::v3_lr_group","EulerAuto::v_group"};
+ const char *const groups[] = {
+ "EulerAuto::p_group",
+ "EulerAuto::p_lr_group",
+ "EulerAuto::rho_group",
+ "EulerAuto::rho_lr_group",
+ "EulerAuto::v1_lr_group",
+ "EulerAuto::v2_lr_group",
+ "EulerAuto::v3_lr_group",
+ "EulerAuto::v_group"};
GenericFD_AssertGroupStorage(cctkGH, "eulerauto_cons_calc_reconstruct_3", 8, groups);
GenericFD_EnsureStencilFits(cctkGH, "eulerauto_cons_calc_reconstruct_3", 1, 1, 1);
- GenericFD_LoopOverInterior(cctkGH, &eulerauto_cons_calc_reconstruct_3_Body);
+ GenericFD_LoopOverInterior(cctkGH, eulerauto_cons_calc_reconstruct_3_Body);
if (verbose > 1)
{
diff --git a/Examples/EulerAuto/src/eulerauto_cons_calc_rhs_1.cc b/Examples/EulerAuto/src/eulerauto_cons_calc_rhs_1.cc
index 5f38d60..5f1e9ed 100644
--- a/Examples/EulerAuto/src/eulerauto_cons_calc_rhs_1.cc
+++ b/Examples/EulerAuto/src/eulerauto_cons_calc_rhs_1.cc
@@ -17,10 +17,10 @@
/* Define macros used in calculations */
#define INITVALUE (42)
-#define QAD(x) (SQR(SQR(x)))
-#define INV(x) ((1.0) / (x))
+#define INV(x) ((CCTK_REAL)1.0 / (x))
#define SQR(x) ((x) * (x))
-#define CUB(x) ((x) * (x) * (x))
+#define CUB(x) ((x) * SQR(x))
+#define QAD(x) (SQR(SQR(x)))
extern "C" void eulerauto_cons_calc_rhs_1_SelectBCs(CCTK_ARGUMENTS)
{
@@ -46,8 +46,6 @@ static void eulerauto_cons_calc_rhs_1_Body(cGH const * restrict const cctkGH, in
DECLARE_CCTK_PARAMETERS;
- /* Declare finite differencing variables */
-
/* Include user-supplied include files */
/* Initialise finite differencing variables */
@@ -90,9 +88,9 @@ static void eulerauto_cons_calc_rhs_1_Body(cGH const * restrict const cctkGH, in
/* Loop over the grid points */
#pragma omp parallel
- CCTK_LOOP3 (eulerauto_cons_calc_rhs_1,
+ CCTK_LOOP3(eulerauto_cons_calc_rhs_1,
i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2],
- cctk_lsh[0],cctk_lsh[1],cctk_lsh[2])
+ cctk_ash[0],cctk_ash[1],cctk_ash[2])
{
ptrdiff_t const index = di*i + dj*j + dk*k;
@@ -137,7 +135,7 @@ static void eulerauto_cons_calc_rhs_1_Body(cGH const * restrict const cctkGH, in
S2rhs[index] = S2rhsL;
S3rhs[index] = S3rhsL;
}
- CCTK_ENDLOOP3 (eulerauto_cons_calc_rhs_1);
+ CCTK_ENDLOOP3(eulerauto_cons_calc_rhs_1);
}
extern "C" void eulerauto_cons_calc_rhs_1(CCTK_ARGUMENTS)
@@ -156,12 +154,20 @@ extern "C" void eulerauto_cons_calc_rhs_1(CCTK_ARGUMENTS)
return;
}
- const char *groups[] = {"EulerAuto::Den_flux_group","EulerAuto::Den_grouprhs","EulerAuto::En_flux_group","EulerAuto::En_grouprhs","EulerAuto::S1_flux_group","EulerAuto::S2_flux_group","EulerAuto::S3_flux_group","EulerAuto::S_grouprhs"};
+ const char *const groups[] = {
+ "EulerAuto::Den_flux_group",
+ "EulerAuto::Den_grouprhs",
+ "EulerAuto::En_flux_group",
+ "EulerAuto::En_grouprhs",
+ "EulerAuto::S1_flux_group",
+ "EulerAuto::S2_flux_group",
+ "EulerAuto::S3_flux_group",
+ "EulerAuto::S_grouprhs"};
GenericFD_AssertGroupStorage(cctkGH, "eulerauto_cons_calc_rhs_1", 8, groups);
GenericFD_EnsureStencilFits(cctkGH, "eulerauto_cons_calc_rhs_1", 1, 1, 1);
- GenericFD_LoopOverInterior(cctkGH, &eulerauto_cons_calc_rhs_1_Body);
+ GenericFD_LoopOverInterior(cctkGH, eulerauto_cons_calc_rhs_1_Body);
if (verbose > 1)
{
diff --git a/Examples/EulerAuto/src/eulerauto_cons_calc_rhs_2.cc b/Examples/EulerAuto/src/eulerauto_cons_calc_rhs_2.cc
index c4859bc..796a85b 100644
--- a/Examples/EulerAuto/src/eulerauto_cons_calc_rhs_2.cc
+++ b/Examples/EulerAuto/src/eulerauto_cons_calc_rhs_2.cc
@@ -17,10 +17,10 @@
/* Define macros used in calculations */
#define INITVALUE (42)
-#define QAD(x) (SQR(SQR(x)))
-#define INV(x) ((1.0) / (x))
+#define INV(x) ((CCTK_REAL)1.0 / (x))
#define SQR(x) ((x) * (x))
-#define CUB(x) ((x) * (x) * (x))
+#define CUB(x) ((x) * SQR(x))
+#define QAD(x) (SQR(SQR(x)))
extern "C" void eulerauto_cons_calc_rhs_2_SelectBCs(CCTK_ARGUMENTS)
{
@@ -46,8 +46,6 @@ static void eulerauto_cons_calc_rhs_2_Body(cGH const * restrict const cctkGH, in
DECLARE_CCTK_PARAMETERS;
- /* Declare finite differencing variables */
-
/* Include user-supplied include files */
/* Initialise finite differencing variables */
@@ -90,9 +88,9 @@ static void eulerauto_cons_calc_rhs_2_Body(cGH const * restrict const cctkGH, in
/* Loop over the grid points */
#pragma omp parallel
- CCTK_LOOP3 (eulerauto_cons_calc_rhs_2,
+ CCTK_LOOP3(eulerauto_cons_calc_rhs_2,
i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2],
- cctk_lsh[0],cctk_lsh[1],cctk_lsh[2])
+ cctk_ash[0],cctk_ash[1],cctk_ash[2])
{
ptrdiff_t const index = di*i + dj*j + dk*k;
@@ -137,7 +135,7 @@ static void eulerauto_cons_calc_rhs_2_Body(cGH const * restrict const cctkGH, in
S2rhs[index] = S2rhsL;
S3rhs[index] = S3rhsL;
}
- CCTK_ENDLOOP3 (eulerauto_cons_calc_rhs_2);
+ CCTK_ENDLOOP3(eulerauto_cons_calc_rhs_2);
}
extern "C" void eulerauto_cons_calc_rhs_2(CCTK_ARGUMENTS)
@@ -156,12 +154,20 @@ extern "C" void eulerauto_cons_calc_rhs_2(CCTK_ARGUMENTS)
return;
}
- const char *groups[] = {"EulerAuto::Den_flux_group","EulerAuto::Den_grouprhs","EulerAuto::En_flux_group","EulerAuto::En_grouprhs","EulerAuto::S1_flux_group","EulerAuto::S2_flux_group","EulerAuto::S3_flux_group","EulerAuto::S_grouprhs"};
+ const char *const groups[] = {
+ "EulerAuto::Den_flux_group",
+ "EulerAuto::Den_grouprhs",
+ "EulerAuto::En_flux_group",
+ "EulerAuto::En_grouprhs",
+ "EulerAuto::S1_flux_group",
+ "EulerAuto::S2_flux_group",
+ "EulerAuto::S3_flux_group",
+ "EulerAuto::S_grouprhs"};
GenericFD_AssertGroupStorage(cctkGH, "eulerauto_cons_calc_rhs_2", 8, groups);
GenericFD_EnsureStencilFits(cctkGH, "eulerauto_cons_calc_rhs_2", 1, 1, 1);
- GenericFD_LoopOverInterior(cctkGH, &eulerauto_cons_calc_rhs_2_Body);
+ GenericFD_LoopOverInterior(cctkGH, eulerauto_cons_calc_rhs_2_Body);
if (verbose > 1)
{
diff --git a/Examples/EulerAuto/src/eulerauto_cons_calc_rhs_3.cc b/Examples/EulerAuto/src/eulerauto_cons_calc_rhs_3.cc
index 0ce65f6..3aca46c 100644
--- a/Examples/EulerAuto/src/eulerauto_cons_calc_rhs_3.cc
+++ b/Examples/EulerAuto/src/eulerauto_cons_calc_rhs_3.cc
@@ -17,10 +17,10 @@
/* Define macros used in calculations */
#define INITVALUE (42)
-#define QAD(x) (SQR(SQR(x)))
-#define INV(x) ((1.0) / (x))
+#define INV(x) ((CCTK_REAL)1.0 / (x))
#define SQR(x) ((x) * (x))
-#define CUB(x) ((x) * (x) * (x))
+#define CUB(x) ((x) * SQR(x))
+#define QAD(x) (SQR(SQR(x)))
extern "C" void eulerauto_cons_calc_rhs_3_SelectBCs(CCTK_ARGUMENTS)
{
@@ -46,8 +46,6 @@ static void eulerauto_cons_calc_rhs_3_Body(cGH const * restrict const cctkGH, in
DECLARE_CCTK_PARAMETERS;
- /* Declare finite differencing variables */
-
/* Include user-supplied include files */
/* Initialise finite differencing variables */
@@ -90,9 +88,9 @@ static void eulerauto_cons_calc_rhs_3_Body(cGH const * restrict const cctkGH, in
/* Loop over the grid points */
#pragma omp parallel
- CCTK_LOOP3 (eulerauto_cons_calc_rhs_3,
+ CCTK_LOOP3(eulerauto_cons_calc_rhs_3,
i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2],
- cctk_lsh[0],cctk_lsh[1],cctk_lsh[2])
+ cctk_ash[0],cctk_ash[1],cctk_ash[2])
{
ptrdiff_t const index = di*i + dj*j + dk*k;
@@ -137,7 +135,7 @@ static void eulerauto_cons_calc_rhs_3_Body(cGH const * restrict const cctkGH, in
S2rhs[index] = S2rhsL;
S3rhs[index] = S3rhsL;
}
- CCTK_ENDLOOP3 (eulerauto_cons_calc_rhs_3);
+ CCTK_ENDLOOP3(eulerauto_cons_calc_rhs_3);
}
extern "C" void eulerauto_cons_calc_rhs_3(CCTK_ARGUMENTS)
@@ -156,12 +154,20 @@ extern "C" void eulerauto_cons_calc_rhs_3(CCTK_ARGUMENTS)
return;
}
- const char *groups[] = {"EulerAuto::Den_flux_group","EulerAuto::Den_grouprhs","EulerAuto::En_flux_group","EulerAuto::En_grouprhs","EulerAuto::S1_flux_group","EulerAuto::S2_flux_group","EulerAuto::S3_flux_group","EulerAuto::S_grouprhs"};
+ const char *const groups[] = {
+ "EulerAuto::Den_flux_group",
+ "EulerAuto::Den_grouprhs",
+ "EulerAuto::En_flux_group",
+ "EulerAuto::En_grouprhs",
+ "EulerAuto::S1_flux_group",
+ "EulerAuto::S2_flux_group",
+ "EulerAuto::S3_flux_group",
+ "EulerAuto::S_grouprhs"};
GenericFD_AssertGroupStorage(cctkGH, "eulerauto_cons_calc_rhs_3", 8, groups);
GenericFD_EnsureStencilFits(cctkGH, "eulerauto_cons_calc_rhs_3", 1, 1, 1);
- GenericFD_LoopOverInterior(cctkGH, &eulerauto_cons_calc_rhs_3_Body);
+ GenericFD_LoopOverInterior(cctkGH, eulerauto_cons_calc_rhs_3_Body);
if (verbose > 1)
{
diff --git a/Examples/EulerAuto/src/eulerauto_cons_calc_zero_rhs.cc b/Examples/EulerAuto/src/eulerauto_cons_calc_zero_rhs.cc
index 5418435..267d6c6 100644
--- a/Examples/EulerAuto/src/eulerauto_cons_calc_zero_rhs.cc
+++ b/Examples/EulerAuto/src/eulerauto_cons_calc_zero_rhs.cc
@@ -17,10 +17,10 @@
/* Define macros used in calculations */
#define INITVALUE (42)
-#define QAD(x) (SQR(SQR(x)))
-#define INV(x) ((1.0) / (x))
+#define INV(x) ((CCTK_REAL)1.0 / (x))
#define SQR(x) ((x) * (x))
-#define CUB(x) ((x) * (x) * (x))
+#define CUB(x) ((x) * SQR(x))
+#define QAD(x) (SQR(SQR(x)))
static void eulerauto_cons_calc_zero_rhs_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const imin[3], int const imax[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
@@ -28,8 +28,6 @@ static void eulerauto_cons_calc_zero_rhs_Body(cGH const * restrict const cctkGH,
DECLARE_CCTK_PARAMETERS;
- /* Declare finite differencing variables */
-
/* Include user-supplied include files */
/* Initialise finite differencing variables */
@@ -72,9 +70,9 @@ static void eulerauto_cons_calc_zero_rhs_Body(cGH const * restrict const cctkGH,
/* Loop over the grid points */
#pragma omp parallel
- CCTK_LOOP3 (eulerauto_cons_calc_zero_rhs,
+ CCTK_LOOP3(eulerauto_cons_calc_zero_rhs,
i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2],
- cctk_lsh[0],cctk_lsh[1],cctk_lsh[2])
+ cctk_ash[0],cctk_ash[1],cctk_ash[2])
{
ptrdiff_t const index = di*i + dj*j + dk*k;
@@ -124,7 +122,7 @@ static void eulerauto_cons_calc_zero_rhs_Body(cGH const * restrict const cctkGH,
S2rhs[index] = S2rhsL;
S3rhs[index] = S3rhsL;
}
- CCTK_ENDLOOP3 (eulerauto_cons_calc_zero_rhs);
+ CCTK_ENDLOOP3(eulerauto_cons_calc_zero_rhs);
}
extern "C" void eulerauto_cons_calc_zero_rhs(CCTK_ARGUMENTS)
@@ -143,11 +141,14 @@ extern "C" void eulerauto_cons_calc_zero_rhs(CCTK_ARGUMENTS)
return;
}
- const char *groups[] = {"EulerAuto::Den_grouprhs","EulerAuto::En_grouprhs","EulerAuto::S_grouprhs"};
+ const char *const groups[] = {
+ "EulerAuto::Den_grouprhs",
+ "EulerAuto::En_grouprhs",
+ "EulerAuto::S_grouprhs"};
GenericFD_AssertGroupStorage(cctkGH, "eulerauto_cons_calc_zero_rhs", 3, groups);
- GenericFD_LoopOverEverything(cctkGH, &eulerauto_cons_calc_zero_rhs_Body);
+ GenericFD_LoopOverEverything(cctkGH, eulerauto_cons_calc_zero_rhs_Body);
if (verbose > 1)
{
diff --git a/Examples/EulerAuto/src/eulerauto_initial_shock.cc b/Examples/EulerAuto/src/eulerauto_initial_shock.cc
index ea1b342..3becd2f 100644
--- a/Examples/EulerAuto/src/eulerauto_initial_shock.cc
+++ b/Examples/EulerAuto/src/eulerauto_initial_shock.cc
@@ -17,10 +17,10 @@
/* Define macros used in calculations */
#define INITVALUE (42)
-#define QAD(x) (SQR(SQR(x)))
-#define INV(x) ((1.0) / (x))
+#define INV(x) ((CCTK_REAL)1.0 / (x))
#define SQR(x) ((x) * (x))
-#define CUB(x) ((x) * (x) * (x))
+#define CUB(x) ((x) * SQR(x))
+#define QAD(x) (SQR(SQR(x)))
static void eulerauto_initial_shock_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const imin[3], int const imax[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
@@ -28,8 +28,6 @@ static void eulerauto_initial_shock_Body(cGH const * restrict const cctkGH, int
DECLARE_CCTK_PARAMETERS;
- /* Declare finite differencing variables */
-
/* Include user-supplied include files */
/* Initialise finite differencing variables */
@@ -72,9 +70,9 @@ static void eulerauto_initial_shock_Body(cGH const * restrict const cctkGH, int
/* Loop over the grid points */
#pragma omp parallel
- CCTK_LOOP3 (eulerauto_initial_shock,
+ CCTK_LOOP3(eulerauto_initial_shock,
i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2],
- cctk_lsh[0],cctk_lsh[1],cctk_lsh[2])
+ cctk_ash[0],cctk_ash[1],cctk_ash[2])
{
ptrdiff_t const index = di*i + dj*j + dk*k;
@@ -108,7 +106,7 @@ static void eulerauto_initial_shock_Body(cGH const * restrict const cctkGH, int
v2[index] = v2L;
v3[index] = v3L;
}
- CCTK_ENDLOOP3 (eulerauto_initial_shock);
+ CCTK_ENDLOOP3(eulerauto_initial_shock);
}
extern "C" void eulerauto_initial_shock(CCTK_ARGUMENTS)
@@ -127,11 +125,15 @@ extern "C" void eulerauto_initial_shock(CCTK_ARGUMENTS)
return;
}
- const char *groups[] = {"grid::coordinates","EulerAuto::p_group","EulerAuto::rho_group","EulerAuto::v_group"};
+ const char *const groups[] = {
+ "grid::coordinates",
+ "EulerAuto::p_group",
+ "EulerAuto::rho_group",
+ "EulerAuto::v_group"};
GenericFD_AssertGroupStorage(cctkGH, "eulerauto_initial_shock", 4, groups);
- GenericFD_LoopOverEverything(cctkGH, &eulerauto_initial_shock_Body);
+ GenericFD_LoopOverEverything(cctkGH, eulerauto_initial_shock_Body);
if (verbose > 1)
{
diff --git a/Examples/EulerAuto/src/make.code.defn b/Examples/EulerAuto/src/make.code.defn
index 0e17ddb..c79c855 100644
--- a/Examples/EulerAuto/src/make.code.defn
+++ b/Examples/EulerAuto/src/make.code.defn
@@ -1,3 +1,3 @@
# File produced by Kranc
-SRCS = Startup.cc RegisterMoL.cc RegisterSymmetries.cc eulerauto_initial_shock.cc eulerauto_cons_calc_zero_rhs.cc eulerauto_cons_calc_conserved.cc eulerauto_cons_calc_primitives.cc eulerauto_cons_calc_reconstruct_1.cc eulerauto_cons_calc_intercell_conserved_1.cc eulerauto_cons_calc_flux_1.cc eulerauto_cons_calc_rhs_1.cc eulerauto_cons_calc_reconstruct_2.cc eulerauto_cons_calc_intercell_conserved_2.cc eulerauto_cons_calc_flux_2.cc eulerauto_cons_calc_rhs_2.cc eulerauto_cons_calc_reconstruct_3.cc eulerauto_cons_calc_intercell_conserved_3.cc eulerauto_cons_calc_flux_3.cc eulerauto_cons_calc_rhs_3.cc Boundaries.cc
+SRCS = Startup.cc RegisterSymmetries.cc RegisterMoL.cc eulerauto_initial_shock.cc eulerauto_cons_calc_zero_rhs.cc eulerauto_cons_calc_conserved.cc eulerauto_cons_calc_primitives.cc eulerauto_cons_calc_reconstruct_1.cc eulerauto_cons_calc_intercell_conserved_1.cc eulerauto_cons_calc_flux_1.cc eulerauto_cons_calc_rhs_1.cc eulerauto_cons_calc_reconstruct_2.cc eulerauto_cons_calc_intercell_conserved_2.cc eulerauto_cons_calc_flux_2.cc eulerauto_cons_calc_rhs_2.cc eulerauto_cons_calc_reconstruct_3.cc eulerauto_cons_calc_intercell_conserved_3.cc eulerauto_cons_calc_flux_3.cc eulerauto_cons_calc_rhs_3.cc Boundaries.cc
diff --git a/Examples/EulerSR/schedule.ccl b/Examples/EulerSR/schedule.ccl
index d6b29e0..87edede 100644
--- a/Examples/EulerSR/schedule.ccl
+++ b/Examples/EulerSR/schedule.ccl
@@ -190,12 +190,6 @@ schedule EulerSR_Startup at STARTUP
OPTIONS: meta
} "create banner"
-schedule EulerSR_RegisterVars in MoL_Register
-{
- LANG: C
- OPTIONS: meta
-} "Register Variables for MoL"
-
schedule EulerSR_RegisterSymmetries in SymmetryRegister
{
LANG: C
@@ -208,22 +202,68 @@ if (CCTK_EQUALS(initial_data, "shock"))
schedule eulersr_initial_shock at CCTK_INITIAL as eulersr_initial
{
LANG: C
+ READS: grid::x
+ WRITES: EulerSR::epsi
+ WRITES: EulerSR::rho
+ WRITES: EulerSR::v1
+ WRITES: EulerSR::v2
+ WRITES: EulerSR::v3
} "eulersr_initial_shock"
}
schedule eulersr_cons_calc_zero_rhs in MoL_CalcRHS
{
LANG: C
+ WRITES: EulerSR::Denrhs
+ WRITES: EulerSR::S1rhs
+ WRITES: EulerSR::S2rhs
+ WRITES: EulerSR::S3rhs
+ WRITES: EulerSR::taurhs
} "eulersr_cons_calc_zero_rhs"
schedule eulersr_cons_calc_conserved at POSTINITIAL
{
LANG: C
+ READS: EulerSR::Den
+ READS: EulerSR::epsi
+ READS: EulerSR::h
+ READS: EulerSR::p
+ READS: EulerSR::rho
+ READS: EulerSR::v1
+ READS: EulerSR::v2
+ READS: EulerSR::v3
+ READS: EulerSR::W
+ WRITES: EulerSR::Den
+ WRITES: EulerSR::h
+ WRITES: EulerSR::p
+ WRITES: EulerSR::S1
+ WRITES: EulerSR::S2
+ WRITES: EulerSR::S3
+ WRITES: EulerSR::tau
+ WRITES: EulerSR::W
} "eulersr_cons_calc_conserved"
schedule eulersr_cons_calc_primitives in MoL_PostStep after EulerSR_ApplyBCs
{
LANG: C
+ READS: EulerSR::Den
+ READS: EulerSR::epsi
+ READS: EulerSR::h
+ READS: EulerSR::p
+ READS: EulerSR::rho
+ READS: EulerSR::S1
+ READS: EulerSR::S2
+ READS: EulerSR::S3
+ READS: EulerSR::tau
+ READS: EulerSR::W
+ WRITES: EulerSR::epsi
+ WRITES: EulerSR::h
+ WRITES: EulerSR::p
+ WRITES: EulerSR::rho
+ WRITES: EulerSR::v1
+ WRITES: EulerSR::v2
+ WRITES: EulerSR::v3
+ WRITES: EulerSR::W
} "eulersr_cons_calc_primitives"
schedule group eulersr_cons_calc_reconstruct_1_group in MoL_CalcRHS after eulersr_cons_calc_zero_rhs
@@ -234,6 +274,21 @@ schedule group eulersr_cons_calc_reconstruct_1_group in MoL_CalcRHS after eulers
schedule eulersr_cons_calc_reconstruct_1 in eulersr_cons_calc_reconstruct_1_group
{
LANG: C
+ READS: EulerSR::epsi
+ READS: EulerSR::rho
+ READS: EulerSR::v1
+ READS: EulerSR::v2
+ READS: EulerSR::v3
+ WRITES: EulerSR::epsiLeft
+ WRITES: EulerSR::epsiRight
+ WRITES: EulerSR::rhoLeft
+ WRITES: EulerSR::rhoRight
+ WRITES: EulerSR::v1Left
+ WRITES: EulerSR::v1Right
+ WRITES: EulerSR::v2Left
+ WRITES: EulerSR::v2Right
+ WRITES: EulerSR::v3Left
+ WRITES: EulerSR::v3Right
} "eulersr_cons_calc_reconstruct_1"
schedule eulersr_cons_calc_reconstruct_1_SelectBCs in eulersr_cons_calc_reconstruct_1_bc_group
@@ -265,6 +320,34 @@ schedule group eulersr_cons_calc_reconstruct_1_bc_group in MoL_PseudoEvolutionBo
schedule eulersr_cons_calc_intercell_conserved_1 in MoL_CalcRHS after eulersr_cons_calc_reconstruct_1
{
LANG: C
+ READS: EulerSR::DenLeft
+ READS: EulerSR::DenRight
+ READS: EulerSR::epsiLeft
+ READS: EulerSR::epsiRight
+ READS: EulerSR::h
+ READS: EulerSR::p
+ READS: EulerSR::rhoLeft
+ READS: EulerSR::rhoRight
+ READS: EulerSR::v1Left
+ READS: EulerSR::v1Right
+ READS: EulerSR::v2Left
+ READS: EulerSR::v2Right
+ READS: EulerSR::v3Left
+ READS: EulerSR::v3Right
+ READS: EulerSR::W
+ WRITES: EulerSR::DenLeft
+ WRITES: EulerSR::DenRight
+ WRITES: EulerSR::h
+ WRITES: EulerSR::p
+ WRITES: EulerSR::S1Left
+ WRITES: EulerSR::S1Right
+ WRITES: EulerSR::S2Left
+ WRITES: EulerSR::S2Right
+ WRITES: EulerSR::S3Left
+ WRITES: EulerSR::S3Right
+ WRITES: EulerSR::tauLeft
+ WRITES: EulerSR::tauRight
+ WRITES: EulerSR::W
} "eulersr_cons_calc_intercell_conserved_1"
schedule group eulersr_cons_calc_flux_1_group in MoL_CalcRHS after eulersr_cons_calc_intercell_conserved_1
@@ -275,6 +358,27 @@ schedule group eulersr_cons_calc_flux_1_group in MoL_CalcRHS after eulersr_cons_
schedule eulersr_cons_calc_flux_1 in eulersr_cons_calc_flux_1_group
{
LANG: C
+ READS: EulerSR::DenLeft
+ READS: EulerSR::DenRight
+ READS: EulerSR::epsiLeft
+ READS: EulerSR::epsiRight
+ READS: EulerSR::rhoLeft
+ READS: EulerSR::rhoRight
+ READS: EulerSR::S1Left
+ READS: EulerSR::S1Right
+ READS: EulerSR::S2Left
+ READS: EulerSR::S2Right
+ READS: EulerSR::S3Left
+ READS: EulerSR::S3Right
+ READS: EulerSR::tauLeft
+ READS: EulerSR::tauRight
+ READS: EulerSR::v1Left
+ READS: EulerSR::v1Right
+ WRITES: EulerSR::DenFlux
+ WRITES: EulerSR::S1Flux
+ WRITES: EulerSR::S2Flux
+ WRITES: EulerSR::S3Flux
+ WRITES: EulerSR::tauFlux
} "eulersr_cons_calc_flux_1"
schedule eulersr_cons_calc_flux_1_SelectBCs in eulersr_cons_calc_flux_1_bc_group
@@ -306,6 +410,21 @@ schedule group eulersr_cons_calc_flux_1_bc_group in MoL_PseudoEvolutionBoundarie
schedule eulersr_cons_calc_rhs_1 in MoL_CalcRHS after eulersr_cons_calc_flux_1
{
LANG: C
+ READS: EulerSR::DenFlux
+ READS: EulerSR::Denrhs
+ READS: EulerSR::S1Flux
+ READS: EulerSR::S1rhs
+ READS: EulerSR::S2Flux
+ READS: EulerSR::S2rhs
+ READS: EulerSR::S3Flux
+ READS: EulerSR::S3rhs
+ READS: EulerSR::tauFlux
+ READS: EulerSR::taurhs
+ WRITES: EulerSR::Denrhs
+ WRITES: EulerSR::S1rhs
+ WRITES: EulerSR::S2rhs
+ WRITES: EulerSR::S3rhs
+ WRITES: EulerSR::taurhs
} "eulersr_cons_calc_rhs_1"
schedule group eulersr_cons_calc_reconstruct_2_group in MoL_CalcRHS after eulersr_cons_calc_rhs_1
@@ -316,6 +435,21 @@ schedule group eulersr_cons_calc_reconstruct_2_group in MoL_CalcRHS after eulers
schedule eulersr_cons_calc_reconstruct_2 in eulersr_cons_calc_reconstruct_2_group
{
LANG: C
+ READS: EulerSR::epsi
+ READS: EulerSR::rho
+ READS: EulerSR::v1
+ READS: EulerSR::v2
+ READS: EulerSR::v3
+ WRITES: EulerSR::epsiLeft
+ WRITES: EulerSR::epsiRight
+ WRITES: EulerSR::rhoLeft
+ WRITES: EulerSR::rhoRight
+ WRITES: EulerSR::v1Left
+ WRITES: EulerSR::v1Right
+ WRITES: EulerSR::v2Left
+ WRITES: EulerSR::v2Right
+ WRITES: EulerSR::v3Left
+ WRITES: EulerSR::v3Right
} "eulersr_cons_calc_reconstruct_2"
schedule eulersr_cons_calc_reconstruct_2_SelectBCs in eulersr_cons_calc_reconstruct_2_bc_group
@@ -347,6 +481,34 @@ schedule group eulersr_cons_calc_reconstruct_2_bc_group in MoL_PseudoEvolutionBo
schedule eulersr_cons_calc_intercell_conserved_2 in MoL_CalcRHS after eulersr_cons_calc_reconstruct_2
{
LANG: C
+ READS: EulerSR::DenLeft
+ READS: EulerSR::DenRight
+ READS: EulerSR::epsiLeft
+ READS: EulerSR::epsiRight
+ READS: EulerSR::h
+ READS: EulerSR::p
+ READS: EulerSR::rhoLeft
+ READS: EulerSR::rhoRight
+ READS: EulerSR::v1Left
+ READS: EulerSR::v1Right
+ READS: EulerSR::v2Left
+ READS: EulerSR::v2Right
+ READS: EulerSR::v3Left
+ READS: EulerSR::v3Right
+ READS: EulerSR::W
+ WRITES: EulerSR::DenLeft
+ WRITES: EulerSR::DenRight
+ WRITES: EulerSR::h
+ WRITES: EulerSR::p
+ WRITES: EulerSR::S1Left
+ WRITES: EulerSR::S1Right
+ WRITES: EulerSR::S2Left
+ WRITES: EulerSR::S2Right
+ WRITES: EulerSR::S3Left
+ WRITES: EulerSR::S3Right
+ WRITES: EulerSR::tauLeft
+ WRITES: EulerSR::tauRight
+ WRITES: EulerSR::W
} "eulersr_cons_calc_intercell_conserved_2"
schedule group eulersr_cons_calc_flux_2_group in MoL_CalcRHS after eulersr_cons_calc_intercell_conserved_2
@@ -357,6 +519,27 @@ schedule group eulersr_cons_calc_flux_2_group in MoL_CalcRHS after eulersr_cons_
schedule eulersr_cons_calc_flux_2 in eulersr_cons_calc_flux_2_group
{
LANG: C
+ READS: EulerSR::DenLeft
+ READS: EulerSR::DenRight
+ READS: EulerSR::epsiLeft
+ READS: EulerSR::epsiRight
+ READS: EulerSR::rhoLeft
+ READS: EulerSR::rhoRight
+ READS: EulerSR::S1Left
+ READS: EulerSR::S1Right
+ READS: EulerSR::S2Left
+ READS: EulerSR::S2Right
+ READS: EulerSR::S3Left
+ READS: EulerSR::S3Right
+ READS: EulerSR::tauLeft
+ READS: EulerSR::tauRight
+ READS: EulerSR::v2Left
+ READS: EulerSR::v2Right
+ WRITES: EulerSR::DenFlux
+ WRITES: EulerSR::S1Flux
+ WRITES: EulerSR::S2Flux
+ WRITES: EulerSR::S3Flux
+ WRITES: EulerSR::tauFlux
} "eulersr_cons_calc_flux_2"
schedule eulersr_cons_calc_flux_2_SelectBCs in eulersr_cons_calc_flux_2_bc_group
@@ -388,6 +571,21 @@ schedule group eulersr_cons_calc_flux_2_bc_group in MoL_PseudoEvolutionBoundarie
schedule eulersr_cons_calc_rhs_2 in MoL_CalcRHS after eulersr_cons_calc_flux_2
{
LANG: C
+ READS: EulerSR::DenFlux
+ READS: EulerSR::Denrhs
+ READS: EulerSR::S1Flux
+ READS: EulerSR::S1rhs
+ READS: EulerSR::S2Flux
+ READS: EulerSR::S2rhs
+ READS: EulerSR::S3Flux
+ READS: EulerSR::S3rhs
+ READS: EulerSR::tauFlux
+ READS: EulerSR::taurhs
+ WRITES: EulerSR::Denrhs
+ WRITES: EulerSR::S1rhs
+ WRITES: EulerSR::S2rhs
+ WRITES: EulerSR::S3rhs
+ WRITES: EulerSR::taurhs
} "eulersr_cons_calc_rhs_2"
schedule group eulersr_cons_calc_reconstruct_3_group in MoL_CalcRHS after eulersr_cons_calc_rhs_2
@@ -398,6 +596,21 @@ schedule group eulersr_cons_calc_reconstruct_3_group in MoL_CalcRHS after eulers
schedule eulersr_cons_calc_reconstruct_3 in eulersr_cons_calc_reconstruct_3_group
{
LANG: C
+ READS: EulerSR::epsi
+ READS: EulerSR::rho
+ READS: EulerSR::v1
+ READS: EulerSR::v2
+ READS: EulerSR::v3
+ WRITES: EulerSR::epsiLeft
+ WRITES: EulerSR::epsiRight
+ WRITES: EulerSR::rhoLeft
+ WRITES: EulerSR::rhoRight
+ WRITES: EulerSR::v1Left
+ WRITES: EulerSR::v1Right
+ WRITES: EulerSR::v2Left
+ WRITES: EulerSR::v2Right
+ WRITES: EulerSR::v3Left
+ WRITES: EulerSR::v3Right
} "eulersr_cons_calc_reconstruct_3"
schedule eulersr_cons_calc_reconstruct_3_SelectBCs in eulersr_cons_calc_reconstruct_3_bc_group
@@ -429,6 +642,34 @@ schedule group eulersr_cons_calc_reconstruct_3_bc_group in MoL_PseudoEvolutionBo
schedule eulersr_cons_calc_intercell_conserved_3 in MoL_CalcRHS after eulersr_cons_calc_reconstruct_3
{
LANG: C
+ READS: EulerSR::DenLeft
+ READS: EulerSR::DenRight
+ READS: EulerSR::epsiLeft
+ READS: EulerSR::epsiRight
+ READS: EulerSR::h
+ READS: EulerSR::p
+ READS: EulerSR::rhoLeft
+ READS: EulerSR::rhoRight
+ READS: EulerSR::v1Left
+ READS: EulerSR::v1Right
+ READS: EulerSR::v2Left
+ READS: EulerSR::v2Right
+ READS: EulerSR::v3Left
+ READS: EulerSR::v3Right
+ READS: EulerSR::W
+ WRITES: EulerSR::DenLeft
+ WRITES: EulerSR::DenRight
+ WRITES: EulerSR::h
+ WRITES: EulerSR::p
+ WRITES: EulerSR::S1Left
+ WRITES: EulerSR::S1Right
+ WRITES: EulerSR::S2Left
+ WRITES: EulerSR::S2Right
+ WRITES: EulerSR::S3Left
+ WRITES: EulerSR::S3Right
+ WRITES: EulerSR::tauLeft
+ WRITES: EulerSR::tauRight
+ WRITES: EulerSR::W
} "eulersr_cons_calc_intercell_conserved_3"
schedule group eulersr_cons_calc_flux_3_group in MoL_CalcRHS after eulersr_cons_calc_intercell_conserved_3
@@ -439,6 +680,27 @@ schedule group eulersr_cons_calc_flux_3_group in MoL_CalcRHS after eulersr_cons_
schedule eulersr_cons_calc_flux_3 in eulersr_cons_calc_flux_3_group
{
LANG: C
+ READS: EulerSR::DenLeft
+ READS: EulerSR::DenRight
+ READS: EulerSR::epsiLeft
+ READS: EulerSR::epsiRight
+ READS: EulerSR::rhoLeft
+ READS: EulerSR::rhoRight
+ READS: EulerSR::S1Left
+ READS: EulerSR::S1Right
+ READS: EulerSR::S2Left
+ READS: EulerSR::S2Right
+ READS: EulerSR::S3Left
+ READS: EulerSR::S3Right
+ READS: EulerSR::tauLeft
+ READS: EulerSR::tauRight
+ READS: EulerSR::v3Left
+ READS: EulerSR::v3Right
+ WRITES: EulerSR::DenFlux
+ WRITES: EulerSR::S1Flux
+ WRITES: EulerSR::S2Flux
+ WRITES: EulerSR::S3Flux
+ WRITES: EulerSR::tauFlux
} "eulersr_cons_calc_flux_3"
schedule eulersr_cons_calc_flux_3_SelectBCs in eulersr_cons_calc_flux_3_bc_group
@@ -470,6 +732,21 @@ schedule group eulersr_cons_calc_flux_3_bc_group in MoL_PseudoEvolutionBoundarie
schedule eulersr_cons_calc_rhs_3 in MoL_CalcRHS after eulersr_cons_calc_flux_3
{
LANG: C
+ READS: EulerSR::DenFlux
+ READS: EulerSR::Denrhs
+ READS: EulerSR::S1Flux
+ READS: EulerSR::S1rhs
+ READS: EulerSR::S2Flux
+ READS: EulerSR::S2rhs
+ READS: EulerSR::S3Flux
+ READS: EulerSR::S3rhs
+ READS: EulerSR::tauFlux
+ READS: EulerSR::taurhs
+ WRITES: EulerSR::Denrhs
+ WRITES: EulerSR::S1rhs
+ WRITES: EulerSR::S2rhs
+ WRITES: EulerSR::S3rhs
+ WRITES: EulerSR::taurhs
} "eulersr_cons_calc_rhs_3"
schedule EulerSR_SelectBoundConds in MoL_PostStep
@@ -487,6 +764,12 @@ schedule EulerSR_CheckBoundaries at BASEGRID
OPTIONS: meta
} "check boundaries treatment"
+schedule EulerSR_RegisterVars in MoL_Register
+{
+ LANG: C
+ OPTIONS: meta
+} "Register Variables for MoL"
+
schedule group ApplyBCs as EulerSR_ApplyBCs in MoL_PostStep after EulerSR_SelectBoundConds
{
# no language specified
diff --git a/Examples/EulerSR/src/eulersr_cons_calc_conserved.cc b/Examples/EulerSR/src/eulersr_cons_calc_conserved.cc
index 673ff99..ba11a6e 100644
--- a/Examples/EulerSR/src/eulersr_cons_calc_conserved.cc
+++ b/Examples/EulerSR/src/eulersr_cons_calc_conserved.cc
@@ -17,10 +17,10 @@
/* Define macros used in calculations */
#define INITVALUE (42)
-#define QAD(x) (SQR(SQR(x)))
-#define INV(x) ((1.0) / (x))
+#define INV(x) ((CCTK_REAL)1.0 / (x))
#define SQR(x) ((x) * (x))
-#define CUB(x) ((x) * (x) * (x))
+#define CUB(x) ((x) * SQR(x))
+#define QAD(x) (SQR(SQR(x)))
static void eulersr_cons_calc_conserved_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const imin[3], int const imax[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
@@ -28,8 +28,6 @@ static void eulersr_cons_calc_conserved_Body(cGH const * restrict const cctkGH,
DECLARE_CCTK_PARAMETERS;
- /* Declare finite differencing variables */
-
/* Include user-supplied include files */
/* Initialise finite differencing variables */
@@ -72,9 +70,9 @@ static void eulersr_cons_calc_conserved_Body(cGH const * restrict const cctkGH,
/* Loop over the grid points */
#pragma omp parallel
- CCTK_LOOP3 (eulersr_cons_calc_conserved,
+ CCTK_LOOP3(eulersr_cons_calc_conserved,
i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2],
- cctk_lsh[0],cctk_lsh[1],cctk_lsh[2])
+ cctk_ash[0],cctk_ash[1],cctk_ash[2])
{
ptrdiff_t const index = di*i + dj*j + dk*k;
@@ -124,7 +122,7 @@ static void eulersr_cons_calc_conserved_Body(cGH const * restrict const cctkGH,
tau[index] = tauL;
W[index] = WL;
}
- CCTK_ENDLOOP3 (eulersr_cons_calc_conserved);
+ CCTK_ENDLOOP3(eulersr_cons_calc_conserved);
}
extern "C" void eulersr_cons_calc_conserved(CCTK_ARGUMENTS)
@@ -143,11 +141,20 @@ extern "C" void eulersr_cons_calc_conserved(CCTK_ARGUMENTS)
return;
}
- const char *groups[] = {"EulerSR::Den_group","EulerSR::epsi_group","EulerSR::h_group","EulerSR::p_group","EulerSR::rho_group","EulerSR::S_group","EulerSR::tau_group","EulerSR::v_group","EulerSR::W_group"};
+ const char *const groups[] = {
+ "EulerSR::Den_group",
+ "EulerSR::epsi_group",
+ "EulerSR::h_group",
+ "EulerSR::p_group",
+ "EulerSR::rho_group",
+ "EulerSR::S_group",
+ "EulerSR::tau_group",
+ "EulerSR::v_group",
+ "EulerSR::W_group"};
GenericFD_AssertGroupStorage(cctkGH, "eulersr_cons_calc_conserved", 9, groups);
- GenericFD_LoopOverEverything(cctkGH, &eulersr_cons_calc_conserved_Body);
+ GenericFD_LoopOverEverything(cctkGH, eulersr_cons_calc_conserved_Body);
if (verbose > 1)
{
diff --git a/Examples/EulerSR/src/eulersr_cons_calc_flux_1.cc b/Examples/EulerSR/src/eulersr_cons_calc_flux_1.cc
index 843de50..a618b63 100644
--- a/Examples/EulerSR/src/eulersr_cons_calc_flux_1.cc
+++ b/Examples/EulerSR/src/eulersr_cons_calc_flux_1.cc
@@ -17,10 +17,10 @@
/* Define macros used in calculations */
#define INITVALUE (42)
-#define QAD(x) (SQR(SQR(x)))
-#define INV(x) ((1.0) / (x))
+#define INV(x) ((CCTK_REAL)1.0 / (x))
#define SQR(x) ((x) * (x))
-#define CUB(x) ((x) * (x) * (x))
+#define CUB(x) ((x) * SQR(x))
+#define QAD(x) (SQR(SQR(x)))
extern "C" void eulersr_cons_calc_flux_1_SelectBCs(CCTK_ARGUMENTS)
{
@@ -52,8 +52,6 @@ static void eulersr_cons_calc_flux_1_Body(cGH const * restrict const cctkGH, int
DECLARE_CCTK_PARAMETERS;
- /* Declare finite differencing variables */
-
/* Include user-supplied include files */
/* Initialise finite differencing variables */
@@ -96,9 +94,9 @@ static void eulersr_cons_calc_flux_1_Body(cGH const * restrict const cctkGH, int
/* Loop over the grid points */
#pragma omp parallel
- CCTK_LOOP3 (eulersr_cons_calc_flux_1,
+ CCTK_LOOP3(eulersr_cons_calc_flux_1,
i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2],
- cctk_lsh[0],cctk_lsh[1],cctk_lsh[2])
+ cctk_ash[0],cctk_ash[1],cctk_ash[2])
{
ptrdiff_t const index = di*i + dj*j + dk*k;
@@ -181,7 +179,7 @@ static void eulersr_cons_calc_flux_1_Body(cGH const * restrict const cctkGH, int
S3Flux[index] = S3FluxL;
tauFlux[index] = tauFluxL;
}
- CCTK_ENDLOOP3 (eulersr_cons_calc_flux_1);
+ CCTK_ENDLOOP3(eulersr_cons_calc_flux_1);
}
extern "C" void eulersr_cons_calc_flux_1(CCTK_ARGUMENTS)
@@ -200,12 +198,25 @@ extern "C" void eulersr_cons_calc_flux_1(CCTK_ARGUMENTS)
return;
}
- const char *groups[] = {"EulerSR::Den_flux_group","EulerSR::Den_lr_group","EulerSR::epsi_lr_group","EulerSR::rho_lr_group","EulerSR::S1_flux_group","EulerSR::S1_lr_group","EulerSR::S2_flux_group","EulerSR::S2_lr_group","EulerSR::S3_flux_group","EulerSR::S3_lr_group","EulerSR::tau_flux_group","EulerSR::tau_lr_group","EulerSR::v1_lr_group"};
+ const char *const groups[] = {
+ "EulerSR::Den_flux_group",
+ "EulerSR::Den_lr_group",
+ "EulerSR::epsi_lr_group",
+ "EulerSR::rho_lr_group",
+ "EulerSR::S1_flux_group",
+ "EulerSR::S1_lr_group",
+ "EulerSR::S2_flux_group",
+ "EulerSR::S2_lr_group",
+ "EulerSR::S3_flux_group",
+ "EulerSR::S3_lr_group",
+ "EulerSR::tau_flux_group",
+ "EulerSR::tau_lr_group",
+ "EulerSR::v1_lr_group"};
GenericFD_AssertGroupStorage(cctkGH, "eulersr_cons_calc_flux_1", 13, groups);
GenericFD_EnsureStencilFits(cctkGH, "eulersr_cons_calc_flux_1", 1, 1, 1);
- GenericFD_LoopOverInterior(cctkGH, &eulersr_cons_calc_flux_1_Body);
+ GenericFD_LoopOverInterior(cctkGH, eulersr_cons_calc_flux_1_Body);
if (verbose > 1)
{
diff --git a/Examples/EulerSR/src/eulersr_cons_calc_flux_2.cc b/Examples/EulerSR/src/eulersr_cons_calc_flux_2.cc
index fb8553c..9c264a5 100644
--- a/Examples/EulerSR/src/eulersr_cons_calc_flux_2.cc
+++ b/Examples/EulerSR/src/eulersr_cons_calc_flux_2.cc
@@ -17,10 +17,10 @@
/* Define macros used in calculations */
#define INITVALUE (42)
-#define QAD(x) (SQR(SQR(x)))
-#define INV(x) ((1.0) / (x))
+#define INV(x) ((CCTK_REAL)1.0 / (x))
#define SQR(x) ((x) * (x))
-#define CUB(x) ((x) * (x) * (x))
+#define CUB(x) ((x) * SQR(x))
+#define QAD(x) (SQR(SQR(x)))
extern "C" void eulersr_cons_calc_flux_2_SelectBCs(CCTK_ARGUMENTS)
{
@@ -52,8 +52,6 @@ static void eulersr_cons_calc_flux_2_Body(cGH const * restrict const cctkGH, int
DECLARE_CCTK_PARAMETERS;
- /* Declare finite differencing variables */
-
/* Include user-supplied include files */
/* Initialise finite differencing variables */
@@ -96,9 +94,9 @@ static void eulersr_cons_calc_flux_2_Body(cGH const * restrict const cctkGH, int
/* Loop over the grid points */
#pragma omp parallel
- CCTK_LOOP3 (eulersr_cons_calc_flux_2,
+ CCTK_LOOP3(eulersr_cons_calc_flux_2,
i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2],
- cctk_lsh[0],cctk_lsh[1],cctk_lsh[2])
+ cctk_ash[0],cctk_ash[1],cctk_ash[2])
{
ptrdiff_t const index = di*i + dj*j + dk*k;
@@ -181,7 +179,7 @@ static void eulersr_cons_calc_flux_2_Body(cGH const * restrict const cctkGH, int
S3Flux[index] = S3FluxL;
tauFlux[index] = tauFluxL;
}
- CCTK_ENDLOOP3 (eulersr_cons_calc_flux_2);
+ CCTK_ENDLOOP3(eulersr_cons_calc_flux_2);
}
extern "C" void eulersr_cons_calc_flux_2(CCTK_ARGUMENTS)
@@ -200,12 +198,25 @@ extern "C" void eulersr_cons_calc_flux_2(CCTK_ARGUMENTS)
return;
}
- const char *groups[] = {"EulerSR::Den_flux_group","EulerSR::Den_lr_group","EulerSR::epsi_lr_group","EulerSR::rho_lr_group","EulerSR::S1_flux_group","EulerSR::S1_lr_group","EulerSR::S2_flux_group","EulerSR::S2_lr_group","EulerSR::S3_flux_group","EulerSR::S3_lr_group","EulerSR::tau_flux_group","EulerSR::tau_lr_group","EulerSR::v2_lr_group"};
+ const char *const groups[] = {
+ "EulerSR::Den_flux_group",
+ "EulerSR::Den_lr_group",
+ "EulerSR::epsi_lr_group",
+ "EulerSR::rho_lr_group",
+ "EulerSR::S1_flux_group",
+ "EulerSR::S1_lr_group",
+ "EulerSR::S2_flux_group",
+ "EulerSR::S2_lr_group",
+ "EulerSR::S3_flux_group",
+ "EulerSR::S3_lr_group",
+ "EulerSR::tau_flux_group",
+ "EulerSR::tau_lr_group",
+ "EulerSR::v2_lr_group"};
GenericFD_AssertGroupStorage(cctkGH, "eulersr_cons_calc_flux_2", 13, groups);
GenericFD_EnsureStencilFits(cctkGH, "eulersr_cons_calc_flux_2", 1, 1, 1);
- GenericFD_LoopOverInterior(cctkGH, &eulersr_cons_calc_flux_2_Body);
+ GenericFD_LoopOverInterior(cctkGH, eulersr_cons_calc_flux_2_Body);
if (verbose > 1)
{
diff --git a/Examples/EulerSR/src/eulersr_cons_calc_flux_3.cc b/Examples/EulerSR/src/eulersr_cons_calc_flux_3.cc
index 90fc2b7..ede78c8 100644
--- a/Examples/EulerSR/src/eulersr_cons_calc_flux_3.cc
+++ b/Examples/EulerSR/src/eulersr_cons_calc_flux_3.cc
@@ -17,10 +17,10 @@
/* Define macros used in calculations */
#define INITVALUE (42)
-#define QAD(x) (SQR(SQR(x)))
-#define INV(x) ((1.0) / (x))
+#define INV(x) ((CCTK_REAL)1.0 / (x))
#define SQR(x) ((x) * (x))
-#define CUB(x) ((x) * (x) * (x))
+#define CUB(x) ((x) * SQR(x))
+#define QAD(x) (SQR(SQR(x)))
extern "C" void eulersr_cons_calc_flux_3_SelectBCs(CCTK_ARGUMENTS)
{
@@ -52,8 +52,6 @@ static void eulersr_cons_calc_flux_3_Body(cGH const * restrict const cctkGH, int
DECLARE_CCTK_PARAMETERS;
- /* Declare finite differencing variables */
-
/* Include user-supplied include files */
/* Initialise finite differencing variables */
@@ -96,9 +94,9 @@ static void eulersr_cons_calc_flux_3_Body(cGH const * restrict const cctkGH, int
/* Loop over the grid points */
#pragma omp parallel
- CCTK_LOOP3 (eulersr_cons_calc_flux_3,
+ CCTK_LOOP3(eulersr_cons_calc_flux_3,
i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2],
- cctk_lsh[0],cctk_lsh[1],cctk_lsh[2])
+ cctk_ash[0],cctk_ash[1],cctk_ash[2])
{
ptrdiff_t const index = di*i + dj*j + dk*k;
@@ -181,7 +179,7 @@ static void eulersr_cons_calc_flux_3_Body(cGH const * restrict const cctkGH, int
S3Flux[index] = S3FluxL;
tauFlux[index] = tauFluxL;
}
- CCTK_ENDLOOP3 (eulersr_cons_calc_flux_3);
+ CCTK_ENDLOOP3(eulersr_cons_calc_flux_3);
}
extern "C" void eulersr_cons_calc_flux_3(CCTK_ARGUMENTS)
@@ -200,12 +198,25 @@ extern "C" void eulersr_cons_calc_flux_3(CCTK_ARGUMENTS)
return;
}
- const char *groups[] = {"EulerSR::Den_flux_group","EulerSR::Den_lr_group","EulerSR::epsi_lr_group","EulerSR::rho_lr_group","EulerSR::S1_flux_group","EulerSR::S1_lr_group","EulerSR::S2_flux_group","EulerSR::S2_lr_group","EulerSR::S3_flux_group","EulerSR::S3_lr_group","EulerSR::tau_flux_group","EulerSR::tau_lr_group","EulerSR::v3_lr_group"};
+ const char *const groups[] = {
+ "EulerSR::Den_flux_group",
+ "EulerSR::Den_lr_group",
+ "EulerSR::epsi_lr_group",
+ "EulerSR::rho_lr_group",
+ "EulerSR::S1_flux_group",
+ "EulerSR::S1_lr_group",
+ "EulerSR::S2_flux_group",
+ "EulerSR::S2_lr_group",
+ "EulerSR::S3_flux_group",
+ "EulerSR::S3_lr_group",
+ "EulerSR::tau_flux_group",
+ "EulerSR::tau_lr_group",
+ "EulerSR::v3_lr_group"};
GenericFD_AssertGroupStorage(cctkGH, "eulersr_cons_calc_flux_3", 13, groups);
GenericFD_EnsureStencilFits(cctkGH, "eulersr_cons_calc_flux_3", 1, 1, 1);
- GenericFD_LoopOverInterior(cctkGH, &eulersr_cons_calc_flux_3_Body);
+ GenericFD_LoopOverInterior(cctkGH, eulersr_cons_calc_flux_3_Body);
if (verbose > 1)
{
diff --git a/Examples/EulerSR/src/eulersr_cons_calc_intercell_conserved_1.cc b/Examples/EulerSR/src/eulersr_cons_calc_intercell_conserved_1.cc
index df163c1..773d8f5 100644
--- a/Examples/EulerSR/src/eulersr_cons_calc_intercell_conserved_1.cc
+++ b/Examples/EulerSR/src/eulersr_cons_calc_intercell_conserved_1.cc
@@ -17,10 +17,10 @@
/* Define macros used in calculations */
#define INITVALUE (42)
-#define QAD(x) (SQR(SQR(x)))
-#define INV(x) ((1.0) / (x))
+#define INV(x) ((CCTK_REAL)1.0 / (x))
#define SQR(x) ((x) * (x))
-#define CUB(x) ((x) * (x) * (x))
+#define CUB(x) ((x) * SQR(x))
+#define QAD(x) (SQR(SQR(x)))
static void eulersr_cons_calc_intercell_conserved_1_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const imin[3], int const imax[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
@@ -28,8 +28,6 @@ static void eulersr_cons_calc_intercell_conserved_1_Body(cGH const * restrict co
DECLARE_CCTK_PARAMETERS;
- /* Declare finite differencing variables */
-
/* Include user-supplied include files */
/* Initialise finite differencing variables */
@@ -72,9 +70,9 @@ static void eulersr_cons_calc_intercell_conserved_1_Body(cGH const * restrict co
/* Loop over the grid points */
#pragma omp parallel
- CCTK_LOOP3 (eulersr_cons_calc_intercell_conserved_1,
+ CCTK_LOOP3(eulersr_cons_calc_intercell_conserved_1,
i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2],
- cctk_lsh[0],cctk_lsh[1],cctk_lsh[2])
+ cctk_ash[0],cctk_ash[1],cctk_ash[2])
{
ptrdiff_t const index = di*i + dj*j + dk*k;
@@ -154,7 +152,7 @@ static void eulersr_cons_calc_intercell_conserved_1_Body(cGH const * restrict co
tauRight[index] = tauRightL;
W[index] = WL;
}
- CCTK_ENDLOOP3 (eulersr_cons_calc_intercell_conserved_1);
+ CCTK_ENDLOOP3(eulersr_cons_calc_intercell_conserved_1);
}
extern "C" void eulersr_cons_calc_intercell_conserved_1(CCTK_ARGUMENTS)
@@ -173,11 +171,24 @@ extern "C" void eulersr_cons_calc_intercell_conserved_1(CCTK_ARGUMENTS)
return;
}
- const char *groups[] = {"EulerSR::Den_lr_group","EulerSR::epsi_lr_group","EulerSR::h_group","EulerSR::p_group","EulerSR::rho_lr_group","EulerSR::S1_lr_group","EulerSR::S2_lr_group","EulerSR::S3_lr_group","EulerSR::tau_lr_group","EulerSR::v1_lr_group","EulerSR::v2_lr_group","EulerSR::v3_lr_group","EulerSR::W_group"};
+ const char *const groups[] = {
+ "EulerSR::Den_lr_group",
+ "EulerSR::epsi_lr_group",
+ "EulerSR::h_group",
+ "EulerSR::p_group",
+ "EulerSR::rho_lr_group",
+ "EulerSR::S1_lr_group",
+ "EulerSR::S2_lr_group",
+ "EulerSR::S3_lr_group",
+ "EulerSR::tau_lr_group",
+ "EulerSR::v1_lr_group",
+ "EulerSR::v2_lr_group",
+ "EulerSR::v3_lr_group",
+ "EulerSR::W_group"};
GenericFD_AssertGroupStorage(cctkGH, "eulersr_cons_calc_intercell_conserved_1", 13, groups);
- GenericFD_LoopOverEverything(cctkGH, &eulersr_cons_calc_intercell_conserved_1_Body);
+ GenericFD_LoopOverEverything(cctkGH, eulersr_cons_calc_intercell_conserved_1_Body);
if (verbose > 1)
{
diff --git a/Examples/EulerSR/src/eulersr_cons_calc_intercell_conserved_2.cc b/Examples/EulerSR/src/eulersr_cons_calc_intercell_conserved_2.cc
index 83616ac..a40fee7 100644
--- a/Examples/EulerSR/src/eulersr_cons_calc_intercell_conserved_2.cc
+++ b/Examples/EulerSR/src/eulersr_cons_calc_intercell_conserved_2.cc
@@ -17,10 +17,10 @@
/* Define macros used in calculations */
#define INITVALUE (42)
-#define QAD(x) (SQR(SQR(x)))
-#define INV(x) ((1.0) / (x))
+#define INV(x) ((CCTK_REAL)1.0 / (x))
#define SQR(x) ((x) * (x))
-#define CUB(x) ((x) * (x) * (x))
+#define CUB(x) ((x) * SQR(x))
+#define QAD(x) (SQR(SQR(x)))
static void eulersr_cons_calc_intercell_conserved_2_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const imin[3], int const imax[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
@@ -28,8 +28,6 @@ static void eulersr_cons_calc_intercell_conserved_2_Body(cGH const * restrict co
DECLARE_CCTK_PARAMETERS;
- /* Declare finite differencing variables */
-
/* Include user-supplied include files */
/* Initialise finite differencing variables */
@@ -72,9 +70,9 @@ static void eulersr_cons_calc_intercell_conserved_2_Body(cGH const * restrict co
/* Loop over the grid points */
#pragma omp parallel
- CCTK_LOOP3 (eulersr_cons_calc_intercell_conserved_2,
+ CCTK_LOOP3(eulersr_cons_calc_intercell_conserved_2,
i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2],
- cctk_lsh[0],cctk_lsh[1],cctk_lsh[2])
+ cctk_ash[0],cctk_ash[1],cctk_ash[2])
{
ptrdiff_t const index = di*i + dj*j + dk*k;
@@ -154,7 +152,7 @@ static void eulersr_cons_calc_intercell_conserved_2_Body(cGH const * restrict co
tauRight[index] = tauRightL;
W[index] = WL;
}
- CCTK_ENDLOOP3 (eulersr_cons_calc_intercell_conserved_2);
+ CCTK_ENDLOOP3(eulersr_cons_calc_intercell_conserved_2);
}
extern "C" void eulersr_cons_calc_intercell_conserved_2(CCTK_ARGUMENTS)
@@ -173,11 +171,24 @@ extern "C" void eulersr_cons_calc_intercell_conserved_2(CCTK_ARGUMENTS)
return;
}
- const char *groups[] = {"EulerSR::Den_lr_group","EulerSR::epsi_lr_group","EulerSR::h_group","EulerSR::p_group","EulerSR::rho_lr_group","EulerSR::S1_lr_group","EulerSR::S2_lr_group","EulerSR::S3_lr_group","EulerSR::tau_lr_group","EulerSR::v1_lr_group","EulerSR::v2_lr_group","EulerSR::v3_lr_group","EulerSR::W_group"};
+ const char *const groups[] = {
+ "EulerSR::Den_lr_group",
+ "EulerSR::epsi_lr_group",
+ "EulerSR::h_group",
+ "EulerSR::p_group",
+ "EulerSR::rho_lr_group",
+ "EulerSR::S1_lr_group",
+ "EulerSR::S2_lr_group",
+ "EulerSR::S3_lr_group",
+ "EulerSR::tau_lr_group",
+ "EulerSR::v1_lr_group",
+ "EulerSR::v2_lr_group",
+ "EulerSR::v3_lr_group",
+ "EulerSR::W_group"};
GenericFD_AssertGroupStorage(cctkGH, "eulersr_cons_calc_intercell_conserved_2", 13, groups);
- GenericFD_LoopOverEverything(cctkGH, &eulersr_cons_calc_intercell_conserved_2_Body);
+ GenericFD_LoopOverEverything(cctkGH, eulersr_cons_calc_intercell_conserved_2_Body);
if (verbose > 1)
{
diff --git a/Examples/EulerSR/src/eulersr_cons_calc_intercell_conserved_3.cc b/Examples/EulerSR/src/eulersr_cons_calc_intercell_conserved_3.cc
index 4cc9ef2..1ac3fae 100644
--- a/Examples/EulerSR/src/eulersr_cons_calc_intercell_conserved_3.cc
+++ b/Examples/EulerSR/src/eulersr_cons_calc_intercell_conserved_3.cc
@@ -17,10 +17,10 @@
/* Define macros used in calculations */
#define INITVALUE (42)
-#define QAD(x) (SQR(SQR(x)))
-#define INV(x) ((1.0) / (x))
+#define INV(x) ((CCTK_REAL)1.0 / (x))
#define SQR(x) ((x) * (x))
-#define CUB(x) ((x) * (x) * (x))
+#define CUB(x) ((x) * SQR(x))
+#define QAD(x) (SQR(SQR(x)))
static void eulersr_cons_calc_intercell_conserved_3_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const imin[3], int const imax[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
@@ -28,8 +28,6 @@ static void eulersr_cons_calc_intercell_conserved_3_Body(cGH const * restrict co
DECLARE_CCTK_PARAMETERS;
- /* Declare finite differencing variables */
-
/* Include user-supplied include files */
/* Initialise finite differencing variables */
@@ -72,9 +70,9 @@ static void eulersr_cons_calc_intercell_conserved_3_Body(cGH const * restrict co
/* Loop over the grid points */
#pragma omp parallel
- CCTK_LOOP3 (eulersr_cons_calc_intercell_conserved_3,
+ CCTK_LOOP3(eulersr_cons_calc_intercell_conserved_3,
i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2],
- cctk_lsh[0],cctk_lsh[1],cctk_lsh[2])
+ cctk_ash[0],cctk_ash[1],cctk_ash[2])
{
ptrdiff_t const index = di*i + dj*j + dk*k;
@@ -154,7 +152,7 @@ static void eulersr_cons_calc_intercell_conserved_3_Body(cGH const * restrict co
tauRight[index] = tauRightL;
W[index] = WL;
}
- CCTK_ENDLOOP3 (eulersr_cons_calc_intercell_conserved_3);
+ CCTK_ENDLOOP3(eulersr_cons_calc_intercell_conserved_3);
}
extern "C" void eulersr_cons_calc_intercell_conserved_3(CCTK_ARGUMENTS)
@@ -173,11 +171,24 @@ extern "C" void eulersr_cons_calc_intercell_conserved_3(CCTK_ARGUMENTS)
return;
}
- const char *groups[] = {"EulerSR::Den_lr_group","EulerSR::epsi_lr_group","EulerSR::h_group","EulerSR::p_group","EulerSR::rho_lr_group","EulerSR::S1_lr_group","EulerSR::S2_lr_group","EulerSR::S3_lr_group","EulerSR::tau_lr_group","EulerSR::v1_lr_group","EulerSR::v2_lr_group","EulerSR::v3_lr_group","EulerSR::W_group"};
+ const char *const groups[] = {
+ "EulerSR::Den_lr_group",
+ "EulerSR::epsi_lr_group",
+ "EulerSR::h_group",
+ "EulerSR::p_group",
+ "EulerSR::rho_lr_group",
+ "EulerSR::S1_lr_group",
+ "EulerSR::S2_lr_group",
+ "EulerSR::S3_lr_group",
+ "EulerSR::tau_lr_group",
+ "EulerSR::v1_lr_group",
+ "EulerSR::v2_lr_group",
+ "EulerSR::v3_lr_group",
+ "EulerSR::W_group"};
GenericFD_AssertGroupStorage(cctkGH, "eulersr_cons_calc_intercell_conserved_3", 13, groups);
- GenericFD_LoopOverEverything(cctkGH, &eulersr_cons_calc_intercell_conserved_3_Body);
+ GenericFD_LoopOverEverything(cctkGH, eulersr_cons_calc_intercell_conserved_3_Body);
if (verbose > 1)
{
diff --git a/Examples/EulerSR/src/eulersr_cons_calc_primitives.cc b/Examples/EulerSR/src/eulersr_cons_calc_primitives.cc
index b43f41a..8f58a2a 100644
--- a/Examples/EulerSR/src/eulersr_cons_calc_primitives.cc
+++ b/Examples/EulerSR/src/eulersr_cons_calc_primitives.cc
@@ -17,10 +17,10 @@
/* Define macros used in calculations */
#define INITVALUE (42)
-#define QAD(x) (SQR(SQR(x)))
-#define INV(x) ((1.0) / (x))
+#define INV(x) ((CCTK_REAL)1.0 / (x))
#define SQR(x) ((x) * (x))
-#define CUB(x) ((x) * (x) * (x))
+#define CUB(x) ((x) * SQR(x))
+#define QAD(x) (SQR(SQR(x)))
static void eulersr_cons_calc_primitives_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const imin[3], int const imax[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
@@ -28,8 +28,6 @@ static void eulersr_cons_calc_primitives_Body(cGH const * restrict const cctkGH,
DECLARE_CCTK_PARAMETERS;
- /* Declare finite differencing variables */
-
/* Include user-supplied include files */
/* Initialise finite differencing variables */
@@ -72,9 +70,9 @@ static void eulersr_cons_calc_primitives_Body(cGH const * restrict const cctkGH,
/* Loop over the grid points */
#pragma omp parallel
- CCTK_LOOP3 (eulersr_cons_calc_primitives,
+ CCTK_LOOP3(eulersr_cons_calc_primitives,
i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2],
- cctk_lsh[0],cctk_lsh[1],cctk_lsh[2])
+ cctk_ash[0],cctk_ash[1],cctk_ash[2])
{
ptrdiff_t const index = di*i + dj*j + dk*k;
@@ -111,7 +109,7 @@ static void eulersr_cons_calc_primitives_Body(cGH const * restrict const cctkGH,
rhoL = DenL*INV(WL);
- hL = Z*INV(rhoL)*INV(SQR(WL));
+ hL = Z*INV(rhoL*SQR(WL));
epsiL = hL - (rhoL + pBar)*INV(rhoL);
@@ -136,7 +134,7 @@ static void eulersr_cons_calc_primitives_Body(cGH const * restrict const cctkGH,
rhoL = DenL*INV(WL);
- hL = Z*INV(rhoL)*INV(SQR(WL));
+ hL = Z*INV(rhoL*SQR(WL));
epsiL = hL - (rhoL + pBar)*INV(rhoL);
@@ -160,7 +158,7 @@ static void eulersr_cons_calc_primitives_Body(cGH const * restrict const cctkGH,
rhoL = DenL*INV(WL);
- hL = Z*INV(rhoL)*INV(SQR(WL));
+ hL = Z*INV(rhoL*SQR(WL));
epsiL = hL - (rhoL + pBar)*INV(rhoL);
@@ -184,7 +182,7 @@ static void eulersr_cons_calc_primitives_Body(cGH const * restrict const cctkGH,
rhoL = DenL*INV(WL);
- hL = Z*INV(rhoL)*INV(SQR(WL));
+ hL = Z*INV(rhoL*SQR(WL));
epsiL = hL - (rhoL + pBar)*INV(rhoL);
@@ -208,7 +206,7 @@ static void eulersr_cons_calc_primitives_Body(cGH const * restrict const cctkGH,
rhoL = DenL*INV(WL);
- hL = Z*INV(rhoL)*INV(SQR(WL));
+ hL = Z*INV(rhoL*SQR(WL));
epsiL = hL - (rhoL + pBar)*INV(rhoL);
@@ -224,11 +222,11 @@ static void eulersr_cons_calc_primitives_Body(cGH const * restrict const cctkGH,
pL = pBar;
- CCTK_REAL v1L = S1L*INV(hL)*INV(rhoL)*INV(SQR(WL));
+ CCTK_REAL v1L = S1L*INV(hL*rhoL*SQR(WL));
- CCTK_REAL v2L = S2L*INV(hL)*INV(rhoL)*INV(SQR(WL));
+ CCTK_REAL v2L = S2L*INV(hL*rhoL*SQR(WL));
- CCTK_REAL v3L = S3L*INV(hL)*INV(rhoL)*INV(SQR(WL));
+ CCTK_REAL v3L = S3L*INV(hL*rhoL*SQR(WL));
/* Copy local copies back to grid functions */
epsi[index] = epsiL;
@@ -240,7 +238,7 @@ static void eulersr_cons_calc_primitives_Body(cGH const * restrict const cctkGH,
v3[index] = v3L;
W[index] = WL;
}
- CCTK_ENDLOOP3 (eulersr_cons_calc_primitives);
+ CCTK_ENDLOOP3(eulersr_cons_calc_primitives);
}
extern "C" void eulersr_cons_calc_primitives(CCTK_ARGUMENTS)
@@ -259,11 +257,20 @@ extern "C" void eulersr_cons_calc_primitives(CCTK_ARGUMENTS)
return;
}
- const char *groups[] = {"EulerSR::Den_group","EulerSR::epsi_group","EulerSR::h_group","EulerSR::p_group","EulerSR::rho_group","EulerSR::S_group","EulerSR::tau_group","EulerSR::v_group","EulerSR::W_group"};
+ const char *const groups[] = {
+ "EulerSR::Den_group",
+ "EulerSR::epsi_group",
+ "EulerSR::h_group",
+ "EulerSR::p_group",
+ "EulerSR::rho_group",
+ "EulerSR::S_group",
+ "EulerSR::tau_group",
+ "EulerSR::v_group",
+ "EulerSR::W_group"};
GenericFD_AssertGroupStorage(cctkGH, "eulersr_cons_calc_primitives", 9, groups);
- GenericFD_LoopOverEverything(cctkGH, &eulersr_cons_calc_primitives_Body);
+ GenericFD_LoopOverEverything(cctkGH, eulersr_cons_calc_primitives_Body);
if (verbose > 1)
{
diff --git a/Examples/EulerSR/src/eulersr_cons_calc_reconstruct_1.cc b/Examples/EulerSR/src/eulersr_cons_calc_reconstruct_1.cc
index 347fb53..98c55bb 100644
--- a/Examples/EulerSR/src/eulersr_cons_calc_reconstruct_1.cc
+++ b/Examples/EulerSR/src/eulersr_cons_calc_reconstruct_1.cc
@@ -17,10 +17,10 @@
/* Define macros used in calculations */
#define INITVALUE (42)
-#define QAD(x) (SQR(SQR(x)))
-#define INV(x) ((1.0) / (x))
+#define INV(x) ((CCTK_REAL)1.0 / (x))
#define SQR(x) ((x) * (x))
-#define CUB(x) ((x) * (x) * (x))
+#define CUB(x) ((x) * SQR(x))
+#define QAD(x) (SQR(SQR(x)))
extern "C" void eulersr_cons_calc_reconstruct_1_SelectBCs(CCTK_ARGUMENTS)
{
@@ -52,8 +52,6 @@ static void eulersr_cons_calc_reconstruct_1_Body(cGH const * restrict const cctk
DECLARE_CCTK_PARAMETERS;
- /* Declare finite differencing variables */
-
/* Include user-supplied include files */
/* Initialise finite differencing variables */
@@ -96,9 +94,9 @@ static void eulersr_cons_calc_reconstruct_1_Body(cGH const * restrict const cctk
/* Loop over the grid points */
#pragma omp parallel
- CCTK_LOOP3 (eulersr_cons_calc_reconstruct_1,
+ CCTK_LOOP3(eulersr_cons_calc_reconstruct_1,
i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2],
- cctk_lsh[0],cctk_lsh[1],cctk_lsh[2])
+ cctk_ash[0],cctk_ash[1],cctk_ash[2])
{
ptrdiff_t const index = di*i + dj*j + dk*k;
@@ -188,7 +186,7 @@ static void eulersr_cons_calc_reconstruct_1_Body(cGH const * restrict const cctk
v3Left[index] = v3LeftL;
v3Right[index] = v3RightL;
}
- CCTK_ENDLOOP3 (eulersr_cons_calc_reconstruct_1);
+ CCTK_ENDLOOP3(eulersr_cons_calc_reconstruct_1);
}
extern "C" void eulersr_cons_calc_reconstruct_1(CCTK_ARGUMENTS)
@@ -207,12 +205,20 @@ extern "C" void eulersr_cons_calc_reconstruct_1(CCTK_ARGUMENTS)
return;
}
- const char *groups[] = {"EulerSR::epsi_group","EulerSR::epsi_lr_group","EulerSR::rho_group","EulerSR::rho_lr_group","EulerSR::v1_lr_group","EulerSR::v2_lr_group","EulerSR::v3_lr_group","EulerSR::v_group"};
+ const char *const groups[] = {
+ "EulerSR::epsi_group",
+ "EulerSR::epsi_lr_group",
+ "EulerSR::rho_group",
+ "EulerSR::rho_lr_group",
+ "EulerSR::v1_lr_group",
+ "EulerSR::v2_lr_group",
+ "EulerSR::v3_lr_group",
+ "EulerSR::v_group"};
GenericFD_AssertGroupStorage(cctkGH, "eulersr_cons_calc_reconstruct_1", 8, groups);
GenericFD_EnsureStencilFits(cctkGH, "eulersr_cons_calc_reconstruct_1", 1, 1, 1);
- GenericFD_LoopOverInterior(cctkGH, &eulersr_cons_calc_reconstruct_1_Body);
+ GenericFD_LoopOverInterior(cctkGH, eulersr_cons_calc_reconstruct_1_Body);
if (verbose > 1)
{
diff --git a/Examples/EulerSR/src/eulersr_cons_calc_reconstruct_2.cc b/Examples/EulerSR/src/eulersr_cons_calc_reconstruct_2.cc
index 420741b..a0b8409 100644
--- a/Examples/EulerSR/src/eulersr_cons_calc_reconstruct_2.cc
+++ b/Examples/EulerSR/src/eulersr_cons_calc_reconstruct_2.cc
@@ -17,10 +17,10 @@
/* Define macros used in calculations */
#define INITVALUE (42)
-#define QAD(x) (SQR(SQR(x)))
-#define INV(x) ((1.0) / (x))
+#define INV(x) ((CCTK_REAL)1.0 / (x))
#define SQR(x) ((x) * (x))
-#define CUB(x) ((x) * (x) * (x))
+#define CUB(x) ((x) * SQR(x))
+#define QAD(x) (SQR(SQR(x)))
extern "C" void eulersr_cons_calc_reconstruct_2_SelectBCs(CCTK_ARGUMENTS)
{
@@ -52,8 +52,6 @@ static void eulersr_cons_calc_reconstruct_2_Body(cGH const * restrict const cctk
DECLARE_CCTK_PARAMETERS;
- /* Declare finite differencing variables */
-
/* Include user-supplied include files */
/* Initialise finite differencing variables */
@@ -96,9 +94,9 @@ static void eulersr_cons_calc_reconstruct_2_Body(cGH const * restrict const cctk
/* Loop over the grid points */
#pragma omp parallel
- CCTK_LOOP3 (eulersr_cons_calc_reconstruct_2,
+ CCTK_LOOP3(eulersr_cons_calc_reconstruct_2,
i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2],
- cctk_lsh[0],cctk_lsh[1],cctk_lsh[2])
+ cctk_ash[0],cctk_ash[1],cctk_ash[2])
{
ptrdiff_t const index = di*i + dj*j + dk*k;
@@ -188,7 +186,7 @@ static void eulersr_cons_calc_reconstruct_2_Body(cGH const * restrict const cctk
v3Left[index] = v3LeftL;
v3Right[index] = v3RightL;
}
- CCTK_ENDLOOP3 (eulersr_cons_calc_reconstruct_2);
+ CCTK_ENDLOOP3(eulersr_cons_calc_reconstruct_2);
}
extern "C" void eulersr_cons_calc_reconstruct_2(CCTK_ARGUMENTS)
@@ -207,12 +205,20 @@ extern "C" void eulersr_cons_calc_reconstruct_2(CCTK_ARGUMENTS)
return;
}
- const char *groups[] = {"EulerSR::epsi_group","EulerSR::epsi_lr_group","EulerSR::rho_group","EulerSR::rho_lr_group","EulerSR::v1_lr_group","EulerSR::v2_lr_group","EulerSR::v3_lr_group","EulerSR::v_group"};
+ const char *const groups[] = {
+ "EulerSR::epsi_group",
+ "EulerSR::epsi_lr_group",
+ "EulerSR::rho_group",
+ "EulerSR::rho_lr_group",
+ "EulerSR::v1_lr_group",
+ "EulerSR::v2_lr_group",
+ "EulerSR::v3_lr_group",
+ "EulerSR::v_group"};
GenericFD_AssertGroupStorage(cctkGH, "eulersr_cons_calc_reconstruct_2", 8, groups);
GenericFD_EnsureStencilFits(cctkGH, "eulersr_cons_calc_reconstruct_2", 1, 1, 1);
- GenericFD_LoopOverInterior(cctkGH, &eulersr_cons_calc_reconstruct_2_Body);
+ GenericFD_LoopOverInterior(cctkGH, eulersr_cons_calc_reconstruct_2_Body);
if (verbose > 1)
{
diff --git a/Examples/EulerSR/src/eulersr_cons_calc_reconstruct_3.cc b/Examples/EulerSR/src/eulersr_cons_calc_reconstruct_3.cc
index d0d6b42..6536df9 100644
--- a/Examples/EulerSR/src/eulersr_cons_calc_reconstruct_3.cc
+++ b/Examples/EulerSR/src/eulersr_cons_calc_reconstruct_3.cc
@@ -17,10 +17,10 @@
/* Define macros used in calculations */
#define INITVALUE (42)
-#define QAD(x) (SQR(SQR(x)))
-#define INV(x) ((1.0) / (x))
+#define INV(x) ((CCTK_REAL)1.0 / (x))
#define SQR(x) ((x) * (x))
-#define CUB(x) ((x) * (x) * (x))
+#define CUB(x) ((x) * SQR(x))
+#define QAD(x) (SQR(SQR(x)))
extern "C" void eulersr_cons_calc_reconstruct_3_SelectBCs(CCTK_ARGUMENTS)
{
@@ -52,8 +52,6 @@ static void eulersr_cons_calc_reconstruct_3_Body(cGH const * restrict const cctk
DECLARE_CCTK_PARAMETERS;
- /* Declare finite differencing variables */
-
/* Include user-supplied include files */
/* Initialise finite differencing variables */
@@ -96,9 +94,9 @@ static void eulersr_cons_calc_reconstruct_3_Body(cGH const * restrict const cctk
/* Loop over the grid points */
#pragma omp parallel
- CCTK_LOOP3 (eulersr_cons_calc_reconstruct_3,
+ CCTK_LOOP3(eulersr_cons_calc_reconstruct_3,
i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2],
- cctk_lsh[0],cctk_lsh[1],cctk_lsh[2])
+ cctk_ash[0],cctk_ash[1],cctk_ash[2])
{
ptrdiff_t const index = di*i + dj*j + dk*k;
@@ -188,7 +186,7 @@ static void eulersr_cons_calc_reconstruct_3_Body(cGH const * restrict const cctk
v3Left[index] = v3LeftL;
v3Right[index] = v3RightL;
}
- CCTK_ENDLOOP3 (eulersr_cons_calc_reconstruct_3);
+ CCTK_ENDLOOP3(eulersr_cons_calc_reconstruct_3);
}
extern "C" void eulersr_cons_calc_reconstruct_3(CCTK_ARGUMENTS)
@@ -207,12 +205,20 @@ extern "C" void eulersr_cons_calc_reconstruct_3(CCTK_ARGUMENTS)
return;
}
- const char *groups[] = {"EulerSR::epsi_group","EulerSR::epsi_lr_group","EulerSR::rho_group","EulerSR::rho_lr_group","EulerSR::v1_lr_group","EulerSR::v2_lr_group","EulerSR::v3_lr_group","EulerSR::v_group"};
+ const char *const groups[] = {
+ "EulerSR::epsi_group",
+ "EulerSR::epsi_lr_group",
+ "EulerSR::rho_group",
+ "EulerSR::rho_lr_group",
+ "EulerSR::v1_lr_group",
+ "EulerSR::v2_lr_group",
+ "EulerSR::v3_lr_group",
+ "EulerSR::v_group"};
GenericFD_AssertGroupStorage(cctkGH, "eulersr_cons_calc_reconstruct_3", 8, groups);
GenericFD_EnsureStencilFits(cctkGH, "eulersr_cons_calc_reconstruct_3", 1, 1, 1);
- GenericFD_LoopOverInterior(cctkGH, &eulersr_cons_calc_reconstruct_3_Body);
+ GenericFD_LoopOverInterior(cctkGH, eulersr_cons_calc_reconstruct_3_Body);
if (verbose > 1)
{
diff --git a/Examples/EulerSR/src/eulersr_cons_calc_rhs_1.cc b/Examples/EulerSR/src/eulersr_cons_calc_rhs_1.cc
index f5ca0d1..cfcf0cb 100644
--- a/Examples/EulerSR/src/eulersr_cons_calc_rhs_1.cc
+++ b/Examples/EulerSR/src/eulersr_cons_calc_rhs_1.cc
@@ -17,10 +17,10 @@
/* Define macros used in calculations */
#define INITVALUE (42)
-#define QAD(x) (SQR(SQR(x)))
-#define INV(x) ((1.0) / (x))
+#define INV(x) ((CCTK_REAL)1.0 / (x))
#define SQR(x) ((x) * (x))
-#define CUB(x) ((x) * (x) * (x))
+#define CUB(x) ((x) * SQR(x))
+#define QAD(x) (SQR(SQR(x)))
extern "C" void eulersr_cons_calc_rhs_1_SelectBCs(CCTK_ARGUMENTS)
{
@@ -46,8 +46,6 @@ static void eulersr_cons_calc_rhs_1_Body(cGH const * restrict const cctkGH, int
DECLARE_CCTK_PARAMETERS;
- /* Declare finite differencing variables */
-
/* Include user-supplied include files */
/* Initialise finite differencing variables */
@@ -90,9 +88,9 @@ static void eulersr_cons_calc_rhs_1_Body(cGH const * restrict const cctkGH, int
/* Loop over the grid points */
#pragma omp parallel
- CCTK_LOOP3 (eulersr_cons_calc_rhs_1,
+ CCTK_LOOP3(eulersr_cons_calc_rhs_1,
i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2],
- cctk_lsh[0],cctk_lsh[1],cctk_lsh[2])
+ cctk_ash[0],cctk_ash[1],cctk_ash[2])
{
ptrdiff_t const index = di*i + dj*j + dk*k;
@@ -137,7 +135,7 @@ static void eulersr_cons_calc_rhs_1_Body(cGH const * restrict const cctkGH, int
S3rhs[index] = S3rhsL;
taurhs[index] = taurhsL;
}
- CCTK_ENDLOOP3 (eulersr_cons_calc_rhs_1);
+ CCTK_ENDLOOP3(eulersr_cons_calc_rhs_1);
}
extern "C" void eulersr_cons_calc_rhs_1(CCTK_ARGUMENTS)
@@ -156,12 +154,20 @@ extern "C" void eulersr_cons_calc_rhs_1(CCTK_ARGUMENTS)
return;
}
- const char *groups[] = {"EulerSR::Den_flux_group","EulerSR::Den_grouprhs","EulerSR::S1_flux_group","EulerSR::S2_flux_group","EulerSR::S3_flux_group","EulerSR::S_grouprhs","EulerSR::tau_flux_group","EulerSR::tau_grouprhs"};
+ const char *const groups[] = {
+ "EulerSR::Den_flux_group",
+ "EulerSR::Den_grouprhs",
+ "EulerSR::S1_flux_group",
+ "EulerSR::S2_flux_group",
+ "EulerSR::S3_flux_group",
+ "EulerSR::S_grouprhs",
+ "EulerSR::tau_flux_group",
+ "EulerSR::tau_grouprhs"};
GenericFD_AssertGroupStorage(cctkGH, "eulersr_cons_calc_rhs_1", 8, groups);
GenericFD_EnsureStencilFits(cctkGH, "eulersr_cons_calc_rhs_1", 1, 1, 1);
- GenericFD_LoopOverInterior(cctkGH, &eulersr_cons_calc_rhs_1_Body);
+ GenericFD_LoopOverInterior(cctkGH, eulersr_cons_calc_rhs_1_Body);
if (verbose > 1)
{
diff --git a/Examples/EulerSR/src/eulersr_cons_calc_rhs_2.cc b/Examples/EulerSR/src/eulersr_cons_calc_rhs_2.cc
index 33d6d0e..e5ca803 100644
--- a/Examples/EulerSR/src/eulersr_cons_calc_rhs_2.cc
+++ b/Examples/EulerSR/src/eulersr_cons_calc_rhs_2.cc
@@ -17,10 +17,10 @@
/* Define macros used in calculations */
#define INITVALUE (42)
-#define QAD(x) (SQR(SQR(x)))
-#define INV(x) ((1.0) / (x))
+#define INV(x) ((CCTK_REAL)1.0 / (x))
#define SQR(x) ((x) * (x))
-#define CUB(x) ((x) * (x) * (x))
+#define CUB(x) ((x) * SQR(x))
+#define QAD(x) (SQR(SQR(x)))
extern "C" void eulersr_cons_calc_rhs_2_SelectBCs(CCTK_ARGUMENTS)
{
@@ -46,8 +46,6 @@ static void eulersr_cons_calc_rhs_2_Body(cGH const * restrict const cctkGH, int
DECLARE_CCTK_PARAMETERS;
- /* Declare finite differencing variables */
-
/* Include user-supplied include files */
/* Initialise finite differencing variables */
@@ -90,9 +88,9 @@ static void eulersr_cons_calc_rhs_2_Body(cGH const * restrict const cctkGH, int
/* Loop over the grid points */
#pragma omp parallel
- CCTK_LOOP3 (eulersr_cons_calc_rhs_2,
+ CCTK_LOOP3(eulersr_cons_calc_rhs_2,
i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2],
- cctk_lsh[0],cctk_lsh[1],cctk_lsh[2])
+ cctk_ash[0],cctk_ash[1],cctk_ash[2])
{
ptrdiff_t const index = di*i + dj*j + dk*k;
@@ -137,7 +135,7 @@ static void eulersr_cons_calc_rhs_2_Body(cGH const * restrict const cctkGH, int
S3rhs[index] = S3rhsL;
taurhs[index] = taurhsL;
}
- CCTK_ENDLOOP3 (eulersr_cons_calc_rhs_2);
+ CCTK_ENDLOOP3(eulersr_cons_calc_rhs_2);
}
extern "C" void eulersr_cons_calc_rhs_2(CCTK_ARGUMENTS)
@@ -156,12 +154,20 @@ extern "C" void eulersr_cons_calc_rhs_2(CCTK_ARGUMENTS)
return;
}
- const char *groups[] = {"EulerSR::Den_flux_group","EulerSR::Den_grouprhs","EulerSR::S1_flux_group","EulerSR::S2_flux_group","EulerSR::S3_flux_group","EulerSR::S_grouprhs","EulerSR::tau_flux_group","EulerSR::tau_grouprhs"};
+ const char *const groups[] = {
+ "EulerSR::Den_flux_group",
+ "EulerSR::Den_grouprhs",
+ "EulerSR::S1_flux_group",
+ "EulerSR::S2_flux_group",
+ "EulerSR::S3_flux_group",
+ "EulerSR::S_grouprhs",
+ "EulerSR::tau_flux_group",
+ "EulerSR::tau_grouprhs"};
GenericFD_AssertGroupStorage(cctkGH, "eulersr_cons_calc_rhs_2", 8, groups);
GenericFD_EnsureStencilFits(cctkGH, "eulersr_cons_calc_rhs_2", 1, 1, 1);
- GenericFD_LoopOverInterior(cctkGH, &eulersr_cons_calc_rhs_2_Body);
+ GenericFD_LoopOverInterior(cctkGH, eulersr_cons_calc_rhs_2_Body);
if (verbose > 1)
{
diff --git a/Examples/EulerSR/src/eulersr_cons_calc_rhs_3.cc b/Examples/EulerSR/src/eulersr_cons_calc_rhs_3.cc
index 6a288fe..b494cdc 100644
--- a/Examples/EulerSR/src/eulersr_cons_calc_rhs_3.cc
+++ b/Examples/EulerSR/src/eulersr_cons_calc_rhs_3.cc
@@ -17,10 +17,10 @@
/* Define macros used in calculations */
#define INITVALUE (42)
-#define QAD(x) (SQR(SQR(x)))
-#define INV(x) ((1.0) / (x))
+#define INV(x) ((CCTK_REAL)1.0 / (x))
#define SQR(x) ((x) * (x))
-#define CUB(x) ((x) * (x) * (x))
+#define CUB(x) ((x) * SQR(x))
+#define QAD(x) (SQR(SQR(x)))
extern "C" void eulersr_cons_calc_rhs_3_SelectBCs(CCTK_ARGUMENTS)
{
@@ -46,8 +46,6 @@ static void eulersr_cons_calc_rhs_3_Body(cGH const * restrict const cctkGH, int
DECLARE_CCTK_PARAMETERS;
- /* Declare finite differencing variables */
-
/* Include user-supplied include files */
/* Initialise finite differencing variables */
@@ -90,9 +88,9 @@ static void eulersr_cons_calc_rhs_3_Body(cGH const * restrict const cctkGH, int
/* Loop over the grid points */
#pragma omp parallel
- CCTK_LOOP3 (eulersr_cons_calc_rhs_3,
+ CCTK_LOOP3(eulersr_cons_calc_rhs_3,
i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2],
- cctk_lsh[0],cctk_lsh[1],cctk_lsh[2])
+ cctk_ash[0],cctk_ash[1],cctk_ash[2])
{
ptrdiff_t const index = di*i + dj*j + dk*k;
@@ -137,7 +135,7 @@ static void eulersr_cons_calc_rhs_3_Body(cGH const * restrict const cctkGH, int
S3rhs[index] = S3rhsL;
taurhs[index] = taurhsL;
}
- CCTK_ENDLOOP3 (eulersr_cons_calc_rhs_3);
+ CCTK_ENDLOOP3(eulersr_cons_calc_rhs_3);
}
extern "C" void eulersr_cons_calc_rhs_3(CCTK_ARGUMENTS)
@@ -156,12 +154,20 @@ extern "C" void eulersr_cons_calc_rhs_3(CCTK_ARGUMENTS)
return;
}
- const char *groups[] = {"EulerSR::Den_flux_group","EulerSR::Den_grouprhs","EulerSR::S1_flux_group","EulerSR::S2_flux_group","EulerSR::S3_flux_group","EulerSR::S_grouprhs","EulerSR::tau_flux_group","EulerSR::tau_grouprhs"};
+ const char *const groups[] = {
+ "EulerSR::Den_flux_group",
+ "EulerSR::Den_grouprhs",
+ "EulerSR::S1_flux_group",
+ "EulerSR::S2_flux_group",
+ "EulerSR::S3_flux_group",
+ "EulerSR::S_grouprhs",
+ "EulerSR::tau_flux_group",
+ "EulerSR::tau_grouprhs"};
GenericFD_AssertGroupStorage(cctkGH, "eulersr_cons_calc_rhs_3", 8, groups);
GenericFD_EnsureStencilFits(cctkGH, "eulersr_cons_calc_rhs_3", 1, 1, 1);
- GenericFD_LoopOverInterior(cctkGH, &eulersr_cons_calc_rhs_3_Body);
+ GenericFD_LoopOverInterior(cctkGH, eulersr_cons_calc_rhs_3_Body);
if (verbose > 1)
{
diff --git a/Examples/EulerSR/src/eulersr_cons_calc_zero_rhs.cc b/Examples/EulerSR/src/eulersr_cons_calc_zero_rhs.cc
index 6a93d61..382e07c 100644
--- a/Examples/EulerSR/src/eulersr_cons_calc_zero_rhs.cc
+++ b/Examples/EulerSR/src/eulersr_cons_calc_zero_rhs.cc
@@ -17,10 +17,10 @@
/* Define macros used in calculations */
#define INITVALUE (42)
-#define QAD(x) (SQR(SQR(x)))
-#define INV(x) ((1.0) / (x))
+#define INV(x) ((CCTK_REAL)1.0 / (x))
#define SQR(x) ((x) * (x))
-#define CUB(x) ((x) * (x) * (x))
+#define CUB(x) ((x) * SQR(x))
+#define QAD(x) (SQR(SQR(x)))
static void eulersr_cons_calc_zero_rhs_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const imin[3], int const imax[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
@@ -28,8 +28,6 @@ static void eulersr_cons_calc_zero_rhs_Body(cGH const * restrict const cctkGH, i
DECLARE_CCTK_PARAMETERS;
- /* Declare finite differencing variables */
-
/* Include user-supplied include files */
/* Initialise finite differencing variables */
@@ -72,9 +70,9 @@ static void eulersr_cons_calc_zero_rhs_Body(cGH const * restrict const cctkGH, i
/* Loop over the grid points */
#pragma omp parallel
- CCTK_LOOP3 (eulersr_cons_calc_zero_rhs,
+ CCTK_LOOP3(eulersr_cons_calc_zero_rhs,
i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2],
- cctk_lsh[0],cctk_lsh[1],cctk_lsh[2])
+ cctk_ash[0],cctk_ash[1],cctk_ash[2])
{
ptrdiff_t const index = di*i + dj*j + dk*k;
@@ -124,7 +122,7 @@ static void eulersr_cons_calc_zero_rhs_Body(cGH const * restrict const cctkGH, i
S3rhs[index] = S3rhsL;
taurhs[index] = taurhsL;
}
- CCTK_ENDLOOP3 (eulersr_cons_calc_zero_rhs);
+ CCTK_ENDLOOP3(eulersr_cons_calc_zero_rhs);
}
extern "C" void eulersr_cons_calc_zero_rhs(CCTK_ARGUMENTS)
@@ -143,11 +141,14 @@ extern "C" void eulersr_cons_calc_zero_rhs(CCTK_ARGUMENTS)
return;
}
- const char *groups[] = {"EulerSR::Den_grouprhs","EulerSR::S_grouprhs","EulerSR::tau_grouprhs"};
+ const char *const groups[] = {
+ "EulerSR::Den_grouprhs",
+ "EulerSR::S_grouprhs",
+ "EulerSR::tau_grouprhs"};
GenericFD_AssertGroupStorage(cctkGH, "eulersr_cons_calc_zero_rhs", 3, groups);
- GenericFD_LoopOverEverything(cctkGH, &eulersr_cons_calc_zero_rhs_Body);
+ GenericFD_LoopOverEverything(cctkGH, eulersr_cons_calc_zero_rhs_Body);
if (verbose > 1)
{
diff --git a/Examples/EulerSR/src/eulersr_initial_shock.cc b/Examples/EulerSR/src/eulersr_initial_shock.cc
index 73eb475..80a8705 100644
--- a/Examples/EulerSR/src/eulersr_initial_shock.cc
+++ b/Examples/EulerSR/src/eulersr_initial_shock.cc
@@ -17,10 +17,10 @@
/* Define macros used in calculations */
#define INITVALUE (42)
-#define QAD(x) (SQR(SQR(x)))
-#define INV(x) ((1.0) / (x))
+#define INV(x) ((CCTK_REAL)1.0 / (x))
#define SQR(x) ((x) * (x))
-#define CUB(x) ((x) * (x) * (x))
+#define CUB(x) ((x) * SQR(x))
+#define QAD(x) (SQR(SQR(x)))
static void eulersr_initial_shock_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const imin[3], int const imax[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
@@ -28,8 +28,6 @@ static void eulersr_initial_shock_Body(cGH const * restrict const cctkGH, int co
DECLARE_CCTK_PARAMETERS;
- /* Declare finite differencing variables */
-
/* Include user-supplied include files */
/* Initialise finite differencing variables */
@@ -72,9 +70,9 @@ static void eulersr_initial_shock_Body(cGH const * restrict const cctkGH, int co
/* Loop over the grid points */
#pragma omp parallel
- CCTK_LOOP3 (eulersr_initial_shock,
+ CCTK_LOOP3(eulersr_initial_shock,
i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2],
- cctk_lsh[0],cctk_lsh[1],cctk_lsh[2])
+ cctk_ash[0],cctk_ash[1],cctk_ash[2])
{
ptrdiff_t const index = di*i + dj*j + dk*k;
@@ -112,7 +110,7 @@ static void eulersr_initial_shock_Body(cGH const * restrict const cctkGH, int co
v2[index] = v2L;
v3[index] = v3L;
}
- CCTK_ENDLOOP3 (eulersr_initial_shock);
+ CCTK_ENDLOOP3(eulersr_initial_shock);
}
extern "C" void eulersr_initial_shock(CCTK_ARGUMENTS)
@@ -131,11 +129,15 @@ extern "C" void eulersr_initial_shock(CCTK_ARGUMENTS)
return;
}
- const char *groups[] = {"EulerSR::epsi_group","grid::coordinates","EulerSR::rho_group","EulerSR::v_group"};
+ const char *const groups[] = {
+ "EulerSR::epsi_group",
+ "grid::coordinates",
+ "EulerSR::rho_group",
+ "EulerSR::v_group"};
GenericFD_AssertGroupStorage(cctkGH, "eulersr_initial_shock", 4, groups);
- GenericFD_LoopOverEverything(cctkGH, &eulersr_initial_shock_Body);
+ GenericFD_LoopOverEverything(cctkGH, eulersr_initial_shock_Body);
if (verbose > 1)
{
diff --git a/Examples/EulerSR/src/make.code.defn b/Examples/EulerSR/src/make.code.defn
index ec747ad..9641a96 100644
--- a/Examples/EulerSR/src/make.code.defn
+++ b/Examples/EulerSR/src/make.code.defn
@@ -1,3 +1,3 @@
# File produced by Kranc
-SRCS = Startup.cc RegisterMoL.cc RegisterSymmetries.cc eulersr_initial_shock.cc eulersr_cons_calc_zero_rhs.cc eulersr_cons_calc_conserved.cc eulersr_cons_calc_primitives.cc eulersr_cons_calc_reconstruct_1.cc eulersr_cons_calc_intercell_conserved_1.cc eulersr_cons_calc_flux_1.cc eulersr_cons_calc_rhs_1.cc eulersr_cons_calc_reconstruct_2.cc eulersr_cons_calc_intercell_conserved_2.cc eulersr_cons_calc_flux_2.cc eulersr_cons_calc_rhs_2.cc eulersr_cons_calc_reconstruct_3.cc eulersr_cons_calc_intercell_conserved_3.cc eulersr_cons_calc_flux_3.cc eulersr_cons_calc_rhs_3.cc Boundaries.cc
+SRCS = Startup.cc RegisterSymmetries.cc RegisterMoL.cc eulersr_initial_shock.cc eulersr_cons_calc_zero_rhs.cc eulersr_cons_calc_conserved.cc eulersr_cons_calc_primitives.cc eulersr_cons_calc_reconstruct_1.cc eulersr_cons_calc_intercell_conserved_1.cc eulersr_cons_calc_flux_1.cc eulersr_cons_calc_rhs_1.cc eulersr_cons_calc_reconstruct_2.cc eulersr_cons_calc_intercell_conserved_2.cc eulersr_cons_calc_flux_2.cc eulersr_cons_calc_rhs_2.cc eulersr_cons_calc_reconstruct_3.cc eulersr_cons_calc_intercell_conserved_3.cc eulersr_cons_calc_flux_3.cc eulersr_cons_calc_rhs_3.cc Boundaries.cc
diff --git a/Examples/Laplace/schedule.ccl b/Examples/Laplace/schedule.ccl
index 782b1e6..05344ed 100644
--- a/Examples/Laplace/schedule.ccl
+++ b/Examples/Laplace/schedule.ccl
@@ -33,12 +33,6 @@ schedule Laplace_Startup at STARTUP
OPTIONS: meta
} "create banner"
-schedule Laplace_RegisterVars in MoL_Register
-{
- LANG: C
- OPTIONS: meta
-} "Register Variables for MoL"
-
schedule Laplace_RegisterSymmetries in SymmetryRegister
{
LANG: C
@@ -49,34 +43,45 @@ schedule Laplace_initial AT INITIAL
{
LANG: C
SYNC: phi_group
+ READS: grid::x
+ READS: grid::y
+ WRITES: Laplace::phi
} "Laplace_initial"
schedule Laplace_initial_boundary AT INITIAL after Laplace_initial
{
LANG: C
SYNC: phi_group
+ READS: grid::y
+ WRITES: Laplace::phi
} "Laplace_initial_boundary"
schedule Laplace_relax in MoL_CalcRHS
{
LANG: C
+ READS: Laplace::phi
+ WRITES: Laplace::phirhs
} "Laplace_relax"
schedule Laplace_relax AT ANALYSIS
{
LANG: C
SYNC: phi_grouprhs
+ READS: Laplace::phi
+ WRITES: Laplace::phirhs
} "Laplace_relax"
schedule Laplace_boundary in MoL_RHSBoundaries
{
LANG: C
+ WRITES: Laplace::phirhs
} "Laplace_boundary"
schedule Laplace_boundary AT ANALYSIS
{
LANG: C
SYNC: phi_grouprhs
+ WRITES: Laplace::phirhs
} "Laplace_boundary"
schedule Laplace_SelectBoundConds in MoL_PostStep
@@ -92,6 +97,12 @@ schedule Laplace_CheckBoundaries at BASEGRID
OPTIONS: meta
} "check boundaries treatment"
+schedule Laplace_RegisterVars in MoL_Register
+{
+ LANG: C
+ OPTIONS: meta
+} "Register Variables for MoL"
+
schedule group ApplyBCs as Laplace_ApplyBCs in MoL_PostStep after Laplace_SelectBoundConds
{
# no language specified
diff --git a/Examples/Laplace/src/Laplace_boundary.cc b/Examples/Laplace/src/Laplace_boundary.cc
index 1c8ee2d..ffec3ce 100644
--- a/Examples/Laplace/src/Laplace_boundary.cc
+++ b/Examples/Laplace/src/Laplace_boundary.cc
@@ -17,10 +17,10 @@
/* Define macros used in calculations */
#define INITVALUE (42)
-#define QAD(x) (SQR(SQR(x)))
-#define INV(x) ((1.0) / (x))
+#define INV(x) ((CCTK_REAL)1.0 / (x))
#define SQR(x) ((x) * (x))
-#define CUB(x) ((x) * (x) * (x))
+#define CUB(x) ((x) * SQR(x))
+#define QAD(x) (SQR(SQR(x)))
extern "C" void Laplace_boundary_SelectBCs(CCTK_ARGUMENTS)
{
@@ -40,8 +40,6 @@ static void Laplace_boundary_Body(cGH const * restrict const cctkGH, int const d
DECLARE_CCTK_PARAMETERS;
- /* Declare finite differencing variables */
-
/* Include user-supplied include files */
/* Initialise finite differencing variables */
@@ -72,10 +70,10 @@ static void Laplace_boundary_Body(cGH const * restrict const cctkGH, int const d
CCTK_REAL const p1o1 = 1;
CCTK_REAL const p1o12dx = 0.0833333333333333333333333333333*INV(dx);
CCTK_REAL const p1o12dy = 0.0833333333333333333333333333333*INV(dy);
- CCTK_REAL const p1o144dxdy = 0.00694444444444444444444444444444*INV(dx)*INV(dy);
+ CCTK_REAL const p1o144dxdy = 0.00694444444444444444444444444444*INV(dx*dy);
CCTK_REAL const p1o2dx = 0.5*INV(dx);
CCTK_REAL const p1o2dy = 0.5*INV(dy);
- CCTK_REAL const p1o4dxdy = 0.25*INV(dx)*INV(dy);
+ CCTK_REAL const p1o4dxdy = 0.25*INV(dx*dy);
CCTK_REAL const p1odx2 = INV(SQR(dx));
CCTK_REAL const p1ody2 = INV(SQR(dy));
CCTK_REAL const pm1o12dx2 = -0.0833333333333333333333333333333*INV(SQR(dx));
@@ -91,9 +89,9 @@ static void Laplace_boundary_Body(cGH const * restrict const cctkGH, int const d
/* Loop over the grid points */
#pragma omp parallel
- CCTK_LOOP3 (Laplace_boundary,
+ CCTK_LOOP3(Laplace_boundary,
i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2],
- cctk_lsh[0],cctk_lsh[1],cctk_lsh[2])
+ cctk_ash[0],cctk_ash[1],cctk_ash[2])
{
ptrdiff_t const index = di*i + dj*j + dk*k;
@@ -120,7 +118,7 @@ static void Laplace_boundary_Body(cGH const * restrict const cctkGH, int const d
/* Copy local copies back to grid functions */
phirhs[index] = phirhsL;
}
- CCTK_ENDLOOP3 (Laplace_boundary);
+ CCTK_ENDLOOP3(Laplace_boundary);
}
extern "C" void Laplace_boundary(CCTK_ARGUMENTS)
@@ -139,7 +137,8 @@ extern "C" void Laplace_boundary(CCTK_ARGUMENTS)
return;
}
- const char *groups[] = {"Laplace::phi_grouprhs"};
+ const char *const groups[] = {
+ "Laplace::phi_grouprhs"};
GenericFD_AssertGroupStorage(cctkGH, "Laplace_boundary", 1, groups);
switch(fdOrder)
@@ -151,7 +150,7 @@ extern "C" void Laplace_boundary(CCTK_ARGUMENTS)
break;
}
- GenericFD_LoopOverBoundary(cctkGH, &Laplace_boundary_Body);
+ GenericFD_LoopOverBoundary(cctkGH, Laplace_boundary_Body);
if (verbose > 1)
{
diff --git a/Examples/Laplace/src/Laplace_initial.cc b/Examples/Laplace/src/Laplace_initial.cc
index f334d59..0e31009 100644
--- a/Examples/Laplace/src/Laplace_initial.cc
+++ b/Examples/Laplace/src/Laplace_initial.cc
@@ -17,10 +17,10 @@
/* Define macros used in calculations */
#define INITVALUE (42)
-#define QAD(x) (SQR(SQR(x)))
-#define INV(x) ((1.0) / (x))
+#define INV(x) ((CCTK_REAL)1.0 / (x))
#define SQR(x) ((x) * (x))
-#define CUB(x) ((x) * (x) * (x))
+#define CUB(x) ((x) * SQR(x))
+#define QAD(x) (SQR(SQR(x)))
extern "C" void Laplace_initial_SelectBCs(CCTK_ARGUMENTS)
{
@@ -40,8 +40,6 @@ static void Laplace_initial_Body(cGH const * restrict const cctkGH, int const di
DECLARE_CCTK_PARAMETERS;
- /* Declare finite differencing variables */
-
/* Include user-supplied include files */
/* Initialise finite differencing variables */
@@ -72,10 +70,10 @@ static void Laplace_initial_Body(cGH const * restrict const cctkGH, int const di
CCTK_REAL const p1o1 = 1;
CCTK_REAL const p1o12dx = 0.0833333333333333333333333333333*INV(dx);
CCTK_REAL const p1o12dy = 0.0833333333333333333333333333333*INV(dy);
- CCTK_REAL const p1o144dxdy = 0.00694444444444444444444444444444*INV(dx)*INV(dy);
+ CCTK_REAL const p1o144dxdy = 0.00694444444444444444444444444444*INV(dx*dy);
CCTK_REAL const p1o2dx = 0.5*INV(dx);
CCTK_REAL const p1o2dy = 0.5*INV(dy);
- CCTK_REAL const p1o4dxdy = 0.25*INV(dx)*INV(dy);
+ CCTK_REAL const p1o4dxdy = 0.25*INV(dx*dy);
CCTK_REAL const p1odx2 = INV(SQR(dx));
CCTK_REAL const p1ody2 = INV(SQR(dy));
CCTK_REAL const pm1o12dx2 = -0.0833333333333333333333333333333*INV(SQR(dx));
@@ -91,9 +89,9 @@ static void Laplace_initial_Body(cGH const * restrict const cctkGH, int const di
/* Loop over the grid points */
#pragma omp parallel
- CCTK_LOOP3 (Laplace_initial,
+ CCTK_LOOP3(Laplace_initial,
i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2],
- cctk_lsh[0],cctk_lsh[1],cctk_lsh[2])
+ cctk_ash[0],cctk_ash[1],cctk_ash[2])
{
ptrdiff_t const index = di*i + dj*j + dk*k;
@@ -118,12 +116,12 @@ static void Laplace_initial_Body(cGH const * restrict const cctkGH, int const di
/* Calculate temporaries and grid functions */
CCTK_REAL phiL =
- 4*Csch(Pi*INV(ToReal(Lx))*ToReal(Ly))*INV(Pi)*Sin(xL*Pi*INV(ToReal(Lx)))*Sinh(yL*Pi*INV(ToReal(Lx)))*ToReal(phi0);
+ 4*cosh(yL*Pi*INV(ToReal(Lx)))*INV(Pi)*INV(sinh(Pi*INV(ToReal(Lx))*ToReal(Ly)))*sin(xL*Pi*INV(ToReal(Lx)))*ToReal(phi0);
/* Copy local copies back to grid functions */
phi[index] = phiL;
}
- CCTK_ENDLOOP3 (Laplace_initial);
+ CCTK_ENDLOOP3(Laplace_initial);
}
extern "C" void Laplace_initial(CCTK_ARGUMENTS)
@@ -142,7 +140,9 @@ extern "C" void Laplace_initial(CCTK_ARGUMENTS)
return;
}
- const char *groups[] = {"grid::coordinates","Laplace::phi_group"};
+ const char *const groups[] = {
+ "grid::coordinates",
+ "Laplace::phi_group"};
GenericFD_AssertGroupStorage(cctkGH, "Laplace_initial", 2, groups);
switch(fdOrder)
@@ -154,7 +154,7 @@ extern "C" void Laplace_initial(CCTK_ARGUMENTS)
break;
}
- GenericFD_LoopOverInterior(cctkGH, &Laplace_initial_Body);
+ GenericFD_LoopOverInterior(cctkGH, Laplace_initial_Body);
if (verbose > 1)
{
diff --git a/Examples/Laplace/src/Laplace_initial_boundary.cc b/Examples/Laplace/src/Laplace_initial_boundary.cc
index 2e288c5..b69fe52 100644
--- a/Examples/Laplace/src/Laplace_initial_boundary.cc
+++ b/Examples/Laplace/src/Laplace_initial_boundary.cc
@@ -17,10 +17,10 @@
/* Define macros used in calculations */
#define INITVALUE (42)
-#define QAD(x) (SQR(SQR(x)))
-#define INV(x) ((1.0) / (x))
+#define INV(x) ((CCTK_REAL)1.0 / (x))
#define SQR(x) ((x) * (x))
-#define CUB(x) ((x) * (x) * (x))
+#define CUB(x) ((x) * SQR(x))
+#define QAD(x) (SQR(SQR(x)))
extern "C" void Laplace_initial_boundary_SelectBCs(CCTK_ARGUMENTS)
{
@@ -40,8 +40,6 @@ static void Laplace_initial_boundary_Body(cGH const * restrict const cctkGH, int
DECLARE_CCTK_PARAMETERS;
- /* Declare finite differencing variables */
-
/* Include user-supplied include files */
/* Initialise finite differencing variables */
@@ -72,10 +70,10 @@ static void Laplace_initial_boundary_Body(cGH const * restrict const cctkGH, int
CCTK_REAL const p1o1 = 1;
CCTK_REAL const p1o12dx = 0.0833333333333333333333333333333*INV(dx);
CCTK_REAL const p1o12dy = 0.0833333333333333333333333333333*INV(dy);
- CCTK_REAL const p1o144dxdy = 0.00694444444444444444444444444444*INV(dx)*INV(dy);
+ CCTK_REAL const p1o144dxdy = 0.00694444444444444444444444444444*INV(dx*dy);
CCTK_REAL const p1o2dx = 0.5*INV(dx);
CCTK_REAL const p1o2dy = 0.5*INV(dy);
- CCTK_REAL const p1o4dxdy = 0.25*INV(dx)*INV(dy);
+ CCTK_REAL const p1o4dxdy = 0.25*INV(dx*dy);
CCTK_REAL const p1odx2 = INV(SQR(dx));
CCTK_REAL const p1ody2 = INV(SQR(dy));
CCTK_REAL const pm1o12dx2 = -0.0833333333333333333333333333333*INV(SQR(dx));
@@ -91,9 +89,9 @@ static void Laplace_initial_boundary_Body(cGH const * restrict const cctkGH, int
/* Loop over the grid points */
#pragma omp parallel
- CCTK_LOOP3 (Laplace_initial_boundary,
+ CCTK_LOOP3(Laplace_initial_boundary,
i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2],
- cctk_lsh[0],cctk_lsh[1],cctk_lsh[2])
+ cctk_ash[0],cctk_ash[1],cctk_ash[2])
{
ptrdiff_t const index = di*i + dj*j + dk*k;
@@ -116,13 +114,13 @@ static void Laplace_initial_boundary_Body(cGH const * restrict const cctkGH, int
}
/* Calculate temporaries and grid functions */
- CCTK_REAL phiL = IfThen(10000000000*Abs(-yL + Ly) <
+ CCTK_REAL phiL = IfThen(10000000000*fabs(-yL + Ly) <
1,ToReal(phi0),0);
/* Copy local copies back to grid functions */
phi[index] = phiL;
}
- CCTK_ENDLOOP3 (Laplace_initial_boundary);
+ CCTK_ENDLOOP3(Laplace_initial_boundary);
}
extern "C" void Laplace_initial_boundary(CCTK_ARGUMENTS)
@@ -141,7 +139,9 @@ extern "C" void Laplace_initial_boundary(CCTK_ARGUMENTS)
return;
}
- const char *groups[] = {"grid::coordinates","Laplace::phi_group"};
+ const char *const groups[] = {
+ "grid::coordinates",
+ "Laplace::phi_group"};
GenericFD_AssertGroupStorage(cctkGH, "Laplace_initial_boundary", 2, groups);
switch(fdOrder)
@@ -153,7 +153,7 @@ extern "C" void Laplace_initial_boundary(CCTK_ARGUMENTS)
break;
}
- GenericFD_LoopOverBoundary(cctkGH, &Laplace_initial_boundary_Body);
+ GenericFD_LoopOverBoundary(cctkGH, Laplace_initial_boundary_Body);
if (verbose > 1)
{
diff --git a/Examples/Laplace/src/Laplace_relax.cc b/Examples/Laplace/src/Laplace_relax.cc
index db6d9c3..a5cb16c 100644
--- a/Examples/Laplace/src/Laplace_relax.cc
+++ b/Examples/Laplace/src/Laplace_relax.cc
@@ -17,10 +17,10 @@
/* Define macros used in calculations */
#define INITVALUE (42)
-#define QAD(x) (SQR(SQR(x)))
-#define INV(x) ((1.0) / (x))
+#define INV(x) ((CCTK_REAL)1.0 / (x))
#define SQR(x) ((x) * (x))
-#define CUB(x) ((x) * (x) * (x))
+#define CUB(x) ((x) * SQR(x))
+#define QAD(x) (SQR(SQR(x)))
extern "C" void Laplace_relax_SelectBCs(CCTK_ARGUMENTS)
{
@@ -40,8 +40,6 @@ static void Laplace_relax_Body(cGH const * restrict const cctkGH, int const dir,
DECLARE_CCTK_PARAMETERS;
- /* Declare finite differencing variables */
-
/* Include user-supplied include files */
/* Initialise finite differencing variables */
@@ -72,10 +70,10 @@ static void Laplace_relax_Body(cGH const * restrict const cctkGH, int const dir,
CCTK_REAL const p1o1 = 1;
CCTK_REAL const p1o12dx = 0.0833333333333333333333333333333*INV(dx);
CCTK_REAL const p1o12dy = 0.0833333333333333333333333333333*INV(dy);
- CCTK_REAL const p1o144dxdy = 0.00694444444444444444444444444444*INV(dx)*INV(dy);
+ CCTK_REAL const p1o144dxdy = 0.00694444444444444444444444444444*INV(dx*dy);
CCTK_REAL const p1o2dx = 0.5*INV(dx);
CCTK_REAL const p1o2dy = 0.5*INV(dy);
- CCTK_REAL const p1o4dxdy = 0.25*INV(dx)*INV(dy);
+ CCTK_REAL const p1o4dxdy = 0.25*INV(dx*dy);
CCTK_REAL const p1odx2 = INV(SQR(dx));
CCTK_REAL const p1ody2 = INV(SQR(dy));
CCTK_REAL const pm1o12dx2 = -0.0833333333333333333333333333333*INV(SQR(dx));
@@ -91,9 +89,9 @@ static void Laplace_relax_Body(cGH const * restrict const cctkGH, int const dir,
/* Loop over the grid points */
#pragma omp parallel
- CCTK_LOOP3 (Laplace_relax,
+ CCTK_LOOP3(Laplace_relax,
i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2],
- cctk_lsh[0],cctk_lsh[1],cctk_lsh[2])
+ cctk_ash[0],cctk_ash[1],cctk_ash[2])
{
ptrdiff_t const index = di*i + dj*j + dk*k;
@@ -131,7 +129,7 @@ static void Laplace_relax_Body(cGH const * restrict const cctkGH, int const dir,
/* Copy local copies back to grid functions */
phirhs[index] = phirhsL;
}
- CCTK_ENDLOOP3 (Laplace_relax);
+ CCTK_ENDLOOP3(Laplace_relax);
}
extern "C" void Laplace_relax(CCTK_ARGUMENTS)
@@ -150,7 +148,9 @@ extern "C" void Laplace_relax(CCTK_ARGUMENTS)
return;
}
- const char *groups[] = {"Laplace::phi_group","Laplace::phi_grouprhs"};
+ const char *const groups[] = {
+ "Laplace::phi_group",
+ "Laplace::phi_grouprhs"};
GenericFD_AssertGroupStorage(cctkGH, "Laplace_relax", 2, groups);
switch(fdOrder)
@@ -164,7 +164,7 @@ extern "C" void Laplace_relax(CCTK_ARGUMENTS)
break;
}
- GenericFD_LoopOverInterior(cctkGH, &Laplace_relax_Body);
+ GenericFD_LoopOverInterior(cctkGH, Laplace_relax_Body);
if (verbose > 1)
{
diff --git a/Examples/Laplace/src/make.code.defn b/Examples/Laplace/src/make.code.defn
index 7ced3ce..d65a37f 100644
--- a/Examples/Laplace/src/make.code.defn
+++ b/Examples/Laplace/src/make.code.defn
@@ -1,3 +1,3 @@
# File produced by Kranc
-SRCS = Startup.cc RegisterMoL.cc RegisterSymmetries.cc Laplace_initial.cc Laplace_initial_boundary.cc Laplace_relax.cc Laplace_boundary.cc Boundaries.cc
+SRCS = Startup.cc RegisterSymmetries.cc RegisterMoL.cc Laplace_initial.cc Laplace_initial_boundary.cc Laplace_relax.cc Laplace_boundary.cc Boundaries.cc
diff --git a/Examples/Makefile b/Examples/Makefile
index d983462..191b0f2 100644
--- a/Examples/Makefile
+++ b/Examples/Makefile
@@ -1,5 +1,8 @@
thornscripts = $(wildcard *.m)
-thorns = ${thornscripts:.m=}
+
+# thorns = ${thornscripts:.m=}
+
+thorns = $(shell cat make.thorns)
kranc = ../Bin/kranc
diff --git a/Examples/SimpleWave/schedule.ccl b/Examples/SimpleWave/schedule.ccl
index d5e8e4c..853e2ea 100644
--- a/Examples/SimpleWave/schedule.ccl
+++ b/Examples/SimpleWave/schedule.ccl
@@ -33,12 +33,6 @@ schedule SimpleWave_Startup at STARTUP
OPTIONS: meta
} "create banner"
-schedule SimpleWave_RegisterVars in MoL_Register
-{
- LANG: C
- OPTIONS: meta
-} "Register Variables for MoL"
-
schedule SimpleWave_RegisterSymmetries in SymmetryRegister
{
LANG: C
@@ -48,11 +42,18 @@ schedule SimpleWave_RegisterSymmetries in SymmetryRegister
schedule initial_sine AT INITIAL
{
LANG: C
+ READS: grid::x
+ WRITES: SimpleWave::phi
+ WRITES: SimpleWave::pi
} "initial_sine"
schedule calc_rhs in MoL_CalcRHS
{
LANG: C
+ READS: SimpleWave::phi
+ READS: SimpleWave::pi
+ WRITES: SimpleWave::phirhs
+ WRITES: SimpleWave::pirhs
} "calc_rhs"
schedule SimpleWave_SelectBoundConds in MoL_PostStep
@@ -68,6 +69,12 @@ schedule SimpleWave_CheckBoundaries at BASEGRID
OPTIONS: meta
} "check boundaries treatment"
+schedule SimpleWave_RegisterVars in MoL_Register
+{
+ LANG: C
+ OPTIONS: meta
+} "Register Variables for MoL"
+
schedule group ApplyBCs as SimpleWave_ApplyBCs in MoL_PostStep after SimpleWave_SelectBoundConds
{
# no language specified
diff --git a/Examples/SimpleWave/src/calc_rhs.cc b/Examples/SimpleWave/src/calc_rhs.cc
index f2af270..4a5d002 100644
--- a/Examples/SimpleWave/src/calc_rhs.cc
+++ b/Examples/SimpleWave/src/calc_rhs.cc
@@ -17,10 +17,10 @@
/* Define macros used in calculations */
#define INITVALUE (42)
-#define QAD(x) (SQR(SQR(x)))
-#define INV(x) ((1.0) / (x))
+#define INV(x) ((CCTK_REAL)1.0 / (x))
#define SQR(x) ((x) * (x))
-#define CUB(x) ((x) * (x) * (x))
+#define CUB(x) ((x) * SQR(x))
+#define QAD(x) (SQR(SQR(x)))
extern "C" void calc_rhs_SelectBCs(CCTK_ARGUMENTS)
{
@@ -40,8 +40,6 @@ static void calc_rhs_Body(cGH const * restrict const cctkGH, int const dir, int
DECLARE_CCTK_PARAMETERS;
- /* Declare finite differencing variables */
-
/* Include user-supplied include files */
/* Initialise finite differencing variables */
@@ -86,9 +84,9 @@ static void calc_rhs_Body(cGH const * restrict const cctkGH, int const dir, int
/* Loop over the grid points */
#pragma omp parallel
- CCTK_LOOP3 (calc_rhs,
+ CCTK_LOOP3(calc_rhs,
i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2],
- cctk_lsh[0],cctk_lsh[1],cctk_lsh[2])
+ cctk_ash[0],cctk_ash[1],cctk_ash[2])
{
ptrdiff_t const index = di*i + dj*j + dk*k;
@@ -115,7 +113,7 @@ static void calc_rhs_Body(cGH const * restrict const cctkGH, int const dir, int
phirhs[index] = phirhsL;
pirhs[index] = pirhsL;
}
- CCTK_ENDLOOP3 (calc_rhs);
+ CCTK_ENDLOOP3(calc_rhs);
}
extern "C" void calc_rhs(CCTK_ARGUMENTS)
@@ -134,12 +132,14 @@ extern "C" void calc_rhs(CCTK_ARGUMENTS)
return;
}
- const char *groups[] = {"SimpleWave::evolved_group","SimpleWave::evolved_grouprhs"};
+ const char *const groups[] = {
+ "SimpleWave::evolved_group",
+ "SimpleWave::evolved_grouprhs"};
GenericFD_AssertGroupStorage(cctkGH, "calc_rhs", 2, groups);
GenericFD_EnsureStencilFits(cctkGH, "calc_rhs", 1, 1, 1);
- GenericFD_LoopOverInterior(cctkGH, &calc_rhs_Body);
+ GenericFD_LoopOverInterior(cctkGH, calc_rhs_Body);
if (verbose > 1)
{
diff --git a/Examples/SimpleWave/src/initial_sine.cc b/Examples/SimpleWave/src/initial_sine.cc
index c8a5656..cae7f0a 100644
--- a/Examples/SimpleWave/src/initial_sine.cc
+++ b/Examples/SimpleWave/src/initial_sine.cc
@@ -17,10 +17,10 @@
/* Define macros used in calculations */
#define INITVALUE (42)
-#define QAD(x) (SQR(SQR(x)))
-#define INV(x) ((1.0) / (x))
+#define INV(x) ((CCTK_REAL)1.0 / (x))
#define SQR(x) ((x) * (x))
-#define CUB(x) ((x) * (x) * (x))
+#define CUB(x) ((x) * SQR(x))
+#define QAD(x) (SQR(SQR(x)))
static void initial_sine_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const imin[3], int const imax[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
@@ -28,8 +28,6 @@ static void initial_sine_Body(cGH const * restrict const cctkGH, int const dir,
DECLARE_CCTK_PARAMETERS;
- /* Declare finite differencing variables */
-
/* Include user-supplied include files */
/* Initialise finite differencing variables */
@@ -74,9 +72,9 @@ static void initial_sine_Body(cGH const * restrict const cctkGH, int const dir,
/* Loop over the grid points */
#pragma omp parallel
- CCTK_LOOP3 (initial_sine,
+ CCTK_LOOP3(initial_sine,
i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2],
- cctk_lsh[0],cctk_lsh[1],cctk_lsh[2])
+ cctk_ash[0],cctk_ash[1],cctk_ash[2])
{
ptrdiff_t const index = di*i + dj*j + dk*k;
@@ -90,15 +88,15 @@ static void initial_sine_Body(cGH const * restrict const cctkGH, int const dir,
/* Precompute derivatives */
/* Calculate temporaries and grid functions */
- CCTK_REAL phiL = Sin(2*Pi*(xL - cctk_time));
+ CCTK_REAL phiL = sin(2*Pi*(xL - t));
- CCTK_REAL piL = -2*Pi*Cos(2*Pi*(xL - cctk_time));
+ CCTK_REAL piL = -2*Pi*cos(2*Pi*(xL - t));
/* Copy local copies back to grid functions */
phi[index] = phiL;
pi[index] = piL;
}
- CCTK_ENDLOOP3 (initial_sine);
+ CCTK_ENDLOOP3(initial_sine);
}
extern "C" void initial_sine(CCTK_ARGUMENTS)
@@ -117,11 +115,13 @@ extern "C" void initial_sine(CCTK_ARGUMENTS)
return;
}
- const char *groups[] = {"SimpleWave::evolved_group","grid::coordinates"};
+ const char *const groups[] = {
+ "SimpleWave::evolved_group",
+ "grid::coordinates"};
GenericFD_AssertGroupStorage(cctkGH, "initial_sine", 2, groups);
- GenericFD_LoopOverEverything(cctkGH, &initial_sine_Body);
+ GenericFD_LoopOverEverything(cctkGH, initial_sine_Body);
if (verbose > 1)
{
diff --git a/Examples/SimpleWave/src/make.code.defn b/Examples/SimpleWave/src/make.code.defn
index 535f5d0..3332924 100644
--- a/Examples/SimpleWave/src/make.code.defn
+++ b/Examples/SimpleWave/src/make.code.defn
@@ -1,3 +1,3 @@
# File produced by Kranc
-SRCS = Startup.cc RegisterMoL.cc RegisterSymmetries.cc initial_sine.cc calc_rhs.cc Boundaries.cc
+SRCS = Startup.cc RegisterSymmetries.cc RegisterMoL.cc initial_sine.cc calc_rhs.cc Boundaries.cc
diff --git a/Examples/SimpleWaveOpenCL/cakernel.ccl b/Examples/SimpleWaveOpenCL/cakernel.ccl
deleted file mode 100644
index 32dc04a..0000000
--- a/Examples/SimpleWaveOpenCL/cakernel.ccl
+++ /dev/null
@@ -1 +0,0 @@
-KrancThorn`Private`cakernel$438 \ No newline at end of file
diff --git a/Examples/SimpleWaveOpenCL/schedule.ccl b/Examples/SimpleWaveOpenCL/schedule.ccl
index 13a096e..ec20325 100644
--- a/Examples/SimpleWaveOpenCL/schedule.ccl
+++ b/Examples/SimpleWaveOpenCL/schedule.ccl
@@ -33,12 +33,6 @@ schedule SimpleWaveOpenCL_Startup at STARTUP
OPTIONS: meta
} "create banner"
-schedule SimpleWaveOpenCL_RegisterVars in MoL_Register
-{
- LANG: C
- OPTIONS: meta
-} "Register Variables for MoL"
-
schedule SimpleWaveOpenCL_RegisterSymmetries in SymmetryRegister
{
LANG: C
@@ -48,17 +42,20 @@ schedule SimpleWaveOpenCL_RegisterSymmetries in SymmetryRegister
schedule initial_sine AT INITIAL
{
LANG: C
- # TAGS: OpenCL=1
- READS: grid::coordinates
- WRITES: SimpleWaveOpenCL::evolved_group
+ TAGS: Device=1
+ READS: grid::x
+ WRITES: SimpleWaveOpenCL::phi
+ WRITES: SimpleWaveOpenCL::pi
} "initial_sine"
schedule calc_rhs in MoL_CalcRHS
{
LANG: C
- # TAGS: OpenCL=1
- READS: SimpleWaveOpenCL::evolved_group
- WRITES: SimpleWaveOpenCL::evolved_grouprhs
+ TAGS: Device=1
+ READS: SimpleWaveOpenCL::phi
+ READS: SimpleWaveOpenCL::pi
+ WRITES: SimpleWaveOpenCL::phirhs
+ WRITES: SimpleWaveOpenCL::pirhs
} "calc_rhs"
schedule SimpleWaveOpenCL_SelectBoundConds in MoL_PostStep
@@ -74,6 +71,12 @@ schedule SimpleWaveOpenCL_CheckBoundaries at BASEGRID
OPTIONS: meta
} "check boundaries treatment"
+schedule SimpleWaveOpenCL_RegisterVars in MoL_Register
+{
+ LANG: C
+ OPTIONS: meta
+} "Register Variables for MoL"
+
schedule group ApplyBCs as SimpleWaveOpenCL_ApplyBCs in MoL_PostStep after SimpleWaveOpenCL_SelectBoundConds
{
# no language specified
diff --git a/Examples/SimpleWaveOpenCL/src/Differencing.h b/Examples/SimpleWaveOpenCL/src/Differencing.h
index 476bbe1..7d48129 100644
--- a/Examples/SimpleWaveOpenCL/src/Differencing.h
+++ b/Examples/SimpleWaveOpenCL/src/Differencing.h
@@ -1,4 +1,4 @@
-static char const * const differencing =
+static char const *const differencing =
"#ifndef KRANC_DIFF_FUNCTIONS\n"
"# define PDstandard2nd1(u) ((-KRANC_GFOFFSET3D(u,-1,0,0) + KRANC_GFOFFSET3D(u,1,0,0))*p1o2dx)\n"
"#else\n"
diff --git a/Examples/SimpleWaveOpenCL/src/calc_rhs.cc b/Examples/SimpleWaveOpenCL/src/calc_rhs.cc
index f463547..0344c0d 100644
--- a/Examples/SimpleWaveOpenCL/src/calc_rhs.cc
+++ b/Examples/SimpleWaveOpenCL/src/calc_rhs.cc
@@ -18,10 +18,10 @@
/* Define macros used in calculations */
#define INITVALUE (42)
-#define QAD(x) (SQR(SQR(x)))
-#define INV(x) ((1.0) / (x))
+#define INV(x) ((CCTK_REAL)1.0 / (x))
#define SQR(x) ((x) * (x))
-#define CUB(x) ((x) * (x) * (x))
+#define CUB(x) ((x) * SQR(x))
+#define QAD(x) (SQR(SQR(x)))
extern "C" void calc_rhs_SelectBCs(CCTK_ARGUMENTS)
{
@@ -40,7 +40,7 @@ static void calc_rhs_Body(cGH const * restrict const cctkGH, int const dir, int
DECLARE_CCTK_ARGUMENTS;
DECLARE_CCTK_PARAMETERS;
- char const * const source =
+ char const *const source =
"\n"
"/* Include user-supplied include files */\n"
"\n"
@@ -86,9 +86,9 @@ static void calc_rhs_Body(cGH const * restrict const cctkGH, int const dir, int
"\n"
"/* Loop over the grid points */\n"
"#pragma omp parallel\n"
- "CCTK_LOOP3 (calc_rhs,\n"
+ "CCTK_LOOP3(calc_rhs,\n"
" i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2],\n"
- " cctk_lsh[0],cctk_lsh[1],cctk_lsh[2])\n"
+ " cctk_ash[0],cctk_ash[1],cctk_ash[2])\n"
"{\n"
" ptrdiff_t const index = di*i + dj*j + dk*k;\n"
" \n"
@@ -112,20 +112,24 @@ static void calc_rhs_Body(cGH const * restrict const cctkGH, int const dir, int
" PDstandard2nd33phi;\n"
" \n"
" /* Copy local copies back to grid functions */\n"
+ " vec_store_partial_prepare(i,lc_imin,lc_imax);\n"
" vec_store_nta_partial(phirhs[index],phirhsL);\n"
" vec_store_nta_partial(pirhs[index],pirhsL);\n"
"}\n"
- "CCTK_ENDLOOP3 (calc_rhs);\n"
+ "CCTK_ENDLOOP3(calc_rhs);\n"
""
;
- char const * const groups[] = {"SimpleWaveOpenCL::evolved_group","SimpleWaveOpenCL::evolved_grouprhs",NULL};
+ char const *const groups[] = {
+ "SimpleWaveOpenCL::evolved_group",
+ "SimpleWaveOpenCL::evolved_grouprhs",
+ NULL};
- static struct OpenCLKernel * kernel = NULL;
- char const * const sources[] = {differencing, source, NULL};
- OpenCLRunTime_CallKernel (cctkGH, CCTK_THORNSTRING, "calc_rhs",
- sources, groups, NULL, NULL, NULL, -1,
- imin, imax, &kernel);
+ static struct OpenCLKernel *kernel = NULL;
+ char const *const sources[] = {differencing, source, NULL};
+ OpenCLRunTime_CallKernel(cctkGH, CCTK_THORNSTRING, "calc_rhs",
+ sources, groups, NULL, NULL, NULL, -1,
+ imin, imax, &kernel);
}
@@ -145,12 +149,14 @@ extern "C" void calc_rhs(CCTK_ARGUMENTS)
return;
}
- const char *groups[] = {"SimpleWaveOpenCL::evolved_group","SimpleWaveOpenCL::evolved_grouprhs"};
+ const char *const groups[] = {
+ "SimpleWaveOpenCL::evolved_group",
+ "SimpleWaveOpenCL::evolved_grouprhs"};
GenericFD_AssertGroupStorage(cctkGH, "calc_rhs", 2, groups);
GenericFD_EnsureStencilFits(cctkGH, "calc_rhs", 1, 1, 1);
- GenericFD_LoopOverInterior(cctkGH, &calc_rhs_Body);
+ GenericFD_LoopOverInterior(cctkGH, calc_rhs_Body);
if (verbose > 1)
{
diff --git a/Examples/SimpleWaveOpenCL/src/initial_sine.cc b/Examples/SimpleWaveOpenCL/src/initial_sine.cc
index fa553dd..b29c7b5 100644
--- a/Examples/SimpleWaveOpenCL/src/initial_sine.cc
+++ b/Examples/SimpleWaveOpenCL/src/initial_sine.cc
@@ -18,17 +18,17 @@
/* Define macros used in calculations */
#define INITVALUE (42)
-#define QAD(x) (SQR(SQR(x)))
-#define INV(x) ((1.0) / (x))
+#define INV(x) ((CCTK_REAL)1.0 / (x))
#define SQR(x) ((x) * (x))
-#define CUB(x) ((x) * (x) * (x))
+#define CUB(x) ((x) * SQR(x))
+#define QAD(x) (SQR(SQR(x)))
static void initial_sine_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const imin[3], int const imax[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
DECLARE_CCTK_ARGUMENTS;
DECLARE_CCTK_PARAMETERS;
- char const * const source =
+ char const *const source =
"\n"
"/* Include user-supplied include files */\n"
"\n"
@@ -74,9 +74,9 @@ static void initial_sine_Body(cGH const * restrict const cctkGH, int const dir,
"\n"
"/* Loop over the grid points */\n"
"#pragma omp parallel\n"
- "CCTK_LOOP3 (initial_sine,\n"
+ "CCTK_LOOP3(initial_sine,\n"
" i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2],\n"
- " cctk_lsh[0],cctk_lsh[1],cctk_lsh[2])\n"
+ " cctk_ash[0],cctk_ash[1],cctk_ash[2])\n"
"{\n"
" ptrdiff_t const index = di*i + dj*j + dk*k;\n"
" \n"
@@ -90,25 +90,29 @@ static void initial_sine_Body(cGH const * restrict const cctkGH, int const dir,
" /* Precompute derivatives */\n"
" \n"
" /* Calculate temporaries and grid functions */\n"
- " CCTK_REAL phiL = Sin(2*Pi*(xL - t));\n"
+ " CCTK_REAL phiL = sin(2*Pi*(xL - t));\n"
" \n"
- " CCTK_REAL piL = -2*Pi*Cos(2*Pi*(xL - t));\n"
+ " CCTK_REAL piL = -2*Pi*cos(2*Pi*(xL - t));\n"
" \n"
" /* Copy local copies back to grid functions */\n"
+ " vec_store_partial_prepare(i,lc_imin,lc_imax);\n"
" vec_store_nta_partial(phi[index],phiL);\n"
" vec_store_nta_partial(pi[index],piL);\n"
"}\n"
- "CCTK_ENDLOOP3 (initial_sine);\n"
+ "CCTK_ENDLOOP3(initial_sine);\n"
""
;
- char const * const groups[] = {"SimpleWaveOpenCL::evolved_group","grid::coordinates",NULL};
+ char const *const groups[] = {
+ "SimpleWaveOpenCL::evolved_group",
+ "grid::coordinates",
+ NULL};
- static struct OpenCLKernel * kernel = NULL;
- char const * const sources[] = {differencing, source, NULL};
- OpenCLRunTime_CallKernel (cctkGH, CCTK_THORNSTRING, "initial_sine",
- sources, groups, NULL, NULL, NULL, -1,
- imin, imax, &kernel);
+ static struct OpenCLKernel *kernel = NULL;
+ char const *const sources[] = {differencing, source, NULL};
+ OpenCLRunTime_CallKernel(cctkGH, CCTK_THORNSTRING, "initial_sine",
+ sources, groups, NULL, NULL, NULL, -1,
+ imin, imax, &kernel);
}
@@ -128,11 +132,13 @@ extern "C" void initial_sine(CCTK_ARGUMENTS)
return;
}
- const char *groups[] = {"SimpleWaveOpenCL::evolved_group","grid::coordinates"};
+ const char *const groups[] = {
+ "SimpleWaveOpenCL::evolved_group",
+ "grid::coordinates"};
GenericFD_AssertGroupStorage(cctkGH, "initial_sine", 2, groups);
- GenericFD_LoopOverEverything(cctkGH, &initial_sine_Body);
+ GenericFD_LoopOverEverything(cctkGH, initial_sine_Body);
if (verbose > 1)
{
diff --git a/Examples/SimpleWaveOpenCL/src/make.code.defn b/Examples/SimpleWaveOpenCL/src/make.code.defn
index 535f5d0..3332924 100644
--- a/Examples/SimpleWaveOpenCL/src/make.code.defn
+++ b/Examples/SimpleWaveOpenCL/src/make.code.defn
@@ -1,3 +1,3 @@
# File produced by Kranc
-SRCS = Startup.cc RegisterMoL.cc RegisterSymmetries.cc initial_sine.cc calc_rhs.cc Boundaries.cc
+SRCS = Startup.cc RegisterSymmetries.cc RegisterMoL.cc initial_sine.cc calc_rhs.cc Boundaries.cc
diff --git a/Examples/Wave/param.ccl b/Examples/Wave/param.ccl
index ae83072..ff10447 100644
--- a/Examples/Wave/param.ccl
+++ b/Examples/Wave/param.ccl
@@ -77,12 +77,6 @@ CCTK_REAL diss "diss"
} 0
restricted:
-CCTK_REAL hlleAlpha "hlleAlpha"
-{
- "*:*" :: ""
-} 0
-
-restricted:
CCTK_INT fdOrder "fdOrder"
{
*:* :: ""
diff --git a/Examples/Wave/schedule.ccl b/Examples/Wave/schedule.ccl
index e9e28e0..719d86f 100644
--- a/Examples/Wave/schedule.ccl
+++ b/Examples/Wave/schedule.ccl
@@ -72,12 +72,6 @@ schedule Wave_Startup at STARTUP
OPTIONS: meta
} "create banner"
-schedule Wave_RegisterVars in MoL_Register
-{
- LANG: C
- OPTIONS: meta
-} "Register Variables for MoL"
-
schedule Wave_RegisterSymmetries in SymmetryRegister
{
LANG: C
@@ -90,6 +84,11 @@ if (CCTK_EQUALS(initial_data, "sine"))
schedule wave_exact_sine AT INITIAL before import_exact before import_exact
{
LANG: C
+ READS: grid::x
+ READS: grid::y
+ READS: grid::z
+ WRITES: Wave::phiExact
+ WRITES: Wave::piExact
} "wave_exact_sine"
}
@@ -99,6 +98,11 @@ if (CCTK_EQUALS(initial_data, "sine"))
schedule wave_exact_sine AT POSTSTEP before calc_errors before import_exact
{
LANG: C
+ READS: grid::x
+ READS: grid::y
+ READS: grid::z
+ WRITES: Wave::phiExact
+ WRITES: Wave::piExact
} "wave_exact_sine"
}
@@ -108,6 +112,9 @@ if (CCTK_EQUALS(initial_data, "gaussian"))
schedule wave_exact_gaussian AT INITIAL before import_exact before import_exact
{
LANG: C
+ READS: grid::r
+ WRITES: Wave::phiExact
+ WRITES: Wave::piExact
} "wave_exact_gaussian"
}
@@ -117,28 +124,52 @@ if (CCTK_EQUALS(initial_data, "gaussian"))
schedule wave_exact_gaussian AT POSTSTEP before calc_errors before import_exact
{
LANG: C
+ READS: grid::r
+ WRITES: Wave::phiExact
+ WRITES: Wave::piExact
} "wave_exact_gaussian"
}
schedule wave_import_exact at INITIAL as import_exact
{
LANG: C
+ READS: Wave::phiExact
+ READS: Wave::piExact
+ WRITES: Wave::phi
+ WRITES: Wave::pi
} "wave_import_exact"
schedule wave_evolve in MoL_CalcRHS as evolve
{
LANG: C
+ READS: Wave::phi
+ READS: Wave::pi
+ WRITES: Wave::phirhs
+ WRITES: Wave::pirhs
} "wave_evolve"
schedule wave_calc_errors at ANALYSIS as calc_errors
{
LANG: C
+ READS: Wave::phi
+ READS: Wave::phiExact
+ READS: Wave::pi
+ READS: Wave::piExact
+ WRITES: Wave::phiError
+ WRITES: Wave::piError
} "wave_calc_errors"
schedule wave_calc_norm at ANALYSIS as calc_norm
{
LANG: C
SYNC: norms
+ READS: Wave::phi
+ READS: Wave::phiError
+ READS: Wave::pi
+ READS: Wave::piError
+ WRITES: Wave::EL2
+ WRITES: Wave::VDP
+ WRITES: Wave::VL2
} "wave_calc_norm"
@@ -147,6 +178,14 @@ if (CCTK_EQUALS(boundary_condition, "radiative"))
schedule wave_boundary in MoL_RHSBoundaries
{
LANG: C
+ READS: Wave::phi
+ READS: Wave::pi
+ READS: grid::r
+ READS: grid::x
+ READS: grid::y
+ READS: grid::z
+ WRITES: Wave::phirhs
+ WRITES: Wave::pirhs
} "wave_boundary"
}
@@ -163,6 +202,12 @@ schedule Wave_CheckBoundaries at BASEGRID
OPTIONS: meta
} "check boundaries treatment"
+schedule Wave_RegisterVars in MoL_Register
+{
+ LANG: C
+ OPTIONS: meta
+} "Register Variables for MoL"
+
schedule group ApplyBCs as Wave_ApplyBCs in MoL_PostStep after Wave_SelectBoundConds
{
# no language specified
diff --git a/Examples/Wave/src/Differencing.h b/Examples/Wave/src/Differencing.h
index c809b72..28eb5d5 100644
--- a/Examples/Wave/src/Differencing.h
+++ b/Examples/Wave/src/Differencing.h
@@ -323,26 +323,26 @@ static CCTK_REAL PDonesided2nd3_impl(CCTK_REAL const* restrict const u, CCTK_REA
#endif
#ifndef KRANC_DIFF_FUNCTIONS
-# define DissfdOrder2(u) (-(p1odxdydz*diss*((6*KRANC_GFOFFSET3D(u,0,0,0) - 4*(KRANC_GFOFFSET3D(u,0,0,-1) + KRANC_GFOFFSET3D(u,0,0,1)) + KRANC_GFOFFSET3D(u,0,0,-2) + KRANC_GFOFFSET3D(u,0,0,2))*INV(dxi)*INV(dyi) + ((6*KRANC_GFOFFSET3D(u,0,0,0) - 4*(KRANC_GFOFFSET3D(u,0,-1,0) + KRANC_GFOFFSET3D(u,0,1,0)) + KRANC_GFOFFSET3D(u,0,-2,0) + KRANC_GFOFFSET3D(u,0,2,0))*INV(dxi) + (6*KRANC_GFOFFSET3D(u,0,0,0) - 4*(KRANC_GFOFFSET3D(u,-1,0,0) + KRANC_GFOFFSET3D(u,1,0,0)) + KRANC_GFOFFSET3D(u,-2,0,0) + KRANC_GFOFFSET3D(u,2,0,0))*INV(dyi))*INV(dzi))))
+# define DissfdOrder2(u) (-(p1odxdydz*diss*((6*KRANC_GFOFFSET3D(u,0,0,0) - 4*(KRANC_GFOFFSET3D(u,0,0,-1) + KRANC_GFOFFSET3D(u,0,0,1)) + KRANC_GFOFFSET3D(u,0,0,-2) + KRANC_GFOFFSET3D(u,0,0,2))*INV(dxi*dyi) + ((6*KRANC_GFOFFSET3D(u,0,0,0) - 4*(KRANC_GFOFFSET3D(u,0,-1,0) + KRANC_GFOFFSET3D(u,0,1,0)) + KRANC_GFOFFSET3D(u,0,-2,0) + KRANC_GFOFFSET3D(u,0,2,0))*INV(dxi) + (6*KRANC_GFOFFSET3D(u,0,0,0) - 4*(KRANC_GFOFFSET3D(u,-1,0,0) + KRANC_GFOFFSET3D(u,1,0,0)) + KRANC_GFOFFSET3D(u,-2,0,0) + KRANC_GFOFFSET3D(u,2,0,0))*INV(dyi))*INV(dzi))))
#else
# define DissfdOrder2(u) (DissfdOrder2_impl(u,p1odxdydz,cdj,cdk))
static CCTK_REAL DissfdOrder2_impl(CCTK_REAL const* restrict const u, CCTK_REAL const p1odxdydz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED;
static CCTK_REAL DissfdOrder2_impl(CCTK_REAL const* restrict const u, CCTK_REAL const p1odxdydz, ptrdiff_t const cdj, ptrdiff_t const cdk)
{
ptrdiff_t const cdi=sizeof(CCTK_REAL);
- return -(p1odxdydz*diss*((6*KRANC_GFOFFSET3D(u,0,0,0) - 4*(KRANC_GFOFFSET3D(u,0,0,-1) + KRANC_GFOFFSET3D(u,0,0,1)) + KRANC_GFOFFSET3D(u,0,0,-2) + KRANC_GFOFFSET3D(u,0,0,2))*INV(dxi)*INV(dyi) + ((6*KRANC_GFOFFSET3D(u,0,0,0) - 4*(KRANC_GFOFFSET3D(u,0,-1,0) + KRANC_GFOFFSET3D(u,0,1,0)) + KRANC_GFOFFSET3D(u,0,-2,0) + KRANC_GFOFFSET3D(u,0,2,0))*INV(dxi) + (6*KRANC_GFOFFSET3D(u,0,0,0) - 4*(KRANC_GFOFFSET3D(u,-1,0,0) + KRANC_GFOFFSET3D(u,1,0,0)) + KRANC_GFOFFSET3D(u,-2,0,0) + KRANC_GFOFFSET3D(u,2,0,0))*INV(dyi))*INV(dzi)));
+ return -(p1odxdydz*diss*((6*KRANC_GFOFFSET3D(u,0,0,0) - 4*(KRANC_GFOFFSET3D(u,0,0,-1) + KRANC_GFOFFSET3D(u,0,0,1)) + KRANC_GFOFFSET3D(u,0,0,-2) + KRANC_GFOFFSET3D(u,0,0,2))*INV(dxi*dyi) + ((6*KRANC_GFOFFSET3D(u,0,0,0) - 4*(KRANC_GFOFFSET3D(u,0,-1,0) + KRANC_GFOFFSET3D(u,0,1,0)) + KRANC_GFOFFSET3D(u,0,-2,0) + KRANC_GFOFFSET3D(u,0,2,0))*INV(dxi) + (6*KRANC_GFOFFSET3D(u,0,0,0) - 4*(KRANC_GFOFFSET3D(u,-1,0,0) + KRANC_GFOFFSET3D(u,1,0,0)) + KRANC_GFOFFSET3D(u,-2,0,0) + KRANC_GFOFFSET3D(u,2,0,0))*INV(dyi))*INV(dzi)));
}
#endif
#ifndef KRANC_DIFF_FUNCTIONS
-# define DissfdOrder4(u) (p1odxdydz*diss*((-20*KRANC_GFOFFSET3D(u,0,0,0) + 15*(KRANC_GFOFFSET3D(u,0,0,-1) + KRANC_GFOFFSET3D(u,0,0,1)) - 6*(KRANC_GFOFFSET3D(u,0,0,-2) + KRANC_GFOFFSET3D(u,0,0,2)) + KRANC_GFOFFSET3D(u,0,0,-3) + KRANC_GFOFFSET3D(u,0,0,3))*INV(dxi)*INV(dyi) + ((15*(KRANC_GFOFFSET3D(u,0,-1,0) + KRANC_GFOFFSET3D(u,0,1,0)) - 6*(KRANC_GFOFFSET3D(u,0,-2,0) + KRANC_GFOFFSET3D(u,0,2,0)) + KRANC_GFOFFSET3D(u,0,-3,0) + KRANC_GFOFFSET3D(u,0,3,0))*INV(dxi) + (15*(KRANC_GFOFFSET3D(u,-1,0,0) + KRANC_GFOFFSET3D(u,1,0,0)) - 6*(KRANC_GFOFFSET3D(u,-2,0,0) + KRANC_GFOFFSET3D(u,2,0,0)) + KRANC_GFOFFSET3D(u,-3,0,0) + KRANC_GFOFFSET3D(u,3,0,0))*INV(dyi) - 20*KRANC_GFOFFSET3D(u,0,0,0)*(INV(dxi) + INV(dyi)))*INV(dzi)))
+# define DissfdOrder4(u) (p1odxdydz*diss*((-20*KRANC_GFOFFSET3D(u,0,0,0) + 15*(KRANC_GFOFFSET3D(u,0,0,-1) + KRANC_GFOFFSET3D(u,0,0,1)) - 6*(KRANC_GFOFFSET3D(u,0,0,-2) + KRANC_GFOFFSET3D(u,0,0,2)) + KRANC_GFOFFSET3D(u,0,0,-3) + KRANC_GFOFFSET3D(u,0,0,3))*INV(dxi*dyi) + ((15*(KRANC_GFOFFSET3D(u,0,-1,0) + KRANC_GFOFFSET3D(u,0,1,0)) - 6*(KRANC_GFOFFSET3D(u,0,-2,0) + KRANC_GFOFFSET3D(u,0,2,0)) + KRANC_GFOFFSET3D(u,0,-3,0) + KRANC_GFOFFSET3D(u,0,3,0))*INV(dxi) + (15*(KRANC_GFOFFSET3D(u,-1,0,0) + KRANC_GFOFFSET3D(u,1,0,0)) - 6*(KRANC_GFOFFSET3D(u,-2,0,0) + KRANC_GFOFFSET3D(u,2,0,0)) + KRANC_GFOFFSET3D(u,-3,0,0) + KRANC_GFOFFSET3D(u,3,0,0))*INV(dyi) - 20*KRANC_GFOFFSET3D(u,0,0,0)*(INV(dxi) + INV(dyi)))*INV(dzi)))
#else
# define DissfdOrder4(u) (DissfdOrder4_impl(u,p1odxdydz,cdj,cdk))
static CCTK_REAL DissfdOrder4_impl(CCTK_REAL const* restrict const u, CCTK_REAL const p1odxdydz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED;
static CCTK_REAL DissfdOrder4_impl(CCTK_REAL const* restrict const u, CCTK_REAL const p1odxdydz, ptrdiff_t const cdj, ptrdiff_t const cdk)
{
ptrdiff_t const cdi=sizeof(CCTK_REAL);
- return p1odxdydz*diss*((-20*KRANC_GFOFFSET3D(u,0,0,0) + 15*(KRANC_GFOFFSET3D(u,0,0,-1) + KRANC_GFOFFSET3D(u,0,0,1)) - 6*(KRANC_GFOFFSET3D(u,0,0,-2) + KRANC_GFOFFSET3D(u,0,0,2)) + KRANC_GFOFFSET3D(u,0,0,-3) + KRANC_GFOFFSET3D(u,0,0,3))*INV(dxi)*INV(dyi) + ((15*(KRANC_GFOFFSET3D(u,0,-1,0) + KRANC_GFOFFSET3D(u,0,1,0)) - 6*(KRANC_GFOFFSET3D(u,0,-2,0) + KRANC_GFOFFSET3D(u,0,2,0)) + KRANC_GFOFFSET3D(u,0,-3,0) + KRANC_GFOFFSET3D(u,0,3,0))*INV(dxi) + (15*(KRANC_GFOFFSET3D(u,-1,0,0) + KRANC_GFOFFSET3D(u,1,0,0)) - 6*(KRANC_GFOFFSET3D(u,-2,0,0) + KRANC_GFOFFSET3D(u,2,0,0)) + KRANC_GFOFFSET3D(u,-3,0,0) + KRANC_GFOFFSET3D(u,3,0,0))*INV(dyi) - 20*KRANC_GFOFFSET3D(u,0,0,0)*(INV(dxi) + INV(dyi)))*INV(dzi));
+ return p1odxdydz*diss*((-20*KRANC_GFOFFSET3D(u,0,0,0) + 15*(KRANC_GFOFFSET3D(u,0,0,-1) + KRANC_GFOFFSET3D(u,0,0,1)) - 6*(KRANC_GFOFFSET3D(u,0,0,-2) + KRANC_GFOFFSET3D(u,0,0,2)) + KRANC_GFOFFSET3D(u,0,0,-3) + KRANC_GFOFFSET3D(u,0,0,3))*INV(dxi*dyi) + ((15*(KRANC_GFOFFSET3D(u,0,-1,0) + KRANC_GFOFFSET3D(u,0,1,0)) - 6*(KRANC_GFOFFSET3D(u,0,-2,0) + KRANC_GFOFFSET3D(u,0,2,0)) + KRANC_GFOFFSET3D(u,0,-3,0) + KRANC_GFOFFSET3D(u,0,3,0))*INV(dxi) + (15*(KRANC_GFOFFSET3D(u,-1,0,0) + KRANC_GFOFFSET3D(u,1,0,0)) - 6*(KRANC_GFOFFSET3D(u,-2,0,0) + KRANC_GFOFFSET3D(u,2,0,0)) + KRANC_GFOFFSET3D(u,-3,0,0) + KRANC_GFOFFSET3D(u,3,0,0))*INV(dyi) - 20*KRANC_GFOFFSET3D(u,0,0,0)*(INV(dxi) + INV(dyi)))*INV(dzi));
}
#endif
@@ -526,111 +526,3 @@ static CCTK_REAL PDplus3_impl(CCTK_REAL const* restrict const u, CCTK_REAL const
}
#endif
-#ifndef KRANC_DIFF_FUNCTIONS
-# define DiffPlus1(u) ((-KRANC_GFOFFSET3D(u,0,0,0) + KRANC_GFOFFSET3D(u,1,0,0))*p1o1)
-#else
-# define DiffPlus1(u) (DiffPlus1_impl(u,p1o1,cdj,cdk))
-static CCTK_REAL DiffPlus1_impl(CCTK_REAL const* restrict const u, CCTK_REAL const p1o1, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED;
-static CCTK_REAL DiffPlus1_impl(CCTK_REAL const* restrict const u, CCTK_REAL const p1o1, ptrdiff_t const cdj, ptrdiff_t const cdk)
-{
- ptrdiff_t const cdi=sizeof(CCTK_REAL);
- return (-KRANC_GFOFFSET3D(u,0,0,0) + KRANC_GFOFFSET3D(u,1,0,0))*p1o1;
-}
-#endif
-
-#ifndef KRANC_DIFF_FUNCTIONS
-# define DiffPlus2(u) ((-KRANC_GFOFFSET3D(u,0,0,0) + KRANC_GFOFFSET3D(u,0,1,0))*p1o1)
-#else
-# define DiffPlus2(u) (DiffPlus2_impl(u,p1o1,cdj,cdk))
-static CCTK_REAL DiffPlus2_impl(CCTK_REAL const* restrict const u, CCTK_REAL const p1o1, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED;
-static CCTK_REAL DiffPlus2_impl(CCTK_REAL const* restrict const u, CCTK_REAL const p1o1, ptrdiff_t const cdj, ptrdiff_t const cdk)
-{
- ptrdiff_t const cdi=sizeof(CCTK_REAL);
- return (-KRANC_GFOFFSET3D(u,0,0,0) + KRANC_GFOFFSET3D(u,0,1,0))*p1o1;
-}
-#endif
-
-#ifndef KRANC_DIFF_FUNCTIONS
-# define DiffPlus3(u) ((-KRANC_GFOFFSET3D(u,0,0,0) + KRANC_GFOFFSET3D(u,0,0,1))*p1o1)
-#else
-# define DiffPlus3(u) (DiffPlus3_impl(u,p1o1,cdj,cdk))
-static CCTK_REAL DiffPlus3_impl(CCTK_REAL const* restrict const u, CCTK_REAL const p1o1, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED;
-static CCTK_REAL DiffPlus3_impl(CCTK_REAL const* restrict const u, CCTK_REAL const p1o1, ptrdiff_t const cdj, ptrdiff_t const cdk)
-{
- ptrdiff_t const cdi=sizeof(CCTK_REAL);
- return (-KRANC_GFOFFSET3D(u,0,0,0) + KRANC_GFOFFSET3D(u,0,0,1))*p1o1;
-}
-#endif
-
-#ifndef KRANC_DIFF_FUNCTIONS
-# define DiffMinus1(u) ((KRANC_GFOFFSET3D(u,0,0,0) - KRANC_GFOFFSET3D(u,-1,0,0))*p1o1)
-#else
-# define DiffMinus1(u) (DiffMinus1_impl(u,p1o1,cdj,cdk))
-static CCTK_REAL DiffMinus1_impl(CCTK_REAL const* restrict const u, CCTK_REAL const p1o1, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED;
-static CCTK_REAL DiffMinus1_impl(CCTK_REAL const* restrict const u, CCTK_REAL const p1o1, ptrdiff_t const cdj, ptrdiff_t const cdk)
-{
- ptrdiff_t const cdi=sizeof(CCTK_REAL);
- return (KRANC_GFOFFSET3D(u,0,0,0) - KRANC_GFOFFSET3D(u,-1,0,0))*p1o1;
-}
-#endif
-
-#ifndef KRANC_DIFF_FUNCTIONS
-# define DiffMinus2(u) ((KRANC_GFOFFSET3D(u,0,0,0) - KRANC_GFOFFSET3D(u,0,-1,0))*p1o1)
-#else
-# define DiffMinus2(u) (DiffMinus2_impl(u,p1o1,cdj,cdk))
-static CCTK_REAL DiffMinus2_impl(CCTK_REAL const* restrict const u, CCTK_REAL const p1o1, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED;
-static CCTK_REAL DiffMinus2_impl(CCTK_REAL const* restrict const u, CCTK_REAL const p1o1, ptrdiff_t const cdj, ptrdiff_t const cdk)
-{
- ptrdiff_t const cdi=sizeof(CCTK_REAL);
- return (KRANC_GFOFFSET3D(u,0,0,0) - KRANC_GFOFFSET3D(u,0,-1,0))*p1o1;
-}
-#endif
-
-#ifndef KRANC_DIFF_FUNCTIONS
-# define DiffMinus3(u) ((KRANC_GFOFFSET3D(u,0,0,0) - KRANC_GFOFFSET3D(u,0,0,-1))*p1o1)
-#else
-# define DiffMinus3(u) (DiffMinus3_impl(u,p1o1,cdj,cdk))
-static CCTK_REAL DiffMinus3_impl(CCTK_REAL const* restrict const u, CCTK_REAL const p1o1, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED;
-static CCTK_REAL DiffMinus3_impl(CCTK_REAL const* restrict const u, CCTK_REAL const p1o1, ptrdiff_t const cdj, ptrdiff_t const cdk)
-{
- ptrdiff_t const cdi=sizeof(CCTK_REAL);
- return (KRANC_GFOFFSET3D(u,0,0,0) - KRANC_GFOFFSET3D(u,0,0,-1))*p1o1;
-}
-#endif
-
-#ifndef KRANC_DIFF_FUNCTIONS
-# define ShiftMinus1(u) (KRANC_GFOFFSET3D(u,-1,0,0)*p1o1)
-#else
-# define ShiftMinus1(u) (ShiftMinus1_impl(u,p1o1,cdj,cdk))
-static CCTK_REAL ShiftMinus1_impl(CCTK_REAL const* restrict const u, CCTK_REAL const p1o1, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED;
-static CCTK_REAL ShiftMinus1_impl(CCTK_REAL const* restrict const u, CCTK_REAL const p1o1, ptrdiff_t const cdj, ptrdiff_t const cdk)
-{
- ptrdiff_t const cdi=sizeof(CCTK_REAL);
- return KRANC_GFOFFSET3D(u,-1,0,0)*p1o1;
-}
-#endif
-
-#ifndef KRANC_DIFF_FUNCTIONS
-# define ShiftMinus2(u) (KRANC_GFOFFSET3D(u,0,-1,0)*p1o1)
-#else
-# define ShiftMinus2(u) (ShiftMinus2_impl(u,p1o1,cdj,cdk))
-static CCTK_REAL ShiftMinus2_impl(CCTK_REAL const* restrict const u, CCTK_REAL const p1o1, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED;
-static CCTK_REAL ShiftMinus2_impl(CCTK_REAL const* restrict const u, CCTK_REAL const p1o1, ptrdiff_t const cdj, ptrdiff_t const cdk)
-{
- ptrdiff_t const cdi=sizeof(CCTK_REAL);
- return KRANC_GFOFFSET3D(u,0,-1,0)*p1o1;
-}
-#endif
-
-#ifndef KRANC_DIFF_FUNCTIONS
-# define ShiftMinus3(u) (KRANC_GFOFFSET3D(u,0,0,-1)*p1o1)
-#else
-# define ShiftMinus3(u) (ShiftMinus3_impl(u,p1o1,cdj,cdk))
-static CCTK_REAL ShiftMinus3_impl(CCTK_REAL const* restrict const u, CCTK_REAL const p1o1, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED;
-static CCTK_REAL ShiftMinus3_impl(CCTK_REAL const* restrict const u, CCTK_REAL const p1o1, ptrdiff_t const cdj, ptrdiff_t const cdk)
-{
- ptrdiff_t const cdi=sizeof(CCTK_REAL);
- return KRANC_GFOFFSET3D(u,0,0,-1)*p1o1;
-}
-#endif
-
diff --git a/Examples/Wave/src/make.code.defn b/Examples/Wave/src/make.code.defn
index 4dcd739..48fb287 100644
--- a/Examples/Wave/src/make.code.defn
+++ b/Examples/Wave/src/make.code.defn
@@ -1,3 +1,3 @@
# File produced by Kranc
-SRCS = Startup.cc RegisterMoL.cc RegisterSymmetries.cc wave_exact_sine.cc wave_exact_gaussian.cc wave_import_exact.cc wave_evolve.cc wave_calc_errors.cc wave_calc_norm.cc wave_boundary.cc Boundaries.cc
+SRCS = Startup.cc RegisterSymmetries.cc RegisterMoL.cc wave_exact_sine.cc wave_exact_gaussian.cc wave_import_exact.cc wave_evolve.cc wave_calc_errors.cc wave_calc_norm.cc wave_boundary.cc Boundaries.cc
diff --git a/Examples/Wave/src/wave_boundary.cc b/Examples/Wave/src/wave_boundary.cc
index 2ec1e2c..3ff86ec 100644
--- a/Examples/Wave/src/wave_boundary.cc
+++ b/Examples/Wave/src/wave_boundary.cc
@@ -17,10 +17,10 @@
/* Define macros used in calculations */
#define INITVALUE (42)
-#define QAD(x) (SQR(SQR(x)))
-#define INV(x) ((1.0) / (x))
+#define INV(x) ((CCTK_REAL)1.0 / (x))
#define SQR(x) ((x) * (x))
-#define CUB(x) ((x) * (x) * (x))
+#define CUB(x) ((x) * SQR(x))
+#define QAD(x) (SQR(SQR(x)))
extern "C" void wave_boundary_SelectBCs(CCTK_ARGUMENTS)
{
@@ -40,8 +40,6 @@ static void wave_boundary_Body(cGH const * restrict const cctkGH, int const dir,
DECLARE_CCTK_PARAMETERS;
- /* Declare finite differencing variables */
-
/* Include user-supplied include files */
/* Initialise finite differencing variables */
@@ -69,25 +67,24 @@ static void wave_boundary_Body(cGH const * restrict const cctkGH, int const dir,
CCTK_REAL const hdzi = 0.5 * dzi;
/* Initialize predefined quantities */
- CCTK_REAL const p1o1 = 1;
CCTK_REAL const p1o12dx = 0.0833333333333333333333333333333*INV(dx);
CCTK_REAL const p1o12dy = 0.0833333333333333333333333333333*INV(dy);
CCTK_REAL const p1o12dz = 0.0833333333333333333333333333333*INV(dz);
- CCTK_REAL const p1o144dxdy = 0.00694444444444444444444444444444*INV(dx)*INV(dy);
- CCTK_REAL const p1o144dxdz = 0.00694444444444444444444444444444*INV(dx)*INV(dz);
- CCTK_REAL const p1o144dydz = 0.00694444444444444444444444444444*INV(dy)*INV(dz);
+ CCTK_REAL const p1o144dxdy = 0.00694444444444444444444444444444*INV(dx*dy);
+ CCTK_REAL const p1o144dxdz = 0.00694444444444444444444444444444*INV(dx*dz);
+ CCTK_REAL const p1o144dydz = 0.00694444444444444444444444444444*INV(dy*dz);
CCTK_REAL const p1o2dx = 0.5*INV(dx);
CCTK_REAL const p1o2dy = 0.5*INV(dy);
CCTK_REAL const p1o2dz = 0.5*INV(dz);
CCTK_REAL const p1o4dx2 = 0.25*INV(SQR(dx));
- CCTK_REAL const p1o4dxdy = 0.25*INV(dx)*INV(dy);
- CCTK_REAL const p1o4dxdz = 0.25*INV(dx)*INV(dz);
+ CCTK_REAL const p1o4dxdy = 0.25*INV(dx*dy);
+ CCTK_REAL const p1o4dxdz = 0.25*INV(dx*dz);
CCTK_REAL const p1o4dy2 = 0.25*INV(SQR(dy));
- CCTK_REAL const p1o4dydz = 0.25*INV(dy)*INV(dz);
+ CCTK_REAL const p1o4dydz = 0.25*INV(dy*dz);
CCTK_REAL const p1o4dz2 = 0.25*INV(SQR(dz));
CCTK_REAL const p1odx = INV(dx);
CCTK_REAL const p1odx2 = INV(SQR(dx));
- CCTK_REAL const p1odxdydz = INV(dx)*INV(dy)*INV(dz);
+ CCTK_REAL const p1odxdydz = INV(dx*dy*dz);
CCTK_REAL const p1ody = INV(dy);
CCTK_REAL const p1ody2 = INV(SQR(dy));
CCTK_REAL const p1odz = INV(dz);
@@ -109,9 +106,9 @@ static void wave_boundary_Body(cGH const * restrict const cctkGH, int const dir,
/* Loop over the grid points */
#pragma omp parallel
- CCTK_LOOP3 (wave_boundary,
+ CCTK_LOOP3(wave_boundary,
i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2],
- cctk_lsh[0],cctk_lsh[1],cctk_lsh[2])
+ cctk_ash[0],cctk_ash[1],cctk_ash[2])
{
ptrdiff_t const index = di*i + dj*j + dk*k;
@@ -145,11 +142,11 @@ static void wave_boundary_Body(cGH const * restrict const cctkGH, int const dir,
CCTK_REAL norm3 = -(zL*INV(rL));
- ptrdiff_t dir1 = Sign(norm1);
+ ptrdiff_t dir1 = isgn(norm1);
- ptrdiff_t dir2 = Sign(norm2);
+ ptrdiff_t dir2 = isgn(norm2);
- ptrdiff_t dir3 = Sign(norm3);
+ ptrdiff_t dir3 = isgn(norm3);
CCTK_REAL phirhsL = PDonesided2nd1(&phi[index])*norm1 +
PDonesided2nd2(&phi[index])*norm2 +
@@ -163,7 +160,7 @@ static void wave_boundary_Body(cGH const * restrict const cctkGH, int const dir,
phirhs[index] = phirhsL;
pirhs[index] = pirhsL;
}
- CCTK_ENDLOOP3 (wave_boundary);
+ CCTK_ENDLOOP3(wave_boundary);
}
extern "C" void wave_boundary(CCTK_ARGUMENTS)
@@ -182,7 +179,10 @@ extern "C" void wave_boundary(CCTK_ARGUMENTS)
return;
}
- const char *groups[] = {"Wave::evolved","Wave::evolvedrhs","grid::coordinates"};
+ const char *const groups[] = {
+ "Wave::evolved",
+ "Wave::evolvedrhs",
+ "grid::coordinates"};
GenericFD_AssertGroupStorage(cctkGH, "wave_boundary", 3, groups);
switch(fdOrder)
@@ -196,7 +196,7 @@ extern "C" void wave_boundary(CCTK_ARGUMENTS)
break;
}
- GenericFD_LoopOverBoundary(cctkGH, &wave_boundary_Body);
+ GenericFD_LoopOverBoundary(cctkGH, wave_boundary_Body);
if (verbose > 1)
{
diff --git a/Examples/Wave/src/wave_calc_errors.cc b/Examples/Wave/src/wave_calc_errors.cc
index a133c1a..1547953 100644
--- a/Examples/Wave/src/wave_calc_errors.cc
+++ b/Examples/Wave/src/wave_calc_errors.cc
@@ -17,10 +17,10 @@
/* Define macros used in calculations */
#define INITVALUE (42)
-#define QAD(x) (SQR(SQR(x)))
-#define INV(x) ((1.0) / (x))
+#define INV(x) ((CCTK_REAL)1.0 / (x))
#define SQR(x) ((x) * (x))
-#define CUB(x) ((x) * (x) * (x))
+#define CUB(x) ((x) * SQR(x))
+#define QAD(x) (SQR(SQR(x)))
static void wave_calc_errors_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const imin[3], int const imax[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
@@ -28,8 +28,6 @@ static void wave_calc_errors_Body(cGH const * restrict const cctkGH, int const d
DECLARE_CCTK_PARAMETERS;
- /* Declare finite differencing variables */
-
/* Include user-supplied include files */
/* Initialise finite differencing variables */
@@ -57,25 +55,24 @@ static void wave_calc_errors_Body(cGH const * restrict const cctkGH, int const d
CCTK_REAL const hdzi = 0.5 * dzi;
/* Initialize predefined quantities */
- CCTK_REAL const p1o1 = 1;
CCTK_REAL const p1o12dx = 0.0833333333333333333333333333333*INV(dx);
CCTK_REAL const p1o12dy = 0.0833333333333333333333333333333*INV(dy);
CCTK_REAL const p1o12dz = 0.0833333333333333333333333333333*INV(dz);
- CCTK_REAL const p1o144dxdy = 0.00694444444444444444444444444444*INV(dx)*INV(dy);
- CCTK_REAL const p1o144dxdz = 0.00694444444444444444444444444444*INV(dx)*INV(dz);
- CCTK_REAL const p1o144dydz = 0.00694444444444444444444444444444*INV(dy)*INV(dz);
+ CCTK_REAL const p1o144dxdy = 0.00694444444444444444444444444444*INV(dx*dy);
+ CCTK_REAL const p1o144dxdz = 0.00694444444444444444444444444444*INV(dx*dz);
+ CCTK_REAL const p1o144dydz = 0.00694444444444444444444444444444*INV(dy*dz);
CCTK_REAL const p1o2dx = 0.5*INV(dx);
CCTK_REAL const p1o2dy = 0.5*INV(dy);
CCTK_REAL const p1o2dz = 0.5*INV(dz);
CCTK_REAL const p1o4dx2 = 0.25*INV(SQR(dx));
- CCTK_REAL const p1o4dxdy = 0.25*INV(dx)*INV(dy);
- CCTK_REAL const p1o4dxdz = 0.25*INV(dx)*INV(dz);
+ CCTK_REAL const p1o4dxdy = 0.25*INV(dx*dy);
+ CCTK_REAL const p1o4dxdz = 0.25*INV(dx*dz);
CCTK_REAL const p1o4dy2 = 0.25*INV(SQR(dy));
- CCTK_REAL const p1o4dydz = 0.25*INV(dy)*INV(dz);
+ CCTK_REAL const p1o4dydz = 0.25*INV(dy*dz);
CCTK_REAL const p1o4dz2 = 0.25*INV(SQR(dz));
CCTK_REAL const p1odx = INV(dx);
CCTK_REAL const p1odx2 = INV(SQR(dx));
- CCTK_REAL const p1odxdydz = INV(dx)*INV(dy)*INV(dz);
+ CCTK_REAL const p1odxdydz = INV(dx*dy*dz);
CCTK_REAL const p1ody = INV(dy);
CCTK_REAL const p1ody2 = INV(SQR(dy));
CCTK_REAL const p1odz = INV(dz);
@@ -97,9 +94,9 @@ static void wave_calc_errors_Body(cGH const * restrict const cctkGH, int const d
/* Loop over the grid points */
#pragma omp parallel
- CCTK_LOOP3 (wave_calc_errors,
+ CCTK_LOOP3(wave_calc_errors,
i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2],
- cctk_lsh[0],cctk_lsh[1],cctk_lsh[2])
+ cctk_ash[0],cctk_ash[1],cctk_ash[2])
{
ptrdiff_t const index = di*i + dj*j + dk*k;
@@ -133,7 +130,7 @@ static void wave_calc_errors_Body(cGH const * restrict const cctkGH, int const d
phiError[index] = phiErrorL;
piError[index] = piErrorL;
}
- CCTK_ENDLOOP3 (wave_calc_errors);
+ CCTK_ENDLOOP3(wave_calc_errors);
}
extern "C" void wave_calc_errors(CCTK_ARGUMENTS)
@@ -152,7 +149,10 @@ extern "C" void wave_calc_errors(CCTK_ARGUMENTS)
return;
}
- const char *groups[] = {"Wave::errors","Wave::evolved","Wave::exact"};
+ const char *const groups[] = {
+ "Wave::errors",
+ "Wave::evolved",
+ "Wave::exact"};
GenericFD_AssertGroupStorage(cctkGH, "wave_calc_errors", 3, groups);
switch(fdOrder)
@@ -164,7 +164,7 @@ extern "C" void wave_calc_errors(CCTK_ARGUMENTS)
break;
}
- GenericFD_LoopOverEverything(cctkGH, &wave_calc_errors_Body);
+ GenericFD_LoopOverEverything(cctkGH, wave_calc_errors_Body);
if (verbose > 1)
{
diff --git a/Examples/Wave/src/wave_calc_norm.cc b/Examples/Wave/src/wave_calc_norm.cc
index 7e15d73..58d8de3 100644
--- a/Examples/Wave/src/wave_calc_norm.cc
+++ b/Examples/Wave/src/wave_calc_norm.cc
@@ -17,10 +17,10 @@
/* Define macros used in calculations */
#define INITVALUE (42)
-#define QAD(x) (SQR(SQR(x)))
-#define INV(x) ((1.0) / (x))
+#define INV(x) ((CCTK_REAL)1.0 / (x))
#define SQR(x) ((x) * (x))
-#define CUB(x) ((x) * (x) * (x))
+#define CUB(x) ((x) * SQR(x))
+#define QAD(x) (SQR(SQR(x)))
extern "C" void wave_calc_norm_SelectBCs(CCTK_ARGUMENTS)
{
@@ -40,8 +40,6 @@ static void wave_calc_norm_Body(cGH const * restrict const cctkGH, int const dir
DECLARE_CCTK_PARAMETERS;
- /* Declare finite differencing variables */
-
/* Include user-supplied include files */
/* Initialise finite differencing variables */
@@ -69,25 +67,24 @@ static void wave_calc_norm_Body(cGH const * restrict const cctkGH, int const dir
CCTK_REAL const hdzi = 0.5 * dzi;
/* Initialize predefined quantities */
- CCTK_REAL const p1o1 = 1;
CCTK_REAL const p1o12dx = 0.0833333333333333333333333333333*INV(dx);
CCTK_REAL const p1o12dy = 0.0833333333333333333333333333333*INV(dy);
CCTK_REAL const p1o12dz = 0.0833333333333333333333333333333*INV(dz);
- CCTK_REAL const p1o144dxdy = 0.00694444444444444444444444444444*INV(dx)*INV(dy);
- CCTK_REAL const p1o144dxdz = 0.00694444444444444444444444444444*INV(dx)*INV(dz);
- CCTK_REAL const p1o144dydz = 0.00694444444444444444444444444444*INV(dy)*INV(dz);
+ CCTK_REAL const p1o144dxdy = 0.00694444444444444444444444444444*INV(dx*dy);
+ CCTK_REAL const p1o144dxdz = 0.00694444444444444444444444444444*INV(dx*dz);
+ CCTK_REAL const p1o144dydz = 0.00694444444444444444444444444444*INV(dy*dz);
CCTK_REAL const p1o2dx = 0.5*INV(dx);
CCTK_REAL const p1o2dy = 0.5*INV(dy);
CCTK_REAL const p1o2dz = 0.5*INV(dz);
CCTK_REAL const p1o4dx2 = 0.25*INV(SQR(dx));
- CCTK_REAL const p1o4dxdy = 0.25*INV(dx)*INV(dy);
- CCTK_REAL const p1o4dxdz = 0.25*INV(dx)*INV(dz);
+ CCTK_REAL const p1o4dxdy = 0.25*INV(dx*dy);
+ CCTK_REAL const p1o4dxdz = 0.25*INV(dx*dz);
CCTK_REAL const p1o4dy2 = 0.25*INV(SQR(dy));
- CCTK_REAL const p1o4dydz = 0.25*INV(dy)*INV(dz);
+ CCTK_REAL const p1o4dydz = 0.25*INV(dy*dz);
CCTK_REAL const p1o4dz2 = 0.25*INV(SQR(dz));
CCTK_REAL const p1odx = INV(dx);
CCTK_REAL const p1odx2 = INV(SQR(dx));
- CCTK_REAL const p1odxdydz = INV(dx)*INV(dy)*INV(dz);
+ CCTK_REAL const p1odxdydz = INV(dx*dy*dz);
CCTK_REAL const p1ody = INV(dy);
CCTK_REAL const p1ody2 = INV(SQR(dy));
CCTK_REAL const p1odz = INV(dz);
@@ -109,9 +106,9 @@ static void wave_calc_norm_Body(cGH const * restrict const cctkGH, int const dir
/* Loop over the grid points */
#pragma omp parallel
- CCTK_LOOP3 (wave_calc_norm,
+ CCTK_LOOP3(wave_calc_norm,
i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2],
- cctk_lsh[0],cctk_lsh[1],cctk_lsh[2])
+ cctk_ash[0],cctk_ash[1],cctk_ash[2])
{
ptrdiff_t const index = di*i + dj*j + dk*k;
@@ -164,7 +161,7 @@ static void wave_calc_norm_Body(cGH const * restrict const cctkGH, int const dir
VDP[index] = VDPL;
VL2[index] = VL2L;
}
- CCTK_ENDLOOP3 (wave_calc_norm);
+ CCTK_ENDLOOP3(wave_calc_norm);
}
extern "C" void wave_calc_norm(CCTK_ARGUMENTS)
@@ -183,7 +180,10 @@ extern "C" void wave_calc_norm(CCTK_ARGUMENTS)
return;
}
- const char *groups[] = {"Wave::errors","Wave::evolved","Wave::norms"};
+ const char *const groups[] = {
+ "Wave::errors",
+ "Wave::evolved",
+ "Wave::norms"};
GenericFD_AssertGroupStorage(cctkGH, "wave_calc_norm", 3, groups);
switch(fdOrder)
@@ -197,7 +197,7 @@ extern "C" void wave_calc_norm(CCTK_ARGUMENTS)
break;
}
- GenericFD_LoopOverInterior(cctkGH, &wave_calc_norm_Body);
+ GenericFD_LoopOverInterior(cctkGH, wave_calc_norm_Body);
if (verbose > 1)
{
diff --git a/Examples/Wave/src/wave_evolve.cc b/Examples/Wave/src/wave_evolve.cc
index 5c6314d..5cee251 100644
--- a/Examples/Wave/src/wave_evolve.cc
+++ b/Examples/Wave/src/wave_evolve.cc
@@ -17,10 +17,10 @@
/* Define macros used in calculations */
#define INITVALUE (42)
-#define QAD(x) (SQR(SQR(x)))
-#define INV(x) ((1.0) / (x))
+#define INV(x) ((CCTK_REAL)1.0 / (x))
#define SQR(x) ((x) * (x))
-#define CUB(x) ((x) * (x) * (x))
+#define CUB(x) ((x) * SQR(x))
+#define QAD(x) (SQR(SQR(x)))
extern "C" void wave_evolve_SelectBCs(CCTK_ARGUMENTS)
{
@@ -40,8 +40,6 @@ static void wave_evolve_Body(cGH const * restrict const cctkGH, int const dir, i
DECLARE_CCTK_PARAMETERS;
- /* Declare finite differencing variables */
-
/* Include user-supplied include files */
/* Initialise finite differencing variables */
@@ -69,25 +67,24 @@ static void wave_evolve_Body(cGH const * restrict const cctkGH, int const dir, i
CCTK_REAL const hdzi = 0.5 * dzi;
/* Initialize predefined quantities */
- CCTK_REAL const p1o1 = 1;
CCTK_REAL const p1o12dx = 0.0833333333333333333333333333333*INV(dx);
CCTK_REAL const p1o12dy = 0.0833333333333333333333333333333*INV(dy);
CCTK_REAL const p1o12dz = 0.0833333333333333333333333333333*INV(dz);
- CCTK_REAL const p1o144dxdy = 0.00694444444444444444444444444444*INV(dx)*INV(dy);
- CCTK_REAL const p1o144dxdz = 0.00694444444444444444444444444444*INV(dx)*INV(dz);
- CCTK_REAL const p1o144dydz = 0.00694444444444444444444444444444*INV(dy)*INV(dz);
+ CCTK_REAL const p1o144dxdy = 0.00694444444444444444444444444444*INV(dx*dy);
+ CCTK_REAL const p1o144dxdz = 0.00694444444444444444444444444444*INV(dx*dz);
+ CCTK_REAL const p1o144dydz = 0.00694444444444444444444444444444*INV(dy*dz);
CCTK_REAL const p1o2dx = 0.5*INV(dx);
CCTK_REAL const p1o2dy = 0.5*INV(dy);
CCTK_REAL const p1o2dz = 0.5*INV(dz);
CCTK_REAL const p1o4dx2 = 0.25*INV(SQR(dx));
- CCTK_REAL const p1o4dxdy = 0.25*INV(dx)*INV(dy);
- CCTK_REAL const p1o4dxdz = 0.25*INV(dx)*INV(dz);
+ CCTK_REAL const p1o4dxdy = 0.25*INV(dx*dy);
+ CCTK_REAL const p1o4dxdz = 0.25*INV(dx*dz);
CCTK_REAL const p1o4dy2 = 0.25*INV(SQR(dy));
- CCTK_REAL const p1o4dydz = 0.25*INV(dy)*INV(dz);
+ CCTK_REAL const p1o4dydz = 0.25*INV(dy*dz);
CCTK_REAL const p1o4dz2 = 0.25*INV(SQR(dz));
CCTK_REAL const p1odx = INV(dx);
CCTK_REAL const p1odx2 = INV(SQR(dx));
- CCTK_REAL const p1odxdydz = INV(dx)*INV(dy)*INV(dz);
+ CCTK_REAL const p1odxdydz = INV(dx*dy*dz);
CCTK_REAL const p1ody = INV(dy);
CCTK_REAL const p1ody2 = INV(SQR(dy));
CCTK_REAL const p1odz = INV(dz);
@@ -109,9 +106,9 @@ static void wave_evolve_Body(cGH const * restrict const cctkGH, int const dir, i
/* Loop over the grid points */
#pragma omp parallel
- CCTK_LOOP3 (wave_evolve,
+ CCTK_LOOP3(wave_evolve,
i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2],
- cctk_lsh[0],cctk_lsh[1],cctk_lsh[2])
+ cctk_ash[0],cctk_ash[1],cctk_ash[2])
{
ptrdiff_t const index = di*i + dj*j + dk*k;
@@ -153,7 +150,7 @@ static void wave_evolve_Body(cGH const * restrict const cctkGH, int const dir, i
phirhs[index] = phirhsL;
pirhs[index] = pirhsL;
}
- CCTK_ENDLOOP3 (wave_evolve);
+ CCTK_ENDLOOP3(wave_evolve);
}
extern "C" void wave_evolve(CCTK_ARGUMENTS)
@@ -172,7 +169,9 @@ extern "C" void wave_evolve(CCTK_ARGUMENTS)
return;
}
- const char *groups[] = {"Wave::evolved","Wave::evolvedrhs"};
+ const char *const groups[] = {
+ "Wave::evolved",
+ "Wave::evolvedrhs"};
GenericFD_AssertGroupStorage(cctkGH, "wave_evolve", 2, groups);
switch(fdOrder)
@@ -186,7 +185,7 @@ extern "C" void wave_evolve(CCTK_ARGUMENTS)
break;
}
- GenericFD_LoopOverInterior(cctkGH, &wave_evolve_Body);
+ GenericFD_LoopOverInterior(cctkGH, wave_evolve_Body);
if (verbose > 1)
{
diff --git a/Examples/Wave/src/wave_exact_gaussian.cc b/Examples/Wave/src/wave_exact_gaussian.cc
index ed37143..82c1bc7 100644
--- a/Examples/Wave/src/wave_exact_gaussian.cc
+++ b/Examples/Wave/src/wave_exact_gaussian.cc
@@ -17,10 +17,10 @@
/* Define macros used in calculations */
#define INITVALUE (42)
-#define QAD(x) (SQR(SQR(x)))
-#define INV(x) ((1.0) / (x))
+#define INV(x) ((CCTK_REAL)1.0 / (x))
#define SQR(x) ((x) * (x))
-#define CUB(x) ((x) * (x) * (x))
+#define CUB(x) ((x) * SQR(x))
+#define QAD(x) (SQR(SQR(x)))
static void wave_exact_gaussian_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const imin[3], int const imax[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
@@ -28,8 +28,6 @@ static void wave_exact_gaussian_Body(cGH const * restrict const cctkGH, int cons
DECLARE_CCTK_PARAMETERS;
- /* Declare finite differencing variables */
-
/* Include user-supplied include files */
/* Initialise finite differencing variables */
@@ -57,25 +55,24 @@ static void wave_exact_gaussian_Body(cGH const * restrict const cctkGH, int cons
CCTK_REAL const hdzi = 0.5 * dzi;
/* Initialize predefined quantities */
- CCTK_REAL const p1o1 = 1;
CCTK_REAL const p1o12dx = 0.0833333333333333333333333333333*INV(dx);
CCTK_REAL const p1o12dy = 0.0833333333333333333333333333333*INV(dy);
CCTK_REAL const p1o12dz = 0.0833333333333333333333333333333*INV(dz);
- CCTK_REAL const p1o144dxdy = 0.00694444444444444444444444444444*INV(dx)*INV(dy);
- CCTK_REAL const p1o144dxdz = 0.00694444444444444444444444444444*INV(dx)*INV(dz);
- CCTK_REAL const p1o144dydz = 0.00694444444444444444444444444444*INV(dy)*INV(dz);
+ CCTK_REAL const p1o144dxdy = 0.00694444444444444444444444444444*INV(dx*dy);
+ CCTK_REAL const p1o144dxdz = 0.00694444444444444444444444444444*INV(dx*dz);
+ CCTK_REAL const p1o144dydz = 0.00694444444444444444444444444444*INV(dy*dz);
CCTK_REAL const p1o2dx = 0.5*INV(dx);
CCTK_REAL const p1o2dy = 0.5*INV(dy);
CCTK_REAL const p1o2dz = 0.5*INV(dz);
CCTK_REAL const p1o4dx2 = 0.25*INV(SQR(dx));
- CCTK_REAL const p1o4dxdy = 0.25*INV(dx)*INV(dy);
- CCTK_REAL const p1o4dxdz = 0.25*INV(dx)*INV(dz);
+ CCTK_REAL const p1o4dxdy = 0.25*INV(dx*dy);
+ CCTK_REAL const p1o4dxdz = 0.25*INV(dx*dz);
CCTK_REAL const p1o4dy2 = 0.25*INV(SQR(dy));
- CCTK_REAL const p1o4dydz = 0.25*INV(dy)*INV(dz);
+ CCTK_REAL const p1o4dydz = 0.25*INV(dy*dz);
CCTK_REAL const p1o4dz2 = 0.25*INV(SQR(dz));
CCTK_REAL const p1odx = INV(dx);
CCTK_REAL const p1odx2 = INV(SQR(dx));
- CCTK_REAL const p1odxdydz = INV(dx)*INV(dy)*INV(dz);
+ CCTK_REAL const p1odxdydz = INV(dx*dy*dz);
CCTK_REAL const p1ody = INV(dy);
CCTK_REAL const p1ody2 = INV(SQR(dy));
CCTK_REAL const p1odz = INV(dz);
@@ -97,9 +94,9 @@ static void wave_exact_gaussian_Body(cGH const * restrict const cctkGH, int cons
/* Loop over the grid points */
#pragma omp parallel
- CCTK_LOOP3 (wave_exact_gaussian,
+ CCTK_LOOP3(wave_exact_gaussian,
i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2],
- cctk_lsh[0],cctk_lsh[1],cctk_lsh[2])
+ cctk_ash[0],cctk_ash[1],cctk_ash[2])
{
ptrdiff_t const index = di*i + dj*j + dk*k;
@@ -124,26 +121,26 @@ static void wave_exact_gaussian_Body(cGH const * restrict const cctkGH, int cons
/* Calculate temporaries and grid functions */
CCTK_REAL rEps = pow(1.e-24 + QAD(rL),0.25);
- CCTK_REAL phiExactL = (-(CUB(-rL + cctk_time +
- ToReal(t0))*exp(-(INV(SQR(ToReal(nSigma)))*SQR(-rL + cctk_time +
- ToReal(t0))))) + CUB(rL + cctk_time +
- ToReal(t0))*exp(-(INV(SQR(ToReal(nSigma)))*SQR(rL + cctk_time +
+ CCTK_REAL phiExactL = (-(CUB(-rL + t +
+ ToReal(t0))*exp(-(INV(SQR(ToReal(nSigma)))*SQR(-rL + t +
+ ToReal(t0))))) + CUB(rL + t +
+ ToReal(t0))*exp(-(INV(SQR(ToReal(nSigma)))*SQR(rL + t +
ToReal(t0)))))*INV(rEps);
CCTK_REAL piExactL =
INV(rEps)*(INV(SQR(ToReal(nSigma)))*(2*exp(-(INV(SQR(ToReal(nSigma)))*SQR(-rL
- + cctk_time + ToReal(t0))))*QAD(-rL + cctk_time + ToReal(t0)) -
- 2*exp(-(INV(SQR(ToReal(nSigma)))*SQR(rL + cctk_time + ToReal(t0))))*QAD(rL
- + cctk_time + ToReal(t0))) - 3*exp(-(INV(SQR(ToReal(nSigma)))*SQR(-rL + cctk_time +
- ToReal(t0))))*SQR(-rL + cctk_time + ToReal(t0)) +
- 3*exp(-(INV(SQR(ToReal(nSigma)))*SQR(rL + cctk_time + ToReal(t0))))*SQR(rL
- + cctk_time + ToReal(t0)));
+ + t + ToReal(t0))))*QAD(-rL + t + ToReal(t0)) -
+ 2*exp(-(INV(SQR(ToReal(nSigma)))*SQR(rL + t + ToReal(t0))))*QAD(rL
+ + t + ToReal(t0))) - 3*exp(-(INV(SQR(ToReal(nSigma)))*SQR(-rL + t +
+ ToReal(t0))))*SQR(-rL + t + ToReal(t0)) +
+ 3*exp(-(INV(SQR(ToReal(nSigma)))*SQR(rL + t + ToReal(t0))))*SQR(rL
+ + t + ToReal(t0)));
/* Copy local copies back to grid functions */
phiExact[index] = phiExactL;
piExact[index] = piExactL;
}
- CCTK_ENDLOOP3 (wave_exact_gaussian);
+ CCTK_ENDLOOP3(wave_exact_gaussian);
}
extern "C" void wave_exact_gaussian(CCTK_ARGUMENTS)
@@ -162,7 +159,9 @@ extern "C" void wave_exact_gaussian(CCTK_ARGUMENTS)
return;
}
- const char *groups[] = {"Wave::exact","grid::coordinates"};
+ const char *const groups[] = {
+ "Wave::exact",
+ "grid::coordinates"};
GenericFD_AssertGroupStorage(cctkGH, "wave_exact_gaussian", 2, groups);
switch(fdOrder)
@@ -174,7 +173,7 @@ extern "C" void wave_exact_gaussian(CCTK_ARGUMENTS)
break;
}
- GenericFD_LoopOverEverything(cctkGH, &wave_exact_gaussian_Body);
+ GenericFD_LoopOverEverything(cctkGH, wave_exact_gaussian_Body);
if (verbose > 1)
{
diff --git a/Examples/Wave/src/wave_exact_sine.cc b/Examples/Wave/src/wave_exact_sine.cc
index 78c4251..3f6dc52 100644
--- a/Examples/Wave/src/wave_exact_sine.cc
+++ b/Examples/Wave/src/wave_exact_sine.cc
@@ -17,10 +17,10 @@
/* Define macros used in calculations */
#define INITVALUE (42)
-#define QAD(x) (SQR(SQR(x)))
-#define INV(x) ((1.0) / (x))
+#define INV(x) ((CCTK_REAL)1.0 / (x))
#define SQR(x) ((x) * (x))
-#define CUB(x) ((x) * (x) * (x))
+#define CUB(x) ((x) * SQR(x))
+#define QAD(x) (SQR(SQR(x)))
static void wave_exact_sine_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const imin[3], int const imax[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
@@ -28,8 +28,6 @@ static void wave_exact_sine_Body(cGH const * restrict const cctkGH, int const di
DECLARE_CCTK_PARAMETERS;
- /* Declare finite differencing variables */
-
/* Include user-supplied include files */
/* Initialise finite differencing variables */
@@ -57,25 +55,24 @@ static void wave_exact_sine_Body(cGH const * restrict const cctkGH, int const di
CCTK_REAL const hdzi = 0.5 * dzi;
/* Initialize predefined quantities */
- CCTK_REAL const p1o1 = 1;
CCTK_REAL const p1o12dx = 0.0833333333333333333333333333333*INV(dx);
CCTK_REAL const p1o12dy = 0.0833333333333333333333333333333*INV(dy);
CCTK_REAL const p1o12dz = 0.0833333333333333333333333333333*INV(dz);
- CCTK_REAL const p1o144dxdy = 0.00694444444444444444444444444444*INV(dx)*INV(dy);
- CCTK_REAL const p1o144dxdz = 0.00694444444444444444444444444444*INV(dx)*INV(dz);
- CCTK_REAL const p1o144dydz = 0.00694444444444444444444444444444*INV(dy)*INV(dz);
+ CCTK_REAL const p1o144dxdy = 0.00694444444444444444444444444444*INV(dx*dy);
+ CCTK_REAL const p1o144dxdz = 0.00694444444444444444444444444444*INV(dx*dz);
+ CCTK_REAL const p1o144dydz = 0.00694444444444444444444444444444*INV(dy*dz);
CCTK_REAL const p1o2dx = 0.5*INV(dx);
CCTK_REAL const p1o2dy = 0.5*INV(dy);
CCTK_REAL const p1o2dz = 0.5*INV(dz);
CCTK_REAL const p1o4dx2 = 0.25*INV(SQR(dx));
- CCTK_REAL const p1o4dxdy = 0.25*INV(dx)*INV(dy);
- CCTK_REAL const p1o4dxdz = 0.25*INV(dx)*INV(dz);
+ CCTK_REAL const p1o4dxdy = 0.25*INV(dx*dy);
+ CCTK_REAL const p1o4dxdz = 0.25*INV(dx*dz);
CCTK_REAL const p1o4dy2 = 0.25*INV(SQR(dy));
- CCTK_REAL const p1o4dydz = 0.25*INV(dy)*INV(dz);
+ CCTK_REAL const p1o4dydz = 0.25*INV(dy*dz);
CCTK_REAL const p1o4dz2 = 0.25*INV(SQR(dz));
CCTK_REAL const p1odx = INV(dx);
CCTK_REAL const p1odx2 = INV(SQR(dx));
- CCTK_REAL const p1odxdydz = INV(dx)*INV(dy)*INV(dz);
+ CCTK_REAL const p1odxdydz = INV(dx*dy*dz);
CCTK_REAL const p1ody = INV(dy);
CCTK_REAL const p1ody2 = INV(SQR(dy));
CCTK_REAL const p1odz = INV(dz);
@@ -97,9 +94,9 @@ static void wave_exact_sine_Body(cGH const * restrict const cctkGH, int const di
/* Loop over the grid points */
#pragma omp parallel
- CCTK_LOOP3 (wave_exact_sine,
+ CCTK_LOOP3(wave_exact_sine,
i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2],
- cctk_lsh[0],cctk_lsh[1],cctk_lsh[2])
+ cctk_ash[0],cctk_ash[1],cctk_ash[2])
{
ptrdiff_t const index = di*i + dj*j + dk*k;
@@ -127,12 +124,12 @@ static void wave_exact_sine_Body(cGH const * restrict const cctkGH, int const di
CCTK_REAL piconst = 3.1415926535897932385;
CCTK_REAL phiExactL =
- Sin(2*piconst*INV(ToReal(periodicity))*(-(cctk_time*sqrt(SQR(ToReal(n1)) +
+ sin(2*piconst*INV(ToReal(periodicity))*(-(t*sqrt(SQR(ToReal(n1)) +
SQR(ToReal(n2)) + SQR(ToReal(n3)))) + xL*ToReal(n1) + yL*ToReal(n2)
+ zL*ToReal(n3)))*ToReal(amplitude);
CCTK_REAL piExactL =
- -2*piconst*Cos(2*piconst*INV(ToReal(periodicity))*(-(cctk_time*sqrt(SQR(ToReal(n1))
+ -2*piconst*cos(2*piconst*INV(ToReal(periodicity))*(-(t*sqrt(SQR(ToReal(n1))
+ SQR(ToReal(n2)) + SQR(ToReal(n3)))) + xL*ToReal(n1) +
yL*ToReal(n2) +
zL*ToReal(n3)))*INV(ToReal(periodicity))*sqrt(SQR(ToReal(n1)) +
@@ -142,7 +139,7 @@ static void wave_exact_sine_Body(cGH const * restrict const cctkGH, int const di
phiExact[index] = phiExactL;
piExact[index] = piExactL;
}
- CCTK_ENDLOOP3 (wave_exact_sine);
+ CCTK_ENDLOOP3(wave_exact_sine);
}
extern "C" void wave_exact_sine(CCTK_ARGUMENTS)
@@ -161,7 +158,9 @@ extern "C" void wave_exact_sine(CCTK_ARGUMENTS)
return;
}
- const char *groups[] = {"Wave::exact","grid::coordinates"};
+ const char *const groups[] = {
+ "Wave::exact",
+ "grid::coordinates"};
GenericFD_AssertGroupStorage(cctkGH, "wave_exact_sine", 2, groups);
switch(fdOrder)
@@ -173,7 +172,7 @@ extern "C" void wave_exact_sine(CCTK_ARGUMENTS)
break;
}
- GenericFD_LoopOverEverything(cctkGH, &wave_exact_sine_Body);
+ GenericFD_LoopOverEverything(cctkGH, wave_exact_sine_Body);
if (verbose > 1)
{
diff --git a/Examples/Wave/src/wave_import_exact.cc b/Examples/Wave/src/wave_import_exact.cc
index 840eef7..8f8b0f8 100644
--- a/Examples/Wave/src/wave_import_exact.cc
+++ b/Examples/Wave/src/wave_import_exact.cc
@@ -17,10 +17,10 @@
/* Define macros used in calculations */
#define INITVALUE (42)
-#define QAD(x) (SQR(SQR(x)))
-#define INV(x) ((1.0) / (x))
+#define INV(x) ((CCTK_REAL)1.0 / (x))
#define SQR(x) ((x) * (x))
-#define CUB(x) ((x) * (x) * (x))
+#define CUB(x) ((x) * SQR(x))
+#define QAD(x) (SQR(SQR(x)))
static void wave_import_exact_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const imin[3], int const imax[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
@@ -28,8 +28,6 @@ static void wave_import_exact_Body(cGH const * restrict const cctkGH, int const
DECLARE_CCTK_PARAMETERS;
- /* Declare finite differencing variables */
-
/* Include user-supplied include files */
/* Initialise finite differencing variables */
@@ -57,25 +55,24 @@ static void wave_import_exact_Body(cGH const * restrict const cctkGH, int const
CCTK_REAL const hdzi = 0.5 * dzi;
/* Initialize predefined quantities */
- CCTK_REAL const p1o1 = 1;
CCTK_REAL const p1o12dx = 0.0833333333333333333333333333333*INV(dx);
CCTK_REAL const p1o12dy = 0.0833333333333333333333333333333*INV(dy);
CCTK_REAL const p1o12dz = 0.0833333333333333333333333333333*INV(dz);
- CCTK_REAL const p1o144dxdy = 0.00694444444444444444444444444444*INV(dx)*INV(dy);
- CCTK_REAL const p1o144dxdz = 0.00694444444444444444444444444444*INV(dx)*INV(dz);
- CCTK_REAL const p1o144dydz = 0.00694444444444444444444444444444*INV(dy)*INV(dz);
+ CCTK_REAL const p1o144dxdy = 0.00694444444444444444444444444444*INV(dx*dy);
+ CCTK_REAL const p1o144dxdz = 0.00694444444444444444444444444444*INV(dx*dz);
+ CCTK_REAL const p1o144dydz = 0.00694444444444444444444444444444*INV(dy*dz);
CCTK_REAL const p1o2dx = 0.5*INV(dx);
CCTK_REAL const p1o2dy = 0.5*INV(dy);
CCTK_REAL const p1o2dz = 0.5*INV(dz);
CCTK_REAL const p1o4dx2 = 0.25*INV(SQR(dx));
- CCTK_REAL const p1o4dxdy = 0.25*INV(dx)*INV(dy);
- CCTK_REAL const p1o4dxdz = 0.25*INV(dx)*INV(dz);
+ CCTK_REAL const p1o4dxdy = 0.25*INV(dx*dy);
+ CCTK_REAL const p1o4dxdz = 0.25*INV(dx*dz);
CCTK_REAL const p1o4dy2 = 0.25*INV(SQR(dy));
- CCTK_REAL const p1o4dydz = 0.25*INV(dy)*INV(dz);
+ CCTK_REAL const p1o4dydz = 0.25*INV(dy*dz);
CCTK_REAL const p1o4dz2 = 0.25*INV(SQR(dz));
CCTK_REAL const p1odx = INV(dx);
CCTK_REAL const p1odx2 = INV(SQR(dx));
- CCTK_REAL const p1odxdydz = INV(dx)*INV(dy)*INV(dz);
+ CCTK_REAL const p1odxdydz = INV(dx*dy*dz);
CCTK_REAL const p1ody = INV(dy);
CCTK_REAL const p1ody2 = INV(SQR(dy));
CCTK_REAL const p1odz = INV(dz);
@@ -97,9 +94,9 @@ static void wave_import_exact_Body(cGH const * restrict const cctkGH, int const
/* Loop over the grid points */
#pragma omp parallel
- CCTK_LOOP3 (wave_import_exact,
+ CCTK_LOOP3(wave_import_exact,
i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2],
- cctk_lsh[0],cctk_lsh[1],cctk_lsh[2])
+ cctk_ash[0],cctk_ash[1],cctk_ash[2])
{
ptrdiff_t const index = di*i + dj*j + dk*k;
@@ -131,7 +128,7 @@ static void wave_import_exact_Body(cGH const * restrict const cctkGH, int const
phi[index] = phiL;
pi[index] = piL;
}
- CCTK_ENDLOOP3 (wave_import_exact);
+ CCTK_ENDLOOP3(wave_import_exact);
}
extern "C" void wave_import_exact(CCTK_ARGUMENTS)
@@ -150,7 +147,9 @@ extern "C" void wave_import_exact(CCTK_ARGUMENTS)
return;
}
- const char *groups[] = {"Wave::evolved","Wave::exact"};
+ const char *const groups[] = {
+ "Wave::evolved",
+ "Wave::exact"};
GenericFD_AssertGroupStorage(cctkGH, "wave_import_exact", 2, groups);
switch(fdOrder)
@@ -162,7 +161,7 @@ extern "C" void wave_import_exact(CCTK_ARGUMENTS)
break;
}
- GenericFD_LoopOverEverything(cctkGH, &wave_import_exact_Body);
+ GenericFD_LoopOverEverything(cctkGH, wave_import_exact_Body);
if (verbose > 1)
{
diff --git a/Examples/WaveCaKernel/cakernel.ccl b/Examples/WaveCaKernel/cakernel.ccl
index 3df4bbb..f756f91 100644
--- a/Examples/WaveCaKernel/cakernel.ccl
+++ b/Examples/WaveCaKernel/cakernel.ccl
@@ -1,90 +1,29 @@
CCTK_CUDA_KERNEL calc_rhs_2 TYPE=gpu_cuda/3dblock TILE="8,8,8" SHARECODE=yes STENCIL="1,1,1,1,1,1"
{
- CCTK_CUDA_KERNEL_VARIABLE cached=no intent=in
- {
- phi
- }
- "phi"
-
- CCTK_CUDA_KERNEL_VARIABLE cached=no intent=out
- {
- phirhs
- }
- "phirhs"
-
- CCTK_CUDA_KERNEL_VARIABLE cached=no intent=in
- {
- pi
- }
- "pi"
-
- CCTK_CUDA_KERNEL_VARIABLE cached=no intent=out
- {
- pirhs
- }
- "pirhs"
+ CCTK_CUDA_KERNEL_VARIABLE cached=no intent=in {phi} "phi"
+ CCTK_CUDA_KERNEL_VARIABLE cached=no intent=out {phirhs} "phirhs"
+ CCTK_CUDA_KERNEL_VARIABLE cached=no intent=in {pi} "pi"
+ CCTK_CUDA_KERNEL_VARIABLE cached=no intent=out {pirhs} "pirhs"
}
CCTK_CUDA_KERNEL calc_rhs_4 TYPE=gpu_cuda/3dblock TILE="8,8,8" SHARECODE=yes STENCIL="2,2,2,2,2,2"
{
- CCTK_CUDA_KERNEL_VARIABLE cached=no intent=in
- {
- phi
- }
- "phi"
-
- CCTK_CUDA_KERNEL_VARIABLE cached=no intent=out
- {
- phirhs
- }
- "phirhs"
-
- CCTK_CUDA_KERNEL_VARIABLE cached=no intent=in
- {
- pi
- }
- "pi"
-
- CCTK_CUDA_KERNEL_VARIABLE cached=no intent=out
- {
- pirhs
- }
- "pirhs"
+ CCTK_CUDA_KERNEL_VARIABLE cached=no intent=in {phi} "phi"
+ CCTK_CUDA_KERNEL_VARIABLE cached=no intent=out {phirhs} "phirhs"
+ CCTK_CUDA_KERNEL_VARIABLE cached=no intent=in {pi} "pi"
+ CCTK_CUDA_KERNEL_VARIABLE cached=no intent=out {pirhs} "pirhs"
}
CCTK_CUDA_KERNEL calc_bound_rhs TYPE=gpu_cuda/boundary_s TILE="8,8,8" SHARECODE=yes
{
- CCTK_CUDA_KERNEL_VARIABLE cached=no intent=out
- {
- phirhs
- }
- "phirhs"
-
- CCTK_CUDA_KERNEL_VARIABLE cached=no intent=out
- {
- pirhs
- }
- "pirhs"
-
- CCTK_CUDA_KERNEL_VARIABLE cached=no intent=in
- {
- xCopy
- }
- "xCopy"
+ CCTK_CUDA_KERNEL_VARIABLE cached=no intent=out {phirhs} "phirhs"
+ CCTK_CUDA_KERNEL_VARIABLE cached=no intent=out {pirhs} "pirhs"
+ CCTK_CUDA_KERNEL_VARIABLE cached=no intent=in {xCopy} "xCopy"
}
CCTK_CUDA_KERNEL copy_to_device TYPE=gpu_cuda/3dblock TILE="8,8,8" SHARECODE=yes STENCIL="0,0,0,0,0,0"
{
- CCTK_CUDA_KERNEL_VARIABLE cached=no intent=inout
- {
- phi
- }
- "phi"
-
- CCTK_CUDA_KERNEL_VARIABLE cached=no intent=inout
- {
- pi
- }
- "pi"
+ CCTK_CUDA_KERNEL_VARIABLE cached=no intent=inout {phi} "phi"
+ CCTK_CUDA_KERNEL_VARIABLE cached=no intent=inout {pi} "pi"
}
diff --git a/Examples/WaveCaKernel/configuration.ccl b/Examples/WaveCaKernel/configuration.ccl
index 46dbde5..6d94724 100644
--- a/Examples/WaveCaKernel/configuration.ccl
+++ b/Examples/WaveCaKernel/configuration.ccl
@@ -4,4 +4,4 @@ REQUIRES GenericFD
OPTIONAL LoopControl
{
}
-REQUIRES CUDA \ No newline at end of file
+REQUIRES CUDA MPI
diff --git a/Examples/WaveCaKernel/interface.ccl b/Examples/WaveCaKernel/interface.ccl
index 11c1416..1d883f5 100644
--- a/Examples/WaveCaKernel/interface.ccl
+++ b/Examples/WaveCaKernel/interface.ccl
@@ -2,13 +2,14 @@
implements: WaveCaKernel
-inherits: Grid GenericFD Boundary
+inherits: Grid GenericFD Boundary Accelerator
USES INCLUDE: GenericFD.h
USES INCLUDE: Symmetry.h
USES INCLUDE: sbp_calc_coeffs.h
+USES INCLUDE: CaCUDALib_driver_support.h
USES INCLUDE: Boundary.h
USES INCLUDE: loopcontrol.h
diff --git a/Examples/WaveCaKernel/schedule.ccl b/Examples/WaveCaKernel/schedule.ccl
index 74879b1..9dea53b 100644
--- a/Examples/WaveCaKernel/schedule.ccl
+++ b/Examples/WaveCaKernel/schedule.ccl
@@ -57,100 +57,100 @@ schedule WaveCaKernel_RegisterSymmetries in SymmetryRegister
schedule initial_gaussian AT INITIAL
{
LANG: C
- READS: grid::coordinates
- WRITES: WaveCaKernel::phi_g
- WRITES: WaveCaKernel::pi_g
- WRITES: WaveCaKernel::xCopy_g
+ READS: grid::x
+ WRITES: WaveCaKernel::phi
+ WRITES: WaveCaKernel::pi
+ WRITES: WaveCaKernel::xCopy
} "initial_gaussian"
if (fdOrder == 2)
{
- schedule CAKERNEL_Launch_calc_rhs_2 in MoL_CalcRHS
+ schedule CAKERNEL_Launch_calc_rhs_2 as calc_rhs_2 in MoL_CalcRHS
{
LANG: C
TAGS: Device=1
- READS: WaveCaKernel::phi_g
- READS: WaveCaKernel::pi_g
- WRITES: WaveCaKernel::phi_grhs
- WRITES: WaveCaKernel::pi_grhs
+ READS: WaveCaKernel::phi
+ READS: WaveCaKernel::pi
+ WRITES: WaveCaKernel::phirhs
+ WRITES: WaveCaKernel::pirhs
} "calc_rhs_2"
}
if (fdOrder == 2)
{
- schedule CAKERNEL_Launch_calc_rhs_2 at ANALYSIS
+ schedule CAKERNEL_Launch_calc_rhs_2 as calc_rhs_2 at ANALYSIS
{
LANG: C
SYNC: phi_grhs
SYNC: pi_grhs
TAGS: Device=1
- READS: WaveCaKernel::phi_g
- READS: WaveCaKernel::pi_g
- WRITES: WaveCaKernel::phi_grhs
- WRITES: WaveCaKernel::pi_grhs
+ READS: WaveCaKernel::phi
+ READS: WaveCaKernel::pi
+ WRITES: WaveCaKernel::phirhs
+ WRITES: WaveCaKernel::pirhs
} "calc_rhs_2"
}
if (fdOrder == 4)
{
- schedule CAKERNEL_Launch_calc_rhs_4 in MoL_CalcRHS
+ schedule CAKERNEL_Launch_calc_rhs_4 as calc_rhs_4 in MoL_CalcRHS
{
LANG: C
TAGS: Device=1
- READS: WaveCaKernel::phi_g
- READS: WaveCaKernel::pi_g
- WRITES: WaveCaKernel::phi_grhs
- WRITES: WaveCaKernel::pi_grhs
+ READS: WaveCaKernel::phi
+ READS: WaveCaKernel::pi
+ WRITES: WaveCaKernel::phirhs
+ WRITES: WaveCaKernel::pirhs
} "calc_rhs_4"
}
if (fdOrder == 4)
{
- schedule CAKERNEL_Launch_calc_rhs_4 at ANALYSIS
+ schedule CAKERNEL_Launch_calc_rhs_4 as calc_rhs_4 at ANALYSIS
{
LANG: C
SYNC: phi_grhs
SYNC: pi_grhs
TAGS: Device=1
- READS: WaveCaKernel::phi_g
- READS: WaveCaKernel::pi_g
- WRITES: WaveCaKernel::phi_grhs
- WRITES: WaveCaKernel::pi_grhs
+ READS: WaveCaKernel::phi
+ READS: WaveCaKernel::pi
+ WRITES: WaveCaKernel::phirhs
+ WRITES: WaveCaKernel::pirhs
} "calc_rhs_4"
}
-schedule CAKERNEL_Launch_calc_bound_rhs in MoL_RHSBoundaries
+schedule CAKERNEL_Launch_calc_bound_rhs as calc_bound_rhs in MoL_RHSBoundaries
{
LANG: C
TAGS: Device=1
- READS: WaveCaKernel::xCopy_g
- WRITES: WaveCaKernel::phi_grhs
- WRITES: WaveCaKernel::pi_grhs
+ READS: WaveCaKernel::xCopy
+ WRITES: WaveCaKernel::phirhs
+ WRITES: WaveCaKernel::pirhs
} "calc_bound_rhs"
-schedule CAKERNEL_Launch_calc_bound_rhs at ANALYSIS
+schedule CAKERNEL_Launch_calc_bound_rhs as calc_bound_rhs at ANALYSIS
{
LANG: C
SYNC: phi_grhs
SYNC: pi_grhs
TAGS: Device=1
- READS: WaveCaKernel::xCopy_g
- WRITES: WaveCaKernel::phi_grhs
- WRITES: WaveCaKernel::pi_grhs
+ READS: WaveCaKernel::xCopy
+ WRITES: WaveCaKernel::phirhs
+ WRITES: WaveCaKernel::pirhs
} "calc_bound_rhs"
-schedule CAKERNEL_Launch_copy_to_device at INITIAL after initial_gaussian
+schedule CAKERNEL_Launch_copy_to_device as copy_to_device at INITIAL after initial_gaussian
{
LANG: C
TAGS: Device=1
- READS: WaveCaKernel::phi_g
- READS: WaveCaKernel::pi_g
- WRITES: WaveCaKernel::phi_g
- WRITES: WaveCaKernel::pi_g
+ READS: WaveCaKernel::phi
+ READS: WaveCaKernel::pi
+ WRITES: WaveCaKernel::phi
+ WRITES: WaveCaKernel::pi
} "copy_to_device"
schedule WaveCaKernel_SelectBoundConds in MoL_PostStep
@@ -173,6 +173,12 @@ schedule WaveCaKernel_RegisterVars in MoL_Register
OPTIONS: meta
} "Register Variables for MoL"
+schedule WaveCaKernel_Init in CCTK_BASEGRID after Accelerator_SetDevice
+{
+ LANG: C
+ OPTIONS: local
+} "Initialize CUDA Device"
+
schedule group ApplyBCs as WaveCaKernel_ApplyBCs in MoL_PostStep after WaveCaKernel_SelectBoundConds
{
# no language specified
diff --git a/Examples/WaveCaKernel/src/CaKernel__calc_bound_rhs.code b/Examples/WaveCaKernel/src/CaKernel__calc_bound_rhs.code
index 0942be7..013ab6c 100644
--- a/Examples/WaveCaKernel/src/CaKernel__calc_bound_rhs.code
+++ b/Examples/WaveCaKernel/src/CaKernel__calc_bound_rhs.code
@@ -9,10 +9,10 @@
/* Define macros used in calculations */
#define INITVALUE (42)
-#define QAD(x) (SQR(SQR(x)))
-#define INV(x) ((1.0) / (x))
+#define INV(x) ((CCTK_REAL)1.0 / (x))
#define SQR(x) ((x) * (x))
-#define CUB(x) ((x) * (x) * (x))
+#define CUB(x) ((x) * SQR(x))
+#define QAD(x) (SQR(SQR(x)))
CAKERNEL_calc_bound_rhs_Begin
diff --git a/Examples/WaveCaKernel/src/CaKernel__calc_rhs_2.code b/Examples/WaveCaKernel/src/CaKernel__calc_rhs_2.code
index b85aad1..085e274 100644
--- a/Examples/WaveCaKernel/src/CaKernel__calc_rhs_2.code
+++ b/Examples/WaveCaKernel/src/CaKernel__calc_rhs_2.code
@@ -9,10 +9,10 @@
/* Define macros used in calculations */
#define INITVALUE (42)
-#define QAD(x) (SQR(SQR(x)))
-#define INV(x) ((1.0) / (x))
+#define INV(x) ((CCTK_REAL)1.0 / (x))
#define SQR(x) ((x) * (x))
-#define CUB(x) ((x) * (x) * (x))
+#define CUB(x) ((x) * SQR(x))
+#define QAD(x) (SQR(SQR(x)))
CAKERNEL_calc_rhs_2_Begin
diff --git a/Examples/WaveCaKernel/src/CaKernel__calc_rhs_4.code b/Examples/WaveCaKernel/src/CaKernel__calc_rhs_4.code
index a3f9bbc..c94216d 100644
--- a/Examples/WaveCaKernel/src/CaKernel__calc_rhs_4.code
+++ b/Examples/WaveCaKernel/src/CaKernel__calc_rhs_4.code
@@ -9,10 +9,10 @@
/* Define macros used in calculations */
#define INITVALUE (42)
-#define QAD(x) (SQR(SQR(x)))
-#define INV(x) ((1.0) / (x))
+#define INV(x) ((CCTK_REAL)1.0 / (x))
#define SQR(x) ((x) * (x))
-#define CUB(x) ((x) * (x) * (x))
+#define CUB(x) ((x) * SQR(x))
+#define QAD(x) (SQR(SQR(x)))
CAKERNEL_calc_rhs_4_Begin
diff --git a/Examples/WaveCaKernel/src/CaKernel__copy_to_device.code b/Examples/WaveCaKernel/src/CaKernel__copy_to_device.code
index 76cdc9a..40f0db4 100644
--- a/Examples/WaveCaKernel/src/CaKernel__copy_to_device.code
+++ b/Examples/WaveCaKernel/src/CaKernel__copy_to_device.code
@@ -9,10 +9,10 @@
/* Define macros used in calculations */
#define INITVALUE (42)
-#define QAD(x) (SQR(SQR(x)))
-#define INV(x) ((1.0) / (x))
+#define INV(x) ((CCTK_REAL)1.0 / (x))
#define SQR(x) ((x) * (x))
-#define CUB(x) ((x) * (x) * (x))
+#define CUB(x) ((x) * SQR(x))
+#define QAD(x) (SQR(SQR(x)))
CAKERNEL_copy_to_device_Begin
diff --git a/Examples/WaveCaKernel/src/initial_gaussian.cc b/Examples/WaveCaKernel/src/initial_gaussian.cc
index ad73b93..28d41e0 100644
--- a/Examples/WaveCaKernel/src/initial_gaussian.cc
+++ b/Examples/WaveCaKernel/src/initial_gaussian.cc
@@ -17,10 +17,10 @@
/* Define macros used in calculations */
#define INITVALUE (42)
-#define QAD(x) (SQR(SQR(x)))
-#define INV(x) ((1.0) / (x))
+#define INV(x) ((CCTK_REAL)1.0 / (x))
#define SQR(x) ((x) * (x))
-#define CUB(x) ((x) * (x) * (x))
+#define CUB(x) ((x) * SQR(x))
+#define QAD(x) (SQR(SQR(x)))
static void initial_gaussian_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const imin[3], int const imax[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
@@ -86,7 +86,7 @@ static void initial_gaussian_Body(cGH const * restrict const cctkGH, int const d
#pragma omp parallel
CCTK_LOOP3(initial_gaussian,
i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2],
- cctk_lsh[0],cctk_lsh[1],cctk_lsh[2])
+ cctk_ash[0],cctk_ash[1],cctk_ash[2])
{
ptrdiff_t const index = di*i + dj*j + dk*k;
diff --git a/Examples/WaveCaKernel/test b/Examples/WaveCaKernel/test
index 35022b1..7137e86 120000
--- a/Examples/WaveCaKernel/test
+++ b/Examples/WaveCaKernel/test
@@ -1 +1 @@
-../tests/WaveCaKernel/test \ No newline at end of file
+../tests/WaveCaKernel \ No newline at end of file
diff --git a/Examples/WaveHost/schedule.ccl b/Examples/WaveHost/schedule.ccl
index d57c66f..b50b3de 100644
--- a/Examples/WaveHost/schedule.ccl
+++ b/Examples/WaveHost/schedule.ccl
@@ -57,10 +57,10 @@ schedule WaveHost_RegisterSymmetries in SymmetryRegister
schedule initial_gaussian AT INITIAL
{
LANG: C
- READS: grid::coordinates
- WRITES: WaveHost::phi_g
- WRITES: WaveHost::pi_g
- WRITES: WaveHost::xCopy_g
+ READS: grid::x
+ WRITES: WaveHost::phi
+ WRITES: WaveHost::pi
+ WRITES: WaveHost::xCopy
} "initial_gaussian"
@@ -69,10 +69,10 @@ if (fdOrder == 2)
schedule calc_rhs_2 in MoL_CalcRHS
{
LANG: C
- READS: WaveHost::phi_g
- READS: WaveHost::pi_g
- WRITES: WaveHost::phi_grhs
- WRITES: WaveHost::pi_grhs
+ READS: WaveHost::phi
+ READS: WaveHost::pi
+ WRITES: WaveHost::phirhs
+ WRITES: WaveHost::pirhs
} "calc_rhs_2"
}
@@ -84,10 +84,10 @@ if (fdOrder == 2)
LANG: C
SYNC: phi_grhs
SYNC: pi_grhs
- READS: WaveHost::phi_g
- READS: WaveHost::pi_g
- WRITES: WaveHost::phi_grhs
- WRITES: WaveHost::pi_grhs
+ READS: WaveHost::phi
+ READS: WaveHost::pi
+ WRITES: WaveHost::phirhs
+ WRITES: WaveHost::pirhs
} "calc_rhs_2"
}
@@ -97,10 +97,10 @@ if (fdOrder == 4)
schedule calc_rhs_4 in MoL_CalcRHS
{
LANG: C
- READS: WaveHost::phi_g
- READS: WaveHost::pi_g
- WRITES: WaveHost::phi_grhs
- WRITES: WaveHost::pi_grhs
+ READS: WaveHost::phi
+ READS: WaveHost::pi
+ WRITES: WaveHost::phirhs
+ WRITES: WaveHost::pirhs
} "calc_rhs_4"
}
@@ -112,19 +112,19 @@ if (fdOrder == 4)
LANG: C
SYNC: phi_grhs
SYNC: pi_grhs
- READS: WaveHost::phi_g
- READS: WaveHost::pi_g
- WRITES: WaveHost::phi_grhs
- WRITES: WaveHost::pi_grhs
+ READS: WaveHost::phi
+ READS: WaveHost::pi
+ WRITES: WaveHost::phirhs
+ WRITES: WaveHost::pirhs
} "calc_rhs_4"
}
schedule calc_bound_rhs in MoL_RHSBoundaries
{
LANG: C
- READS: WaveHost::xCopy_g
- WRITES: WaveHost::phi_grhs
- WRITES: WaveHost::pi_grhs
+ READS: WaveHost::xCopy
+ WRITES: WaveHost::phirhs
+ WRITES: WaveHost::pirhs
} "calc_bound_rhs"
schedule calc_bound_rhs at ANALYSIS
@@ -132,9 +132,9 @@ schedule calc_bound_rhs at ANALYSIS
LANG: C
SYNC: phi_grhs
SYNC: pi_grhs
- READS: WaveHost::xCopy_g
- WRITES: WaveHost::phi_grhs
- WRITES: WaveHost::pi_grhs
+ READS: WaveHost::xCopy
+ WRITES: WaveHost::phirhs
+ WRITES: WaveHost::pirhs
} "calc_bound_rhs"
schedule WaveHost_SelectBoundConds in MoL_PostStep
diff --git a/Examples/WaveHost/src/calc_bound_rhs.cc b/Examples/WaveHost/src/calc_bound_rhs.cc
index 0fe2b38..7c58500 100644
--- a/Examples/WaveHost/src/calc_bound_rhs.cc
+++ b/Examples/WaveHost/src/calc_bound_rhs.cc
@@ -17,10 +17,10 @@
/* Define macros used in calculations */
#define INITVALUE (42)
-#define QAD(x) (SQR(SQR(x)))
-#define INV(x) ((1.0) / (x))
+#define INV(x) ((CCTK_REAL)1.0 / (x))
#define SQR(x) ((x) * (x))
-#define CUB(x) ((x) * (x) * (x))
+#define CUB(x) ((x) * SQR(x))
+#define QAD(x) (SQR(SQR(x)))
extern "C" void calc_bound_rhs_SelectBCs(CCTK_ARGUMENTS)
{
@@ -101,7 +101,7 @@ static void calc_bound_rhs_Body(cGH const * restrict const cctkGH, int const dir
#pragma omp parallel
CCTK_LOOP3(calc_bound_rhs,
i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2],
- cctk_lsh[0],cctk_lsh[1],cctk_lsh[2])
+ cctk_ash[0],cctk_ash[1],cctk_ash[2])
{
ptrdiff_t const index = di*i + dj*j + dk*k;
diff --git a/Examples/WaveHost/src/calc_rhs_2.cc b/Examples/WaveHost/src/calc_rhs_2.cc
index d93a9be..0ac68e0 100644
--- a/Examples/WaveHost/src/calc_rhs_2.cc
+++ b/Examples/WaveHost/src/calc_rhs_2.cc
@@ -17,10 +17,10 @@
/* Define macros used in calculations */
#define INITVALUE (42)
-#define QAD(x) (SQR(SQR(x)))
-#define INV(x) ((1.0) / (x))
+#define INV(x) ((CCTK_REAL)1.0 / (x))
#define SQR(x) ((x) * (x))
-#define CUB(x) ((x) * (x) * (x))
+#define CUB(x) ((x) * SQR(x))
+#define QAD(x) (SQR(SQR(x)))
extern "C" void calc_rhs_2_SelectBCs(CCTK_ARGUMENTS)
{
@@ -101,7 +101,7 @@ static void calc_rhs_2_Body(cGH const * restrict const cctkGH, int const dir, in
#pragma omp parallel
CCTK_LOOP3(calc_rhs_2,
i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2],
- cctk_lsh[0],cctk_lsh[1],cctk_lsh[2])
+ cctk_ash[0],cctk_ash[1],cctk_ash[2])
{
ptrdiff_t const index = di*i + dj*j + dk*k;
diff --git a/Examples/WaveHost/src/calc_rhs_4.cc b/Examples/WaveHost/src/calc_rhs_4.cc
index 2f91d7e..e4e607b 100644
--- a/Examples/WaveHost/src/calc_rhs_4.cc
+++ b/Examples/WaveHost/src/calc_rhs_4.cc
@@ -17,10 +17,10 @@
/* Define macros used in calculations */
#define INITVALUE (42)
-#define QAD(x) (SQR(SQR(x)))
-#define INV(x) ((1.0) / (x))
+#define INV(x) ((CCTK_REAL)1.0 / (x))
#define SQR(x) ((x) * (x))
-#define CUB(x) ((x) * (x) * (x))
+#define CUB(x) ((x) * SQR(x))
+#define QAD(x) (SQR(SQR(x)))
extern "C" void calc_rhs_4_SelectBCs(CCTK_ARGUMENTS)
{
@@ -101,7 +101,7 @@ static void calc_rhs_4_Body(cGH const * restrict const cctkGH, int const dir, in
#pragma omp parallel
CCTK_LOOP3(calc_rhs_4,
i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2],
- cctk_lsh[0],cctk_lsh[1],cctk_lsh[2])
+ cctk_ash[0],cctk_ash[1],cctk_ash[2])
{
ptrdiff_t const index = di*i + dj*j + dk*k;
diff --git a/Examples/WaveHost/src/initial_gaussian.cc b/Examples/WaveHost/src/initial_gaussian.cc
index 99fd6d1..667c889 100644
--- a/Examples/WaveHost/src/initial_gaussian.cc
+++ b/Examples/WaveHost/src/initial_gaussian.cc
@@ -17,10 +17,10 @@
/* Define macros used in calculations */
#define INITVALUE (42)
-#define QAD(x) (SQR(SQR(x)))
-#define INV(x) ((1.0) / (x))
+#define INV(x) ((CCTK_REAL)1.0 / (x))
#define SQR(x) ((x) * (x))
-#define CUB(x) ((x) * (x) * (x))
+#define CUB(x) ((x) * SQR(x))
+#define QAD(x) (SQR(SQR(x)))
static void initial_gaussian_Body(cGH const * restrict const cctkGH, int const dir, int const face, CCTK_REAL const normal[3], CCTK_REAL const tangentA[3], CCTK_REAL const tangentB[3], int const imin[3], int const imax[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[])
{
@@ -86,7 +86,7 @@ static void initial_gaussian_Body(cGH const * restrict const cctkGH, int const d
#pragma omp parallel
CCTK_LOOP3(initial_gaussian,
i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2],
- cctk_lsh[0],cctk_lsh[1],cctk_lsh[2])
+ cctk_ash[0],cctk_ash[1],cctk_ash[2])
{
ptrdiff_t const index = di*i + dj*j + dk*k;