sxs-collaboration / spectre

SpECTRE is a code for multi-scale, multi-physics problems in astrophysics and gravitational physics.
https://spectre-code.org
Other
154 stars 187 forks source link

Removing all AMR criteria triggers an ASSERT #6003

Open wthrowe opened 2 months ago

wthrowe commented 2 months ago

Using the example input file with this patch:

diff --git a/tests/InputFiles/ScalarWave/PlaneWave1D.yaml b/tests/InputFiles/ScalarWave/PlaneWave1D.yaml
index 57797e7400..d39ec47e81 100644
--- a/tests/InputFiles/ScalarWave/PlaneWave1D.yaml
+++ b/tests/InputFiles/ScalarWave/PlaneWave1D.yaml
@@ -27,10 +27,10 @@ InitialData: &InitialData

 Amr:
   Criteria:
-    - TruncationError:
-        VariablesToMonitor: [Psi]
-        AbsoluteTarget: 1.e-6
-        RelativeTarget: 1.0
+    # - TruncationError:
+    #     VariablesToMonitor: [Psi]
+    #     AbsoluteTarget: 1.e-6
+    #     RelativeTarget: 1.0
   Policies:
     Isotropy: Anisotropic
     Limits:

triggers

The following exceptions were reported during the phase: EvaluateAmrCriteria
Component: DgElementArray
Array Index: [B0,(L1I0)]
Phase: Evolve
Algorithm Step: 0
Message: 
############ ASSERT FAILED ############
Stack trace:

  0. [error handling]
  1. std::array<unsigned long, 1ul> amr::desired_refinement_levels<1ul>(ElementId<1ul> const&, std::array<amr::Flag, 1ul> const&) - Resolve source file and line with: addr2line -fCpe /home/wthrowe/spectre-work/lib/libAmr.so 0x763e2
  2. bool amr::update_amr_decision<1ul>(gsl::not_null<std::array<amr::Flag, 1ul>*>, Element<1ul> const&, ElementId<1ul> const&, std::array<amr::Flag, 1ul> const&) - Resolve source file and line with: addr2line -fCpe /home/wthrowe/spectre-work/lib/libAmr.so 0xbe732
  3. _ZN3amr7Actions26EvaluateRefinementCriteria5applyI14DgElementArrayI17EvolutionMetavarsILm1EEN7brigand4listIJN8Parallel12PhaseActionsILNS8_5PhaseE9ENS7_IJN14Initialization7Actions15InitializeItemsIJNSB_12TimeSteppingIS5_11TimeStepperEEN9evolution2dg14Initialization6DomainILm1ELb0EEENS_14Initializatio [...] 1EEES1D_S1F_S1H_S1K_EEES5_EEvRN2db7DataBoxIT0_EERNS8_11GlobalCacheIT1_EERKS3F_IXsrS82_10volume_dimEE - Resolve source file and line with: addr2line -fCpe bin/EvolveScalarWave1D 0x25421d4
  4. _ZN8Parallel17DistributedObjectI14DgElementArrayI17EvolutionMetavarsILm1EEN7brigand4listIJNS_12PhaseActionsILNS_5PhaseE9ENS5_IJN14Initialization7Actions15InitializeItemsIJNS8_12TimeSteppingIS3_11TimeStepperEEN9evolution2dg14Initialization6DomainILm1ELb0EEEN3amr14Initialization10InitializeILm1EEENS8_ [...] rol7Actions18ExecutePhaseChangeEEEEEEEEEES38_E13simple_actionINS2W_26EvaluateRefinementCriteriaEEEvv - Resolve source file and line with: addr2line -fCpe bin/EvolveScalarWave1D 0x2541d65
  5. _ZN22CkIndex_AlgorithmArrayI14DgElementArrayI17EvolutionMetavarsILm1EEN7brigand4listIJN8Parallel12PhaseActionsILNS5_5PhaseE9ENS4_IJN14Initialization7Actions15InitializeItemsIJNS8_12TimeSteppingIS2_11TimeStepperEEN9evolution2dg14Initialization6DomainILm1ELb0EEEN3amr14Initialization10InitializeILm1EEE [...] ngeEEEEEEEEEE9ElementIdILm1EEE24_call_simple_action_voidINS2W_26EvaluateRefinementCriteriaEEEvPvS3F_ - Resolve source file and line with: addr2line -fCpe bin/EvolveScalarWave1D 0x2541b55
  6. CkLocRec::invokeEntry(CkMigratable*, void*, int, bool) - Resolve source file and line with: addr2line -fCpe /usr/lib64/charm/lib_so/libck.so 0x214199
  7. CkArrayBroadcaster::deliver(CkArrayMessage*, ArrayElement*, bool) - Resolve source file and line with: addr2line -fCpe /usr/lib64/charm/lib_so/libck.so 0x1d6553
  8. CkArray::recvBroadcast(CkMessage*) - Resolve source file and line with: addr2line -fCpe /usr/lib64/charm/lib_so/libck.so 0x1e51b6
  9. CkDeliverMessageFree - Resolve source file and line with: addr2line -fCpe /usr/lib64/charm/lib_so/libck.so 0x1c8135
 10. /usr/lib64/charm/lib_so/libck.so(+0x1ccb18) [0x7f8de2fccb18] - Resolve source file and line with: addr2line -fCpe /usr/lib64/charm/lib_so/libck.so 0x1ccb18
 11. _processHandler(void*, CkCoreState*) - Resolve source file and line with: addr2line -fCpe /usr/lib64/charm/lib_so/libck.so 0x1d08e7
 12. CsdScheduleForever - Resolve source file and line with: addr2line -fCpe /usr/lib64/charm/lib_so/libconverse.so 0x4bada
 13. CsdScheduler - Resolve source file and line with: addr2line -fCpe /usr/lib64/charm/lib_so/libconverse.so 0x4bd65
 14. /usr/lib64/charm/lib_so/libconverse.so(+0xa5c6a) [0x7f8de736fc6a] - Resolve source file and line with: addr2line -fCpe /usr/lib64/charm/lib_so/libconverse.so 0xa5c6a
 15. ConverseInit - Resolve source file and line with: addr2line -fCpe /usr/lib64/charm/lib_so/libconverse.so 0xa6fc4
 16. charm_main - Resolve source file and line with: addr2line -fCpe /usr/lib64/charm/lib_so/libck.so 0x268f20
 17. /lib64/libc.so.6(+0x242e0) [0x7f8de68612e0] - Resolve source file and line with: addr2line -fCpe /lib64/libc.so.6 0x242e0
 18. __libc_start_main - Resolve source file and line with: addr2line -fCpe /lib64/libc.so.6 0x24399
 19. _start - Resolve source file and line with: addr2line -fCpe bin/EvolveScalarWave1D 0x1f1f385

Wall time: 00:00:00
Node: 0 Proc: 0
std::array<size_t, VolumeDim> amr::desired_refinement_levels(const ElementId<VolumeDim> &, const std::array<Flag, VolumeDim> &) [VolumeDim = 1UL] in /home/wthrowe/spectre/src/Domain/Amr/Helpers.cpp:31

'Flag::Undefined != gsl::at(flags, d)' violated!
Undefined Flag in dimension 0
############ ASSERT FAILED ############

This should either do something sensible (probably nothing), or be enforced during option parsing.