aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Carpet/Carpet/src/CarpetStartup.cc12
-rw-r--r--Carpet/Carpet/src/SetupGH.cc24
-rw-r--r--Carpet/CarpetLib/src/bboxset.cc3
-rw-r--r--Carpet/CarpetLib/src/bboxset.hh5
-rw-r--r--Carpet/CarpetReduce/src/mask_carpet.cc10
-rw-r--r--CarpetDev/CarpetIOF5/src/output.cc11
-rw-r--r--CarpetExtra/Nirvana/dist/Nirvana.tar.gzbin19154 -> 19155 bytes
7 files changed, 47 insertions, 18 deletions
diff --git a/Carpet/Carpet/src/CarpetStartup.cc b/Carpet/Carpet/src/CarpetStartup.cc
index d8d1cd439..7314cda43 100644
--- a/Carpet/Carpet/src/CarpetStartup.cc
+++ b/Carpet/Carpet/src/CarpetStartup.cc
@@ -1,5 +1,7 @@
#include <cassert>
#include <cstdlib>
+#include <iomanip>
+#include <limits>
#include <cctk.h>
#include <cctk_Parameters.h>
@@ -18,12 +20,16 @@ namespace Carpet {
{
DECLARE_CCTK_PARAMETERS;
+ // Increase the default output precision, so that all relevant
+ // digits are displayed. (The C++ output streams are mostly used
+ // for debug messages.)
+ int const precision = numeric_limits<CCTK_REAL>::digits10;
+ cout << setprecision(precision);
+ cerr << setprecision(precision);
+
comm_universe = MPI_COMM_WORLD;
- // cerr << "QQQ: CarpetMultiModelStartup[1]" << endl;
SplitUniverse (comm_universe, model, comm_world, true);
- // cerr << "QQQ: CarpetMultiModelStartup[2]" << endl;
dist::pseudoinit (comm_world);
- // cerr << "QQQ: CarpetMultiModelStartup[3]" << endl;
return 0;
}
diff --git a/Carpet/Carpet/src/SetupGH.cc b/Carpet/Carpet/src/SetupGH.cc
index 0fbc657f0..0b62c4d3d 100644
--- a/Carpet/Carpet/src/SetupGH.cc
+++ b/Carpet/Carpet/src/SetupGH.cc
@@ -165,6 +165,8 @@ namespace Carpet {
static void
ensure_CartGrid3D_type ();
static void
+ ensure_CartGrid3D_domain (); // UNUSED
+ static void
ensure_CartGrid3D_avoid_origin ();
static void
ensure_ReflectionSymmetry_avoid_origin (centering refcentering);
@@ -2250,6 +2252,28 @@ namespace Carpet {
+ // UNUSED:
+ // Ensure that CartGrid3D doesn't apply symmetries
+ void
+ ensure_CartGrid3D_domain ()
+ {
+ if (CCTK_IsThornActive ("CartGrid3D")) {
+ int type;
+ void const * ptr;
+
+ ptr = CCTK_ParameterGet ("domain", "CartGrid3D", & type);
+ assert (ptr != 0);
+ assert (type == PARAMETER_KEYWORD);
+ char const * const domain
+ = * static_cast<char const * const *> (ptr);
+ if (not CCTK_EQUALS (domain, "full")) {
+ CCTK_WARN (0, "When Carpet::domain_from_coordbase = no, and when Carpet::max_refinement_levels > 1, then thorn CartGrid3D cannot provide symmetry boundaries");
+ }
+ }
+ }
+
+
+
// Ensure that CartGrid3D::avoid_origin = no
void
ensure_CartGrid3D_avoid_origin ()
diff --git a/Carpet/CarpetLib/src/bboxset.cc b/Carpet/CarpetLib/src/bboxset.cc
index a830c0b73..71bf62014 100644
--- a/Carpet/CarpetLib/src/bboxset.cc
+++ b/Carpet/CarpetLib/src/bboxset.cc
@@ -506,6 +506,8 @@ bboxset<T,D> bboxset<T,D>::expanded_for (const box& b) const {
return res;
}
+#warning "TODO: this is incorrect"
+#if 1
template<typename T, int D>
bboxset<T,D> bboxset<T,D>::contracted_for (const box& b) const {
bboxset res;
@@ -514,6 +516,7 @@ bboxset<T,D> bboxset<T,D>::contracted_for (const box& b) const {
}
return res;
}
+#endif
diff --git a/Carpet/CarpetLib/src/bboxset.hh b/Carpet/CarpetLib/src/bboxset.hh
index 23b2dc18c..5363d1673 100644
--- a/Carpet/CarpetLib/src/bboxset.hh
+++ b/Carpet/CarpetLib/src/bboxset.hh
@@ -38,7 +38,7 @@ ostream& operator<< (ostream& os, const bboxset<T,D>& s);
-// Bounding box class
+// Bounding box set class
template<typename T, int D>
class bboxset {
@@ -166,8 +166,11 @@ public:
("compatible" means having the same stride.) */
bboxset expanded_for (const box& b) const;
+#warning "TODO: this is incorrect"
+#if 1
/** Find the largest b-compatible box inside this bbox. */
bboxset contracted_for (const box& b) const;
+#endif
// Equality
bool operator== (const bboxset& s) const;
diff --git a/Carpet/CarpetReduce/src/mask_carpet.cc b/Carpet/CarpetReduce/src/mask_carpet.cc
index 6db04bc9a..f176057e0 100644
--- a/Carpet/CarpetReduce/src/mask_carpet.cc
+++ b/Carpet/CarpetReduce/src/mask_carpet.cc
@@ -182,7 +182,6 @@ namespace CarpetMask {
} END_LOOP_OVER_BSET;
vector<int> imask (prod(ivect::ref(cctk_lsh)));
- vector<int> mask (prod(ivect::ref(cctk_lsh)));
assert (dim == 3);
#pragma omp parallel
@@ -193,7 +192,6 @@ namespace CarpetMask {
{
int const ind = CCTK_GFINDEX3D (cctkGH, i, j, k);
imask[ind] = 0;
- mask[ind] = 0;
} LC_ENDLOOP3(CarpetMaskSetup_restriction_boundary_init);
for (int d=0; d<dim; ++d) {
@@ -222,10 +220,6 @@ namespace CarpetMask {
{
int const ind = CCTK_GFINDEX3D (cctkGH, i, j, k);
imask[ind] |= bmask;
- if (mask[ind] == 0) {
- mask[ind] = 1;
- }
- mask[ind] *= 2;
} LC_ENDLOOP3(CarpetMaskSetup_restriction_boundary_partial);
} END_LOOP_OVER_BSET;
@@ -240,9 +234,7 @@ namespace CarpetMask {
cctk_lsh[0],cctk_lsh[1],cctk_lsh[2])
{
int const ind = CCTK_GFINDEX3D (cctkGH, i, j, k);
- if (mask[ind] > 0) {
- iweight[ind] &= imask[ind];
- }
+ iweight[ind] &= imask[ind];
} LC_ENDLOOP3(CarpetMaskSetup_restriction_boundary_apply);
} END_LOCAL_COMPONENT_LOOP;
diff --git a/CarpetDev/CarpetIOF5/src/output.cc b/CarpetDev/CarpetIOF5/src/output.cc
index 423d55222..123c40524 100644
--- a/CarpetDev/CarpetIOF5/src/output.cc
+++ b/CarpetDev/CarpetIOF5/src/output.cc
@@ -110,8 +110,6 @@ namespace CarpetIOF5 {
DECLARE_CCTK_ARGUMENTS;
indent_t indent;
- herr_t herr;
-
assert (is_singlemap_mode() and reflevel==0);
cout << indent << "map=" << Carpet::map << "\n";
@@ -168,11 +166,14 @@ namespace CarpetIOF5 {
if (not is_multipatch) {
// Define level geometry
+ F5_vec3_double_t const vlower = v2d(lower);
+ F5_vec3_double_t const vupper = v2d(upper);
+ F5_vec3_double_t const vdelta = v2d(delta);
F5Fwrite_linear (path, FIBER_HDF5_POSITIONS_STRING,
dim, &v2h(gsh)[0],
F5T_COORD3_DOUBLE,
- &v2d(lower), &v2d(delta));
- F5Fset_range (path, &v2d(lower), &v2d(upper));
+ &vlower, &vdelta);
+ F5Fset_range (path, &vlower, &vupper);
}
BEGIN_LOCAL_COMPONENT_LOOP (cctkGH, CCTK_GF) {
@@ -398,7 +399,7 @@ namespace CarpetIOF5 {
case tt_vector: {
// Vector field
CCTK_REAL const* rdata[cctk_dim];
- vector<CCTK_REAL> idata[cctk_dim];
+ vector<vector<CCTK_REAL> > idata(cctk_dim);
void const* data[cctk_dim];
for (int d=0; d<cctk_dim; ++d) {
rdata[d] =
diff --git a/CarpetExtra/Nirvana/dist/Nirvana.tar.gz b/CarpetExtra/Nirvana/dist/Nirvana.tar.gz
index 0fba057cf..4bd9d483e 100644
--- a/CarpetExtra/Nirvana/dist/Nirvana.tar.gz
+++ b/CarpetExtra/Nirvana/dist/Nirvana.tar.gz
Binary files differ