aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErik Schnetter <schnetter@gmail.com>2011-10-02 22:08:08 -0400
committerErik Schnetter <schnetter@gmail.com>2011-10-02 22:08:08 -0400
commit46d48e71bde1f46188faa75fb967be9cf91dcb54 (patch)
treedcbf4aa9b218abcea5cc59835f0b1a7eca062eb0
parentf981a6378255f78255c6575adc44afc992c19c54 (diff)
Regenerate code
-rw-r--r--ML_BSSN/src/ML_BSSN_InitGamma.cc28
-rw-r--r--ML_BSSN_MP/src/ML_BSSN_MP_InitGamma.cc28
-rw-r--r--ML_BSSN_MP_O8/src/ML_BSSN_MP_O8_InitGamma.cc28
-rw-r--r--ML_BSSN_O2/src/ML_BSSN_O2_InitGamma.cc28
-rw-r--r--ML_BSSN_O8/src/ML_BSSN_O8_InitGamma.cc28
-rw-r--r--ML_BSSN_UPW/src/ML_BSSN_UPW_InitGamma.cc28
6 files changed, 156 insertions, 12 deletions
diff --git a/ML_BSSN/src/ML_BSSN_InitGamma.cc b/ML_BSSN/src/ML_BSSN_InitGamma.cc
index 52fd007..07d81a0 100644
--- a/ML_BSSN/src/ML_BSSN_InitGamma.cc
+++ b/ML_BSSN/src/ML_BSSN_InitGamma.cc
@@ -40,8 +40,8 @@ static void ML_BSSN_InitGamma_Body(cGH const * restrict const cctkGH, int const
return;
}
- const char *groups[] = {"ML_BSSN::ML_Gamma"};
- GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_InitGamma", 1, groups);
+ const char *groups[] = {"ML_BSSN::ML_dtlapse","ML_BSSN::ML_dtshift","ML_BSSN::ML_Gamma"};
+ GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_InitGamma", 3, groups);
switch(fdOrder)
{
@@ -248,12 +248,24 @@ static void ML_BSSN_InitGamma_Body(cGH const * restrict const cctkGH, int const
CCTK_REAL_VEC Xt3L = ToReal(0);
+ CCTK_REAL_VEC AL = ToReal(0);
+
+ CCTK_REAL_VEC B1L = ToReal(0);
+
+ CCTK_REAL_VEC B2L = ToReal(0);
+
+ CCTK_REAL_VEC B3L = ToReal(0);
+
/* If necessary, store only partial vectors after the first iteration */
if (CCTK_REAL_VEC_SIZE > 2 && CCTK_BUILTIN_EXPECT(i < lc_imin && i+CCTK_REAL_VEC_SIZE > lc_imax, 0))
{
ptrdiff_t const elt_count_lo = lc_imin-i;
ptrdiff_t const elt_count_hi = lc_imax-i;
+ vec_store_nta_partial_mid(A[index],AL,elt_count_lo,elt_count_hi);
+ vec_store_nta_partial_mid(B1[index],B1L,elt_count_lo,elt_count_hi);
+ vec_store_nta_partial_mid(B2[index],B2L,elt_count_lo,elt_count_hi);
+ vec_store_nta_partial_mid(B3[index],B3L,elt_count_lo,elt_count_hi);
vec_store_nta_partial_mid(Xt1[index],Xt1L,elt_count_lo,elt_count_hi);
vec_store_nta_partial_mid(Xt2[index],Xt2L,elt_count_lo,elt_count_hi);
vec_store_nta_partial_mid(Xt3[index],Xt3L,elt_count_lo,elt_count_hi);
@@ -265,6 +277,10 @@ static void ML_BSSN_InitGamma_Body(cGH const * restrict const cctkGH, int const
if (CCTK_REAL_VEC_SIZE > 1 && CCTK_BUILTIN_EXPECT(i < lc_imin, 0))
{
ptrdiff_t const elt_count = lc_imin-i;
+ vec_store_nta_partial_hi(A[index],AL,elt_count);
+ vec_store_nta_partial_hi(B1[index],B1L,elt_count);
+ vec_store_nta_partial_hi(B2[index],B2L,elt_count);
+ vec_store_nta_partial_hi(B3[index],B3L,elt_count);
vec_store_nta_partial_hi(Xt1[index],Xt1L,elt_count);
vec_store_nta_partial_hi(Xt2[index],Xt2L,elt_count);
vec_store_nta_partial_hi(Xt3[index],Xt3L,elt_count);
@@ -276,6 +292,10 @@ static void ML_BSSN_InitGamma_Body(cGH const * restrict const cctkGH, int const
if (CCTK_REAL_VEC_SIZE > 1 && CCTK_BUILTIN_EXPECT(i+CCTK_REAL_VEC_SIZE > lc_imax, 0))
{
ptrdiff_t const elt_count = lc_imax-i;
+ vec_store_nta_partial_lo(A[index],AL,elt_count);
+ vec_store_nta_partial_lo(B1[index],B1L,elt_count);
+ vec_store_nta_partial_lo(B2[index],B2L,elt_count);
+ vec_store_nta_partial_lo(B3[index],B3L,elt_count);
vec_store_nta_partial_lo(Xt1[index],Xt1L,elt_count);
vec_store_nta_partial_lo(Xt2[index],Xt2L,elt_count);
vec_store_nta_partial_lo(Xt3[index],Xt3L,elt_count);
@@ -283,6 +303,10 @@ static void ML_BSSN_InitGamma_Body(cGH const * restrict const cctkGH, int const
}
/* Copy local copies back to grid functions */
+ vec_store_nta(A[index],AL);
+ vec_store_nta(B1[index],B1L);
+ vec_store_nta(B2[index],B2L);
+ vec_store_nta(B3[index],B3L);
vec_store_nta(Xt1[index],Xt1L);
vec_store_nta(Xt2[index],Xt2L);
vec_store_nta(Xt3[index],Xt3L);
diff --git a/ML_BSSN_MP/src/ML_BSSN_MP_InitGamma.cc b/ML_BSSN_MP/src/ML_BSSN_MP_InitGamma.cc
index 35a965a..ef551e6 100644
--- a/ML_BSSN_MP/src/ML_BSSN_MP_InitGamma.cc
+++ b/ML_BSSN_MP/src/ML_BSSN_MP_InitGamma.cc
@@ -40,8 +40,8 @@ static void ML_BSSN_MP_InitGamma_Body(cGH const * restrict const cctkGH, int con
return;
}
- const char *groups[] = {"ML_BSSN_MP::ML_Gamma"};
- GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_MP_InitGamma", 1, groups);
+ const char *groups[] = {"ML_BSSN_MP::ML_dtlapse","ML_BSSN_MP::ML_dtshift","ML_BSSN_MP::ML_Gamma"};
+ GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_MP_InitGamma", 3, groups);
switch(fdOrder)
{
@@ -248,12 +248,24 @@ static void ML_BSSN_MP_InitGamma_Body(cGH const * restrict const cctkGH, int con
CCTK_REAL_VEC Xt3L = ToReal(0);
+ CCTK_REAL_VEC AL = ToReal(0);
+
+ CCTK_REAL_VEC B1L = ToReal(0);
+
+ CCTK_REAL_VEC B2L = ToReal(0);
+
+ CCTK_REAL_VEC B3L = ToReal(0);
+
/* If necessary, store only partial vectors after the first iteration */
if (CCTK_REAL_VEC_SIZE > 2 && CCTK_BUILTIN_EXPECT(i < lc_imin && i+CCTK_REAL_VEC_SIZE > lc_imax, 0))
{
ptrdiff_t const elt_count_lo = lc_imin-i;
ptrdiff_t const elt_count_hi = lc_imax-i;
+ vec_store_nta_partial_mid(A[index],AL,elt_count_lo,elt_count_hi);
+ vec_store_nta_partial_mid(B1[index],B1L,elt_count_lo,elt_count_hi);
+ vec_store_nta_partial_mid(B2[index],B2L,elt_count_lo,elt_count_hi);
+ vec_store_nta_partial_mid(B3[index],B3L,elt_count_lo,elt_count_hi);
vec_store_nta_partial_mid(Xt1[index],Xt1L,elt_count_lo,elt_count_hi);
vec_store_nta_partial_mid(Xt2[index],Xt2L,elt_count_lo,elt_count_hi);
vec_store_nta_partial_mid(Xt3[index],Xt3L,elt_count_lo,elt_count_hi);
@@ -265,6 +277,10 @@ static void ML_BSSN_MP_InitGamma_Body(cGH const * restrict const cctkGH, int con
if (CCTK_REAL_VEC_SIZE > 1 && CCTK_BUILTIN_EXPECT(i < lc_imin, 0))
{
ptrdiff_t const elt_count = lc_imin-i;
+ vec_store_nta_partial_hi(A[index],AL,elt_count);
+ vec_store_nta_partial_hi(B1[index],B1L,elt_count);
+ vec_store_nta_partial_hi(B2[index],B2L,elt_count);
+ vec_store_nta_partial_hi(B3[index],B3L,elt_count);
vec_store_nta_partial_hi(Xt1[index],Xt1L,elt_count);
vec_store_nta_partial_hi(Xt2[index],Xt2L,elt_count);
vec_store_nta_partial_hi(Xt3[index],Xt3L,elt_count);
@@ -276,6 +292,10 @@ static void ML_BSSN_MP_InitGamma_Body(cGH const * restrict const cctkGH, int con
if (CCTK_REAL_VEC_SIZE > 1 && CCTK_BUILTIN_EXPECT(i+CCTK_REAL_VEC_SIZE > lc_imax, 0))
{
ptrdiff_t const elt_count = lc_imax-i;
+ vec_store_nta_partial_lo(A[index],AL,elt_count);
+ vec_store_nta_partial_lo(B1[index],B1L,elt_count);
+ vec_store_nta_partial_lo(B2[index],B2L,elt_count);
+ vec_store_nta_partial_lo(B3[index],B3L,elt_count);
vec_store_nta_partial_lo(Xt1[index],Xt1L,elt_count);
vec_store_nta_partial_lo(Xt2[index],Xt2L,elt_count);
vec_store_nta_partial_lo(Xt3[index],Xt3L,elt_count);
@@ -283,6 +303,10 @@ static void ML_BSSN_MP_InitGamma_Body(cGH const * restrict const cctkGH, int con
}
/* Copy local copies back to grid functions */
+ vec_store_nta(A[index],AL);
+ vec_store_nta(B1[index],B1L);
+ vec_store_nta(B2[index],B2L);
+ vec_store_nta(B3[index],B3L);
vec_store_nta(Xt1[index],Xt1L);
vec_store_nta(Xt2[index],Xt2L);
vec_store_nta(Xt3[index],Xt3L);
diff --git a/ML_BSSN_MP_O8/src/ML_BSSN_MP_O8_InitGamma.cc b/ML_BSSN_MP_O8/src/ML_BSSN_MP_O8_InitGamma.cc
index 9497172..cc96591 100644
--- a/ML_BSSN_MP_O8/src/ML_BSSN_MP_O8_InitGamma.cc
+++ b/ML_BSSN_MP_O8/src/ML_BSSN_MP_O8_InitGamma.cc
@@ -40,8 +40,8 @@ static void ML_BSSN_MP_O8_InitGamma_Body(cGH const * restrict const cctkGH, int
return;
}
- const char *groups[] = {"ML_BSSN_MP_O8::ML_Gamma"};
- GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_MP_O8_InitGamma", 1, groups);
+ const char *groups[] = {"ML_BSSN_MP_O8::ML_dtlapse","ML_BSSN_MP_O8::ML_dtshift","ML_BSSN_MP_O8::ML_Gamma"};
+ GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_MP_O8_InitGamma", 3, groups);
switch(fdOrder)
{
@@ -248,12 +248,24 @@ static void ML_BSSN_MP_O8_InitGamma_Body(cGH const * restrict const cctkGH, int
CCTK_REAL_VEC Xt3L = ToReal(0);
+ CCTK_REAL_VEC AL = ToReal(0);
+
+ CCTK_REAL_VEC B1L = ToReal(0);
+
+ CCTK_REAL_VEC B2L = ToReal(0);
+
+ CCTK_REAL_VEC B3L = ToReal(0);
+
/* If necessary, store only partial vectors after the first iteration */
if (CCTK_REAL_VEC_SIZE > 2 && CCTK_BUILTIN_EXPECT(i < lc_imin && i+CCTK_REAL_VEC_SIZE > lc_imax, 0))
{
ptrdiff_t const elt_count_lo = lc_imin-i;
ptrdiff_t const elt_count_hi = lc_imax-i;
+ vec_store_nta_partial_mid(A[index],AL,elt_count_lo,elt_count_hi);
+ vec_store_nta_partial_mid(B1[index],B1L,elt_count_lo,elt_count_hi);
+ vec_store_nta_partial_mid(B2[index],B2L,elt_count_lo,elt_count_hi);
+ vec_store_nta_partial_mid(B3[index],B3L,elt_count_lo,elt_count_hi);
vec_store_nta_partial_mid(Xt1[index],Xt1L,elt_count_lo,elt_count_hi);
vec_store_nta_partial_mid(Xt2[index],Xt2L,elt_count_lo,elt_count_hi);
vec_store_nta_partial_mid(Xt3[index],Xt3L,elt_count_lo,elt_count_hi);
@@ -265,6 +277,10 @@ static void ML_BSSN_MP_O8_InitGamma_Body(cGH const * restrict const cctkGH, int
if (CCTK_REAL_VEC_SIZE > 1 && CCTK_BUILTIN_EXPECT(i < lc_imin, 0))
{
ptrdiff_t const elt_count = lc_imin-i;
+ vec_store_nta_partial_hi(A[index],AL,elt_count);
+ vec_store_nta_partial_hi(B1[index],B1L,elt_count);
+ vec_store_nta_partial_hi(B2[index],B2L,elt_count);
+ vec_store_nta_partial_hi(B3[index],B3L,elt_count);
vec_store_nta_partial_hi(Xt1[index],Xt1L,elt_count);
vec_store_nta_partial_hi(Xt2[index],Xt2L,elt_count);
vec_store_nta_partial_hi(Xt3[index],Xt3L,elt_count);
@@ -276,6 +292,10 @@ static void ML_BSSN_MP_O8_InitGamma_Body(cGH const * restrict const cctkGH, int
if (CCTK_REAL_VEC_SIZE > 1 && CCTK_BUILTIN_EXPECT(i+CCTK_REAL_VEC_SIZE > lc_imax, 0))
{
ptrdiff_t const elt_count = lc_imax-i;
+ vec_store_nta_partial_lo(A[index],AL,elt_count);
+ vec_store_nta_partial_lo(B1[index],B1L,elt_count);
+ vec_store_nta_partial_lo(B2[index],B2L,elt_count);
+ vec_store_nta_partial_lo(B3[index],B3L,elt_count);
vec_store_nta_partial_lo(Xt1[index],Xt1L,elt_count);
vec_store_nta_partial_lo(Xt2[index],Xt2L,elt_count);
vec_store_nta_partial_lo(Xt3[index],Xt3L,elt_count);
@@ -283,6 +303,10 @@ static void ML_BSSN_MP_O8_InitGamma_Body(cGH const * restrict const cctkGH, int
}
/* Copy local copies back to grid functions */
+ vec_store_nta(A[index],AL);
+ vec_store_nta(B1[index],B1L);
+ vec_store_nta(B2[index],B2L);
+ vec_store_nta(B3[index],B3L);
vec_store_nta(Xt1[index],Xt1L);
vec_store_nta(Xt2[index],Xt2L);
vec_store_nta(Xt3[index],Xt3L);
diff --git a/ML_BSSN_O2/src/ML_BSSN_O2_InitGamma.cc b/ML_BSSN_O2/src/ML_BSSN_O2_InitGamma.cc
index ab36539..c72056e 100644
--- a/ML_BSSN_O2/src/ML_BSSN_O2_InitGamma.cc
+++ b/ML_BSSN_O2/src/ML_BSSN_O2_InitGamma.cc
@@ -40,8 +40,8 @@ static void ML_BSSN_O2_InitGamma_Body(cGH const * restrict const cctkGH, int con
return;
}
- const char *groups[] = {"ML_BSSN_O2::ML_Gamma"};
- GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_O2_InitGamma", 1, groups);
+ const char *groups[] = {"ML_BSSN_O2::ML_dtlapse","ML_BSSN_O2::ML_dtshift","ML_BSSN_O2::ML_Gamma"};
+ GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_O2_InitGamma", 3, groups);
switch(fdOrder)
{
@@ -248,12 +248,24 @@ static void ML_BSSN_O2_InitGamma_Body(cGH const * restrict const cctkGH, int con
CCTK_REAL_VEC Xt3L = ToReal(0);
+ CCTK_REAL_VEC AL = ToReal(0);
+
+ CCTK_REAL_VEC B1L = ToReal(0);
+
+ CCTK_REAL_VEC B2L = ToReal(0);
+
+ CCTK_REAL_VEC B3L = ToReal(0);
+
/* If necessary, store only partial vectors after the first iteration */
if (CCTK_REAL_VEC_SIZE > 2 && CCTK_BUILTIN_EXPECT(i < lc_imin && i+CCTK_REAL_VEC_SIZE > lc_imax, 0))
{
ptrdiff_t const elt_count_lo = lc_imin-i;
ptrdiff_t const elt_count_hi = lc_imax-i;
+ vec_store_nta_partial_mid(A[index],AL,elt_count_lo,elt_count_hi);
+ vec_store_nta_partial_mid(B1[index],B1L,elt_count_lo,elt_count_hi);
+ vec_store_nta_partial_mid(B2[index],B2L,elt_count_lo,elt_count_hi);
+ vec_store_nta_partial_mid(B3[index],B3L,elt_count_lo,elt_count_hi);
vec_store_nta_partial_mid(Xt1[index],Xt1L,elt_count_lo,elt_count_hi);
vec_store_nta_partial_mid(Xt2[index],Xt2L,elt_count_lo,elt_count_hi);
vec_store_nta_partial_mid(Xt3[index],Xt3L,elt_count_lo,elt_count_hi);
@@ -265,6 +277,10 @@ static void ML_BSSN_O2_InitGamma_Body(cGH const * restrict const cctkGH, int con
if (CCTK_REAL_VEC_SIZE > 1 && CCTK_BUILTIN_EXPECT(i < lc_imin, 0))
{
ptrdiff_t const elt_count = lc_imin-i;
+ vec_store_nta_partial_hi(A[index],AL,elt_count);
+ vec_store_nta_partial_hi(B1[index],B1L,elt_count);
+ vec_store_nta_partial_hi(B2[index],B2L,elt_count);
+ vec_store_nta_partial_hi(B3[index],B3L,elt_count);
vec_store_nta_partial_hi(Xt1[index],Xt1L,elt_count);
vec_store_nta_partial_hi(Xt2[index],Xt2L,elt_count);
vec_store_nta_partial_hi(Xt3[index],Xt3L,elt_count);
@@ -276,6 +292,10 @@ static void ML_BSSN_O2_InitGamma_Body(cGH const * restrict const cctkGH, int con
if (CCTK_REAL_VEC_SIZE > 1 && CCTK_BUILTIN_EXPECT(i+CCTK_REAL_VEC_SIZE > lc_imax, 0))
{
ptrdiff_t const elt_count = lc_imax-i;
+ vec_store_nta_partial_lo(A[index],AL,elt_count);
+ vec_store_nta_partial_lo(B1[index],B1L,elt_count);
+ vec_store_nta_partial_lo(B2[index],B2L,elt_count);
+ vec_store_nta_partial_lo(B3[index],B3L,elt_count);
vec_store_nta_partial_lo(Xt1[index],Xt1L,elt_count);
vec_store_nta_partial_lo(Xt2[index],Xt2L,elt_count);
vec_store_nta_partial_lo(Xt3[index],Xt3L,elt_count);
@@ -283,6 +303,10 @@ static void ML_BSSN_O2_InitGamma_Body(cGH const * restrict const cctkGH, int con
}
/* Copy local copies back to grid functions */
+ vec_store_nta(A[index],AL);
+ vec_store_nta(B1[index],B1L);
+ vec_store_nta(B2[index],B2L);
+ vec_store_nta(B3[index],B3L);
vec_store_nta(Xt1[index],Xt1L);
vec_store_nta(Xt2[index],Xt2L);
vec_store_nta(Xt3[index],Xt3L);
diff --git a/ML_BSSN_O8/src/ML_BSSN_O8_InitGamma.cc b/ML_BSSN_O8/src/ML_BSSN_O8_InitGamma.cc
index cbbcea3..2028f67 100644
--- a/ML_BSSN_O8/src/ML_BSSN_O8_InitGamma.cc
+++ b/ML_BSSN_O8/src/ML_BSSN_O8_InitGamma.cc
@@ -40,8 +40,8 @@ static void ML_BSSN_O8_InitGamma_Body(cGH const * restrict const cctkGH, int con
return;
}
- const char *groups[] = {"ML_BSSN_O8::ML_Gamma"};
- GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_O8_InitGamma", 1, groups);
+ const char *groups[] = {"ML_BSSN_O8::ML_dtlapse","ML_BSSN_O8::ML_dtshift","ML_BSSN_O8::ML_Gamma"};
+ GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_O8_InitGamma", 3, groups);
switch(fdOrder)
{
@@ -248,12 +248,24 @@ static void ML_BSSN_O8_InitGamma_Body(cGH const * restrict const cctkGH, int con
CCTK_REAL_VEC Xt3L = ToReal(0);
+ CCTK_REAL_VEC AL = ToReal(0);
+
+ CCTK_REAL_VEC B1L = ToReal(0);
+
+ CCTK_REAL_VEC B2L = ToReal(0);
+
+ CCTK_REAL_VEC B3L = ToReal(0);
+
/* If necessary, store only partial vectors after the first iteration */
if (CCTK_REAL_VEC_SIZE > 2 && CCTK_BUILTIN_EXPECT(i < lc_imin && i+CCTK_REAL_VEC_SIZE > lc_imax, 0))
{
ptrdiff_t const elt_count_lo = lc_imin-i;
ptrdiff_t const elt_count_hi = lc_imax-i;
+ vec_store_nta_partial_mid(A[index],AL,elt_count_lo,elt_count_hi);
+ vec_store_nta_partial_mid(B1[index],B1L,elt_count_lo,elt_count_hi);
+ vec_store_nta_partial_mid(B2[index],B2L,elt_count_lo,elt_count_hi);
+ vec_store_nta_partial_mid(B3[index],B3L,elt_count_lo,elt_count_hi);
vec_store_nta_partial_mid(Xt1[index],Xt1L,elt_count_lo,elt_count_hi);
vec_store_nta_partial_mid(Xt2[index],Xt2L,elt_count_lo,elt_count_hi);
vec_store_nta_partial_mid(Xt3[index],Xt3L,elt_count_lo,elt_count_hi);
@@ -265,6 +277,10 @@ static void ML_BSSN_O8_InitGamma_Body(cGH const * restrict const cctkGH, int con
if (CCTK_REAL_VEC_SIZE > 1 && CCTK_BUILTIN_EXPECT(i < lc_imin, 0))
{
ptrdiff_t const elt_count = lc_imin-i;
+ vec_store_nta_partial_hi(A[index],AL,elt_count);
+ vec_store_nta_partial_hi(B1[index],B1L,elt_count);
+ vec_store_nta_partial_hi(B2[index],B2L,elt_count);
+ vec_store_nta_partial_hi(B3[index],B3L,elt_count);
vec_store_nta_partial_hi(Xt1[index],Xt1L,elt_count);
vec_store_nta_partial_hi(Xt2[index],Xt2L,elt_count);
vec_store_nta_partial_hi(Xt3[index],Xt3L,elt_count);
@@ -276,6 +292,10 @@ static void ML_BSSN_O8_InitGamma_Body(cGH const * restrict const cctkGH, int con
if (CCTK_REAL_VEC_SIZE > 1 && CCTK_BUILTIN_EXPECT(i+CCTK_REAL_VEC_SIZE > lc_imax, 0))
{
ptrdiff_t const elt_count = lc_imax-i;
+ vec_store_nta_partial_lo(A[index],AL,elt_count);
+ vec_store_nta_partial_lo(B1[index],B1L,elt_count);
+ vec_store_nta_partial_lo(B2[index],B2L,elt_count);
+ vec_store_nta_partial_lo(B3[index],B3L,elt_count);
vec_store_nta_partial_lo(Xt1[index],Xt1L,elt_count);
vec_store_nta_partial_lo(Xt2[index],Xt2L,elt_count);
vec_store_nta_partial_lo(Xt3[index],Xt3L,elt_count);
@@ -283,6 +303,10 @@ static void ML_BSSN_O8_InitGamma_Body(cGH const * restrict const cctkGH, int con
}
/* Copy local copies back to grid functions */
+ vec_store_nta(A[index],AL);
+ vec_store_nta(B1[index],B1L);
+ vec_store_nta(B2[index],B2L);
+ vec_store_nta(B3[index],B3L);
vec_store_nta(Xt1[index],Xt1L);
vec_store_nta(Xt2[index],Xt2L);
vec_store_nta(Xt3[index],Xt3L);
diff --git a/ML_BSSN_UPW/src/ML_BSSN_UPW_InitGamma.cc b/ML_BSSN_UPW/src/ML_BSSN_UPW_InitGamma.cc
index 1a88a39..8df9985 100644
--- a/ML_BSSN_UPW/src/ML_BSSN_UPW_InitGamma.cc
+++ b/ML_BSSN_UPW/src/ML_BSSN_UPW_InitGamma.cc
@@ -40,8 +40,8 @@ static void ML_BSSN_UPW_InitGamma_Body(cGH const * restrict const cctkGH, int co
return;
}
- const char *groups[] = {"ML_BSSN_UPW::ML_Gamma"};
- GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_UPW_InitGamma", 1, groups);
+ const char *groups[] = {"ML_BSSN_UPW::ML_dtlapse","ML_BSSN_UPW::ML_dtshift","ML_BSSN_UPW::ML_Gamma"};
+ GenericFD_AssertGroupStorage(cctkGH, "ML_BSSN_UPW_InitGamma", 3, groups);
switch(fdOrder)
{
@@ -248,12 +248,24 @@ static void ML_BSSN_UPW_InitGamma_Body(cGH const * restrict const cctkGH, int co
CCTK_REAL_VEC Xt3L = ToReal(0);
+ CCTK_REAL_VEC AL = ToReal(0);
+
+ CCTK_REAL_VEC B1L = ToReal(0);
+
+ CCTK_REAL_VEC B2L = ToReal(0);
+
+ CCTK_REAL_VEC B3L = ToReal(0);
+
/* If necessary, store only partial vectors after the first iteration */
if (CCTK_REAL_VEC_SIZE > 2 && CCTK_BUILTIN_EXPECT(i < lc_imin && i+CCTK_REAL_VEC_SIZE > lc_imax, 0))
{
ptrdiff_t const elt_count_lo = lc_imin-i;
ptrdiff_t const elt_count_hi = lc_imax-i;
+ vec_store_nta_partial_mid(A[index],AL,elt_count_lo,elt_count_hi);
+ vec_store_nta_partial_mid(B1[index],B1L,elt_count_lo,elt_count_hi);
+ vec_store_nta_partial_mid(B2[index],B2L,elt_count_lo,elt_count_hi);
+ vec_store_nta_partial_mid(B3[index],B3L,elt_count_lo,elt_count_hi);
vec_store_nta_partial_mid(Xt1[index],Xt1L,elt_count_lo,elt_count_hi);
vec_store_nta_partial_mid(Xt2[index],Xt2L,elt_count_lo,elt_count_hi);
vec_store_nta_partial_mid(Xt3[index],Xt3L,elt_count_lo,elt_count_hi);
@@ -265,6 +277,10 @@ static void ML_BSSN_UPW_InitGamma_Body(cGH const * restrict const cctkGH, int co
if (CCTK_REAL_VEC_SIZE > 1 && CCTK_BUILTIN_EXPECT(i < lc_imin, 0))
{
ptrdiff_t const elt_count = lc_imin-i;
+ vec_store_nta_partial_hi(A[index],AL,elt_count);
+ vec_store_nta_partial_hi(B1[index],B1L,elt_count);
+ vec_store_nta_partial_hi(B2[index],B2L,elt_count);
+ vec_store_nta_partial_hi(B3[index],B3L,elt_count);
vec_store_nta_partial_hi(Xt1[index],Xt1L,elt_count);
vec_store_nta_partial_hi(Xt2[index],Xt2L,elt_count);
vec_store_nta_partial_hi(Xt3[index],Xt3L,elt_count);
@@ -276,6 +292,10 @@ static void ML_BSSN_UPW_InitGamma_Body(cGH const * restrict const cctkGH, int co
if (CCTK_REAL_VEC_SIZE > 1 && CCTK_BUILTIN_EXPECT(i+CCTK_REAL_VEC_SIZE > lc_imax, 0))
{
ptrdiff_t const elt_count = lc_imax-i;
+ vec_store_nta_partial_lo(A[index],AL,elt_count);
+ vec_store_nta_partial_lo(B1[index],B1L,elt_count);
+ vec_store_nta_partial_lo(B2[index],B2L,elt_count);
+ vec_store_nta_partial_lo(B3[index],B3L,elt_count);
vec_store_nta_partial_lo(Xt1[index],Xt1L,elt_count);
vec_store_nta_partial_lo(Xt2[index],Xt2L,elt_count);
vec_store_nta_partial_lo(Xt3[index],Xt3L,elt_count);
@@ -283,6 +303,10 @@ static void ML_BSSN_UPW_InitGamma_Body(cGH const * restrict const cctkGH, int co
}
/* Copy local copies back to grid functions */
+ vec_store_nta(A[index],AL);
+ vec_store_nta(B1[index],B1L);
+ vec_store_nta(B2[index],B2L);
+ vec_store_nta(B3[index],B3L);
vec_store_nta(Xt1[index],Xt1L);
vec_store_nta(Xt2[index],Xt2L);
vec_store_nta(Xt3[index],Xt3L);