TY6WZ2R2THWDIQCTDZIFSX3S2SNSC67GUFE7S4TFXLRQNP7SNUBAC 4B36MBHKEUSFI2TUH67YRHFSCMZNI7RXMY6VZN74OLNYAQT55NEAC NUOLOGCKMF5UOBGBYEOX4O7NQ5AEVVLCH6KRBQRJQXIRDNJ2C2ZQC FEMASUBNU32NSG4DNXZX54CGCA57PVRGYO46L3A6F2EJ4BCSJ3SAC 722HZ7UFINNE3YKSYKP2NHZ5XEG5QQLQHSKC7PREJZR3EX6RDYUAC HVV73EHEMEFVCPS75XZAFUGWOY7LBYOJOIDNHJUK4MB5QTS3CTJQC IVHURSHY4636OGIF3PNDO5CWOVRLJ75M4LP65J6I2E6KAM4QKF4AC GKKJ75HX2ERLVBZVE2CUB6T3J2SUT7R3UKEKTEYNOG43ZKX6X5MQC # The overall size of the domainCCTK_INT FUNCTION GetDomainSpecification(CCTK_INT IN size,CCTK_REAL OUT ARRAY physical_min,CCTK_REAL OUT 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 OUT ARRAY spacing)PROVIDES FUNCTION GetDomainSpecification WITH CarpetX_GetDomainSpecification LANGUAGE C
extern "C" CCTK_INT CarpetX_GetDomainSpecification(CCTK_INT size, CCTK_REAL *restrict const physical_min,CCTK_REAL *restrict const physical_max,CCTK_REAL *restrict const interior_min,CCTK_REAL *restrict const interior_max,CCTK_REAL *restrict const exterior_min,CCTK_REAL *restrict const exterior_max, CCTK_REAL *restrict const spacing);
CCTK_INTCarpetX_GetDomainSpecification(const CCTK_INT size,CCTK_REAL *restrict const physical_min,CCTK_REAL *restrict const physical_max,CCTK_REAL *restrict const interior_min,CCTK_REAL *restrict const interior_max,CCTK_REAL *restrict const exterior_min,CCTK_REAL *restrict const exterior_max,CCTK_REAL *restrict const spacing) {assert(size == dim);assert(!empty(ghext->leveldata));const auto &fab = *ghext->leveldata.at(0).fab;const auto &geom = ghext->amrcore->Geom(0);for (int d = 0; d < dim; ++d) {// the domain itself (physical faces)physical_min[d] = geom.ProbDomain().lo(d);physical_max[d] = geom.ProbDomain().hi(d);// domain without boundary points (last interior cell centre)interior_min[d] = geom.ProbDomain().lo(d) + 0.5 * geom.CellSize(d);interior_max[d] = geom.ProbDomain().hi(d) - 0.5 * geom.CellSize(d);// domain including boundary/ghost points (last boundary/ghost cell centre)exterior_min[d] =geom.ProbDomain().lo(d) - (fab.nGrow(d) - 0.5) * geom.CellSize(d);exterior_max[d] =geom.ProbDomain().hi(d) + (fab.nGrow(d) - 0.5) * geom.CellSize(d);spacing[d] = geom.CellSize(d);}return 0;}