From f26576f2abd2c67527a99e7ff004e0797e758f73 Mon Sep 17 00:00:00 2001 From: Erik Schnetter Date: Thu, 12 Sep 2024 11:46:15 -0400 Subject: [PATCH 01/39] Arith: Implement efficient SIMD trigonometic functions --- Arith/src/defs.hxx | 6 + Arith/src/simd.cxx | 153 ++++++++++++++- Arith/src/simd.hxx | 472 ++++++++++++++++++++++++++++++++------------- 3 files changed, 493 insertions(+), 138 deletions(-) diff --git a/Arith/src/defs.hxx b/Arith/src/defs.hxx index cdecb4aaa..58bb55a6a 100644 --- a/Arith/src/defs.hxx +++ b/Arith/src/defs.hxx @@ -206,6 +206,12 @@ constexpr ARITH_INLINE ARITH_DEVICE ARITH_HOST T flipsign(const T &x, return copysign(T(1), y) * x; } +// Return 1/x +template +constexpr ARITH_INLINE ARITH_DEVICE ARITH_HOST T inv(const T &x) { + return T(1) / x; +} + // A max function that returns nan when any argument is nan template constexpr ARITH_INLINE ARITH_DEVICE ARITH_HOST T max1(const T &x, const T &y) { diff --git a/Arith/src/simd.cxx b/Arith/src/simd.cxx index 17dd8e09d..b98430834 100644 --- a/Arith/src/simd.cxx +++ b/Arith/src/simd.cxx @@ -3,6 +3,7 @@ #include #include +#include namespace Arith { @@ -25,17 +26,34 @@ std::size_t get_memop_count() { return count; } +template constexpr bool isequal(const simd x, const T a) { + return all(x == a); +} +template constexpr bool isequal(const simdl x, const bool a) { + return all(x == a); +} +template constexpr bool isapprox(const simd x, const T a) { + return all(fabs(x - a) < 1.0e-14); +} + +void check(const bool isgood) { + if (isgood) + return; + CCTK_ERROR("Test failure"); +} + void TestSIMD() { // nvcc V11.1.74 doesn't accept this as "constexpr" values #ifndef __CUDACC__ - typedef simd realv; + using real = CCTK_REAL; + using realv = simd; realv x; realv y = 0; realv z = zero(); - assert(all(y == 0)); - assert(all(y == z)); + check(all(y == 0)); + check(all(y == z)); realv a = 2; realv b = 3; @@ -45,10 +63,131 @@ void TestSIMD() { realv r1 = mulsub(a, b, c); realv r2 = negmuladd(a, b, c); realv r3 = negmulsub(a, b, c); - assert(all(r0 == muladd(2, 3, 4))); - assert(all(r1 == mulsub(2, 3, 4))); - assert(all(r2 == negmuladd(2, 3, 4))); - assert(all(r3 == negmulsub(2, 3, 4))); + check(all(r0 == muladd(2, 3, 4))); + check(all(r1 == mulsub(2, 3, 4))); + check(all(r2 == negmuladd(2, 3, 4))); + check(all(r3 == negmulsub(2, 3, 4))); + + real s = 2; + real t = 2; + real u = 4; + + check(isequal(+a, +s)); + check(isequal(-a, -s)); + + check(isequal(a + b, s + t)); + check(isequal(a - b, s - t)); + check(isequal(a * b, s * t)); + check(isequal(a / b, s / t)); + check(isequal(s + b, s + t)); + check(isequal(s - b, s - t)); + check(isequal(s * b, s * t)); + check(isequal(s / b, s / t)); + check(isequal(a + t, s + t)); + check(isequal(a - t, s - t)); + check(isequal(a * t, s * t)); + check(isequal(a / t, s / t)); + + check(isequal(a == b, s == t)); + check(isequal(a != b, s != t)); + check(isequal(a < b, s < t)); + check(isequal(a > b, s > t)); + check(isequal(a <= b, s <= t)); + check(isequal(a >= b, s >= t)); + check(isequal(s == b, s == t)); + check(isequal(s != b, s != t)); + check(isequal(s < b, s < t)); + check(isequal(s > b, s > t)); + check(isequal(s <= b, s <= t)); + check(isequal(s >= b, s >= t)); + check(isequal(a == t, s == t)); + check(isequal(a != t, s != t)); + check(isequal(a < t, s < t)); + check(isequal(a > t, s > t)); + check(isequal(a <= t, s <= t)); + check(isequal(a >= t, s >= t)); + + check(isapprox(abs(a), abs(s))); + check(isapprox(acos(a), acos(s))); + check(isapprox(acosh(a), acosh(s))); + check(allisfinite(a) == allisfinite(s)); + check(anyisnan(a) == anyisnan(s)); + check(isapprox(asin(a), asin(s))); + check(isapprox(asinh(a), asinh(s))); + check(isapprox(atan(a), atan(s))); + check(isapprox(atanh(a), atanh(s))); + check(isapprox(cbrt(a), cbrt(s))); + // check(isapprox(cis(a), cis(s))); + // check(isapprox(cispi(a), cispi(s))); + check(isapprox(copysign(a, b), copysign(s, t))); + check(isapprox(cos(a), cos(s))); + check(isapprox(cosh(a), cosh(s))); + check(isapprox(cospi(a), cos(M_PI * s))); + check(isapprox(exp(a), exp(s))); + check(isapprox(exp10(a), exp10(s))); + check(isapprox(exp2(a), exp2(s))); + check(isapprox(fabs(a), fabs(s))); + check(isapprox(flipsign(a, b), flipsign(s, t))); + check(isapprox(fmax(a, b), fmax(s, t))); + check(isapprox(fmax(a, t), fmax(s, t))); + check(isapprox(fmax(s, b), fmax(s, t))); + check(isapprox(fmin(a, b), fmin(s, t))); + check(isapprox(fmin(a, t), fmin(s, t))); + check(isapprox(fmin(s, b), fmin(s, t))); + check(isapprox(hypot(a, b), hypot(s, t))); + check(isapprox(inv(a), inv(s))); + check(isequal(isfinite(a), isfinite(s))); + check(isequal(isinf(a), isinf(s))); + check(isequal(isnan(a), isnan(s))); + check(isapprox(log(a), log(s))); + check(isapprox(log10(a), log10(s))); + check(isapprox(log2(a), log2(s))); + check(isapprox(max(a, b), max(s, t))); + check(isapprox(max(a, t), max(s, t))); + check(isapprox(max(s, b), max(s, t))); + check(isapprox(min(a, b), min(s, t))); + check(isapprox(min(a, t), min(s, t))); + check(isapprox(min(s, b), min(s, t))); + check(isapprox(muladd(a, b, c), muladd(s, t, u))); + check(isapprox(muladd(a, b, u), muladd(s, t, u))); + check(isapprox(muladd(a, t, c), muladd(s, t, u))); + check(isapprox(muladd(a, t, u), muladd(s, t, u))); + check(isapprox(muladd(s, b, c), muladd(s, t, u))); + check(isapprox(muladd(s, b, u), muladd(s, t, u))); + check(isapprox(muladd(s, t, c), muladd(s, t, u))); + check(isapprox(mulsub(a, b, c), mulsub(s, t, u))); + check(isapprox(mulsub(a, b, u), mulsub(s, t, u))); + check(isapprox(mulsub(a, t, c), mulsub(s, t, u))); + check(isapprox(mulsub(a, t, u), mulsub(s, t, u))); + check(isapprox(mulsub(s, b, c), mulsub(s, t, u))); + check(isapprox(mulsub(s, b, u), mulsub(s, t, u))); + check(isapprox(mulsub(s, t, c), mulsub(s, t, u))); + check(isapprox(negmuladd(a, b, c), negmuladd(s, t, u))); + check(isapprox(negmuladd(a, b, u), negmuladd(s, t, u))); + check(isapprox(negmuladd(a, t, c), negmuladd(s, t, u))); + check(isapprox(negmuladd(a, t, u), negmuladd(s, t, u))); + check(isapprox(negmuladd(s, b, c), negmuladd(s, t, u))); + check(isapprox(negmuladd(s, b, u), negmuladd(s, t, u))); + check(isapprox(negmuladd(s, t, c), negmuladd(s, t, u))); + check(isapprox(negmulsub(a, b, c), negmulsub(s, t, u))); + check(isapprox(negmulsub(a, b, u), negmulsub(s, t, u))); + check(isapprox(negmulsub(a, t, c), negmulsub(s, t, u))); + check(isapprox(negmulsub(a, t, u), negmulsub(s, t, u))); + check(isapprox(negmulsub(s, b, c), negmulsub(s, t, u))); + check(isapprox(negmulsub(s, b, u), negmulsub(s, t, u))); + check(isapprox(negmulsub(s, t, c), negmulsub(s, t, u))); + check(isapprox(pow(a, b), pow(s, t))); + check(isapprox(pow(a, t), pow(s, t))); + check(isapprox(pow(s, b), pow(s, t))); + check(isequal(signbit(a), signbit(s))); + check(isapprox(sin(a), sin(s))); + check(isapprox(sinh(a), sinh(s))); + check(isapprox(sinpi(a), sin(M_PI * s))); + check(isapprox(sqrt(a), sqrt(s))); + check(isapprox(tan(a), tan(s))); + check(isapprox(tanh(a), tanh(s))); + // check(isapprox(tanpi(a), tanpi(s))); + #endif } diff --git a/Arith/src/simd.hxx b/Arith/src/simd.hxx index 366060dfc..b5bb7fe29 100644 --- a/Arith/src/simd.hxx +++ b/Arith/src/simd.hxx @@ -7,14 +7,19 @@ // // Disable SIMD when the `NSIMD` library is not available // #ifndef HAVE_CAPABILITY_NSIMD -// #ifndef SIMD_CPU -// #define SIMD_CPU +// #ifndef SIMD_DISABLE +// #define SIMD_DISABLE // #endif // #endif +// Accept `SIMD_CPU` as well for backward compatibility +#ifdef SIMD_CPU +#define SIMD_DISABLE +#endif + #include "defs.hxx" -#ifndef SIMD_CPU +#ifndef SIMD_DISABLE #include #undef vec // This should arguably not be defined in C++ #else @@ -36,7 +41,7 @@ using namespace std; template struct simd; template struct simdl; -#ifndef SIMD_CPU +#ifndef SIMD_DISABLE namespace detail { struct reinterpret32 { typedef i32 int_type; @@ -86,7 +91,7 @@ std::size_t get_memop_count(); template struct simd { using value_type = T; -#ifndef SIMD_CPU +#ifndef SIMD_DISABLE using storage_type = nsimd::pack; #else using storage_type = T; @@ -101,7 +106,7 @@ template struct simd { constexpr ARITH_DEVICE ARITH_HOST simd() {} constexpr ARITH_DEVICE ARITH_HOST simd(const T &a) : elts(a) {} -#ifndef SIMD_CPU +#ifndef SIMD_DISABLE template , T> > * = nullptr> constexpr ARITH_DEVICE ARITH_HOST simd(const nsimd::pack &elts) @@ -122,7 +127,7 @@ template struct simd { } constexpr ARITH_DEVICE ARITH_HOST std::size_t size() const { -#ifndef SIMD_CPU +#ifndef SIMD_DISABLE return sizeof(nsimd::pack) / sizeof(T); #else return 1; @@ -133,7 +138,7 @@ template struct simd { #ifdef CCTK_DEBUG assert(n >= 0 && n < int(storage_size)); #endif -#ifndef SIMD_CPU +#ifndef SIMD_DISABLE T xarr[storage_size]; storeu(xarr, *this); return xarr[n]; @@ -160,7 +165,7 @@ template struct simd { friend constexpr ARITH_DEVICE ARITH_HOST simd operator+(const simd &x) { count_flop(); - return +x.elts; + return x.elts; } friend constexpr ARITH_DEVICE ARITH_HOST simd operator-(const simd &x) { count_flop(); @@ -439,13 +444,23 @@ template struct simd { return abs(x.elts); } - friend constexpr ARITH_DEVICE ARITH_HOST simd andnot(const simd &x, - const simd &y) { -#ifndef SIMD_CPU - count_flop(); - return andnotb(x.elts, y.elts); + friend constexpr ARITH_DEVICE ARITH_HOST simd acos(const simd &x) { + count_flop(10); +#ifndef SIMD_DISABLE + return acos_u10(x.elts); #else - return x & ~y; + using std::acos; + return acos(x.elts); +#endif + } + + friend constexpr ARITH_DEVICE ARITH_HOST simd acosh(const simd &x) { + count_flop(10); +#ifndef SIMD_DISABLE + return acosh_u10(x.elts); +#else + using std::acosh; + return acosh(x.elts); #endif } @@ -454,14 +469,74 @@ template struct simd { return all(isfinite(x)); } + friend constexpr ARITH_DEVICE ARITH_HOST simd andnot(const simd &x, + const simd &y) { +#ifndef SIMD_DISABLE + count_flop(); + return andnotb(x.elts, y.elts); +#else + return x & ~y; +#endif + } + friend constexpr ARITH_DEVICE ARITH_HOST bool anyisnan(const simd &x) { using std::isnan; return any(isnan(x)); } + friend constexpr ARITH_DEVICE ARITH_HOST simd asin(const simd &x) { + count_flop(10); +#ifndef SIMD_DISABLE + return asin_u10(x.elts); +#else + using std::asin; + return asin(x.elts); +#endif + } + + friend constexpr ARITH_DEVICE ARITH_HOST simd asinh(const simd &x) { + count_flop(10); +#ifndef SIMD_DISABLE + return asinh_u10(x.elts); +#else + using std::asinh; + return asinh(x.elts); +#endif + } + + friend constexpr ARITH_DEVICE ARITH_HOST simd atan(const simd &x) { + count_flop(10); +#ifndef SIMD_DISABLE + return atan_u10(x.elts); +#else + using std::atan; + return atan(x.elts); +#endif + } + + friend constexpr ARITH_DEVICE ARITH_HOST simd atanh(const simd &x) { + count_flop(10); +#ifndef SIMD_DISABLE + return atanh_u10(x.elts); +#else + using std::atanh; + return atanh(x.elts); +#endif + } + + friend constexpr ARITH_DEVICE ARITH_HOST simd cbrt(const simd &x) { + count_flop(10); +#ifndef SIMD_DISABLE + return cbrt_u10(x.elts); +#else + using std::cbrt; + return cbrt(x.elts); +#endif + } + friend constexpr ARITH_DEVICE ARITH_HOST simd copysign(const simd &x, const simd &y) { -#ifndef SIMD_CPU +#ifndef SIMD_DISABLE typedef detail::unsigned_type U; const T signmask = nsimd::scalar_reinterpret(T{}, U(1) << (8 * sizeof(U) - 1)); @@ -473,6 +548,68 @@ template struct simd { #endif } + friend constexpr ARITH_DEVICE ARITH_HOST simd cos(const simd &x) { + count_flop(10); +#ifndef SIMD_DISABLE + return cos_u10(x.elts); +#else + using std::cos; + return cos(x.elts); +#endif + } + + friend constexpr ARITH_DEVICE ARITH_HOST simd cosh(const simd &x) { + count_flop(10); +#ifndef SIMD_DISABLE + return cosh_u10(x.elts); +#else + using std::cosh; + return cosh(x.elts); +#endif + } + + friend constexpr ARITH_DEVICE ARITH_HOST simd cospi(const simd &x) { + count_flop(10); +#ifndef SIMD_DISABLE + return cospi_u05(x.elts); +#else + using std::acos, std::cos; + constexpr T pi = acos(T(-1)); + return cos(pi * x.elts); +#endif + } + + friend constexpr ARITH_DEVICE ARITH_HOST simd exp(const simd &x) { + count_flop(10); +#ifndef SIMD_DISABLE + return exp_u10(x.elts); +#else + using std::exp; + return exp(x.elts); +#endif + } + + friend constexpr ARITH_DEVICE ARITH_HOST simd exp10(const simd &x) { + count_flop(10); +#ifndef SIMD_DISABLE + return exp10_u10(x.elts); +#else + using std::exp2; + constexpr T log2_10 = log2(T(10)); + return exp2(log2_10 * x.elts); +#endif + } + + friend constexpr ARITH_DEVICE ARITH_HOST simd exp2(const simd &x) { + count_flop(10); +#ifndef SIMD_DISABLE + return exp2_u10(x.elts); +#else + using std::exp2; + return exp2(x.elts); +#endif + } + friend constexpr ARITH_DEVICE ARITH_HOST simd fabs(const simd &x) { count_flop(); using std::abs; @@ -481,7 +618,7 @@ template struct simd { friend constexpr ARITH_DEVICE ARITH_HOST simd flipsign(const simd &x, const simd &y) { -#ifndef SIMD_CPU +#ifndef SIMD_DISABLE typedef detail::unsigned_type U; const T signmask = nsimd::scalar_reinterpret(T{}, U(1) << (8 * sizeof(U) - 1)); @@ -531,6 +668,26 @@ template struct simd { return min(x, simd(b)); } + friend constexpr ARITH_DEVICE ARITH_HOST simd hypot(const simd &x, + const simd &y) { + count_flop(10); +#ifndef SIMD_DISABLE + return hypot_u05(x.elts, y.elts); +#else + using std::hypot; + return hypot(x.elts, y.elts); +#endif + } + + friend constexpr ARITH_DEVICE ARITH_HOST simd inv(const simd &x) { + count_flop(10); +#ifndef SIMD_DISABLE + return rec(x.elts); +#else + return inv(x.elts); +#endif + } + friend constexpr ARITH_DEVICE ARITH_HOST simdl isfinite(const simd &x) { // using std::isfinite; // return isfinite(x.elts); @@ -549,6 +706,36 @@ template struct simd { return x != x; } + friend constexpr ARITH_DEVICE ARITH_HOST simd log(const simd &x) { + count_flop(10); +#ifndef SIMD_DISABLE + return log_u10(x.elts); +#else + using std::log; + return log(x.elts); +#endif + } + + friend constexpr ARITH_DEVICE ARITH_HOST simd log10(const simd &x) { + count_flop(10); +#ifndef SIMD_DISABLE + return log10_u10(x.elts); +#else + using std::log10; + return log10(x.elts); +#endif + } + + friend constexpr ARITH_DEVICE ARITH_HOST simd log2(const simd &x) { + count_flop(10); +#ifndef SIMD_DISABLE + return log2_u10(x.elts); +#else + using std::log2; + return log2(x.elts); +#endif + } + friend constexpr ARITH_DEVICE ARITH_HOST simd max(const simd &x, const simd &y) { count_flop(); @@ -603,7 +790,7 @@ template struct simd { const simd &y, const simd &z) { count_flop(2); -#ifndef SIMD_CPU +#ifndef SIMD_DISABLE return nsimd::fma(x.elts, y.elts, z.elts); #else return muladd(x.elts, y.elts, z.elts); @@ -642,7 +829,7 @@ template struct simd { const simd &y, const simd &z) { count_flop(2); -#ifndef SIMD_CPU +#ifndef SIMD_DISABLE return nsimd::fms(x.elts, y.elts, z.elts); #else return mulsub(x.elts, y.elts, z.elts); @@ -681,7 +868,7 @@ template struct simd { const simd &y, const simd &z) { count_flop(2); -#ifndef SIMD_CPU +#ifndef SIMD_DISABLE return nsimd::fnma(x.elts, y.elts, z.elts); #else return negmuladd(x.elts, y.elts, z.elts); @@ -722,7 +909,7 @@ template struct simd { const simd &y, const simd &z) { count_flop(2); -#ifndef SIMD_CPU +#ifndef SIMD_DISABLE return nsimd::fnms(x.elts, y.elts, z.elts); #else return negmulsub(x.elts, y.elts, z.elts); @@ -759,8 +946,25 @@ template struct simd { return negmulsub(x, simd(b), simd(c)); } + friend constexpr ARITH_DEVICE ARITH_HOST simd pow(const simd &x, + const simd &y) { + count_flop(10); +#ifndef SIMD_DISABLE + return pow_u10(x.elts, y.elts); +#else + using std::pow; + return pow(x.elts, y.elts); +#endif + } + friend constexpr ARITH_DEVICE ARITH_HOST simd pow(const simd &x, const T &b) { + return pow(x, simd(b)); + } + friend constexpr ARITH_DEVICE ARITH_HOST simd pow(const T &a, const simd &y) { + return pow(simd(a), y); + } + friend constexpr ARITH_DEVICE ARITH_HOST simdl signbit(const simd &x) { -#ifndef SIMD_CPU +#ifndef SIMD_DISABLE typedef detail::unsigned_type U; const T signmask = nsimd::scalar_reinterpret(T{}, U(1) << (8 * sizeof(U) - 1)); @@ -771,19 +975,70 @@ template struct simd { #endif } + friend constexpr ARITH_DEVICE ARITH_HOST simd sin(const simd &x) { + count_flop(10); +#ifndef SIMD_DISABLE + return sin_u10(x.elts); +#else + using std::sin; + return sin(x.elts); +#endif + } + + friend constexpr ARITH_DEVICE ARITH_HOST simd sinh(const simd &x) { + count_flop(10); +#ifndef SIMD_DISABLE + return sinh_u10(x.elts); +#else + using std::sinh; + return sinh(x.elts); +#endif + } + + friend constexpr ARITH_DEVICE ARITH_HOST simd sinpi(const simd &x) { + count_flop(10); +#ifndef SIMD_DISABLE + return sinpi_u05(x.elts); +#else + using std::acos, std::sin; + constexpr T pi = acos(T(-1)); + return sin(pi * x.elts); +#endif + } + friend constexpr ARITH_DEVICE ARITH_HOST simd sqrt(const simd &x) { count_flop(10); using std::sqrt; return sqrt(x.elts); } + friend constexpr ARITH_DEVICE ARITH_HOST simd tan(const simd &x) { + count_flop(10); +#ifndef SIMD_DISABLE + return tan_u10(x.elts); +#else + using std::tan; + return tan(x.elts); +#endif + } + + friend constexpr ARITH_DEVICE ARITH_HOST simd tanh(const simd &x) { + count_flop(10); +#ifndef SIMD_DISABLE + return tanh_u10(x.elts); +#else + using std::tanh; + return tanh(x.elts); +#endif + } + friend constexpr ARITH_DEVICE ARITH_HOST simdl to_logical(const simd &x) { return to_logical(x.elts); } friend ARITH_DEVICE ARITH_HOST void storea(T *ptr, const simd &x) { count_memop(); -#ifndef SIMD_CPU +#ifndef SIMD_DISABLE storea(ptr, x.elts); #else *ptr = x.elts; @@ -791,7 +1046,7 @@ template struct simd { } friend ARITH_DEVICE ARITH_HOST void storeu(T *ptr, const simd &x) { count_memop(); -#ifndef SIMD_CPU +#ifndef SIMD_DISABLE storeu(ptr, x.elts); #else *ptr = x.elts; @@ -800,7 +1055,7 @@ template struct simd { friend ARITH_DEVICE ARITH_HOST void mask_storea(const simdl &mask, T *ptr, const simd &x) { count_memop(); -#ifndef SIMD_CPU +#ifndef SIMD_DISABLE mask_storea(mask.elts, ptr, x.elts); #else if (mask.elts) @@ -810,11 +1065,27 @@ template struct simd { friend ARITH_DEVICE ARITH_HOST void mask_storeu(const simdl &mask, T *ptr, const simd &x) { count_memop(); -#ifndef SIMD_CPU +#ifndef SIMD_DISABLE mask_storeu(mask.elts, ptr, x.elts); #else - if (mask.elts) + if (mask.elts) { +#if 0 && defined __CUDACC__ + // __stwb: Cache write-back all coherent levels + // __stcg: Cache at global level (cache in L2 and below, not L1) + // __stcs: Cache streaming, likely to be accessed once + // __stwt: Cache write-through (to system memory) + __stwt(ptr, x.elts); +#elif 0 && defined __HIPCC__ + __builtin_nontemporal_store(x.elts, ptr); +#else + // CPU +#if 0 && defined __llvm__ + __builtin_nontemporal_store(x.elts, ptr); +#else *ptr = x.elts; +#endif +#endif + } #endif } @@ -873,7 +1144,7 @@ template struct nan > { template ARITH_DEVICE ARITH_HOST inline simd iota() { -#ifndef SIMD_CPU +#ifndef SIMD_DISABLE return nsimd::iota >(); #else return 0; @@ -884,7 +1155,7 @@ template ARITH_DEVICE ARITH_HOST inline simdl mask_for_loop_tail(const int i, const int n) { simd::count_flop(); -#ifndef SIMD_CPU +#ifndef SIMD_DISABLE return nsimd::mask_for_loop_tail >(i, n); #else return i < n; @@ -894,7 +1165,7 @@ ARITH_DEVICE ARITH_HOST inline simdl mask_for_loop_tail(const int i, template ARITH_DEVICE ARITH_HOST inline simd loada(const T *ptr) { simd::count_memop(); -#ifndef SIMD_CPU +#ifndef SIMD_DISABLE return nsimd::loada >(ptr); #else return *ptr; @@ -904,7 +1175,7 @@ ARITH_DEVICE ARITH_HOST inline simd loada(const T *ptr) { template ARITH_DEVICE ARITH_HOST inline simd loadu(const T *ptr) { simd::count_memop(); -#ifndef SIMD_CPU +#ifndef SIMD_DISABLE return nsimd::loadu >(ptr); #else return *ptr; @@ -915,7 +1186,7 @@ template ARITH_DEVICE ARITH_HOST inline simd maskz_loada(const simdl &mask, const T *ptr) { simd::count_memop(); -#ifndef SIMD_CPU +#ifndef SIMD_DISABLE return nsimd::maskz_loada(mask.elts, ptr); #else return mask.elts ? *ptr : 0; @@ -926,7 +1197,7 @@ template ARITH_DEVICE ARITH_HOST inline simd maskz_loadu(const simdl &mask, const T *ptr) { simd::count_memop(); -#ifndef SIMD_CPU +#ifndef SIMD_DISABLE return nsimd::maskz_loadu(mask.elts, ptr); #else return mask.elts ? *ptr : 0; @@ -937,7 +1208,7 @@ template ARITH_DEVICE ARITH_HOST inline simd masko_loada(const simdl &mask, const T *ptr, const simd &other) { simd::count_memop(); -#ifndef SIMD_CPU +#ifndef SIMD_DISABLE return masko_loada(mask.elts, ptr, other.elts); #else return mask.elts ? *ptr : other.elts; @@ -948,7 +1219,7 @@ template ARITH_DEVICE ARITH_HOST inline simd masko_loadu(const simdl &mask, const T *ptr, const simd &other) { simd::count_memop(); -#ifndef SIMD_CPU +#ifndef SIMD_DISABLE return masko_loadu(mask.elts, ptr, other.elts); #else return mask.elts ? *ptr : other.elts; @@ -960,7 +1231,7 @@ template masko_loada(const simdl &mask, const T *ptr, const U &other) { simd::count_memop(); -#ifndef SIMD_CPU +#ifndef SIMD_DISABLE return masko_loada(mask, ptr, simd(other)); #else return mask.elts ? *ptr : other; @@ -972,78 +1243,13 @@ template masko_loadu(const simdl &mask, const T *ptr, const U &other) { simd::count_memop(); -#ifndef SIMD_CPU +#ifndef SIMD_DISABLE return masko_loadu(mask, ptr, simd(other)); #else return mask.elts ? *ptr : other; #endif } -template -ARITH_DEVICE ARITH_HOST inline simd acos(const simd &x) { - simd::count_memop(10); - alignas(simd) T xarr[simd::storage_size]; - storea(xarr, x); - alignas(simd) T yarr[simd::storage_size]; - using std::acos; - for (std::size_t n = 0; n < x.size(); ++n) - yarr[n] = acos(xarr[n]); - const simd y = loada >(yarr); - return y; -} - -template -ARITH_DEVICE ARITH_HOST inline simd cbrt(const simd &x) { - simd::count_memop(10); - alignas(simd) T xarr[simd::storage_size]; - storea(xarr, x); - alignas(simd) T yarr[simd::storage_size]; - using std::cbrt; - for (std::size_t n = 0; n < x.size(); ++n) - yarr[n] = cbrt(xarr[n]); - const simd y = loada >(yarr); - return y; -} - -template -ARITH_DEVICE ARITH_HOST inline simd cos(const simd &x) { - simd::count_memop(10); - alignas(simd) T xarr[simd::storage_size]; - storea(xarr, x); - alignas(simd) T yarr[simd::storage_size]; - using std::cos; - for (std::size_t n = 0; n < x.size(); ++n) - yarr[n] = cos(xarr[n]); - const simd y = loada >(yarr); - return y; -} - -template -ARITH_DEVICE ARITH_HOST inline simd exp(const simd &x) { - simd::count_memop(10); - alignas(simd) T xarr[simd::storage_size]; - storea(xarr, x); - alignas(simd) T yarr[simd::storage_size]; - using std::exp; - for (std::size_t n = 0; n < x.size(); ++n) - yarr[n] = exp(xarr[n]); - const simd y = loada >(yarr); - return y; -} - -template -ARITH_DEVICE ARITH_HOST inline simd sin(const simd &x) { - simd::count_memop(10); - alignas(simd) T xarr[simd::storage_size]; - storea(xarr, x); - alignas(simd) T yarr[simd::storage_size]; - using std::sin; - for (std::size_t n = 0; n < x.size(); ++n) - yarr[n] = sin(xarr[n]); - const simd y = loada >(yarr); - return y; -} - //////////////////////////////////////////////////////////////////////////////// // A SIMD vector of booleans, usable with `simd`. @@ -1059,7 +1265,7 @@ ARITH_DEVICE ARITH_HOST inline simd sin(const simd &x) { template struct simdl { typedef T value_type; -#ifndef SIMD_CPU +#ifndef SIMD_DISABLE using storage_type = nsimd::packl; #else using storage_type = bool; @@ -1074,13 +1280,13 @@ template struct simdl { constexpr ARITH_DEVICE ARITH_HOST simdl() {} constexpr ARITH_DEVICE ARITH_HOST simdl(bool a) : elts(a) {} -#ifndef SIMD_CPU +#ifndef SIMD_DISABLE constexpr ARITH_DEVICE ARITH_HOST simdl(const nsimd::packl &elts) : elts(elts) {} #endif constexpr ARITH_DEVICE ARITH_HOST std::size_t size() const { -#ifndef SIMD_CPU +#ifndef SIMD_DISABLE return sizeof(nsimd::packl) / sizeof(T); #else return 1; @@ -1089,7 +1295,7 @@ template struct simdl { constexpr ARITH_DEVICE ARITH_HOST bool operator[](const std::ptrdiff_t n) const { -#ifndef SIMD_CPU +#ifndef SIMD_DISABLE // TOOD: Introduce `to_mask` for simd/simdl return simd(nsimd::to_mask(elts))[n]; #else @@ -1127,7 +1333,11 @@ template struct simdl { } friend ARITH_DEVICE ARITH_HOST simdl operator^(const simdl &x, const simdl &y) { +#ifndef SIMD_DISABLE + return xorl(x.elts, y.elts); +#else return x.elts ^ y.elts; +#endif } friend ARITH_DEVICE ARITH_HOST simdl operator&(const bool a, const simdl &y) { @@ -1172,77 +1382,77 @@ template struct simdl { friend ARITH_DEVICE ARITH_HOST simdl operator==(const simdl &x, const simdl &y) { - return x.elts == y.elts; + return !(x != y); } friend ARITH_DEVICE ARITH_HOST simdl operator!=(const simdl &x, const simdl &y) { - return x.elts != y.elts; + return x ^ y; } friend ARITH_DEVICE ARITH_HOST simdl operator<(const simdl &x, const simdl &y) { - return x.elts < y.elts; + return !x & y; } friend ARITH_DEVICE ARITH_HOST simdl operator>(const simdl &x, const simdl &y) { - return x.elts > y.elts; + return y < x; } friend ARITH_DEVICE ARITH_HOST simdl operator<=(const simdl &x, const simdl &y) { - return x.elts <= y.elts; + return !(x > y); } friend ARITH_DEVICE ARITH_HOST simdl operator>=(const simdl &x, const simdl &y) { - return x.elts >= y.elts; + return !(x < y); } friend ARITH_DEVICE ARITH_HOST simdl operator==(const bool a, const simdl &y) { - return a == y.elts; + return simdl(a) == y; } friend ARITH_DEVICE ARITH_HOST simdl operator!=(const bool a, const simdl &y) { - return a != y.elts; + return simdl(a) != y; } friend ARITH_DEVICE ARITH_HOST simdl operator<(const bool a, const simdl &y) { - return a < y.elts; + return simdl(a) < y; } friend ARITH_DEVICE ARITH_HOST simdl operator>(const bool a, const simdl &y) { - return a > y.elts; + return simdl(a) > y; } friend ARITH_DEVICE ARITH_HOST simdl operator<=(const bool a, const simdl &y) { - return a <= y.elts; + return simdl(a) <= y; } friend ARITH_DEVICE ARITH_HOST simdl operator>=(const bool a, const simdl &y) { - return a >= y.elts; + return simdl(a) >= y; } friend ARITH_DEVICE ARITH_HOST simdl operator==(const simdl &x, const bool b) { - return x.elts == b; + return x == simdl(b); } friend ARITH_DEVICE ARITH_HOST simdl operator!=(const simdl &x, const bool b) { - return x.elts != b; + return x != simdl(b); } friend ARITH_DEVICE ARITH_HOST simdl operator<(const simdl &x, const bool b) { - return x.elts < b; + return x < simdl(b); } friend ARITH_DEVICE ARITH_HOST simdl operator>(const simdl &x, const bool b) { - return x.elts > b; + return x > simdl(b); } friend ARITH_DEVICE ARITH_HOST simdl operator<=(const simdl &x, const bool b) { - return x.elts <= b; + return x <= simdl(b); } friend ARITH_DEVICE ARITH_HOST simdl operator>=(const simdl &x, const bool b) { - return x.elts >= b; + return x >= simdl(b); } friend ARITH_DEVICE ARITH_HOST bool all(const simdl &x) { -#ifndef SIMD_CPU +#ifndef SIMD_DISABLE return all(x.elts); #else return x.elts; @@ -1250,7 +1460,7 @@ template struct simdl { } friend ARITH_DEVICE ARITH_HOST simdl andnot(const simdl &x, const simdl &y) { -#ifndef SIMD_CPU +#ifndef SIMD_DISABLE return andnotl(x.elts, y.elts); #else return x && !y; @@ -1258,7 +1468,7 @@ template struct simdl { } friend ARITH_DEVICE ARITH_HOST bool any(const simdl &x) { -#ifndef SIMD_CPU +#ifndef SIMD_DISABLE return any(x.elts); #else return x.elts; @@ -1267,7 +1477,7 @@ template struct simdl { friend ARITH_DEVICE ARITH_HOST simd if_else(const simdl &cond, const simd &x, const simd &y) { -#ifndef SIMD_CPU +#ifndef SIMD_DISABLE return if_else1(cond.elts, x.elts, y.elts); #else return cond.elts ? x.elts : y.elts; @@ -1288,7 +1498,7 @@ template struct simdl { friend ARITH_DEVICE ARITH_HOST simdl if_else(const simdl &cond, const simdl &x, const simdl &y) { -#ifndef SIMD_CPU +#ifndef SIMD_DISABLE return if_else1(cond.elts, x.elts, y.elts); #else return cond.elts ? x.elts : y.elts; @@ -1308,14 +1518,14 @@ template struct simdl { } friend ARITH_DEVICE ARITH_HOST void storela(T *ptr, const simdl &x) { -#ifndef SIMD_CPU +#ifndef SIMD_DISABLE storela(ptr, x.elts); #else *ptr = x.elts; #endif } friend ARITH_DEVICE ARITH_HOST void storelu(T *ptr, const simdl &x) { -#ifndef SIMD_CPU +#ifndef SIMD_DISABLE storelu(ptr, x.elts); #else *ptr = x.elts; From ed4293dabe88178a098149b27000ab07e0094c8b Mon Sep 17 00:00:00 2001 From: Erik Schnetter Date: Thu, 12 Sep 2024 11:53:55 -0400 Subject: [PATCH 02/39] Arith: Correct SIMD tests --- Arith/src/simd.cxx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Arith/src/simd.cxx b/Arith/src/simd.cxx index b98430834..3e9a1c10f 100644 --- a/Arith/src/simd.cxx +++ b/Arith/src/simd.cxx @@ -122,7 +122,7 @@ void TestSIMD() { check(isapprox(copysign(a, b), copysign(s, t))); check(isapprox(cos(a), cos(s))); check(isapprox(cosh(a), cosh(s))); - check(isapprox(cospi(a), cos(M_PI * s))); + check(isapprox(cospi(a), cos(CCTK_REAL(M_PI) * s))); check(isapprox(exp(a), exp(s))); check(isapprox(exp10(a), exp10(s))); check(isapprox(exp2(a), exp2(s))); @@ -182,7 +182,7 @@ void TestSIMD() { check(isequal(signbit(a), signbit(s))); check(isapprox(sin(a), sin(s))); check(isapprox(sinh(a), sinh(s))); - check(isapprox(sinpi(a), sin(M_PI * s))); + check(isapprox(sinpi(a), sin(CCTK_REAL(M_PI) * s))); check(isapprox(sqrt(a), sqrt(s))); check(isapprox(tan(a), tan(s))); check(isapprox(tanh(a), tanh(s))); From d412c15b2acff3c4bcd71c64e438e533ed0d6e5f Mon Sep 17 00:00:00 2001 From: Erik Schnetter Date: Thu, 12 Sep 2024 11:58:22 -0400 Subject: [PATCH 03/39] Arith: Correct SIMD tests --- Arith/src/simd.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Arith/src/simd.cxx b/Arith/src/simd.cxx index 3e9a1c10f..26b1c5448 100644 --- a/Arith/src/simd.cxx +++ b/Arith/src/simd.cxx @@ -124,7 +124,7 @@ void TestSIMD() { check(isapprox(cosh(a), cosh(s))); check(isapprox(cospi(a), cos(CCTK_REAL(M_PI) * s))); check(isapprox(exp(a), exp(s))); - check(isapprox(exp10(a), exp10(s))); + check(isapprox(exp10(a), pow(CCTK_REAL(10), s))); check(isapprox(exp2(a), exp2(s))); check(isapprox(fabs(a), fabs(s))); check(isapprox(flipsign(a, b), flipsign(s, t))); From 1cb345921b3b4a69b2a28b4dce6a93e2806e7335 Mon Sep 17 00:00:00 2001 From: Erik Schnetter Date: Thu, 12 Sep 2024 12:04:03 -0400 Subject: [PATCH 04/39] Arith: Remove `constexpr` that some compilers don't like --- Arith/src/simd.hxx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Arith/src/simd.hxx b/Arith/src/simd.hxx index b5bb7fe29..fc46d625e 100644 --- a/Arith/src/simd.hxx +++ b/Arith/src/simd.hxx @@ -574,7 +574,7 @@ template struct simd { return cospi_u05(x.elts); #else using std::acos, std::cos; - constexpr T pi = acos(T(-1)); + const T pi = acos(T(-1)); return cos(pi * x.elts); #endif } @@ -1001,7 +1001,7 @@ template struct simd { return sinpi_u05(x.elts); #else using std::acos, std::sin; - constexpr T pi = acos(T(-1)); + const T pi = acos(T(-1)); return sin(pi * x.elts); #endif } From 351b2481e0a9624f8948018fea426afba62e5e37 Mon Sep 17 00:00:00 2001 From: Erik Schnetter Date: Thu, 12 Sep 2024 12:12:08 -0400 Subject: [PATCH 05/39] Arith: Remove `constexpr` that some compilers don't like --- Arith/src/simd.hxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Arith/src/simd.hxx b/Arith/src/simd.hxx index fc46d625e..9f946b61e 100644 --- a/Arith/src/simd.hxx +++ b/Arith/src/simd.hxx @@ -595,7 +595,7 @@ template struct simd { return exp10_u10(x.elts); #else using std::exp2; - constexpr T log2_10 = log2(T(10)); + const T log2_10 = log2(T(10)); return exp2(log2_10 * x.elts); #endif } From bdd9e46304df0bb813c79caab73d4d3297c3a3c9 Mon Sep 17 00:00:00 2001 From: Erik Schnetter Date: Thu, 12 Sep 2024 12:22:14 -0400 Subject: [PATCH 06/39] TestDerivs: Correct C++ calls to trigonometic functions --- TestDerivs/src/test.cxx | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/TestDerivs/src/test.cxx b/TestDerivs/src/test.cxx index 43e855a26..9a84b5bf4 100644 --- a/TestDerivs/src/test.cxx +++ b/TestDerivs/src/test.cxx @@ -50,7 +50,8 @@ extern "C" void TestDerivs_Set(CCTK_ARGUMENTS) { const CCTK_REAL y0 = p.y; const CCTK_REAL z0 = p.z; vreal u0; - poly(kxx, kxy, kyz, Arith::cos(x0), std::sin(y0), std::sin(z0), u0); + using std::sin, std::cos; + poly(kxx, kxy, kyz, cos(x0), sin(y0), sin(z0), u0); chi.store(mask, p.I, u0); }); @@ -133,12 +134,13 @@ extern "C" void TestDerivs_CalcDerivs(CCTK_ARGUMENTS) { #if CCTK_DEBUG grid.loop_int_device<0, 0, 0>( grid.nghostzones, [=] ARITH_DEVICE(const PointDesc &p) ARITH_INLINE { - const auto sinx = std::sin(p.x); - const auto siny = std::sin(p.y); - const auto sinz = std::sin(p.z); - const auto cosx = std::cos(p.x); - const auto cosy = std::cos(p.y); - const auto cosz = std::cos(p.z); + using std::cos, std::sin; + const auto sinx = sin(p.x); + const auto siny = sin(p.y); + const auto sinz = sin(p.z); + const auto cosx = cos(p.x); + const auto cosy = cos(p.y); + const auto cosz = cos(p.z); const auto dxxdchi = -2 * kxx * cosx * cosx + 2 * kxx * sinx * sinx - kxy * cosx * siny; const auto dxydchi = -kxy * cosy * sinx; From 4dfd6582956fb5c96f075b1c87b3079c2eb5cf12 Mon Sep 17 00:00:00 2001 From: Erik Schnetter Date: Thu, 12 Sep 2024 12:35:21 -0400 Subject: [PATCH 07/39] CI: Disable SIMD the new way --- scripts/actions-cuda-real32.cfg | 2 +- scripts/actions-cuda-real64.cfg | 2 +- scripts/actions-oneapi-real64.cfg | 2 +- scripts/actions-rocm-real64.cfg | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/scripts/actions-cuda-real32.cfg b/scripts/actions-cuda-real32.cfg index 46b94a970..f0c895eae 100644 --- a/scripts/actions-cuda-real32.cfg +++ b/scripts/actions-cuda-real32.cfg @@ -15,7 +15,7 @@ FC = gfortran F90 = gfortran LD = nvcc -CPPFLAGS = -DSIMD_CPU +CPPFLAGS = -DSIMD_DISABLE CFLAGS = -pipe -g -std=gnu11 # - We use "--relocatable-device-code=true" to allow building with # debug versions of AMReX diff --git a/scripts/actions-cuda-real64.cfg b/scripts/actions-cuda-real64.cfg index f81beb5dd..8f9f1bba6 100644 --- a/scripts/actions-cuda-real64.cfg +++ b/scripts/actions-cuda-real64.cfg @@ -15,7 +15,7 @@ FC = gfortran F90 = gfortran LD = nvcc -CPPFLAGS = -DSIMD_CPU +CPPFLAGS = -DSIMD_DISABLE CFLAGS = -pipe -g -std=gnu11 # - We use "--relocatable-device-code=true" to allow building with # debug versions of AMReX diff --git a/scripts/actions-oneapi-real64.cfg b/scripts/actions-oneapi-real64.cfg index 972d35a73..308911841 100644 --- a/scripts/actions-oneapi-real64.cfg +++ b/scripts/actions-oneapi-real64.cfg @@ -16,7 +16,7 @@ F90 = gfortran LD = /opt/intel/oneapi/compiler/2024.2/bin/icpx # -g # Debug information uses too much disk space on CI -CPPFLAGS = -DSIMD_DISABLE -DSIMD_CPU +CPPFLAGS = -DSIMD_DISABLE CFLAGS = -fp-model=precise -march=x86-64-v3 -pipe -std=gnu11 CXXFLAGS = -fp-model=precise -fsycl -march=x86-64-v3 -pipe -std=c++17 FPPFLAGS = -traditional diff --git a/scripts/actions-rocm-real64.cfg b/scripts/actions-rocm-real64.cfg index 1fe8a0ecf..f067f13ba 100644 --- a/scripts/actions-rocm-real64.cfg +++ b/scripts/actions-rocm-real64.cfg @@ -16,7 +16,7 @@ FC = gfortran F90 = gfortran LD = /opt/rocm/llvm/bin/clang++ -CPPFLAGS = -DSIMD_CPU +CPPFLAGS = -DSIMD_DISABLE CFLAGS = -pipe -g -std=gnu11 CXXFLAGS = -pipe -g -std=c++17 --offload-arch=gfx90a FPPFLAGS = -traditional From c3174ee64460fadf95c3a527f2ad9c1a89f00a73 Mon Sep 17 00:00:00 2001 From: Erik Schnetter Date: Wed, 2 Oct 2024 14:44:25 -0400 Subject: [PATCH 08/39] CI: Update Docker images --- .github/workflows/ci.yml | 2 +- docker/carpetx-arm64v8-cpu.dockerfile | 80 +++++++++++++++------------ docker/carpetx-cpu.dockerfile | 16 +++--- docker/carpetx-cuda.dockerfile | 10 ++-- docker/carpetx-oneapi.dockerfile | 10 ++-- docker/carpetx-rocm.dockerfile | 10 ++-- 6 files changed, 69 insertions(+), 59 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 30af9578b..6bc7125fe 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -34,7 +34,7 @@ jobs: # The type of runner that the job will run on runs-on: ubuntu-latest - container: einsteintoolkit/carpetx:${{matrix.accelerator}}-${{matrix.real-precision}} + container: einsteintoolkit/carpetx-testing:${{matrix.accelerator}}-${{matrix.real-precision}}-testing # Steps represent a sequence of tasks that will be executed as part of the job steps: diff --git a/docker/carpetx-arm64v8-cpu.dockerfile b/docker/carpetx-arm64v8-cpu.dockerfile index 49a507eac..c7912bcd6 100644 --- a/docker/carpetx-arm64v8-cpu.dockerfile +++ b/docker/carpetx-arm64v8-cpu.dockerfile @@ -7,8 +7,8 @@ # docker push einsteintoolkit/carpetx:arm64v8-cpu-real32 # noble is ubuntu:24.04 -# FROM arm64v8/ubuntu:noble-20240605 -FROM arm64v8/ubuntu:noble-20240801 +# FROM arm64v8/ubuntu:noble-20240801 +FROM arm64v8/ubuntu:noble-20240904.1 ENV DEBIAN_FRONTEND=noninteractive \ LANGUAGE=en_US.en \ @@ -24,11 +24,13 @@ WORKDIR /cactus # python2 RUN apt-get update && \ apt-get --yes --no-install-recommends install \ + bzip2 \ ca-certificates \ clang-format \ cmake \ cvs \ diffutils \ + elfutils \ g++ \ gcc \ gdb \ @@ -46,8 +48,11 @@ RUN apt-get update && \ libgsl-dev \ libhdf5-dev \ libhwloc-dev \ + libiberty-dev \ + liblzma-dev \ libopenblas-dev \ libopenmpi-dev \ + libpapi-dev \ libpetsc-real-dev \ libtool \ libudev-dev \ @@ -59,6 +64,8 @@ RUN apt-get update && \ meson \ ninja-build \ numactl \ + papi-tools \ + patch \ perl \ pkgconf \ python3 \ @@ -66,43 +73,46 @@ RUN apt-get update && \ python3-requests \ rsync \ subversion \ + tar \ vim \ wget \ xz-utils \ zlib1g-dev \ + zstd \ && \ rm -rf /var/lib/apt/lists/* -# # Install HPCToolkit -# # Install this first because it is expensive to build -# RUN mkdir src && \ -# (cd src && \ -# wget https://github.com/spack/spack/archive/refs/tags/v0.21.0.tar.gz && \ -# tar xzf v0.21.0.tar.gz && \ -# export SPACK_ROOT="$(pwd)/spack-0.21.0" && \ -# mkdir -p "${HOME}/.spack" && \ -# echo 'config: {install_tree: {root: /spack}}' >"${HOME}/.spack/config.yaml" && \ -# . ${SPACK_ROOT}/share/spack/setup-env.sh && \ -# spack external find \ -# autoconf \ -# automake \ -# cmake \ -# diffutils \ -# elfutils \ -# gmake \ -# libtool \ -# m4 \ -# meson \ -# ninja \ -# numactl \ -# perl \ -# pkgconf \ -# python \ -# && \ -# spack install --fail-fast hpctoolkit ~viewer && \ -# spack view --dependencies no hardlink /hpctoolkit hpctoolkit && \ -# true) && \ -# rm -rf src "${HOME}/.spack" +# Install HPCToolkit +# Install this first because it is expensive to build +# Try to reuse build tools from Ubuntu, but do not use any libraries because HPC Toolkit is a bit iffy to install. +RUN mkdir src && \ + (cd src && \ + wget https://github.com/spack/spack/archive/refs/tags/v0.22.2.tar.gz && \ + tar xzf v0.22.2.tar.gz && \ + export SPACK_ROOT="$(pwd)/spack-0.22.2" && \ + mkdir -p "${HOME}/.spack" && \ + echo 'config: {install_tree: {root: /spack}}' >"${HOME}/.spack/config.yaml" && \ + . ${SPACK_ROOT}/share/spack/setup-env.sh && \ + spack external find \ + autoconf \ + automake \ + cmake \ + diffutils \ + elfutils \ + gmake \ + libtool \ + m4 \ + meson \ + ninja \ + numactl \ + perl \ + pkgconf \ + python \ + && \ + spack install --fail-fast hpctoolkit ~viewer && \ + spack view --dependencies no hardlink /hpctoolkit hpctoolkit && \ + true) && \ + rm -rf src "${HOME}/.spack" # Install blosc2 # blosc2 is a compression library, comparable to zlib @@ -286,9 +296,9 @@ ARG real_precision=real64 # Should we keep the AMReX source tree around for debugging? RUN mkdir src && \ (cd src && \ - wget https://github.com/AMReX-Codes/amrex/archive/24.09.tar.gz && \ - tar xzf 24.09.tar.gz && \ - cd amrex-24.09 && \ + wget https://github.com/AMReX-Codes/amrex/archive/24.10.tar.gz && \ + tar xzf 24.10.tar.gz && \ + cd amrex-24.10 && \ case $real_precision in \ real32) precision=SINGLE;; \ real64) precision=DOUBLE;; \ diff --git a/docker/carpetx-cpu.dockerfile b/docker/carpetx-cpu.dockerfile index 9ea26d129..57d2223de 100644 --- a/docker/carpetx-cpu.dockerfile +++ b/docker/carpetx-cpu.dockerfile @@ -7,8 +7,8 @@ # docker push einsteintoolkit/carpetx:cpu-real32 # noble is ubuntu:24.04 -# FROM ubuntu:noble-20240605 -FROM ubuntu:noble-20240801 +# FROM amd64/ubuntu:noble-20240801 +FROM amd64/ubuntu:noble-20240904.1 ENV DEBIAN_FRONTEND=noninteractive \ LANGUAGE=en_US.en \ @@ -87,9 +87,9 @@ RUN apt-get update && \ # Try to reuse build tools from Ubuntu, but do not use any libraries because HPC Toolkit is a bit iffy to install. RUN mkdir src && \ (cd src && \ - wget https://github.com/spack/spack/archive/refs/tags/v0.22.1.tar.gz && \ - tar xzf v0.22.1.tar.gz && \ - export SPACK_ROOT="$(pwd)/spack-0.22.1" && \ + wget https://github.com/spack/spack/archive/refs/tags/v0.22.2.tar.gz && \ + tar xzf v0.22.2.tar.gz && \ + export SPACK_ROOT="$(pwd)/spack-0.22.2" && \ mkdir -p "${HOME}/.spack" && \ echo 'config: {install_tree: {root: /spack}}' >"${HOME}/.spack/config.yaml" && \ . ${SPACK_ROOT}/share/spack/setup-env.sh && \ @@ -296,9 +296,9 @@ ARG real_precision=real64 # Should we keep the AMReX source tree around for debugging? RUN mkdir src && \ (cd src && \ - wget https://github.com/AMReX-Codes/amrex/archive/24.09.tar.gz && \ - tar xzf 24.09.tar.gz && \ - cd amrex-24.09 && \ + wget https://github.com/AMReX-Codes/amrex/archive/24.10.tar.gz && \ + tar xzf 24.10.tar.gz && \ + cd amrex-24.10 && \ case $real_precision in \ real32) precision=SINGLE;; \ real64) precision=DOUBLE;; \ diff --git a/docker/carpetx-cuda.dockerfile b/docker/carpetx-cuda.dockerfile index bafa1f348..4b7fe33e8 100644 --- a/docker/carpetx-cuda.dockerfile +++ b/docker/carpetx-cuda.dockerfile @@ -6,8 +6,8 @@ # docker build --build-arg real_precision=real32 --file carpetx-cuda.dockerfile --tag einsteintoolkit/carpetx:cuda-real32 . # docker push einsteintoolkit/carpetx:cuda-real32 -FROM nvidia/cuda:12.5.1-devel-ubuntu24.04 -#TODO FROM nvidia/cuda:12.6.0-devel-ubuntu24.04 +# FROM amd64/nvidia/cuda:12.5.1-devel-ubuntu24.04 +FROM amd64/nvidia/cuda:12.6.1-devel-ubuntu24.04 ENV DEBIAN_FRONTEND=noninteractive \ LANGUAGE=en_US.en \ @@ -284,9 +284,9 @@ ARG real_precision=real64 # Should we keep the AMReX source tree around for debugging? RUN mkdir src && \ (cd src && \ - wget https://github.com/AMReX-Codes/amrex/archive/24.09.tar.gz && \ - tar xzf 24.09.tar.gz && \ - cd amrex-24.09 && \ + wget https://github.com/AMReX-Codes/amrex/archive/24.10.tar.gz && \ + tar xzf 24.10.tar.gz && \ + cd amrex-24.10 && \ case $real_precision in \ real32) precision=SINGLE;; \ real64) precision=DOUBLE;; \ diff --git a/docker/carpetx-oneapi.dockerfile b/docker/carpetx-oneapi.dockerfile index 3e49a7f28..4a73d8e2d 100644 --- a/docker/carpetx-oneapi.dockerfile +++ b/docker/carpetx-oneapi.dockerfile @@ -6,8 +6,8 @@ # docker build --build-arg real_precision=real32 --file carpetx-oneapi.dockerfile --tag einsteintoolkit/carpetx:oneapi-real32 . # docker push einsteintoolkit/carpetx:oneapi-real32 -# FROM intel/oneapi-basekit:2024.2.0-1-devel-ubuntu22.04 -FROM intel/oneapi-basekit:2024.2.1-0-devel-ubuntu22.04 +# FROM amd64/intel/oneapi-basekit:2024.2.0-1-devel-ubuntu22.04 +FROM amd64/intel/oneapi-basekit:2024.2.1-0-devel-ubuntu22.04 ENV DEBIAN_FRONTEND=noninteractive \ LANGUAGE=en_US.en \ @@ -262,10 +262,10 @@ ARG real_precision=real64 # Should we keep the AMReX source tree around for debugging? RUN mkdir src && \ (cd src && \ - wget https://github.com/AMReX-Codes/amrex/archive/24.09.tar.gz && \ - tar xzf 24.09.tar.gz && \ + wget https://github.com/AMReX-Codes/amrex/archive/24.10.tar.gz && \ + tar xzf 24.10.tar.gz && \ rm -rf /opt/intel/oneapi/mpi && \ - cd amrex-24.09 && \ + cd amrex-24.10 && \ case $real_precision in \ real32) precision=SINGLE;; \ real64) precision=DOUBLE;; \ diff --git a/docker/carpetx-rocm.dockerfile b/docker/carpetx-rocm.dockerfile index e069230a8..d1e64b6db 100644 --- a/docker/carpetx-rocm.dockerfile +++ b/docker/carpetx-rocm.dockerfile @@ -6,8 +6,8 @@ # docker build --build-arg real_precision=real32 --file carpetx-rocm.dockerfile --tag einsteintoolkit/carpetx:rocm-real32 . # docker push einsteintoolkit/carpetx:rocm-real32 -# FROM rocm/dev-ubuntu-22.04:6.1.2 -FROM rocm/dev-ubuntu-24.04:6.2 +# FROM amd64/rocm/dev-ubuntu-22.04:6.1.2 +FROM amd64/rocm/dev-ubuntu-24.04:6.2 ENV DEBIAN_FRONTEND=noninteractive \ LANGUAGE=en_US.en \ @@ -286,9 +286,9 @@ ARG real_precision=real64 # Should we keep the AMReX source tree around for debugging? RUN mkdir src && \ (cd src && \ - wget https://github.com/AMReX-Codes/amrex/archive/24.09.tar.gz && \ - tar xzf 24.09.tar.gz && \ - cd amrex-24.09 && \ + wget https://github.com/AMReX-Codes/amrex/archive/24.10.tar.gz && \ + tar xzf 24.10.tar.gz && \ + cd amrex-24.10 && \ case $real_precision in \ real32) precision=SINGLE;; \ real64) precision=DOUBLE;; \ From 0199035a56a02f9574729e909b1eb445095772d4 Mon Sep 17 00:00:00 2001 From: Erik Schnetter Date: Wed, 2 Oct 2024 14:45:27 -0400 Subject: [PATCH 09/39] CI: Correct Docker image names --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6bc7125fe..e42623231 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -34,7 +34,7 @@ jobs: # The type of runner that the job will run on runs-on: ubuntu-latest - container: einsteintoolkit/carpetx-testing:${{matrix.accelerator}}-${{matrix.real-precision}}-testing + container: einsteintoolkit/carpetx-testing:${{matrix.accelerator}}-${{matrix.real-precision}} # Steps represent a sequence of tasks that will be executed as part of the job steps: From 8bce92accb61ee883fb4eb048f14a2f06c7c8bcf Mon Sep 17 00:00:00 2001 From: Erik Schnetter Date: Wed, 2 Oct 2024 16:15:33 -0400 Subject: [PATCH 10/39] CarpetX: Update to nvtx3 --- CarpetX/src/timer.hxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CarpetX/src/timer.hxx b/CarpetX/src/timer.hxx index 8450e3cb8..80a094d5e 100644 --- a/CarpetX/src/timer.hxx +++ b/CarpetX/src/timer.hxx @@ -4,7 +4,7 @@ #include #ifdef __CUDACC__ -#include +#include #endif #include From cad1c67df38005c0184ff638955995a9e52ef0e3 Mon Sep 17 00:00:00 2001 From: Erik Schnetter Date: Mon, 7 Oct 2024 11:30:19 -0400 Subject: [PATCH 11/39] CI: Reduce optimization level for OneAPI --- scripts/actions-oneapi-real64.cfg | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/actions-oneapi-real64.cfg b/scripts/actions-oneapi-real64.cfg index 972d35a73..5e2d41ccf 100644 --- a/scripts/actions-oneapi-real64.cfg +++ b/scripts/actions-oneapi-real64.cfg @@ -45,8 +45,9 @@ FPP_DEBUG_FLAGS = -DCARPET_DEBUG F90_DEBUG_FLAGS = -fcheck=bounds,do,mem,pointer,recursion -finit-character=65 -finit-integer=42424242 -finit-real=nan OPTIMISE = yes +# -O3 for SYCL leads to a segfault C_OPTIMISE_FLAGS = -O3 -fexcess-precision=fast -ffp-contract=fast -fno-math-errno -fno-rounding-math -CXX_OPTIMISE_FLAGS = -O3 -fexcess-precision=fast -ffp-contract=fast -fno-math-errno -fno-rounding-math +CXX_OPTIMISE_FLAGS = -O2 -fexcess-precision=fast -ffp-contract=fast -fno-math-errno -fno-rounding-math F90_OPTIMISE_FLAGS = -O3 -fcx-limited-range -fexcess-precision=fast -ffp-contract=fast -fno-math-errno -fno-rounding-math -fno-signaling-nans # Clang segfaults with OpenMP enabled From 6e14210fb36357f2dcce40b5d2d449ddf8e080fa Mon Sep 17 00:00:00 2001 From: Erik Schnetter Date: Mon, 7 Oct 2024 12:04:25 -0400 Subject: [PATCH 12/39] CI: Switch to production images --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e42623231..30af9578b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -34,7 +34,7 @@ jobs: # The type of runner that the job will run on runs-on: ubuntu-latest - container: einsteintoolkit/carpetx-testing:${{matrix.accelerator}}-${{matrix.real-precision}} + container: einsteintoolkit/carpetx:${{matrix.accelerator}}-${{matrix.real-precision}} # Steps represent a sequence of tasks that will be executed as part of the job steps: From b13c4c68905a5368ec471c1fe86e2abac39af778 Mon Sep 17 00:00:00 2001 From: "Steven R. Brandt" Date: Tue, 30 Jul 2024 16:16:18 -0500 Subject: [PATCH 13/39] CarpetXRegrid: Move regrid_error to a new thorn. --- CarpetXRegrid/README | 11 ++ CarpetXRegrid/configuration.ccl | 6 + CarpetXRegrid/doc/documentation.tex | 210 ++++++++++++++++++++++++++++ CarpetXRegrid/interface.ccl | 9 ++ CarpetXRegrid/param.ccl | 1 + CarpetXRegrid/schedule.ccl | 6 + CarpetXRegrid/src/make.code.defn | 7 + CarpetXRegrid/src/regrid_error.cxx | 20 +++ 8 files changed, 270 insertions(+) create mode 100644 CarpetXRegrid/README create mode 100644 CarpetXRegrid/configuration.ccl create mode 100644 CarpetXRegrid/doc/documentation.tex create mode 100644 CarpetXRegrid/interface.ccl create mode 100644 CarpetXRegrid/param.ccl create mode 100644 CarpetXRegrid/schedule.ccl create mode 100644 CarpetXRegrid/src/make.code.defn create mode 100644 CarpetXRegrid/src/regrid_error.cxx diff --git a/CarpetXRegrid/README b/CarpetXRegrid/README new file mode 100644 index 000000000..db7e81a67 --- /dev/null +++ b/CarpetXRegrid/README @@ -0,0 +1,11 @@ +Cactus Code Thorn CarpetXRegrid +Author(s) : Steven R. Brandt +Maintainer(s): Steven R. Brandt +Licence : LGPL +-------------------------------------------------------------------------- + +1. Purpose + +Provide an extra grid function, "regrid_error," to the CarpetX driver. +This grid function is used by CarpetX and AMReX to determine where to +refine the grid. diff --git a/CarpetXRegrid/configuration.ccl b/CarpetXRegrid/configuration.ccl new file mode 100644 index 000000000..f6e66747b --- /dev/null +++ b/CarpetXRegrid/configuration.ccl @@ -0,0 +1,6 @@ +# Configuration definitions for thorn CarpetXRegrid +REQUIRES AMReX Arith Loop + +PROVIDES CarpetXRegrid +{ +} diff --git a/CarpetXRegrid/doc/documentation.tex b/CarpetXRegrid/doc/documentation.tex new file mode 100644 index 000000000..f826a908b --- /dev/null +++ b/CarpetXRegrid/doc/documentation.tex @@ -0,0 +1,210 @@ +% *======================================================================* +% Cactus Thorn template for ThornGuide documentation +% Author: Ian Kelley +% Date: Sun Jun 02, 2002 +% $Header$ +% +% Thorn documentation in the latex file doc/documentation.tex +% will be included in ThornGuides built with the Cactus make system. +% The scripts employed by the make system automatically include +% pages about variables, parameters and scheduling parsed from the +% relevant thorn CCL files. +% +% This template contains guidelines which help to assure that your +% documentation will be correctly added to ThornGuides. More +% information is available in the Cactus UsersGuide. +% +% Guidelines: +% - Do not change anything before the line +% % START CACTUS THORNGUIDE", +% except for filling in the title, author, date, etc. fields. +% - Each of these fields should only be on ONE line. +% - Author names should be separated with a \\ or a comma. +% - You can define your own macros, but they must appear after +% the START CACTUS THORNGUIDE line, and must not redefine standard +% latex commands. +% - To avoid name clashes with other thorns, 'labels', 'citations', +% 'references', and 'image' names should conform to the following +% convention: +% ARRANGEMENT_THORN_LABEL +% For example, an image wave.eps in the arrangement CactusWave and +% thorn WaveToyC should be renamed to CactusWave_WaveToyC_wave.eps +% - Graphics should only be included using the graphicx package. +% More specifically, with the "\includegraphics" command. Do +% not specify any graphic file extensions in your .tex file. This +% will allow us to create a PDF version of the ThornGuide +% via pdflatex. +% - References should be included with the latex "\bibitem" command. +% - Use \begin{abstract}...\end{abstract} instead of \abstract{...} +% - Do not use \appendix, instead include any appendices you need as +% standard sections. +% - For the benefit of our Perl scripts, and for future extensions, +% please use simple latex. +% +% *======================================================================* +% +% Example of including a graphic image: +% \begin{figure}[ht] +% \begin{center} +% \includegraphics[width=6cm]{MyArrangement_MyThorn_MyFigure} +% \end{center} +% \caption{Illustration of this and that} +% \label{MyArrangement_MyThorn_MyLabel} +% \end{figure} +% +% Example of using a label: +% \label{MyArrangement_MyThorn_MyLabel} +% +% Example of a citation: +% \cite{MyArrangement_MyThorn_Author99} +% +% Example of including a reference +% \bibitem{MyArrangement_MyThorn_Author99} +% {J. Author, {\em The Title of the Book, Journal, or periodical}, 1 (1999), +% 1--16. {\tt http://www.nowhere.com/}} +% +% *======================================================================* + +% If you are using CVS use this line to give version information +% $Header$ + +\documentclass{article} + +% Use the Cactus ThornGuide style file +% (Automatically used from Cactus distribution, if you have a +% thorn without the Cactus Flesh download this from the Cactus +% homepage at www.cactuscode.org) +\usepackage{../../../../doc/latex/cactus} + +\begin{document} + +% The author of the documentation +\author{Steven R. Brandt \textless sbrandt@cct.lsu.edu\textgreater \\ + Roland Haas \textless rhaas@illinois.edu\textgreater} + +% The title of the document (not necessarily the name of the Thorn) +\title{CarpetXRegrid} + +% the date your document was last changed, if your document is in CVS, +% please use: +% \date{$ $Date$ $} +% when using git instead record the commit ID: +% \date{\gitrevision{}} +\date{July 30 2024} + +\maketitle + +% Do not delete next line +% START CACTUS THORNGUIDE + +% Add all definitions used in this documentation here +% \def\mydef etc + +% Add an abstract for this thorn's documentation +\begin{abstract} + +Provide a grid function, \code{regrid\_error}, to the \code{CarpetX} driver. +This grid function is used by \code{CarpetX} and \code{AMReX} to determine +where to refine the grid. + +\end{abstract} + +% The following sections are suggestive only. +% Remove them or add your own. + +\section{Introduction} + +\code{AMReX}~\cite{CarpetX_CarpetXRegrid_AMReX_JOSS} and thus \code{CarpetX} +implement Berger-Oliger~\cite{CarpetX_CarpetXRegrid_Berger:1984zza} type +structured mesh refinement. Grid \emph{cells} are tagged for refinement in +\code{CarpetX} using the overloaded virtual function \code{AmrCore::ErrorEst}. + +This thorn, in combination with \code{CarpetX}, provides a covenient way for +\code{Cactus} thorns to label cells needed refinement via a cell centered +grid function \code{regrid\_error} whose value controls if a cell is marked +for refinement or not. + +A cell is marked for refinement if the value found in \code{regrid\_error} +exceeds the threshold in parameter \code{CarpetX::regrid\_error\_threshold} +and marked as not requiring refinement otherwise. + +A client thorn wishing to control refinement should schedule a function in +schedule bins \code{POSTINITIAL} and \code{POSTSTEP}. See thorn +\code{ErrorEstimator} for an example. + +\section{Numerical Implementation} + +This thorn only provides access to the tagging grid function +\code{regrid\_error} and initializes it to zero at the beginning of the +simulation. + +\section{Using This Thorn} + +To use this thorn, make sure to \texttt{inherit} from \code{CarpetXRegrid} to +gain access to the public grid function \code{regrid\_error}. +A client thorn wishing to control refinement should then schedule a function in +schedule bins \code{POSTINITIAL} and \code{POSTSTEP} which should loop over +the \texttt{interior} of cell centered grid function \code{regrid\_error} +marking each cell for refinement or no refinement as needed. See thorn +\code{ErrorEstimator} for an example. + +In the future, to allow multiple independent regridding criteria to contribute +to mesh refinement, grid function \code{regrid\_error} may be interpreted as a +boolean flag with true / false indicated by values of $1.0$ and $0.0$ (and all +other values considered invalid). In the future this will require that a thorn +should never reset non-zero value back to zero. + +\subsection{Obtaining This Thorn} + +This thorn is included in the \code{CarpetX} arrangement which is part of the +Einstein Toolkit. + +\subsection{Special Behaviour} + +This thorn will initialize the error estimator grid function +\code{regrid\_error} to zero at the beginning of a simulation but does not +change or use its values otherwise. + +In the future it may reset the error estimator grid function before client +thorns mark cells for refinement. + +\subsection{Interaction With Other Thorns} + +This thorn only provides access to \code{regrid\_error}, while the actual +regrid happens inside of \code{CarpetX} and \code{AMReX}. + +\subsection{Examples} + +Please consult thorn \code{ErrorEstimator} for an example on how to use this +thorn. + +\begin{verbatim} +extern "C" void MyRegrid_EstError(CCTK_ARGUMENTS) { + DECLARE_CCTK_ARGUMENTSX_MyRegrid_EstError; + DECLARE_CCTK_PARAMETERS; + + grid.loop_all_device<1, 1, 1>( + grid.nghostzones, + [=] CCTK_DEVICE(const Loop::PointDesc &p) + CCTK_ATTRIBUTE_ALWAYS_INLINE { + regrid_error(p.I) = fabs(p.x) < 42. ? 1.0 : 0.0; + } + ); +} +\end{verbatim} + +\subsection{Support and Feedback} + +For questions and bug reports please use the Einstein Toolkit users mailing +list \url{users@einsteintoolkit.org} and bug tracker +\url{https://trac.einsteintoolkit.org}. + +\begin{thebibliography}{9} +\bibitem{CarpetX_CarpetXRegrid_AMReX_JOSS} Zhang, W., Almgren, A., Beckner, V., Bell, J., Blaschke, J., Chan, C., Day, M., Friesen, B., Gott, K., Graves, D., Katz, M., Myers, A., Nguyen, T., Nonaka, A., Rosso, M., Williams, S. \& Zingale, M. AMReX: a framework for block-structured adaptive mesh refinement. {\em Journal Of Open Source Software}. \textbf{4}, 1370 (2019,5), https://doi.org/10.21105/joss.01370 +\bibitem{CarpetX_CarpetXRegrid_Berger:1984zza} M.~J.~Berger and J.~Oliger, ``Adaptive Mesh Refinement for Hyperbolic Partial Differential Equations,'' J. Comput. Phys. \textbf{53} (1984), 484 doi:10.1016/0021-9991(84)90073-1 +\end{thebibliography} + +% Do not delete next line +% END CACTUS THORNGUIDE + +\end{document} diff --git a/CarpetXRegrid/interface.ccl b/CarpetXRegrid/interface.ccl new file mode 100644 index 000000000..553c446bb --- /dev/null +++ b/CarpetXRegrid/interface.ccl @@ -0,0 +1,9 @@ +# Interface definition for thorn CarpetXRegrid +IMPLEMENTS: CarpetXRegrid + +PUBLIC: + +CCTK_REAL regrid_error TYPE=gf CENTERING={ccc} TAGS='checkpoint="no"' +{ + regrid_error +} "Regridding condition" diff --git a/CarpetXRegrid/param.ccl b/CarpetXRegrid/param.ccl new file mode 100644 index 000000000..fa1f9f566 --- /dev/null +++ b/CarpetXRegrid/param.ccl @@ -0,0 +1 @@ +# Parameter definitions for thorn CarpetXRegrid diff --git a/CarpetXRegrid/schedule.ccl b/CarpetXRegrid/schedule.ccl new file mode 100644 index 000000000..778ec454c --- /dev/null +++ b/CarpetXRegrid/schedule.ccl @@ -0,0 +1,6 @@ +# Schedule definitions for thorn CarpetXRegrid +SCHEDULE CarpetXRegrid_InitError AT basegrid +{ + LANG: C + WRITES: CarpetXRegrid::regrid_error(everywhere) +} "Initialize regridding error to zero" diff --git a/CarpetXRegrid/src/make.code.defn b/CarpetXRegrid/src/make.code.defn new file mode 100644 index 000000000..583586e0c --- /dev/null +++ b/CarpetXRegrid/src/make.code.defn @@ -0,0 +1,7 @@ +# Main make.code.defn file for thorn CarpetXRegrid + +# Source files in this directory +SRCS = regrid_error.cxx + +# Subdirectories containing source files +SUBDIRS = diff --git a/CarpetXRegrid/src/regrid_error.cxx b/CarpetXRegrid/src/regrid_error.cxx new file mode 100644 index 000000000..cb75eaaa7 --- /dev/null +++ b/CarpetXRegrid/src/regrid_error.cxx @@ -0,0 +1,20 @@ +#include + +#include +#include +#include + +namespace CarpetXRegrid { +using namespace std; + +extern "C" void CarpetXRegrid_InitError(CCTK_ARGUMENTS) { + DECLARE_CCTK_ARGUMENTSX_CarpetXRegrid_InitError; + DECLARE_CCTK_PARAMETERS; + + grid.loop_all_device<1, 1, 1>( + grid.nghostzones, + [=] CCTK_DEVICE(const Loop::PointDesc &p) + CCTK_ATTRIBUTE_ALWAYS_INLINE { regrid_error(p.I) = 0; }); +} + +} // namespace CarpetXRegrid From c1f021b7d846e877daa9e33562658215adc4ff5d Mon Sep 17 00:00:00 2001 From: Roland Haas Date: Tue, 3 Sep 2024 10:55:45 -0500 Subject: [PATCH 14/39] CI: Add CarpetXRegrid to thorn list --- scripts/carpetx.th | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/carpetx.th b/scripts/carpetx.th index 723d6cbb0..7b36eb5f4 100644 --- a/scripts/carpetx.th +++ b/scripts/carpetx.th @@ -701,6 +701,7 @@ CarpetX/Algo CarpetX/Arith CarpetX/BoxInBox CarpetX/CarpetX +CarpetX/CarpetXRegrid CarpetX/CoordinatesX CarpetX/Derivs CarpetX/ErrorEstimator From d878cf69af908455658eede3dab69bdd73d6e9d9 Mon Sep 17 00:00:00 2001 From: "Steven R. Brandt" Date: Mon, 29 Jul 2024 13:15:12 -0500 Subject: [PATCH 15/39] CarpetX: Change the implementation to Driver This involves adding a parameter "periodic" whose default value is "no." It also involves modifying parameter files, file names, and source files where the name "CarpetX" needs to be replaced by "Driver." --- CarpetX/configuration.ccl | 2 +- CarpetX/doc/documentation.tex | 9 ++++--- CarpetX/interface.ccl | 13 +-------- CarpetX/par/brill-lindquist-checkpoint.par | 6 ++--- CarpetX/par/brill-lindquist-read.par | 6 ++--- CarpetX/par/brill-lindquist-recover.par | 6 ++--- CarpetX/par/brill-lindquist-write.par | 6 ++--- CarpetX/param.ccl | 31 +++++++++++++++------- CarpetX/schedule.ccl | 10 ------- CarpetX/src/driver.cxx | 8 +++--- CarpetX/src/make.code.defn | 1 - CarpetX/src/regrid_error.cxx | 21 --------------- CarpetX/src/schedule.cxx | 4 +-- 13 files changed, 47 insertions(+), 76 deletions(-) delete mode 100644 CarpetX/src/regrid_error.cxx diff --git a/CarpetX/configuration.ccl b/CarpetX/configuration.ccl index 5db400799..41757ba75 100644 --- a/CarpetX/configuration.ccl +++ b/CarpetX/configuration.ccl @@ -2,7 +2,7 @@ REQUIRES AMReX IOUtil MPI yaml_cpp zlib -REQUIRES Arith Loop +REQUIRES Arith CarpetXRegrid Loop OPTIONAL ADIOS2 { diff --git a/CarpetX/doc/documentation.tex b/CarpetX/doc/documentation.tex index 28a5b3f54..6e2d52266 100644 --- a/CarpetX/doc/documentation.tex +++ b/CarpetX/doc/documentation.tex @@ -126,6 +126,7 @@ % Add all definitions used in this documentation here \newcommand{\CarpetX}{\texttt{CarpetX}} +\newcommand{\CarpetXRegridError}{\texttt{CarpetXRegridError}} \newcommand{\Cactus}{\texttt{Cactus}} \newcommand{\AMReX}{\texttt{AMReX}} \newcommand{\ETK}{\texttt{Einstein Toolkit}} @@ -449,7 +450,7 @@ \section{Loops over grid elements} to the thorn's \texttt{configuration.ccl} file and % \begin{lstlisting}[language=Bash] - INHERITS: CarpetX + INHERITS: CarpetXRegrid USES INCLUDE HEADER: loop_device.hxx \end{lstlisting} % @@ -972,7 +973,7 @@ \subsection{Box-in-box AMR} \subsection{Advanced AMR} \label{sec:advanced_amr} -\CarpetX\space supports non-fixed (adaptive) mesh refinement. For cell level control of AMR, \CarpetX\space provides user with a cell centered and non-checkpointed grid function called \texttt{regrid\_error}. Users are responsible for filling this grid function with real value however they see fit. Once it is filled, the configuration parameter \texttt{CarpetX::regrid\_error\_threshold} controls regridding: If the values stored in \texttt{regrid\_error} are larger than what is set in \texttt{regrid\_error\_threshold}, the region gets refined. Additionally, the configuration parameter \texttt{CarpetX::regrid\_every} controls how many iterations should pass before checking if the error threshold has been exceeded. The parameter \texttt{CarpetX::max\_num\_levels} controls the maximum number of allowed refinement levels. +\CarpetX\space supports non-fixed (adaptive) mesh refinement. For cell level control of AMR, \CarpetXRegridError\space provides users with a cell centered and non-checkpointed grid function called \texttt{regrid\_error}. Users are responsible for filling this grid function with real value however they see fit. Once it is filled, the configuration parameter \texttt{CarpetX::regrid\_error\_threshold} controls regridding: If the values stored in \texttt{regrid\_error} are larger than what is set in \texttt{regrid\_error\_threshold}, the region gets refined. Additionally, the configuration parameter \texttt{CarpetX::regrid\_every} controls how many iterations should pass before checking if the error threshold has been exceeded. The parameter \texttt{CarpetX::max\_num\_levels} controls the maximum number of allowed refinement levels. Note that \CarpetX\space \textbf{does not} provide a ``standardized'' regrid error routine. This is because refinement criteria are highly specific to the problem being solved via AMR, and thus there is no one size fits all error criteria. This might seem inconvenient, but ultimately it allows for users to have higher degrees of customization in their AMR codes. For demonstration purposes, we shall now provide a routine that estimates the regrinding error as \todo{what? Provide a good starter example}. This implementation could be used as a starting point for codes that wish to use different error criteria in their AMR grids. @@ -999,14 +1000,14 @@ \subsection{Advanced AMR} { LANG: C READS: state(everywhere) - WRITES: CarpetX::regrid_error(interior) + WRITES: CarpetXRegrid::regrid_error(interior) } "Estimate error for regridding" SCHEDULE EstimateError AT poststep { LANG: C READS: state(everywhere) - WRITES: CarpetX::regrid_error(interior) + WRITES: CarpetXRegrid::regrid_error(interior) } "Estimate error for regridding" \end{lstlisting} diff --git a/CarpetX/interface.ccl b/CarpetX/interface.ccl index e4c4ea1a3..a1433268f 100644 --- a/CarpetX/interface.ccl +++ b/CarpetX/interface.ccl @@ -1,8 +1,6 @@ # Interface definition for thorn CarpetX -IMPLEMENTS: CarpetX - -INHERITS: IO +IMPLEMENTS: Driver USES INCLUDE HEADER: silo.hxx @@ -168,12 +166,3 @@ CCTK_INT FUNCTION DriverInterpolate( CCTK_INT ARRAY IN output_array_types, CCTK_POINTER ARRAY IN output_arrays) PROVIDES FUNCTION DriverInterpolate WITH CarpetX_DriverInterpolate LANGUAGE C - - - -PUBLIC: - -CCTK_REAL regrid_error TYPE=gf CENTERING={ccc} TAGS='checkpoint="no"' -{ - regrid_error -} "Regridding condition" diff --git a/CarpetX/par/brill-lindquist-checkpoint.par b/CarpetX/par/brill-lindquist-checkpoint.par index 7ae5391d1..b002f086b 100644 --- a/CarpetX/par/brill-lindquist-checkpoint.par +++ b/CarpetX/par/brill-lindquist-checkpoint.par @@ -29,9 +29,9 @@ CarpetX::ncells_x = 64 CarpetX::ncells_y = 64 CarpetX::ncells_z = 64 -CarpetX::periodic_x = no -CarpetX::periodic_y = no -CarpetX::periodic_z = no +Driver::periodic_x = no +Driver::periodic_y = no +Driver::periodic_z = no # CarpetX::reflection_x = yes # CarpetX::reflection_y = yes # CarpetX::reflection_z = yes diff --git a/CarpetX/par/brill-lindquist-read.par b/CarpetX/par/brill-lindquist-read.par index 3e31d7b07..faa20da2b 100644 --- a/CarpetX/par/brill-lindquist-read.par +++ b/CarpetX/par/brill-lindquist-read.par @@ -28,9 +28,9 @@ CarpetX::ncells_x = 64 CarpetX::ncells_y = 64 CarpetX::ncells_z = 64 -CarpetX::periodic_x = no -CarpetX::periodic_y = no -CarpetX::periodic_z = no +Driver::periodic_x = no +Driver::periodic_y = no +Driver::periodic_z = no # CarpetX::reflection_x = yes # CarpetX::reflection_y = yes # CarpetX::reflection_z = yes diff --git a/CarpetX/par/brill-lindquist-recover.par b/CarpetX/par/brill-lindquist-recover.par index 725ff0b8f..e7990183a 100644 --- a/CarpetX/par/brill-lindquist-recover.par +++ b/CarpetX/par/brill-lindquist-recover.par @@ -29,9 +29,9 @@ CarpetX::ncells_x = 64 CarpetX::ncells_y = 64 CarpetX::ncells_z = 64 -CarpetX::periodic_x = no -CarpetX::periodic_y = no -CarpetX::periodic_z = no +Driver::periodic_x = no +Driver::periodic_y = no +Driver::periodic_z = no # CarpetX::reflection_x = yes # CarpetX::reflection_y = yes # CarpetX::reflection_z = yes diff --git a/CarpetX/par/brill-lindquist-write.par b/CarpetX/par/brill-lindquist-write.par index a587c0fc0..72426410b 100644 --- a/CarpetX/par/brill-lindquist-write.par +++ b/CarpetX/par/brill-lindquist-write.par @@ -29,9 +29,9 @@ CarpetX::ncells_x = 64 CarpetX::ncells_y = 64 CarpetX::ncells_z = 64 -CarpetX::periodic_x = no -CarpetX::periodic_y = no -CarpetX::periodic_z = no +Driver::periodic_x = no +Driver::periodic_y = no +Driver::periodic_z = no # CarpetX::reflection_x = yes # CarpetX::reflection_y = yes # CarpetX::reflection_z = yes diff --git a/CarpetX/param.ccl b/CarpetX/param.ccl index 8addfe4e3..30d03e99f 100644 --- a/CarpetX/param.ccl +++ b/CarpetX/param.ccl @@ -69,18 +69,31 @@ CCTK_INT ncells_z "Number of grid cells" -BOOLEAN periodic_x "Periodic" +RESTRICTED: + +BOOLEAN periodic "Periodic boundary conditions" { -} no + "yes" :: "must be set for any periodic_x,y,z to be effective" + "no" :: "no periodicity" +} "no" -BOOLEAN periodic_y "Periodic" +BOOLEAN periodic_x "Periodic boundary conditions in x-direction" { -} no + "yes" :: "periodic in x direction, requires periodic=yes as well" + "no" :: "not periodic in x direction" +} "yes" -BOOLEAN periodic_z "Periodic" +BOOLEAN periodic_y "Periodic boundary conditions in y-direction" { -} no + "yes" :: "periodic in y direction, requires periodic=yes as well" + "no" :: "not periodic in y direction" +} "yes" +BOOLEAN periodic_z "Periodic boundary conditions in z-direction" +{ + "yes" :: "periodic in z direction, requires periodic=yes as well" + "no" :: "not periodic in z direction" +} "yes" PRIVATE: @@ -376,17 +389,15 @@ CCTK_INT max_num_levels "Maximum number of refinement levels" 1:* :: "" } 1 -RESTRICTED: +#TODO: move to CarpetRegridX CCTK_INT regrid_every "Regridding interval" STEERABLE=always { 0 :: "never" 1:* :: "every that many iterations" } 0 - -PRIVATE: - +#TODO: eliminate in favor of regrid_error being a true/false field CCTK_REAL regrid_error_threshold "Regridding error threshold" STEERABLE=always { 0.0:* :: "" diff --git a/CarpetX/schedule.ccl b/CarpetX/schedule.ccl index ef1e29a6d..7724baa8d 100644 --- a/CarpetX/schedule.ccl +++ b/CarpetX/schedule.ccl @@ -20,16 +20,6 @@ if (!CCTK_Equals(recover, "no") && *recover_file) -# Error estimation - -SCHEDULE CarpetX_InitError AT basegrid -{ - LANG: C - WRITES: regrid_error(everywhere) -} "Initialize regridding error to zero" - - - # I/O SCHEDULE CarpetX_CheckpointInitial AT cpinitial diff --git a/CarpetX/src/driver.cxx b/CarpetX/src/driver.cxx index 89aea53d1..aed7fe00f 100644 --- a/CarpetX/src/driver.cxx +++ b/CarpetX/src/driver.cxx @@ -133,8 +133,10 @@ std::array, 2> get_symmetries(const int patch) { is_interpatch[f][d] = is_interpatch_boundary[2 * d + f]; } const std::array, 2> is_periodic{{ - {{bool(periodic_x), bool(periodic_y), bool(periodic_z)}}, - {{bool(periodic_x), bool(periodic_y), bool(periodic_z)}}, + {{bool(periodic && periodic_x), bool(periodic && periodic_y), + bool(periodic && periodic_z)}}, + {{bool(periodic && periodic_x), bool(periodic && periodic_y), + bool(periodic && periodic_z)}}, }}; const array, 2> is_reflection{{ {{bool(reflection_x), bool(reflection_y), bool(reflection_z)}}, @@ -1562,7 +1564,7 @@ void CactusAmrCore::ErrorEst(const int level, amrex::TagBoxArray &tags, #pragma omp critical CCTK_VINFO("ErrorEst patch %d level %d", patch, level); - const int gi = CCTK_GroupIndex("CarpetX::regrid_error"); + const int gi = CCTK_GroupIndex("CarpetXRegrid::regrid_error"); assert(gi >= 0); const int vi = 0; const int tl = 0; diff --git a/CarpetX/src/make.code.defn b/CarpetX/src/make.code.defn index 03d90e5af..08471e01d 100644 --- a/CarpetX/src/make.code.defn +++ b/CarpetX/src/make.code.defn @@ -51,7 +51,6 @@ SRCS = \ prolongate_3d_rf2_impl_poly.cxx \ prolongate_3d_rf2_impl_poly_cons3lfb.cxx \ reduction.cxx \ - regrid_error.cxx \ schedule.cxx \ task_manager.cxx \ timer.cxx \ diff --git a/CarpetX/src/regrid_error.cxx b/CarpetX/src/regrid_error.cxx deleted file mode 100644 index 39a7bb09c..000000000 --- a/CarpetX/src/regrid_error.cxx +++ /dev/null @@ -1,21 +0,0 @@ -#include "schedule.hxx" - -#include - -#include -#include -#include - -namespace CarpetX { - -extern "C" void CarpetX_InitError(CCTK_ARGUMENTS) { - DECLARE_CCTK_ARGUMENTSX_CarpetX_InitError; - DECLARE_CCTK_PARAMETERS; - - grid.loop_device<1, 1, 1, where_t::everywhere>( - grid.nghostzones, - [=] CCTK_DEVICE(const Loop::PointDesc &p) - CCTK_ATTRIBUTE_ALWAYS_INLINE { regrid_error(p.I) = 0; }); -} - -} // namespace CarpetX diff --git a/CarpetX/src/schedule.cxx b/CarpetX/src/schedule.cxx index 0770dc142..5f2bdd893 100644 --- a/CarpetX/src/schedule.cxx +++ b/CarpetX/src/schedule.cxx @@ -2278,7 +2278,7 @@ int SyncGroupsByDirI(const cGH *restrict cctkGH, int numgroups, CCTK_VINFO("SyncGroups %s", buf.str().c_str()); } - const int gi_regrid_error = CCTK_GroupIndex("CarpetX::regrid_error"); + const int gi_regrid_error = CCTK_GroupIndex("CarpetXRegrid::regrid_error"); assert(gi_regrid_error >= 0); vector groups; @@ -2655,7 +2655,7 @@ void Restrict(const cGH *cctkGH, int level, const vector &groups) { static Timer timer("Restrict"); Interval interval(timer); - const int gi_regrid_error = CCTK_GroupIndex("CarpetX::regrid_error"); + const int gi_regrid_error = CCTK_GroupIndex("CarpetXRegrid::regrid_error"); assert(gi_regrid_error >= 0); for (const auto &patchdata : ghext->patchdata) { From 09ee62cb50f0314f8dc4e991a56cbd09e92c332e Mon Sep 17 00:00:00 2001 From: Roland Haas Date: Tue, 3 Sep 2024 15:19:59 -0500 Subject: [PATCH 16/39] Algo: remove parameter file and changing data from test output --- Algo/test/test_roots.par | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Algo/test/test_roots.par b/Algo/test/test_roots.par index 70b269910..1b3258143 100644 --- a/Algo/test/test_roots.par +++ b/Algo/test/test_roots.par @@ -6,3 +6,9 @@ ActiveThorns = " Cactus::presync_mode = "mixed-error" Cactus::cctk_itlast = 0 + +IO::out_fileinfo = "axis labels" +IO::parfile_write = no + +CarpetX::out_metadata = no + From d7c1cbb17753a2a26e5cf8bed68345a0d8241b37 Mon Sep 17 00:00:00 2001 From: Roland Haas Date: Tue, 10 Sep 2024 14:58:05 -0500 Subject: [PATCH 17/39] BenchX: sort thorns alphabetically --- BenchX/par/benchmark-carpet.par | 2 +- BenchX/par/benchmark-z4c+asterx.par | 2 +- BenchX/par/benchmark-z4c+grhydrox.par | 2 +- BenchX/par/benchmark-z4c.par | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/BenchX/par/benchmark-carpet.par b/BenchX/par/benchmark-carpet.par index 431f8c410..72c80e4ba 100644 --- a/BenchX/par/benchmark-carpet.par +++ b/BenchX/par/benchmark-carpet.par @@ -6,8 +6,8 @@ ActiveThorns = " CartGrid3D CoordBase Formaline - InitBase IOUtil + InitBase ML_WaveToy MoL ReflectionSymmetry diff --git a/BenchX/par/benchmark-z4c+asterx.par b/BenchX/par/benchmark-z4c+asterx.par index 8cca2261b..0bc057226 100644 --- a/BenchX/par/benchmark-z4c+asterx.par +++ b/BenchX/par/benchmark-z4c+asterx.par @@ -1,4 +1,5 @@ ActiveThorns = " + # SystemTopology ADMBase AsterSeeds AsterX @@ -7,7 +8,6 @@ ActiveThorns = " HydroBase IOUtil ODESolvers - # SystemTopology TOVSolver TimerReport TmunuBase diff --git a/BenchX/par/benchmark-z4c+grhydrox.par b/BenchX/par/benchmark-z4c+grhydrox.par index fde794a85..561e1f729 100644 --- a/BenchX/par/benchmark-z4c+grhydrox.par +++ b/BenchX/par/benchmark-z4c+grhydrox.par @@ -1,4 +1,5 @@ ActiveThorns = " + # SystemTopology ADMBase CarpetX ErrorEstimator @@ -8,7 +9,6 @@ ActiveThorns = " HydroBase IOUtil ODESolvers - # SystemTopology TimerReport TmunuBase Z4c diff --git a/BenchX/par/benchmark-z4c.par b/BenchX/par/benchmark-z4c.par index 39ef13978..7a5cd2143 100644 --- a/BenchX/par/benchmark-z4c.par +++ b/BenchX/par/benchmark-z4c.par @@ -1,11 +1,11 @@ ActiveThorns = " + # SystemTopology ADMBaseX CarpetX ErrorEstimator Formaline IOUtil ODESolvers - # SystemTopology TimerReport TmunuBaseX Z4c From bd63ea5e16bd18a85a1a1bdfd2a6ef6d5d5299e6 Mon Sep 17 00:00:00 2001 From: Roland Haas Date: Thu, 29 Aug 2024 16:10:37 -0500 Subject: [PATCH 18/39] BenchX: adapt to CarpetX implementation change required due to CarpetX implemting "Driver" --- BenchX/par/benchmark-carpetx.par | 2 +- BenchX/par/benchmark-z4c+grhydrox.par | 2 +- BenchX/par/benchmark-z4c.par | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/BenchX/par/benchmark-carpetx.par b/BenchX/par/benchmark-carpetx.par index c2830dde7..6ed9b3270 100644 --- a/BenchX/par/benchmark-carpetx.par +++ b/BenchX/par/benchmark-carpetx.par @@ -63,7 +63,7 @@ CarpetX::boundary_upper_z = "dirichlet" CarpetX::max_num_levels = $nlevels CarpetX::regrid_every = 0 -CarpetX::regrid_error_threshold = 2.0 +Driver::regrid_error_threshold = 2.0 ErrorEstimator::region_shape = "cube" ErrorEstimator::scale_by_resolution = yes diff --git a/BenchX/par/benchmark-z4c+grhydrox.par b/BenchX/par/benchmark-z4c+grhydrox.par index 561e1f729..128117593 100644 --- a/BenchX/par/benchmark-z4c+grhydrox.par +++ b/BenchX/par/benchmark-z4c+grhydrox.par @@ -66,7 +66,7 @@ CarpetX::boundary_upper_z = "dirichlet" CarpetX::max_num_levels = $nlevels CarpetX::regrid_every = 0 -CarpetX::regrid_error_threshold = 2.0 +Driver::regrid_error_threshold = 2.0 ErrorEstimator::region_shape = "cube" ErrorEstimator::scale_by_resolution = yes diff --git a/BenchX/par/benchmark-z4c.par b/BenchX/par/benchmark-z4c.par index 7a5cd2143..c04aba696 100644 --- a/BenchX/par/benchmark-z4c.par +++ b/BenchX/par/benchmark-z4c.par @@ -63,7 +63,7 @@ CarpetX::boundary_upper_z = "dirichlet" CarpetX::max_num_levels = $nlevels CarpetX::regrid_every = 0 -CarpetX::regrid_error_threshold = 2.0 +Driver::regrid_error_threshold = 2.0 ErrorEstimator::region_shape = "cube" ErrorEstimator::scale_by_resolution = yes From 4948647ac41a075f89017ac5084ca2aaea5b7f84 Mon Sep 17 00:00:00 2001 From: Roland Haas Date: Thu, 29 Aug 2024 16:10:37 -0500 Subject: [PATCH 19/39] BoxInBox: adapt to CarpetX implementation change required due to CarpetX implemting "Driver" --- BoxInBox/interface.ccl | 2 +- BoxInBox/schedule.ccl | 4 ++-- BoxInBox/test/levels1.par | 4 +++- ...000000.x.tsv => carpetxregrid-regrid_error.it000000.x.tsv} | 0 ...000000.y.tsv => carpetxregrid-regrid_error.it000000.y.tsv} | 0 ...000000.z.tsv => carpetxregrid-regrid_error.it000000.z.tsv} | 0 ...000010.x.tsv => carpetxregrid-regrid_error.it000010.x.tsv} | 0 ...000010.y.tsv => carpetxregrid-regrid_error.it000010.y.tsv} | 0 ...000010.z.tsv => carpetxregrid-regrid_error.it000010.z.tsv} | 0 ...arpetx-regrid_error.tsv => carpetxregrid-regrid_error.tsv} | 0 BoxInBox/test/levels2.par | 4 +++- ...000000.x.tsv => carpetxregrid-regrid_error.it000000.x.tsv} | 0 ...000000.y.tsv => carpetxregrid-regrid_error.it000000.y.tsv} | 0 ...000000.z.tsv => carpetxregrid-regrid_error.it000000.z.tsv} | 0 ...000010.x.tsv => carpetxregrid-regrid_error.it000010.x.tsv} | 0 ...000010.y.tsv => carpetxregrid-regrid_error.it000010.y.tsv} | 0 ...000010.z.tsv => carpetxregrid-regrid_error.it000010.z.tsv} | 0 ...arpetx-regrid_error.tsv => carpetxregrid-regrid_error.tsv} | 0 BoxInBox/test/levels20.par | 4 +++- ...000000.x.tsv => carpetxregrid-regrid_error.it000000.x.tsv} | 0 ...000000.y.tsv => carpetxregrid-regrid_error.it000000.y.tsv} | 0 ...000000.z.tsv => carpetxregrid-regrid_error.it000000.z.tsv} | 0 ...000010.x.tsv => carpetxregrid-regrid_error.it000010.x.tsv} | 0 ...000010.y.tsv => carpetxregrid-regrid_error.it000010.y.tsv} | 0 ...000010.z.tsv => carpetxregrid-regrid_error.it000010.z.tsv} | 0 ...arpetx-regrid_error.tsv => carpetxregrid-regrid_error.tsv} | 0 BoxInBox/test/levels3.par | 4 +++- ...000000.x.tsv => carpetxregrid-regrid_error.it000000.x.tsv} | 0 ...000000.y.tsv => carpetxregrid-regrid_error.it000000.y.tsv} | 0 ...000000.z.tsv => carpetxregrid-regrid_error.it000000.z.tsv} | 0 ...000010.x.tsv => carpetxregrid-regrid_error.it000010.x.tsv} | 0 ...000010.y.tsv => carpetxregrid-regrid_error.it000010.y.tsv} | 0 ...000010.z.tsv => carpetxregrid-regrid_error.it000010.z.tsv} | 0 ...arpetx-regrid_error.tsv => carpetxregrid-regrid_error.tsv} | 0 BoxInBox/test/regions2.par | 4 +++- ...000000.x.tsv => carpetxregrid-regrid_error.it000000.x.tsv} | 0 ...000000.y.tsv => carpetxregrid-regrid_error.it000000.y.tsv} | 0 ...000000.z.tsv => carpetxregrid-regrid_error.it000000.z.tsv} | 0 ...000010.x.tsv => carpetxregrid-regrid_error.it000010.x.tsv} | 0 ...000010.y.tsv => carpetxregrid-regrid_error.it000010.y.tsv} | 0 ...000010.z.tsv => carpetxregrid-regrid_error.it000010.z.tsv} | 0 ...arpetx-regrid_error.tsv => carpetxregrid-regrid_error.tsv} | 0 BoxInBox/test/regions3.par | 4 +++- ...000000.x.tsv => carpetxregrid-regrid_error.it000000.x.tsv} | 0 ...000000.y.tsv => carpetxregrid-regrid_error.it000000.y.tsv} | 0 ...000000.z.tsv => carpetxregrid-regrid_error.it000000.z.tsv} | 0 ...000010.x.tsv => carpetxregrid-regrid_error.it000010.x.tsv} | 0 ...000010.y.tsv => carpetxregrid-regrid_error.it000010.y.tsv} | 0 ...000010.z.tsv => carpetxregrid-regrid_error.it000010.z.tsv} | 0 ...arpetx-regrid_error.tsv => carpetxregrid-regrid_error.tsv} | 0 BoxInBox/test/unigrid.par | 4 +++- ...000000.x.tsv => carpetxregrid-regrid_error.it000000.x.tsv} | 0 ...000000.y.tsv => carpetxregrid-regrid_error.it000000.y.tsv} | 0 ...000000.z.tsv => carpetxregrid-regrid_error.it000000.z.tsv} | 0 ...000010.x.tsv => carpetxregrid-regrid_error.it000010.x.tsv} | 0 ...000010.y.tsv => carpetxregrid-regrid_error.it000010.y.tsv} | 0 ...000010.z.tsv => carpetxregrid-regrid_error.it000010.z.tsv} | 0 ...arpetx-regrid_error.tsv => carpetxregrid-regrid_error.tsv} | 0 58 files changed, 24 insertions(+), 10 deletions(-) rename BoxInBox/test/levels1/{carpetx-regrid_error.it000000.x.tsv => carpetxregrid-regrid_error.it000000.x.tsv} (100%) rename BoxInBox/test/levels1/{carpetx-regrid_error.it000000.y.tsv => carpetxregrid-regrid_error.it000000.y.tsv} (100%) rename BoxInBox/test/levels1/{carpetx-regrid_error.it000000.z.tsv => carpetxregrid-regrid_error.it000000.z.tsv} (100%) rename BoxInBox/test/levels1/{carpetx-regrid_error.it000010.x.tsv => carpetxregrid-regrid_error.it000010.x.tsv} (100%) rename BoxInBox/test/levels1/{carpetx-regrid_error.it000010.y.tsv => carpetxregrid-regrid_error.it000010.y.tsv} (100%) rename BoxInBox/test/levels1/{carpetx-regrid_error.it000010.z.tsv => carpetxregrid-regrid_error.it000010.z.tsv} (100%) rename BoxInBox/test/levels1/norms/{carpetx-regrid_error.tsv => carpetxregrid-regrid_error.tsv} (100%) rename BoxInBox/test/levels2/{carpetx-regrid_error.it000000.x.tsv => carpetxregrid-regrid_error.it000000.x.tsv} (100%) rename BoxInBox/test/levels2/{carpetx-regrid_error.it000000.y.tsv => carpetxregrid-regrid_error.it000000.y.tsv} (100%) rename BoxInBox/test/levels2/{carpetx-regrid_error.it000000.z.tsv => carpetxregrid-regrid_error.it000000.z.tsv} (100%) rename BoxInBox/test/levels2/{carpetx-regrid_error.it000010.x.tsv => carpetxregrid-regrid_error.it000010.x.tsv} (100%) rename BoxInBox/test/levels2/{carpetx-regrid_error.it000010.y.tsv => carpetxregrid-regrid_error.it000010.y.tsv} (100%) rename BoxInBox/test/levels2/{carpetx-regrid_error.it000010.z.tsv => carpetxregrid-regrid_error.it000010.z.tsv} (100%) rename BoxInBox/test/levels2/norms/{carpetx-regrid_error.tsv => carpetxregrid-regrid_error.tsv} (100%) rename BoxInBox/test/levels20/{carpetx-regrid_error.it000000.x.tsv => carpetxregrid-regrid_error.it000000.x.tsv} (100%) rename BoxInBox/test/levels20/{carpetx-regrid_error.it000000.y.tsv => carpetxregrid-regrid_error.it000000.y.tsv} (100%) rename BoxInBox/test/levels20/{carpetx-regrid_error.it000000.z.tsv => carpetxregrid-regrid_error.it000000.z.tsv} (100%) rename BoxInBox/test/levels20/{carpetx-regrid_error.it000010.x.tsv => carpetxregrid-regrid_error.it000010.x.tsv} (100%) rename BoxInBox/test/levels20/{carpetx-regrid_error.it000010.y.tsv => carpetxregrid-regrid_error.it000010.y.tsv} (100%) rename BoxInBox/test/levels20/{carpetx-regrid_error.it000010.z.tsv => carpetxregrid-regrid_error.it000010.z.tsv} (100%) rename BoxInBox/test/levels20/norms/{carpetx-regrid_error.tsv => carpetxregrid-regrid_error.tsv} (100%) rename BoxInBox/test/levels3/{carpetx-regrid_error.it000000.x.tsv => carpetxregrid-regrid_error.it000000.x.tsv} (100%) rename BoxInBox/test/levels3/{carpetx-regrid_error.it000000.y.tsv => carpetxregrid-regrid_error.it000000.y.tsv} (100%) rename BoxInBox/test/levels3/{carpetx-regrid_error.it000000.z.tsv => carpetxregrid-regrid_error.it000000.z.tsv} (100%) rename BoxInBox/test/levels3/{carpetx-regrid_error.it000010.x.tsv => carpetxregrid-regrid_error.it000010.x.tsv} (100%) rename BoxInBox/test/levels3/{carpetx-regrid_error.it000010.y.tsv => carpetxregrid-regrid_error.it000010.y.tsv} (100%) rename BoxInBox/test/levels3/{carpetx-regrid_error.it000010.z.tsv => carpetxregrid-regrid_error.it000010.z.tsv} (100%) rename BoxInBox/test/levels3/norms/{carpetx-regrid_error.tsv => carpetxregrid-regrid_error.tsv} (100%) rename BoxInBox/test/regions2/{carpetx-regrid_error.it000000.x.tsv => carpetxregrid-regrid_error.it000000.x.tsv} (100%) rename BoxInBox/test/regions2/{carpetx-regrid_error.it000000.y.tsv => carpetxregrid-regrid_error.it000000.y.tsv} (100%) rename BoxInBox/test/regions2/{carpetx-regrid_error.it000000.z.tsv => carpetxregrid-regrid_error.it000000.z.tsv} (100%) rename BoxInBox/test/regions2/{carpetx-regrid_error.it000010.x.tsv => carpetxregrid-regrid_error.it000010.x.tsv} (100%) rename BoxInBox/test/regions2/{carpetx-regrid_error.it000010.y.tsv => carpetxregrid-regrid_error.it000010.y.tsv} (100%) rename BoxInBox/test/regions2/{carpetx-regrid_error.it000010.z.tsv => carpetxregrid-regrid_error.it000010.z.tsv} (100%) rename BoxInBox/test/regions2/norms/{carpetx-regrid_error.tsv => carpetxregrid-regrid_error.tsv} (100%) rename BoxInBox/test/regions3/{carpetx-regrid_error.it000000.x.tsv => carpetxregrid-regrid_error.it000000.x.tsv} (100%) rename BoxInBox/test/regions3/{carpetx-regrid_error.it000000.y.tsv => carpetxregrid-regrid_error.it000000.y.tsv} (100%) rename BoxInBox/test/regions3/{carpetx-regrid_error.it000000.z.tsv => carpetxregrid-regrid_error.it000000.z.tsv} (100%) rename BoxInBox/test/regions3/{carpetx-regrid_error.it000010.x.tsv => carpetxregrid-regrid_error.it000010.x.tsv} (100%) rename BoxInBox/test/regions3/{carpetx-regrid_error.it000010.y.tsv => carpetxregrid-regrid_error.it000010.y.tsv} (100%) rename BoxInBox/test/regions3/{carpetx-regrid_error.it000010.z.tsv => carpetxregrid-regrid_error.it000010.z.tsv} (100%) rename BoxInBox/test/regions3/norms/{carpetx-regrid_error.tsv => carpetxregrid-regrid_error.tsv} (100%) rename BoxInBox/test/unigrid/{carpetx-regrid_error.it000000.x.tsv => carpetxregrid-regrid_error.it000000.x.tsv} (100%) rename BoxInBox/test/unigrid/{carpetx-regrid_error.it000000.y.tsv => carpetxregrid-regrid_error.it000000.y.tsv} (100%) rename BoxInBox/test/unigrid/{carpetx-regrid_error.it000000.z.tsv => carpetxregrid-regrid_error.it000000.z.tsv} (100%) rename BoxInBox/test/unigrid/{carpetx-regrid_error.it000010.x.tsv => carpetxregrid-regrid_error.it000010.x.tsv} (100%) rename BoxInBox/test/unigrid/{carpetx-regrid_error.it000010.y.tsv => carpetxregrid-regrid_error.it000010.y.tsv} (100%) rename BoxInBox/test/unigrid/{carpetx-regrid_error.it000010.z.tsv => carpetxregrid-regrid_error.it000010.z.tsv} (100%) rename BoxInBox/test/unigrid/norms/{carpetx-regrid_error.tsv => carpetxregrid-regrid_error.tsv} (100%) diff --git a/BoxInBox/interface.ccl b/BoxInBox/interface.ccl index 2839d7a4b..f481fa949 100644 --- a/BoxInBox/interface.ccl +++ b/BoxInBox/interface.ccl @@ -2,7 +2,7 @@ IMPLEMENTS: BoxInBox -INHERITS: CarpetX +INHERITS: CarpetXRegrid USES INCLUDE HEADER: defs.hxx USES INCLUDE HEADER: loop_device.hxx diff --git a/BoxInBox/schedule.ccl b/BoxInBox/schedule.ccl index ee59596ca..d13f4f5b3 100644 --- a/BoxInBox/schedule.ccl +++ b/BoxInBox/schedule.ccl @@ -19,7 +19,7 @@ SCHEDULE BoxInBox_Setup AS EstimateError AT postinitial READS: positions READS: radii READS: radiixyz - WRITES: CarpetX::regrid_error(interior) + WRITES: CarpetXRegrid::regrid_error(interior) } "Estimate error" SCHEDULE BoxInBox_Setup AS EstimateError AT poststep @@ -30,5 +30,5 @@ SCHEDULE BoxInBox_Setup AS EstimateError AT poststep READS: positions READS: radii READS: radiixyz - WRITES: CarpetX::regrid_error(interior) + WRITES: CarpetXRegrid::regrid_error(interior) } "Estimate error" diff --git a/BoxInBox/test/levels1.par b/BoxInBox/test/levels1.par index e9623d50d..9695869b8 100644 --- a/BoxInBox/test/levels1.par +++ b/BoxInBox/test/levels1.par @@ -1,6 +1,7 @@ ActiveThorns = " BoxInBox CarpetX + CarpetXRegrid CoordinatesX IOUtil " @@ -31,6 +32,7 @@ Cactus::cctk_itlast = 10 IO::out_dir = $parfile IO::out_every = 10 +IO::out_fileinfo = "axis labels" IO::parfile_write = no CarpetX::out_metadata = no @@ -39,7 +41,7 @@ CarpetX::out_norm_omit_unstable = yes CarpetX::out_norm_omit_sumloc_for_backward_compatibility = yes CarpetX::out_tsv_vars = " - CarpetX::regrid_error + CarpetXRegrid::regrid_error CoordinatesX::vertex_coords CoordinatesX::cell_coords " diff --git a/BoxInBox/test/levels1/carpetx-regrid_error.it000000.x.tsv b/BoxInBox/test/levels1/carpetxregrid-regrid_error.it000000.x.tsv similarity index 100% rename from BoxInBox/test/levels1/carpetx-regrid_error.it000000.x.tsv rename to BoxInBox/test/levels1/carpetxregrid-regrid_error.it000000.x.tsv diff --git a/BoxInBox/test/levels1/carpetx-regrid_error.it000000.y.tsv b/BoxInBox/test/levels1/carpetxregrid-regrid_error.it000000.y.tsv similarity index 100% rename from BoxInBox/test/levels1/carpetx-regrid_error.it000000.y.tsv rename to BoxInBox/test/levels1/carpetxregrid-regrid_error.it000000.y.tsv diff --git a/BoxInBox/test/levels1/carpetx-regrid_error.it000000.z.tsv b/BoxInBox/test/levels1/carpetxregrid-regrid_error.it000000.z.tsv similarity index 100% rename from BoxInBox/test/levels1/carpetx-regrid_error.it000000.z.tsv rename to BoxInBox/test/levels1/carpetxregrid-regrid_error.it000000.z.tsv diff --git a/BoxInBox/test/levels1/carpetx-regrid_error.it000010.x.tsv b/BoxInBox/test/levels1/carpetxregrid-regrid_error.it000010.x.tsv similarity index 100% rename from BoxInBox/test/levels1/carpetx-regrid_error.it000010.x.tsv rename to BoxInBox/test/levels1/carpetxregrid-regrid_error.it000010.x.tsv diff --git a/BoxInBox/test/levels1/carpetx-regrid_error.it000010.y.tsv b/BoxInBox/test/levels1/carpetxregrid-regrid_error.it000010.y.tsv similarity index 100% rename from BoxInBox/test/levels1/carpetx-regrid_error.it000010.y.tsv rename to BoxInBox/test/levels1/carpetxregrid-regrid_error.it000010.y.tsv diff --git a/BoxInBox/test/levels1/carpetx-regrid_error.it000010.z.tsv b/BoxInBox/test/levels1/carpetxregrid-regrid_error.it000010.z.tsv similarity index 100% rename from BoxInBox/test/levels1/carpetx-regrid_error.it000010.z.tsv rename to BoxInBox/test/levels1/carpetxregrid-regrid_error.it000010.z.tsv diff --git a/BoxInBox/test/levels1/norms/carpetx-regrid_error.tsv b/BoxInBox/test/levels1/norms/carpetxregrid-regrid_error.tsv similarity index 100% rename from BoxInBox/test/levels1/norms/carpetx-regrid_error.tsv rename to BoxInBox/test/levels1/norms/carpetxregrid-regrid_error.tsv diff --git a/BoxInBox/test/levels2.par b/BoxInBox/test/levels2.par index 493e1beb5..fe499253d 100644 --- a/BoxInBox/test/levels2.par +++ b/BoxInBox/test/levels2.par @@ -1,6 +1,7 @@ ActiveThorns = " BoxInBox CarpetX + CarpetXRegrid CoordinatesX IOUtil " @@ -32,6 +33,7 @@ Cactus::cctk_itlast = 10 IO::out_dir = $parfile IO::out_every = 10 +IO::out_fileinfo = "axis labels" IO::parfile_write = no CarpetX::out_metadata = no @@ -40,7 +42,7 @@ CarpetX::out_norm_omit_unstable = yes CarpetX::out_norm_omit_sumloc_for_backward_compatibility = yes CarpetX::out_tsv_vars = " - CarpetX::regrid_error + CarpetXRegrid::regrid_error CoordinatesX::vertex_coords CoordinatesX::cell_coords " diff --git a/BoxInBox/test/levels2/carpetx-regrid_error.it000000.x.tsv b/BoxInBox/test/levels2/carpetxregrid-regrid_error.it000000.x.tsv similarity index 100% rename from BoxInBox/test/levels2/carpetx-regrid_error.it000000.x.tsv rename to BoxInBox/test/levels2/carpetxregrid-regrid_error.it000000.x.tsv diff --git a/BoxInBox/test/levels2/carpetx-regrid_error.it000000.y.tsv b/BoxInBox/test/levels2/carpetxregrid-regrid_error.it000000.y.tsv similarity index 100% rename from BoxInBox/test/levels2/carpetx-regrid_error.it000000.y.tsv rename to BoxInBox/test/levels2/carpetxregrid-regrid_error.it000000.y.tsv diff --git a/BoxInBox/test/levels2/carpetx-regrid_error.it000000.z.tsv b/BoxInBox/test/levels2/carpetxregrid-regrid_error.it000000.z.tsv similarity index 100% rename from BoxInBox/test/levels2/carpetx-regrid_error.it000000.z.tsv rename to BoxInBox/test/levels2/carpetxregrid-regrid_error.it000000.z.tsv diff --git a/BoxInBox/test/levels2/carpetx-regrid_error.it000010.x.tsv b/BoxInBox/test/levels2/carpetxregrid-regrid_error.it000010.x.tsv similarity index 100% rename from BoxInBox/test/levels2/carpetx-regrid_error.it000010.x.tsv rename to BoxInBox/test/levels2/carpetxregrid-regrid_error.it000010.x.tsv diff --git a/BoxInBox/test/levels2/carpetx-regrid_error.it000010.y.tsv b/BoxInBox/test/levels2/carpetxregrid-regrid_error.it000010.y.tsv similarity index 100% rename from BoxInBox/test/levels2/carpetx-regrid_error.it000010.y.tsv rename to BoxInBox/test/levels2/carpetxregrid-regrid_error.it000010.y.tsv diff --git a/BoxInBox/test/levels2/carpetx-regrid_error.it000010.z.tsv b/BoxInBox/test/levels2/carpetxregrid-regrid_error.it000010.z.tsv similarity index 100% rename from BoxInBox/test/levels2/carpetx-regrid_error.it000010.z.tsv rename to BoxInBox/test/levels2/carpetxregrid-regrid_error.it000010.z.tsv diff --git a/BoxInBox/test/levels2/norms/carpetx-regrid_error.tsv b/BoxInBox/test/levels2/norms/carpetxregrid-regrid_error.tsv similarity index 100% rename from BoxInBox/test/levels2/norms/carpetx-regrid_error.tsv rename to BoxInBox/test/levels2/norms/carpetxregrid-regrid_error.tsv diff --git a/BoxInBox/test/levels20.par b/BoxInBox/test/levels20.par index b36677bd0..20cf0d446 100644 --- a/BoxInBox/test/levels20.par +++ b/BoxInBox/test/levels20.par @@ -1,6 +1,7 @@ ActiveThorns = " BoxInBox CarpetX + CarpetXRegrid CoordinatesX IOUtil " @@ -50,6 +51,7 @@ Cactus::cctk_itlast = 10 IO::out_dir = $parfile IO::out_every = 10 +IO::out_fileinfo = "axis labels" IO::parfile_write = no CarpetX::out_metadata = no @@ -58,7 +60,7 @@ CarpetX::out_norm_omit_unstable = yes CarpetX::out_norm_omit_sumloc_for_backward_compatibility = yes CarpetX::out_tsv_vars = " - CarpetX::regrid_error + CarpetXRegrid::regrid_error CoordinatesX::vertex_coords CoordinatesX::cell_coords " diff --git a/BoxInBox/test/levels20/carpetx-regrid_error.it000000.x.tsv b/BoxInBox/test/levels20/carpetxregrid-regrid_error.it000000.x.tsv similarity index 100% rename from BoxInBox/test/levels20/carpetx-regrid_error.it000000.x.tsv rename to BoxInBox/test/levels20/carpetxregrid-regrid_error.it000000.x.tsv diff --git a/BoxInBox/test/levels20/carpetx-regrid_error.it000000.y.tsv b/BoxInBox/test/levels20/carpetxregrid-regrid_error.it000000.y.tsv similarity index 100% rename from BoxInBox/test/levels20/carpetx-regrid_error.it000000.y.tsv rename to BoxInBox/test/levels20/carpetxregrid-regrid_error.it000000.y.tsv diff --git a/BoxInBox/test/levels20/carpetx-regrid_error.it000000.z.tsv b/BoxInBox/test/levels20/carpetxregrid-regrid_error.it000000.z.tsv similarity index 100% rename from BoxInBox/test/levels20/carpetx-regrid_error.it000000.z.tsv rename to BoxInBox/test/levels20/carpetxregrid-regrid_error.it000000.z.tsv diff --git a/BoxInBox/test/levels20/carpetx-regrid_error.it000010.x.tsv b/BoxInBox/test/levels20/carpetxregrid-regrid_error.it000010.x.tsv similarity index 100% rename from BoxInBox/test/levels20/carpetx-regrid_error.it000010.x.tsv rename to BoxInBox/test/levels20/carpetxregrid-regrid_error.it000010.x.tsv diff --git a/BoxInBox/test/levels20/carpetx-regrid_error.it000010.y.tsv b/BoxInBox/test/levels20/carpetxregrid-regrid_error.it000010.y.tsv similarity index 100% rename from BoxInBox/test/levels20/carpetx-regrid_error.it000010.y.tsv rename to BoxInBox/test/levels20/carpetxregrid-regrid_error.it000010.y.tsv diff --git a/BoxInBox/test/levels20/carpetx-regrid_error.it000010.z.tsv b/BoxInBox/test/levels20/carpetxregrid-regrid_error.it000010.z.tsv similarity index 100% rename from BoxInBox/test/levels20/carpetx-regrid_error.it000010.z.tsv rename to BoxInBox/test/levels20/carpetxregrid-regrid_error.it000010.z.tsv diff --git a/BoxInBox/test/levels20/norms/carpetx-regrid_error.tsv b/BoxInBox/test/levels20/norms/carpetxregrid-regrid_error.tsv similarity index 100% rename from BoxInBox/test/levels20/norms/carpetx-regrid_error.tsv rename to BoxInBox/test/levels20/norms/carpetxregrid-regrid_error.tsv diff --git a/BoxInBox/test/levels3.par b/BoxInBox/test/levels3.par index baf2c20f9..1e837d91d 100644 --- a/BoxInBox/test/levels3.par +++ b/BoxInBox/test/levels3.par @@ -1,6 +1,7 @@ ActiveThorns = " BoxInBox CarpetX + CarpetXRegrid CoordinatesX IOUtil " @@ -33,6 +34,7 @@ Cactus::cctk_itlast = 10 IO::out_dir = $parfile IO::out_every = 10 +IO::out_fileinfo = "axis labels" IO::parfile_write = no CarpetX::out_metadata = no @@ -41,7 +43,7 @@ CarpetX::out_norm_omit_unstable = yes CarpetX::out_norm_omit_sumloc_for_backward_compatibility = yes CarpetX::out_tsv_vars = " - CarpetX::regrid_error + CarpetXRegrid::regrid_error CoordinatesX::vertex_coords CoordinatesX::cell_coords " diff --git a/BoxInBox/test/levels3/carpetx-regrid_error.it000000.x.tsv b/BoxInBox/test/levels3/carpetxregrid-regrid_error.it000000.x.tsv similarity index 100% rename from BoxInBox/test/levels3/carpetx-regrid_error.it000000.x.tsv rename to BoxInBox/test/levels3/carpetxregrid-regrid_error.it000000.x.tsv diff --git a/BoxInBox/test/levels3/carpetx-regrid_error.it000000.y.tsv b/BoxInBox/test/levels3/carpetxregrid-regrid_error.it000000.y.tsv similarity index 100% rename from BoxInBox/test/levels3/carpetx-regrid_error.it000000.y.tsv rename to BoxInBox/test/levels3/carpetxregrid-regrid_error.it000000.y.tsv diff --git a/BoxInBox/test/levels3/carpetx-regrid_error.it000000.z.tsv b/BoxInBox/test/levels3/carpetxregrid-regrid_error.it000000.z.tsv similarity index 100% rename from BoxInBox/test/levels3/carpetx-regrid_error.it000000.z.tsv rename to BoxInBox/test/levels3/carpetxregrid-regrid_error.it000000.z.tsv diff --git a/BoxInBox/test/levels3/carpetx-regrid_error.it000010.x.tsv b/BoxInBox/test/levels3/carpetxregrid-regrid_error.it000010.x.tsv similarity index 100% rename from BoxInBox/test/levels3/carpetx-regrid_error.it000010.x.tsv rename to BoxInBox/test/levels3/carpetxregrid-regrid_error.it000010.x.tsv diff --git a/BoxInBox/test/levels3/carpetx-regrid_error.it000010.y.tsv b/BoxInBox/test/levels3/carpetxregrid-regrid_error.it000010.y.tsv similarity index 100% rename from BoxInBox/test/levels3/carpetx-regrid_error.it000010.y.tsv rename to BoxInBox/test/levels3/carpetxregrid-regrid_error.it000010.y.tsv diff --git a/BoxInBox/test/levels3/carpetx-regrid_error.it000010.z.tsv b/BoxInBox/test/levels3/carpetxregrid-regrid_error.it000010.z.tsv similarity index 100% rename from BoxInBox/test/levels3/carpetx-regrid_error.it000010.z.tsv rename to BoxInBox/test/levels3/carpetxregrid-regrid_error.it000010.z.tsv diff --git a/BoxInBox/test/levels3/norms/carpetx-regrid_error.tsv b/BoxInBox/test/levels3/norms/carpetxregrid-regrid_error.tsv similarity index 100% rename from BoxInBox/test/levels3/norms/carpetx-regrid_error.tsv rename to BoxInBox/test/levels3/norms/carpetxregrid-regrid_error.tsv diff --git a/BoxInBox/test/regions2.par b/BoxInBox/test/regions2.par index 5418a4c4f..e6c9b48ad 100644 --- a/BoxInBox/test/regions2.par +++ b/BoxInBox/test/regions2.par @@ -1,6 +1,7 @@ ActiveThorns = " BoxInBox CarpetX + CarpetXRegrid CoordinatesX IOUtil " @@ -42,6 +43,7 @@ Cactus::cctk_itlast = 10 IO::out_dir = $parfile IO::out_every = 10 +IO::out_fileinfo = "axis labels" IO::parfile_write = no CarpetX::out_metadata = no @@ -50,7 +52,7 @@ CarpetX::out_norm_omit_unstable = yes CarpetX::out_norm_omit_sumloc_for_backward_compatibility = yes CarpetX::out_tsv_vars = " - CarpetX::regrid_error + CarpetXRegrid::regrid_error CoordinatesX::vertex_coords CoordinatesX::cell_coords " diff --git a/BoxInBox/test/regions2/carpetx-regrid_error.it000000.x.tsv b/BoxInBox/test/regions2/carpetxregrid-regrid_error.it000000.x.tsv similarity index 100% rename from BoxInBox/test/regions2/carpetx-regrid_error.it000000.x.tsv rename to BoxInBox/test/regions2/carpetxregrid-regrid_error.it000000.x.tsv diff --git a/BoxInBox/test/regions2/carpetx-regrid_error.it000000.y.tsv b/BoxInBox/test/regions2/carpetxregrid-regrid_error.it000000.y.tsv similarity index 100% rename from BoxInBox/test/regions2/carpetx-regrid_error.it000000.y.tsv rename to BoxInBox/test/regions2/carpetxregrid-regrid_error.it000000.y.tsv diff --git a/BoxInBox/test/regions2/carpetx-regrid_error.it000000.z.tsv b/BoxInBox/test/regions2/carpetxregrid-regrid_error.it000000.z.tsv similarity index 100% rename from BoxInBox/test/regions2/carpetx-regrid_error.it000000.z.tsv rename to BoxInBox/test/regions2/carpetxregrid-regrid_error.it000000.z.tsv diff --git a/BoxInBox/test/regions2/carpetx-regrid_error.it000010.x.tsv b/BoxInBox/test/regions2/carpetxregrid-regrid_error.it000010.x.tsv similarity index 100% rename from BoxInBox/test/regions2/carpetx-regrid_error.it000010.x.tsv rename to BoxInBox/test/regions2/carpetxregrid-regrid_error.it000010.x.tsv diff --git a/BoxInBox/test/regions2/carpetx-regrid_error.it000010.y.tsv b/BoxInBox/test/regions2/carpetxregrid-regrid_error.it000010.y.tsv similarity index 100% rename from BoxInBox/test/regions2/carpetx-regrid_error.it000010.y.tsv rename to BoxInBox/test/regions2/carpetxregrid-regrid_error.it000010.y.tsv diff --git a/BoxInBox/test/regions2/carpetx-regrid_error.it000010.z.tsv b/BoxInBox/test/regions2/carpetxregrid-regrid_error.it000010.z.tsv similarity index 100% rename from BoxInBox/test/regions2/carpetx-regrid_error.it000010.z.tsv rename to BoxInBox/test/regions2/carpetxregrid-regrid_error.it000010.z.tsv diff --git a/BoxInBox/test/regions2/norms/carpetx-regrid_error.tsv b/BoxInBox/test/regions2/norms/carpetxregrid-regrid_error.tsv similarity index 100% rename from BoxInBox/test/regions2/norms/carpetx-regrid_error.tsv rename to BoxInBox/test/regions2/norms/carpetxregrid-regrid_error.tsv diff --git a/BoxInBox/test/regions3.par b/BoxInBox/test/regions3.par index 321d60eb8..bcf53e814 100644 --- a/BoxInBox/test/regions3.par +++ b/BoxInBox/test/regions3.par @@ -1,6 +1,7 @@ ActiveThorns = " BoxInBox CarpetX + CarpetXRegrid CoordinatesX IOUtil " @@ -53,6 +54,7 @@ Cactus::cctk_itlast = 10 IO::out_dir = $parfile IO::out_every = 10 +IO::out_fileinfo = "axis labels" IO::parfile_write = no CarpetX::out_metadata = no @@ -61,7 +63,7 @@ CarpetX::out_norm_omit_unstable = yes CarpetX::out_norm_omit_sumloc_for_backward_compatibility = yes CarpetX::out_tsv_vars = " - CarpetX::regrid_error + CarpetXRegrid::regrid_error CoordinatesX::vertex_coords CoordinatesX::cell_coords " diff --git a/BoxInBox/test/regions3/carpetx-regrid_error.it000000.x.tsv b/BoxInBox/test/regions3/carpetxregrid-regrid_error.it000000.x.tsv similarity index 100% rename from BoxInBox/test/regions3/carpetx-regrid_error.it000000.x.tsv rename to BoxInBox/test/regions3/carpetxregrid-regrid_error.it000000.x.tsv diff --git a/BoxInBox/test/regions3/carpetx-regrid_error.it000000.y.tsv b/BoxInBox/test/regions3/carpetxregrid-regrid_error.it000000.y.tsv similarity index 100% rename from BoxInBox/test/regions3/carpetx-regrid_error.it000000.y.tsv rename to BoxInBox/test/regions3/carpetxregrid-regrid_error.it000000.y.tsv diff --git a/BoxInBox/test/regions3/carpetx-regrid_error.it000000.z.tsv b/BoxInBox/test/regions3/carpetxregrid-regrid_error.it000000.z.tsv similarity index 100% rename from BoxInBox/test/regions3/carpetx-regrid_error.it000000.z.tsv rename to BoxInBox/test/regions3/carpetxregrid-regrid_error.it000000.z.tsv diff --git a/BoxInBox/test/regions3/carpetx-regrid_error.it000010.x.tsv b/BoxInBox/test/regions3/carpetxregrid-regrid_error.it000010.x.tsv similarity index 100% rename from BoxInBox/test/regions3/carpetx-regrid_error.it000010.x.tsv rename to BoxInBox/test/regions3/carpetxregrid-regrid_error.it000010.x.tsv diff --git a/BoxInBox/test/regions3/carpetx-regrid_error.it000010.y.tsv b/BoxInBox/test/regions3/carpetxregrid-regrid_error.it000010.y.tsv similarity index 100% rename from BoxInBox/test/regions3/carpetx-regrid_error.it000010.y.tsv rename to BoxInBox/test/regions3/carpetxregrid-regrid_error.it000010.y.tsv diff --git a/BoxInBox/test/regions3/carpetx-regrid_error.it000010.z.tsv b/BoxInBox/test/regions3/carpetxregrid-regrid_error.it000010.z.tsv similarity index 100% rename from BoxInBox/test/regions3/carpetx-regrid_error.it000010.z.tsv rename to BoxInBox/test/regions3/carpetxregrid-regrid_error.it000010.z.tsv diff --git a/BoxInBox/test/regions3/norms/carpetx-regrid_error.tsv b/BoxInBox/test/regions3/norms/carpetxregrid-regrid_error.tsv similarity index 100% rename from BoxInBox/test/regions3/norms/carpetx-regrid_error.tsv rename to BoxInBox/test/regions3/norms/carpetxregrid-regrid_error.tsv diff --git a/BoxInBox/test/unigrid.par b/BoxInBox/test/unigrid.par index 1030b889b..45463bab7 100644 --- a/BoxInBox/test/unigrid.par +++ b/BoxInBox/test/unigrid.par @@ -1,6 +1,7 @@ ActiveThorns = " BoxInBox CarpetX + CarpetXRegrid CoordinatesX IOUtil " @@ -30,6 +31,7 @@ Cactus::cctk_itlast = 10 IO::out_dir = $parfile IO::out_every = 10 +IO::out_fileinfo = "axis labels" IO::parfile_write = no CarpetX::out_metadata = no @@ -38,7 +40,7 @@ CarpetX::out_norm_omit_unstable = yes CarpetX::out_norm_omit_sumloc_for_backward_compatibility = yes CarpetX::out_tsv_vars = " - CarpetX::regrid_error + CarpetXRegrid::regrid_error CoordinatesX::vertex_coords CoordinatesX::cell_coords " diff --git a/BoxInBox/test/unigrid/carpetx-regrid_error.it000000.x.tsv b/BoxInBox/test/unigrid/carpetxregrid-regrid_error.it000000.x.tsv similarity index 100% rename from BoxInBox/test/unigrid/carpetx-regrid_error.it000000.x.tsv rename to BoxInBox/test/unigrid/carpetxregrid-regrid_error.it000000.x.tsv diff --git a/BoxInBox/test/unigrid/carpetx-regrid_error.it000000.y.tsv b/BoxInBox/test/unigrid/carpetxregrid-regrid_error.it000000.y.tsv similarity index 100% rename from BoxInBox/test/unigrid/carpetx-regrid_error.it000000.y.tsv rename to BoxInBox/test/unigrid/carpetxregrid-regrid_error.it000000.y.tsv diff --git a/BoxInBox/test/unigrid/carpetx-regrid_error.it000000.z.tsv b/BoxInBox/test/unigrid/carpetxregrid-regrid_error.it000000.z.tsv similarity index 100% rename from BoxInBox/test/unigrid/carpetx-regrid_error.it000000.z.tsv rename to BoxInBox/test/unigrid/carpetxregrid-regrid_error.it000000.z.tsv diff --git a/BoxInBox/test/unigrid/carpetx-regrid_error.it000010.x.tsv b/BoxInBox/test/unigrid/carpetxregrid-regrid_error.it000010.x.tsv similarity index 100% rename from BoxInBox/test/unigrid/carpetx-regrid_error.it000010.x.tsv rename to BoxInBox/test/unigrid/carpetxregrid-regrid_error.it000010.x.tsv diff --git a/BoxInBox/test/unigrid/carpetx-regrid_error.it000010.y.tsv b/BoxInBox/test/unigrid/carpetxregrid-regrid_error.it000010.y.tsv similarity index 100% rename from BoxInBox/test/unigrid/carpetx-regrid_error.it000010.y.tsv rename to BoxInBox/test/unigrid/carpetxregrid-regrid_error.it000010.y.tsv diff --git a/BoxInBox/test/unigrid/carpetx-regrid_error.it000010.z.tsv b/BoxInBox/test/unigrid/carpetxregrid-regrid_error.it000010.z.tsv similarity index 100% rename from BoxInBox/test/unigrid/carpetx-regrid_error.it000010.z.tsv rename to BoxInBox/test/unigrid/carpetxregrid-regrid_error.it000010.z.tsv diff --git a/BoxInBox/test/unigrid/norms/carpetx-regrid_error.tsv b/BoxInBox/test/unigrid/norms/carpetxregrid-regrid_error.tsv similarity index 100% rename from BoxInBox/test/unigrid/norms/carpetx-regrid_error.tsv rename to BoxInBox/test/unigrid/norms/carpetxregrid-regrid_error.tsv From 79503b63cfa1ad527fc640c4c6055120d45e09c6 Mon Sep 17 00:00:00 2001 From: Roland Haas Date: Thu, 29 Aug 2024 16:10:37 -0500 Subject: [PATCH 20/39] ErrorEstimator: adapt to CarpetX implementation change required due to CarpetX implemting "Driver" --- ErrorEstimator/interface.ccl | 2 +- ErrorEstimator/schedule.ccl | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ErrorEstimator/interface.ccl b/ErrorEstimator/interface.ccl index 08e82c25c..e10c34907 100644 --- a/ErrorEstimator/interface.ccl +++ b/ErrorEstimator/interface.ccl @@ -2,7 +2,7 @@ IMPLEMENTS: ErrorEstimator -INHERITS: CarpetX +INHERITS: CarpetXRegrid diff --git a/ErrorEstimator/schedule.ccl b/ErrorEstimator/schedule.ccl index 7c7244946..c61a116fe 100644 --- a/ErrorEstimator/schedule.ccl +++ b/ErrorEstimator/schedule.ccl @@ -5,11 +5,11 @@ SCHEDULE ErrorEstimator_Estimate AS EstimateError AT postinitial { LANG: C - WRITES: CarpetX::regrid_error(interior) + WRITES: CarpetXRegrid::regrid_error(interior) } "Estimate error" SCHEDULE ErrorEstimator_Estimate AS EstimateError AT poststep { LANG: C - WRITES: CarpetX::regrid_error(interior) + WRITES: CarpetXRegrid::regrid_error(interior) } "Estimate error" From cdccda84919ec1617687c860fa22a59e1cd76cd2 Mon Sep 17 00:00:00 2001 From: Roland Haas Date: Thu, 29 Aug 2024 16:10:37 -0500 Subject: [PATCH 21/39] FluxWaveToyX: adapt to CarpetX implementation change required due to CarpetX implemting "Driver" --- FluxWaveToyX/par/standing.par | 7 ++++--- FluxWaveToyX/test/radiative.par | 2 ++ ...x-regrid_error.tsv => carpetxregrid-regrid_error.tsv} | 0 FluxWaveToyX/test/reflecting.par | 2 ++ ...x-regrid_error.tsv => carpetxregrid-regrid_error.tsv} | 0 FluxWaveToyX/test/standing.par | 9 ++++++--- ...x-regrid_error.tsv => carpetxregrid-regrid_error.tsv} | 0 7 files changed, 14 insertions(+), 6 deletions(-) rename FluxWaveToyX/test/radiative/norms/{carpetx-regrid_error.tsv => carpetxregrid-regrid_error.tsv} (100%) rename FluxWaveToyX/test/reflecting/norms/{carpetx-regrid_error.tsv => carpetxregrid-regrid_error.tsv} (100%) rename FluxWaveToyX/test/standing/norms/{carpetx-regrid_error.tsv => carpetxregrid-regrid_error.tsv} (100%) diff --git a/FluxWaveToyX/par/standing.par b/FluxWaveToyX/par/standing.par index 17fd186ad..33992ae61 100644 --- a/FluxWaveToyX/par/standing.par +++ b/FluxWaveToyX/par/standing.par @@ -13,9 +13,10 @@ Cactus::presync_mode = "mixed-error" CarpetX::poison_undefined_values = no -CarpetX::periodic_x = yes -CarpetX::periodic_y = yes -CarpetX::periodic_z = yes +Driver::periodic = "yes" +Driver::periodic_x = yes +Driver::periodic_y = yes +Driver::periodic_z = yes Cactus::terminate = "time" Cactus::cctk_final_time = 1.0 diff --git a/FluxWaveToyX/test/radiative.par b/FluxWaveToyX/test/radiative.par index 5adc0136f..887c447e5 100644 --- a/FluxWaveToyX/test/radiative.par +++ b/FluxWaveToyX/test/radiative.par @@ -1,5 +1,6 @@ ActiveThorns = " CarpetX + CarpetXRegrid FluxWaveToyX IOUtil ODESolvers @@ -32,6 +33,7 @@ ODESolvers::method = "RK3" IO::out_dir = $parfile IO::out_every = 10 +IO::out_fileinfo = "axis labels" IO::parfile_write = no CarpetX::out_metadata = no diff --git a/FluxWaveToyX/test/radiative/norms/carpetx-regrid_error.tsv b/FluxWaveToyX/test/radiative/norms/carpetxregrid-regrid_error.tsv similarity index 100% rename from FluxWaveToyX/test/radiative/norms/carpetx-regrid_error.tsv rename to FluxWaveToyX/test/radiative/norms/carpetxregrid-regrid_error.tsv diff --git a/FluxWaveToyX/test/reflecting.par b/FluxWaveToyX/test/reflecting.par index 1d1b5196e..63da2ecb8 100644 --- a/FluxWaveToyX/test/reflecting.par +++ b/FluxWaveToyX/test/reflecting.par @@ -1,5 +1,6 @@ ActiveThorns = " CarpetX + CarpetXRegrid FluxWaveToyX IOUtil ODESolvers @@ -31,6 +32,7 @@ ODESolvers::method = "RK3" IO::out_dir = $parfile IO::out_every = 10 +IO::out_fileinfo = "axis labels" IO::parfile_write = no CarpetX::out_metadata = no diff --git a/FluxWaveToyX/test/reflecting/norms/carpetx-regrid_error.tsv b/FluxWaveToyX/test/reflecting/norms/carpetxregrid-regrid_error.tsv similarity index 100% rename from FluxWaveToyX/test/reflecting/norms/carpetx-regrid_error.tsv rename to FluxWaveToyX/test/reflecting/norms/carpetxregrid-regrid_error.tsv diff --git a/FluxWaveToyX/test/standing.par b/FluxWaveToyX/test/standing.par index a6b1f1728..a9ff8fc62 100644 --- a/FluxWaveToyX/test/standing.par +++ b/FluxWaveToyX/test/standing.par @@ -1,5 +1,6 @@ ActiveThorns = " CarpetX + CarpetXRegrid FluxWaveToyX IOUtil ODESolvers @@ -14,9 +15,10 @@ CarpetX::ncells_x = 8 CarpetX::ncells_y = 8 CarpetX::ncells_z = 8 -CarpetX::periodic_x = yes -CarpetX::periodic_y = yes -CarpetX::periodic_z = yes +Driver::periodic = "yes" +Driver::periodic_x = yes +Driver::periodic_y = yes +Driver::periodic_z = yes Cactus::cctk_itlast = 10 @@ -26,6 +28,7 @@ ODESolvers::method = "RK3" IO::out_dir = $parfile IO::out_every = 10 +IO::out_fileinfo = "axis labels" IO::parfile_write = no CarpetX::out_metadata = no diff --git a/FluxWaveToyX/test/standing/norms/carpetx-regrid_error.tsv b/FluxWaveToyX/test/standing/norms/carpetxregrid-regrid_error.tsv similarity index 100% rename from FluxWaveToyX/test/standing/norms/carpetx-regrid_error.tsv rename to FluxWaveToyX/test/standing/norms/carpetxregrid-regrid_error.tsv From c04ce5e91bcfd1ab389e429834a466b4144bc796 Mon Sep 17 00:00:00 2001 From: Roland Haas Date: Thu, 29 Aug 2024 16:10:37 -0500 Subject: [PATCH 22/39] MovingBoxToy: adapt to CarpetX implementation change required due to CarpetX implemting "Driver" --- MovingBoxToy/par/circle.par | 4 ++-- MovingBoxToy/test/circle.par | 5 +++-- ...00000.x.tsv => carpetxregrid-regrid_error.it000000.x.tsv} | 0 ...00000.y.tsv => carpetxregrid-regrid_error.it000000.y.tsv} | 0 ...00000.z.tsv => carpetxregrid-regrid_error.it000000.z.tsv} | 0 ...00001.x.tsv => carpetxregrid-regrid_error.it000001.x.tsv} | 0 ...00001.y.tsv => carpetxregrid-regrid_error.it000001.y.tsv} | 0 ...00001.z.tsv => carpetxregrid-regrid_error.it000001.z.tsv} | 0 ...00002.x.tsv => carpetxregrid-regrid_error.it000002.x.tsv} | 0 ...00002.y.tsv => carpetxregrid-regrid_error.it000002.y.tsv} | 0 ...00002.z.tsv => carpetxregrid-regrid_error.it000002.z.tsv} | 0 ...00003.x.tsv => carpetxregrid-regrid_error.it000003.x.tsv} | 0 ...00003.y.tsv => carpetxregrid-regrid_error.it000003.y.tsv} | 0 ...00003.z.tsv => carpetxregrid-regrid_error.it000003.z.tsv} | 0 ...00004.x.tsv => carpetxregrid-regrid_error.it000004.x.tsv} | 0 ...00004.y.tsv => carpetxregrid-regrid_error.it000004.y.tsv} | 0 ...00004.z.tsv => carpetxregrid-regrid_error.it000004.z.tsv} | 0 ...00005.x.tsv => carpetxregrid-regrid_error.it000005.x.tsv} | 0 ...00005.y.tsv => carpetxregrid-regrid_error.it000005.y.tsv} | 0 ...00005.z.tsv => carpetxregrid-regrid_error.it000005.z.tsv} | 0 ...rpetx-regrid_error.tsv => carpetxregrid-regrid_error.tsv} | 0 21 files changed, 5 insertions(+), 4 deletions(-) rename MovingBoxToy/test/circle/{carpetx-regrid_error.it000000.x.tsv => carpetxregrid-regrid_error.it000000.x.tsv} (100%) rename MovingBoxToy/test/circle/{carpetx-regrid_error.it000000.y.tsv => carpetxregrid-regrid_error.it000000.y.tsv} (100%) rename MovingBoxToy/test/circle/{carpetx-regrid_error.it000000.z.tsv => carpetxregrid-regrid_error.it000000.z.tsv} (100%) rename MovingBoxToy/test/circle/{carpetx-regrid_error.it000001.x.tsv => carpetxregrid-regrid_error.it000001.x.tsv} (100%) rename MovingBoxToy/test/circle/{carpetx-regrid_error.it000001.y.tsv => carpetxregrid-regrid_error.it000001.y.tsv} (100%) rename MovingBoxToy/test/circle/{carpetx-regrid_error.it000001.z.tsv => carpetxregrid-regrid_error.it000001.z.tsv} (100%) rename MovingBoxToy/test/circle/{carpetx-regrid_error.it000002.x.tsv => carpetxregrid-regrid_error.it000002.x.tsv} (100%) rename MovingBoxToy/test/circle/{carpetx-regrid_error.it000002.y.tsv => carpetxregrid-regrid_error.it000002.y.tsv} (100%) rename MovingBoxToy/test/circle/{carpetx-regrid_error.it000002.z.tsv => carpetxregrid-regrid_error.it000002.z.tsv} (100%) rename MovingBoxToy/test/circle/{carpetx-regrid_error.it000003.x.tsv => carpetxregrid-regrid_error.it000003.x.tsv} (100%) rename MovingBoxToy/test/circle/{carpetx-regrid_error.it000003.y.tsv => carpetxregrid-regrid_error.it000003.y.tsv} (100%) rename MovingBoxToy/test/circle/{carpetx-regrid_error.it000003.z.tsv => carpetxregrid-regrid_error.it000003.z.tsv} (100%) rename MovingBoxToy/test/circle/{carpetx-regrid_error.it000004.x.tsv => carpetxregrid-regrid_error.it000004.x.tsv} (100%) rename MovingBoxToy/test/circle/{carpetx-regrid_error.it000004.y.tsv => carpetxregrid-regrid_error.it000004.y.tsv} (100%) rename MovingBoxToy/test/circle/{carpetx-regrid_error.it000004.z.tsv => carpetxregrid-regrid_error.it000004.z.tsv} (100%) rename MovingBoxToy/test/circle/{carpetx-regrid_error.it000005.x.tsv => carpetxregrid-regrid_error.it000005.x.tsv} (100%) rename MovingBoxToy/test/circle/{carpetx-regrid_error.it000005.y.tsv => carpetxregrid-regrid_error.it000005.y.tsv} (100%) rename MovingBoxToy/test/circle/{carpetx-regrid_error.it000005.z.tsv => carpetxregrid-regrid_error.it000005.z.tsv} (100%) rename MovingBoxToy/test/circle/norms/{carpetx-regrid_error.tsv => carpetxregrid-regrid_error.tsv} (100%) diff --git a/MovingBoxToy/par/circle.par b/MovingBoxToy/par/circle.par index f41454fc1..ba6c758c7 100644 --- a/MovingBoxToy/par/circle.par +++ b/MovingBoxToy/par/circle.par @@ -1,9 +1,9 @@ ActiveThorns = " - MovingBoxToy BoxInBox CarpetX CoordinatesX IOUtil + MovingBoxToy " Cactus::cctk_show_schedule = no @@ -52,7 +52,7 @@ CarpetX::out_norm_vars = "all" CarpetX::out_norm_omit_unstable = yes CarpetX::out_silo_vars = " - CarpetX::regrid_error + CarpetXRegrid::regrid_error CoordinatesX::vertex_coords CoordinatesX::cell_coords " diff --git a/MovingBoxToy/test/circle.par b/MovingBoxToy/test/circle.par index ccdcd0b6e..bc19fafb2 100644 --- a/MovingBoxToy/test/circle.par +++ b/MovingBoxToy/test/circle.par @@ -1,9 +1,9 @@ ActiveThorns = " - MovingBoxToy BoxInBox CarpetX CoordinatesX IOUtil + MovingBoxToy " Cactus::cctk_show_schedule = no @@ -45,6 +45,7 @@ Cactus::cctk_itlast = 5 IO::out_dir = $parfile IO::out_every = 1 +IO::out_fileinfo = "axis labels" IO::parfile_write = no CarpetX::out_metadata = no @@ -53,7 +54,7 @@ CarpetX::out_norm_omit_unstable = yes CarpetX::out_norm_omit_sumloc_for_backward_compatibility = yes CarpetX::out_tsv_vars = " - CarpetX::regrid_error + CarpetXRegrid::regrid_error CoordinatesX::vertex_coords CoordinatesX::cell_coords " diff --git a/MovingBoxToy/test/circle/carpetx-regrid_error.it000000.x.tsv b/MovingBoxToy/test/circle/carpetxregrid-regrid_error.it000000.x.tsv similarity index 100% rename from MovingBoxToy/test/circle/carpetx-regrid_error.it000000.x.tsv rename to MovingBoxToy/test/circle/carpetxregrid-regrid_error.it000000.x.tsv diff --git a/MovingBoxToy/test/circle/carpetx-regrid_error.it000000.y.tsv b/MovingBoxToy/test/circle/carpetxregrid-regrid_error.it000000.y.tsv similarity index 100% rename from MovingBoxToy/test/circle/carpetx-regrid_error.it000000.y.tsv rename to MovingBoxToy/test/circle/carpetxregrid-regrid_error.it000000.y.tsv diff --git a/MovingBoxToy/test/circle/carpetx-regrid_error.it000000.z.tsv b/MovingBoxToy/test/circle/carpetxregrid-regrid_error.it000000.z.tsv similarity index 100% rename from MovingBoxToy/test/circle/carpetx-regrid_error.it000000.z.tsv rename to MovingBoxToy/test/circle/carpetxregrid-regrid_error.it000000.z.tsv diff --git a/MovingBoxToy/test/circle/carpetx-regrid_error.it000001.x.tsv b/MovingBoxToy/test/circle/carpetxregrid-regrid_error.it000001.x.tsv similarity index 100% rename from MovingBoxToy/test/circle/carpetx-regrid_error.it000001.x.tsv rename to MovingBoxToy/test/circle/carpetxregrid-regrid_error.it000001.x.tsv diff --git a/MovingBoxToy/test/circle/carpetx-regrid_error.it000001.y.tsv b/MovingBoxToy/test/circle/carpetxregrid-regrid_error.it000001.y.tsv similarity index 100% rename from MovingBoxToy/test/circle/carpetx-regrid_error.it000001.y.tsv rename to MovingBoxToy/test/circle/carpetxregrid-regrid_error.it000001.y.tsv diff --git a/MovingBoxToy/test/circle/carpetx-regrid_error.it000001.z.tsv b/MovingBoxToy/test/circle/carpetxregrid-regrid_error.it000001.z.tsv similarity index 100% rename from MovingBoxToy/test/circle/carpetx-regrid_error.it000001.z.tsv rename to MovingBoxToy/test/circle/carpetxregrid-regrid_error.it000001.z.tsv diff --git a/MovingBoxToy/test/circle/carpetx-regrid_error.it000002.x.tsv b/MovingBoxToy/test/circle/carpetxregrid-regrid_error.it000002.x.tsv similarity index 100% rename from MovingBoxToy/test/circle/carpetx-regrid_error.it000002.x.tsv rename to MovingBoxToy/test/circle/carpetxregrid-regrid_error.it000002.x.tsv diff --git a/MovingBoxToy/test/circle/carpetx-regrid_error.it000002.y.tsv b/MovingBoxToy/test/circle/carpetxregrid-regrid_error.it000002.y.tsv similarity index 100% rename from MovingBoxToy/test/circle/carpetx-regrid_error.it000002.y.tsv rename to MovingBoxToy/test/circle/carpetxregrid-regrid_error.it000002.y.tsv diff --git a/MovingBoxToy/test/circle/carpetx-regrid_error.it000002.z.tsv b/MovingBoxToy/test/circle/carpetxregrid-regrid_error.it000002.z.tsv similarity index 100% rename from MovingBoxToy/test/circle/carpetx-regrid_error.it000002.z.tsv rename to MovingBoxToy/test/circle/carpetxregrid-regrid_error.it000002.z.tsv diff --git a/MovingBoxToy/test/circle/carpetx-regrid_error.it000003.x.tsv b/MovingBoxToy/test/circle/carpetxregrid-regrid_error.it000003.x.tsv similarity index 100% rename from MovingBoxToy/test/circle/carpetx-regrid_error.it000003.x.tsv rename to MovingBoxToy/test/circle/carpetxregrid-regrid_error.it000003.x.tsv diff --git a/MovingBoxToy/test/circle/carpetx-regrid_error.it000003.y.tsv b/MovingBoxToy/test/circle/carpetxregrid-regrid_error.it000003.y.tsv similarity index 100% rename from MovingBoxToy/test/circle/carpetx-regrid_error.it000003.y.tsv rename to MovingBoxToy/test/circle/carpetxregrid-regrid_error.it000003.y.tsv diff --git a/MovingBoxToy/test/circle/carpetx-regrid_error.it000003.z.tsv b/MovingBoxToy/test/circle/carpetxregrid-regrid_error.it000003.z.tsv similarity index 100% rename from MovingBoxToy/test/circle/carpetx-regrid_error.it000003.z.tsv rename to MovingBoxToy/test/circle/carpetxregrid-regrid_error.it000003.z.tsv diff --git a/MovingBoxToy/test/circle/carpetx-regrid_error.it000004.x.tsv b/MovingBoxToy/test/circle/carpetxregrid-regrid_error.it000004.x.tsv similarity index 100% rename from MovingBoxToy/test/circle/carpetx-regrid_error.it000004.x.tsv rename to MovingBoxToy/test/circle/carpetxregrid-regrid_error.it000004.x.tsv diff --git a/MovingBoxToy/test/circle/carpetx-regrid_error.it000004.y.tsv b/MovingBoxToy/test/circle/carpetxregrid-regrid_error.it000004.y.tsv similarity index 100% rename from MovingBoxToy/test/circle/carpetx-regrid_error.it000004.y.tsv rename to MovingBoxToy/test/circle/carpetxregrid-regrid_error.it000004.y.tsv diff --git a/MovingBoxToy/test/circle/carpetx-regrid_error.it000004.z.tsv b/MovingBoxToy/test/circle/carpetxregrid-regrid_error.it000004.z.tsv similarity index 100% rename from MovingBoxToy/test/circle/carpetx-regrid_error.it000004.z.tsv rename to MovingBoxToy/test/circle/carpetxregrid-regrid_error.it000004.z.tsv diff --git a/MovingBoxToy/test/circle/carpetx-regrid_error.it000005.x.tsv b/MovingBoxToy/test/circle/carpetxregrid-regrid_error.it000005.x.tsv similarity index 100% rename from MovingBoxToy/test/circle/carpetx-regrid_error.it000005.x.tsv rename to MovingBoxToy/test/circle/carpetxregrid-regrid_error.it000005.x.tsv diff --git a/MovingBoxToy/test/circle/carpetx-regrid_error.it000005.y.tsv b/MovingBoxToy/test/circle/carpetxregrid-regrid_error.it000005.y.tsv similarity index 100% rename from MovingBoxToy/test/circle/carpetx-regrid_error.it000005.y.tsv rename to MovingBoxToy/test/circle/carpetxregrid-regrid_error.it000005.y.tsv diff --git a/MovingBoxToy/test/circle/carpetx-regrid_error.it000005.z.tsv b/MovingBoxToy/test/circle/carpetxregrid-regrid_error.it000005.z.tsv similarity index 100% rename from MovingBoxToy/test/circle/carpetx-regrid_error.it000005.z.tsv rename to MovingBoxToy/test/circle/carpetxregrid-regrid_error.it000005.z.tsv diff --git a/MovingBoxToy/test/circle/norms/carpetx-regrid_error.tsv b/MovingBoxToy/test/circle/norms/carpetxregrid-regrid_error.tsv similarity index 100% rename from MovingBoxToy/test/circle/norms/carpetx-regrid_error.tsv rename to MovingBoxToy/test/circle/norms/carpetxregrid-regrid_error.tsv From 5396122a50426bbfaae8191f19500e092973af0e Mon Sep 17 00:00:00 2001 From: Roland Haas Date: Thu, 29 Aug 2024 16:10:37 -0500 Subject: [PATCH 23/39] PoissonX: adapt to CarpetX implementation change required due to CarpetX implemting "Driver" --- PoissonX/par/poissonx-fd4.par | 6 +++--- PoissonX/par/poissonx-logo.par | 6 +++--- PoissonX/par/poissonx-rl2.par | 8 ++++---- PoissonX/par/poissonx-rl4.par | 8 ++++---- PoissonX/par/poissonx.par | 6 +++--- 5 files changed, 17 insertions(+), 17 deletions(-) diff --git a/PoissonX/par/poissonx-fd4.par b/PoissonX/par/poissonx-fd4.par index fea9f23b0..44b40bf3d 100644 --- a/PoissonX/par/poissonx-fd4.par +++ b/PoissonX/par/poissonx-fd4.par @@ -27,9 +27,9 @@ CarpetX::ncells_x = 16 CarpetX::ncells_y = 16 CarpetX::ncells_z = 16 -CarpetX::periodic_x = no -CarpetX::periodic_y = no -CarpetX::periodic_z = no +Driver::periodic_x = no +Driver::periodic_y = no +Driver::periodic_z = no CarpetX::ghost_size = 2 diff --git a/PoissonX/par/poissonx-logo.par b/PoissonX/par/poissonx-logo.par index 382d13bca..4d1449257 100644 --- a/PoissonX/par/poissonx-logo.par +++ b/PoissonX/par/poissonx-logo.par @@ -26,9 +26,9 @@ CarpetX::ncells_x = 64 CarpetX::ncells_y = 64 CarpetX::ncells_z = 64 -CarpetX::periodic_x = no -CarpetX::periodic_y = no -CarpetX::periodic_z = no +Driver::periodic_x = no +Driver::periodic_y = no +Driver::periodic_z = no CarpetX::ghost_size = 1 diff --git a/PoissonX/par/poissonx-rl2.par b/PoissonX/par/poissonx-rl2.par index 7ba049dee..ed6f5896e 100644 --- a/PoissonX/par/poissonx-rl2.par +++ b/PoissonX/par/poissonx-rl2.par @@ -28,15 +28,15 @@ CarpetX::ncells_x = 16 CarpetX::ncells_y = 16 CarpetX::ncells_z = 16 -CarpetX::periodic_x = no -CarpetX::periodic_y = no -CarpetX::periodic_z = no +Driver::periodic_x = no +Driver::periodic_y = no +Driver::periodic_z = no CarpetX::ghost_size = 1 CarpetX::max_num_levels = 2 CarpetX::regrid_every = 0 -CarpetX::regrid_error_threshold = 2.5 / 2.0 +Driver::regrid_error_threshold = 2.5 / 2.0 CarpetX::prolongation_type = "ddf" CarpetX::prolongation_order = 1 diff --git a/PoissonX/par/poissonx-rl4.par b/PoissonX/par/poissonx-rl4.par index f00e55de3..a736563a1 100644 --- a/PoissonX/par/poissonx-rl4.par +++ b/PoissonX/par/poissonx-rl4.par @@ -28,15 +28,15 @@ CarpetX::ncells_x = 16 CarpetX::ncells_y = 16 CarpetX::ncells_z = 16 -CarpetX::periodic_x = no -CarpetX::periodic_y = no -CarpetX::periodic_z = no +Driver::periodic_x = no +Driver::periodic_y = no +Driver::periodic_z = no CarpetX::ghost_size = 1 CarpetX::max_num_levels = 4 CarpetX::regrid_every = 0 -CarpetX::regrid_error_threshold = 2.5 / 2.0 +Driver::regrid_error_threshold = 2.5 / 2.0 CarpetX::prolongation_type = "ddf" CarpetX::prolongation_order = 1 diff --git a/PoissonX/par/poissonx.par b/PoissonX/par/poissonx.par index ffb7fe9ab..66c9bc013 100644 --- a/PoissonX/par/poissonx.par +++ b/PoissonX/par/poissonx.par @@ -27,9 +27,9 @@ CarpetX::ncells_x = 16 CarpetX::ncells_y = 16 CarpetX::ncells_z = 16 -CarpetX::periodic_x = no -CarpetX::periodic_y = no -CarpetX::periodic_z = no +Driver::periodic_x = no +Driver::periodic_y = no +Driver::periodic_z = no CarpetX::ghost_size = 1 From b9a17b8e376e9b50b9592f7ace416e838d398cc0 Mon Sep 17 00:00:00 2001 From: Roland Haas Date: Thu, 29 Aug 2024 16:10:37 -0500 Subject: [PATCH 24/39] SiMDWaveToyX: adapt to CarpetX implementation change required due to CarpetX implemting "Driver" --- SIMDWaveToyX/par/standing.par | 7 ++++--- SIMDWaveToyX/test/standing.par | 9 ++++++--- ...x-regrid_error.tsv => carpetxregrid-regrid_error.tsv} | 0 3 files changed, 10 insertions(+), 6 deletions(-) rename SIMDWaveToyX/test/standing/norms/{carpetx-regrid_error.tsv => carpetxregrid-regrid_error.tsv} (100%) diff --git a/SIMDWaveToyX/par/standing.par b/SIMDWaveToyX/par/standing.par index 219f6ca89..baf5da08b 100644 --- a/SIMDWaveToyX/par/standing.par +++ b/SIMDWaveToyX/par/standing.par @@ -13,9 +13,10 @@ Cactus::presync_mode = "mixed-error" CarpetX::poison_undefined_values = no -CarpetX::periodic_x = yes -CarpetX::periodic_y = yes -CarpetX::periodic_z = yes +Driver::periodic = "yes" +Driver::periodic_x = yes +Driver::periodic_y = yes +Driver::periodic_z = yes Cactus::terminate = "time" Cactus::cctk_final_time = 1.0 diff --git a/SIMDWaveToyX/test/standing.par b/SIMDWaveToyX/test/standing.par index b18695e5a..f614dc657 100644 --- a/SIMDWaveToyX/test/standing.par +++ b/SIMDWaveToyX/test/standing.par @@ -1,5 +1,6 @@ ActiveThorns = " CarpetX + CarpetXRegrid IOUtil ODESolvers SIMDWaveToyX @@ -14,9 +15,10 @@ CarpetX::ncells_x = 8 CarpetX::ncells_y = 8 CarpetX::ncells_z = 8 -CarpetX::periodic_x = yes -CarpetX::periodic_y = yes -CarpetX::periodic_z = yes +Driver::periodic = "yes" +Driver::periodic_x = yes +Driver::periodic_y = yes +Driver::periodic_z = yes Cactus::cctk_itlast = 10 @@ -26,6 +28,7 @@ ODESolvers::method = "RK3" IO::out_dir = $parfile IO::out_every = 10 +IO::out_fileinfo = "axis labels" IO::parfile_write = no CarpetX::out_metadata = no diff --git a/SIMDWaveToyX/test/standing/norms/carpetx-regrid_error.tsv b/SIMDWaveToyX/test/standing/norms/carpetxregrid-regrid_error.tsv similarity index 100% rename from SIMDWaveToyX/test/standing/norms/carpetx-regrid_error.tsv rename to SIMDWaveToyX/test/standing/norms/carpetxregrid-regrid_error.tsv From 2f0b8c87ee2894eff7a0fc3139b9e68b2eb975df Mon Sep 17 00:00:00 2001 From: Roland Haas Date: Thu, 29 Aug 2024 16:10:37 -0500 Subject: [PATCH 25/39] SpacetimeWaveToyX: adapt to CarpetX implementation change required due to CarpetX implemting "Driver" --- SpacetimeWaveToyX/par/standing.par | 7 +-- SpacetimeWaveToyX/test/standing.par | 9 ++-- ...ror.tsv => carpetxregrid-regrid_error.tsv} | 0 SpacetimeWaveToyX/test/standing/standing.par | 49 ------------------- 4 files changed, 10 insertions(+), 55 deletions(-) rename SpacetimeWaveToyX/test/standing/norms/{carpetx-regrid_error.tsv => carpetxregrid-regrid_error.tsv} (100%) delete mode 100644 SpacetimeWaveToyX/test/standing/standing.par diff --git a/SpacetimeWaveToyX/par/standing.par b/SpacetimeWaveToyX/par/standing.par index b5f24dbd5..55ae25ff8 100644 --- a/SpacetimeWaveToyX/par/standing.par +++ b/SpacetimeWaveToyX/par/standing.par @@ -12,9 +12,10 @@ Cactus::presync_mode = "mixed-error" CarpetX::poison_undefined_values = no -CarpetX::periodic_x = yes -CarpetX::periodic_y = yes -CarpetX::periodic_z = yes +Driver::periodic = "yes" +Driver::periodic_x = yes +Driver::periodic_y = yes +Driver::periodic_z = yes Cactus::terminate = "time" Cactus::cctk_final_time = 1.0 diff --git a/SpacetimeWaveToyX/test/standing.par b/SpacetimeWaveToyX/test/standing.par index 5bc0e9dc3..1135d15b4 100644 --- a/SpacetimeWaveToyX/test/standing.par +++ b/SpacetimeWaveToyX/test/standing.par @@ -15,9 +15,10 @@ CarpetX::ncells_x = 8 CarpetX::ncells_y = 8 CarpetX::ncells_z = 8 -CarpetX::periodic_x = yes -CarpetX::periodic_y = yes -CarpetX::periodic_z = yes +Driver::periodic = "yes" +Driver::periodic_x = yes +Driver::periodic_y = yes +Driver::periodic_z = yes Cactus::terminate = "time" Cactus::cctk_final_time = 1.0 @@ -26,6 +27,8 @@ SpacetimeWaveToyX::initial_condition = "standing wave" IO::out_dir = $parfile IO::out_every = $out_every +IO::out_fileinfo = "axis labels" +IO::parfile_write = no CarpetX::out_metadata = no CarpetX::out_norm_vars = "all" diff --git a/SpacetimeWaveToyX/test/standing/norms/carpetx-regrid_error.tsv b/SpacetimeWaveToyX/test/standing/norms/carpetxregrid-regrid_error.tsv similarity index 100% rename from SpacetimeWaveToyX/test/standing/norms/carpetx-regrid_error.tsv rename to SpacetimeWaveToyX/test/standing/norms/carpetxregrid-regrid_error.tsv diff --git a/SpacetimeWaveToyX/test/standing/standing.par b/SpacetimeWaveToyX/test/standing/standing.par deleted file mode 100644 index 0cd26083e..000000000 --- a/SpacetimeWaveToyX/test/standing/standing.par +++ /dev/null @@ -1,49 +0,0 @@ -ActiveThorns = " - CarpetX - IOUtil - SpacetimeWaveToyX -" - -$out_every = 16 - -Cactus::cctk_show_schedule = no -Cactus::presync_mode = "mixed-error" - -CarpetX::poison_undefined_values = yes - -CarpetX::ncells_x = 8 -CarpetX::ncells_y = 8 -CarpetX::ncells_z = 8 - -CarpetX::periodic_x = yes -CarpetX::periodic_y = yes -CarpetX::periodic_z = yes - -Cactus::terminate = "time" -Cactus::cctk_final_time = 1.0 - -SpacetimeWaveToyX::initial_condition = "standing wave" - -IO::out_dir = $parfile -IO::out_every = $out_every - -CarpetX::out_metadata = no -CarpetX::out_norm_vars = "all" -CarpetX::out_norm_omit_unstable = yes - -CarpetX::out_tsv_vars = " - SpacetimeWaveToyX::ustate - SpacetimeWaveToyX::ftstate - SpacetimeWaveToyX::fxstate - SpacetimeWaveToyX::fystate - SpacetimeWaveToyX::fzstate - SpacetimeWaveToyX::curlfx - SpacetimeWaveToyX::curlfy - SpacetimeWaveToyX::curlfz - SpacetimeWaveToyX::energy - SpacetimeWaveToyX::uerror - SpacetimeWaveToyX::fterror - SpacetimeWaveToyX::fxerror - SpacetimeWaveToyX::fyerror - SpacetimeWaveToyX::fzerror -" From feaffd81a05c26f88ff2cabbc614240c06fb5291 Mon Sep 17 00:00:00 2001 From: Roland Haas Date: Thu, 29 Aug 2024 16:10:37 -0500 Subject: [PATCH 26/39] StaggeredWaveToyX: adapt to CarpetX implementation change required due to CarpetX implemting "Driver" --- StaggeredWaveToyX/par/standing.par | 7 +-- StaggeredWaveToyX/test/standing.par | 9 ++-- ...ror.tsv => carpetxregrid-regrid_error.tsv} | 0 StaggeredWaveToyX/test/standing/standing.par | 53 ------------------- 4 files changed, 10 insertions(+), 59 deletions(-) rename StaggeredWaveToyX/test/standing/norms/{carpetx-regrid_error.tsv => carpetxregrid-regrid_error.tsv} (100%) delete mode 100644 StaggeredWaveToyX/test/standing/standing.par diff --git a/StaggeredWaveToyX/par/standing.par b/StaggeredWaveToyX/par/standing.par index b1a2ca2ae..8f38ca903 100644 --- a/StaggeredWaveToyX/par/standing.par +++ b/StaggeredWaveToyX/par/standing.par @@ -14,9 +14,10 @@ Cactus::presync_mode = "mixed-error" CarpetX::verbose = no CarpetX::poison_undefined_values = no -CarpetX::periodic_x = yes -CarpetX::periodic_y = yes -CarpetX::periodic_z = yes +Driver::periodic = "yes" +Driver::periodic_x = yes +Driver::periodic_y = yes +Driver::periodic_z = yes Cactus::terminate = "time" Cactus::cctk_final_time = 1.0 diff --git a/StaggeredWaveToyX/test/standing.par b/StaggeredWaveToyX/test/standing.par index 59086a9a2..202ab61f9 100644 --- a/StaggeredWaveToyX/test/standing.par +++ b/StaggeredWaveToyX/test/standing.par @@ -17,9 +17,10 @@ CarpetX::ncells_x = 8 CarpetX::ncells_y = 8 CarpetX::ncells_z = 8 -CarpetX::periodic_x = yes -CarpetX::periodic_y = yes -CarpetX::periodic_z = yes +Driver::periodic = "yes" +Driver::periodic_x = yes +Driver::periodic_y = yes +Driver::periodic_z = yes Cactus::cctk_itlast = 10 @@ -29,6 +30,8 @@ ODESolvers::method = "RK3" IO::out_dir = $parfile IO::out_every = $out_every +IO::out_fileinfo = "axis labels" +IO::parfile_write = no CarpetX::out_metadata = no CarpetX::out_norm_vars = "all" diff --git a/StaggeredWaveToyX/test/standing/norms/carpetx-regrid_error.tsv b/StaggeredWaveToyX/test/standing/norms/carpetxregrid-regrid_error.tsv similarity index 100% rename from StaggeredWaveToyX/test/standing/norms/carpetx-regrid_error.tsv rename to StaggeredWaveToyX/test/standing/norms/carpetxregrid-regrid_error.tsv diff --git a/StaggeredWaveToyX/test/standing/standing.par b/StaggeredWaveToyX/test/standing/standing.par deleted file mode 100644 index c7b9a407d..000000000 --- a/StaggeredWaveToyX/test/standing/standing.par +++ /dev/null @@ -1,53 +0,0 @@ -ActiveThorns = " - CarpetX - IOUtil - ODESolvers - StaggeredWaveToyX -" - -$out_every = 16 - -Cactus::cctk_show_schedule = no -Cactus::presync_mode = "mixed-error" - -CarpetX::poison_undefined_values = yes - -CarpetX::ncells_x = 8 -CarpetX::ncells_y = 8 -CarpetX::ncells_z = 8 - -CarpetX::periodic_x = yes -CarpetX::periodic_y = yes -CarpetX::periodic_z = yes - -Cactus::cctk_itlast = 10 - -StaggeredWaveToyX::initial_condition = "standing wave" - -ODESolvers::method = "RK3" - -IO::out_dir = $parfile -IO::out_every = $out_every - -CarpetX::out_metadata = no -CarpetX::out_norm_vars = "all" -CarpetX::out_norm_omit_unstable = yes - -CarpetX::out_tsv_vars = " - StaggeredWaveToyX::ustate - StaggeredWaveToyX::fxstate - StaggeredWaveToyX::fystate - StaggeredWaveToyX::fzstate - StaggeredWaveToyX::urhs - StaggeredWaveToyX::fxrhs - StaggeredWaveToyX::fyrhs - StaggeredWaveToyX::fzrhs - StaggeredWaveToyX::curlfx - StaggeredWaveToyX::curlfy - StaggeredWaveToyX::curlfz - StaggeredWaveToyX::energy - StaggeredWaveToyX::uerror - StaggeredWaveToyX::fxerror - StaggeredWaveToyX::fyerror - StaggeredWaveToyX::fzerror -" From bbcef51d9ef60c97c2e295106e9343d1148ec590 Mon Sep 17 00:00:00 2001 From: Roland Haas Date: Tue, 3 Sep 2024 15:13:25 -0500 Subject: [PATCH 27/39] TestArrayGroup: remove parameter file and changing data from test output --- TestArrayGroup/test/testarraygroup.par | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/TestArrayGroup/test/testarraygroup.par b/TestArrayGroup/test/testarraygroup.par index 89ba45c3b..5739f7c42 100644 --- a/TestArrayGroup/test/testarraygroup.par +++ b/TestArrayGroup/test/testarraygroup.par @@ -21,8 +21,9 @@ CarpetX::max_num_levels = $nlevels CarpetX::dtfac = 0.5 IO::out_dir = $parfile -IO::parfile_write = "no" IO::out_every = 1 +IO::out_fileinfo = "axis labels" +IO::parfile_write = no CarpetX::out_metadata = no CarpetX::out_tsv_vars = " From d24b0242a02c5dbb36b4f1a08641f0cc1615203b Mon Sep 17 00:00:00 2001 From: Roland Haas Date: Thu, 29 Aug 2024 16:22:00 -0500 Subject: [PATCH 28/39] TestBoundaries: adapt to moving regrid error into its own thorn --- TestBoundaries/par/test_boundaries.par | 1 + 1 file changed, 1 insertion(+) diff --git a/TestBoundaries/par/test_boundaries.par b/TestBoundaries/par/test_boundaries.par index 4c1b16c20..e5270bbf3 100644 --- a/TestBoundaries/par/test_boundaries.par +++ b/TestBoundaries/par/test_boundaries.par @@ -1,5 +1,6 @@ ActiveThorns = " CarpetX + CarpetXRegrid IOUtil TestBoundaries " From 23db0c6f2c745d66d4f8f6ab1cbe15011594b77b Mon Sep 17 00:00:00 2001 From: Roland Haas Date: Thu, 29 Aug 2024 16:10:37 -0500 Subject: [PATCH 29/39] TestBoxInBox: adapt to CarpetX implementation change required due to CarpetX implemting "Driver" --- TestBoxInBox/test/moving.par | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/TestBoxInBox/test/moving.par b/TestBoxInBox/test/moving.par index 204da46bc..748f29f6d 100644 --- a/TestBoxInBox/test/moving.par +++ b/TestBoxInBox/test/moving.par @@ -1,6 +1,7 @@ ActiveThorns = " BoxInBox CarpetX + CarpetXRegrid CoordinatesX IOUtil TestBoxInBox @@ -33,6 +34,7 @@ Cactus::cctk_itlast = 10 IO::out_dir = $parfile IO::out_every = 10 +IO::out_fileinfo = "axis labels" IO::parfile_write = no CarpetX::out_metadata = no @@ -40,7 +42,7 @@ CarpetX::out_norm_vars = "all" CarpetX::out_norm_omit_unstable = yes CarpetX::out_tsv_vars = " - CarpetX::regrid_error + CarpetXRegrid::regrid_error CoordinatesX::vertex_coords CoordinatesX::cell_coords " From 7f5a2afc7e6948563e69de800cf337b5adc24c96 Mon Sep 17 00:00:00 2001 From: Roland Haas Date: Thu, 29 Aug 2024 16:10:37 -0500 Subject: [PATCH 30/39] TestDerivs: adapt to CarpetX implementation change required due to CarpetX implemting "Driver" --- TestDerivs/interface.ccl | 2 +- TestDerivs/schedule.ccl | 2 +- TestDerivs/test/derivs-2nd-order.par | 9 +++++---- TestDerivs/test/derivs-4th-order.par | 9 +++++---- TestDerivs/test/derivs-6th-order.par | 11 ++++++----- 5 files changed, 18 insertions(+), 15 deletions(-) diff --git a/TestDerivs/interface.ccl b/TestDerivs/interface.ccl index f3b757fa7..b0b8ab0f1 100644 --- a/TestDerivs/interface.ccl +++ b/TestDerivs/interface.ccl @@ -1,7 +1,7 @@ # Interface definition for thorn TestDerivs IMPLEMENTS: TestDerivs -INHERITS: CarpetX +INHERITS: CarpetXRegrid USES INCLUDE HEADER: defs.hxx USES INCLUDE HEADER: loop_device.hxx diff --git a/TestDerivs/schedule.ccl b/TestDerivs/schedule.ccl index caa8cbd62..1d583f928 100644 --- a/TestDerivs/schedule.ccl +++ b/TestDerivs/schedule.ccl @@ -7,7 +7,7 @@ STORAGE: ddchi SCHEDULE TestDerivs_SetError AT postinitial { LANG: C - WRITES: CarpetX::regrid_error(interior) + WRITES: CarpetXRegrid::regrid_error(interior) } "Set up test grid" SCHEDULE TestDerivs_Set AT initial diff --git a/TestDerivs/test/derivs-2nd-order.par b/TestDerivs/test/derivs-2nd-order.par index 1e5e4b8b8..8e2a4822b 100644 --- a/TestDerivs/test/derivs-2nd-order.par +++ b/TestDerivs/test/derivs-2nd-order.par @@ -25,9 +25,10 @@ CarpetX::xmax = 0.1234567+$pi CarpetX::ymax = 0.2345678+$pi CarpetX::zmax = 0.3456789+$pi -CarpetX::periodic_x = "yes" -CarpetX::periodic_y = "yes" -CarpetX::periodic_z = "yes" +Driver::periodic = "yes" +Driver::periodic_x = "yes" +Driver::periodic_y = "yes" +Driver::periodic_z = "yes" CarpetX::ncells_x = $ncells CarpetX::ncells_y = $ncells @@ -39,7 +40,7 @@ CarpetX::blocking_factor_z = $blocking_factor CarpetX::max_num_levels = $nlevels CarpetX::regrid_every = 1 -CarpetX::regrid_error_threshold = 0.01 +Driver::regrid_error_threshold = 0.01 CarpetX::dtfac = 0.5 diff --git a/TestDerivs/test/derivs-4th-order.par b/TestDerivs/test/derivs-4th-order.par index 4110188f6..efb67cf0f 100644 --- a/TestDerivs/test/derivs-4th-order.par +++ b/TestDerivs/test/derivs-4th-order.par @@ -25,9 +25,10 @@ CarpetX::xmax = 0.1234567+$pi CarpetX::ymax = 0.2345678+$pi CarpetX::zmax = 0.3456789+$pi -CarpetX::periodic_x = "yes" -CarpetX::periodic_y = "yes" -CarpetX::periodic_z = "yes" +Driver::periodic = "yes" +Driver::periodic_x = "yes" +Driver::periodic_y = "yes" +Driver::periodic_z = "yes" CarpetX::ncells_x = $ncells CarpetX::ncells_y = $ncells @@ -39,7 +40,7 @@ CarpetX::blocking_factor_z = $blocking_factor CarpetX::max_num_levels = $nlevels CarpetX::regrid_every = 1 -CarpetX::regrid_error_threshold = 0.01 +Driver::regrid_error_threshold = 0.01 CarpetX::dtfac = 0.5 diff --git a/TestDerivs/test/derivs-6th-order.par b/TestDerivs/test/derivs-6th-order.par index e5ab0553a..48f7f30a5 100644 --- a/TestDerivs/test/derivs-6th-order.par +++ b/TestDerivs/test/derivs-6th-order.par @@ -25,9 +25,10 @@ CarpetX::xmax = 0.1234567+$pi CarpetX::ymax = 0.2345678+$pi CarpetX::zmax = 0.3456789+$pi -CarpetX::periodic_x = "yes" -CarpetX::periodic_y = "yes" -CarpetX::periodic_z = "yes" +Driver::periodic = "yes" +Driver::periodic_x = "yes" +Driver::periodic_y = "yes" +Driver::periodic_z = "yes" CarpetX::ncells_x = $ncells CarpetX::ncells_y = $ncells @@ -39,7 +40,7 @@ CarpetX::blocking_factor_z = $blocking_factor CarpetX::max_num_levels = $nlevels CarpetX::regrid_every = 1 -CarpetX::regrid_error_threshold = 0.01 +Driver::regrid_error_threshold = 0.01 CarpetX::dtfac = 0.5 @@ -53,7 +54,7 @@ TestDerivs::kxy = 1.0 TestDerivs::kyz = 1.0 IO::out_dir = $parfile -IO::out_fileinfo = "none" +IO::out_fileinfo = "axis labels" IO::parfile_write = "no" IO::out_every = 1 From 7477faf262c73852b5ec2fcee68e05540c8a6967 Mon Sep 17 00:00:00 2001 From: Roland Haas Date: Thu, 29 Aug 2024 16:10:37 -0500 Subject: [PATCH 31/39] TestInterpolate: adapt to CarpetX implementation change required due to CarpetX implemting "Driver" --- TestInterpolate/test/interpolate.par | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/TestInterpolate/test/interpolate.par b/TestInterpolate/test/interpolate.par index e9038e00c..d9a50978c 100644 --- a/TestInterpolate/test/interpolate.par +++ b/TestInterpolate/test/interpolate.par @@ -31,12 +31,12 @@ CarpetX::ncells_z = $ncells CarpetX::max_num_levels = $nlevels CarpetX::regrid_every = 16 -CarpetX::regrid_error_threshold = 5.0 +Driver::regrid_error_threshold = 5.0 CarpetX::prolongation_type = "ddf" IO::out_dir = $parfile -IO::out_fileinfo = "none" +IO::out_fileinfo = "axis labels" IO::parfile_write = "no" IO::out_every = 1 From 9d2cdf9985d171189a2a9a404b3ce82bcd03387a Mon Sep 17 00:00:00 2001 From: Roland Haas Date: Thu, 29 Aug 2024 16:10:37 -0500 Subject: [PATCH 32/39] TestLoopX: adapt to CarpetX implementation change required due to CarpetX implemting "Driver" --- TestLoopX/interface.ccl | 2 -- TestLoopX/test/testloopx_outermost_interior.par | 14 ++++++++------ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/TestLoopX/interface.ccl b/TestLoopX/interface.ccl index 8bf2c7784..1ca8ace82 100644 --- a/TestLoopX/interface.ccl +++ b/TestLoopX/interface.ccl @@ -1,8 +1,6 @@ # Interface definition for thorn TestLoopX IMPLEMENTS: TestLoopX -INHERITS: CarpetX - USES INCLUDE HEADER: loop.hxx USES INCLUDE HEADER: loop_device.hxx diff --git a/TestLoopX/test/testloopx_outermost_interior.par b/TestLoopX/test/testloopx_outermost_interior.par index 9560d6ea9..601add74f 100644 --- a/TestLoopX/test/testloopx_outermost_interior.par +++ b/TestLoopX/test/testloopx_outermost_interior.par @@ -19,9 +19,10 @@ CarpetX::xmax = +10 CarpetX::ymax = +10 CarpetX::zmax = +10 -CarpetX::periodic_x = "yes" -CarpetX::periodic_y = "yes" -CarpetX::periodic_z = "yes" +Driver::periodic = "yes" +Driver::periodic_x = "yes" +Driver::periodic_y = "yes" +Driver::periodic_z = "yes" CarpetX::ncells_x = 40 CarpetX::ncells_y = 40 @@ -29,7 +30,7 @@ CarpetX::ncells_z = 40 CarpetX::max_num_levels = 1 CarpetX::regrid_every = 1 -CarpetX::regrid_error_threshold = 0.01 +Driver::regrid_error_threshold = 0.01 CarpetX::dtfac = 0.5 @@ -38,10 +39,11 @@ CarpetX::prolongation_order = 5 CarpetX::ghost_size = 3 IO::out_dir = $parfile -IO::out_fileinfo = "none" -IO::parfile_write = "no" IO::out_every = 1 +IO::out_fileinfo = "axis labels" +IO::parfile_write = no +CarpetX::out_metadata = no CarpetX::out_tsv_vars = " TestLoopX::testloop_gf " From 4d58fe99795c9f49c5bb5460344bbd61b3c68338 Mon Sep 17 00:00:00 2001 From: Roland Haas Date: Thu, 29 Aug 2024 16:10:37 -0500 Subject: [PATCH 33/39] TestNorms: adapt to CarpetX implementation change required due to CarpetX implemting "Driver" --- TestNorms/interface.ccl | 2 +- TestNorms/schedule.ccl | 2 +- TestNorms/test/norms.par | 2 +- ...{carpetx-regrid_error.tsv => carpetxregrid-regrid_error.tsv} | 0 4 files changed, 3 insertions(+), 3 deletions(-) rename TestNorms/test/norms/norms/{carpetx-regrid_error.tsv => carpetxregrid-regrid_error.tsv} (100%) diff --git a/TestNorms/interface.ccl b/TestNorms/interface.ccl index fd4cbfe08..29d87ff0a 100644 --- a/TestNorms/interface.ccl +++ b/TestNorms/interface.ccl @@ -1,6 +1,6 @@ # Interface definition for thorn TestNorms implements: TestNorms -inherits: CarpetX +inherits: Driver, CarpetXRegrid uses include header: loop.hxx diff --git a/TestNorms/schedule.ccl b/TestNorms/schedule.ccl index a570af2ed..95f895383 100644 --- a/TestNorms/schedule.ccl +++ b/TestNorms/schedule.ccl @@ -12,7 +12,7 @@ STORAGE: gf111 SCHEDULE TestNorms_SetError AT postinitial { LANG: C - WRITES: CarpetX::regrid_error(interior) + WRITES: CarpetXRegrid::regrid_error(interior) } "Set up test grid" SCHEDULE TestNorms_Set AT initial diff --git a/TestNorms/test/norms.par b/TestNorms/test/norms.par index be6a3cb59..d8c35823c 100644 --- a/TestNorms/test/norms.par +++ b/TestNorms/test/norms.par @@ -37,7 +37,7 @@ CarpetX::blocking_factor_z = $blocking_factor CarpetX::max_num_levels = $nlevels CarpetX::regrid_every = 1 -CarpetX::regrid_error_threshold = 0.01 +Driver::regrid_error_threshold = 0.01 CarpetX::dtfac = 0.5 diff --git a/TestNorms/test/norms/norms/carpetx-regrid_error.tsv b/TestNorms/test/norms/norms/carpetxregrid-regrid_error.tsv similarity index 100% rename from TestNorms/test/norms/norms/carpetx-regrid_error.tsv rename to TestNorms/test/norms/norms/carpetxregrid-regrid_error.tsv From 1097b02537c052b3bf1bf4e17e2866e83bcb4916 Mon Sep 17 00:00:00 2001 From: Roland Haas Date: Thu, 29 Aug 2024 16:10:37 -0500 Subject: [PATCH 34/39] TestODESolvers: adapt to CarpetX implementation change required due to CarpetX implemting "Driver" --- TestODESolvers/test/test-constant.par | 9 +++++---- ...x-regrid_error.tsv => carpetxregrid-regrid_error.tsv} | 0 TestODESolvers/test/test-dp87.par | 9 +++++---- ...x-regrid_error.tsv => carpetxregrid-regrid_error.tsv} | 0 TestODESolvers/test/test-euler.par | 9 +++++---- ...x-regrid_error.tsv => carpetxregrid-regrid_error.tsv} | 0 TestODESolvers/test/test-rk2.par | 9 +++++---- ...x-regrid_error.tsv => carpetxregrid-regrid_error.tsv} | 0 TestODESolvers/test/test-rk3.par | 9 +++++---- ...x-regrid_error.tsv => carpetxregrid-regrid_error.tsv} | 0 TestODESolvers/test/test-rk4.par | 9 +++++---- ...x-regrid_error.tsv => carpetxregrid-regrid_error.tsv} | 0 TestODESolvers/test/test-rkf78.par | 9 +++++---- ...x-regrid_error.tsv => carpetxregrid-regrid_error.tsv} | 0 TestODESolvers/test/test-ssprk3.par | 9 +++++---- ...x-regrid_error.tsv => carpetxregrid-regrid_error.tsv} | 0 16 files changed, 40 insertions(+), 32 deletions(-) rename TestODESolvers/test/test-constant/norms/{carpetx-regrid_error.tsv => carpetxregrid-regrid_error.tsv} (100%) rename TestODESolvers/test/test-dp87/norms/{carpetx-regrid_error.tsv => carpetxregrid-regrid_error.tsv} (100%) rename TestODESolvers/test/test-euler/norms/{carpetx-regrid_error.tsv => carpetxregrid-regrid_error.tsv} (100%) rename TestODESolvers/test/test-rk2/norms/{carpetx-regrid_error.tsv => carpetxregrid-regrid_error.tsv} (100%) rename TestODESolvers/test/test-rk3/norms/{carpetx-regrid_error.tsv => carpetxregrid-regrid_error.tsv} (100%) rename TestODESolvers/test/test-rk4/norms/{carpetx-regrid_error.tsv => carpetxregrid-regrid_error.tsv} (100%) rename TestODESolvers/test/test-rkf78/norms/{carpetx-regrid_error.tsv => carpetxregrid-regrid_error.tsv} (100%) rename TestODESolvers/test/test-ssprk3/norms/{carpetx-regrid_error.tsv => carpetxregrid-regrid_error.tsv} (100%) diff --git a/TestODESolvers/test/test-constant.par b/TestODESolvers/test/test-constant.par index 5907663bf..cc2d47833 100644 --- a/TestODESolvers/test/test-constant.par +++ b/TestODESolvers/test/test-constant.par @@ -17,9 +17,10 @@ CarpetX::blocking_factor_z = 1 CarpetX::ghost_size = 0 -CarpetX::periodic_x = yes -CarpetX::periodic_y = yes -CarpetX::periodic_z = yes +Driver::periodic = "yes" +Driver::periodic_x = yes +Driver::periodic_y = yes +Driver::periodic_z = yes CarpetX::dtfac = 0.001 Cactus::cctk_itlast = 10 @@ -40,7 +41,7 @@ CarpetX::out_norm_omit_sumloc_for_backward_compatibility = yes # TestODESolvers::corder requires larger tolerances (~1e-5) CarpetX::out_norm_vars = " - CarpetX::regrid_error + CarpetXRegrid::regrid_error # TestODESolvers::corder TestODESolvers::error TestODESolvers::error2 diff --git a/TestODESolvers/test/test-constant/norms/carpetx-regrid_error.tsv b/TestODESolvers/test/test-constant/norms/carpetxregrid-regrid_error.tsv similarity index 100% rename from TestODESolvers/test/test-constant/norms/carpetx-regrid_error.tsv rename to TestODESolvers/test/test-constant/norms/carpetxregrid-regrid_error.tsv diff --git a/TestODESolvers/test/test-dp87.par b/TestODESolvers/test/test-dp87.par index 56d3a9f7f..16873d493 100644 --- a/TestODESolvers/test/test-dp87.par +++ b/TestODESolvers/test/test-dp87.par @@ -17,9 +17,10 @@ CarpetX::blocking_factor_z = 1 CarpetX::ghost_size = 0 -CarpetX::periodic_x = yes -CarpetX::periodic_y = yes -CarpetX::periodic_z = yes +Driver::periodic = "yes" +Driver::periodic_x = yes +Driver::periodic_y = yes +Driver::periodic_z = yes CarpetX::dtfac = 0.03 Cactus::cctk_itlast = 10 @@ -40,7 +41,7 @@ CarpetX::out_norm_omit_sumloc_for_backward_compatibility = yes # TestODESolvers::corder requires larger tolerances (~1e-5) CarpetX::out_norm_vars = " - CarpetX::regrid_error + CarpetXRegrid::regrid_error # TestODESolvers::corder TestODESolvers::error TestODESolvers::error2 diff --git a/TestODESolvers/test/test-dp87/norms/carpetx-regrid_error.tsv b/TestODESolvers/test/test-dp87/norms/carpetxregrid-regrid_error.tsv similarity index 100% rename from TestODESolvers/test/test-dp87/norms/carpetx-regrid_error.tsv rename to TestODESolvers/test/test-dp87/norms/carpetxregrid-regrid_error.tsv diff --git a/TestODESolvers/test/test-euler.par b/TestODESolvers/test/test-euler.par index b27bac15a..a7844524f 100644 --- a/TestODESolvers/test/test-euler.par +++ b/TestODESolvers/test/test-euler.par @@ -17,9 +17,10 @@ CarpetX::blocking_factor_z = 1 CarpetX::ghost_size = 0 -CarpetX::periodic_x = yes -CarpetX::periodic_y = yes -CarpetX::periodic_z = yes +Driver::periodic = "yes" +Driver::periodic_x = yes +Driver::periodic_y = yes +Driver::periodic_z = yes CarpetX::dtfac = 0.001 Cactus::cctk_itlast = 10 @@ -40,7 +41,7 @@ CarpetX::out_norm_omit_sumloc_for_backward_compatibility = yes # TestODESolvers::corder requires larger tolerances (~1e-5) CarpetX::out_norm_vars = " - CarpetX::regrid_error + CarpetXRegrid::regrid_error # TestODESolvers::corder TestODESolvers::error TestODESolvers::error2 diff --git a/TestODESolvers/test/test-euler/norms/carpetx-regrid_error.tsv b/TestODESolvers/test/test-euler/norms/carpetxregrid-regrid_error.tsv similarity index 100% rename from TestODESolvers/test/test-euler/norms/carpetx-regrid_error.tsv rename to TestODESolvers/test/test-euler/norms/carpetxregrid-regrid_error.tsv diff --git a/TestODESolvers/test/test-rk2.par b/TestODESolvers/test/test-rk2.par index c9c765cf4..8fd062b2c 100644 --- a/TestODESolvers/test/test-rk2.par +++ b/TestODESolvers/test/test-rk2.par @@ -17,9 +17,10 @@ CarpetX::blocking_factor_z = 1 CarpetX::ghost_size = 0 -CarpetX::periodic_x = yes -CarpetX::periodic_y = yes -CarpetX::periodic_z = yes +Driver::periodic = "yes" +Driver::periodic_x = yes +Driver::periodic_y = yes +Driver::periodic_z = yes CarpetX::dtfac = 0.001 Cactus::cctk_itlast = 10 @@ -40,7 +41,7 @@ CarpetX::out_norm_omit_sumloc_for_backward_compatibility = yes # TestODESolvers::corder requires larger tolerances (~1e-5) CarpetX::out_norm_vars = " - CarpetX::regrid_error + CarpetXRegrid::regrid_error # TestODESolvers::corder TestODESolvers::error TestODESolvers::error2 diff --git a/TestODESolvers/test/test-rk2/norms/carpetx-regrid_error.tsv b/TestODESolvers/test/test-rk2/norms/carpetxregrid-regrid_error.tsv similarity index 100% rename from TestODESolvers/test/test-rk2/norms/carpetx-regrid_error.tsv rename to TestODESolvers/test/test-rk2/norms/carpetxregrid-regrid_error.tsv diff --git a/TestODESolvers/test/test-rk3.par b/TestODESolvers/test/test-rk3.par index 917514ee3..4169e6b8a 100644 --- a/TestODESolvers/test/test-rk3.par +++ b/TestODESolvers/test/test-rk3.par @@ -17,9 +17,10 @@ CarpetX::blocking_factor_z = 1 CarpetX::ghost_size = 0 -CarpetX::periodic_x = yes -CarpetX::periodic_y = yes -CarpetX::periodic_z = yes +Driver::periodic = "yes" +Driver::periodic_x = yes +Driver::periodic_y = yes +Driver::periodic_z = yes CarpetX::dtfac = 0.001 Cactus::cctk_itlast = 10 @@ -40,7 +41,7 @@ CarpetX::out_norm_omit_sumloc_for_backward_compatibility = yes # TestODESolvers::corder requires larger tolerances (~1e-5) CarpetX::out_norm_vars = " - CarpetX::regrid_error + CarpetXRegrid::regrid_error # TestODESolvers::corder TestODESolvers::error TestODESolvers::error2 diff --git a/TestODESolvers/test/test-rk3/norms/carpetx-regrid_error.tsv b/TestODESolvers/test/test-rk3/norms/carpetxregrid-regrid_error.tsv similarity index 100% rename from TestODESolvers/test/test-rk3/norms/carpetx-regrid_error.tsv rename to TestODESolvers/test/test-rk3/norms/carpetxregrid-regrid_error.tsv diff --git a/TestODESolvers/test/test-rk4.par b/TestODESolvers/test/test-rk4.par index 9eb8cd0ce..b4dc50c77 100644 --- a/TestODESolvers/test/test-rk4.par +++ b/TestODESolvers/test/test-rk4.par @@ -17,9 +17,10 @@ CarpetX::blocking_factor_z = 1 CarpetX::ghost_size = 0 -CarpetX::periodic_x = yes -CarpetX::periodic_y = yes -CarpetX::periodic_z = yes +Driver::periodic = "yes" +Driver::periodic_x = yes +Driver::periodic_y = yes +Driver::periodic_z = yes CarpetX::dtfac = 0.001 Cactus::cctk_itlast = 10 @@ -40,7 +41,7 @@ CarpetX::out_norm_omit_sumloc_for_backward_compatibility = yes # TestODESolvers::corder requires larger tolerances (~1e-5) CarpetX::out_norm_vars = " - CarpetX::regrid_error + CarpetXRegrid::regrid_error # TestODESolvers::corder TestODESolvers::error TestODESolvers::error2 diff --git a/TestODESolvers/test/test-rk4/norms/carpetx-regrid_error.tsv b/TestODESolvers/test/test-rk4/norms/carpetxregrid-regrid_error.tsv similarity index 100% rename from TestODESolvers/test/test-rk4/norms/carpetx-regrid_error.tsv rename to TestODESolvers/test/test-rk4/norms/carpetxregrid-regrid_error.tsv diff --git a/TestODESolvers/test/test-rkf78.par b/TestODESolvers/test/test-rkf78.par index 70a64672e..55211a171 100644 --- a/TestODESolvers/test/test-rkf78.par +++ b/TestODESolvers/test/test-rkf78.par @@ -17,9 +17,10 @@ CarpetX::blocking_factor_z = 1 CarpetX::ghost_size = 0 -CarpetX::periodic_x = yes -CarpetX::periodic_y = yes -CarpetX::periodic_z = yes +Driver::periodic = "yes" +Driver::periodic_x = yes +Driver::periodic_y = yes +Driver::periodic_z = yes CarpetX::dtfac = 0.01 Cactus::cctk_itlast = 10 @@ -40,7 +41,7 @@ CarpetX::out_norm_omit_sumloc_for_backward_compatibility = yes # TestODESolvers::corder requires larger tolerances (~1e-5) CarpetX::out_norm_vars = " - CarpetX::regrid_error + CarpetXRegrid::regrid_error # TestODESolvers::corder TestODESolvers::error TestODESolvers::error2 diff --git a/TestODESolvers/test/test-rkf78/norms/carpetx-regrid_error.tsv b/TestODESolvers/test/test-rkf78/norms/carpetxregrid-regrid_error.tsv similarity index 100% rename from TestODESolvers/test/test-rkf78/norms/carpetx-regrid_error.tsv rename to TestODESolvers/test/test-rkf78/norms/carpetxregrid-regrid_error.tsv diff --git a/TestODESolvers/test/test-ssprk3.par b/TestODESolvers/test/test-ssprk3.par index cc06470ce..13c0952be 100644 --- a/TestODESolvers/test/test-ssprk3.par +++ b/TestODESolvers/test/test-ssprk3.par @@ -17,9 +17,10 @@ CarpetX::blocking_factor_z = 1 CarpetX::ghost_size = 0 -CarpetX::periodic_x = yes -CarpetX::periodic_y = yes -CarpetX::periodic_z = yes +Driver::periodic = "yes" +Driver::periodic_x = yes +Driver::periodic_y = yes +Driver::periodic_z = yes CarpetX::dtfac = 0.001 Cactus::cctk_itlast = 10 @@ -40,7 +41,7 @@ CarpetX::out_norm_omit_sumloc_for_backward_compatibility = yes # TestODESolvers::corder requires larger tolerances (~1e-5) CarpetX::out_norm_vars = " - CarpetX::regrid_error + CarpetXRegrid::regrid_error # TestODESolvers::corder TestODESolvers::error TestODESolvers::error2 diff --git a/TestODESolvers/test/test-ssprk3/norms/carpetx-regrid_error.tsv b/TestODESolvers/test/test-ssprk3/norms/carpetxregrid-regrid_error.tsv similarity index 100% rename from TestODESolvers/test/test-ssprk3/norms/carpetx-regrid_error.tsv rename to TestODESolvers/test/test-ssprk3/norms/carpetxregrid-regrid_error.tsv From 11127f6bbf3f53cf22c205d95b15c931c0c13360 Mon Sep 17 00:00:00 2001 From: Roland Haas Date: Tue, 3 Sep 2024 15:16:28 -0500 Subject: [PATCH 35/39] TestODESolvers2: remove parameter file and changing data from test output --- TestODESolvers2/test/test-constant.par | 4 +++- TestODESolvers2/test/test-dp87.par | 4 +++- TestODESolvers2/test/test-euler.par | 4 +++- TestODESolvers2/test/test-rk2.par | 4 +++- TestODESolvers2/test/test-rk3.par | 4 +++- TestODESolvers2/test/test-rk4.par | 4 +++- TestODESolvers2/test/test-rkf78.par | 4 +++- TestODESolvers2/test/test-ssprk3.par | 4 +++- 8 files changed, 24 insertions(+), 8 deletions(-) diff --git a/TestODESolvers2/test/test-constant.par b/TestODESolvers2/test/test-constant.par index 4b2f2bead..ba4bcae3e 100644 --- a/TestODESolvers2/test/test-constant.par +++ b/TestODESolvers2/test/test-constant.par @@ -39,9 +39,11 @@ ODESolvers::method = "constant" TestODESolvers2::porder = 0 IO::out_dir = $parfile -IO::parfile_write = "no" IO::out_every = 1 +IO::out_fileinfo = "axis labels" +IO::parfile_write = no +CarpetX::out_metadata = no CarpetX::out_norm_vars = "" CarpetX::out_tsv_vars = " diff --git a/TestODESolvers2/test/test-dp87.par b/TestODESolvers2/test/test-dp87.par index 2eec0a1cd..1f520224d 100644 --- a/TestODESolvers2/test/test-dp87.par +++ b/TestODESolvers2/test/test-dp87.par @@ -39,9 +39,11 @@ ODESolvers::method = "DP87" TestODESolvers2::porder = 8 IO::out_dir = $parfile -IO::parfile_write = "no" IO::out_every = 1 +IO::out_fileinfo = "axis labels" +IO::parfile_write = no +CarpetX::out_metadata = no CarpetX::out_norm_vars = "" CarpetX::out_tsv_vars = " diff --git a/TestODESolvers2/test/test-euler.par b/TestODESolvers2/test/test-euler.par index 123b1e984..dfe330434 100644 --- a/TestODESolvers2/test/test-euler.par +++ b/TestODESolvers2/test/test-euler.par @@ -39,9 +39,11 @@ ODESolvers::method = "Euler" TestODESolvers2::porder = 1 IO::out_dir = $parfile -IO::parfile_write = "no" IO::out_every = 1 +IO::out_fileinfo = "axis labels" +IO::parfile_write = no +CarpetX::out_metadata = no CarpetX::out_norm_vars = "" CarpetX::out_tsv_vars = " diff --git a/TestODESolvers2/test/test-rk2.par b/TestODESolvers2/test/test-rk2.par index bc7cdbbc4..7a38345cc 100644 --- a/TestODESolvers2/test/test-rk2.par +++ b/TestODESolvers2/test/test-rk2.par @@ -39,9 +39,11 @@ ODESolvers::method = "RK2" TestODESolvers2::porder = 2 IO::out_dir = $parfile -IO::parfile_write = "no" IO::out_every = 1 +IO::out_fileinfo = "axis labels" +IO::parfile_write = no +CarpetX::out_metadata = no CarpetX::out_norm_vars = "" CarpetX::out_tsv_vars = " diff --git a/TestODESolvers2/test/test-rk3.par b/TestODESolvers2/test/test-rk3.par index 6ad46a0bb..0b110fa97 100644 --- a/TestODESolvers2/test/test-rk3.par +++ b/TestODESolvers2/test/test-rk3.par @@ -39,9 +39,11 @@ ODESolvers::method = "RK3" TestODESolvers2::porder = 3 IO::out_dir = $parfile -IO::parfile_write = "no" IO::out_every = 1 +IO::out_fileinfo = "axis labels" +IO::parfile_write = no +CarpetX::out_metadata = no CarpetX::out_norm_vars = "" CarpetX::out_tsv_vars = " diff --git a/TestODESolvers2/test/test-rk4.par b/TestODESolvers2/test/test-rk4.par index 4ada66742..747320539 100644 --- a/TestODESolvers2/test/test-rk4.par +++ b/TestODESolvers2/test/test-rk4.par @@ -39,9 +39,11 @@ ODESolvers::method = "RK4" TestODESolvers2::porder = 4 IO::out_dir = $parfile -IO::parfile_write = "no" IO::out_every = 1 +IO::out_fileinfo = "axis labels" +IO::parfile_write = no +CarpetX::out_metadata = no CarpetX::out_norm_vars = "" CarpetX::out_tsv_vars = " diff --git a/TestODESolvers2/test/test-rkf78.par b/TestODESolvers2/test/test-rkf78.par index 1de07472b..17aeec830 100644 --- a/TestODESolvers2/test/test-rkf78.par +++ b/TestODESolvers2/test/test-rkf78.par @@ -39,9 +39,11 @@ ODESolvers::method = "RKF78" TestODESolvers2::porder = 7 IO::out_dir = $parfile -IO::parfile_write = "no" IO::out_every = 1 +IO::out_fileinfo = "axis labels" +IO::parfile_write = no +CarpetX::out_metadata = no CarpetX::out_norm_vars = "" CarpetX::out_tsv_vars = " diff --git a/TestODESolvers2/test/test-ssprk3.par b/TestODESolvers2/test/test-ssprk3.par index 620bc7f4c..24860f9ca 100644 --- a/TestODESolvers2/test/test-ssprk3.par +++ b/TestODESolvers2/test/test-ssprk3.par @@ -39,9 +39,11 @@ ODESolvers::method = "SSPRK3" TestODESolvers2::porder = 3 IO::out_dir = $parfile -IO::parfile_write = "no" IO::out_every = 1 +IO::out_fileinfo = "axis labels" +IO::parfile_write = no +CarpetX::out_metadata = no CarpetX::out_norm_vars = "" CarpetX::out_tsv_vars = " From b61257a297d0b196fd539f0c149a92bded87ebfc Mon Sep 17 00:00:00 2001 From: Roland Haas Date: Thu, 29 Aug 2024 16:22:01 -0500 Subject: [PATCH 36/39] TestOutput: adapt to moving regrid error into its own thorn --- TestOutput/test/checkpoint-openpmd.par | 3 ++- TestOutput/test/output-arrays.par | 3 ++- TestOutput/test/output-every0.par | 3 ++- TestOutput/test/output-every1.par | 3 ++- TestOutput/test/output-every3.par | 3 ++- TestOutput/test/output-openpmd.par | 3 ++- TestOutput/test/output-tsv-every0.par | 3 ++- TestOutput/test/output-tsv-every1.par | 3 ++- TestOutput/test/output-tsv-every3.par | 3 ++- TestOutput/test/recover-openpmd.par | 3 ++- 10 files changed, 20 insertions(+), 10 deletions(-) diff --git a/TestOutput/test/checkpoint-openpmd.par b/TestOutput/test/checkpoint-openpmd.par index 13299182f..272292953 100644 --- a/TestOutput/test/checkpoint-openpmd.par +++ b/TestOutput/test/checkpoint-openpmd.par @@ -26,8 +26,9 @@ CarpetX::boundary_upper_y = "linear extrapolation" CarpetX::boundary_upper_z = "linear extrapolation" IO::out_dir = $parfile -IO::parfile_write = "no" IO::out_every = 1 +IO::out_fileinfo = "axis labels" +IO::parfile_write = no CarpetX::out_metadata = no diff --git a/TestOutput/test/output-arrays.par b/TestOutput/test/output-arrays.par index 774e4dd61..111cddebc 100644 --- a/TestOutput/test/output-arrays.par +++ b/TestOutput/test/output-arrays.par @@ -26,8 +26,9 @@ CarpetX::boundary_upper_y = "linear extrapolation" CarpetX::boundary_upper_z = "linear extrapolation" IO::out_dir = $parfile -IO::parfile_write = "no" IO::out_every = 1 +IO::out_fileinfo = "axis labels" +IO::parfile_write = no CarpetX::out_metadata = no diff --git a/TestOutput/test/output-every0.par b/TestOutput/test/output-every0.par index fd550de0a..57780a433 100644 --- a/TestOutput/test/output-every0.par +++ b/TestOutput/test/output-every0.par @@ -12,8 +12,9 @@ CarpetX::ncells_y = 32 CarpetX::ncells_z = 32 IO::out_dir = $parfile -IO::parfile_write = "no" IO::out_every = 0 +IO::out_fileinfo = "axis labels" +IO::parfile_write = no CarpetX::out_metadata = no CarpetX::out_tsv_vars = "CoordinatesX::cell_volume" diff --git a/TestOutput/test/output-every1.par b/TestOutput/test/output-every1.par index c8aad7f56..337bcd775 100644 --- a/TestOutput/test/output-every1.par +++ b/TestOutput/test/output-every1.par @@ -12,8 +12,9 @@ CarpetX::ncells_y = 32 CarpetX::ncells_z = 32 IO::out_dir = $parfile -IO::parfile_write = "no" IO::out_every = 1 +IO::out_fileinfo = "axis labels" +IO::parfile_write = no CarpetX::out_metadata = no CarpetX::out_tsv_vars = "CoordinatesX::cell_volume" diff --git a/TestOutput/test/output-every3.par b/TestOutput/test/output-every3.par index 1233c8162..f46785f15 100644 --- a/TestOutput/test/output-every3.par +++ b/TestOutput/test/output-every3.par @@ -12,8 +12,9 @@ CarpetX::ncells_y = 32 CarpetX::ncells_z = 32 IO::out_dir = $parfile -IO::parfile_write = "no" IO::out_every = 3 +IO::out_fileinfo = "axis labels" +IO::parfile_write = no CarpetX::out_metadata = no CarpetX::out_tsv_vars = "CoordinatesX::cell_volume" diff --git a/TestOutput/test/output-openpmd.par b/TestOutput/test/output-openpmd.par index bbcd56bbe..bfba1cfab 100644 --- a/TestOutput/test/output-openpmd.par +++ b/TestOutput/test/output-openpmd.par @@ -26,8 +26,9 @@ CarpetX::boundary_upper_y = "linear extrapolation" CarpetX::boundary_upper_z = "linear extrapolation" IO::out_dir = $parfile -IO::parfile_write = "no" IO::out_every = 1 +IO::out_fileinfo = "axis labels" +IO::parfile_write = no CarpetX::out_metadata = no diff --git a/TestOutput/test/output-tsv-every0.par b/TestOutput/test/output-tsv-every0.par index bed1d05ed..31a66d45b 100644 --- a/TestOutput/test/output-tsv-every0.par +++ b/TestOutput/test/output-tsv-every0.par @@ -12,8 +12,9 @@ CarpetX::ncells_y = 32 CarpetX::ncells_z = 32 IO::out_dir = $parfile -IO::parfile_write = "no" CarpetX::out_tsv_every = 0 +IO::out_fileinfo = "axis labels" +IO::parfile_write = no CarpetX::out_metadata = no CarpetX::out_tsv_vars = "CoordinatesX::cell_volume" diff --git a/TestOutput/test/output-tsv-every1.par b/TestOutput/test/output-tsv-every1.par index 623916a87..d4d8b8b9d 100644 --- a/TestOutput/test/output-tsv-every1.par +++ b/TestOutput/test/output-tsv-every1.par @@ -12,8 +12,9 @@ CarpetX::ncells_y = 32 CarpetX::ncells_z = 32 IO::out_dir = $parfile -IO::parfile_write = "no" CarpetX::out_tsv_every = 1 +IO::out_fileinfo = "axis labels" +IO::parfile_write = no CarpetX::out_metadata = no CarpetX::out_tsv_vars = "CoordinatesX::cell_volume" diff --git a/TestOutput/test/output-tsv-every3.par b/TestOutput/test/output-tsv-every3.par index 330317b6a..d81c0ae31 100644 --- a/TestOutput/test/output-tsv-every3.par +++ b/TestOutput/test/output-tsv-every3.par @@ -12,8 +12,9 @@ CarpetX::ncells_y = 32 CarpetX::ncells_z = 32 IO::out_dir = $parfile -IO::parfile_write = "no" CarpetX::out_tsv_every = 3 +IO::out_fileinfo = "axis labels" +IO::parfile_write = no CarpetX::out_metadata = no CarpetX::out_tsv_vars = "CoordinatesX::cell_volume" diff --git a/TestOutput/test/recover-openpmd.par b/TestOutput/test/recover-openpmd.par index 017ecc7b4..64bdb3613 100644 --- a/TestOutput/test/recover-openpmd.par +++ b/TestOutput/test/recover-openpmd.par @@ -28,8 +28,9 @@ CarpetX::boundary_upper_y = "linear extrapolation" CarpetX::boundary_upper_z = "linear extrapolation" IO::out_dir = $parfile -IO::parfile_write = "no" IO::out_every = 1 +IO::out_fileinfo = "axis labels" +IO::parfile_write = no CarpetX::out_metadata = no From 5e4768b12b96f2b4ef2a1f275a1158d8e3b2d621 Mon Sep 17 00:00:00 2001 From: Roland Haas Date: Thu, 29 Aug 2024 16:10:37 -0500 Subject: [PATCH 37/39] TestProlongate: adapt to CarpetX implementation change required due to CarpetX implemting "Driver" --- TestProlongate/interface.ccl | 2 +- TestProlongate/schedule.ccl | 4 ++-- TestProlongate/test/test_cc_co_o1.par | 3 ++- TestProlongate/test/test_cc_nc_o1.par | 3 ++- TestProlongate/test/test_cc_nc_o3.par | 3 ++- TestProlongate/test/test_ddf_o1.par | 3 ++- TestProlongate/test/test_ddf_o3.par | 3 ++- TestProlongate/test/test_ddf_o5.par | 3 ++- TestProlongate/test/test_ddf_o7.par | 3 ++- TestProlongate/test/test_eno_o1.par | 3 ++- TestProlongate/test/test_eno_o3.par | 3 ++- TestProlongate/test/test_eno_per_group_o1.par | 1 + TestProlongate/test/test_hermite_o1.par | 2 +- TestProlongate/test/test_hermite_o3.par | 2 +- TestProlongate/test/test_hermite_o5.par | 2 +- TestProlongate/test/test_natural_o1.par | 2 +- TestProlongate/test/test_natural_o3.par | 2 +- TestProlongate/test/test_natural_o5.par | 2 +- TestProlongate/test/test_natural_o7.par | 2 +- TestProlongate/test/test_poly_cons3lfb_o1.par | 2 +- TestProlongate/test/test_poly_cons3lfb_o3.par | 2 +- TestProlongate/test/test_poly_cons3lfb_o5.par | 2 +- 22 files changed, 32 insertions(+), 22 deletions(-) diff --git a/TestProlongate/interface.ccl b/TestProlongate/interface.ccl index d68ba3ed8..65917e470 100644 --- a/TestProlongate/interface.ccl +++ b/TestProlongate/interface.ccl @@ -2,7 +2,7 @@ IMPLEMENTS: TestProlongate -INHERITS: CarpetX +INHERITS: CarpetXRegrid USES INCLUDE HEADER: loop.hxx diff --git a/TestProlongate/schedule.ccl b/TestProlongate/schedule.ccl index fd796129e..f122993da 100644 --- a/TestProlongate/schedule.ccl +++ b/TestProlongate/schedule.ccl @@ -50,13 +50,13 @@ STORAGE: gf111_sum_count SCHEDULE TestProlongate_Regrid AT postinitial { LANG: C - WRITES: CarpetX::regrid_error(interior) + WRITES: CarpetXRegrid::regrid_error(interior) } "Set up test grid" SCHEDULE TestProlongate_Regrid AT poststep { LANG: C - WRITES: CarpetX::regrid_error(interior) + WRITES: CarpetXRegrid::regrid_error(interior) } "Set up test grid" diff --git a/TestProlongate/test/test_cc_co_o1.par b/TestProlongate/test/test_cc_co_o1.par index e8a4b932b..06eec6550 100644 --- a/TestProlongate/test/test_cc_co_o1.par +++ b/TestProlongate/test/test_cc_co_o1.par @@ -44,12 +44,13 @@ CarpetX::boundary_upper_z = "dirichlet" CarpetX::max_num_levels = $nlevels CarpetX::regrid_every = 1 -CarpetX::regrid_error_threshold = 0.01 +Driver::regrid_error_threshold = 0.01 CarpetX::dtfac = 0.5 IO::out_dir = $parfile IO::out_every = 1 +IO::out_fileinfo = "axis labels" IO::parfile_write = no CarpetX::out_metadata = no diff --git a/TestProlongate/test/test_cc_nc_o1.par b/TestProlongate/test/test_cc_nc_o1.par index edcf87344..e20fb2374 100644 --- a/TestProlongate/test/test_cc_nc_o1.par +++ b/TestProlongate/test/test_cc_nc_o1.par @@ -44,12 +44,13 @@ CarpetX::boundary_upper_z = "dirichlet" CarpetX::max_num_levels = $nlevels CarpetX::regrid_every = 1 -CarpetX::regrid_error_threshold = 0.01 +Driver::regrid_error_threshold = 0.01 CarpetX::dtfac = 0.5 IO::out_dir = $parfile IO::out_every = 1 +IO::out_fileinfo = "axis labels" IO::parfile_write = no CarpetX::out_metadata = no diff --git a/TestProlongate/test/test_cc_nc_o3.par b/TestProlongate/test/test_cc_nc_o3.par index f920b1b80..54e4d0b71 100644 --- a/TestProlongate/test/test_cc_nc_o3.par +++ b/TestProlongate/test/test_cc_nc_o3.par @@ -44,12 +44,13 @@ CarpetX::boundary_upper_z = "dirichlet" CarpetX::max_num_levels = $nlevels CarpetX::regrid_every = 1 -CarpetX::regrid_error_threshold = 0.01 +Driver::regrid_error_threshold = 0.01 CarpetX::dtfac = 0.5 IO::out_dir = $parfile IO::out_every = 1 +IO::out_fileinfo = "axis labels" IO::parfile_write = no CarpetX::out_metadata = no diff --git a/TestProlongate/test/test_ddf_o1.par b/TestProlongate/test/test_ddf_o1.par index 71aaf5253..faaad2b0c 100644 --- a/TestProlongate/test/test_ddf_o1.par +++ b/TestProlongate/test/test_ddf_o1.par @@ -44,12 +44,13 @@ CarpetX::boundary_upper_z = "dirichlet" CarpetX::max_num_levels = $nlevels CarpetX::regrid_every = 1 -CarpetX::regrid_error_threshold = 0.01 +Driver::regrid_error_threshold = 0.01 CarpetX::dtfac = 0.5 IO::out_dir = $parfile IO::out_every = 1 +IO::out_fileinfo = "axis labels" IO::parfile_write = no CarpetX::out_metadata = no diff --git a/TestProlongate/test/test_ddf_o3.par b/TestProlongate/test/test_ddf_o3.par index 6b43b15c9..4f7714062 100644 --- a/TestProlongate/test/test_ddf_o3.par +++ b/TestProlongate/test/test_ddf_o3.par @@ -44,12 +44,13 @@ CarpetX::boundary_upper_z = "dirichlet" CarpetX::max_num_levels = $nlevels CarpetX::regrid_every = 1 -CarpetX::regrid_error_threshold = 0.01 +Driver::regrid_error_threshold = 0.01 CarpetX::dtfac = 0.5 IO::out_dir = $parfile IO::out_every = 1 +IO::out_fileinfo = "axis labels" IO::parfile_write = no CarpetX::out_metadata = no diff --git a/TestProlongate/test/test_ddf_o5.par b/TestProlongate/test/test_ddf_o5.par index 9c692e127..0ea45b98f 100644 --- a/TestProlongate/test/test_ddf_o5.par +++ b/TestProlongate/test/test_ddf_o5.par @@ -44,12 +44,13 @@ CarpetX::boundary_upper_z = "dirichlet" CarpetX::max_num_levels = $nlevels CarpetX::regrid_every = 1 -CarpetX::regrid_error_threshold = 0.01 +Driver::regrid_error_threshold = 0.01 CarpetX::dtfac = 0.5 IO::out_dir = $parfile IO::out_every = 1 +IO::out_fileinfo = "axis labels" IO::parfile_write = no CarpetX::out_metadata = no diff --git a/TestProlongate/test/test_ddf_o7.par b/TestProlongate/test/test_ddf_o7.par index aefb3701e..7de28d33e 100644 --- a/TestProlongate/test/test_ddf_o7.par +++ b/TestProlongate/test/test_ddf_o7.par @@ -44,12 +44,13 @@ CarpetX::boundary_upper_z = "dirichlet" CarpetX::max_num_levels = $nlevels CarpetX::regrid_every = 1 -CarpetX::regrid_error_threshold = 0.01 +Driver::regrid_error_threshold = 0.01 CarpetX::dtfac = 0.5 IO::out_dir = $parfile IO::out_every = 1 +IO::out_fileinfo = "axis labels" IO::parfile_write = no CarpetX::out_metadata = no diff --git a/TestProlongate/test/test_eno_o1.par b/TestProlongate/test/test_eno_o1.par index 09e7edece..1ca1d59eb 100644 --- a/TestProlongate/test/test_eno_o1.par +++ b/TestProlongate/test/test_eno_o1.par @@ -44,12 +44,13 @@ CarpetX::boundary_upper_z = "dirichlet" CarpetX::max_num_levels = $nlevels CarpetX::regrid_every = 1 -CarpetX::regrid_error_threshold = 0.01 +Driver::regrid_error_threshold = 0.01 CarpetX::dtfac = 0.5 IO::out_dir = $parfile IO::out_every = 1 +IO::out_fileinfo = "axis labels" IO::parfile_write = no CarpetX::out_metadata = no diff --git a/TestProlongate/test/test_eno_o3.par b/TestProlongate/test/test_eno_o3.par index f61254f26..fed5d4b67 100644 --- a/TestProlongate/test/test_eno_o3.par +++ b/TestProlongate/test/test_eno_o3.par @@ -44,12 +44,13 @@ CarpetX::boundary_upper_z = "dirichlet" CarpetX::max_num_levels = $nlevels CarpetX::regrid_every = 1 -CarpetX::regrid_error_threshold = 0.01 +Driver::regrid_error_threshold = 0.01 CarpetX::dtfac = 0.5 IO::out_dir = $parfile IO::out_every = 1 +IO::out_fileinfo = "axis labels" IO::parfile_write = no CarpetX::out_metadata = no diff --git a/TestProlongate/test/test_eno_per_group_o1.par b/TestProlongate/test/test_eno_per_group_o1.par index 377636a18..2e9f85096 100644 --- a/TestProlongate/test/test_eno_per_group_o1.par +++ b/TestProlongate/test/test_eno_per_group_o1.par @@ -51,6 +51,7 @@ CarpetX::dtfac = 0.5 IO::out_dir = $parfile IO::out_every = 1 +IO::out_fileinfo = "axis labels" IO::parfile_write = no CarpetX::out_metadata = no diff --git a/TestProlongate/test/test_hermite_o1.par b/TestProlongate/test/test_hermite_o1.par index 6bf46211a..fc9edcd06 100644 --- a/TestProlongate/test/test_hermite_o1.par +++ b/TestProlongate/test/test_hermite_o1.par @@ -44,7 +44,7 @@ CarpetX::boundary_upper_z = "dirichlet" CarpetX::max_num_levels = $nlevels CarpetX::regrid_every = 1 -CarpetX::regrid_error_threshold = 0.01 +Driver::regrid_error_threshold = 0.01 CarpetX::dtfac = 0.5 diff --git a/TestProlongate/test/test_hermite_o3.par b/TestProlongate/test/test_hermite_o3.par index 96a798b8e..db7fd8192 100644 --- a/TestProlongate/test/test_hermite_o3.par +++ b/TestProlongate/test/test_hermite_o3.par @@ -44,7 +44,7 @@ CarpetX::boundary_upper_z = "dirichlet" CarpetX::max_num_levels = $nlevels CarpetX::regrid_every = 1 -CarpetX::regrid_error_threshold = 0.01 +Driver::regrid_error_threshold = 0.01 CarpetX::dtfac = 0.5 diff --git a/TestProlongate/test/test_hermite_o5.par b/TestProlongate/test/test_hermite_o5.par index 5d6c5345d..6073ab0a5 100644 --- a/TestProlongate/test/test_hermite_o5.par +++ b/TestProlongate/test/test_hermite_o5.par @@ -44,7 +44,7 @@ CarpetX::boundary_upper_z = "dirichlet" CarpetX::max_num_levels = $nlevels CarpetX::regrid_every = 1 -CarpetX::regrid_error_threshold = 0.01 +Driver::regrid_error_threshold = 0.01 CarpetX::dtfac = 0.5 diff --git a/TestProlongate/test/test_natural_o1.par b/TestProlongate/test/test_natural_o1.par index da484e1b3..f74b3e4bf 100644 --- a/TestProlongate/test/test_natural_o1.par +++ b/TestProlongate/test/test_natural_o1.par @@ -44,7 +44,7 @@ CarpetX::boundary_upper_z = "dirichlet" CarpetX::max_num_levels = $nlevels CarpetX::regrid_every = 1 -CarpetX::regrid_error_threshold = 0.01 +Driver::regrid_error_threshold = 0.01 CarpetX::dtfac = 0.5 diff --git a/TestProlongate/test/test_natural_o3.par b/TestProlongate/test/test_natural_o3.par index 2f924de16..946a7ead1 100644 --- a/TestProlongate/test/test_natural_o3.par +++ b/TestProlongate/test/test_natural_o3.par @@ -44,7 +44,7 @@ CarpetX::boundary_upper_z = "dirichlet" CarpetX::max_num_levels = $nlevels CarpetX::regrid_every = 1 -CarpetX::regrid_error_threshold = 0.01 +Driver::regrid_error_threshold = 0.01 CarpetX::dtfac = 0.5 diff --git a/TestProlongate/test/test_natural_o5.par b/TestProlongate/test/test_natural_o5.par index a15814b7d..2d99fd3c0 100644 --- a/TestProlongate/test/test_natural_o5.par +++ b/TestProlongate/test/test_natural_o5.par @@ -44,7 +44,7 @@ CarpetX::boundary_upper_z = "dirichlet" CarpetX::max_num_levels = $nlevels CarpetX::regrid_every = 1 -CarpetX::regrid_error_threshold = 0.01 +Driver::regrid_error_threshold = 0.01 CarpetX::dtfac = 0.5 diff --git a/TestProlongate/test/test_natural_o7.par b/TestProlongate/test/test_natural_o7.par index 3064d750b..d71be4b31 100644 --- a/TestProlongate/test/test_natural_o7.par +++ b/TestProlongate/test/test_natural_o7.par @@ -44,7 +44,7 @@ CarpetX::boundary_upper_z = "dirichlet" CarpetX::max_num_levels = $nlevels CarpetX::regrid_every = 1 -CarpetX::regrid_error_threshold = 0.01 +Driver::regrid_error_threshold = 0.01 CarpetX::dtfac = 0.5 diff --git a/TestProlongate/test/test_poly_cons3lfb_o1.par b/TestProlongate/test/test_poly_cons3lfb_o1.par index 878a1ca6b..9caa4e5bb 100644 --- a/TestProlongate/test/test_poly_cons3lfb_o1.par +++ b/TestProlongate/test/test_poly_cons3lfb_o1.par @@ -44,7 +44,7 @@ CarpetX::boundary_upper_z = "dirichlet" CarpetX::max_num_levels = $nlevels CarpetX::regrid_every = 1 -CarpetX::regrid_error_threshold = 0.01 +Driver::regrid_error_threshold = 0.01 CarpetX::dtfac = 0.5 diff --git a/TestProlongate/test/test_poly_cons3lfb_o3.par b/TestProlongate/test/test_poly_cons3lfb_o3.par index ca93e5c24..d3293b058 100644 --- a/TestProlongate/test/test_poly_cons3lfb_o3.par +++ b/TestProlongate/test/test_poly_cons3lfb_o3.par @@ -44,7 +44,7 @@ CarpetX::boundary_upper_z = "dirichlet" CarpetX::max_num_levels = $nlevels CarpetX::regrid_every = 1 -CarpetX::regrid_error_threshold = 0.01 +Driver::regrid_error_threshold = 0.01 CarpetX::dtfac = 0.5 diff --git a/TestProlongate/test/test_poly_cons3lfb_o5.par b/TestProlongate/test/test_poly_cons3lfb_o5.par index 6f7b465b7..a4540f577 100644 --- a/TestProlongate/test/test_poly_cons3lfb_o5.par +++ b/TestProlongate/test/test_poly_cons3lfb_o5.par @@ -44,7 +44,7 @@ CarpetX::boundary_upper_z = "dirichlet" CarpetX::max_num_levels = $nlevels CarpetX::regrid_every = 1 -CarpetX::regrid_error_threshold = 0.01 +Driver::regrid_error_threshold = 0.01 CarpetX::dtfac = 0.5 From c1a6a47be11d89165a91bedf2ff2eb26f6d6f4cd Mon Sep 17 00:00:00 2001 From: Roland Haas Date: Thu, 29 Aug 2024 16:10:37 -0500 Subject: [PATCH 38/39] TestSymmetries: adapt to CarpetX implementation change required due to CarpetX implemting "Driver" --- TestSymmetries/par/test_symmetry_xnone_ynone_znone.par | 6 +++--- .../par/test_symmetry_xperiodic_yperiodic_zperiodic.par | 7 ++++--- .../par/test_symmetry_xreflohi_yreflohi_zreflohi.par | 6 +++--- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/TestSymmetries/par/test_symmetry_xnone_ynone_znone.par b/TestSymmetries/par/test_symmetry_xnone_ynone_znone.par index 3a3063ccd..16842dd75 100644 --- a/TestSymmetries/par/test_symmetry_xnone_ynone_znone.par +++ b/TestSymmetries/par/test_symmetry_xnone_ynone_znone.par @@ -19,9 +19,9 @@ CarpetX::ncells_x = 8 CarpetX::ncells_y = 8 CarpetX::ncells_z = 8 -CarpetX::periodic_x = no -CarpetX::periodic_y = no -CarpetX::periodic_z = no +Driver::periodic_x = no +Driver::periodic_y = no +Driver::periodic_z = no CarpetX::reflection_x = no CarpetX::reflection_y = no diff --git a/TestSymmetries/par/test_symmetry_xperiodic_yperiodic_zperiodic.par b/TestSymmetries/par/test_symmetry_xperiodic_yperiodic_zperiodic.par index a7488aafe..8c8722574 100644 --- a/TestSymmetries/par/test_symmetry_xperiodic_yperiodic_zperiodic.par +++ b/TestSymmetries/par/test_symmetry_xperiodic_yperiodic_zperiodic.par @@ -19,9 +19,10 @@ CarpetX::ncells_x = 8 CarpetX::ncells_y = 8 CarpetX::ncells_z = 8 -CarpetX::periodic_x = yes -CarpetX::periodic_y = yes -CarpetX::periodic_z = yes +Driver::periodic = "yes" +Driver::periodic_x = yes +Driver::periodic_y = yes +Driver::periodic_z = yes CarpetX::reflection_x = no CarpetX::reflection_y = no diff --git a/TestSymmetries/par/test_symmetry_xreflohi_yreflohi_zreflohi.par b/TestSymmetries/par/test_symmetry_xreflohi_yreflohi_zreflohi.par index 5399f5a2f..3acedfa42 100644 --- a/TestSymmetries/par/test_symmetry_xreflohi_yreflohi_zreflohi.par +++ b/TestSymmetries/par/test_symmetry_xreflohi_yreflohi_zreflohi.par @@ -19,9 +19,9 @@ CarpetX::ncells_x = 8 CarpetX::ncells_y = 8 CarpetX::ncells_z = 8 -CarpetX::periodic_x = no -CarpetX::periodic_y = no -CarpetX::periodic_z = no +Driver::periodic_x = no +Driver::periodic_y = no +Driver::periodic_z = no CarpetX::reflection_x = yes CarpetX::reflection_y = yes From a941c336a422030a1d4d72edcc38f69446ee623e Mon Sep 17 00:00:00 2001 From: Roland Haas Date: Thu, 29 Aug 2024 16:10:37 -0500 Subject: [PATCH 39/39] WaveToyX: adapt to CarpetX implementation change required due to CarpetX implemting "Driver" --- WaveToyX/interface.ccl | 2 -- WaveToyX/par/standing.par | 7 ++++--- WaveToyX/schedule.ccl | 4 ++-- WaveToyX/test/presync.par | 9 +++++---- ...x-regrid_error.tsv => carpetxregrid-regrid_error.tsv} | 0 ...x-regrid_error.tsv => carpetxregrid-regrid_error.tsv} | 0 ...x-regrid_error.tsv => carpetxregrid-regrid_error.tsv} | 0 WaveToyX/test/standing.par | 7 ++++--- ...x-regrid_error.tsv => carpetxregrid-regrid_error.tsv} | 0 9 files changed, 15 insertions(+), 14 deletions(-) rename WaveToyX/test/presync/norms/{carpetx-regrid_error.tsv => carpetxregrid-regrid_error.tsv} (100%) rename WaveToyX/test/radiative/norms/{carpetx-regrid_error.tsv => carpetxregrid-regrid_error.tsv} (100%) rename WaveToyX/test/reflecting/norms/{carpetx-regrid_error.tsv => carpetxregrid-regrid_error.tsv} (100%) rename WaveToyX/test/standing/norms/{carpetx-regrid_error.tsv => carpetxregrid-regrid_error.tsv} (100%) diff --git a/WaveToyX/interface.ccl b/WaveToyX/interface.ccl index ddfbbdb47..fd399a45c 100644 --- a/WaveToyX/interface.ccl +++ b/WaveToyX/interface.ccl @@ -2,8 +2,6 @@ IMPLEMENTS: WaveToyX -INHERITS: CarpetX - USES INCLUDE HEADER: loop_device.hxx USES INCLUDE HEADER: vect.hxx diff --git a/WaveToyX/par/standing.par b/WaveToyX/par/standing.par index 74b9c31d6..3a3b5dc7d 100644 --- a/WaveToyX/par/standing.par +++ b/WaveToyX/par/standing.par @@ -13,9 +13,10 @@ Cactus::presync_mode = "mixed-error" CarpetX::poison_undefined_values = no -CarpetX::periodic_x = yes -CarpetX::periodic_y = yes -CarpetX::periodic_z = yes +Driver::periodic = "yes" +Driver::periodic_x = yes +Driver::periodic_y = yes +Driver::periodic_z = yes Cactus::terminate = "time" Cactus::cctk_final_time = 1.0 diff --git a/WaveToyX/schedule.ccl b/WaveToyX/schedule.ccl index d91981e83..ff0123c46 100644 --- a/WaveToyX/schedule.ccl +++ b/WaveToyX/schedule.ccl @@ -12,14 +12,14 @@ SCHEDULE WaveToyX_Initial AT initial # { # LANG: C # READS: state(everywhere) -# WRITES: CarpetX::regrid_error(interior) +# WRITES: CarpetXRegrid::regrid_error(interior) # } "Estimate error for regridding" # # SCHEDULE WaveToyX_EstimateError AT poststep # { # LANG: C # READS: state(everywhere) -# WRITES: CarpetX::regrid_error(interior) +# WRITES: CarpetXRegrid::regrid_error(interior) # } "Estimate error for regridding" SCHEDULE WaveToyX_RHS IN ODESolvers_RHS diff --git a/WaveToyX/test/presync.par b/WaveToyX/test/presync.par index 49d9acb59..ec5172d9a 100644 --- a/WaveToyX/test/presync.par +++ b/WaveToyX/test/presync.par @@ -14,9 +14,10 @@ CarpetX::ncells_x = 8 CarpetX::ncells_y = 8 CarpetX::ncells_z = 8 -CarpetX::periodic_x = yes -CarpetX::periodic_y = yes -CarpetX::periodic_z = yes +Driver::periodic = "yes" +Driver::periodic_x = yes +Driver::periodic_y = yes +Driver::periodic_z = yes Cactus::cctk_itlast = 10 @@ -26,6 +27,7 @@ ODESolvers::method = "RK3" IO::out_dir = $parfile IO::out_every = 10 +IO::out_fileinfo = "axis labels" IO::parfile_write = no CarpetX::out_metadata = no @@ -35,7 +37,6 @@ CarpetX::out_norm_omit_sumloc_for_backward_compatibility = yes CarpetX::out_tsv_vars = " WaveToyX::state - WaveToyX::rhs WaveToyX::energy WaveToyX::error " diff --git a/WaveToyX/test/presync/norms/carpetx-regrid_error.tsv b/WaveToyX/test/presync/norms/carpetxregrid-regrid_error.tsv similarity index 100% rename from WaveToyX/test/presync/norms/carpetx-regrid_error.tsv rename to WaveToyX/test/presync/norms/carpetxregrid-regrid_error.tsv diff --git a/WaveToyX/test/radiative/norms/carpetx-regrid_error.tsv b/WaveToyX/test/radiative/norms/carpetxregrid-regrid_error.tsv similarity index 100% rename from WaveToyX/test/radiative/norms/carpetx-regrid_error.tsv rename to WaveToyX/test/radiative/norms/carpetxregrid-regrid_error.tsv diff --git a/WaveToyX/test/reflecting/norms/carpetx-regrid_error.tsv b/WaveToyX/test/reflecting/norms/carpetxregrid-regrid_error.tsv similarity index 100% rename from WaveToyX/test/reflecting/norms/carpetx-regrid_error.tsv rename to WaveToyX/test/reflecting/norms/carpetxregrid-regrid_error.tsv diff --git a/WaveToyX/test/standing.par b/WaveToyX/test/standing.par index 2193a1bc1..631510c0e 100644 --- a/WaveToyX/test/standing.par +++ b/WaveToyX/test/standing.par @@ -14,9 +14,10 @@ CarpetX::ncells_x = 8 CarpetX::ncells_y = 8 CarpetX::ncells_z = 8 -CarpetX::periodic_x = yes -CarpetX::periodic_y = yes -CarpetX::periodic_z = yes +Driver::periodic = "yes" +Driver::periodic_x = yes +Driver::periodic_y = yes +Driver::periodic_z = yes Cactus::cctk_itlast = 10 diff --git a/WaveToyX/test/standing/norms/carpetx-regrid_error.tsv b/WaveToyX/test/standing/norms/carpetxregrid-regrid_error.tsv similarity index 100% rename from WaveToyX/test/standing/norms/carpetx-regrid_error.tsv rename to WaveToyX/test/standing/norms/carpetxregrid-regrid_error.tsv