diff options
Diffstat (limited to 'ML_ADMConstraints_MP/src/ML_ADMConstraints_MP.cc')
-rw-r--r-- | ML_ADMConstraints_MP/src/ML_ADMConstraints_MP.cc | 49 |
1 files changed, 32 insertions, 17 deletions
diff --git a/ML_ADMConstraints_MP/src/ML_ADMConstraints_MP.cc b/ML_ADMConstraints_MP/src/ML_ADMConstraints_MP.cc index 7abd09c..3dab86d 100644 --- a/ML_ADMConstraints_MP/src/ML_ADMConstraints_MP.cc +++ b/ML_ADMConstraints_MP/src/ML_ADMConstraints_MP.cc @@ -36,7 +36,7 @@ extern "C" void ML_ADMConstraints_MP_SelectBCs(CCTK_ARGUMENTS) return; } -static void ML_ADMConstraints_MP_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 min[3], int const max[3], int const n_subblock_gfs, CCTK_REAL * restrict const subblock_gfs[]) +static void ML_ADMConstraints_MP_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; @@ -44,21 +44,6 @@ static void ML_ADMConstraints_MP_Body(cGH const * restrict const cctkGH, int con /* Declare finite differencing variables */ - if (verbose > 1) - { - CCTK_VInfo(CCTK_THORNSTRING,"Entering ML_ADMConstraints_MP_Body"); - } - - if (cctk_iteration % ML_ADMConstraints_MP_calc_every != ML_ADMConstraints_MP_calc_offset) - { - return; - } - - const char *groups[] = {"ADMBase::curv","ADMBase::lapse","ADMBase::metric","ADMBase::shift","ML_ADMConstraints_MP::ML_Ham","ML_ADMConstraints_MP::ML_mom"}; - GenericFD_AssertGroupStorage(cctkGH, "ML_ADMConstraints_MP", 6, groups); - - GenericFD_EnsureStencilFits(cctkGH, "ML_ADMConstraints_MP", 2, 2, 2); - /* Include user-supplied include files */ /* Initialise finite differencing variables */ @@ -72,6 +57,7 @@ static void ML_ADMConstraints_MP_Body(cGH const * restrict const cctkGH, int con CCTK_REAL const dy = ToReal(CCTK_DELTA_SPACE(1)); CCTK_REAL const dz = ToReal(CCTK_DELTA_SPACE(2)); CCTK_REAL const dt = ToReal(CCTK_DELTA_TIME); + CCTK_REAL const t = ToReal(cctk_time); CCTK_REAL const dxi = INV(dx); CCTK_REAL const dyi = INV(dy); CCTK_REAL const dzi = INV(dz); @@ -140,10 +126,18 @@ static void ML_ADMConstraints_MP_Body(cGH const * restrict const cctkGH, int con CCTK_REAL const *restrict const dJ323 = use_jacobian ? jacobian_derivative_ptrs[16] : 0; CCTK_REAL const *restrict const dJ333 = use_jacobian ? jacobian_derivative_ptrs[17] : 0; + /* Assign local copies of arrays functions */ + + + + /* Calculate temporaries and arrays functions */ + + /* Copy local copies back to grid functions */ + /* Loop over the grid points */ #pragma omp parallel LC_LOOP3 (ML_ADMConstraints_MP, - i,j,k, min[0],min[1],min[2], max[0],max[1],max[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]) { ptrdiff_t const index = di*i + dj*j + dk*k; @@ -1238,5 +1232,26 @@ extern "C" void ML_ADMConstraints_MP(CCTK_ARGUMENTS) DECLARE_CCTK_ARGUMENTS; DECLARE_CCTK_PARAMETERS; + + if (verbose > 1) + { + CCTK_VInfo(CCTK_THORNSTRING,"Entering ML_ADMConstraints_MP_Body"); + } + + if (cctk_iteration % ML_ADMConstraints_MP_calc_every != ML_ADMConstraints_MP_calc_offset) + { + return; + } + + const char *groups[] = {"ADMBase::curv","ADMBase::lapse","ADMBase::metric","ADMBase::shift","ML_ADMConstraints_MP::ML_Ham","ML_ADMConstraints_MP::ML_mom"}; + GenericFD_AssertGroupStorage(cctkGH, "ML_ADMConstraints_MP", 6, groups); + + GenericFD_EnsureStencilFits(cctkGH, "ML_ADMConstraints_MP", 2, 2, 2); + GenericFD_LoopOverInterior(cctkGH, &ML_ADMConstraints_MP_Body); + + if (verbose > 1) + { + CCTK_VInfo(CCTK_THORNSTRING,"Leaving ML_ADMConstraints_MP_Body"); + } } |