aboutsummaryrefslogtreecommitdiff
path: root/Carpet
diff options
context:
space:
mode:
authorErik Schnetter <schnetter@cct.lsu.edu>2008-02-19 17:28:00 +0000
committerErik Schnetter <schnetter@cct.lsu.edu>2008-02-19 17:28:00 +0000
commit491775ecd8515e370b77fb270d5c342736127fe1 (patch)
treea2d1d078be9b582a1c74d5c4998ba03bfcf46a80 /Carpet
parentcdb09d3b0b1073c7b68e0b42af8a40362cf14610 (diff)
Carpet: Use MultiPatch_ConvertFromPhysicalBoundary, if available
Use MultiPatch_ConvertFromPhysicalBoundary instead of CoordBase's ConvertFromPhysicalBoundary, if it is available. darcs-hash:20080219172824-dae7b-a63ad0a3897917f703c5c65a0a05beb4bf690b24.gz
Diffstat (limited to 'Carpet')
-rw-r--r--Carpet/Carpet/interface.ccl13
-rw-r--r--Carpet/Carpet/src/SetupGH.cc32
2 files changed, 37 insertions, 8 deletions
diff --git a/Carpet/Carpet/interface.ccl b/Carpet/Carpet/interface.ccl
index f4310744d..06c159757 100644
--- a/Carpet/Carpet/interface.ccl
+++ b/Carpet/Carpet/interface.ccl
@@ -138,6 +138,19 @@ CCTK_INT FUNCTION MultiPatch_GetDomainSpecification \
CCTK_REAL OUT ARRAY spacing)
USES FUNCTION MultiPatch_GetDomainSpecification
+# Conversion between boundary types
+CCTK_INT FUNCTION MultiPatch_ConvertFromPhysicalBoundary \
+ (CCTK_INT IN map, \
+ CCTK_INT IN size, \
+ CCTK_REAL IN ARRAY physical_min, \
+ CCTK_REAL IN ARRAY physical_max, \
+ CCTK_REAL OUT ARRAY interior_min, \
+ CCTK_REAL OUT ARRAY interior_max, \
+ CCTK_REAL OUT ARRAY exterior_min, \
+ CCTK_REAL OUT ARRAY exterior_max, \
+ CCTK_REAL IN ARRAY spacing)
+USES FUNCTION MultiPatch_ConvertFromPhysicalBoundary
+
# Access coordinate information (on the coarse level)
diff --git a/Carpet/Carpet/src/SetupGH.cc b/Carpet/Carpet/src/SetupGH.cc
index 2a554e511..7fba6ae5e 100644
--- a/Carpet/Carpet/src/SetupGH.cc
+++ b/Carpet/Carpet/src/SetupGH.cc
@@ -1286,14 +1286,30 @@ namespace Carpet {
spacing = base_spacing * baseconvfact;
rvect interior_min, interior_max;
- int const ierr =
- ConvertFromPhysicalBoundary
- (dim,
- &physical_min[0], &physical_max[0],
- &interior_min[0], &interior_max[0],
- &exterior_min[0], &exterior_max[0],
- &spacing[0]);
- assert (not ierr);
+
+ if (domain_from_multipatch and
+ CCTK_IsFunctionAliased ("MultiPatch_ConvertFromPhysicalBoundary"))
+ {
+ assert (not domain_from_coordbase);
+ int const ierr =
+ MultiPatch_ConvertFromPhysicalBoundary
+ (m,
+ dim,
+ &physical_min[0], &physical_max[0],
+ &interior_min[0], &interior_max[0],
+ &exterior_min[0], &exterior_max[0],
+ &spacing[0]);
+ assert (not ierr);
+ } else {
+ int const ierr =
+ ConvertFromPhysicalBoundary
+ (dim,
+ &physical_min[0], &physical_max[0],
+ &interior_min[0], &interior_max[0],
+ &exterior_min[0], &exterior_max[0],
+ &spacing[0]);
+ assert (not ierr);
+ }
ostringstream buf;
buf << "Adapted domain specification for map " << m << ":" << endl