Full Code of sxs-collaboration/spectre for AI

develop 2a5c5b65198a cached
7092 files
43.4 MB
11.8M tokens
38182 symbols
1 requests
Copy disabled (too large) Download .txt
Showing preview only (47,092K chars total). Download the full file to get everything.
Repository: sxs-collaboration/spectre
Branch: develop
Commit: 2a5c5b65198a
Files: 7092
Total size: 43.4 MB

Directory structure:
gitextract_tzqpsthm/

├── .clang-format
├── .clang-tidy
├── .claude/
│   ├── hooks/
│   │   └── PostFormat.sh
│   ├── rules/
│   │   ├── CMake.md
│   │   └── Cxx.md
│   ├── settings.json
│   └── skills/
│       ├── spectre-fix-ci/
│       │   └── SKILL.md
│       ├── spectre-fix-issue/
│       │   └── SKILL.md
│       ├── spectre-fix-pr/
│       │   └── SKILL.md
│       └── spectre-review/
│           └── SKILL.md
├── .codecov.yaml
├── .devcontainer/
│   ├── cmake-kits.json
│   └── devcontainer.json
├── .dockerignore
├── .github/
│   ├── ISSUE_TEMPLATE.md
│   ├── PULL_REQUEST_TEMPLATE.md
│   ├── actions/
│   │   └── parse-compiler/
│   │       └── action.yaml
│   ├── problem_matchers/
│   │   └── ClangTidy.json
│   ├── scripts/
│   │   ├── Release.py
│   │   └── requirements-release.txt
│   └── workflows/
│       ├── BuildDockerContainer.yaml
│       ├── ClobberCache.yaml
│       ├── DemoContainer.yaml
│       ├── DeployStaticExecutables.yaml
│       ├── NewContributors.yaml
│       ├── PostRelease.yaml
│       ├── Spack.yaml
│       └── Tests.yaml
├── .gitignore
├── .skills/
│   ├── scripts/
│   │   ├── FetchCiLog.py
│   │   ├── FetchIssue.py
│   │   └── FetchPrComments.py
│   ├── spectre-fix-ci/
│   │   └── SKILL.md
│   ├── spectre-fix-issue/
│   │   ├── RANDOM_FAILURE.md
│   │   └── SKILL.md
│   ├── spectre-fix-pr/
│   │   └── SKILL.md
│   └── spectre-review/
│       ├── SKILL.md
│       └── references/
│           ├── coverage-steps.md
│           └── report-template.md
├── CITATION.cff
├── CMakeLists.txt
├── LICENSE.txt
├── Metadata.yaml
├── README.md
├── citation.bib
├── cmake/
│   ├── AddCxxFlag.cmake
│   ├── AddInputFileTests.cmake
│   ├── AddSpectreExecutable.cmake
│   ├── AddStandaloneTests.cmake
│   ├── BootstrapPyDeps.cmake
│   ├── CheckBrokenArray0.cmake
│   ├── CheckBrokenArray0.cpp
│   ├── CheckCompilerVersion.cmake
│   ├── CodeCoverage.cmake
│   ├── CodeCoverageDetection.cmake
│   ├── EnableWarnings.cmake
│   ├── FindBlaze.cmake
│   ├── FindBreathe.cmake
│   ├── FindCharm.cmake
│   ├── FindClangFormat.cmake
│   ├── FindFFTW.cmake
│   ├── FindFUKA.cmake
│   ├── FindGoogleBenchmark.cmake
│   ├── FindJEMALLOC.cmake
│   ├── FindLIBCXX.cmake
│   ├── FindLIBXSMM.cmake
│   ├── FindNumPy.cmake
│   ├── FindPAPI.cmake
│   ├── FindParaView.cmake
│   ├── FindPythonModule.cmake
│   ├── FindScotch.cmake
│   ├── FindSleef.cmake
│   ├── FindSpEC.cmake
│   ├── FindTCMALLOC.cmake
│   ├── Findccache.cmake
│   ├── PrintUsefulCMakeInfo.cmake
│   ├── ProhibitInSourceBuild.cmake
│   ├── RunInputFileTest.sh
│   ├── SetBuildType.cmake
│   ├── SetCxxStandard.cmake
│   ├── SetOutputDirectory.cmake
│   ├── SetupAllocator.cmake
│   ├── SetupAutodiff.cmake
│   ├── SetupBlas.cmake
│   ├── SetupBlaze.cmake
│   ├── SetupBoost.cmake
│   ├── SetupCCache.cmake
│   ├── SetupCatch.cmake
│   ├── SetupCharm.cmake
│   ├── SetupCharmModuleFunctions.cmake
│   ├── SetupClangFormat.cmake
│   ├── SetupClangTidy.cmake
│   ├── SetupCxxFlags.cmake
│   ├── SetupDoxygen.cmake
│   ├── SetupFormaline.cmake
│   ├── SetupFortran.cmake
│   ├── SetupFuka.cmake
│   ├── SetupGitHooks.cmake
│   ├── SetupGoldOrLldLinker.cmake
│   ├── SetupGoogleBenchmark.cmake
│   ├── SetupGsl.cmake
│   ├── SetupHdf5.cmake
│   ├── SetupInformer.cmake
│   ├── SetupJemalloc.cmake
│   ├── SetupKokkos.cmake
│   ├── SetupLIBCXX.cmake
│   ├── SetupLIBCXXCharm.cmake
│   ├── SetupLIBXSMM.cmake
│   ├── SetupLapack.cmake
│   ├── SetupLicenseInfo.cmake
│   ├── SetupLinkTimeOptimization.cmake
│   ├── SetupListTargets.cmake
│   ├── SetupNinjaColors.cmake
│   ├── SetupOpenMP.cmake
│   ├── SetupPapi.cmake
│   ├── SetupParaView.cmake
│   ├── SetupPch.cmake
│   ├── SetupPic.cmake
│   ├── SetupProfiling.cmake
│   ├── SetupPybind11.cmake
│   ├── SetupPypp.cmake
│   ├── SetupSanitizers.cmake
│   ├── SetupSpec.cmake
│   ├── SetupSpectreInlining.cmake
│   ├── SetupSphinx.cmake
│   ├── SetupStl.cmake
│   ├── SetupTcmalloc.cmake
│   ├── SetupXsimd.cmake
│   ├── SetupYamlCpp.cmake
│   ├── SpectreAddCatchTests.cmake
│   ├── SpectreAddInterfaceLibraryHeaders.cmake
│   ├── SpectreAddLibraries.cmake
│   ├── SpectreAddTestLibs.cmake
│   ├── SpectreCheckDependencies.cmake
│   ├── SpectreCheckTargetDependencies.cmake
│   ├── SpectreGetGitHash.cmake
│   ├── SpectreInitializeVariables.cmake
│   ├── SpectreLoadMetadata.cmake
│   ├── SpectreParseTests.py
│   ├── SpectrePythonExecutable.sh
│   ├── SpectreSetSiteName.cmake
│   ├── SpectreSetupFlagsTarget.cmake
│   ├── SpectreSetupPythonPackage.cmake
│   ├── SpectreSetupTesting.cmake
│   ├── SpectreTargetHeaders.cmake
│   ├── SpectreTargetSources.cmake
│   ├── StripSymbols.cmake
│   └── UpdateAddExecutables.cmake
├── containers/
│   └── Dockerfile.buildenv
├── docs/
│   ├── .nojekyll
│   ├── CODE_OF_CONDUCT.md
│   ├── CONTRIBUTING.md
│   ├── Changelog.md
│   ├── Contributing/
│   │   ├── Contributing.md
│   │   └── ReportingGuide.md
│   ├── Dependencies.bib
│   ├── DevGuide/
│   │   ├── Amr.md
│   │   ├── AutomaticVersioning.md
│   │   ├── Brigand.md
│   │   ├── BuildOptimization.md
│   │   ├── CodeReviewGuide.md
│   │   ├── CompilerLinkerErrors.md
│   │   ├── Connectivity.md
│   │   ├── CreatingExecutables.md
│   │   ├── Databox.md
│   │   ├── DebuggingTips.md
│   │   ├── DevGuide.md
│   │   ├── DomainConcepts.md
│   │   ├── GitHubActions.md
│   │   ├── GpuSupport.md
│   │   ├── ImplementingVectors.md
│   │   ├── ImportingData.md
│   │   ├── LoadBalancingNotes.md
│   │   ├── Observers.md
│   │   ├── OptionParsing.md
│   │   ├── ParallelExecutable/
│   │   │   ├── Concepts.md
│   │   │   └── MinimalExecutable.md
│   │   ├── Parallelization.md
│   │   ├── PerformanceGuidelines.md
│   │   ├── Profiling.md
│   │   ├── Protocols.md
│   │   ├── PythonBindings.md
│   │   ├── QuickStartDockerVSCode.md
│   │   ├── RedistributingGridpoints.md
│   │   ├── StaticAnalysis.md
│   │   ├── TensorExpressions.md
│   │   ├── Tmp.md
│   │   ├── Variables.md
│   │   ├── WritingDox.md
│   │   └── WritingTests.md
│   ├── Doxyfile.in
│   ├── Examples/
│   │   ├── BbhInitialData/
│   │   │   ├── .gitignore
│   │   │   └── BbhInitialData.ipynb
│   │   ├── Examples.md
│   │   └── plots.mplstyle
│   ├── Gallery.md
│   ├── GroupDefs.hpp
│   ├── Images/
│   │   └── Tutorials/
│   │       └── make_multicube_figures.py
│   ├── Installation/
│   │   ├── BuildSystem.md
│   │   ├── Installation.md
│   │   ├── InstallationOnAppleSilicon.md
│   │   ├── InstallationOnClusters.md
│   │   └── VersioningAndReleases.md
│   ├── Main.md
│   ├── PublicationPolicy.md
│   ├── References.bib
│   ├── Tutorials/
│   │   ├── BeginnersTutorial.md
│   │   ├── CCE.md
│   │   ├── CheckpointRestart.md
│   │   ├── Cli.md
│   │   ├── DomainCreation.md
│   │   ├── EventsAndTriggers.md
│   │   ├── Imex.md
│   │   ├── Orientation.md
│   │   ├── ParallelExecutable/
│   │   │   └── Tutorials.md
│   │   ├── Python.md
│   │   ├── Tutorials.md
│   │   ├── Visualization.md
│   │   └── VisualizationWithPython.ipynb
│   ├── _templates/
│   │   └── autosummary/
│   │       └── module.rst
│   ├── cli.rst
│   ├── conf.py
│   ├── config/
│   │   ├── DoxygenLayout_1_8_10.xml
│   │   ├── DoxygenLayout_1_9_8.xml
│   │   ├── MathJax.js
│   │   ├── cppreference-doxygen-web.tag.xml
│   │   ├── custom.css
│   │   ├── doxygen-awesome-fragment-copy-button.js
│   │   ├── doxygen-awesome-interactive-toc.js
│   │   ├── doxygen-awesome-paragraph-link.js
│   │   ├── doxygen-awesome-sidebar-only.css
│   │   ├── doxygen-awesome.css
│   │   ├── footer.html
│   │   ├── header.html
│   │   ├── icons/
│   │   │   └── octicons.css
│   │   ├── js/
│   │   │   ├── doxygen-navtree-hacks.js
│   │   │   └── spectre.js
│   │   ├── markdown-math-filter.pl
│   │   ├── octicons.css
│   │   └── postprocess_docs.py
│   └── index.rst
├── external/
│   ├── CMakeLists.txt
│   ├── EffectiveSource/
│   │   ├── CMakeLists.txt
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── effsource.h
│   │   ├── effsource.hpp
│   │   └── kerr-circular.c
│   ├── GravitationalEffectiveSource/
│   │   ├── CMakeLists.txt
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── effsource_gr.h
│   │   ├── effsource_gr.hpp
│   │   └── kerr-circular.c
│   ├── Licenses/
│   │   ├── BlazeCopyright.txt
│   │   ├── BlazeLicense.txt
│   │   ├── BoostCopyright.txt
│   │   ├── BoostLicense.txt
│   │   ├── BrigandCopyright.txt
│   │   ├── BrigandLicense.txt
│   │   ├── Catch2Copyright.txt
│   │   ├── Catch2License.txt
│   │   ├── CharmCopyright.txt
│   │   ├── CharmLicense.txt
│   │   ├── GslCopyright.txt
│   │   ├── GslLicense.txt
│   │   ├── Hdf5Copyright.txt
│   │   ├── Hdf5License.txt
│   │   ├── JemallocCopyright.txt
│   │   ├── JemallocLicense.txt
│   │   ├── LibbacktraceCopyright.txt
│   │   ├── LibbacktraceLicense.txt
│   │   ├── LibsharpCopyright.txt
│   │   ├── LibsharpLicense.txt
│   │   ├── LibxsmmCopyright.txt
│   │   ├── LibxsmmLicense.txt
│   │   ├── OpenBlasCopyright.txt
│   │   ├── OpenBlasLicense.txt
│   │   ├── Pybind11Copyright.txt
│   │   ├── Pybind11License.txt
│   │   ├── SpectreGpl3License.txt
│   │   ├── XsimdCopyright.txt
│   │   ├── XsimdLicense.txt
│   │   ├── YamlCppCopyright.txt
│   │   └── YamlCppLicense.txt
│   ├── SPHEREPACK/
│   │   ├── CMakeLists.txt
│   │   ├── LICENSE.txt
│   │   ├── README.txt
│   │   ├── alf.f
│   │   ├── divgs.f
│   │   ├── gaqd.f
│   │   ├── gradgs.f
│   │   ├── hrfft.f
│   │   ├── shags.f
│   │   ├── shsgs.f
│   │   ├── slapgs.f
│   │   ├── sphcom.f
│   │   ├── vhags.f
│   │   ├── vhsgs.f
│   │   ├── vrtgs.f
│   │   └── vtsgs.f
│   ├── brigand/
│   │   ├── CMakeLists.txt
│   │   ├── LICENSE
│   │   ├── README.md
│   │   └── include/
│   │       └── brigand/
│   │           └── brigand.hpp
│   ├── libsharp/
│   │   ├── .gitignore
│   │   ├── COPYING
│   │   ├── Makefile
│   │   ├── README.md
│   │   ├── c_utils/
│   │   │   ├── c_utils.c
│   │   │   ├── c_utils.h
│   │   │   ├── memusage.c
│   │   │   ├── memusage.h
│   │   │   ├── planck.make
│   │   │   ├── walltime_c.c
│   │   │   └── walltime_c.h
│   │   ├── config/
│   │   │   ├── config.auto.in
│   │   │   └── rules.common
│   │   ├── configure.ac
│   │   ├── docsrc/
│   │   │   ├── c_utils.dox
│   │   │   ├── footer.html
│   │   │   ├── index_code.html
│   │   │   ├── libfftpack.dox
│   │   │   ├── libsharp.dox
│   │   │   └── planck.make
│   │   ├── fortran/
│   │   │   ├── sharp.f90
│   │   │   └── test_sharp.f90
│   │   ├── libfftpack/
│   │   │   ├── README
│   │   │   ├── bluestein.c
│   │   │   ├── bluestein.h
│   │   │   ├── fftpack.c
│   │   │   ├── fftpack.h
│   │   │   ├── fftpack_inc.c
│   │   │   ├── libfftpack.dox
│   │   │   ├── ls_fft.c
│   │   │   ├── ls_fft.h
│   │   │   └── planck.make
│   │   ├── libsharp/
│   │   │   ├── libsharp.dox
│   │   │   ├── planck.make
│   │   │   ├── sharp.c
│   │   │   ├── sharp.h
│   │   │   ├── sharp_almhelpers.c
│   │   │   ├── sharp_almhelpers.h
│   │   │   ├── sharp_announce.c
│   │   │   ├── sharp_announce.h
│   │   │   ├── sharp_complex_hacks.h
│   │   │   ├── sharp_core.c
│   │   │   ├── sharp_core.h
│   │   │   ├── sharp_core_inc.c
│   │   │   ├── sharp_core_inc2.c
│   │   │   ├── sharp_core_inchelper.c
│   │   │   ├── sharp_cxx.h
│   │   │   ├── sharp_geomhelpers.c
│   │   │   ├── sharp_geomhelpers.h
│   │   │   ├── sharp_internal.h
│   │   │   ├── sharp_legendre.c
│   │   │   ├── sharp_legendre.c.in
│   │   │   ├── sharp_legendre.h
│   │   │   ├── sharp_legendre_roots.c
│   │   │   ├── sharp_legendre_roots.h
│   │   │   ├── sharp_legendre_table.c
│   │   │   ├── sharp_legendre_table.h
│   │   │   ├── sharp_lowlevel.h
│   │   │   ├── sharp_mpi.c
│   │   │   ├── sharp_mpi.h
│   │   │   ├── sharp_testsuite.c
│   │   │   ├── sharp_vecsupport.h
│   │   │   ├── sharp_vecutil.h
│   │   │   ├── sharp_ylmgen_c.c
│   │   │   └── sharp_ylmgen_c.h
│   │   ├── python/
│   │   │   ├── fake_pyrex/
│   │   │   │   ├── Pyrex/
│   │   │   │   │   ├── Distutils/
│   │   │   │   │   │   ├── __init__.py
│   │   │   │   │   │   └── build_ext.py
│   │   │   │   │   └── __init__.py
│   │   │   │   └── README
│   │   │   ├── libsharp/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── libsharp.pxd
│   │   │   │   ├── libsharp.pyx
│   │   │   │   ├── libsharp_mpi.pyx
│   │   │   │   └── tests/
│   │   │   │       ├── __init__.py
│   │   │   │       ├── test_legendre.py
│   │   │   │       ├── test_legendre_table.py
│   │   │   │       ├── test_sht.py
│   │   │   │       └── test_smoothing_noise_pol_mpi.py
│   │   │   └── setup.py
│   │   └── runjinja.py
│   └── slatec/
│       ├── CMakeLists.txt
│       ├── LICENSE.txt
│       ├── README.txt
│       └── drc3jj.f
├── pyproject.toml
├── setup.cfg
├── src/
│   ├── CMakeLists.txt
│   ├── ControlSystem/
│   │   ├── Actions/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── GridCenters.cpp
│   │   │   ├── GridCenters.hpp
│   │   │   ├── Initialization.hpp
│   │   │   ├── InitializeMeasurements.hpp
│   │   │   ├── LimitTimeStep.hpp
│   │   │   └── PrintCurrentMeasurement.hpp
│   │   ├── Averager.cpp
│   │   ├── Averager.hpp
│   │   ├── CMakeLists.txt
│   │   ├── CalculateMeasurementTimescales.cpp
│   │   ├── CalculateMeasurementTimescales.hpp
│   │   ├── CleanFunctionsOfTime.cpp
│   │   ├── CleanFunctionsOfTime.hpp
│   │   ├── CombinedName.hpp
│   │   ├── Component.hpp
│   │   ├── ControlErrors/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Expansion.hpp
│   │   │   ├── GridCenters.cpp
│   │   │   ├── GridCenters.hpp
│   │   │   ├── Rotation.hpp
│   │   │   ├── Shape.hpp
│   │   │   ├── Size/
│   │   │   │   ├── AhSpeed.cpp
│   │   │   │   ├── AhSpeed.hpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── ComovingCharSpeedDerivative.cpp
│   │   │   │   ├── ComovingCharSpeedDerivative.hpp
│   │   │   │   ├── DeltaR.cpp
│   │   │   │   ├── DeltaR.hpp
│   │   │   │   ├── DeltaRDriftInward.cpp
│   │   │   │   ├── DeltaRDriftInward.hpp
│   │   │   │   ├── DeltaRDriftOutward.cpp
│   │   │   │   ├── DeltaRDriftOutward.hpp
│   │   │   │   ├── DeltaRNoDrift.cpp
│   │   │   │   ├── DeltaRNoDrift.hpp
│   │   │   │   ├── Error.cpp
│   │   │   │   ├── Error.hpp
│   │   │   │   ├── Factory.hpp
│   │   │   │   ├── Info.cpp
│   │   │   │   ├── Info.hpp
│   │   │   │   ├── Initial.cpp
│   │   │   │   ├── Initial.hpp
│   │   │   │   ├── RegisterDerivedWithCharm.cpp
│   │   │   │   ├── RegisterDerivedWithCharm.hpp
│   │   │   │   ├── State.hpp
│   │   │   │   ├── StateHistory.cpp
│   │   │   │   ├── StateHistory.hpp
│   │   │   │   └── Update.hpp
│   │   │   ├── Size.cpp
│   │   │   ├── Size.hpp
│   │   │   ├── Skew.cpp
│   │   │   ├── Skew.hpp
│   │   │   └── Translation.hpp
│   │   ├── Controller.cpp
│   │   ├── Controller.hpp
│   │   ├── ExpirationTimes.cpp
│   │   ├── ExpirationTimes.hpp
│   │   ├── FutureMeasurements.cpp
│   │   ├── FutureMeasurements.hpp
│   │   ├── IsSize.hpp
│   │   ├── Measurements/
│   │   │   ├── BNSCenterOfMass.cpp
│   │   │   ├── BNSCenterOfMass.hpp
│   │   │   ├── BothHorizons.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── CharSpeed.hpp
│   │   │   ├── Measurements.hpp
│   │   │   ├── NonFactoryCreatable.hpp
│   │   │   └── SingleHorizon.hpp
│   │   ├── Metafunctions.hpp
│   │   ├── NamespaceDocs.hpp
│   │   ├── Protocols/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── ControlError.hpp
│   │   │   ├── ControlSystem.hpp
│   │   │   ├── Measurement.hpp
│   │   │   ├── NamespaceDocs.hpp
│   │   │   └── Submeasurement.hpp
│   │   ├── RunCallbacks.hpp
│   │   ├── Systems/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Expansion.hpp
│   │   │   ├── GridCenters.hpp
│   │   │   ├── Rotation.hpp
│   │   │   ├── Shape.hpp
│   │   │   ├── Size.hpp
│   │   │   ├── Skew.hpp
│   │   │   └── Translation.hpp
│   │   ├── Tags/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── FunctionsOfTimeInitialize.cpp
│   │   │   ├── FunctionsOfTimeInitialize.hpp
│   │   │   ├── FutureMeasurements.hpp
│   │   │   ├── IsActiveMap.hpp
│   │   │   ├── MeasurementTimescales.hpp
│   │   │   ├── OptionTags.hpp
│   │   │   ├── QueueTags.hpp
│   │   │   ├── SystemTags.cpp
│   │   │   └── SystemTags.hpp
│   │   ├── TimescaleTuner.cpp
│   │   ├── TimescaleTuner.hpp
│   │   ├── Trigger.hpp
│   │   ├── UpdateControlSystem.hpp
│   │   ├── UpdateFunctionOfTime.cpp
│   │   ├── UpdateFunctionOfTime.hpp
│   │   ├── UpdateTimescaleTuner.hpp
│   │   └── WriteData.hpp
│   ├── DataStructures/
│   │   ├── ApplyMatrices.cpp
│   │   ├── ApplyMatrices.hpp
│   │   ├── Blaze/
│   │   │   ├── Blaze.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── IntegerPow.hpp
│   │   │   └── StepFunction.hpp
│   │   ├── BoostMultiArray.hpp
│   │   ├── CMakeLists.txt
│   │   ├── CachedTempBuffer.hpp
│   │   ├── CircularDeque.hpp
│   │   ├── ComplexDataVector.hpp
│   │   ├── ComplexDiagonalModalOperator.hpp
│   │   ├── ComplexModalVector.hpp
│   │   ├── CompressedMatrix.cpp
│   │   ├── CompressedMatrix.hpp
│   │   ├── CompressedVector.cpp
│   │   ├── CompressedVector.hpp
│   │   ├── DataBox/
│   │   │   ├── Access.hpp
│   │   │   ├── AsAccess.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── DataBox.hpp
│   │   │   ├── DataBoxTag.hpp
│   │   │   ├── DataOnSlice.hpp
│   │   │   ├── IsApplyCallable.hpp
│   │   │   ├── Item.hpp
│   │   │   ├── MetavariablesTag.hpp
│   │   │   ├── ObservationBox.hpp
│   │   │   ├── PrefixHelpers.hpp
│   │   │   ├── Prefixes.hpp
│   │   │   ├── Protocols/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   └── Mutator.hpp
│   │   │   ├── SubitemTag.hpp
│   │   │   ├── Subitems.hpp
│   │   │   ├── Tag.hpp
│   │   │   ├── TagName.hpp
│   │   │   ├── TagTraits.hpp
│   │   │   └── ValidateSelection.hpp
│   │   ├── DataVector.hpp
│   │   ├── DiagonalModalOperator.hpp
│   │   ├── DynamicBuffer.cpp
│   │   ├── DynamicBuffer.hpp
│   │   ├── DynamicMatrix.cpp
│   │   ├── DynamicMatrix.hpp
│   │   ├── DynamicVector.cpp
│   │   ├── DynamicVector.hpp
│   │   ├── ExtractPoint.hpp
│   │   ├── FixedHashMap.hpp
│   │   ├── FloatingPointType.cpp
│   │   ├── FloatingPointType.hpp
│   │   ├── IdPair.hpp
│   │   ├── Index.cpp
│   │   ├── Index.hpp
│   │   ├── IndexIterator.cpp
│   │   ├── IndexIterator.hpp
│   │   ├── LeviCivitaIterator.cpp
│   │   ├── LeviCivitaIterator.hpp
│   │   ├── LinkedMessageId.hpp
│   │   ├── LinkedMessageQueue.hpp
│   │   ├── MathWrapper.hpp
│   │   ├── Matrix.hpp
│   │   ├── ModalVector.hpp
│   │   ├── Python/
│   │   │   ├── Bindings.cpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── DataVector.cpp
│   │   │   ├── DataVector.hpp
│   │   │   ├── Matrix.cpp
│   │   │   ├── Matrix.hpp
│   │   │   ├── ModalVector.cpp
│   │   │   ├── ModalVector.hpp
│   │   │   └── __init__.py
│   │   ├── SimpleSparseMatrix.cpp
│   │   ├── SimpleSparseMatrix.hpp
│   │   ├── SliceIterator.cpp
│   │   ├── SliceIterator.hpp
│   │   ├── SliceTensorToVariables.hpp
│   │   ├── SliceVariables.hpp
│   │   ├── SparseMatrixFiller.cpp
│   │   ├── SparseMatrixFiller.hpp
│   │   ├── SpinWeighted.hpp
│   │   ├── StaticDeque.hpp
│   │   ├── StaticMatrix.hpp
│   │   ├── StaticVector.hpp
│   │   ├── StripeIterator.cpp
│   │   ├── StripeIterator.hpp
│   │   ├── TaggedContainers.hpp
│   │   ├── TaggedTuple.hpp
│   │   ├── TaggedVariant.hpp
│   │   ├── Tags/
│   │   │   ├── CMakeLists.txt
│   │   │   └── TempTensor.hpp
│   │   ├── Tags.hpp
│   │   ├── TempBuffer.hpp
│   │   ├── Tensor/
│   │   │   ├── AtIndex.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── CombineSpacetimeView.hpp
│   │   │   ├── ContractFirstNIndices.hpp
│   │   │   ├── EagerMath/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── CartesianToSpherical.cpp
│   │   │   │   ├── CartesianToSpherical.hpp
│   │   │   │   ├── CrossProduct.hpp
│   │   │   │   ├── Determinant.hpp
│   │   │   │   ├── DeterminantAndInverse.hpp
│   │   │   │   ├── DotProduct.hpp
│   │   │   │   ├── FrameTransform.cpp
│   │   │   │   ├── FrameTransform.hpp
│   │   │   │   ├── GramSchmidtOrthonormalize.cpp
│   │   │   │   ├── GramSchmidtOrthonormalize.hpp
│   │   │   │   ├── Magnitude.hpp
│   │   │   │   ├── Norms.hpp
│   │   │   │   ├── OrthonormalOneform.cpp
│   │   │   │   ├── OrthonormalOneform.hpp
│   │   │   │   ├── OuterProduct.hpp
│   │   │   │   ├── Python/
│   │   │   │   │   ├── Bindings.cpp
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── Determinant.cpp
│   │   │   │   │   ├── Determinant.hpp
│   │   │   │   │   ├── Magnitude.cpp
│   │   │   │   │   ├── Magnitude.hpp
│   │   │   │   │   └── __init__.py
│   │   │   │   ├── RaiseOrLowerIndex.cpp
│   │   │   │   ├── RaiseOrLowerIndex.hpp
│   │   │   │   ├── Trace.cpp
│   │   │   │   └── Trace.hpp
│   │   │   ├── Expressions/
│   │   │   │   ├── AddSubtract.hpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Contract.hpp
│   │   │   │   ├── DataTypeSupport.hpp
│   │   │   │   ├── Divide.hpp
│   │   │   │   ├── Evaluate.hpp
│   │   │   │   ├── IndexPropertyCheck.hpp
│   │   │   │   ├── LhsTensorSymmAndIndices.hpp
│   │   │   │   ├── Negate.hpp
│   │   │   │   ├── NumberAsExpression.hpp
│   │   │   │   ├── Product.hpp
│   │   │   │   ├── SpatialSpacetimeIndex.hpp
│   │   │   │   ├── SquareRoot.hpp
│   │   │   │   ├── TensorAsExpression.hpp
│   │   │   │   ├── TensorExpression.hpp
│   │   │   │   ├── TensorIndex.hpp
│   │   │   │   ├── TensorIndexTransformation.hpp
│   │   │   │   └── TimeIndex.hpp
│   │   │   ├── Identity.hpp
│   │   │   ├── IndexType.hpp
│   │   │   ├── Metafunctions.hpp
│   │   │   ├── Python/
│   │   │   │   ├── Bindings.cpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Frame.py
│   │   │   │   ├── InstantiateScalar.cpp
│   │   │   │   ├── InstantiateTensor1d.cpp
│   │   │   │   ├── InstantiateTensor2d.cpp
│   │   │   │   ├── InstantiateTensor3d.cpp
│   │   │   │   ├── Tensor.hpp
│   │   │   │   ├── Tensor.tpp
│   │   │   │   ├── __init__.py
│   │   │   │   └── tnsr.py
│   │   │   ├── Slice.hpp
│   │   │   ├── Structure.hpp
│   │   │   ├── Symmetry.hpp
│   │   │   ├── Tensor.hpp
│   │   │   └── TypeAliases.hpp
│   │   ├── Transpose.cpp
│   │   ├── Transpose.hpp
│   │   ├── Variables/
│   │   │   └── FrameTransform.hpp
│   │   ├── Variables.hpp
│   │   ├── VariablesTag.hpp
│   │   └── VectorImpl.hpp
│   ├── Domain/
│   │   ├── Amr/
│   │   │   ├── Amr.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Flag.cpp
│   │   │   ├── Flag.hpp
│   │   │   ├── Helpers.cpp
│   │   │   ├── Helpers.hpp
│   │   │   ├── Info.cpp
│   │   │   ├── Info.hpp
│   │   │   ├── NeighborsOfChild.cpp
│   │   │   ├── NeighborsOfChild.hpp
│   │   │   ├── NeighborsOfParent.cpp
│   │   │   ├── NeighborsOfParent.hpp
│   │   │   ├── NewNeighborIds.cpp
│   │   │   ├── NewNeighborIds.hpp
│   │   │   ├── Tags/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Flags.hpp
│   │   │   │   ├── NeighborFlags.hpp
│   │   │   │   └── Tags.hpp
│   │   │   ├── UpdateAmrDecision.cpp
│   │   │   └── UpdateAmrDecision.hpp
│   │   ├── AreaElement.cpp
│   │   ├── AreaElement.hpp
│   │   ├── Block.cpp
│   │   ├── Block.hpp
│   │   ├── BlockLogicalCoordinates.cpp
│   │   ├── BlockLogicalCoordinates.hpp
│   │   ├── BoundaryConditions/
│   │   │   ├── BoundaryCondition.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── GetBoundaryConditionsBase.hpp
│   │   │   ├── None.cpp
│   │   │   ├── None.hpp
│   │   │   ├── Periodic.cpp
│   │   │   └── Periodic.hpp
│   │   ├── CMakeLists.txt
│   │   ├── CoordinateMaps/
│   │   │   ├── Affine.cpp
│   │   │   ├── Affine.hpp
│   │   │   ├── AutodiffInstantiationTypes.hpp
│   │   │   ├── BulgedCube.cpp
│   │   │   ├── BulgedCube.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Composition.cpp
│   │   │   ├── Composition.hpp
│   │   │   ├── CoordinateMap.hpp
│   │   │   ├── CoordinateMap.tpp
│   │   │   ├── CoordinateMapHelpers.hpp
│   │   │   ├── CylindricalEndcap.cpp
│   │   │   ├── CylindricalEndcap.hpp
│   │   │   ├── CylindricalEndcapHelpers.cpp
│   │   │   ├── CylindricalEndcapHelpers.hpp
│   │   │   ├── CylindricalFlatEndcap.cpp
│   │   │   ├── CylindricalFlatEndcap.hpp
│   │   │   ├── CylindricalFlatSide.cpp
│   │   │   ├── CylindricalFlatSide.hpp
│   │   │   ├── CylindricalSide.cpp
│   │   │   ├── CylindricalSide.hpp
│   │   │   ├── DiscreteRotation.cpp
│   │   │   ├── DiscreteRotation.hpp
│   │   │   ├── Distribution.cpp
│   │   │   ├── Distribution.hpp
│   │   │   ├── EquatorialCompression.cpp
│   │   │   ├── EquatorialCompression.hpp
│   │   │   ├── Equiangular.cpp
│   │   │   ├── Equiangular.hpp
│   │   │   ├── FlatOffsetSphericalWedge.cpp
│   │   │   ├── FlatOffsetSphericalWedge.hpp
│   │   │   ├── FlatOffsetWedge.cpp
│   │   │   ├── FlatOffsetWedge.hpp
│   │   │   ├── FocallyLiftedEndcap.cpp
│   │   │   ├── FocallyLiftedEndcap.hpp
│   │   │   ├── FocallyLiftedFlatEndcap.cpp
│   │   │   ├── FocallyLiftedFlatEndcap.hpp
│   │   │   ├── FocallyLiftedFlatSide.cpp
│   │   │   ├── FocallyLiftedFlatSide.hpp
│   │   │   ├── FocallyLiftedMap.cpp
│   │   │   ├── FocallyLiftedMap.hpp
│   │   │   ├── FocallyLiftedMapHelpers.cpp
│   │   │   ├── FocallyLiftedMapHelpers.hpp
│   │   │   ├── FocallyLiftedSide.cpp
│   │   │   ├── FocallyLiftedSide.hpp
│   │   │   ├── Frustum.cpp
│   │   │   ├── Frustum.hpp
│   │   │   ├── Identity.cpp
│   │   │   ├── Identity.hpp
│   │   │   ├── Interval.cpp
│   │   │   ├── Interval.hpp
│   │   │   ├── KerrHorizonConforming.cpp
│   │   │   ├── KerrHorizonConforming.hpp
│   │   │   ├── MapInstantiationMacros.hpp
│   │   │   ├── PolarToCartesian.cpp
│   │   │   ├── PolarToCartesian.hpp
│   │   │   ├── ProductMaps.hpp
│   │   │   ├── ProductMaps.tpp
│   │   │   ├── Python/
│   │   │   │   ├── Bindings.cpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Composition.cpp
│   │   │   │   ├── Composition.hpp
│   │   │   │   ├── CoordinateMap.cpp
│   │   │   │   ├── CoordinateMap.hpp
│   │   │   │   └── __init__.py
│   │   │   ├── Rotation.cpp
│   │   │   ├── Rotation.hpp
│   │   │   ├── SpecialMobius.cpp
│   │   │   ├── SpecialMobius.hpp
│   │   │   ├── SphericalToCartesianPfaffian.cpp
│   │   │   ├── SphericalToCartesianPfaffian.hpp
│   │   │   ├── Tags.hpp
│   │   │   ├── TimeDependent/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── CubicScale.cpp
│   │   │   │   ├── CubicScale.hpp
│   │   │   │   ├── ProductMaps.hpp
│   │   │   │   ├── ProductMaps.tpp
│   │   │   │   ├── RotScaleTrans.cpp
│   │   │   │   ├── RotScaleTrans.hpp
│   │   │   │   ├── Rotation.cpp
│   │   │   │   ├── Rotation.hpp
│   │   │   │   ├── RotationMatrixHelpers.cpp
│   │   │   │   ├── RotationMatrixHelpers.hpp
│   │   │   │   ├── Shape.cpp
│   │   │   │   ├── Shape.hpp
│   │   │   │   ├── ShapeMapTransitionFunctions/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── RegisterDerivedWithCharm.cpp
│   │   │   │   │   ├── RegisterDerivedWithCharm.hpp
│   │   │   │   │   ├── ShapeMapTransitionFunction.hpp
│   │   │   │   │   ├── SphereTransition.cpp
│   │   │   │   │   ├── SphereTransition.hpp
│   │   │   │   │   ├── Wedge.cpp
│   │   │   │   │   └── Wedge.hpp
│   │   │   │   ├── Skew.cpp
│   │   │   │   ├── Skew.hpp
│   │   │   │   ├── SphericalCompression.cpp
│   │   │   │   ├── SphericalCompression.hpp
│   │   │   │   ├── Translation.cpp
│   │   │   │   └── Translation.hpp
│   │   │   ├── TimeDependentHelpers.hpp
│   │   │   ├── UniformCylindricalEndcap.cpp
│   │   │   ├── UniformCylindricalEndcap.hpp
│   │   │   ├── UniformCylindricalFlatEndcap.cpp
│   │   │   ├── UniformCylindricalFlatEndcap.hpp
│   │   │   ├── UniformCylindricalSide.cpp
│   │   │   ├── UniformCylindricalSide.hpp
│   │   │   ├── Wedge.cpp
│   │   │   └── Wedge.hpp
│   │   ├── CoordsToDifferentFrame.cpp
│   │   ├── CoordsToDifferentFrame.hpp
│   │   ├── CreateInitialElement.cpp
│   │   ├── CreateInitialElement.hpp
│   │   ├── Creators/
│   │   │   ├── AlignedLattice.cpp
│   │   │   ├── AlignedLattice.hpp
│   │   │   ├── AngularCylinder.cpp
│   │   │   ├── AngularCylinder.hpp
│   │   │   ├── AngularDisk.cpp
│   │   │   ├── AngularDisk.hpp
│   │   │   ├── BinaryCompactObject.cpp
│   │   │   ├── BinaryCompactObject.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── CartoonCylinder.cpp
│   │   │   ├── CartoonCylinder.hpp
│   │   │   ├── CartoonSphere1D.cpp
│   │   │   ├── CartoonSphere1D.hpp
│   │   │   ├── CartoonSphere2D.cpp
│   │   │   ├── CartoonSphere2D.hpp
│   │   │   ├── Cylinder.cpp
│   │   │   ├── Cylinder.hpp
│   │   │   ├── CylindricalBinaryCompactObject.cpp
│   │   │   ├── CylindricalBinaryCompactObject.hpp
│   │   │   ├── Disk.cpp
│   │   │   ├── Disk.hpp
│   │   │   ├── DomainCreator.hpp
│   │   │   ├── ExpandOverBlocks.cpp
│   │   │   ├── ExpandOverBlocks.hpp
│   │   │   ├── ExpandOverBlocks.tpp
│   │   │   ├── Factory.hpp
│   │   │   ├── Factory1D.hpp
│   │   │   ├── Factory2D.hpp
│   │   │   ├── Factory3D.hpp
│   │   │   ├── FrustalCloak.cpp
│   │   │   ├── FrustalCloak.hpp
│   │   │   ├── NonconformingSphericalShells.cpp
│   │   │   ├── NonconformingSphericalShells.hpp
│   │   │   ├── OptionTags.hpp
│   │   │   ├── Python/
│   │   │   │   ├── BinaryCompactObject.cpp
│   │   │   │   ├── BinaryCompactObject.hpp
│   │   │   │   ├── Bindings.cpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Cylinder.cpp
│   │   │   │   ├── Cylinder.hpp
│   │   │   │   ├── DomainCreator.cpp
│   │   │   │   ├── DomainCreator.hpp
│   │   │   │   ├── Rectilinear.cpp
│   │   │   │   ├── Rectilinear.hpp
│   │   │   │   ├── Sphere.cpp
│   │   │   │   ├── Sphere.hpp
│   │   │   │   └── __init__.py
│   │   │   ├── Rectilinear.cpp
│   │   │   ├── Rectilinear.hpp
│   │   │   ├── RegisterDerivedWithCharm.cpp
│   │   │   ├── RegisterDerivedWithCharm.hpp
│   │   │   ├── RotatedBricks.cpp
│   │   │   ├── RotatedBricks.hpp
│   │   │   ├── RotatedIntervals.cpp
│   │   │   ├── RotatedIntervals.hpp
│   │   │   ├── RotatedRectangles.cpp
│   │   │   ├── RotatedRectangles.hpp
│   │   │   ├── ShellDistribution.cpp
│   │   │   ├── ShellDistribution.hpp
│   │   │   ├── Sphere.cpp
│   │   │   ├── Sphere.hpp
│   │   │   ├── SphericalShells.cpp
│   │   │   ├── SphericalShells.hpp
│   │   │   ├── Tags/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Domain.cpp
│   │   │   │   ├── Domain.hpp
│   │   │   │   ├── ExternalBoundaryConditions.hpp
│   │   │   │   ├── FunctionsOfTime.hpp
│   │   │   │   ├── InitialExtents.cpp
│   │   │   │   ├── InitialExtents.hpp
│   │   │   │   ├── InitialRefinementLevels.cpp
│   │   │   │   ├── InitialRefinementLevels.hpp
│   │   │   │   ├── ObjectCenter.cpp
│   │   │   │   └── ObjectCenter.hpp
│   │   │   ├── TimeDependence/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── CubicScale.cpp
│   │   │   │   ├── CubicScale.hpp
│   │   │   │   ├── GenerateCoordinateMap.hpp
│   │   │   │   ├── None.cpp
│   │   │   │   ├── None.hpp
│   │   │   │   ├── RegisterDerivedWithCharm.cpp
│   │   │   │   ├── RegisterDerivedWithCharm.hpp
│   │   │   │   ├── RotationAboutZAxis.cpp
│   │   │   │   ├── RotationAboutZAxis.hpp
│   │   │   │   ├── ScalingAndZRotation.cpp
│   │   │   │   ├── ScalingAndZRotation.hpp
│   │   │   │   ├── Shape.cpp
│   │   │   │   ├── Shape.hpp
│   │   │   │   ├── SphericalCompression.cpp
│   │   │   │   ├── SphericalCompression.hpp
│   │   │   │   ├── TimeDependence.hpp
│   │   │   │   ├── UniformTranslation.cpp
│   │   │   │   └── UniformTranslation.hpp
│   │   │   └── TimeDependentOptions/
│   │   │       ├── BinaryCompactObject.cpp
│   │   │       ├── BinaryCompactObject.hpp
│   │   │       ├── CMakeLists.txt
│   │   │       ├── ExpansionMap.cpp
│   │   │       ├── ExpansionMap.hpp
│   │   │       ├── FromVolumeFile.cpp
│   │   │       ├── FromVolumeFile.hpp
│   │   │       ├── GridCenters.cpp
│   │   │       ├── GridCenters.hpp
│   │   │       ├── Python/
│   │   │       │   ├── BinaryCompactObject.cpp
│   │   │       │   ├── BinaryCompactObject.hpp
│   │   │       │   ├── Bindings.cpp
│   │   │       │   ├── CMakeLists.txt
│   │   │       │   ├── ExpansionMap.cpp
│   │   │       │   ├── ExpansionMap.hpp
│   │   │       │   ├── GridCenters.cpp
│   │   │       │   ├── GridCenters.hpp
│   │   │       │   ├── RotationMap.cpp
│   │   │       │   ├── RotationMap.hpp
│   │   │       │   ├── ShapeMap.cpp
│   │   │       │   ├── ShapeMap.hpp
│   │   │       │   ├── SkewMap.cpp
│   │   │       │   ├── SkewMap.hpp
│   │   │       │   ├── TranslationMap.cpp
│   │   │       │   ├── TranslationMap.hpp
│   │   │       │   └── __init__.py
│   │   │       ├── RotationMap.cpp
│   │   │       ├── RotationMap.hpp
│   │   │       ├── ShapeMap.cpp
│   │   │       ├── ShapeMap.hpp
│   │   │       ├── SkewMap.cpp
│   │   │       ├── SkewMap.hpp
│   │   │       ├── Sphere.cpp
│   │   │       ├── Sphere.hpp
│   │   │       ├── TranslationMap.cpp
│   │   │       └── TranslationMap.hpp
│   │   ├── Domain.cpp
│   │   ├── Domain.hpp
│   │   ├── DomainHelpers.cpp
│   │   ├── DomainHelpers.hpp
│   │   ├── ElementDistribution.cpp
│   │   ├── ElementDistribution.hpp
│   │   ├── ElementLogicalCoordinates.cpp
│   │   ├── ElementLogicalCoordinates.hpp
│   │   ├── ElementMap.cpp
│   │   ├── ElementMap.hpp
│   │   ├── ElementToBlockLogicalMap.cpp
│   │   ├── ElementToBlockLogicalMap.hpp
│   │   ├── ExcisionSphere.cpp
│   │   ├── ExcisionSphere.hpp
│   │   ├── FaceNormal.cpp
│   │   ├── FaceNormal.hpp
│   │   ├── FlatLogicalMetric.cpp
│   │   ├── FlatLogicalMetric.hpp
│   │   ├── FunctionsOfTime/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── FixedSpeedCubic.cpp
│   │   │   ├── FixedSpeedCubic.hpp
│   │   │   ├── FunctionOfTime.hpp
│   │   │   ├── IntegratedFunctionOfTime.cpp
│   │   │   ├── IntegratedFunctionOfTime.hpp
│   │   │   ├── OptionTags.hpp
│   │   │   ├── OutputTimeBounds.cpp
│   │   │   ├── OutputTimeBounds.hpp
│   │   │   ├── PiecewisePolynomial.cpp
│   │   │   ├── PiecewisePolynomial.hpp
│   │   │   ├── QuaternionFunctionOfTime.cpp
│   │   │   ├── QuaternionFunctionOfTime.hpp
│   │   │   ├── QuaternionHelpers.cpp
│   │   │   ├── QuaternionHelpers.hpp
│   │   │   ├── RegisterDerivedWithCharm.cpp
│   │   │   ├── RegisterDerivedWithCharm.hpp
│   │   │   ├── SettleToConstant.cpp
│   │   │   ├── SettleToConstant.hpp
│   │   │   ├── SettleToConstantQuaternion.cpp
│   │   │   ├── SettleToConstantQuaternion.hpp
│   │   │   ├── Tags.hpp
│   │   │   ├── ThreadsafeList.hpp
│   │   │   └── ThreadsafeList.tpp
│   │   ├── InterfaceComputeTags.hpp
│   │   ├── InterfaceHelpers.hpp
│   │   ├── InterfaceLogicalCoordinates.cpp
│   │   ├── InterfaceLogicalCoordinates.hpp
│   │   ├── JacobianDiagnostic.cpp
│   │   ├── JacobianDiagnostic.hpp
│   │   ├── MinimumGridSpacing.cpp
│   │   ├── MinimumGridSpacing.hpp
│   │   ├── Python/
│   │   │   ├── Bindings.cpp
│   │   │   ├── Block.cpp
│   │   │   ├── Block.hpp
│   │   │   ├── BlockLogicalCoordinates.cpp
│   │   │   ├── BlockLogicalCoordinates.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Direction.cpp
│   │   │   ├── Direction.hpp
│   │   │   ├── Domain.cpp
│   │   │   ├── Domain.hpp
│   │   │   ├── ElementId.cpp
│   │   │   ├── ElementId.hpp
│   │   │   ├── ElementLogicalCoordinates.cpp
│   │   │   ├── ElementLogicalCoordinates.hpp
│   │   │   ├── ElementMap.cpp
│   │   │   ├── ElementMap.hpp
│   │   │   ├── FunctionsOfTime.cpp
│   │   │   ├── FunctionsOfTime.hpp
│   │   │   ├── JacobianDiagnostic.cpp
│   │   │   ├── JacobianDiagnostic.hpp
│   │   │   ├── RadiallyCompressedCoordinates.cpp
│   │   │   ├── RadiallyCompressedCoordinates.hpp
│   │   │   ├── SegmentId.cpp
│   │   │   ├── SegmentId.hpp
│   │   │   ├── StrahlkorperTransformations.cpp
│   │   │   ├── StrahlkorperTransformations.hpp
│   │   │   └── __init__.py
│   │   ├── RadiallyCompressedCoordinates.cpp
│   │   ├── RadiallyCompressedCoordinates.hpp
│   │   ├── SizeOfElement.cpp
│   │   ├── SizeOfElement.hpp
│   │   ├── StrahlkorperTransformations.cpp
│   │   ├── StrahlkorperTransformations.hpp
│   │   ├── Structure/
│   │   │   ├── BlockGroups.cpp
│   │   │   ├── BlockGroups.hpp
│   │   │   ├── BlockId.hpp
│   │   │   ├── BlockNeighbors.cpp
│   │   │   ├── BlockNeighbors.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── ChildSize.cpp
│   │   │   ├── ChildSize.hpp
│   │   │   ├── CreateInitialMesh.cpp
│   │   │   ├── CreateInitialMesh.hpp
│   │   │   ├── Direction.cpp
│   │   │   ├── Direction.hpp
│   │   │   ├── DirectionMap.hpp
│   │   │   ├── DirectionalId.cpp
│   │   │   ├── DirectionalId.hpp
│   │   │   ├── DirectionalIdMap.hpp
│   │   │   ├── Element.cpp
│   │   │   ├── Element.hpp
│   │   │   ├── ElementId.cpp
│   │   │   ├── ElementId.hpp
│   │   │   ├── ElementSearchTree.cpp
│   │   │   ├── ElementSearchTree.hpp
│   │   │   ├── FaceType.cpp
│   │   │   ├── FaceType.hpp
│   │   │   ├── HasBoundary.cpp
│   │   │   ├── HasBoundary.hpp
│   │   │   ├── Hypercube.cpp
│   │   │   ├── Hypercube.hpp
│   │   │   ├── IndexToSliceAt.hpp
│   │   │   ├── InitialElementIds.cpp
│   │   │   ├── InitialElementIds.hpp
│   │   │   ├── MaxNumberOfNeighbors.hpp
│   │   │   ├── NeighborIsConforming.cpp
│   │   │   ├── NeighborIsConforming.hpp
│   │   │   ├── Neighbors.cpp
│   │   │   ├── Neighbors.hpp
│   │   │   ├── ObjectLabel.cpp
│   │   │   ├── ObjectLabel.hpp
│   │   │   ├── OrientationMap.cpp
│   │   │   ├── OrientationMap.hpp
│   │   │   ├── OrientationMapHelpers.cpp
│   │   │   ├── OrientationMapHelpers.hpp
│   │   │   ├── SegmentId.cpp
│   │   │   ├── SegmentId.hpp
│   │   │   ├── Side.cpp
│   │   │   ├── Side.hpp
│   │   │   ├── Topology.cpp
│   │   │   ├── Topology.hpp
│   │   │   ├── TrimMap.hpp
│   │   │   ├── ZCurve.cpp
│   │   │   └── ZCurve.hpp
│   │   ├── Tags/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── ElementDistribution.hpp
│   │   │   ├── FaceNormal.hpp
│   │   │   ├── Faces.hpp
│   │   │   ├── NeighborMesh.hpp
│   │   │   └── SurfaceJacobian.hpp
│   │   ├── Tags.hpp
│   │   ├── TagsCharacteristicSpeeds.hpp
│   │   ├── TagsTimeDependent.cpp
│   │   └── TagsTimeDependent.hpp
│   ├── Elliptic/
│   │   ├── Actions/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── InitializeAnalyticSolution.hpp
│   │   │   ├── InitializeBackgroundFields.hpp
│   │   │   ├── InitializeFields.hpp
│   │   │   ├── InitializeFixedSources.hpp
│   │   │   └── RunEventsAndTriggers.hpp
│   │   ├── Amr/
│   │   │   ├── Actions.hpp
│   │   │   └── CMakeLists.txt
│   │   ├── BoundaryConditions/
│   │   │   ├── AnalyticSolution.hpp
│   │   │   ├── ApplyBoundaryCondition.hpp
│   │   │   ├── BoundaryCondition.hpp
│   │   │   ├── BoundaryConditionType.cpp
│   │   │   ├── BoundaryConditionType.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Tags/
│   │   │   │   └── BoundaryFields.hpp
│   │   │   └── Tags.hpp
│   │   ├── CMakeLists.txt
│   │   ├── DiscontinuousGalerkin/
│   │   │   ├── Actions/
│   │   │   │   ├── ApplyOperator.hpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   └── InitializeDomain.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── DgElementArray.hpp
│   │   │   ├── DgOperator.hpp
│   │   │   ├── Initialization.cpp
│   │   │   ├── Initialization.hpp
│   │   │   ├── Penalty.cpp
│   │   │   ├── Penalty.hpp
│   │   │   ├── SubdomainOperator/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── InitializeSubdomain.cpp
│   │   │   │   ├── InitializeSubdomain.hpp
│   │   │   │   ├── SubdomainOperator.hpp
│   │   │   │   └── Tags.hpp
│   │   │   └── Tags.hpp
│   │   ├── Executables/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Elasticity/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── SolveElasticity.cpp
│   │   │   │   └── SolveElasticity.hpp
│   │   │   ├── Poisson/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── SolvePoisson.cpp
│   │   │   │   └── SolvePoisson.hpp
│   │   │   ├── Punctures/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── SolvePunctures.cpp
│   │   │   │   └── SolvePunctures.hpp
│   │   │   ├── SelfForce/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── GeneralRelativity/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── SolveGrSelfForce.cpp
│   │   │   │   │   └── SolveGrSelfForce.hpp
│   │   │   │   └── Scalar/
│   │   │   │       ├── CMakeLists.txt
│   │   │   │       ├── SolveScalarSelfForce.cpp
│   │   │   │       └── SolveScalarSelfForce.hpp
│   │   │   ├── Solver.hpp
│   │   │   └── Xcts/
│   │   │       ├── CMakeLists.txt
│   │   │       ├── SolveXcts.cpp
│   │   │       └── SolveXcts.hpp
│   │   ├── Protocols/
│   │   │   ├── CMakeLists.txt
│   │   │   └── FirstOrderSystem.hpp
│   │   ├── Python/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── ReadH5.py
│   │   │   └── __init__.py
│   │   ├── SubdomainPreconditioners/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── MinusLaplacian.hpp
│   │   │   ├── RegisterDerived.cpp
│   │   │   └── RegisterDerived.hpp
│   │   ├── Systems/
│   │   │   ├── BnsInitialData/
│   │   │   │   ├── BnsInitialData.hpp
│   │   │   │   ├── BoundaryConditions/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── Factory.hpp
│   │   │   │   │   ├── StarSurface.cpp
│   │   │   │   │   └── StarSurface.hpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Equations.cpp
│   │   │   │   ├── Equations.hpp
│   │   │   │   ├── FirstOrderSystem.hpp
│   │   │   │   └── Tags.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Elasticity/
│   │   │   │   ├── Actions/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── InitializeConstitutiveRelation.cpp
│   │   │   │   │   └── InitializeConstitutiveRelation.hpp
│   │   │   │   ├── BoundaryConditions/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── Factory.hpp
│   │   │   │   │   ├── LaserBeam.cpp
│   │   │   │   │   ├── LaserBeam.hpp
│   │   │   │   │   ├── Zero.cpp
│   │   │   │   │   └── Zero.hpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Equations.cpp
│   │   │   │   ├── Equations.hpp
│   │   │   │   ├── FirstOrderSystem.hpp
│   │   │   │   └── Tags.hpp
│   │   │   ├── GetFluxesComputer.hpp
│   │   │   ├── GetModifyBoundaryData.hpp
│   │   │   ├── GetSourcesComputer.hpp
│   │   │   ├── Poisson/
│   │   │   │   ├── BoundaryConditions/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── Factory.hpp
│   │   │   │   │   ├── Robin.cpp
│   │   │   │   │   └── Robin.hpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Equations.cpp
│   │   │   │   ├── Equations.hpp
│   │   │   │   ├── FirstOrderSystem.hpp
│   │   │   │   ├── Geometry.hpp
│   │   │   │   └── Tags.hpp
│   │   │   ├── Punctures/
│   │   │   │   ├── AmrCriteria/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── RefineAtPunctures.cpp
│   │   │   │   │   └── RefineAtPunctures.hpp
│   │   │   │   ├── BoundaryConditions/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── Factory.hpp
│   │   │   │   │   ├── Flatness.cpp
│   │   │   │   │   └── Flatness.hpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── FirstOrderSystem.hpp
│   │   │   │   ├── Punctures.hpp
│   │   │   │   ├── Sources.cpp
│   │   │   │   ├── Sources.hpp
│   │   │   │   └── Tags.hpp
│   │   │   ├── ScalarGaussBonnet/
│   │   │   │   ├── BoundaryConditions/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── DoNothing.hpp
│   │   │   │   │   └── Factory.hpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Equations.cpp
│   │   │   │   ├── Equations.hpp
│   │   │   │   ├── FirstOrderSystem.hpp
│   │   │   │   ├── ScalarGaussBonnet.hpp
│   │   │   │   └── Tags.hpp
│   │   │   ├── SelfForce/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── GeneralRelativity/
│   │   │   │   │   ├── Actions/
│   │   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   │   └── InitializeEffectiveSource.hpp
│   │   │   │   │   ├── AnalyticData/
│   │   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   │   ├── CircularOrbit.cpp
│   │   │   │   │   │   ├── CircularOrbit.hpp
│   │   │   │   │   │   ├── CircularOrbitCoeffs.cpp
│   │   │   │   │   │   ├── CircularOrbitCoeffs.hpp
│   │   │   │   │   │   ├── CircularOrbitConvertEffsource.cpp
│   │   │   │   │   │   └── CircularOrbitConvertEffsource.hpp
│   │   │   │   │   ├── BoundaryConditions/
│   │   │   │   │   │   ├── Angular.cpp
│   │   │   │   │   │   ├── Angular.hpp
│   │   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   │   ├── Factory.hpp
│   │   │   │   │   │   ├── None.cpp
│   │   │   │   │   │   ├── None.hpp
│   │   │   │   │   │   ├── Sommerfeld.cpp
│   │   │   │   │   │   └── Sommerfeld.hpp
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── Equations.cpp
│   │   │   │   │   ├── Equations.hpp
│   │   │   │   │   ├── FirstOrderSystem.hpp
│   │   │   │   │   └── Tags.hpp
│   │   │   │   └── Scalar/
│   │   │   │       ├── Actions/
│   │   │   │       │   ├── CMakeLists.txt
│   │   │   │       │   └── InitializeEffectiveSource.hpp
│   │   │   │       ├── AmrCriteria/
│   │   │   │       │   ├── CMakeLists.txt
│   │   │   │       │   ├── RefineAtPuncture.cpp
│   │   │   │       │   └── RefineAtPuncture.hpp
│   │   │   │       ├── AnalyticData/
│   │   │   │       │   ├── CMakeLists.txt
│   │   │   │       │   ├── CircularOrbit.cpp
│   │   │   │       │   └── CircularOrbit.hpp
│   │   │   │       ├── BoundaryConditions/
│   │   │   │       │   ├── CMakeLists.txt
│   │   │   │       │   ├── Factory.hpp
│   │   │   │       │   ├── None.cpp
│   │   │   │       │   ├── None.hpp
│   │   │   │       │   ├── Sommerfeld.cpp
│   │   │   │       │   └── Sommerfeld.hpp
│   │   │   │       ├── CMakeLists.txt
│   │   │   │       ├── Equations.cpp
│   │   │   │       ├── Equations.hpp
│   │   │   │       ├── Events/
│   │   │   │       │   ├── CMakeLists.txt
│   │   │   │       │   ├── ObserveSelfForce.cpp
│   │   │   │       │   └── ObserveSelfForce.hpp
│   │   │   │       ├── FirstOrderSystem.hpp
│   │   │   │       └── Tags.hpp
│   │   │   └── Xcts/
│   │   │       ├── BoundaryConditions/
│   │   │       │   ├── ApparentHorizon.cpp
│   │   │       │   ├── ApparentHorizon.hpp
│   │   │       │   ├── CMakeLists.txt
│   │   │       │   ├── Factory.hpp
│   │   │       │   ├── Flatness.cpp
│   │   │       │   ├── Flatness.hpp
│   │   │       │   ├── Robin.cpp
│   │   │       │   └── Robin.hpp
│   │   │       ├── CMakeLists.txt
│   │   │       ├── Equations.cpp
│   │   │       ├── Equations.hpp
│   │   │       ├── Events/
│   │   │       │   ├── CMakeLists.txt
│   │   │       │   ├── ObserveAdmIntegrals.cpp
│   │   │       │   └── ObserveAdmIntegrals.hpp
│   │   │       ├── FirstOrderSystem.hpp
│   │   │       ├── FluxesAndSources.cpp
│   │   │       ├── FluxesAndSources.hpp
│   │   │       ├── Geometry.hpp
│   │   │       ├── HydroQuantities.hpp
│   │   │       ├── Tags.hpp
│   │   │       └── Xcts.hpp
│   │   ├── Tags.hpp
│   │   ├── Triggers/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── EveryNIterations.hpp
│   │   │   ├── Factory.hpp
│   │   │   └── HasConverged.hpp
│   │   └── Utilities/
│   │       ├── ApplyAt.hpp
│   │       ├── CMakeLists.txt
│   │       └── GetAnalyticData.hpp
│   ├── Evolution/
│   │   ├── Actions/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── RunEventsAndDenseTriggers.hpp
│   │   │   └── RunEventsAndTriggers.hpp
│   │   ├── Ader/
│   │   │   ├── Ader.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Matrices.cpp
│   │   │   └── Matrices.hpp
│   │   ├── BoundaryConditions/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Type.cpp
│   │   │   └── Type.hpp
│   │   ├── BoundaryCorrection.hpp
│   │   ├── BoundaryCorrectionTags.hpp
│   │   ├── CMakeLists.txt
│   │   ├── ComputeTags.hpp
│   │   ├── Conservative/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── UpdateConservatives.hpp
│   │   │   └── UpdatePrimitives.hpp
│   │   ├── Deadlock/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── PrintDgElementArray.hpp
│   │   │   └── PrintFunctionsOfTime.hpp
│   │   ├── DgSubcell/
│   │   │   ├── Actions/
│   │   │   │   ├── Actions.hpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Initialize.hpp
│   │   │   │   ├── Labels.hpp
│   │   │   │   ├── ReconstructionCommunication.hpp
│   │   │   │   ├── SelectNumericalMethod.hpp
│   │   │   │   ├── TakeTimeStep.hpp
│   │   │   │   ├── TciAndRollback.hpp
│   │   │   │   └── TciAndSwitchToDg.hpp
│   │   │   ├── ActiveGrid.cpp
│   │   │   ├── ActiveGrid.hpp
│   │   │   ├── BackgroundGrVars.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── CartesianFluxDivergence.cpp
│   │   │   ├── CartesianFluxDivergence.hpp
│   │   │   ├── CellCenteredFlux.hpp
│   │   │   ├── CombineVolumeGhostData.cpp
│   │   │   ├── CombineVolumeGhostData.hpp
│   │   │   ├── ComputeBoundaryTerms.hpp
│   │   │   ├── CorrectPackagedData.hpp
│   │   │   ├── DgSubcell.hpp
│   │   │   ├── DisableLts.cpp
│   │   │   ├── DisableLts.hpp
│   │   │   ├── GetActiveTag.hpp
│   │   │   ├── GetTciDecision.hpp
│   │   │   ├── GhostData.cpp
│   │   │   ├── GhostData.hpp
│   │   │   ├── GhostZoneInverseJacobian.hpp
│   │   │   ├── GhostZoneLogicalCoordinates.cpp
│   │   │   ├── GhostZoneLogicalCoordinates.hpp
│   │   │   ├── InitialTciData.cpp
│   │   │   ├── InitialTciData.hpp
│   │   │   ├── Matrices.cpp
│   │   │   ├── Matrices.hpp
│   │   │   ├── Mesh.cpp
│   │   │   ├── Mesh.hpp
│   │   │   ├── NeighborRdmpAndVolumeData.cpp
│   │   │   ├── NeighborRdmpAndVolumeData.hpp
│   │   │   ├── NeighborReconstructedFaceSolution.hpp
│   │   │   ├── NeighborReconstructedFaceSolution.tpp
│   │   │   ├── NeighborTciDecision.cpp
│   │   │   ├── NeighborTciDecision.hpp
│   │   │   ├── PerssonTci.cpp
│   │   │   ├── PerssonTci.hpp
│   │   │   ├── PrepareNeighborData.hpp
│   │   │   ├── Projection.cpp
│   │   │   ├── Projection.hpp
│   │   │   ├── Python/
│   │   │   │   ├── Bindings.cpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   └── __init__.py
│   │   │   ├── RdmpTci.cpp
│   │   │   ├── RdmpTci.hpp
│   │   │   ├── RdmpTciData.cpp
│   │   │   ├── RdmpTciData.hpp
│   │   │   ├── ReceiveSubcellDataForDg.cpp
│   │   │   ├── ReceiveSubcellDataForDg.hpp
│   │   │   ├── Reconstruction.cpp
│   │   │   ├── Reconstruction.hpp
│   │   │   ├── ReconstructionMethod.cpp
│   │   │   ├── ReconstructionMethod.hpp
│   │   │   ├── ReconstructionOrder.hpp
│   │   │   ├── SetInterpolators.hpp
│   │   │   ├── SliceData.cpp
│   │   │   ├── SliceData.hpp
│   │   │   ├── SliceTensor.hpp
│   │   │   ├── SliceVariable.hpp
│   │   │   ├── SubcellOptions.cpp
│   │   │   ├── SubcellOptions.hpp
│   │   │   ├── Tags/
│   │   │   │   ├── ActiveGrid.hpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── CellCenteredFlux.hpp
│   │   │   │   ├── Coordinates.hpp
│   │   │   │   ├── DataForRdmpTci.hpp
│   │   │   │   ├── DidRollback.hpp
│   │   │   │   ├── GhostDataForReconstruction.hpp
│   │   │   │   ├── GhostZoneInverseJacobian.hpp
│   │   │   │   ├── Inactive.hpp
│   │   │   │   ├── InitialTciData.hpp
│   │   │   │   ├── Interpolators.hpp
│   │   │   │   ├── Jacobians.hpp
│   │   │   │   ├── Mesh.cpp
│   │   │   │   ├── Mesh.hpp
│   │   │   │   ├── MeshForGhostData.hpp
│   │   │   │   ├── MethodOrder.cpp
│   │   │   │   ├── MethodOrder.hpp
│   │   │   │   ├── ObserverCoordinates.hpp
│   │   │   │   ├── ObserverMesh.cpp
│   │   │   │   ├── ObserverMesh.hpp
│   │   │   │   ├── ObserverMeshVelocity.cpp
│   │   │   │   ├── ObserverMeshVelocity.hpp
│   │   │   │   ├── OnSubcellFaces.hpp
│   │   │   │   ├── OnSubcells.hpp
│   │   │   │   ├── ReconstructionOrder.hpp
│   │   │   │   ├── StepsSinceTciCall.hpp
│   │   │   │   ├── SubcellOptions.hpp
│   │   │   │   ├── SubcellSolver.hpp
│   │   │   │   ├── Tags.hpp
│   │   │   │   ├── TciCallsSinceRollback.hpp
│   │   │   │   ├── TciGridHistory.hpp
│   │   │   │   ├── TciStatus.cpp
│   │   │   │   └── TciStatus.hpp
│   │   │   └── TwoMeshRdmpTci.hpp
│   │   ├── DiscontinuousGalerkin/
│   │   │   ├── Actions/
│   │   │   │   ├── ApplyBoundaryCorrections.hpp
│   │   │   │   ├── BoundaryConditionsImpl.hpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── ComputeTimeDerivative.hpp
│   │   │   │   ├── ComputeTimeDerivativeHelpers.hpp
│   │   │   │   ├── InternalMortarDataImpl.hpp
│   │   │   │   ├── NormalCovectorAndMagnitude.hpp
│   │   │   │   ├── PackageDataImpl.hpp
│   │   │   │   ├── VolumeTermsImpl.hpp
│   │   │   │   └── VolumeTermsImpl.tpp
│   │   │   ├── AtomicInboxBoundaryData.cpp
│   │   │   ├── AtomicInboxBoundaryData.hpp
│   │   │   ├── BackgroundGrVars.hpp
│   │   │   ├── BoundaryData.cpp
│   │   │   ├── BoundaryData.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── CleanMortarHistory.cpp
│   │   │   ├── CleanMortarHistory.hpp
│   │   │   ├── DgElementArray.hpp
│   │   │   ├── InboxBoundaryData.cpp
│   │   │   ├── InboxBoundaryData.hpp
│   │   │   ├── InboxTags.cpp
│   │   │   ├── InboxTags.hpp
│   │   │   ├── Initialization/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Mortars.cpp
│   │   │   │   ├── Mortars.hpp
│   │   │   │   └── QuadratureTag.hpp
│   │   │   ├── InstantiateBoundaryHistory.cpp
│   │   │   ├── InterfaceDataPolicy.cpp
│   │   │   ├── InterfaceDataPolicy.hpp
│   │   │   ├── InterpolatedBoundaryData.cpp
│   │   │   ├── InterpolatedBoundaryData.hpp
│   │   │   ├── Limiters/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── HwenoImpl.cpp
│   │   │   │   ├── HwenoImpl.hpp
│   │   │   │   ├── Krivodonova.hpp
│   │   │   │   ├── Limiters.hpp
│   │   │   │   ├── Minmod.hpp
│   │   │   │   ├── MinmodHelpers.cpp
│   │   │   │   ├── MinmodHelpers.hpp
│   │   │   │   ├── MinmodImpl.cpp
│   │   │   │   ├── MinmodImpl.hpp
│   │   │   │   ├── MinmodTci.cpp
│   │   │   │   ├── MinmodTci.hpp
│   │   │   │   ├── MinmodType.cpp
│   │   │   │   ├── MinmodType.hpp
│   │   │   │   ├── SimpleWenoImpl.hpp
│   │   │   │   ├── Tags.hpp
│   │   │   │   ├── Tci.hpp
│   │   │   │   ├── Weno.hpp
│   │   │   │   ├── WenoGridHelpers.cpp
│   │   │   │   ├── WenoGridHelpers.hpp
│   │   │   │   ├── WenoHelpers.cpp
│   │   │   │   ├── WenoHelpers.hpp
│   │   │   │   ├── WenoOscillationIndicator.cpp
│   │   │   │   ├── WenoOscillationIndicator.hpp
│   │   │   │   ├── WenoType.cpp
│   │   │   │   └── WenoType.hpp
│   │   │   ├── Messages/
│   │   │   │   ├── BoundaryMessage.ci
│   │   │   │   ├── BoundaryMessage.cpp
│   │   │   │   ├── BoundaryMessage.hpp
│   │   │   │   └── CMakeLists.txt
│   │   │   ├── MortarData.cpp
│   │   │   ├── MortarData.hpp
│   │   │   ├── MortarDataHolder.cpp
│   │   │   ├── MortarDataHolder.hpp
│   │   │   ├── MortarInfo.cpp
│   │   │   ├── MortarInfo.hpp
│   │   │   ├── MortarTags.hpp
│   │   │   ├── NormalVectorTags.hpp
│   │   │   ├── TimeDerivativeDecisions.hpp
│   │   │   ├── TimeSteppingPolicy.cpp
│   │   │   ├── TimeSteppingPolicy.hpp
│   │   │   └── UsingSubcell.hpp
│   │   ├── Evolution.hpp
│   │   ├── Executables/
│   │   │   ├── Burgers/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── EvolveBurgers.cpp
│   │   │   │   └── EvolveBurgers.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Cce/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── CharacteristicExtract.cpp
│   │   │   │   ├── CharacteristicExtract.hpp
│   │   │   │   ├── CharacteristicExtractBase.hpp
│   │   │   │   ├── KleinGordonCharacteristicExtract.cpp
│   │   │   │   └── KleinGordonCharacteristicExtract.hpp
│   │   │   ├── CurvedScalarWave/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── EvolveCurvedScalarWave.cpp
│   │   │   │   ├── EvolveCurvedScalarWave.hpp
│   │   │   │   ├── EvolveWorldtubeCurvedScalarWave.cpp
│   │   │   │   └── EvolveWorldtubeCurvedScalarWave.hpp
│   │   │   ├── ForceFree/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── EvolveForceFree.cpp
│   │   │   │   └── EvolveForceFree.hpp
│   │   │   ├── GeneralizedHarmonic/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Deadlock.hpp
│   │   │   │   ├── EvolveGhBinaryBlackHole.cpp
│   │   │   │   ├── EvolveGhBinaryBlackHole.hpp
│   │   │   │   ├── EvolveGhNoBlackHole.cpp
│   │   │   │   ├── EvolveGhNoBlackHole.hpp
│   │   │   │   ├── EvolveGhSingleBlackHole.cpp
│   │   │   │   ├── EvolveGhSingleBlackHole.hpp
│   │   │   │   └── GeneralizedHarmonicBase.hpp
│   │   │   ├── GrMhd/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── GhValenciaDivClean/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── EvolveGhValenciaDivClean.cpp
│   │   │   │   │   ├── EvolveGhValenciaDivClean.hpp
│   │   │   │   │   ├── EvolveGhValenciaDivCleanWithHorizon.cpp
│   │   │   │   │   ├── EvolveGhValenciaDivCleanWithHorizon.hpp
│   │   │   │   │   └── GhValenciaDivCleanBase.hpp
│   │   │   │   └── ValenciaDivClean/
│   │   │   │       ├── CMakeLists.txt
│   │   │   │       ├── EvolveValenciaDivClean.cpp
│   │   │   │       └── EvolveValenciaDivClean.hpp
│   │   │   ├── NewtonianEuler/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── EvolveNewtonianEuler.cpp
│   │   │   │   ├── EvolveNewtonianEuler.hpp
│   │   │   │   ├── VolumeTermsInstantiation.tpp
│   │   │   │   ├── VolumeTermsInstantiation1D.cpp
│   │   │   │   ├── VolumeTermsInstantiation2D.cpp
│   │   │   │   └── VolumeTermsInstantiation3D.cpp
│   │   │   ├── RadiationTransport/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── M1Grey/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── EvolveM1Grey.cpp
│   │   │   │   │   └── EvolveM1Grey.hpp
│   │   │   │   └── MonteCarlo/
│   │   │   │       ├── CMakeLists.txt
│   │   │   │       ├── EvolveMonteCarlo.cpp
│   │   │   │       └── EvolveMonteCarlo.hpp
│   │   │   ├── ScalarAdvection/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── EvolveScalarAdvection.cpp
│   │   │   │   └── EvolveScalarAdvection.hpp
│   │   │   ├── ScalarTensor/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── EvolveScalarTensorSingleBlackHole.cpp
│   │   │   │   ├── EvolveScalarTensorSingleBlackHole.hpp
│   │   │   │   └── ScalarTensorBase.hpp
│   │   │   └── ScalarWave/
│   │   │       ├── CMakeLists.txt
│   │   │       ├── EvolveScalarWave.cpp
│   │   │       └── EvolveScalarWave.hpp
│   │   ├── Imex/
│   │   │   ├── Actions/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── DoImplicitStep.hpp
│   │   │   │   ├── NamespaceDocs.hpp
│   │   │   │   └── RecordTimeStepperData.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── CleanHistory.hpp
│   │   │   ├── CleanHistory.tpp
│   │   │   ├── GuessResult.cpp
│   │   │   ├── GuessResult.hpp
│   │   │   ├── ImplicitDenseOutput.hpp
│   │   │   ├── Initialize.hpp
│   │   │   ├── Mode.cpp
│   │   │   ├── Mode.hpp
│   │   │   ├── NamespaceDocs.hpp
│   │   │   ├── Protocols/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── ImexSystem.hpp
│   │   │   │   ├── ImplicitSector.hpp
│   │   │   │   ├── ImplicitSource.hpp
│   │   │   │   ├── ImplicitSourceJacobian.hpp
│   │   │   │   └── NamespaceDocs.hpp
│   │   │   ├── SolveImplicitSector.hpp
│   │   │   ├── SolveImplicitSector.tpp
│   │   │   └── Tags/
│   │   │       ├── CMakeLists.txt
│   │   │       ├── ImplicitHistory.hpp
│   │   │       ├── Jacobian.hpp
│   │   │       ├── Mode.hpp
│   │   │       ├── NamespaceDocs.hpp
│   │   │       ├── OptionGroup.hpp
│   │   │       ├── SolveFailures.hpp
│   │   │       └── SolveTolerance.hpp
│   │   ├── Initialization/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── ConservativeSystem.hpp
│   │   │   ├── DgDomain.cpp
│   │   │   ├── DgDomain.hpp
│   │   │   ├── Evolution.hpp
│   │   │   ├── InitialData.hpp
│   │   │   ├── Limiter.hpp
│   │   │   ├── NonconservativeSystem.hpp
│   │   │   ├── SetVariables.hpp
│   │   │   └── Tags.hpp
│   │   ├── NumericInitialData.hpp
│   │   ├── Particles/
│   │   │   ├── CMakeLists.txt
│   │   │   └── MonteCarlo/
│   │   │       ├── Actions/
│   │   │       │   ├── CMakeLists.txt
│   │   │       │   ├── FluidCouplingAction.hpp
│   │   │       │   ├── InitializeMonteCarlo.hpp
│   │   │       │   ├── Labels.hpp
│   │   │       │   ├── TimeStepActions.hpp
│   │   │       │   └── TriggerMonteCarloEvolution.hpp
│   │   │       ├── CMakeLists.txt
│   │   │       ├── CellCrossingTime.cpp
│   │   │       ├── CellCrossingTime.hpp
│   │   │       ├── CellVolume.cpp
│   │   │       ├── CellVolume.hpp
│   │   │       ├── CouplingTermsForPropagation.cpp
│   │   │       ├── CouplingTermsForPropagation.hpp
│   │   │       ├── EmitPackets.tpp
│   │   │       ├── EvolvePackets.cpp
│   │   │       ├── EvolvePackets.hpp
│   │   │       ├── EvolvePacketsInElement.tpp
│   │   │       ├── GhostZoneCommunication.hpp
│   │   │       ├── GhostZoneCommunicationStep.hpp
│   │   │       ├── GhostZoneCommunicationTags.hpp
│   │   │       ├── ImplicitMonteCarloCorrections.tpp
│   │   │       ├── InverseJacobianInertialToFluidCompute.cpp
│   │   │       ├── InverseJacobianInertialToFluidCompute.hpp
│   │   │       ├── MonteCarloOptions.cpp
│   │   │       ├── MonteCarloOptions.hpp
│   │   │       ├── MortarData.hpp
│   │   │       ├── NeutrinoInteractionTable.cpp
│   │   │       ├── NeutrinoInteractionTable.hpp
│   │   │       ├── NeutrinoMomentsFromMonteCarlo.cpp
│   │   │       ├── NeutrinoMomentsFromMonteCarlo.hpp
│   │   │       ├── Packet.cpp
│   │   │       ├── Packet.hpp
│   │   │       ├── Scattering.cpp
│   │   │       ├── Scattering.hpp
│   │   │       ├── SwapGrTags.cpp
│   │   │       ├── SwapGrTags.hpp
│   │   │       ├── System.hpp
│   │   │       ├── Tags.hpp
│   │   │       ├── TakeTimeStep.tpp
│   │   │       ├── TemplatedLocalFunctions.cpp
│   │   │       └── TemplatedLocalFunctions.hpp
│   │   ├── PassVariables.hpp
│   │   ├── Protocols.hpp
│   │   ├── Python/
│   │   │   ├── CMakeLists.txt
│   │   │   └── __init__.py
│   │   ├── Ringdown/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Python/
│   │   │   │   ├── Bindings.cpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── ComputeRingdownShapeAndTranslationFoT.py
│   │   │   │   └── __init__.py
│   │   │   ├── StrahlkorperCoefsAndCenters.cpp
│   │   │   └── StrahlkorperCoefsAndCenters.hpp
│   │   ├── Systems/
│   │   │   ├── Burgers/
│   │   │   │   ├── BoundaryConditions/
│   │   │   │   │   ├── BoundaryCondition.cpp
│   │   │   │   │   ├── BoundaryCondition.hpp
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── DemandOutgoingCharSpeeds.cpp
│   │   │   │   │   ├── DemandOutgoingCharSpeeds.hpp
│   │   │   │   │   ├── Dirichlet.cpp
│   │   │   │   │   ├── Dirichlet.hpp
│   │   │   │   │   ├── DirichletAnalytic.cpp
│   │   │   │   │   ├── DirichletAnalytic.hpp
│   │   │   │   │   └── Factory.hpp
│   │   │   │   ├── BoundaryCorrections/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── Factory.hpp
│   │   │   │   │   ├── Hll.cpp
│   │   │   │   │   ├── Hll.hpp
│   │   │   │   │   ├── NamespaceDocs.hpp
│   │   │   │   │   ├── Rusanov.cpp
│   │   │   │   │   └── Rusanov.hpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Characteristics.cpp
│   │   │   │   ├── Characteristics.hpp
│   │   │   │   ├── FiniteDifference/
│   │   │   │   │   ├── BoundaryConditionGhostData.hpp
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── Factory.hpp
│   │   │   │   │   ├── FiniteDifference.hpp
│   │   │   │   │   ├── MonotonisedCentral.cpp
│   │   │   │   │   ├── MonotonisedCentral.hpp
│   │   │   │   │   ├── ReconstructWork.hpp
│   │   │   │   │   ├── ReconstructWork.tpp
│   │   │   │   │   ├── Reconstructor.cpp
│   │   │   │   │   ├── Reconstructor.hpp
│   │   │   │   │   ├── RegisterDerivedWithCharm.cpp
│   │   │   │   │   ├── RegisterDerivedWithCharm.hpp
│   │   │   │   │   └── Tags.hpp
│   │   │   │   ├── Fluxes.cpp
│   │   │   │   ├── Fluxes.hpp
│   │   │   │   ├── Instantiations/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── Divergence.cpp
│   │   │   │   │   ├── Events.cpp
│   │   │   │   │   ├── TimeStepping.cpp
│   │   │   │   │   └── VolumeTerms.cpp
│   │   │   │   ├── Subcell/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── ComputeFluxes.hpp
│   │   │   │   │   ├── GhostData.cpp
│   │   │   │   │   ├── GhostData.hpp
│   │   │   │   │   ├── NeighborPackagedData.cpp
│   │   │   │   │   ├── NeighborPackagedData.hpp
│   │   │   │   │   ├── SetInitialRdmpData.cpp
│   │   │   │   │   ├── SetInitialRdmpData.hpp
│   │   │   │   │   ├── Subcell.hpp
│   │   │   │   │   ├── TciOnDgGrid.cpp
│   │   │   │   │   ├── TciOnDgGrid.hpp
│   │   │   │   │   ├── TciOnFdGrid.cpp
│   │   │   │   │   ├── TciOnFdGrid.hpp
│   │   │   │   │   └── TimeDerivative.hpp
│   │   │   │   ├── System.hpp
│   │   │   │   ├── Tags.hpp
│   │   │   │   ├── TimeDerivativeTerms.cpp
│   │   │   │   └── TimeDerivativeTerms.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Cce/
│   │   │   │   ├── Actions/
│   │   │   │   │   ├── BoundaryComputeAndSendToEvolution.hpp
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── CalculateScriInputs.hpp
│   │   │   │   │   ├── CharacteristicEvolutionBondiCalculations.hpp
│   │   │   │   │   ├── FilterSwshVolumeQuantity.hpp
│   │   │   │   │   ├── InitializeCharacteristicEvolutionScri.hpp
│   │   │   │   │   ├── InitializeCharacteristicEvolutionTime.hpp
│   │   │   │   │   ├── InitializeCharacteristicEvolutionVariables.hpp
│   │   │   │   │   ├── InitializeFirstHypersurface.hpp
│   │   │   │   │   ├── InitializeKleinGordonFirstHypersurface.hpp
│   │   │   │   │   ├── InitializeKleinGordonVariables.hpp
│   │   │   │   │   ├── InitializeWorldtubeBoundary.hpp
│   │   │   │   │   ├── InsertInterpolationScriData.hpp
│   │   │   │   │   ├── PrecomputeKleinGordonSourceVariables.hpp
│   │   │   │   │   ├── Psi0Matching.hpp
│   │   │   │   │   ├── ReceiveGhWorldtubeData.hpp
│   │   │   │   │   ├── ReceiveWorldtubeData.hpp
│   │   │   │   │   ├── RequestBoundaryData.hpp
│   │   │   │   │   ├── ScriObserveInterpolated.cpp
│   │   │   │   │   ├── ScriObserveInterpolated.hpp
│   │   │   │   │   ├── SendGhVarsToCce.hpp
│   │   │   │   │   ├── TimeManagement.hpp
│   │   │   │   │   ├── UpdateGauge.hpp
│   │   │   │   │   └── WriteScriBondiQuantities.hpp
│   │   │   │   ├── AnalyticBoundaryDataManager.cpp
│   │   │   │   ├── AnalyticBoundaryDataManager.hpp
│   │   │   │   ├── AnalyticSolutions/
│   │   │   │   │   ├── BouncingBlackHole.cpp
│   │   │   │   │   ├── BouncingBlackHole.hpp
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── GaugeWave.cpp
│   │   │   │   │   ├── GaugeWave.hpp
│   │   │   │   │   ├── LinearizedBondiSachs.cpp
│   │   │   │   │   ├── LinearizedBondiSachs.hpp
│   │   │   │   │   ├── RobinsonTrautman.cpp
│   │   │   │   │   ├── RobinsonTrautman.hpp
│   │   │   │   │   ├── RotatingSchwarzschild.cpp
│   │   │   │   │   ├── RotatingSchwarzschild.hpp
│   │   │   │   │   ├── SphericalMetricData.cpp
│   │   │   │   │   ├── SphericalMetricData.hpp
│   │   │   │   │   ├── TeukolskyWave.cpp
│   │   │   │   │   ├── TeukolskyWave.hpp
│   │   │   │   │   ├── WorldtubeData.cpp
│   │   │   │   │   └── WorldtubeData.hpp
│   │   │   │   ├── BoundaryData.cpp
│   │   │   │   ├── BoundaryData.hpp
│   │   │   │   ├── BoundaryDataTags.hpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Callbacks/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── DumpBondiSachsOnWorldtube.cpp
│   │   │   │   │   ├── DumpBondiSachsOnWorldtube.hpp
│   │   │   │   │   └── SendGhWorldtubeData.hpp
│   │   │   │   ├── Components/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── CharacteristicEvolution.hpp
│   │   │   │   │   ├── KleinGordonCharacteristicEvolution.hpp
│   │   │   │   │   └── WorldtubeBoundary.hpp
│   │   │   │   ├── Equations.cpp
│   │   │   │   ├── Equations.hpp
│   │   │   │   ├── Events/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── Events.hpp
│   │   │   │   │   ├── ObserveFields.hpp
│   │   │   │   │   └── ObserveTimeStep.hpp
│   │   │   │   ├── ExtractionRadius.cpp
│   │   │   │   ├── ExtractionRadius.hpp
│   │   │   │   ├── GaugeTransformBoundaryData.cpp
│   │   │   │   ├── GaugeTransformBoundaryData.hpp
│   │   │   │   ├── Initialize/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── ConformalFactor.cpp
│   │   │   │   │   ├── ConformalFactor.hpp
│   │   │   │   │   ├── InitializeJ.cpp
│   │   │   │   │   ├── InitializeJ.hpp
│   │   │   │   │   ├── InverseCubic.cpp
│   │   │   │   │   ├── InverseCubic.hpp
│   │   │   │   │   ├── NoIncomingRadiation.cpp
│   │   │   │   │   ├── NoIncomingRadiation.hpp
│   │   │   │   │   ├── RegisterInitializeJWithCharm.hpp
│   │   │   │   │   ├── ZeroNonSmooth.cpp
│   │   │   │   │   └── ZeroNonSmooth.hpp
│   │   │   │   ├── Instantiations/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   └── TimeStepping.cpp
│   │   │   │   ├── IntegrandInputSteps.hpp
│   │   │   │   ├── InterfaceManagers/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── GhInterfaceManager.hpp
│   │   │   │   │   ├── GhLocalTimeStepping.cpp
│   │   │   │   │   ├── GhLocalTimeStepping.hpp
│   │   │   │   │   ├── GhLockstep.cpp
│   │   │   │   │   └── GhLockstep.hpp
│   │   │   │   ├── KleinGordonSource.cpp
│   │   │   │   ├── KleinGordonSource.hpp
│   │   │   │   ├── KleinGordonSystem.hpp
│   │   │   │   ├── LinearOperators.cpp
│   │   │   │   ├── LinearOperators.hpp
│   │   │   │   ├── LinearSolve.cpp
│   │   │   │   ├── LinearSolve.hpp
│   │   │   │   ├── NewmanPenrose.cpp
│   │   │   │   ├── NewmanPenrose.hpp
│   │   │   │   ├── OptionTags.hpp
│   │   │   │   ├── PreSwshDerivatives.hpp
│   │   │   │   ├── PrecomputeCceDependencies.cpp
│   │   │   │   ├── PrecomputeCceDependencies.hpp
│   │   │   │   ├── ReceiveTags.hpp
│   │   │   │   ├── ScriPlusInterpolationManager.hpp
│   │   │   │   ├── ScriPlusValues.cpp
│   │   │   │   ├── ScriPlusValues.hpp
│   │   │   │   ├── SpecBoundaryData.cpp
│   │   │   │   ├── SpecBoundaryData.hpp
│   │   │   │   ├── SwshDerivatives.hpp
│   │   │   │   ├── System.hpp
│   │   │   │   ├── Tags.hpp
│   │   │   │   ├── WorldtubeBufferUpdater.cpp
│   │   │   │   ├── WorldtubeBufferUpdater.hpp
│   │   │   │   ├── WorldtubeDataManager.cpp
│   │   │   │   ├── WorldtubeDataManager.hpp
│   │   │   │   ├── WorldtubeModeRecorder.cpp
│   │   │   │   └── WorldtubeModeRecorder.hpp
│   │   │   ├── Ccz4/
│   │   │   │   ├── ATilde.cpp
│   │   │   │   ├── ATilde.hpp
│   │   │   │   ├── BoundaryConditions/
│   │   │   │   │   ├── BoundaryCondition.cpp
│   │   │   │   │   ├── BoundaryCondition.hpp
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── DirichletAnalytic.cpp
│   │   │   │   │   ├── DirichletAnalytic.hpp
│   │   │   │   │   ├── Factory.hpp
│   │   │   │   │   ├── Sommerfeld.cpp
│   │   │   │   │   └── Sommerfeld.hpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Ccz4WrappedGr.cpp
│   │   │   │   ├── Ccz4WrappedGr.hpp
│   │   │   │   ├── Ccz4WrappedGr.tpp
│   │   │   │   ├── Christoffel.cpp
│   │   │   │   ├── Christoffel.hpp
│   │   │   │   ├── DerivChristoffel.cpp
│   │   │   │   ├── DerivChristoffel.hpp
│   │   │   │   ├── DerivLapse.cpp
│   │   │   │   ├── DerivLapse.hpp
│   │   │   │   ├── DerivZ4Constraint.cpp
│   │   │   │   ├── DerivZ4Constraint.hpp
│   │   │   │   ├── FiniteDifference/
│   │   │   │   │   ├── ApplyFilter.cpp
│   │   │   │   │   ├── ApplyFilter.hpp
│   │   │   │   │   ├── BoundaryConditionGhostData.hpp
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── Derivatives.cpp
│   │   │   │   │   ├── Derivatives.hpp
│   │   │   │   │   ├── DummyReconstructor.cpp
│   │   │   │   │   ├── DummyReconstructor.hpp
│   │   │   │   │   ├── EnforceConstrainedEvolution.cpp
│   │   │   │   │   ├── EnforceConstrainedEvolution.hpp
│   │   │   │   │   ├── Filter.cpp
│   │   │   │   │   ├── Filter.hpp
│   │   │   │   │   ├── GhostData.cpp
│   │   │   │   │   ├── GhostData.hpp
│   │   │   │   │   ├── Reconstructor.cpp
│   │   │   │   │   ├── Reconstructor.hpp
│   │   │   │   │   ├── SoTimeDerivative.hpp
│   │   │   │   │   ├── System.hpp
│   │   │   │   │   └── Tags.hpp
│   │   │   │   ├── Instantiations/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── Ricci1.cpp
│   │   │   │   │   ├── Ricci2.cpp
│   │   │   │   │   └── Ricci3.cpp
│   │   │   │   ├── Ricci.hpp
│   │   │   │   ├── Ricci.tpp
│   │   │   │   ├── RicciScalarPlusDivergenceZ4Constraint.cpp
│   │   │   │   ├── RicciScalarPlusDivergenceZ4Constraint.hpp
│   │   │   │   ├── Solutions/
│   │   │   │   │   └── Factory.hpp
│   │   │   │   ├── System.hpp
│   │   │   │   ├── Tags.hpp
│   │   │   │   ├── TagsDeclarations.hpp
│   │   │   │   ├── TempTags.hpp
│   │   │   │   ├── TimeDerivative.cpp
│   │   │   │   ├── TimeDerivative.hpp
│   │   │   │   ├── Z4Constraint.cpp
│   │   │   │   └── Z4Constraint.hpp
│   │   │   ├── CurvedScalarWave/
│   │   │   │   ├── Actions/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── SetInitialData.cpp
│   │   │   │   │   └── SetInitialData.hpp
│   │   │   │   ├── Actions.hpp
│   │   │   │   ├── ApplyTensorYlmFilter.cpp
│   │   │   │   ├── ApplyTensorYlmFilter.hpp
│   │   │   │   ├── BackgroundSpacetime.hpp
│   │   │   │   ├── BoundaryConditions/
│   │   │   │   │   ├── AnalyticConstant.cpp
│   │   │   │   │   ├── AnalyticConstant.hpp
│   │   │   │   │   ├── BoundaryCondition.cpp
│   │   │   │   │   ├── BoundaryCondition.hpp
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── ConstraintPreservingSphericalRadiation.cpp
│   │   │   │   │   ├── ConstraintPreservingSphericalRadiation.hpp
│   │   │   │   │   ├── DemandOutgoingCharSpeeds.cpp
│   │   │   │   │   ├── DemandOutgoingCharSpeeds.hpp
│   │   │   │   │   ├── Factory.hpp
│   │   │   │   │   ├── Worldtube.cpp
│   │   │   │   │   └── Worldtube.hpp
│   │   │   │   ├── BoundaryCorrections/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── Factory.hpp
│   │   │   │   │   ├── NamespaceDocs.hpp
│   │   │   │   │   ├── UpwindPenalty.cpp
│   │   │   │   │   └── UpwindPenalty.hpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── CalculateGrVars.hpp
│   │   │   │   ├── Characteristics.cpp
│   │   │   │   ├── Characteristics.hpp
│   │   │   │   ├── Constraints.cpp
│   │   │   │   ├── Constraints.hpp
│   │   │   │   ├── Initialize.hpp
│   │   │   │   ├── Instantiations/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── Events.cpp
│   │   │   │   │   ├── TimeStepping.cpp
│   │   │   │   │   └── VolumeTerms.cpp
│   │   │   │   ├── PsiSquared.hpp
│   │   │   │   ├── System.hpp
│   │   │   │   ├── Tags.hpp
│   │   │   │   ├── TagsDeclarations.hpp
│   │   │   │   ├── TimeDerivative.cpp
│   │   │   │   ├── TimeDerivative.hpp
│   │   │   │   └── Worldtube/
│   │   │   │       ├── AccelerationTermsOrder0.cpp
│   │   │   │       ├── AccelerationTermsOrder1.cpp
│   │   │   │       ├── CMakeLists.txt
│   │   │   │       ├── ElementActions/
│   │   │   │       │   ├── CMakeLists.txt
│   │   │   │       │   ├── InitializeConstraintGammas.cpp
│   │   │   │       │   ├── InitializeConstraintGammas.hpp
│   │   │   │       │   ├── InitializeCurrentIteration.hpp
│   │   │   │       │   ├── IteratePunctureField.hpp
│   │   │   │       │   ├── ReceiveWorldtubeData.hpp
│   │   │   │       │   └── SendToWorldtube.hpp
│   │   │   │       ├── Inboxes.hpp
│   │   │   │       ├── InitialData/
│   │   │   │       │   ├── CMakeLists.txt
│   │   │   │       │   ├── ZerothOrderPuncture.cpp
│   │   │   │       │   └── ZerothOrderPuncture.hpp
│   │   │   │       ├── Instantiations/
│   │   │   │       │   ├── CMakeLists.txt
│   │   │   │       │   └── TimeStepping.cpp
│   │   │   │       ├── KerrSchildDerivatives.cpp
│   │   │   │       ├── KerrSchildDerivatives.hpp
│   │   │   │       ├── PunctureField.cpp
│   │   │   │       ├── PunctureField.hpp
│   │   │   │       ├── PunctureFieldOrder0.cpp
│   │   │   │       ├── PunctureFieldOrder1.cpp
│   │   │   │       ├── RadiusFunctions.cpp
│   │   │   │       ├── RadiusFunctions.hpp
│   │   │   │       ├── SelfForce.cpp
│   │   │   │       ├── SelfForce.hpp
│   │   │   │       ├── SingletonActions/
│   │   │   │       │   ├── CMakeLists.txt
│   │   │   │       │   ├── ChangeSlabSize.hpp
│   │   │   │       │   ├── InitializeElementFacesGridCoordinates.hpp
│   │   │   │       │   ├── InitializeEvolvedVariables.hpp
│   │   │   │       │   ├── IterateAccelerationTerms.cpp
│   │   │   │       │   ├── IterateAccelerationTerms.hpp
│   │   │   │       │   ├── ObserveWorldtubeSolution.hpp
│   │   │   │       │   ├── ReceiveElementData.hpp
│   │   │   │       │   ├── SendAccelerationTerms.hpp
│   │   │   │       │   ├── SendToElements.hpp
│   │   │   │       │   ├── UpdateAcceleration.cpp
│   │   │   │       │   ├── UpdateAcceleration.hpp
│   │   │   │       │   └── UpdateFunctionsOfTime.hpp
│   │   │   │       ├── SingletonChare.hpp
│   │   │   │       ├── System.hpp
│   │   │   │       ├── Tags.cpp
│   │   │   │       ├── Tags.hpp
│   │   │   │       ├── Triggers/
│   │   │   │       │   ├── CMakeLists.txt
│   │   │   │       │   ├── InsideHorizon.cpp
│   │   │   │       │   ├── InsideHorizon.hpp
│   │   │   │       │   ├── OrbitRadius.cpp
│   │   │   │       │   └── OrbitRadius.hpp
│   │   │   │       └── Worldtube.hpp
│   │   │   ├── ForceFree/
│   │   │   │   ├── BoundaryConditions/
│   │   │   │   │   ├── BoundaryCondition.cpp
│   │   │   │   │   ├── BoundaryCondition.hpp
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── DemandOutgoingCharSpeeds.cpp
│   │   │   │   │   ├── DemandOutgoingCharSpeeds.hpp
│   │   │   │   │   ├── DirichletAnalytic.cpp
│   │   │   │   │   ├── DirichletAnalytic.hpp
│   │   │   │   │   └── Factory.hpp
│   │   │   │   ├── BoundaryCorrections/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── Factory.hpp
│   │   │   │   │   ├── NamespaceDocs.hpp
│   │   │   │   │   ├── Rusanov.cpp
│   │   │   │   │   └── Rusanov.hpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Characteristics.cpp
│   │   │   │   ├── Characteristics.hpp
│   │   │   │   ├── ElectricCurrentDensity.cpp
│   │   │   │   ├── ElectricCurrentDensity.hpp
│   │   │   │   ├── ElectromagneticVariables.cpp
│   │   │   │   ├── ElectromagneticVariables.hpp
│   │   │   │   ├── FiniteDifference/
│   │   │   │   │   ├── AdaptiveOrder.cpp
│   │   │   │   │   ├── AdaptiveOrder.hpp
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── Factory.hpp
│   │   │   │   │   ├── FiniteDifference.hpp
│   │   │   │   │   ├── MonotonisedCentral.cpp
│   │   │   │   │   ├── MonotonisedCentral.hpp
│   │   │   │   │   ├── ReconstructWork.hpp
│   │   │   │   │   ├── ReconstructWork.tpp
│   │   │   │   │   ├── Reconstructor.cpp
│   │   │   │   │   ├── Reconstructor.hpp
│   │   │   │   │   ├── RegisterDerivedWithCharm.cpp
│   │   │   │   │   ├── RegisterDerivedWithCharm.hpp
│   │   │   │   │   ├── Tags.hpp
│   │   │   │   │   ├── Wcns5z.cpp
│   │   │   │   │   └── Wcns5z.hpp
│   │   │   │   ├── Fluxes.cpp
│   │   │   │   ├── Fluxes.hpp
│   │   │   │   ├── Imex/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   └── Imex.hpp
│   │   │   │   ├── Instantiations/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── Events.cpp
│   │   │   │   │   ├── TimeStepping.cpp
│   │   │   │   │   └── VolumeTerms.cpp
│   │   │   │   ├── MaskNeutronStarInterior.hpp
│   │   │   │   ├── Sources.cpp
│   │   │   │   ├── Sources.hpp
│   │   │   │   ├── Subcell/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── ComputeFluxes.hpp
│   │   │   │   │   ├── GhostData.cpp
│   │   │   │   │   ├── GhostData.hpp
│   │   │   │   │   ├── NeighborPackagedData.cpp
│   │   │   │   │   ├── NeighborPackagedData.hpp
│   │   │   │   │   ├── SetInitialRdmpData.cpp
│   │   │   │   │   ├── SetInitialRdmpData.hpp
│   │   │   │   │   ├── Subcell.hpp
│   │   │   │   │   ├── TciOnDgGrid.cpp
│   │   │   │   │   ├── TciOnDgGrid.hpp
│   │   │   │   │   ├── TciOnFdGrid.cpp
│   │   │   │   │   ├── TciOnFdGrid.hpp
│   │   │   │   │   ├── TciOptions.cpp
│   │   │   │   │   └── TciOptions.hpp
│   │   │   │   ├── System.hpp
│   │   │   │   ├── Tags.hpp
│   │   │   │   ├── TimeDerivativeTerms.cpp
│   │   │   │   └── TimeDerivativeTerms.hpp
│   │   │   ├── GeneralizedHarmonic/
│   │   │   │   ├── Actions/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── SetInitialData.cpp
│   │   │   │   │   └── SetInitialData.hpp
│   │   │   │   ├── ApplyTensorYlmFilter.cpp
│   │   │   │   ├── ApplyTensorYlmFilter.hpp
│   │   │   │   ├── Bbh/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── Callbacks/
│   │   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   │   └── UpdateCompletionCriteria.hpp
│   │   │   │   │   ├── CompletionCriteria.hpp
│   │   │   │   │   ├── CompletionSingleton.hpp
│   │   │   │   │   ├── Events/
│   │   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   │   ├── CheckConstraintThresholds.cpp
│   │   │   │   │   │   └── CheckConstraintThresholds.hpp
│   │   │   │   │   └── PhaseControl/
│   │   │   │   │       ├── CMakeLists.txt
│   │   │   │   │       ├── CheckpointAndExitIfComplete.cpp
│   │   │   │   │       └── CheckpointAndExitIfComplete.hpp
│   │   │   │   ├── BoundaryConditions/
│   │   │   │   │   ├── Bjorhus.cpp
│   │   │   │   │   ├── Bjorhus.hpp
│   │   │   │   │   ├── BjorhusImpl.cpp
│   │   │   │   │   ├── BjorhusImpl.hpp
│   │   │   │   │   ├── BoundaryCondition.cpp
│   │   │   │   │   ├── BoundaryCondition.hpp
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── DemandOutgoingCharSpeeds.cpp
│   │   │   │   │   ├── DemandOutgoingCharSpeeds.hpp
│   │   │   │   │   ├── DirichletAnalytic.cpp
│   │   │   │   │   ├── DirichletAnalytic.hpp
│   │   │   │   │   ├── DirichletMinkowski.cpp
│   │   │   │   │   ├── DirichletMinkowski.hpp
│   │   │   │   │   └── Factory.hpp
│   │   │   │   ├── BoundaryCorrections/
│   │   │   │   │   ├── AveragedUpwindPenalty.cpp
│   │   │   │   │   ├── AveragedUpwindPenalty.hpp
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── Factory.hpp
│   │   │   │   │   ├── NamespaceDocs.hpp
│   │   │   │   │   ├── UpwindPenalty.cpp
│   │   │   │   │   └── UpwindPenalty.hpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Characteristics.cpp
│   │   │   │   ├── Characteristics.hpp
│   │   │   │   ├── Constraints.cpp
│   │   │   │   ├── Constraints.hpp
│   │   │   │   ├── DuDtTempTags.hpp
│   │   │   │   ├── Equations.cpp
│   │   │   │   ├── Equations.hpp
│   │   │   │   ├── GaugeSourceFunctions/
│   │   │   │   │   ├── AnalyticChristoffel.cpp
│   │   │   │   │   ├── AnalyticChristoffel.hpp
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── DampedHarmonic.cpp
│   │   │   │   │   ├── DampedHarmonic.hpp
│   │   │   │   │   ├── DampedWaveHelpers.cpp
│   │   │   │   │   ├── DampedWaveHelpers.hpp
│   │   │   │   │   ├── DhGaugeParameters.cpp
│   │   │   │   │   ├── DhGaugeParameters.hpp
│   │   │   │   │   ├── Dispatch.cpp
│   │   │   │   │   ├── Dispatch.hpp
│   │   │   │   │   ├── Dispatch.tpp
│   │   │   │   │   ├── Factory.hpp
│   │   │   │   │   ├── Gauges.cpp
│   │   │   │   │   ├── Gauges.hpp
│   │   │   │   │   ├── HalfPiPhiTwoNormals.cpp
│   │   │   │   │   ├── HalfPiPhiTwoNormals.hpp
│   │   │   │   │   ├── Harmonic.cpp
│   │   │   │   │   ├── Harmonic.hpp
│   │   │   │   │   ├── RegisterDerived.cpp
│   │   │   │   │   ├── RegisterDerived.hpp
│   │   │   │   │   ├── SetPiAndPhiFromConstraints.cpp
│   │   │   │   │   ├── SetPiAndPhiFromConstraints.hpp
│   │   │   │   │   ├── SetPiAndPhiFromConstraints.tpp
│   │   │   │   │   └── Tags/
│   │   │   │   │       ├── CMakeLists.txt
│   │   │   │   │       ├── DhGaugeParameters.hpp
│   │   │   │   │       ├── GaugeCondition.cpp
│   │   │   │   │       ├── GaugeCondition.hpp
│   │   │   │   │       └── GaugeCondition.tpp
│   │   │   │   ├── Initialize.hpp
│   │   │   │   ├── Instantiations/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── Events.cpp
│   │   │   │   │   ├── TimeStepping.cpp
│   │   │   │   │   └── VolumeTerms.cpp
│   │   │   │   ├── System.hpp
│   │   │   │   ├── Tags.hpp
│   │   │   │   ├── TagsDeclarations.hpp
│   │   │   │   ├── TimeDerivative.cpp
│   │   │   │   ├── TimeDerivative.hpp
│   │   │   │   └── TimeDerivative.tpp
│   │   │   ├── GrMhd/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── GhValenciaDivClean/
│   │   │   │   │   ├── Actions/
│   │   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   │   ├── SetInitialData.cpp
│   │   │   │   │   │   └── SetInitialData.hpp
│   │   │   │   │   ├── AllSolutions.hpp
│   │   │   │   │   ├── BoundaryConditions/
│   │   │   │   │   │   ├── BoundaryCondition.cpp
│   │   │   │   │   │   ├── BoundaryCondition.hpp
│   │   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   │   ├── ConstraintPreservingFreeOutflow.cpp
│   │   │   │   │   │   ├── ConstraintPreservingFreeOutflow.hpp
│   │   │   │   │   │   ├── DirichletAnalytic.cpp
│   │   │   │   │   │   ├── DirichletAnalytic.hpp
│   │   │   │   │   │   ├── DirichletFreeOutflow.cpp
│   │   │   │   │   │   ├── DirichletFreeOutflow.hpp
│   │   │   │   │   │   └── Factory.hpp
│   │   │   │   │   ├── BoundaryCorrections/
│   │   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   │   ├── Factory.hpp
│   │   │   │   │   │   ├── NamespaceDocs.hpp
│   │   │   │   │   │   └── ProductOfCorrections.hpp
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── Characteristics.hpp
│   │   │   │   │   ├── Constraints.hpp
│   │   │   │   │   ├── FiniteDifference/
│   │   │   │   │   │   ├── BoundaryConditionGhostData.hpp
│   │   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   │   ├── Derivatives.cpp
│   │   │   │   │   │   ├── Derivatives.hpp
│   │   │   │   │   │   ├── Factory.hpp
│   │   │   │   │   │   ├── FillNeighborSpacetimeVariables.hpp
│   │   │   │   │   │   ├── FilterOptions.cpp
│   │   │   │   │   │   ├── FilterOptions.hpp
│   │   │   │   │   │   ├── Filters.cpp
│   │   │   │   │   │   ├── Filters.hpp
│   │   │   │   │   │   ├── FiniteDifference.hpp
│   │   │   │   │   │   ├── MonotonisedCentral.cpp
│   │   │   │   │   │   ├── MonotonisedCentral.hpp
│   │   │   │   │   │   ├── PositivityPreservingAdaptiveOrder.cpp
│   │   │   │   │   │   ├── PositivityPreservingAdaptiveOrder.hpp
│   │   │   │   │   │   ├── ReconstructWork.hpp
│   │   │   │   │   │   ├── ReconstructWork.tpp
│   │   │   │   │   │   ├── Reconstructor.cpp
│   │   │   │   │   │   ├── Reconstructor.hpp
│   │   │   │   │   │   ├── RegisterDerivedWithCharm.cpp
│   │   │   │   │   │   ├── RegisterDerivedWithCharm.hpp
│   │   │   │   │   │   ├── Tag.hpp
│   │   │   │   │   │   ├── Wcns5z.cpp
│   │   │   │   │   │   └── Wcns5z.hpp
│   │   │   │   │   ├── Instantiations/
│   │   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   │   ├── Events.cpp
│   │   │   │   │   │   ├── TimeStepping.cpp
│   │   │   │   │   │   └── VolumeTerms.cpp
│   │   │   │   │   ├── NeutrinoSystems.hpp
│   │   │   │   │   ├── SetPiAndPhiFromConstraints.hpp
│   │   │   │   │   ├── StressEnergy.cpp
│   │   │   │   │   ├── StressEnergy.hpp
│   │   │   │   │   ├── Subcell/
│   │   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   │   ├── FixConservativesAndComputePrims.cpp
│   │   │   │   │   │   ├── FixConservativesAndComputePrims.hpp
│   │   │   │   │   │   ├── NeighborPackagedData.cpp
│   │   │   │   │   │   ├── NeighborPackagedData.hpp
│   │   │   │   │   │   ├── PrimitiveGhostData.cpp
│   │   │   │   │   │   ├── PrimitiveGhostData.hpp
│   │   │   │   │   │   ├── PrimsAfterRollback.cpp
│   │   │   │   │   │   ├── PrimsAfterRollback.hpp
│   │   │   │   │   │   ├── ResizeAndComputePrimitives.cpp
│   │   │   │   │   │   ├── ResizeAndComputePrimitives.hpp
│   │   │   │   │   │   ├── Subcell.hpp
│   │   │   │   │   │   ├── TciOnDgGrid.hpp
│   │   │   │   │   │   ├── TciOnFdGrid.hpp
│   │   │   │   │   │   ├── TimeDerivative.hpp
│   │   │   │   │   │   └── ZeroTimeDerivatives.hpp
│   │   │   │   │   ├── System.hpp
│   │   │   │   │   ├── SystemM1.hpp
│   │   │   │   │   ├── Tags.hpp
│   │   │   │   │   ├── TimeDerivativeTerms.cpp
│   │   │   │   │   └── TimeDerivativeTerms.hpp
│   │   │   │   └── ValenciaDivClean/
│   │   │   │       ├── Actions/
│   │   │   │       │   ├── CMakeLists.txt
│   │   │   │       │   ├── NumericInitialData.cpp
│   │   │   │       │   └── NumericInitialData.hpp
│   │   │   │       ├── AllSolutions.hpp
│   │   │   │       ├── BoundaryConditions/
│   │   │   │       │   ├── BoundaryCondition.cpp
│   │   │   │       │   ├── BoundaryCondition.hpp
│   │   │   │       │   ├── CMakeLists.txt
│   │   │   │       │   ├── DemandOutgoingCharSpeeds.cpp
│   │   │   │       │   ├── DemandOutgoingCharSpeeds.hpp
│   │   │   │       │   ├── DirichletAnalytic.cpp
│   │   │   │       │   ├── DirichletAnalytic.hpp
│   │   │   │       │   ├── Factory.hpp
│   │   │   │       │   ├── HydroFreeOutflow.cpp
│   │   │   │       │   ├── HydroFreeOutflow.hpp
│   │   │   │       │   ├── Reflective.cpp
│   │   │   │       │   └── Reflective.hpp
│   │   │   │       ├── BoundaryCorrections/
│   │   │   │       │   ├── CMakeLists.txt
│   │   │   │       │   ├── Factory.hpp
│   │   │   │       │   ├── Hll.cpp
│   │   │   │       │   ├── Hll.hpp
│   │   │   │       │   ├── NamespaceDocs.hpp
│   │   │   │       │   ├── Rusanov.cpp
│   │   │   │       │   └── Rusanov.hpp
│   │   │   │       ├── CMakeLists.txt
│   │   │   │       ├── Characteristics.cpp
│   │   │   │       ├── Characteristics.hpp
│   │   │   │       ├── ComovingMagneticFieldMagnitude.cpp
│   │   │   │       ├── ComovingMagneticFieldMagnitude.hpp
│   │   │   │       ├── ComputeFluxesFromPrimitives.hpp
│   │   │   │       ├── ConservativeFromPrimitive.cpp
│   │   │   │       ├── ConservativeFromPrimitive.hpp
│   │   │   │       ├── FiniteDifference/
│   │   │   │       │   ├── BoundaryConditionGhostData.hpp
│   │   │   │       │   ├── CMakeLists.txt
│   │   │   │       │   ├── Factory.hpp
│   │   │   │       │   ├── FiniteDifference.hpp
│   │   │   │       │   ├── MonotonicityPreserving5.cpp
│   │   │   │       │   ├── MonotonicityPreserving5.hpp
│   │   │   │       │   ├── MonotonisedCentral.cpp
│   │   │   │       │   ├── MonotonisedCentral.hpp
│   │   │   │       │   ├── PositivityPreservingAdaptiveOrder.cpp
│   │   │   │       │   ├── PositivityPreservingAdaptiveOrder.hpp
│   │   │   │       │   ├── ReconstructWork.hpp
│   │   │   │       │   ├── ReconstructWork.tpp
│   │   │   │       │   ├── Reconstructor.cpp
│   │   │   │       │   ├── Reconstructor.hpp
│   │   │   │       │   ├── RegisterDerivedWithCharm.cpp
│   │   │   │       │   ├── RegisterDerivedWithCharm.hpp
│   │   │   │       │   ├── Tag.hpp
│   │   │   │       │   ├── Wcns5z.cpp
│   │   │   │       │   └── Wcns5z.hpp
│   │   │   │       ├── FixConservatives.cpp
│   │   │   │       ├── FixConservatives.hpp
│   │   │   │       ├── Flattener.cpp
│   │   │   │       ├── Flattener.hpp
│   │   │   │       ├── Fluxes.cpp
│   │   │   │       ├── Fluxes.hpp
│   │   │   │       ├── Instantiations/
│   │   │   │       │   ├── CMakeLists.txt
│   │   │   │       │   ├── Events.cpp
│   │   │   │       │   ├── TimeStepping.cpp
│   │   │   │       │   └── VolumeTerms.cpp
│   │   │   │       ├── KastaunEtAl.hpp
│   │   │   │       ├── KastaunEtAl.tpp
│   │   │   │       ├── KastaunEtAlHydro.hpp
│   │   │   │       ├── KastaunEtAlHydro.tpp
│   │   │   │       ├── NewmanHamlin.hpp
│   │   │   │       ├── NewmanHamlin.tpp
│   │   │   │       ├── PalenzuelaEtAl.hpp
│   │   │   │       ├── PalenzuelaEtAl.tpp
│   │   │   │       ├── PrimitiveFromConservative.cpp
│   │   │   │       ├── PrimitiveFromConservative.hpp
│   │   │   │       ├── PrimitiveFromConservativeOptions.cpp
│   │   │   │       ├── PrimitiveFromConservativeOptions.hpp
│   │   │   │       ├── PrimitiveRecoveryData.hpp
│   │   │   │       ├── QuadrupoleFormula.hpp
│   │   │   │       ├── SetVariablesNeededFixingToFalse.cpp
│   │   │   │       ├── SetVariablesNeededFixingToFalse.hpp
│   │   │   │       ├── Sources.cpp
│   │   │   │       ├── Sources.hpp
│   │   │   │       ├── Subcell/
│   │   │   │       │   ├── CMakeLists.txt
│   │   │   │       │   ├── ComputeFluxes.hpp
│   │   │   │       │   ├── FixConservativesAndComputePrims.cpp
│   │   │   │       │   ├── FixConservativesAndComputePrims.hpp
│   │   │   │       │   ├── NeighborPackagedData.cpp
│   │   │   │       │   ├── NeighborPackagedData.hpp
│   │   │   │       │   ├── PrimitiveGhostData.cpp
│   │   │   │       │   ├── PrimitiveGhostData.hpp
│   │   │   │       │   ├── PrimsAfterRollback.cpp
│   │   │   │       │   ├── PrimsAfterRollback.hpp
│   │   │   │       │   ├── ResizeAndComputePrimitives.cpp
│   │   │   │       │   ├── ResizeAndComputePrimitives.hpp
│   │   │   │       │   ├── SetInitialRdmpData.cpp
│   │   │   │       │   ├── SetInitialRdmpData.hpp
│   │   │   │       │   ├── Subcell.hpp
│   │   │   │       │   ├── SwapGrTags.cpp
│   │   │   │       │   ├── SwapGrTags.hpp
│   │   │   │       │   ├── TciOnDgGrid.cpp
│   │   │   │       │   ├── TciOnDgGrid.hpp
│   │   │   │       │   ├── TciOnFdGrid.cpp
│   │   │   │       │   ├── TciOnFdGrid.hpp
│   │   │   │       │   ├── TciOptions.cpp
│   │   │   │       │   ├── TciOptions.hpp
│   │   │   │       │   └── TimeDerivative.hpp
│   │   │   │       ├── System.hpp
│   │   │   │       ├── Tags.hpp
│   │   │   │       ├── TagsDeclarations.hpp
│   │   │   │       ├── TimeDerivativeTerms.cpp
│   │   │   │       └── TimeDerivativeTerms.hpp
│   │   │   ├── NewtonianEuler/
│   │   │   │   ├── AllSolutions.hpp
│   │   │   │   ├── BoundaryConditions/
│   │   │   │   │   ├── BoundaryCondition.cpp
│   │   │   │   │   ├── BoundaryCondition.hpp
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── DemandOutgoingCharSpeeds.cpp
│   │   │   │   │   ├── DemandOutgoingCharSpeeds.hpp
│   │   │   │   │   ├── DirichletAnalytic.cpp
│   │   │   │   │   ├── DirichletAnalytic.hpp
│   │   │   │   │   ├── Factory.hpp
│   │   │   │   │   ├── Reflection.cpp
│   │   │   │   │   └── Reflection.hpp
│   │   │   │   ├── BoundaryCorrections/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── Factory.hpp
│   │   │   │   │   ├── Hll.cpp
│   │   │   │   │   ├── Hll.hpp
│   │   │   │   │   ├── Hllc.cpp
│   │   │   │   │   ├── Hllc.hpp
│   │   │   │   │   ├── NamespaceDocs.hpp
│   │   │   │   │   ├── Rusanov.cpp
│   │   │   │   │   └── Rusanov.hpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Characteristics.cpp
│   │   │   │   ├── Characteristics.hpp
│   │   │   │   ├── ConservativeFromPrimitive.cpp
│   │   │   │   ├── ConservativeFromPrimitive.hpp
│   │   │   │   ├── FiniteDifference/
│   │   │   │   │   ├── AoWeno.cpp
│   │   │   │   │   ├── AoWeno.hpp
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── Factory.hpp
│   │   │   │   │   ├── FiniteDifference.hpp
│   │   │   │   │   ├── MonotonisedCentral.cpp
│   │   │   │   │   ├── MonotonisedCentral.hpp
│   │   │   │   │   ├── ReconstructWork.hpp
│   │   │   │   │   ├── ReconstructWork.tpp
│   │   │   │   │   ├── Reconstructor.cpp
│   │   │   │   │   ├── Reconstructor.hpp
│   │   │   │   │   ├── RegisterDerivedWithCharm.cpp
│   │   │   │   │   ├── RegisterDerivedWithCharm.hpp
│   │   │   │   │   └── Tag.hpp
│   │   │   │   ├── Fluxes.cpp
│   │   │   │   ├── Fluxes.hpp
│   │   │   │   ├── Instantiations/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── Events.cpp
│   │   │   │   │   └── TimeStepping.cpp
│   │   │   │   ├── InternalEnergyDensity.cpp
│   │   │   │   ├── InternalEnergyDensity.hpp
│   │   │   │   ├── KineticEnergyDensity.cpp
│   │   │   │   ├── KineticEnergyDensity.hpp
│   │   │   │   ├── Limiters/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── CharacteristicHelpers.cpp
│   │   │   │   │   ├── CharacteristicHelpers.hpp
│   │   │   │   │   ├── Flattener.cpp
│   │   │   │   │   ├── Flattener.hpp
│   │   │   │   │   ├── KxrcfTci.hpp
│   │   │   │   │   ├── Minmod.cpp
│   │   │   │   │   ├── Minmod.hpp
│   │   │   │   │   ├── VariablesToLimit.cpp
│   │   │   │   │   ├── VariablesToLimit.hpp
│   │   │   │   │   ├── Weno.cpp
│   │   │   │   │   └── Weno.hpp
│   │   │   │   ├── MachNumber.cpp
│   │   │   │   ├── MachNumber.hpp
│   │   │   │   ├── PrimitiveFromConservative.cpp
│   │   │   │   ├── PrimitiveFromConservative.hpp
│   │   │   │   ├── RamPressure.cpp
│   │   │   │   ├── RamPressure.hpp
│   │   │   │   ├── SoundSpeedSquared.cpp
│   │   │   │   ├── SoundSpeedSquared.hpp
│   │   │   │   ├── Sources/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── Factory.hpp
│   │   │   │   │   ├── LaneEmdenGravitationalField.cpp
│   │   │   │   │   ├── LaneEmdenGravitationalField.hpp
│   │   │   │   │   ├── NoSource.cpp
│   │   │   │   │   ├── NoSource.hpp
│   │   │   │   │   ├── Source.hpp
│   │   │   │   │   ├── UniformAcceleration.cpp
│   │   │   │   │   ├── UniformAcceleration.hpp
│   │   │   │   │   ├── VortexPerturbation.cpp
│   │   │   │   │   └── VortexPerturbation.hpp
│   │   │   │   ├── SpecificKineticEnergy.cpp
│   │   │   │   ├── SpecificKineticEnergy.hpp
│   │   │   │   ├── Subcell/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── ComputeFluxes.hpp
│   │   │   │   │   ├── NeighborPackagedData.cpp
│   │   │   │   │   ├── NeighborPackagedData.hpp
│   │   │   │   │   ├── PrimitiveGhostData.cpp
│   │   │   │   │   ├── PrimitiveGhostData.hpp
│   │   │   │   │   ├── PrimsAfterRollback.cpp
│   │   │   │   │   ├── PrimsAfterRollback.hpp
│   │   │   │   │   ├── ResizeAndComputePrimitives.cpp
│   │   │   │   │   ├── ResizeAndComputePrimitives.hpp
│   │   │   │   │   ├── SetInitialRdmpData.cpp
│   │   │   │   │   ├── SetInitialRdmpData.hpp
│   │   │   │   │   ├── Subcell.hpp
│   │   │   │   │   ├── TciOnDgGrid.cpp
│   │   │   │   │   ├── TciOnDgGrid.hpp
│   │   │   │   │   ├── TciOnFdGrid.cpp
│   │   │   │   │   ├── TciOnFdGrid.hpp
│   │   │   │   │   └── TimeDerivative.hpp
│   │   │   │   ├── System.hpp
│   │   │   │   ├── Tags.hpp
│   │   │   │   ├── TagsDeclarations.hpp
│   │   │   │   └── TimeDerivativeTerms.hpp
│   │   │   ├── RadiationTransport/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── M1Grey/
│   │   │   │   │   ├── BoundaryConditions/
│   │   │   │   │   │   ├── BoundaryCondition.hpp
│   │   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   │   ├── DirichletAnalytic.cpp
│   │   │   │   │   │   ├── DirichletAnalytic.hpp
│   │   │   │   │   │   └── Factory.hpp
│   │   │   │   │   ├── BoundaryCorrections/
│   │   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   │   ├── Factory.hpp
│   │   │   │   │   │   ├── NamespaceDocs.hpp
│   │   │   │   │   │   ├── Rusanov.cpp
│   │   │   │   │   │   └── Rusanov.hpp
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── Characteristics.cpp
│   │   │   │   │   ├── Characteristics.hpp
│   │   │   │   │   ├── Fluxes.cpp
│   │   │   │   │   ├── Fluxes.hpp
│   │   │   │   │   ├── Initialize.hpp
│   │   │   │   │   ├── Instantiations/
│   │   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   │   ├── Events.cpp
│   │   │   │   │   │   ├── Imex.cpp
│   │   │   │   │   │   └── TimeStepping.cpp
│   │   │   │   │   ├── M1Closure.cpp
│   │   │   │   │   ├── M1Closure.hpp
│   │   │   │   │   ├── M1HydroCoupling.cpp
│   │   │   │   │   ├── M1HydroCoupling.hpp
│   │   │   │   │   ├── Sources.cpp
│   │   │   │   │   ├── Sources.hpp
│   │   │   │   │   ├── System.hpp
│   │   │   │   │   ├── Tags.hpp
│   │   │   │   │   └── TimeDerivativeTerms.hpp
│   │   │   │   ├── NoNeutrinos/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   └── System.hpp
│   │   │   │   └── Tags.hpp
│   │   │   ├── ScalarAdvection/
│   │   │   │   ├── BoundaryConditions/
│   │   │   │   │   ├── BoundaryCondition.cpp
│   │   │   │   │   ├── BoundaryCondition.hpp
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   └── Factory.hpp
│   │   │   │   ├── BoundaryCorrections/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── Factory.hpp
│   │   │   │   │   ├── NamespaceDocs.hpp
│   │   │   │   │   ├── Rusanov.cpp
│   │   │   │   │   └── Rusanov.hpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Characteristics.cpp
│   │   │   │   ├── Characteristics.hpp
│   │   │   │   ├── FiniteDifference/
│   │   │   │   │   ├── AoWeno.cpp
│   │   │   │   │   ├── AoWeno.hpp
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── Factory.hpp
│   │   │   │   │   ├── FiniteDifference.hpp
│   │   │   │   │   ├── MonotonisedCentral.cpp
│   │   │   │   │   ├── MonotonisedCentral.hpp
│   │   │   │   │   ├── ReconstructWork.hpp
│   │   │   │   │   ├── ReconstructWork.tpp
│   │   │   │   │   ├── Reconstructor.cpp
│   │   │   │   │   ├── Reconstructor.hpp
│   │   │   │   │   ├── RegisterDerivedWithCharm.cpp
│   │   │   │   │   ├── RegisterDerivedWithCharm.hpp
│   │   │   │   │   └── Tags.hpp
│   │   │   │   ├── Fluxes.cpp
│   │   │   │   ├── Fluxes.hpp
│   │   │   │   ├── Instantiations/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── Events.cpp
│   │   │   │   │   ├── TimeStepping.cpp
│   │   │   │   │   └── VolumeTerms.cpp
│   │   │   │   ├── Subcell/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── ComputeFluxes.hpp
│   │   │   │   │   ├── GhostData.cpp
│   │   │   │   │   ├── GhostData.hpp
│   │   │   │   │   ├── NeighborPackagedData.cpp
│   │   │   │   │   ├── NeighborPackagedData.hpp
│   │   │   │   │   ├── SetInitialRdmpData.cpp
│   │   │   │   │   ├── SetInitialRdmpData.hpp
│   │   │   │   │   ├── Subcell.hpp
│   │   │   │   │   ├── TciOnDgGrid.cpp
│   │   │   │   │   ├── TciOnDgGrid.hpp
│   │   │   │   │   ├── TciOnFdGrid.cpp
│   │   │   │   │   ├── TciOnFdGrid.hpp
│   │   │   │   │   ├── TciOptions.cpp
│   │   │   │   │   ├── TciOptions.hpp
│   │   │   │   │   ├── TimeDerivative.hpp
│   │   │   │   │   └── VelocityAtFace.hpp
│   │   │   │   ├── System.hpp
│   │   │   │   ├── Tags.hpp
│   │   │   │   ├── TimeDerivativeTerms.cpp
│   │   │   │   ├── TimeDerivativeTerms.hpp
│   │   │   │   ├── VelocityField.cpp
│   │   │   │   └── VelocityField.hpp
│   │   │   ├── ScalarTensor/
│   │   │   │   ├── Actions/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── SetInitialData.cpp
│   │   │   │   │   └── SetInitialData.hpp
│   │   │   │   ├── BoundaryConditions/
│   │   │   │   │   ├── BoundaryCondition.cpp
│   │   │   │   │   ├── BoundaryCondition.hpp
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── ConstraintPreserving.cpp
│   │   │   │   │   ├── ConstraintPreserving.hpp
│   │   │   │   │   ├── DemandOutgoingCharSpeeds.cpp
│   │   │   │   │   ├── DemandOutgoingCharSpeeds.hpp
│   │   │   │   │   ├── DirichletAnalytic.cpp
│   │   │   │   │   ├── DirichletAnalytic.hpp
│   │   │   │   │   └── Factory.hpp
│   │   │   │   ├── BoundaryCorrections/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── Factory.hpp
│   │   │   │   │   ├── NamespaceDocs.hpp
│   │   │   │   │   └── ProductOfCorrections.hpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Characteristics.hpp
│   │   │   │   ├── Constraints.hpp
│   │   │   │   ├── Initialize.hpp
│   │   │   │   ├── Instantiations/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── Events.cpp
│   │   │   │   │   ├── TimeStepping.cpp
│   │   │   │   │   └── VolumeTerms.cpp
│   │   │   │   ├── System.hpp
│   │   │   │   ├── Tags.hpp
│   │   │   │   ├── TimeDerivative.cpp
│   │   │   │   └── TimeDerivative.hpp
│   │   │   └── ScalarWave/
│   │   │       ├── BoundaryConditions/
│   │   │       │   ├── BoundaryCondition.cpp
│   │   │       │   ├── BoundaryCondition.hpp
│   │   │       │   ├── CMakeLists.txt
│   │   │       │   ├── ConstraintPreservingSphericalRadiation.cpp
│   │   │       │   ├── ConstraintPreservingSphericalRadiation.hpp
│   │   │       │   ├── DirichletAnalytic.cpp
│   │   │       │   ├── DirichletAnalytic.hpp
│   │   │       │   ├── Factory.hpp
│   │   │       │   ├── SphericalRadiation.cpp
│   │   │       │   └── SphericalRadiation.hpp
│   │   │       ├── BoundaryCorrections/
│   │   │       │   ├── CMakeLists.txt
│   │   │       │   ├── Factory.hpp
│   │   │       │   ├── NamespaceDocs.hpp
│   │   │       │   ├── UpwindPenalty.cpp
│   │   │       │   └── UpwindPenalty.hpp
│   │   │       ├── CMakeLists.txt
│   │   │       ├── Characteristics.cpp
│   │   │       ├── Characteristics.hpp
│   │   │       ├── Constraints.cpp
│   │   │       ├── Constraints.hpp
│   │   │       ├── EnergyDensity.cpp
│   │   │       ├── EnergyDensity.hpp
│   │   │       ├── Equations.cpp
│   │   │       ├── Equations.hpp
│   │   │       ├── Initialize.hpp
│   │   │       ├── Instantiations/
│   │   │       │   ├── CMakeLists.txt
│   │   │       │   ├── Events.cpp
│   │   │       │   ├── TimeStepping.cpp
│   │   │       │   └── VolumeTerms.cpp
│   │   │       ├── MomentumDensity.cpp
│   │   │       ├── MomentumDensity.hpp
│   │   │       ├── System.hpp
│   │   │       ├── Tags.hpp
│   │   │       ├── TagsDeclarations.hpp
│   │   │       ├── TimeDerivative.cpp
│   │   │       └── TimeDerivative.hpp
│   │   ├── Tags/
│   │   │   ├── CMakeLists.txt
│   │   │   └── Filter.hpp
│   │   ├── Tags.hpp
│   │   ├── TagsDomain.cpp
│   │   ├── TagsDomain.hpp
│   │   ├── Triggers/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── SeparationLessThan.cpp
│   │   │   └── SeparationLessThan.hpp
│   │   ├── TypeTraits.hpp
│   │   └── VariableFixing/
│   │       ├── Actions.hpp
│   │       ├── CMakeLists.txt
│   │       ├── FixToAtmosphere.cpp
│   │       ├── FixToAtmosphere.hpp
│   │       ├── LimitLorentzFactor.cpp
│   │       ├── LimitLorentzFactor.hpp
│   │       ├── ParameterizedDeleptonization.cpp
│   │       ├── ParameterizedDeleptonization.hpp
│   │       ├── RadiallyFallingFloor.cpp
│   │       ├── RadiallyFallingFloor.hpp
│   │       └── Tags.hpp
│   ├── Executables/
│   │   ├── Benchmark/
│   │   │   ├── Benchmark.cpp
│   │   │   └── CMakeLists.txt
│   │   ├── CMakeLists.txt
│   │   ├── ConvertComposeTable/
│   │   │   ├── CMakeLists.txt
│   │   │   └── ConvertComposeTable.cpp
│   │   ├── DebugPreprocessor/
│   │   │   ├── CMakeLists.txt
│   │   │   └── DebugPreprocessor.cpp
│   │   ├── Examples/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── HelloWorld/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   └── SingletonHelloWorld.cpp
│   │   │   ├── HelloWorldNoCharm/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   └── HelloWorld.cpp
│   │   │   ├── ParallelTutorial/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   └── MinimalExecutable.cpp
│   │   │   ├── PiMonteCarlo/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── PiMonteCarlo.cpp
│   │   │   │   └── PiMonteCarloTutorial.cpp
│   │   │   └── RandomAmr/
│   │   │       ├── CMakeLists.txt
│   │   │       ├── InitializeDomain.hpp
│   │   │       ├── RandomAmr.cpp
│   │   │       └── RandomAmr.hpp
│   │   ├── ExportCoordinates/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── ExportCoordinates.cpp
│   │   │   └── ExportCoordinates.hpp
│   │   ├── ExportEquationOfStateForRotNS/
│   │   │   ├── CMakeLists.txt
│   │   │   └── ExportEquationOfStateForRotNS.cpp
│   │   ├── ParallelInfo/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── ParallelInfo.ci
│   │   │   ├── ParallelInfo.cpp
│   │   │   └── ParallelInfo.hpp
│   │   ├── PreprocessCceWorldtube/
│   │   │   ├── CMakeLists.txt
│   │   │   └── PreprocessCceWorldtube.cpp
│   │   ├── TimeStepperSummary/
│   │   │   ├── CMakeLists.txt
│   │   │   └── TimeStepperSummary.cpp
│   │   └── WriteCceWorldtubeCoordsToFile/
│   │       ├── CMakeLists.txt
│   │       └── WriteCceWorldtubeCoordsToFile.cpp
│   ├── IO/
│   │   ├── CMakeLists.txt
│   │   ├── ComposeTable.cpp
│   │   ├── ComposeTable.hpp
│   │   ├── Connectivity.cpp
│   │   ├── Connectivity.hpp
│   │   ├── Exporter/
│   │   │   ├── BundledExporter.cpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Exporter.cpp
│   │   │   ├── Exporter.hpp
│   │   │   ├── PointwiseInterpolator.cpp
│   │   │   ├── PointwiseInterpolator.hpp
│   │   │   ├── Python/
│   │   │   │   ├── Bindings.cpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── InterpolateToPoints.py
│   │   │   │   └── __init__.py
│   │   │   ├── SelectObservation.cpp
│   │   │   ├── SelectObservation.hpp
│   │   │   ├── SpacetimeInterpolator.cpp
│   │   │   └── SpacetimeInterpolator.hpp
│   │   ├── External/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── InterpolateFromFuka.cpp
│   │   │   ├── InterpolateFromFuka.hpp
│   │   │   └── InterpolateFromSpec.hpp
│   │   ├── H5/
│   │   │   ├── AccessType.cpp
│   │   │   ├── AccessType.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Cce.cpp
│   │   │   ├── Cce.hpp
│   │   │   ├── CheckH5.hpp
│   │   │   ├── CheckH5PropertiesMatch.cpp
│   │   │   ├── CheckH5PropertiesMatch.hpp
│   │   │   ├── CombineH5.cpp
│   │   │   ├── CombineH5.hpp
│   │   │   ├── Dat.cpp
│   │   │   ├── Dat.hpp
│   │   │   ├── EosTable.cpp
│   │   │   ├── EosTable.hpp
│   │   │   ├── ExtendConnectivityHelpers.cpp
│   │   │   ├── ExtendConnectivityHelpers.hpp
│   │   │   ├── File.cpp
│   │   │   ├── File.hpp
│   │   │   ├── Header.cpp
│   │   │   ├── Header.hpp
│   │   │   ├── Helpers.cpp
│   │   │   ├── Helpers.hpp
│   │   │   ├── Object.hpp
│   │   │   ├── OpenGroup.cpp
│   │   │   ├── OpenGroup.hpp
│   │   │   ├── Python/
│   │   │   │   ├── Bindings.cpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Cce.cpp
│   │   │   │   ├── Cce.hpp
│   │   │   │   ├── CombineH5.cpp
│   │   │   │   ├── CombineH5.hpp
│   │   │   │   ├── CombineH5.py
│   │   │   │   ├── CombineH5Dat.py
│   │   │   │   ├── Dat.cpp
│   │   │   │   ├── Dat.hpp
│   │   │   │   ├── DeleteSubfiles.py
│   │   │   │   ├── ExtendConnectivityData.py
│   │   │   │   ├── ExtractDatFromH5.py
│   │   │   │   ├── ExtractInputSourceYamlFromH5.py
│   │   │   │   ├── File.cpp
│   │   │   │   ├── File.hpp
│   │   │   │   ├── FunctionsOfTimeFromVolume.py
│   │   │   │   ├── InterpolateToMesh.py
│   │   │   │   ├── IterElements.py
│   │   │   │   ├── OpenVolfiles.py
│   │   │   │   ├── ReadH5.py
│   │   │   │   ├── TensorData.cpp
│   │   │   │   ├── TensorData.hpp
│   │   │   │   ├── TransformVolumeData.py
│   │   │   │   ├── VolumeData.cpp
│   │   │   │   ├── VolumeData.hpp
│   │   │   │   └── __init__.py
│   │   │   ├── SourceArchive.cpp
│   │   │   ├── SourceArchive.hpp
│   │   │   ├── SpectralIo.cpp
│   │   │   ├── SpectralIo.hpp
│   │   │   ├── StellarCollapseEos.cpp
│   │   │   ├── StellarCollapseEos.hpp
│   │   │   ├── TensorData.cpp
│   │   │   ├── TensorData.hpp
│   │   │   ├── Type.hpp
│   │   │   ├── Version.cpp
│   │   │   ├── Version.hpp
│   │   │   ├── VolumeData.cpp
│   │   │   ├── VolumeData.hpp
│   │   │   └── Wrappers.hpp
│   │   ├── Importers/
│   │   │   ├── Actions/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── ReadVolumeData.hpp
│   │   │   │   ├── ReceiveVolumeData.hpp
│   │   │   │   └── RegisterWithElementDataReader.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── ElementDataReader.hpp
│   │   │   ├── ObservationSelector.cpp
│   │   │   ├── ObservationSelector.hpp
│   │   │   └── Tags.hpp
│   │   ├── Logging/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Tags.hpp
│   │   │   ├── Verbosity.cpp
│   │   │   └── Verbosity.hpp
│   │   └── Observer/
│   │       ├── Actions/
│   │       │   ├── CMakeLists.txt
│   │       │   ├── GetLockPointer.hpp
│   │       │   ├── ObserverRegistration.hpp
│   │       │   ├── RegisterEvents.hpp
│   │       │   ├── RegisterSingleton.hpp
│   │       │   └── RegisterWithObservers.hpp
│   │       ├── CMakeLists.txt
│   │       ├── GetSectionObservationKey.hpp
│   │       ├── Helpers.hpp
│   │       ├── Initialize.hpp
│   │       ├── ObservationId.cpp
│   │       ├── ObservationId.hpp
│   │       ├── ObserverComponent.hpp
│   │       ├── Protocols/
│   │       │   ├── CMakeLists.txt
│   │       │   └── ReductionDataFormatter.hpp
│   │       ├── ReductionActions.cpp
│   │       ├── ReductionActions.hpp
│   │       ├── Tags.hpp
│   │       ├── TypeOfObservation.cpp
│   │       ├── TypeOfObservation.hpp
│   │       ├── VolumeActions.cpp
│   │       ├── VolumeActions.hpp
│   │       └── WriteSimpleData.hpp
│   ├── Informer/
│   │   ├── CMakeLists.txt
│   │   ├── InfoAtCompile.cpp
│   │   ├── InfoAtLink.cpp
│   │   ├── InfoAtLinkExtractFlags.py
│   │   ├── InfoFromBuild.hpp
│   │   ├── Informer.cpp
│   │   ├── Informer.hpp
│   │   └── Python/
│   │       ├── Bindings.cpp
│   │       ├── CMakeLists.txt
│   │       ├── InfoAtCompile.cpp
│   │       ├── InfoAtCompile.hpp
│   │       └── __init__.py
│   ├── NumericalAlgorithms/
│   │   ├── CMakeLists.txt
│   │   ├── Convergence/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Convergence.hpp
│   │   │   ├── Criteria.cpp
│   │   │   ├── Criteria.hpp
│   │   │   ├── HasConverged.cpp
│   │   │   ├── HasConverged.hpp
│   │   │   ├── Reason.cpp
│   │   │   ├── Reason.hpp
│   │   │   └── Tags.hpp
│   │   ├── DiscontinuousGalerkin/
│   │   │   ├── ApplyMassMatrix.cpp
│   │   │   ├── ApplyMassMatrix.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Formulation.cpp
│   │   │   ├── Formulation.hpp
│   │   │   ├── HasReceivedFromAllMortars.hpp
│   │   │   ├── InterpolateFromBoundary.cpp
│   │   │   ├── InterpolateFromBoundary.hpp
│   │   │   ├── LiftFlux.hpp
│   │   │   ├── LiftFromBoundary.cpp
│   │   │   ├── LiftFromBoundary.hpp
│   │   │   ├── MetricIdentityJacobian.cpp
│   │   │   ├── MetricIdentityJacobian.hpp
│   │   │   ├── MortarHelpers.cpp
│   │   │   ├── MortarHelpers.hpp
│   │   │   ├── MortarInterpolator.cpp
│   │   │   ├── MortarInterpolator.hpp
│   │   │   ├── NormalDotFlux.hpp
│   │   │   ├── ProjectToBoundary.hpp
│   │   │   ├── SimpleBoundaryData.hpp
│   │   │   ├── SimpleMortarData.hpp
│   │   │   ├── Tags/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Formulation.cpp
│   │   │   │   ├── Formulation.hpp
│   │   │   │   └── OptionsGroup.hpp
│   │   │   └── Tags.hpp
│   │   ├── FiniteDifference/
│   │   │   ├── AoWeno.cpp
│   │   │   ├── AoWeno.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── DerivativeOrder.cpp
│   │   │   ├── DerivativeOrder.hpp
│   │   │   ├── FallbackReconstructorType.cpp
│   │   │   ├── FallbackReconstructorType.hpp
│   │   │   ├── Filter.cpp
│   │   │   ├── Filter.hpp
│   │   │   ├── FiniteDifference.hpp
│   │   │   ├── HighOrderFluxCorrection.hpp
│   │   │   ├── Minmod.cpp
│   │   │   ├── Minmod.hpp
│   │   │   ├── MonotonicityPreserving5.cpp
│   │   │   ├── MonotonicityPreserving5.hpp
│   │   │   ├── MonotonisedCentral.cpp
│   │   │   ├── MonotonisedCentral.hpp
│   │   │   ├── NeighborDataAsVariables.hpp
│   │   │   ├── NonUniform1D.cpp
│   │   │   ├── NonUniform1D.hpp
│   │   │   ├── PartialDerivatives.cpp
│   │   │   ├── PartialDerivatives.hpp
│   │   │   ├── PartialDerivatives.tpp
│   │   │   ├── PositivityPreservingAdaptiveOrder.cpp
│   │   │   ├── PositivityPreservingAdaptiveOrder.hpp
│   │   │   ├── Reconstruct.hpp
│   │   │   ├── Reconstruct.tpp
│   │   │   ├── SecondPartialDerivatives.cpp
│   │   │   ├── SecondPartialDerivatives.hpp
│   │   │   ├── SecondPartialDerivatives.tpp
│   │   │   ├── Unlimited.cpp
│   │   │   ├── Unlimited.hpp
│   │   │   ├── Wcns5z.cpp
│   │   │   └── Wcns5z.hpp
│   │   ├── Integration/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── GslQuadAdaptive.cpp
│   │   │   └── GslQuadAdaptive.hpp
│   │   ├── Interpolation/
│   │   │   ├── BarycentricRational.cpp
│   │   │   ├── BarycentricRational.hpp
│   │   │   ├── BarycentricRationalSpanInterpolator.cpp
│   │   │   ├── BarycentricRationalSpanInterpolator.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── CardinalInterpolator.cpp
│   │   │   ├── CardinalInterpolator.hpp
│   │   │   ├── CubicSpanInterpolator.cpp
│   │   │   ├── CubicSpanInterpolator.hpp
│   │   │   ├── CubicSpline.cpp
│   │   │   ├── CubicSpline.hpp
│   │   │   ├── IrregularInterpolant.cpp
│   │   │   ├── IrregularInterpolant.hpp
│   │   │   ├── LagrangePolynomial.hpp
│   │   │   ├── LinearLeastSquares.cpp
│   │   │   ├── LinearLeastSquares.hpp
│   │   │   ├── LinearRegression.cpp
│   │   │   ├── LinearRegression.hpp
│   │   │   ├── LinearSpanInterpolator.cpp
│   │   │   ├── LinearSpanInterpolator.hpp
│   │   │   ├── MultiLinearSpanInterpolation.hpp
│   │   │   ├── PolynomialInterpolation.cpp
│   │   │   ├── PolynomialInterpolation.hpp
│   │   │   ├── PredictedZeroCrossing.cpp
│   │   │   ├── PredictedZeroCrossing.hpp
│   │   │   ├── Python/
│   │   │   │   ├── BarycentricRational.cpp
│   │   │   │   ├── BarycentricRational.hpp
│   │   │   │   ├── Bindings.cpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── CubicSpline.cpp
│   │   │   │   ├── CubicSpline.hpp
│   │   │   │   ├── IrregularInterpolant.cpp
│   │   │   │   ├── IrregularInterpolant.hpp
│   │   │   │   ├── RegularGridInterpolant.cpp
│   │   │   │   ├── RegularGridInterpolant.hpp
│   │   │   │   └── __init__.py
│   │   │   ├── RegularGridInterpolant.cpp
│   │   │   ├── RegularGridInterpolant.hpp
│   │   │   ├── SpanInterpolator.cpp
│   │   │   ├── SpanInterpolator.hpp
│   │   │   ├── ZeroCrossingPredictor.cpp
│   │   │   └── ZeroCrossingPredictor.hpp
│   │   ├── LinearAlgebra/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── FindGeneralizedEigenvalues.cpp
│   │   │   └── FindGeneralizedEigenvalues.hpp
│   │   ├── LinearOperators/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── CoefficientTransforms.cpp
│   │   │   ├── CoefficientTransforms.hpp
│   │   │   ├── DefiniteIntegral.cpp
│   │   │   ├── DefiniteIntegral.hpp
│   │   │   ├── Divergence.cpp
│   │   │   ├── Divergence.hpp
│   │   │   ├── Divergence.tpp
│   │   │   ├── ExponentialFilter.cpp
│   │   │   ├── ExponentialFilter.hpp
│   │   │   ├── IndefiniteIntegral.cpp
│   │   │   ├── IndefiniteIntegral.hpp
│   │   │   ├── Linearize.cpp
│   │   │   ├── Linearize.hpp
│   │   │   ├── MeanValue.cpp
│   │   │   ├── MeanValue.hpp
│   │   │   ├── PartialDerivatives.cpp
│   │   │   ├── PartialDerivatives.hpp
│   │   │   ├── PartialDerivatives.tpp
│   │   │   ├── PowerMonitors.cpp
│   │   │   ├── PowerMonitors.hpp
│   │   │   ├── Python/
│   │   │   │   ├── Bindings.cpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── DefiniteIntegral.cpp
│   │   │   │   ├── DefiniteIntegral.hpp
│   │   │   │   ├── PartialDerivatives.cpp
│   │   │   │   ├── PartialDerivatives.hpp
│   │   │   │   ├── PowerMonitors.cpp
│   │   │   │   ├── PowerMonitors.hpp
│   │   │   │   └── __init__.py
│   │   │   ├── WeakDivergence.cpp
│   │   │   └── WeakDivergence.hpp
│   │   ├── LinearSolver/
│   │   │   ├── BuildMatrix.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── ExplicitInverse.hpp
│   │   │   ├── Gmres.cpp
│   │   │   ├── Gmres.hpp
│   │   │   ├── InnerProduct.hpp
│   │   │   ├── Lapack.cpp
│   │   │   ├── Lapack.hpp
│   │   │   └── LinearSolver.hpp
│   │   ├── OdeIntegration/
│   │   │   ├── CMakeLists.txt
│   │   │   └── OdeIntegration.hpp
│   │   ├── RootFinding/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── GslMultiRoot.cpp
│   │   │   ├── GslMultiRoot.hpp
│   │   │   ├── LICENSE_1_0.txt
│   │   │   ├── NewtonRaphson.hpp
│   │   │   ├── QuadraticEquation.cpp
│   │   │   ├── QuadraticEquation.hpp
│   │   │   ├── RootBracketing.hpp
│   │   │   └── TOMS748.hpp
│   │   ├── SpatialDiscretization/
│   │   │   ├── CMakeLists.txt
│   │   │   └── OptionTags.hpp
│   │   ├── Spectral/
│   │   │   ├── BarycentricWeights.cpp
│   │   │   ├── BarycentricWeights.hpp
│   │   │   ├── Basis.cpp
│   │   │   ├── Basis.hpp
│   │   │   ├── BasisFunctionNormalizationSquare.hpp
│   │   │   ├── BasisFunctionValue.hpp
│   │   │   ├── BasisFunctions/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Chebyshev.cpp
│   │   │   │   ├── Chebyshev.hpp
│   │   │   │   ├── Fourier.cpp
│   │   │   │   ├── Fourier.hpp
│   │   │   │   ├── Jacobi.cpp
│   │   │   │   ├── Jacobi.hpp
│   │   │   │   ├── Legendre.cpp
│   │   │   │   ├── Zernike.cpp
│   │   │   │   └── Zernike.hpp
│   │   │   ├── BoundaryInterpolationMatrices.cpp
│   │   │   ├── BoundaryInterpolationMatrices.hpp
│   │   │   ├── BoundaryInterpolationTerm.cpp
│   │   │   ├── BoundaryInterpolationTerm.hpp
│   │   │   ├── BoundaryLiftingTerm.cpp
│   │   │   ├── BoundaryLiftingTerm.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Cartoon.cpp
│   │   │   ├── Clenshaw.hpp
│   │   │   ├── CollocationPoints.cpp
│   │   │   ├── CollocationPoints.hpp
│   │   │   ├── CollocationPointsAndWeights.cpp
│   │   │   ├── CollocationPointsAndWeights.hpp
│   │   │   ├── DifferentiationMatrix.cpp
│   │   │   ├── DifferentiationMatrix.hpp
│   │   │   ├── Filtering.cpp
│   │   │   ├── Filtering.hpp
│   │   │   ├── FiniteDifference.cpp
│   │   │   ├── GetSpectralQuantityForMesh.hpp
│   │   │   ├── IntegrationMatrix.cpp
│   │   │   ├── IntegrationMatrix.hpp
│   │   │   ├── InterpolationMatrix.cpp
│   │   │   ├── InterpolationMatrix.hpp
│   │   │   ├── InterpolationWeights.cpp
│   │   │   ├── InterpolationWeights.hpp
│   │   │   ├── InverseWeightFunctionValues.hpp
│   │   │   ├── Legendre.hpp
│   │   │   ├── LinearFilteringMatrix.cpp
│   │   │   ├── LinearFilteringMatrix.hpp
│   │   │   ├── LogicalCoordinates.cpp
│   │   │   ├── LogicalCoordinates.hpp
│   │   │   ├── MaximumNumberOfPoints.hpp
│   │   │   ├── Mesh.cpp
│   │   │   ├── Mesh.hpp
│   │   │   ├── MinimumNumberOfPoints.hpp
│   │   │   ├── ModalToNodalMatrix.cpp
│   │   │   ├── ModalToNodalMatrix.hpp
│   │   │   ├── Namespace.hpp
│   │   │   ├── NodalToModalMatrix.cpp
│   │   │   ├── NodalToModalMatrix.hpp
│   │   │   ├── Parity.cpp
│   │   │   ├── Parity.hpp
│   │   │   ├── ParityFromSymmetry.hpp
│   │   │   ├── PrecomputedSpectralQuantity.hpp
│   │   │   ├── Projection.cpp
│   │   │   ├── Projection.hpp
│   │   │   ├── Python/
│   │   │   │   ├── Bindings.cpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── LogicalCoordinates.cpp
│   │   │   │   ├── LogicalCoordinates.hpp
│   │   │   │   ├── Mesh.cpp
│   │   │   │   ├── Mesh.hpp
│   │   │   │   ├── Spectral.cpp
│   │   │   │   ├── Spectral.hpp
│   │   │   │   └── __init__.py
│   │   │   ├── Quadrature.cpp
│   │   │   ├── Quadrature.hpp
│   │   │   ├── QuadratureWeights.cpp
│   │   │   ├── QuadratureWeights.hpp
│   │   │   ├── SegmentSize.cpp
│   │   │   ├── SegmentSize.hpp
│   │   │   └── SpectralQuantityForMesh.hpp
│   │   ├── SphericalHarmonics/
│   │   │   ├── AngularOrdering.cpp
│   │   │   ├── AngularOrdering.hpp
│   │   │   ├── ApplyTensorYlmFilter.hpp
│   │   │   ├── ApplyTensorYlmFilter.tpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── ChangeCenterOfStrahlkorper.cpp
│   │   │   ├── ChangeCenterOfStrahlkorper.hpp
│   │   │   ├── IO/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── FillYlmLegendAndData.cpp
│   │   │   │   ├── FillYlmLegendAndData.hpp
│   │   │   │   ├── ReadSurfaceYlm.cpp
│   │   │   │   ├── ReadSurfaceYlm.hpp
│   │   │   │   ├── StrahlkorperCoordsToTextFile.cpp
│   │   │   │   ├── StrahlkorperCoordsToTextFile.hpp
│   │   │   │   └── StrahlkorperFromFile.cpp
│   │   │   ├── Python/
│   │   │   │   ├── Bindings.cpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Spherepack.cpp
│   │   │   │   ├── Spherepack.hpp
│   │   │   │   ├── Strahlkorper.cpp
│   │   │   │   ├── Strahlkorper.hpp
│   │   │   │   ├── StrahlkorperFunctions.cpp
│   │   │   │   ├── StrahlkorperFunctions.hpp
│   │   │   │   └── __init__.py
│   │   │   ├── RealSphericalHarmonics.cpp
│   │   │   ├── RealSphericalHarmonics.hpp
│   │   │   ├── Spherepack.cpp
│   │   │   ├── Spherepack.hpp
│   │   │   ├── SpherepackCache.cpp
│   │   │   ├── SpherepackCache.hpp
│   │   │   ├── SpherepackHelper.cpp
│   │   │   ├── SpherepackHelper.hpp
│   │   │   ├── SpherepackIterator.cpp
│   │   │   ├── SpherepackIterator.hpp
│   │   │   ├── Strahlkorper.cpp
│   │   │   ├── Strahlkorper.hpp
│   │   │   ├── StrahlkorperFunctions.cpp
│   │   │   ├── StrahlkorperFunctions.hpp
│   │   │   ├── Tags.cpp
│   │   │   ├── Tags.hpp
│   │   │   ├── TagsDeclarations.hpp
│   │   │   ├── TagsTypeAliases.hpp
│   │   │   ├── TensorYlm.hpp
│   │   │   ├── TensorYlmCartToSphere.cpp
│   │   │   ├── TensorYlmCartToSphere.hpp
│   │   │   ├── TensorYlmFilter.cpp
│   │   │   ├── TensorYlmFilter.hpp
│   │   │   ├── TensorYlmHelpers.cpp
│   │   │   ├── TensorYlmHelpers.hpp
│   │   │   ├── TensorYlmSphereToCart.cpp
│   │   │   ├── TensorYlmSphereToCart.hpp
│   │   │   ├── WignerThreeJ.cpp
│   │   │   ├── WignerThreeJ.hpp
│   │   │   ├── YlmToStf.cpp
│   │   │   └── YlmToStf.hpp
│   │   └── SpinWeightedSphericalHarmonics/
│   │       ├── CMakeLists.txt
│   │       ├── ComplexDataView.cpp
│   │       ├── ComplexDataView.hpp
│   │       ├── SwshCoefficients.cpp
│   │       ├── SwshCoefficients.hpp
│   │       ├── SwshCollocation.cpp
│   │       ├── SwshCollocation.hpp
│   │       ├── SwshDerivatives.cpp
│   │       ├── SwshDerivatives.hpp
│   │       ├── SwshFiltering.cpp
│   │       ├── SwshFiltering.hpp
│   │       ├── SwshInterpolation.cpp
│   │       ├── SwshInterpolation.hpp
│   │       ├── SwshSettings.hpp
│   │       ├── SwshTags.cpp
│   │       ├── SwshTags.hpp
│   │       ├── SwshTransform.cpp
│   │       └── SwshTransform.hpp
│   ├── Options/
│   │   ├── Auto.hpp
│   │   ├── CMakeLists.txt
│   │   ├── Comparator.cpp
│   │   ├── Comparator.hpp
│   │   ├── Context.cpp
│   │   ├── Context.hpp
│   │   ├── Factory.hpp
│   │   ├── FactoryHelpers.hpp
│   │   ├── Options.hpp
│   │   ├── OptionsDetails.hpp
│   │   ├── ParseError.hpp
│   │   ├── ParseOptions.cpp
│   │   ├── ParseOptions.hpp
│   │   ├── Protocols/
│   │   │   ├── CMakeLists.txt
│   │   │   └── FactoryCreation.hpp
│   │   ├── StdComplex.hpp
│   │   ├── String.hpp
│   │   └── Tags.hpp
│   ├── Parallel/
│   │   ├── AlgorithmExecution.hpp
│   │   ├── AlgorithmMetafunctions.hpp
│   │   ├── Algorithms/
│   │   │   ├── AlgorithmArray.ci
│   │   │   ├── AlgorithmArray.hpp
│   │   │   ├── AlgorithmArrayDeclarations.hpp
│   │   │   ├── AlgorithmGroup.ci
│   │   │   ├── AlgorithmGroup.hpp
│   │   │   ├── AlgorithmGroupDeclarations.hpp
│   │   │   ├── AlgorithmNodegroup.ci
│   │   │   ├── AlgorithmNodegroup.hpp
│   │   │   ├── AlgorithmNodegroupDeclarations.hpp
│   │   │   ├── AlgorithmSingleton.ci
│   │   │   ├── AlgorithmSingleton.hpp
│   │   │   ├── AlgorithmSingletonDeclarations.hpp
│   │   │   └── CMakeLists.txt
│   │   ├── ArrayCollection/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── CreateElementCollection.hpp
│   │   │   ├── CreateElementsUsingDistribution.hpp
│   │   │   ├── DgElementArrayMember.hpp
│   │   │   ├── DgElementArrayMemberBase.cpp
│   │   │   ├── DgElementArrayMemberBase.hpp
│   │   │   ├── DgElementCollection.hpp
│   │   │   ├── IsDgElementArrayMember.hpp
│   │   │   ├── IsDgElementCollection.hpp
│   │   │   ├── PerformAlgorithmOnElement.hpp
│   │   │   ├── ReceiveDataForElement.hpp
│   │   │   ├── SendDataToElement.hpp
│   │   │   ├── SetTerminateOnElement.hpp
│   │   │   ├── SimpleActionOnElement.hpp
│   │   │   ├── SpawnInitializeElementsInCollection.hpp
│   │   │   ├── StartPhaseOnNodegroup.hpp
│   │   │   ├── Tags/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── ElementCollection.hpp
│   │   │   │   ├── ElementLocations.hpp
│   │   │   │   ├── ElementLocationsReference.hpp
│   │   │   │   └── NumberOfElementsTerminated.hpp
│   │   │   └── TransformPdalForNodegroup.hpp
│   │   ├── ArrayComponentId.cpp
│   │   ├── ArrayComponentId.hpp
│   │   ├── ArrayIndex.hpp
│   │   ├── CMakeLists.txt
│   │   ├── Callback.hpp
│   │   ├── CharmMain.tpp
│   │   ├── CharmRegistration.cpp
│   │   ├── CharmRegistration.hpp
│   │   ├── CreateFromOptions.hpp
│   │   ├── DistributedObject.hpp
│   │   ├── DomainDiagnosticInfo.hpp
│   │   ├── ElementRegistration.hpp
│   │   ├── ExitCode.cpp
│   │   ├── ExitCode.hpp
│   │   ├── FifoCache.hpp
│   │   ├── GetSection.hpp
│   │   ├── GlobalCache.ci
│   │   ├── GlobalCache.hpp
│   │   ├── GlobalCacheDeclare.hpp
│   │   ├── InboxInserters.hpp
│   │   ├── Info.hpp
│   │   ├── InitializationFunctions.cpp
│   │   ├── InitializationFunctions.hpp
│   │   ├── InitializationTag.hpp
│   │   ├── Invoke.hpp
│   │   ├── Local.hpp
│   │   ├── Main.ci
│   │   ├── Main.cpp
│   │   ├── Main.hpp
│   │   ├── MaxInlineMethodsReached.hpp
│   │   ├── MemoryMonitor/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── MemoryMonitor.hpp
│   │   │   └── Tags.hpp
│   │   ├── MultiReaderSpinlock.hpp
│   │   ├── NodeLock.cpp
│   │   ├── NodeLock.hpp
│   │   ├── OutputInbox.hpp
│   │   ├── ParallelComponentHelpers.hpp
│   │   ├── Phase.cpp
│   │   ├── Phase.hpp
│   │   ├── PhaseControl/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── CheckpointAndExitAfterWallclock.cpp
│   │   │   ├── CheckpointAndExitAfterWallclock.hpp
│   │   │   ├── ContributeToPhaseChangeReduction.hpp
│   │   │   ├── ExecutePhaseChange.hpp
│   │   │   ├── Factory.hpp
│   │   │   ├── InitializePhaseChangeDecisionData.hpp
│   │   │   ├── PhaseChange.hpp
│   │   │   ├── PhaseControlTags.cpp
│   │   │   ├── PhaseControlTags.hpp
│   │   │   └── VisitAndReturn.hpp
│   │   ├── PhaseControlReductionHelpers.hpp
│   │   ├── PhaseDependentActionList.hpp
│   │   ├── Printf/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Printf.ci
│   │   │   ├── Printf.cpp
│   │   │   └── Printf.hpp
│   │   ├── Protocols/
│   │   │   ├── ArrayElementsAllocator.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── ElementRegistrar.hpp
│   │   │   └── RegistrationMetavariables.hpp
│   │   ├── Reduction.cpp
│   │   ├── Reduction.hpp
│   │   ├── ReductionDeclare.hpp
│   │   ├── ResourceInfo.hpp
│   │   ├── Section.hpp
│   │   ├── Spinlock.hpp
│   │   ├── StaticSpscQueue.hpp
│   │   ├── Tags/
│   │   │   ├── ArrayIndex.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── DistributedObjectTags.hpp
│   │   │   ├── InputSource.hpp
│   │   │   ├── Parallelization.hpp
│   │   │   ├── ResourceInfo.hpp
│   │   │   └── Section.hpp
│   │   └── TypeTraits.hpp
│   ├── ParallelAlgorithms/
│   │   ├── Actions/
│   │   │   ├── Actions.hpp
│   │   │   ├── AddComputeTags.hpp
│   │   │   ├── AddSimpleTags.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── FilterAction.hpp
│   │   │   ├── FunctionsOfTimeAreReady.hpp
│   │   │   ├── GetItemFromDistributedObject.hpp
│   │   │   ├── Goto.hpp
│   │   │   ├── InitializeItems.hpp
│   │   │   ├── LimiterActions.hpp
│   │   │   ├── MemoryMonitor/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── ContributeMemoryData.hpp
│   │   │   │   ├── ProcessArray.hpp
│   │   │   │   ├── ProcessGroups.hpp
│   │   │   │   └── ProcessSingleton.hpp
│   │   │   ├── MutateApply.hpp
│   │   │   ├── RandomizeVariables.hpp
│   │   │   ├── SetData.hpp
│   │   │   ├── TerminatePhase.hpp
│   │   │   └── UpdateMessageQueue.hpp
│   │   ├── Amr/
│   │   │   ├── Actions/
│   │   │   │   ├── Actions.hpp
│   │   │   │   ├── AdjustDomain.hpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── CollectDataFromChildren.hpp
│   │   │   │   ├── Component.hpp
│   │   │   │   ├── CreateChild.hpp
│   │   │   │   ├── CreateParent.hpp
│   │   │   │   ├── ElementsRegistration.hpp
│   │   │   │   ├── EvaluateRefinementCriteria.hpp
│   │   │   │   ├── Initialization.hpp
│   │   │   │   ├── Initialize.hpp
│   │   │   │   ├── InitializeChild.hpp
│   │   │   │   ├── InitializeParent.hpp
│   │   │   │   ├── RegisterCallbacks.hpp
│   │   │   │   ├── RunAmrDiagnostics.hpp
│   │   │   │   ├── SendAmrDiagnostics.hpp
│   │   │   │   ├── SendDataToChildren.hpp
│   │   │   │   └── UpdateAmrDecision.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Criteria/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Constraints.cpp
│   │   │   │   ├── Constraints.hpp
│   │   │   │   ├── Criteria.hpp
│   │   │   │   ├── Criterion.hpp
│   │   │   │   ├── DriveToTarget.cpp
│   │   │   │   ├── DriveToTarget.hpp
│   │   │   │   ├── Factory.hpp
│   │   │   │   ├── IncreaseResolution.cpp
│   │   │   │   ├── IncreaseResolution.hpp
│   │   │   │   ├── Loehner.cpp
│   │   │   │   ├── Loehner.hpp
│   │   │   │   ├── Persson.cpp
│   │   │   │   ├── Persson.hpp
│   │   │   │   ├── Random.cpp
│   │   │   │   ├── Random.hpp
│   │   │   │   ├── Tags/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── Criteria.hpp
│   │   │   │   │   └── Tags.hpp
│   │   │   │   ├── TruncationError.cpp
│   │   │   │   ├── TruncationError.hpp
│   │   │   │   ├── Type.cpp
│   │   │   │   └── Type.hpp
│   │   │   ├── Events/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Events.hpp
│   │   │   │   ├── ObserveAmrCriteria.hpp
│   │   │   │   ├── ObserveAmrStats.cpp
│   │   │   │   ├── ObserveAmrStats.hpp
│   │   │   │   ├── RefineMesh.cpp
│   │   │   │   └── RefineMesh.hpp
│   │   │   ├── Policies/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── EnforcePolicies.cpp
│   │   │   │   ├── EnforcePolicies.hpp
│   │   │   │   ├── Isotropy.cpp
│   │   │   │   ├── Isotropy.hpp
│   │   │   │   ├── Limits.cpp
│   │   │   │   ├── Limits.hpp
│   │   │   │   ├── Policies.cpp
│   │   │   │   ├── Policies.hpp
│   │   │   │   └── Tags.hpp
│   │   │   ├── Projectors/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── CopyFromCreatorOrLeaveAsIs.hpp
│   │   │   │   ├── DefaultInitialize.hpp
│   │   │   │   ├── Mesh.cpp
│   │   │   │   ├── Mesh.hpp
│   │   │   │   ├── NamespaceDocs.hpp
│   │   │   │   ├── Tensors.hpp
│   │   │   │   └── Variables.hpp
│   │   │   ├── Protocols/
│   │   │   │   ├── AmrMetavariables.hpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── NamespaceDocs.hpp
│   │   │   │   └── Projector.hpp
│   │   │   ├── Tags.cpp
│   │   │   └── Tags.hpp
│   │   ├── ApparentHorizonFinder/
│   │   │   ├── ApparentHorizon.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Callbacks/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Callbacks.hpp
│   │   │   │   ├── FailedHorizonFind.hpp
│   │   │   │   ├── InvokeCallbacks.hpp
│   │   │   │   ├── ObserveCenters.hpp
│   │   │   │   ├── ObserveFieldsOnHorizon.hpp
│   │   │   │   ├── ObserveTimeSeriesOnHorizon.hpp
│   │   │   │   └── SendDependencyToObserverWriter.hpp
│   │   │   ├── CleanUp.cpp
│   │   │   ├── CleanUp.hpp
│   │   │   ├── Component.hpp
│   │   │   ├── ComputeCoords.cpp
│   │   │   ├── ComputeCoords.hpp
│   │   │   ├── ComputeVarsToInterpolateToTarget.cpp
│   │   │   ├── ComputeVarsToInterpolateToTarget.hpp
│   │   │   ├── Criteria/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Criteria.hpp
│   │   │   │   ├── Criterion.hpp
│   │   │   │   ├── Factory.hpp
│   │   │   │   ├── IncreaseResolution.cpp
│   │   │   │   ├── IncreaseResolution.hpp
│   │   │   │   ├── Residual.cpp
│   │   │   │   ├── Residual.hpp
│   │   │   │   ├── Shape.cpp
│   │   │   │   ├── Shape.hpp
│   │   │   │   └── Tags/
│   │   │   │       ├── CMakeLists.txt
│   │   │   │       ├── Criteria.hpp
│   │   │   │       └── Tags.hpp
│   │   │   ├── CurrentTime.cpp
│   │   │   ├── CurrentTime.hpp
│   │   │   ├── Destination.cpp
│   │   │   ├── Destination.hpp
│   │   │   ├── Events/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── FindApparentHorizon.hpp
│   │   │   │   └── FindCommonHorizon.hpp
│   │   │   ├── FastFlow.cpp
│   │   │   ├── FastFlow.hpp
│   │   │   ├── FindApparentHorizon.hpp
│   │   │   ├── HorizonAliases.hpp
│   │   │   ├── Initialization.hpp
│   │   │   ├── InterpolateVolumeVars.cpp
│   │   │   ├── InterpolateVolumeVars.hpp
│   │   │   ├── OptionTags.cpp
│   │   │   ├── OptionTags.hpp
│   │   │   ├── PrintDeadlockAnalysis.hpp
│   │   │   ├── Protocols/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Callback.hpp
│   │   │   │   └── HorizonMetavars.hpp
│   │   │   ├── Python/
│   │   │   │   ├── Bindings.cpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   └── __init__.py
│   │   │   ├── Storage.cpp
│   │   │   ├── Storage.hpp
│   │   │   └── Tags.hpp
│   │   ├── CMakeLists.txt
│   │   ├── Events/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Completion.cpp
│   │   │   ├── Completion.hpp
│   │   │   ├── ErrorIfDataTooBig.hpp
│   │   │   ├── Factory.hpp
│   │   │   ├── MonitorMemory.hpp
│   │   │   ├── ObserveAdaptiveSteppingDiagnostics.cpp
│   │   │   ├── ObserveAdaptiveSteppingDiagnostics.hpp
│   │   │   ├── ObserveAtExtremum.hpp
│   │   │   ├── ObserveConstantsPerElement.cpp
│   │   │   ├── ObserveConstantsPerElement.hpp
│   │   │   ├── ObserveDataBox.cpp
│   │   │   ├── ObserveDataBox.hpp
│   │   │   ├── ObserveFields.hpp
│   │   │   ├── ObserveNorms.cpp
│   │   │   ├── ObserveNorms.hpp
│   │   │   ├── ObserveTimeStep.cpp
│   │   │   ├── ObserveTimeStep.hpp
│   │   │   ├── ObserveTimeStep.tpp
│   │   │   ├── ObserveTimeStepVolume.hpp
│   │   │   ├── ObserveTimeStepVolume.tpp
│   │   │   └── Tags.hpp
│   │   ├── EventsAndDenseTriggers/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── DenseTrigger.hpp
│   │   │   ├── DenseTriggers/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Factory.hpp
│   │   │   │   ├── Filter.cpp
│   │   │   │   ├── Filter.hpp
│   │   │   │   ├── Or.cpp
│   │   │   │   ├── Or.hpp
│   │   │   │   ├── Times.cpp
│   │   │   │   └── Times.hpp
│   │   │   ├── EventsAndDenseTriggers.cpp
│   │   │   ├── EventsAndDenseTriggers.hpp
│   │   │   └── Tags.hpp
│   │   ├── EventsAndTriggers/
│   │   │   ├── Actions/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   └── RunEventsOnFailure.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Event.hpp
│   │   │   ├── EventsAndTriggers.cpp
│   │   │   ├── EventsAndTriggers.hpp
│   │   │   ├── LogicalTriggers.cpp
│   │   │   ├── LogicalTriggers.hpp
│   │   │   ├── Tags.hpp
│   │   │   ├── Trigger.hpp
│   │   │   ├── WhenToCheck.cpp
│   │   │   └── WhenToCheck.hpp
│   │   ├── Initialization/
│   │   │   ├── CMakeLists.txt
│   │   │   └── MutateAssign.hpp
│   │   ├── Interpolation/
│   │   │   ├── Actions/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── ElementInitInterpPoints.hpp
│   │   │   │   ├── ElementReceiveInterpPoints.hpp
│   │   │   │   ├── InitializeInterpolationTarget.hpp
│   │   │   │   ├── InterpolationTargetSendPoints.hpp
│   │   │   │   ├── InterpolationTargetVarsFromElement.hpp
│   │   │   │   └── PrintInterpolationTargetForDeadlock.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Callbacks/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Callbacks.hpp
│   │   │   │   ├── ObserveLineSegment.hpp
│   │   │   │   ├── ObserveSurfaceData.hpp
│   │   │   │   └── ObserveTimeSeriesOnSurface.hpp
│   │   │   ├── ComputeExcisionBoundaryVolumeQuantities.hpp
│   │   │   ├── ComputeExcisionBoundaryVolumeQuantities.tpp
│   │   │   ├── Events/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── GetComputeItemsOnSource.hpp
│   │   │   │   └── InterpolateWithoutInterpComponent.hpp
│   │   │   ├── InterpolationTarget.hpp
│   │   │   ├── InterpolationTargetDetail.hpp
│   │   │   ├── Intrp.hpp
│   │   │   ├── IntrpOptionHolders.hpp
│   │   │   ├── PointInfoTag.hpp
│   │   │   ├── Protocols/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── ComputeTargetPoints.hpp
│   │   │   │   ├── ComputeVarsToInterpolate.hpp
│   │   │   │   ├── InterpolationTargetTag.hpp
│   │   │   │   ├── PostInterpolationCallback.hpp
│   │   │   │   └── ProtocolsNamespace.hpp
│   │   │   ├── Tags.hpp
│   │   │   ├── TagsMetafunctions.hpp
│   │   │   └── Targets/
│   │   │       ├── CMakeLists.txt
│   │   │       ├── KerrHorizon.cpp
│   │   │       ├── KerrHorizon.hpp
│   │   │       ├── LineSegment.cpp
│   │   │       ├── LineSegment.hpp
│   │   │       ├── SpecifiedPoints.cpp
│   │   │       ├── SpecifiedPoints.hpp
│   │   │       ├── Sphere.cpp
│   │   │       ├── Sphere.hpp
│   │   │       ├── WedgeSectionTorus.cpp
│   │   │       └── WedgeSectionTorus.hpp
│   │   ├── LinearSolver/
│   │   │   ├── Actions/
│   │   │   │   ├── BuildMatrix.cpp
│   │   │   │   ├── BuildMatrix.hpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   └── MakeIdentityIfSkipped.hpp
│   │   │   ├── AsynchronousSolvers/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   └── ElementActions.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── ConjugateGradient/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── ConjugateGradient.hpp
│   │   │   │   ├── ElementActions.hpp
│   │   │   │   ├── InitializeElement.hpp
│   │   │   │   ├── ResidualMonitor.hpp
│   │   │   │   ├── ResidualMonitorActions.hpp
│   │   │   │   └── Tags/
│   │   │   │       ├── CMakeLists.txt
│   │   │   │       └── InboxTags.hpp
│   │   │   ├── Gmres/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── ElementActions.hpp
│   │   │   │   ├── Gmres.hpp
│   │   │   │   ├── InitializeElement.hpp
│   │   │   │   ├── ResidualMonitor.hpp
│   │   │   │   ├── ResidualMonitorActions.hpp
│   │   │   │   └── Tags/
│   │   │   │       ├── CMakeLists.txt
│   │   │   │       └── InboxTags.hpp
│   │   │   ├── Multigrid/
│   │   │   │   ├── Actions/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   └── RestrictFields.hpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── ElementActions.hpp
│   │   │   │   ├── ElementsAllocator.hpp
│   │   │   │   ├── Hierarchy.cpp
│   │   │   │   ├── Hierarchy.hpp
│   │   │   │   ├── Multigrid.hpp
│   │   │   │   ├── ObserveVolumeData.hpp
│   │   │   │   └── Tags.hpp
│   │   │   ├── Observe.hpp
│   │   │   ├── Richardson/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Richardson.hpp
│   │   │   │   └── Tags.hpp
│   │   │   ├── Schwarz/
│   │   │   │   ├── Actions/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── CommunicateOverlapFields.hpp
│   │   │   │   │   └── ResetSubdomainSolver.hpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── ComputeTags.hpp
│   │   │   │   ├── ElementActions.hpp
│   │   │   │   ├── ElementCenteredSubdomainData.hpp
│   │   │   │   ├── ObserveVolumeData.hpp
│   │   │   │   ├── OverlapHelpers.cpp
│   │   │   │   ├── OverlapHelpers.hpp
│   │   │   │   ├── Schwarz.hpp
│   │   │   │   ├── SubdomainOperator.hpp
│   │   │   │   ├── Tags.hpp
│   │   │   │   ├── Weighting.cpp
│   │   │   │   └── Weighting.hpp
│   │   │   └── Tags.hpp
│   │   ├── NonlinearSolver/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── NewtonRaphson/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── ElementActions.hpp
│   │   │   │   ├── LineSearch.cpp
│   │   │   │   ├── LineSearch.hpp
│   │   │   │   ├── NewtonRaphson.hpp
│   │   │   │   ├── ResidualMonitor.hpp
│   │   │   │   ├── ResidualMonitorActions.hpp
│   │   │   │   └── Tags/
│   │   │   │       ├── CMakeLists.txt
│   │   │   │       └── InboxTags.hpp
│   │   │   ├── Observe.hpp
│   │   │   └── Tags.hpp
│   │   ├── RayTracer/
│   │   │   ├── BackgroundSpacetimes/
│   │   │   │   ├── BackgroundSpacetime.hpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Factory.hpp
│   │   │   │   ├── NumericData.cpp
│   │   │   │   ├── NumericData.hpp
│   │   │   │   └── WrappedGr.hpp
│   │   │   └── CMakeLists.txt
│   │   └── SurfaceFinder/
│   │       ├── CMakeLists.txt
│   │       ├── Python/
│   │       │   ├── Bindings.cpp
│   │       │   ├── CMakeLists.txt
│   │       │   ├── FindRadialSurface.py
│   │       │   └── __init__.py
│   │       ├── SurfaceFinder.cpp
│   │       └── SurfaceFinder.hpp
│   ├── PointwiseFunctions/
│   │   ├── AnalyticData/
│   │   │   ├── AnalyticData.hpp
│   │   │   ├── Burgers/
│   │   │   │   ├── AnalyticData.hpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Factory.hpp
│   │   │   │   ├── Sinusoid.cpp
│   │   │   │   └── Sinusoid.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── CurvedWaveEquation/
│   │   │   │   ├── AnalyticData.hpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── PureSphericalHarmonic.cpp
│   │   │   │   └── PureSphericalHarmonic.hpp
│   │   │   ├── ForceFree/
│   │   │   │   ├── AnalyticData.hpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Factory.hpp
│   │   │   │   ├── FfeBreakdown.cpp
│   │   │   │   ├── FfeBreakdown.hpp
│   │   │   │   ├── MagnetosphericWald.cpp
│   │   │   │   ├── MagnetosphericWald.hpp
│   │   │   │   ├── RotatingDipole.cpp
│   │   │   │   └── RotatingDipole.hpp
│   │   │   ├── GeneralRelativity/
│   │   │   │   ├── AnalyticData.hpp
│   │   │   │   ├── BrillLindquist.cpp
│   │   │   │   ├── BrillLindquist.hpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── SpecInitialData.cpp
│   │   │   │   └── SpecInitialData.hpp
│   │   │   ├── GhGrMhd/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Factory.hpp
│   │   │   │   └── InstantiateWrappedGr.cpp
│   │   │   ├── GhScalarTensor/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Factory.hpp
│   │   │   │   └── InstantiateWrappedGr.cpp
│   │   │   ├── GrMhd/
│   │   │   │   ├── AnalyticData.hpp
│   │   │   │   ├── BlastWave.cpp
│   │   │   │   ├── BlastWave.hpp
│   │   │   │   ├── BondiHoyleAccretion.cpp
│   │   │   │   ├── BondiHoyleAccretion.hpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── CcsnCollapse.cpp
│   │   │   │   ├── CcsnCollapse.hpp
│   │   │   │   ├── FukaInitialData.cpp
│   │   │   │   ├── FukaInitialData.hpp
│   │   │   │   ├── InitialMagneticFields/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── Factory.hpp
│   │   │   │   │   ├── InitialMagneticField.hpp
│   │   │   │   │   ├── Poloidal.cpp
│   │   │   │   │   ├── Poloidal.hpp
│   │   │   │   │   ├── Toroidal.cpp
│   │   │   │   │   └── Toroidal.hpp
│   │   │   │   ├── KhInstability.cpp
│   │   │   │   ├── KhInstability.hpp
│   │   │   │   ├── MagneticFieldLoop.cpp
│   │   │   │   ├── MagneticFieldLoop.hpp
│   │   │   │   ├── MagneticRotor.cpp
│   │   │   │   ├── MagneticRotor.hpp
│   │   │   │   ├── MagnetizedFmDisk.cpp
│   │   │   │   ├── MagnetizedFmDisk.hpp
│   │   │   │   ├── MagnetizedTovStar.cpp
│   │   │   │   ├── MagnetizedTovStar.hpp
│   │   │   │   ├── OrszagTangVortex.cpp
│   │   │   │   ├── OrszagTangVortex.hpp
│   │   │   │   ├── PolarMagnetizedFmDisk.cpp
│   │   │   │   ├── PolarMagnetizedFmDisk.hpp
│   │   │   │   ├── RiemannProblem.cpp
│   │   │   │   ├── RiemannProblem.hpp
│   │   │   │   ├── SlabJet.cpp
│   │   │   │   ├── SlabJet.hpp
│   │   │   │   ├── SpecInitialData.cpp
│   │   │   │   ├── SpecInitialData.hpp
│   │   │   │   ├── SphericalTorus.cpp
│   │   │   │   └── SphericalTorus.hpp
│   │   │   ├── NewtonianEuler/
│   │   │   │   ├── AnalyticData.hpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── KhInstability.cpp
│   │   │   │   ├── KhInstability.hpp
│   │   │   │   ├── ShuOsherTube.cpp
│   │   │   │   ├── ShuOsherTube.hpp
│   │   │   │   ├── SodExplosion.cpp
│   │   │   │   └── SodExplosion.hpp
│   │   │   ├── Punctures/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── MultiplePunctures.cpp
│   │   │   │   └── MultiplePunctures.hpp
│   │   │   ├── RadiationTransport/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   └── M1Grey/
│   │   │   │       ├── AnalyticData.hpp
│   │   │   │       ├── CMakeLists.txt
│   │   │   │       ├── Factory.hpp
│   │   │   │       ├── HomogeneousSphere.cpp
│   │   │   │       └── HomogeneousSphere.hpp
│   │   │   ├── ScalarTensor/
│   │   │   │   ├── AnalyticData.hpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── KerrSphericalHarmonic.cpp
│   │   │   │   └── KerrSphericalHarmonic.hpp
│   │   │   ├── Tags.hpp
│   │   │   └── Xcts/
│   │   │       ├── AnalyticData.hpp
│   │   │       ├── Binary.cpp
│   │   │       ├── Binary.hpp
│   │   │       ├── CMakeLists.txt
│   │   │       ├── CommonVariables.hpp
│   │   │       └── CommonVariables.tpp
│   │   ├── AnalyticSolutions/
│   │   │   ├── AnalyticSolution.hpp
│   │   │   ├── Burgers/
│   │   │   │   ├── Bump.cpp
│   │   │   │   ├── Bump.hpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Factory.hpp
│   │   │   │   ├── Linear.cpp
│   │   │   │   ├── Linear.hpp
│   │   │   │   ├── Solutions.hpp
│   │   │   │   ├── Step.cpp
│   │   │   │   └── Step.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Elasticity/
│   │   │   │   ├── BentBeam.cpp
│   │   │   │   ├── BentBeam.hpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Factory.hpp
│   │   │   │   ├── HalfSpaceMirror.cpp
│   │   │   │   ├── HalfSpaceMirror.hpp
│   │   │   │   └── Zero.hpp
│   │   │   ├── ForceFree/
│   │   │   │   ├── AlfvenWave.cpp
│   │   │   │   ├── AlfvenWave.hpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── ExactWald.cpp
│   │   │   │   ├── ExactWald.hpp
│   │   │   │   ├── Factory.hpp
│   │   │   │   ├── FastWave.cpp
│   │   │   │   ├── FastWave.hpp
│   │   │   │   └── Solutions.hpp
│   │   │   ├── GeneralRelativity/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Factory.hpp
│   │   │   │   ├── GaugePlaneWave.cpp
│   │   │   │   ├── GaugePlaneWave.hpp
│   │   │   │   ├── GaugeWave.cpp
│   │   │   │   ├── GaugeWave.hpp
│   │   │   │   ├── HarmonicSchwarzschild.cpp
│   │   │   │   ├── HarmonicSchwarzschild.hpp
│   │   │   │   ├── KerrSchild.cpp
│   │   │   │   ├── KerrSchild.hpp
│   │   │   │   ├── Minkowski.cpp
│   │   │   │   ├── Minkowski.hpp
│   │   │   │   ├── Python/
│   │   │   │   │   ├── Bindings.cpp
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   └── __init__.py
│   │   │   │   ├── Solutions.hpp
│   │   │   │   ├── SphericalKerrSchild.cpp
│   │   │   │   ├── SphericalKerrSchild.hpp
│   │   │   │   ├── TeukolskyWave.cpp
│   │   │   │   ├── TeukolskyWave.hpp
│   │   │   │   ├── TrumpetSchwarzschild.cpp
│   │   │   │   ├── TrumpetSchwarzschild.hpp
│   │   │   │   ├── WrappedGr.cpp
│   │   │   │   ├── WrappedGr.hpp
│   │   │   │   └── WrappedGr.tpp
│   │   │   ├── GhGrMhd/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Factory.hpp
│   │   │   │   └── InstantiateWrappedGr.cpp
│   │   │   ├── GhRelativisticEuler/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Factory.hpp
│   │   │   │   └── InstantiateWrappedGr.cpp
│   │   │   ├── GrMhd/
│   │   │   │   ├── AlfvenWave.cpp
│   │   │   │   ├── AlfvenWave.hpp
│   │   │   │   ├── BondiMichel.cpp
│   │   │   │   ├── BondiMichel.hpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── KomissarovShock.cpp
│   │   │   │   ├── KomissarovShock.hpp
│   │   │   │   ├── SmoothFlow.cpp
│   │   │   │   ├── SmoothFlow.hpp
│   │   │   │   └── Solutions.hpp
│   │   │   ├── Hydro/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── SmoothFlow.cpp
│   │   │   │   ├── SmoothFlow.hpp
│   │   │   │   └── Solutions.hpp
│   │   │   ├── NewtonianEuler/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── IsentropicVortex.cpp
│   │   │   │   ├── IsentropicVortex.hpp
│   │   │   │   ├── LaneEmdenStar.cpp
│   │   │   │   ├── LaneEmdenStar.hpp
│   │   │   │   ├── RiemannProblem.cpp
│   │   │   │   ├── RiemannProblem.hpp
│   │   │   │   ├── SmoothFlow.cpp
│   │   │   │   ├── SmoothFlow.hpp
│   │   │   │   └── Solutions.hpp
│   │   │   ├── Poisson/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Factory.hpp
│   │   │   │   ├── Lorentzian.cpp
│   │   │   │   ├── Lorentzian.hpp
│   │   │   │   ├── MathFunction.cpp
│   │   │   │   ├── MathFunction.hpp
│   │   │   │   ├── Moustache.cpp
│   │   │   │   ├── Moustache.hpp
│   │   │   │   ├── ProductOfSinusoids.cpp
│   │   │   │   ├── ProductOfSinusoids.hpp
│   │   │   │   └── Zero.hpp
│   │   │   ├── Punctures/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Flatness.cpp
│   │   │   │   └── Flatness.hpp
│   │   │   ├── RadiationTransport/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── M1Grey/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── ConstantM1.cpp
│   │   │   │   │   ├── ConstantM1.hpp
│   │   │   │   │   ├── Factory.hpp
│   │   │   │   │   └── Solutions.hpp
│   │   │   │   └── MonteCarlo/
│   │   │   │       ├── CMakeLists.txt
│   │   │   │       ├── Factory.hpp
│   │   │   │       ├── HomogeneousSphere.cpp
│   │   │   │       ├── HomogeneousSphere.hpp
│   │   │   │       └── Solutions.hpp
│   │   │   ├── RelativisticEuler/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── FishboneMoncriefDisk.cpp
│   │   │   │   ├── FishboneMoncriefDisk.hpp
│   │   │   │   ├── Python/
│   │   │   │   │   ├── Bindings.cpp
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── Tov.cpp
│   │   │   │   │   ├── Tov.hpp
│   │   │   │   │   └── __init__.py
│   │   │   │   ├── RotatingStar.cpp
│   │   │   │   ├── RotatingStar.hpp
│   │   │   │   ├── SmoothFlow.cpp
│   │   │   │   ├── SmoothFlow.hpp
│   │   │   │   ├── Solutions.hpp
│   │   │   │   ├── Tov.cpp
│   │   │   │   ├── Tov.hpp
│   │   │   │   ├── TovStar.cpp
│   │   │   │   └── TovStar.hpp
│   │   │   ├── ScalarAdvection/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Factory.hpp
│   │   │   │   ├── Krivodonova.cpp
│   │   │   │   ├── Krivodonova.hpp
│   │   │   │   ├── Kuzmin.cpp
│   │   │   │   ├── Kuzmin.hpp
│   │   │   │   ├── Sinusoid.cpp
│   │   │   │   ├── Sinusoid.hpp
│   │   │   │   └── Solutions.hpp
│   │   │   ├── Tags.hpp
│   │   │   ├── WaveEquation/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Factory.hpp
│   │   │   │   ├── PlaneWave.cpp
│   │   │   │   ├── PlaneWave.hpp
│   │   │   │   ├── RegularSphericalWave.cpp
│   │   │   │   ├── RegularSphericalWave.hpp
│   │   │   │   ├── SemidiscretizedDg.cpp
│   │   │   │   ├── SemidiscretizedDg.hpp
│   │   │   │   └── Solutions.hpp
│   │   │   └── Xcts/
│   │   │       ├── CMakeLists.txt
│   │   │       ├── CommonVariables.hpp
│   │   │       ├── CommonVariables.tpp
│   │   │       ├── ConstantDensityStar.cpp
│   │   │       ├── ConstantDensityStar.hpp
│   │   │       ├── Factory.hpp
│   │   │       ├── Flatness.cpp
│   │   │       ├── Flatness.hpp
│   │   │       ├── Schwarzschild.cpp
│   │   │       ├── Schwarzschild.hpp
│   │   │       ├── TovStar.cpp
│   │   │       ├── TovStar.hpp
│   │   │       ├── WrappedGr.cpp
│   │   │       └── WrappedGr.hpp
│   │   ├── CMakeLists.txt
│   │   ├── ConstraintDamping/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Constant.cpp
│   │   │   ├── Constant.hpp
│   │   │   ├── DampingFunction.hpp
│   │   │   ├── GaussianPlusConstant.cpp
│   │   │   ├── GaussianPlusConstant.hpp
│   │   │   ├── RegisterDerivedWithCharm.cpp
│   │   │   ├── RegisterDerivedWithCharm.hpp
│   │   │   ├── TimeDependentTripleGaussian.cpp
│   │   │   └── TimeDependentTripleGaussian.hpp
│   │   ├── Elasticity/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── ConstitutiveRelations/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── ConstitutiveRelation.hpp
│   │   │   │   ├── CubicCrystal.cpp
│   │   │   │   ├── CubicCrystal.hpp
│   │   │   │   ├── Factory.hpp
│   │   │   │   ├── IsotropicHomogeneous.cpp
│   │   │   │   ├── IsotropicHomogeneous.hpp
│   │   │   │   └── Tags.hpp
│   │   │   ├── PotentialEnergy.cpp
│   │   │   ├── PotentialEnergy.hpp
│   │   │   ├── Strain.cpp
│   │   │   ├── Strain.hpp
│   │   │   └── Stress.hpp
│   │   ├── GeneralRelativity/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Christoffel.cpp
│   │   │   ├── Christoffel.hpp
│   │   │   ├── CubicCurvatureScalars.cpp
│   │   │   ├── CubicCurvatureScalars.hpp
│   │   │   ├── DerivativeSpatialMetric.cpp
│   │   │   ├── DerivativeSpatialMetric.hpp
│   │   │   ├── DerivativesOfSpacetimeMetric.cpp
│   │   │   ├── DerivativesOfSpacetimeMetric.hpp
│   │   │   ├── DetAndInverseSpatialMetric.hpp
│   │   │   ├── ExtrinsicCurvature.cpp
│   │   │   ├── ExtrinsicCurvature.hpp
│   │   │   ├── GeneralizedHarmonic/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Christoffel.cpp
│   │   │   │   ├── Christoffel.hpp
│   │   │   │   ├── ConstraintDampingTags.hpp
│   │   │   │   ├── ConstraintGammas.hpp
│   │   │   │   ├── CovariantDerivOfExtrinsicCurvature.cpp
│   │   │   │   ├── CovariantDerivOfExtrinsicCurvature.hpp
│   │   │   │   ├── DerivSpatialMetric.cpp
│   │   │   │   ├── DerivSpatialMetric.hpp
│   │   │   │   ├── Expansion1D.cpp
│   │   │   │   ├── Expansion1D.hpp
│   │   │   │   ├── ExtrinsicCurvature.cpp
│   │   │   │   ├── ExtrinsicCurvature.hpp
│   │   │   │   ├── GaugeSource.cpp
│   │   │   │   ├── GaugeSource.hpp
│   │   │   │   ├── Phi.cpp
│   │   │   │   ├── Phi.hpp
│   │   │   │   ├── Pi.cpp
│   │   │   │   ├── Pi.hpp
│   │   │   │   ├── Python/
│   │   │   │   │   ├── Bindings.cpp
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   └── __init__.py
│   │   │   │   ├── Ricci.cpp
│   │   │   │   ├── Ricci.hpp
│   │   │   │   ├── SecondTimeDerivOfSpacetimeMetric.cpp
│   │   │   │   ├── SecondTimeDerivOfSpacetimeMetric.hpp
│   │   │   │   ├── SpacetimeDerivOfDetSpatialMetric.cpp
│   │   │   │   ├── SpacetimeDerivOfDetSpatialMetric.hpp
│   │   │   │   ├── SpacetimeDerivOfNormOfShift.cpp
│   │   │   │   ├── SpacetimeDerivOfNormOfShift.hpp
│   │   │   │   ├── SpacetimeDerivativeOfSpacetimeMetric.cpp
│   │   │   │   ├── SpacetimeDerivativeOfSpacetimeMetric.hpp
│   │   │   │   ├── SpatialDerivOfLapse.cpp
│   │   │   │   ├── SpatialDerivOfLapse.hpp
│   │   │   │   ├── SpatialDerivOfShift.cpp
│   │   │   │   ├── SpatialDerivOfShift.hpp
│   │   │   │   ├── TimeDerivOfLapse.cpp
│   │   │   │   ├── TimeDerivOfLapse.hpp
│   │   │   │   ├── TimeDerivOfLowerShift.cpp
│   │   │   │   ├── TimeDerivOfLowerShift.hpp
│   │   │   │   ├── TimeDerivOfShift.cpp
│   │   │   │   ├── TimeDerivOfShift.hpp
│   │   │   │   ├── TimeDerivOfSpatialMetric.cpp
│   │   │   │   ├── TimeDerivOfSpatialMetric.hpp
│   │   │   │   ├── TimeDerivativeOfSpacetimeMetric.cpp
│   │   │   │   └── TimeDerivativeOfSpacetimeMetric.hpp
│   │   │   ├── GeodesicAcceleration.cpp
│   │   │   ├── GeodesicAcceleration.hpp
│   │   │   ├── GeodesicEquation.cpp
│   │   │   ├── GeodesicEquation.hpp
│   │   │   ├── InterfaceNullNormal.cpp
│   │   │   ├── InterfaceNullNormal.hpp
│   │   │   ├── InverseSpacetimeMetric.cpp
│   │   │   ├── InverseSpacetimeMetric.hpp
│   │   │   ├── KerrHorizon.cpp
│   │   │   ├── KerrHorizon.hpp
│   │   │   ├── KerrSchildCoords.cpp
│   │   │   ├── KerrSchildCoords.hpp
│   │   │   ├── Lapse.cpp
│   │   │   ├── Lapse.hpp
│   │   │   ├── ProjectionOperators.cpp
│   │   │   ├── ProjectionOperators.hpp
│   │   │   ├── Psi4.cpp
│   │   │   ├── Psi4.hpp
│   │   │   ├── Psi4Real.cpp
│   │   │   ├── Psi4Real.hpp
│   │   │   ├── Python/
│   │   │   │   ├── Bindings.cpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   └── __init__.py
│   │   │   ├── QuadraticCurvatureScalars.cpp
│   │   │   ├── QuadraticCurvatureScalars.hpp
│   │   │   ├── Ricci.cpp
│   │   │   ├── Ricci.hpp
│   │   │   ├── Shift.cpp
│   │   │   ├── Shift.hpp
│   │   │   ├── SpacetimeDerivativeOfGothG.cpp
│   │   │   ├── SpacetimeDerivativeOfGothG.hpp
│   │   │   ├── SpacetimeMetric.cpp
│   │   │   ├── SpacetimeMetric.hpp
│   │   │   ├── SpacetimeNormalOneForm.cpp
│   │   │   ├── SpacetimeNormalOneForm.hpp
│   │   │   ├── SpacetimeNormalVector.cpp
│   │   │   ├── SpacetimeNormalVector.hpp
│   │   │   ├── SpatialMetric.cpp
│   │   │   ├── SpatialMetric.hpp
│   │   │   ├── Surfaces/
│   │   │   │   ├── AreaElement.cpp
│   │   │   │   ├── AreaElement.hpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── ComputeItems.hpp
│   │   │   │   ├── Expansion.cpp
│   │   │   │   ├── Expansion.hpp
│   │   │   │   ├── ExtrinsicCurvature.cpp
│   │   │   │   ├── ExtrinsicCurvature.hpp
│   │   │   │   ├── GradUnitNormalOneForm.cpp
│   │   │   │   ├── GradUnitNormalOneForm.hpp
│   │   │   │   ├── InverseSurfaceMetric.cpp
│   │   │   │   ├── InverseSurfaceMetric.hpp
│   │   │   │   ├── Mass.cpp
│   │   │   │   ├── Mass.hpp
│   │   │   │   ├── Python/
│   │   │   │   │   ├── Bindings.cpp
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   └── __init__.py
│   │   │   │   ├── RadialDistance.cpp
│   │   │   │   ├── RadialDistance.hpp
│   │   │   │   ├── RicciScalar.cpp
│   │   │   │   ├── RicciScalar.hpp
│   │   │   │   ├── Spin.cpp
│   │   │   │   ├── Spin.hpp
│   │   │   │   ├── SurfaceIntegralOfScalar.cpp
│   │   │   │   ├── SurfaceIntegralOfScalar.hpp
│   │   │   │   ├── SurfaceIntegralOfVector.cpp
│   │   │   │   ├── SurfaceIntegralOfVector.hpp
│   │   │   │   ├── Tags.hpp
│   │   │   │   ├── TagsDeclarations.hpp
│   │   │   │   ├── UnitNormalOneForm.cpp
│   │   │   │   └── UnitNormalOneForm.hpp
│   │   │   ├── Tags/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   └── Conformal.hpp
│   │   │   ├── Tags.hpp
│   │   │   ├── TagsDeclarations.hpp
│   │   │   ├── TimeDerivativeOfSpacetimeMetric.cpp
│   │   │   ├── TimeDerivativeOfSpacetimeMetric.hpp
│   │   │   ├── TimeDerivativeOfSpatialMetric.cpp
│   │   │   ├── TimeDerivativeOfSpatialMetric.hpp
│   │   │   ├── TortoiseCoordinates.cpp
│   │   │   ├── TortoiseCoordinates.hpp
│   │   │   ├── WeylElectric.cpp
│   │   │   ├── WeylElectric.hpp
│   │   │   ├── WeylMagnetic.cpp
│   │   │   ├── WeylMagnetic.hpp
│   │   │   ├── WeylPropagating.cpp
│   │   │   ├── WeylPropagating.hpp
│   │   │   ├── WeylTypeD1.cpp
│   │   │   └── WeylTypeD1.hpp
│   │   ├── Hydro/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── ComovingMagneticField.cpp
│   │   │   ├── ComovingMagneticField.hpp
│   │   │   ├── EquationsOfState/
│   │   │   │   ├── Barotropic2D.cpp
│   │   │   │   ├── Barotropic2D.hpp
│   │   │   │   ├── Barotropic3D.cpp
│   │   │   │   ├── Barotropic3D.hpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── DarkEnergyFluid.cpp
│   │   │   │   ├── DarkEnergyFluid.hpp
│   │   │   │   ├── Enthalpy.cpp
│   │   │   │   ├── Enthalpy.hpp
│   │   │   │   ├── EquationOfState.hpp
│   │   │   │   ├── Equilibrium3D.cpp
│   │   │   │   ├── Equilibrium3D.hpp
│   │   │   │   ├── Factory.hpp
│   │   │   │   ├── HybridEos.cpp
│   │   │   │   ├── HybridEos.hpp
│   │   │   │   ├── IdealFluid.cpp
│   │   │   │   ├── IdealFluid.hpp
│   │   │   │   ├── PiecewisePolytropicFluid.cpp
│   │   │   │   ├── PiecewisePolytropicFluid.hpp
│   │   │   │   ├── PolytropicFluid.cpp
│   │   │   │   ├── PolytropicFluid.hpp
│   │   │   │   ├── Python/
│   │   │   │   │   ├── Bindings.cpp
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── Enthalpy.cpp
│   │   │   │   │   ├── Enthalpy.hpp
│   │   │   │   │   ├── EquationOfState.cpp
│   │   │   │   │   ├── EquationOfState.hpp
│   │   │   │   │   ├── PiecewisePolytropicFluid.cpp
│   │   │   │   │   ├── PiecewisePolytropicFluid.hpp
│   │   │   │   │   ├── PolytropicFluid.cpp
│   │   │   │   │   ├── PolytropicFluid.hpp
│   │   │   │   │   ├── Spectral.cpp
│   │   │   │   │   ├── Spectral.hpp
│   │   │   │   │   └── __init__.py
│   │   │   │   ├── RegisterDerivedWithCharm.cpp
│   │   │   │   ├── RegisterDerivedWithCharm.hpp
│   │   │   │   ├── Spectral.cpp
│   │   │   │   ├── Spectral.hpp
│   │   │   │   ├── Tabulated3d.cpp
│   │   │   │   └── Tabulated3d.hpp
│   │   │   ├── InitialData/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── IrrotationalBns.cpp
│   │   │   │   └── IrrotationalBns.hpp
│   │   │   ├── InversePlasmaBeta.cpp
│   │   │   ├── InversePlasmaBeta.hpp
│   │   │   ├── LorentzFactor.cpp
│   │   │   ├── LorentzFactor.hpp
│   │   │   ├── LowerSpatialFourVelocity.cpp
│   │   │   ├── LowerSpatialFourVelocity.hpp
│   │   │   ├── MagneticFieldTreatment.cpp
│   │   │   ├── MagneticFieldTreatment.hpp
│   │   │   ├── MassFlux.cpp
│   │   │   ├── MassFlux.hpp
│   │   │   ├── MassWeightedFluidItems.cpp
│   │   │   ├── MassWeightedFluidItems.hpp
│   │   │   ├── Python/
│   │   │   │   ├── Bindings.cpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   └── __init__.py
│   │   │   ├── QuadrupoleFormula.cpp
│   │   │   ├── QuadrupoleFormula.hpp
│   │   │   ├── SoundSpeedSquared.cpp
│   │   │   ├── SoundSpeedSquared.hpp
│   │   │   ├── SpecificEnthalpy.cpp
│   │   │   ├── SpecificEnthalpy.hpp
│   │   │   ├── StressEnergy.cpp
│   │   │   ├── StressEnergy.hpp
│   │   │   ├── Tags.hpp
│   │   │   ├── TagsDeclarations.hpp
│   │   │   ├── Temperature.hpp
│   │   │   ├── TransportVelocity.cpp
│   │   │   ├── TransportVelocity.hpp
│   │   │   └── Units.hpp
│   │   ├── InitialDataUtilities/
│   │   │   ├── AnalyticSolution.hpp
│   │   │   ├── Background.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── InitialData.hpp
│   │   │   ├── InitialGuess.hpp
│   │   │   ├── NumericData.cpp
│   │   │   ├── NumericData.hpp
│   │   │   └── Tags/
│   │   │       ├── CMakeLists.txt
│   │   │       └── InitialData.hpp
│   │   ├── MathFunctions/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Factory.hpp
│   │   │   ├── Gaussian.cpp
│   │   │   ├── Gaussian.hpp
│   │   │   ├── MathFunction.hpp
│   │   │   ├── PowX.cpp
│   │   │   ├── PowX.hpp
│   │   │   ├── RegisterDerivedWithCharm.cpp
│   │   │   ├── RegisterDerivedWithCharm.hpp
│   │   │   ├── Sinusoid.cpp
│   │   │   ├── Sinusoid.hpp
│   │   │   ├── TensorProduct.cpp
│   │   │   └── TensorProduct.hpp
│   │   ├── Punctures/
│   │   │   ├── AdmIntegrals.cpp
│   │   │   ├── AdmIntegrals.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   └── Python/
│   │   │       ├── Bindings.cpp
│   │   │       ├── CMakeLists.txt
│   │   │       └── __init__.py
│   │   ├── ScalarTensor/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── ConstraintDampingTags.hpp
│   │   │   ├── ConstraintGammas.hpp
│   │   │   ├── RampUpFunction.cpp
│   │   │   ├── RampUpFunction.hpp
│   │   │   ├── ScalarCharge.cpp
│   │   │   ├── ScalarCharge.hpp
│   │   │   ├── ScalarGaussBonnet/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── CouplingParameters.cpp
│   │   │   │   ├── CouplingParameters.hpp
│   │   │   │   ├── ScalarSource.cpp
│   │   │   │   ├── ScalarSource.hpp
│   │   │   │   └── Tags.hpp
│   │   │   ├── ScalarSource.cpp
│   │   │   ├── ScalarSource.hpp
│   │   │   ├── SourceTags.hpp
│   │   │   ├── StressEnergy.cpp
│   │   │   ├── StressEnergy.hpp
│   │   │   └── Xcts/
│   │   │       ├── CMakeLists.txt
│   │   │       ├── ScalarMomentum.cpp
│   │   │       └── ScalarMomentum.hpp
│   │   ├── SpecialRelativity/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── LorentzBoostMatrix.cpp
│   │   │   └── LorentzBoostMatrix.hpp
│   │   └── Xcts/
│   │       ├── AdmMass.cpp
│   │       ├── AdmMass.hpp
│   │       ├── AdmMomentum.cpp
│   │       ├── AdmMomentum.hpp
│   │       ├── CMakeLists.txt
│   │       ├── CenterOfMass.cpp
│   │       ├── CenterOfMass.hpp
│   │       ├── ExtrinsicCurvature.cpp
│   │       ├── ExtrinsicCurvature.hpp
│   │       ├── LongitudinalOperator.cpp
│   │       ├── LongitudinalOperator.hpp
│   │       ├── SpacetimeQuantities.cpp
│   │       └── SpacetimeQuantities.hpp
│   ├── PythonBindings/
│   │   ├── BoundChecks.hpp
│   │   ├── CMakeLists.txt
│   │   ├── CharmCompatibility.cpp
│   │   ├── FormalineCompatibility.cpp
│   │   └── InfoAtLinkCompatibility.cpp
│   ├── Time/
│   │   ├── Actions/
│   │   │   ├── CMakeLists.txt
│   │   │   └── SelfStartActions.hpp
│   │   ├── AdaptiveSteppingDiagnostics.cpp
│   │   ├── AdaptiveSteppingDiagnostics.hpp
│   │   ├── AdvanceTime.cpp
│   │   ├── AdvanceTime.hpp
│   │   ├── ApproximateTime.cpp
│   │   ├── ApproximateTime.hpp
│   │   ├── BoundaryHistory.hpp
│   │   ├── BoundaryHistory.tpp
│   │   ├── CMakeLists.txt
│   │   ├── ChangeSlabSize/
│   │   │   ├── Action.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── ChangeSlabSize.hpp
│   │   │   ├── Event.cpp
│   │   │   ├── Event.hpp
│   │   │   └── Tags.hpp
│   │   ├── ChangeStepSize.hpp
│   │   ├── ChangeTimeStepperOrder.hpp
│   │   ├── ChangeTimeStepperOrder.tpp
│   │   ├── ChooseLtsStepSize.cpp
│   │   ├── ChooseLtsStepSize.hpp
│   │   ├── CleanHistory.hpp
│   │   ├── CleanHistory.tpp
│   │   ├── EvolutionOrdering.hpp
│   │   ├── History.cpp
│   │   ├── History.hpp
│   │   ├── LargestStepperError.cpp
│   │   ├── LargestStepperError.hpp
│   │   ├── OptionTags/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── InitialSlabSize.hpp
│   │   │   ├── InitialTime.hpp
│   │   │   ├── InitialTimeStep.hpp
│   │   │   ├── LtsStepChoosers.hpp
│   │   │   ├── MinimumTimeStep.hpp
│   │   │   ├── TimeStepper.hpp
│   │   │   └── VariableOrderAlgorithm.hpp
│   │   ├── RecordTimeStepperData.hpp
│   │   ├── RecordTimeStepperData.tpp
│   │   ├── RequestsStepperErrorTolerances.hpp
│   │   ├── SelfStart.cpp
│   │   ├── SelfStart.hpp
│   │   ├── Slab.cpp
│   │   ├── Slab.hpp
│   │   ├── SlabRoundingError.cpp
│   │   ├── SlabRoundingError.hpp
│   │   ├── StepChoosers/
│   │   │   ├── ByBlock.cpp
│   │   │   ├── ByBlock.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Cfl.hpp
│   │   │   ├── Constant.cpp
│   │   │   ├── Constant.hpp
│   │   │   ├── ElementSizeCfl.hpp
│   │   │   ├── ErrorControl.hpp
│   │   │   ├── Factory.hpp
│   │   │   ├── FixedLtsRatio.cpp
│   │   │   ├── FixedLtsRatio.hpp
│   │   │   ├── LimitIncrease.cpp
│   │   │   ├── LimitIncrease.hpp
│   │   │   ├── Maximum.cpp
│   │   │   ├── Maximum.hpp
│   │   │   ├── PreventRapidIncrease.hpp
│   │   │   ├── Random.cpp
│   │   │   ├── Random.hpp
│   │   │   ├── StepChooser.hpp
│   │   │   ├── StepToTimes.cpp
│   │   │   └── StepToTimes.hpp
│   │   ├── StepperErrorEstimate.cpp
│   │   ├── StepperErrorEstimate.hpp
│   │   ├── StepperErrorTolerances.cpp
│   │   ├── StepperErrorTolerances.hpp
│   │   ├── Tags/
│   │   │   ├── AdaptiveSteppingDiagnostics.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── FixedLtsRatio.hpp
│   │   │   ├── HistoryEvolvedVariables.hpp
│   │   │   ├── LtsStepChoosers.hpp
│   │   │   ├── MinimumTimeStep.hpp
│   │   │   ├── StepNumberWithinSlab.hpp
│   │   │   ├── StepperErrorEstimatesEnabled.hpp
│   │   │   ├── StepperErrorTolerances.hpp
│   │   │   ├── StepperErrorTolerancesCompute.cpp
│   │   │   ├── StepperErrorTolerancesCompute.hpp
│   │   │   ├── StepperErrors.hpp
│   │   │   ├── Time.hpp
│   │   │   ├── TimeAndPrevious.hpp
│   │   │   ├── TimeStep.hpp
│   │   │   ├── TimeStepId.hpp
│   │   │   ├── TimeStepper.hpp
│   │   │   └── VariableOrderAlgorithm.hpp
│   │   ├── Time.cpp
│   │   ├── Time.hpp
│   │   ├── TimeSequence.cpp
│   │   ├── TimeSequence.hpp
│   │   ├── TimeStepId.cpp
│   │   ├── TimeStepId.hpp
│   │   ├── TimeStepRequest.cpp
│   │   ├── TimeStepRequest.hpp
│   │   ├── TimeStepRequestProcessor.cpp
│   │   ├── TimeStepRequestProcessor.hpp
│   │   ├── TimeSteppers/
│   │   │   ├── AdamsBashforth.cpp
│   │   │   ├── AdamsBashforth.hpp
│   │   │   ├── AdamsCoefficients.cpp
│   │   │   ├── AdamsCoefficients.hpp
│   │   │   ├── AdamsLts.cpp
│   │   │   ├── AdamsLts.hpp
│   │   │   ├── AdamsMoultonPc.cpp
│   │   │   ├── AdamsMoultonPc.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── ClassicalRungeKutta4.cpp
│   │   │   ├── ClassicalRungeKutta4.hpp
│   │   │   ├── DormandPrince5.cpp
│   │   │   ├── DormandPrince5.hpp
│   │   │   ├── Factory.hpp
│   │   │   ├── Heun2.cpp
│   │   │   ├── Heun2.hpp
│   │   │   ├── ImexRungeKutta.cpp
│   │   │   ├── ImexRungeKutta.hpp
│   │   │   ├── ImexTimeStepper.hpp
│   │   │   ├── LtsTimeStepper.hpp
│   │   │   ├── Rk3HesthavenSsp.cpp
│   │   │   ├── Rk3HesthavenSsp.hpp
│   │   │   ├── Rk3Kennedy.cpp
│   │   │   ├── Rk3Kennedy.hpp
│   │   │   ├── Rk3Owren.cpp
│   │   │   ├── Rk3Owren.hpp
│   │   │   ├── Rk3Pareschi.cpp
│   │   │   ├── Rk3Pareschi.hpp
│   │   │   ├── Rk4Kennedy.cpp
│   │   │   ├── Rk4Kennedy.hpp
│   │   │   ├── Rk4Owren.cpp
│   │   │   ├── Rk4Owren.hpp
│   │   │   ├── Rk5Owren.cpp
│   │   │   ├── Rk5Owren.hpp
│   │   │   ├── Rk5Tsitouras.cpp
│   │   │   ├── Rk5Tsitouras.hpp
│   │   │   ├── RungeKutta.cpp
│   │   │   ├── RungeKutta.hpp
│   │   │   ├── TimeStepper.cpp
│   │   │   └── TimeStepper.hpp
│   │   ├── Triggers/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── NearTimes.cpp
│   │   │   ├── NearTimes.hpp
│   │   │   ├── OnSubsteps.cpp
│   │   │   ├── OnSubsteps.hpp
│   │   │   ├── SlabCompares.cpp
│   │   │   ├── SlabCompares.hpp
│   │   │   ├── Slabs.cpp
│   │   │   ├── Slabs.hpp
│   │   │   ├── StepsWithinSlab.cpp
│   │   │   ├── StepsWithinSlab.hpp
│   │   │   ├── TimeCompares.cpp
│   │   │   ├── TimeCompares.hpp
│   │   │   ├── TimeTriggers.hpp
│   │   │   ├── Times.cpp
│   │   │   └── Times.hpp
│   │   ├── UpdateU.hpp
│   │   ├── UpdateU.tpp
│   │   ├── VariableOrderAlgorithm.cpp
│   │   └── VariableOrderAlgorithm.hpp
│   ├── Utilities/
│   │   ├── Algorithm.hpp
│   │   ├── Array.hpp
│   │   ├── Autodiff/
│   │   │   ├── Autodiff.hpp
│   │   │   └── CMakeLists.txt
│   │   ├── Base64.cpp
│   │   ├── Base64.hpp
│   │   ├── Blas.cpp
│   │   ├── Blas.hpp
│   │   ├── BlazeExceptions.hpp
│   │   ├── CMakeLists.txt
│   │   ├── CachedFunction.hpp
│   │   ├── CallWithDynamicType.hpp
│   │   ├── CartesianProduct.hpp
│   │   ├── CleanupRoutine.hpp
│   │   ├── CloneUniquePtrs.hpp
│   │   ├── ConstantExpressions.hpp
│   │   ├── ContainerHelpers.hpp
│   │   ├── ContainsAllocations.hpp
│   │   ├── DereferenceWrapper.hpp
│   │   ├── EqualWithinRoundoff.hpp
│   │   ├── ErrorHandling/
│   │   │   ├── AbortWithErrorMessage.cpp
│   │   │   ├── AbortWithErrorMessage.hpp
│   │   │   ├── Assert.hpp
│   │   │   ├── Breakpoint.cpp
│   │   │   ├── Breakpoint.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── CaptureForError.cpp
│   │   │   ├── CaptureForError.hpp
│   │   │   ├── Error.hpp
│   │   │   ├── Exceptions.hpp
│   │   │   ├── ExpectsAndEnsures.hpp
│   │   │   ├── FloatingPointExceptions.cpp
│   │   │   ├── FloatingPointExceptions.hpp
│   │   │   ├── FormatStacktrace.cpp
│   │   │   ├── FormatStacktrace.hpp
│   │   │   ├── SegfaultHandler.cpp
│   │   │   ├── SegfaultHandler.hpp
│   │   │   ├── StaticAssert.hpp
│   │   │   ├── Strerror.cpp
│   │   │   ├── Strerror.hpp
│   │   │   ├── StrerrorWrapper.c
│   │   │   └── StrerrorWrapper.h
│   │   ├── FileSystem.cpp
│   │   ├── FileSystem.hpp
│   │   ├── ForceInline.hpp
│   │   ├── Formaline.cpp
│   │   ├── Formaline.hpp
│   │   ├── FractionUtilities.hpp
│   │   ├── Functional.hpp
│   │   ├── GenerateInstantiations.hpp
│   │   ├── GetOutput.hpp
│   │   ├── Gsl.hpp
│   │   ├── Kokkos/
│   │   │   ├── CMakeLists.txt
│   │   │   └── KokkosCore.hpp
│   │   ├── Literals.hpp
│   │   ├── MakeArray.hpp
│   │   ├── MakeSignalingNan.hpp
│   │   ├── MakeString.hpp
│   │   ├── MakeVector.hpp
│   │   ├── MakeWithValue.hpp
│   │   ├── Math.hpp
│   │   ├── MemoryHelpers.cpp
│   │   ├── MemoryHelpers.hpp
│   │   ├── NoSuchType.hpp
│   │   ├── Numeric.hpp
│   │   ├── OptimizerHacks.cpp
│   │   ├── OptimizerHacks.hpp
│   │   ├── OptionalHelpers.hpp
│   │   ├── Overloader.hpp
│   │   ├── PrettyType.cpp
│   │   ├── PrettyType.hpp
│   │   ├── PrintHelpers.hpp
│   │   ├── ProtocolHelpers.hpp
│   │   ├── Protocols/
│   │   │   ├── CMakeLists.txt
│   │   │   └── StaticReturnApplyable.hpp
│   │   ├── Rational.cpp
│   │   ├── Rational.hpp
│   │   ├── Registration.hpp
│   │   ├── Requires.hpp
│   │   ├── Serialization/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── CharmPupable.hpp
│   │   │   ├── PupBoost.hpp
│   │   │   ├── PupStlCpp11.hpp
│   │   │   ├── PupStlCpp17.hpp
│   │   │   ├── RegisterDerivedClassesWithCharm.hpp
│   │   │   └── Serialize.hpp
│   │   ├── SetNumberOfGridPoints.hpp
│   │   ├── Simd/
│   │   │   ├── CMakeLists.txt
│   │   │   └── Simd.hpp
│   │   ├── SnakeCase.cpp
│   │   ├── SnakeCase.hpp
│   │   ├── Spherepack.hpp
│   │   ├── SplitTuple.hpp
│   │   ├── StaticCache.hpp
│   │   ├── StdArrayHelpers.hpp
│   │   ├── StdHelpers/
│   │   │   ├── Bit.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   └── RetrieveUniquePtr.hpp
│   │   ├── StdHelpers.hpp
│   │   ├── StlBoilerplate.hpp
│   │   ├── StlStreamDeclarations.hpp
│   │   ├── System/
│   │   │   ├── Abort.cpp
│   │   │   ├── Abort.hpp
│   │   │   ├── AttachDebugger.cpp
│   │   │   ├── AttachDebugger.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Exit.cpp
│   │   │   ├── Exit.hpp
│   │   │   ├── ParallelInfo.cpp
│   │   │   ├── ParallelInfo.hpp
│   │   │   ├── Prefetch.cpp
│   │   │   ├── Prefetch.hpp
│   │   │   └── System.hpp
│   │   ├── TMPL.hpp
│   │   ├── TmplDebugging.hpp
│   │   ├── TmplDigraph.hpp
│   │   ├── Tuple.hpp
│   │   ├── TupleSlice.hpp
│   │   ├── TypeTraits/
│   │   │   ├── ArraySize.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── CanBeCopyConstructed.hpp
│   │   │   ├── CreateGetStaticMemberVariableOrDefault.hpp
│   │   │   ├── CreateGetTypeAliasOrDefault.hpp
│   │   │   ├── CreateHasStaticMemberVariable.hpp
│   │   │   ├── CreateHasTypeAlias.hpp
│   │   │   ├── CreateIsCallable.hpp
│   │   │   ├── FastPointerCast.hpp
│   │   │   ├── FunctionInfo.hpp
│   │   │   ├── GetFundamentalType.hpp
│   │   │   ├── HasEquivalence.hpp
│   │   │   ├── HasInequivalence.hpp
│   │   │   ├── IsA.hpp
│   │   │   ├── IsCallable.hpp
│   │   │   ├── IsComplexOfFundamental.hpp
│   │   │   ├── IsInteger.hpp
│   │   │   ├── IsIterable.hpp
│   │   │   ├── IsMaplike.hpp
│   │   │   ├── IsStdArray.hpp
│   │   │   ├── IsStdArrayOfSize.hpp
│   │   │   ├── IsStreamable.hpp
│   │   │   ├── RemoveReferenceWrapper.hpp
│   │   │   └── TypeTraits.hpp
│   │   ├── TypeTraits.hpp
│   │   ├── UtcTime.cpp
│   │   ├── UtcTime.hpp
│   │   ├── VectorAlgebra.hpp
│   │   ├── WrapText.cpp
│   │   └── WrapText.hpp
│   └── Visualization/
│       ├── CMakeLists.txt
│       └── Python/
│           ├── CMakeLists.txt
│           ├── ElementIdToParaview.py
│           ├── GenerateTetrahedralConnectivity.py
│           ├── GenerateXdmf.py
│           ├── Plot.py
│           ├── PlotAlongLine.py
│           ├── PlotCce.py
│           ├── PlotControlSystem.py
│           ├── PlotDatFile.py
│           ├── PlotEccentricityControl.py
│           ├── PlotEllipticConvergence.py
│           ├── PlotMemoryMonitors.py
│           ├── PlotPowerMonitors.py
│           ├── PlotSizeControl.py
│           ├── PlotSlice.py
│           ├── PlotTrajectories.py
│           ├── ReadInputFile.py
│           ├── Render1D.py
│           ├── Render3D/
│           │   ├── Bbh.py
│           │   ├── CMakeLists.txt
│           │   ├── Clip.py
│           │   ├── Domain.py
│           │   └── __init__.py
│           ├── __init__.py
│           └── plots.mplstyle
├── support/
│   ├── CMakeLists.txt
│   ├── Charm/
│   │   ├── v6.7.patch
│   │   ├── v6.8.patch
│   │   ├── v7.0.0.patch
│   │   └── v7.0.1.patch
│   ├── DevEnvironments/
│   │   └── spack.yaml
│   ├── Environments/
│   │   ├── anvil_gcc.sh
│   │   ├── caltech_hpc_gcc.sh
│   │   ├── expanse_gcc.sh
│   │   ├── frontera_gcc.sh
│   │   ├── mbot.sh
│   │   ├── ocean2.sh
│   │   ├── ocean2_orca1.sh
│   │   ├── ocean_gcc.sh
│   │   ├── oscar.sh
│   │   ├── perlmutter.sh
│   │   ├── setup/
│   │   │   ├── anvil_gcc.sh
│   │   │   ├── expanse_gcc.sh
│   │   │   ├── frontera_gcc.sh
│   │   │   └── mbot_install.sh
│   │   ├── sonic.sh
│   │   ├── urania.sh
│   │   └── viper.sh
│   ├── Machines/
│   │   ├── CaltechHpc.yaml
│   │   ├── Mbot.yaml
│   │   ├── Ocean2.yaml
│   │   ├── Ocean2_orca1.yaml
│   │   ├── Oscar.yaml
│   │   ├── Perlmutter.yaml
│   │   ├── Sonic.yaml
│   │   ├── Urania.yaml
│   │   └── Viper.yaml
│   ├── Pipelines/
│   │   ├── Bbh/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── ControlId.py
│   │   │   ├── EccentricityControl.py
│   │   │   ├── FindHorizon.py
│   │   │   ├── InitialData.py
│   │   │   ├── InitialData.yaml
│   │   │   ├── Inspiral.py
│   │   │   ├── Inspiral.yaml
│   │   │   ├── PostprocessId.py
│   │   │   ├── Ringdown.py
│   │   │   ├── Ringdown.yaml
│   │   │   └── __init__.py
│   │   ├── Bns/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── ComputeTrajectories.py
│   │   │   └── __init__.py
│   │   ├── CMakeLists.txt
│   │   └── EccentricityControl/
│   │       ├── CMakeLists.txt
│   │       ├── EccentricityControlParams.py
│   │       ├── InitialOrbitalParameters.py
│   │       └── __init__.py
│   ├── Profiling/
│   │   └── ScoreP/
│   │       └── spectre.flt
│   ├── Python/
│   │   ├── CMakeLists.txt
│   │   ├── CheckSpecImport.py
│   │   ├── CliExceptions.py
│   │   ├── DirectoryStructure.py
│   │   ├── Logging.py
│   │   ├── Machines.py
│   │   ├── Resubmit.py
│   │   ├── RunNext.py
│   │   ├── Schedule.py
│   │   ├── Yaml.py
│   │   ├── __init__.py
│   │   ├── __main__.py
│   │   ├── dev_requirements.txt
│   │   ├── requirements.txt
│   │   ├── shell-completion.bash
│   │   ├── shell-completion.fish
│   │   └── shell-completion.zsh
│   ├── SubmitScripts/
│   │   ├── Anvil.sh
│   │   ├── CaltechHpc.sh
│   │   ├── Expanse.sh
│   │   ├── Frontera.sh
│   │   ├── Mbot.sh
│   │   ├── Ocean2.sh
│   │   ├── Ocean2_orca1.sh
│   │   ├── Oscar.sh
│   │   ├── Perlmutter.sh
│   │   ├── Sonic.sh
│   │   ├── SubmitTemplateBase.sh
│   │   ├── Urania.sh
│   │   └── Viper.sh
│   └── TeXLive/
│       └── texlive.profile
├── tests/
│   ├── CMakeLists.txt
│   ├── InputFiles/
│   │   ├── Burgers/
│   │   │   └── Step.yaml
│   │   ├── Cce/
│   │   │   ├── AnalyticTestBouncingBlackHole.yaml
│   │   │   ├── AnalyticTestGaugeWave.yaml
│   │   │   ├── AnalyticTestLinearizedBondiSachs.yaml
│   │   │   ├── AnalyticTestRobinsonTrautman.yaml
│   │   │   ├── AnalyticTestRotatingSchwarzschild.yaml
│   │   │   ├── AnalyticTestTeukolskyWave.yaml
│   │   │   ├── AnalyticTestVolumeNewmanPenroseSpinCoefficients.yaml
│   │   │   ├── AnalyticTestVolumeNewmanPenroseSpinCoefficientsRhoGammaMu.py
│   │   │   ├── AnalyticTestVolumeUtils.py
│   │   │   ├── AnalyticTestVolumeWeylPsi2.py
│   │   │   ├── AnalyticTestVolumeWeylScalars.yaml
│   │   │   ├── CharacteristicExtract.yaml
│   │   │   └── KleinGordonCharacteristicExtract.yaml
│   │   ├── CurvedScalarWave/
│   │   │   ├── PlaneWaveMinkowski1D.yaml
│   │   │   ├── PlaneWaveMinkowski2D.yaml
│   │   │   ├── PlaneWaveMinkowski3D.yaml
│   │   │   └── WorldtubeKerrSchild.yaml
│   │   ├── Elasticity/
│   │   │   ├── BentBeam.yaml
│   │   │   ├── HalfSpaceMirror.yaml
│   │   │   └── SingleCoatingMirror.yaml
│   │   ├── ExampleExecutables/
│   │   │   ├── HelloWorldNoCharm.yaml
│   │   │   ├── PiMonteCarlo.yaml
│   │   │   ├── RandomAmr1D.yaml
│   │   │   ├── RandomAmrKeepCoarseGrids1D.yaml
│   │   │   └── SingletonHelloWorld.yaml
│   │   ├── ExportCoordinates/
│   │   │   ├── Input1D.yaml
│   │   │   ├── Input2D.yaml
│   │   │   ├── Input3D.yaml
│   │   │   └── InputTimeDependent3D.yaml
│   │   ├── ExportEquationOfStateForRotNS/
│   │   │   └── ExportEosForRotNS.yaml
│   │   ├── ForceFree/
│   │   │   └── FastWave.yaml
│   │   ├── GeneralizedHarmonic/
│   │   │   ├── CylindricalBinaryBlackHole.yaml
│   │   │   ├── GaugeWave1D.yaml
│   │   │   ├── GaugeWave3D.yaml
│   │   │   └── KerrSchild.yaml
│   │   ├── GrMhd/
│   │   │   ├── GhValenciaDivClean/
│   │   │   │   ├── BinaryNeutronStar.yaml
│   │   │   │   ├── CoreCollapseSupernova.yaml
│   │   │   │   ├── EvolutionParameters.perl
│   │   │   │   ├── GhMhdBondiMichel.yaml
│   │   │   │   └── GhMhdTovStar.yaml
│   │   │   └── ValenciaDivClean/
│   │   │       ├── BlastWave.yaml
│   │   │       └── FishboneMoncriefDisk.yaml
│   │   ├── NewtonianEuler/
│   │   │   ├── RiemannProblem1D.yaml
│   │   │   ├── RiemannProblem2D.yaml
│   │   │   └── RiemannProblem3D.yaml
│   │   ├── Poisson/
│   │   │   ├── Lorentzian.yaml
│   │   │   ├── ProductOfSinusoids1D.yaml
│   │   │   ├── ProductOfSinusoids2D.yaml
│   │   │   └── ProductOfSinusoids3D.yaml
│   │   ├── PreprocessCceWorldtube/
│   │   │   ├── AdmFirstOrderDriverPreprocessCceWorldtube.yaml
│   │   │   ├── AdmSecondOrderDriverPreprocessCceWorldtube.yaml
│   │   │   └── PreprocessCceWorldtube.yaml
│   │   ├── Punctures/
│   │   │   └── MultiplePunctures.yaml
│   │   ├── RadiationTransport/
│   │   │   └── M1Grey/
│   │   │       └── ConstantM1.yaml
│   │   ├── ScalarAdvection/
│   │   │   ├── Krivodonova1D.yaml
│   │   │   ├── Kuzmin2D.yaml
│   │   │   └── Sinusoid1D.yaml
│   │   ├── ScalarTensor/
│   │   │   └── KerrSchildSphericalHarmonic.yaml
│   │   ├── ScalarWave/
│   │   │   ├── PlaneWave1D.yaml
│   │   │   ├── PlaneWave1DEventsAndTriggersExample.yaml
│   │   │   ├── PlaneWave1DObserveExample.yaml
│   │   │   ├── PlaneWave2D.overlay_0000.yaml
│   │   │   ├── PlaneWave2D.yaml
│   │   │   ├── PlaneWave3D.yaml
│   │   │   └── PlaneWave3DCartoonSphere.yaml
│   │   ├── SelfForce/
│   │   │   ├── GrCircularOrbit.yaml
│   │   │   └── ScalarCircularOrbit.yaml
│   │   └── Xcts/
│   │       ├── BinaryBlackHole.yaml
│   │       ├── HeadOnBns.yaml
│   │       ├── KerrSchild.yaml
│   │       └── TovStar.yaml
│   ├── Unit/
│   │   ├── ArchitectureVectorization/
│   │   │   └── CMakeLists.txt
│   │   ├── CMakeLists.txt
│   │   ├── ControlSystem/
│   │   │   ├── Actions/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Test_GridCenters.cpp
│   │   │   │   ├── Test_Initialization.cpp
│   │   │   │   ├── Test_InitializeMeasurements.cpp
│   │   │   │   └── Test_LimitTimeStep.cpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── ControlErrors/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── ComovingCharSpeedDerivative.py
│   │   │   │   ├── Test_ComovingCharSpeedDerivative.cpp
│   │   │   │   ├── Test_Expansion.cpp
│   │   │   │   ├── Test_GridCenters.cpp
│   │   │   │   ├── Test_Rotation.cpp
│   │   │   │   ├── Test_Shape.cpp
│   │   │   │   ├── Test_SizeControlStates.cpp
│   │   │   │   ├── Test_SizeError.cpp
│   │   │   │   ├── Test_Skew.cpp
│   │   │   │   ├── Test_StateHistory.cpp
│   │   │   │   └── Test_Translation.cpp
│   │   │   ├── Protocols/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   └── Test_Protocols.cpp
│   │   │   ├── Systems/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Test_Expansion.cpp
│   │   │   │   ├── Test_GridCenters.cpp
│   │   │   │   ├── Test_RotScaleTrans.cpp
│   │   │   │   ├── Test_Rotation.cpp
│   │   │   │   ├── Test_Shape.cpp
│   │   │   │   ├── Test_Size.cpp
│   │   │   │   ├── Test_Skew.cpp
│   │   │   │   └── Test_Translation.cpp
│   │   │   ├── Tags/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Test_FunctionsOfTimeInitialize.cpp
│   │   │   │   ├── Test_FutureMeasurements.cpp
│   │   │   │   └── Test_MeasurementTimescales.cpp
│   │   │   ├── Test_Averager.cpp
│   │   │   ├── Test_CleanFunctionsOfTime.cpp
│   │   │   ├── Test_CombinedName.cpp
│   │   │   ├── Test_Controller.cpp
│   │   │   ├── Test_EventTriggerMetafunctions.cpp
│   │   │   ├── Test_ExpirationTimes.cpp
│   │   │   ├── Test_FutureMeasurements.cpp
│   │   │   ├── Test_IsSize.cpp
│   │   │   ├── Test_Measurements.cpp
│   │   │   ├── Test_Metafunctions.cpp
│   │   │   ├── Test_RunCallbacks.cpp
│   │   │   ├── Test_Tags.cpp
│   │   │   ├── Test_TimescaleTuner.cpp
│   │   │   ├── Test_Trigger.cpp
│   │   │   ├── Test_UpdateFunctionOfTime.cpp
│   │   │   └── Test_WriteData.cpp
│   │   ├── DataStructures/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── DataBox/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Test_DataBox.cpp
│   │   │   │   ├── Test_DataBoxDocumentation.cpp
│   │   │   │   ├── Test_DataBoxPrefixes.cpp
│   │   │   │   ├── Test_MetavariablesTag.cpp
│   │   │   │   ├── Test_ObservationBox.cpp
│   │   │   │   ├── Test_PrefixHelpers.cpp
│   │   │   │   ├── Test_Protocols.cpp
│   │   │   │   ├── Test_TagName.cpp
│   │   │   │   ├── Test_TagTraits.cpp
│   │   │   │   ├── Test_TestHelpers.cpp
│   │   │   │   └── Test_ValidateSelection.cpp
│   │   │   ├── Tensor/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── EagerMath/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── CrossProduct.py
│   │   │   │   │   ├── FrameTransform.py
│   │   │   │   │   ├── Python/
│   │   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   │   └── Test_EagerMath.py
│   │   │   │   │   ├── RaiseOrLowerIndex.py
│   │   │   │   │   ├── Test_CartesianToSpherical.cpp
│   │   │   │   │   ├── Test_CrossProduct.cpp
│   │   │   │   │   ├── Test_Determinant.cpp
│   │   │   │   │   ├── Test_DeterminantAndInverse.cpp
│   │   │   │   │   ├── Test_DotProduct.cpp
│   │   │   │   │   ├── Test_FrameTransform.cpp
│   │   │   │   │   ├── Test_GramSchmidtOrthonormalize.cpp
│   │   │   │   │   ├── Test_Magnitude.cpp
│   │   │   │   │   ├── Test_Norms.cpp
│   │   │   │   │   ├── Test_OrthonormalOneform.cpp
│   │   │   │   │   ├── Test_OuterProduct.cpp
│   │   │   │   │   ├── Test_RaiseOrLowerIndex.cpp
│   │   │   │   │   ├── Test_Trace.cpp
│   │   │   │   │   └── Trace.py
│   │   │   │   ├── Expressions/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── Test_AddSubSymmetry.cpp
│   │   │   │   │   ├── Test_AddSubtract.cpp
│   │   │   │   │   ├── Test_Contract.cpp
│   │   │   │   │   ├── Test_DataTypeSupport.cpp
│   │   │   │   │   ├── Test_Divide.cpp
│   │   │   │   │   ├── Test_Evaluate.cpp
│   │   │   │   │   ├── Test_EvaluateComplex.cpp
│   │   │   │   │   ├── Test_EvaluateRank3NonSymmetric.cpp
│   │   │   │   │   ├── Test_EvaluateRank3Symmetric.cpp
│   │   │   │   │   ├── Test_EvaluateRank4.cpp
│   │   │   │   │   ├── Test_EvaluateSpatialAndTimeSpacetimeIndex.cpp
│   │   │   │   │   ├── Test_EvaluateSpatialSpacetimeIndex.cpp
│   │   │   │   │   ├── Test_EvaluateTimeIndex.cpp
│   │   │   │   │   ├── Test_Examples.cpp
│   │   │   │   │   ├── Test_MixedOperations.cpp
│   │   │   │   │   ├── Test_Negate.cpp
│   │   │   │   │   ├── Test_Product.cpp
│   │   │   │   │   ├── Test_ProductHighRankIntermediate.cpp
│   │   │   │   │   ├── Test_SpatialSpacetimeIndex.cpp
│   │   │   │   │   ├── Test_SquareRoot.cpp
│   │   │   │   │   ├── Test_TensorIndex.cpp
│   │   │   │   │   ├── Test_TensorIndexTransformation.cpp
│   │   │   │   │   └── Test_TimeIndex.cpp
│   │   │   │   ├── Python/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   └── Test_Tensor.py
│   │   │   │   ├── Test_CombineSpacetimeView.cpp
│   │   │   │   ├── Test_ContractFirstNIndices.cpp
│   │   │   │   ├── Test_Identity.cpp
│   │   │   │   ├── Test_Metafunctions.cpp
│   │   │   │   ├── Test_Slice.cpp
│   │   │   │   ├── Test_Tensor.cpp
│   │   │   │   └── Test_TensorKokkos.cpp
│   │   │   ├── Test_ApplyMatrices.cpp
│   │   │   ├── Test_BlazeInteroperability.cpp
│   │   │   ├── Test_CachedTempBuffer.cpp
│   │   │   ├── Test_ComplexDataVector.cpp
│   │   │   ├── Test_ComplexDataVectorBinaryOperations.cpp
│   │   │   ├── Test_ComplexDiagonalModalOperator.cpp
│   │   │   ├── Test_ComplexModalVector.cpp
│   │   │   ├── Test_ComplexModalVectorInhomogeneousOperations.cpp
│   │   │   ├── Test_DataVector.cpp
│   │   │   ├── Test_DataVector.py
│   │   │   ├── Test_DataVectorBinaryOperations.cpp
│   │   │   ├── Test_DiagonalModalOperator.cpp
│   │   │   ├── Test_DynamicBuffer.cpp
│   │   │   ├── Test_ExtractPoint.cpp
│   │   │   ├── Test_FixedHashMap.cpp
│   │   │   ├── Test_FloatingPointType.cpp
│   │   │   ├── Test_IdPair.cpp
│   │   │   ├── Test_Index.cpp
│   │   │   ├── Test_IndexIterator.cpp
│   │   │   ├── Test_LeviCivitaIterator.cpp
│   │   │   ├── Test_LinkedMessageId.cpp
│   │   │   ├── Test_LinkedMessageQueue.cpp
│   │   │   ├── Test_MathWrapper.cpp
│   │   │   ├── Test_Matrix.py
│   │   │   ├── Test_ModalVector.cpp
│   │   │   ├── Test_ModalVector.py
│   │   │   ├── Test_ModalVectorInhomogeneousOperations.cpp
│   │   │   ├── Test_MoreComplexDiagonalModalOperatorMath.cpp
│   │   │   ├── Test_MoreDiagonalModalOperatorMath.cpp
│   │   │   ├── Test_NonZeroStaticSizeVector.cpp
│   │   │   ├── Test_SimpleSparseMatrix.cpp
│   │   │   ├── Test_SliceIterator.cpp
│   │   │   ├── Test_SliceTensorToVariables.cpp
│   │   │   ├── Test_SliceVariables.cpp
│   │   │   ├── Test_SparseMatrixFiller.cpp
│   │   │   ├── Test_SpinWeighted.cpp
│   │   │   ├── Test_StaticDeque.cpp
│   │   │   ├── Test_StripeIterator.cpp
│   │   │   ├── Test_TaggedContainers.cpp
│   │   │   ├── Test_TaggedTuple.cpp
│   │   │   ├── Test_TaggedVariant.cpp
│   │   │   ├── Test_Tags.cpp
│   │   │   ├── Test_TempBuffer.cpp
│   │   │   ├── Test_Transpose.cpp
│   │   │   ├── Test_Variables.cpp
│   │   │   ├── Test_VectorImpl.cpp
│   │   │   └── Test_VectorImplTestHelper.cpp
│   │   ├── Domain/
│   │   │   ├── Amr/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Test_Flag.cpp
│   │   │   │   ├── Test_Helpers.cpp
│   │   │   │   ├── Test_Info.cpp
│   │   │   │   ├── Test_NeighborsOfChild.cpp
│   │   │   │   ├── Test_NeighborsOfParent.cpp
│   │   │   │   ├── Test_NewNeighborIds.cpp
│   │   │   │   ├── Test_Tags.cpp
│   │   │   │   └── Test_UpdateAmrDecision.cpp
│   │   │   ├── BoundaryConditions/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Test_BoundaryCondition.cpp
│   │   │   │   ├── Test_GenericBcs.cpp
│   │   │   │   └── Test_GetBoundaryConditionsBase.cpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── CoordinateMaps/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Python/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   └── Test_Composition.py
│   │   │   │   ├── Test_Affine.cpp
│   │   │   │   ├── Test_BulgedCube.cpp
│   │   │   │   ├── Test_Composition.cpp
│   │   │   │   ├── Test_CoordinateMap.cpp
│   │   │   │   ├── Test_CylindricalEndcap.cpp
│   │   │   │   ├── Test_CylindricalFlatEndcap.cpp
│   │   │   │   ├── Test_CylindricalFlatSide.cpp
│   │   │   │   ├── Test_CylindricalSide.cpp
│   │   │   │   ├── Test_DiscreteRotation.cpp
│   │   │   │   ├── Test_Distribution.cpp
│   │   │   │   ├── Test_EquatorialCompression.cpp
│   │   │   │   ├── Test_Equiangular.cpp
│   │   │   │   ├── Test_FlatOffsetSphericalWedge.cpp
│   │   │   │   ├── Test_FlatOffsetWedge.cpp
│   │   │   │   ├── Test_Frustum.cpp
│   │   │   │   ├── Test_Identity.cpp
│   │   │   │   ├── Test_Interval.cpp
│   │   │   │   ├── Test_KerrHorizonConforming.cpp
│   │   │   │   ├── Test_PolarToCartesian.cpp
│   │   │   │   ├── Test_ProductMaps.cpp
│   │   │   │   ├── Test_Rotation.cpp
│   │   │   │   ├── Test_SpecialMobius.cpp
│   │   │   │   ├── Test_SphericalToCartesianPfaffian.cpp
│   │   │   │   ├── Test_Tags.cpp
│   │   │   │   ├── Test_TimeDependentHelpers.cpp
│   │   │   │   ├── Test_UniformCylindricalEndcap.cpp
│   │   │   │   ├── Test_UniformCylindricalFlatEndcap.cpp
│   │   │   │   ├── Test_UniformCylindricalSide.cpp
│   │   │   │   ├── Test_Wedge2D.cpp
│   │   │   │   ├── Test_Wedge3D.cpp
│   │   │   │   └── TimeDependent/
│   │   │   │       ├── CMakeLists.txt
│   │   │   │       ├── ShapeMapTransitionFunctions/
│   │   │   │       │   ├── CMakeLists.txt
│   │   │   │       │   ├── Test_SphereTransition.cpp
│   │   │   │       │   └── Test_Wedge.cpp
│   │   │   │       ├── Test_CubicScale.cpp
│   │   │   │       ├── Test_ProductMaps.cpp
│   │   │   │       ├── Test_RotScaleTrans.cpp
│   │   │   │       ├── Test_Rotation.cpp
│   │   │   │       ├── Test_RotationMatrixHelpers.cpp
│   │   │   │       ├── Test_Shape.cpp
│   │   │   │       ├── Test_Skew.cpp
│   │   │   │       ├── Test_SphericalCompression.cpp
│   │   │   │       └── Test_Translation.cpp
│   │   │   ├── Creators/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Python/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── Test_BinaryCompactObject.py
│   │   │   │   │   ├── Test_Brick.py
│   │   │   │   │   ├── Test_Cylinder.py
│   │   │   │   │   ├── Test_Interval.py
│   │   │   │   │   ├── Test_Rectangle.py
│   │   │   │   │   └── Test_Sphere.py
│   │   │   │   ├── Test_AlignedLattice.cpp
│   │   │   │   ├── Test_AngularCylinder.cpp
│   │   │   │   ├── Test_AngularDisk.cpp
│   │   │   │   ├── Test_BinaryCompactObject.cpp
│   │   │   │   ├── Test_Brick.cpp
│   │   │   │   ├── Test_CartoonCylinder.cpp
│   │   │   │   ├── Test_CartoonSphere1D.cpp
│   │   │   │   ├── Test_CartoonSphere2D.cpp
│   │   │   │   ├── Test_Cylinder.cpp
│   │   │   │   ├── Test_CylindricalBinaryCompactObject.cpp
│   │   │   │   ├── Test_Disk.cpp
│   │   │   │   ├── Test_ExpandOverBlocks.cpp
│   │   │   │   ├── Test_FrustalCloak.cpp
│   │   │   │   ├── Test_Interval.cpp
│   │   │   │   ├── Test_NonconformingSphericalShells.cpp
│   │   │   │   ├── Test_Rectangle.cpp
│   │   │   │   ├── Test_RotatedBricks.cpp
│   │   │   │   ├── Test_RotatedIntervals.cpp
│   │   │   │   ├── Test_RotatedRectangles.cpp
│   │   │   │   ├── Test_Sphere.cpp
│   │   │   │   ├── Test_SphericalShells.cpp
│   │   │   │   ├── Test_Tags.cpp
│   │   │   │   ├── TimeDependence/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── Test_CubicScale.cpp
│   │   │   │   │   ├── Test_None.cpp
│   │   │   │   │   ├── Test_RotationAboutZAxis.cpp
│   │   │   │   │   ├── Test_ScalingAndZRotation.cpp
│   │   │   │   │   ├── Test_Shape.cpp
│   │   │   │   │   ├── Test_SphericalCompression.cpp
│   │   │   │   │   └── Test_UniformTranslation.cpp
│   │   │   │   └── TimeDependentOptions/
│   │   │   │       ├── CMakeLists.txt
│   │   │   │       ├── Python/
│   │   │   │       │   ├── CMakeLists.txt
│   │   │   │       │   ├── Test_BinaryCompactObject.py
│   │   │   │       │   ├── Test_ExpansionMap.py
│   │   │   │       │   ├── Test_GridCenters.py
│   │   │   │       │   ├── Test_RotationMap.py
│   │   │   │       │   ├── Test_ShapeMap.py
│   │   │   │       │   ├── Test_SkewMap.py
│   │   │   │       │   └── Test_TranslationMap.py
│   │   │   │       ├── Test_BinaryCompactObject.cpp
│   │   │   │       ├── Test_ExpansionMap.cpp
│   │   │   │       ├── Test_FromVolumeFile.cpp
│   │   │   │       ├── Test_GridCenters.cpp
│   │   │   │       ├── Test_RotationMap.cpp
│   │   │   │       ├── Test_ShapeMap.cpp
│   │   │   │       ├── Test_Skew.cpp
│   │   │   │       ├── Test_Sphere.cpp
│   │   │   │       └── Test_TranslationMap.cpp
│   │   │   ├── FunctionsOfTime/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── IntegratedFunctionOfTime.serializations
│   │   │   │   ├── PiecewisePolynomial.serializations
│   │   │   │   ├── QuaternionFunctionOfTime.serializations
│   │   │   │   ├── Test_FixedSpeedCubic.cpp
│   │   │   │   ├── Test_FunctionsOfTimeAreReady.cpp
│   │   │   │   ├── Test_IntegratedFunctionOfTime.cpp
│   │   │   │   ├── Test_OutputTimeBounds.cpp
│   │   │   │   ├── Test_PiecewisePolynomial.cpp
│   │   │   │   ├── Test_QuaternionFunctionOfTime.cpp
│   │   │   │   ├── Test_QuaternionHelpers.cpp
│   │   │   │   ├── Test_SettleToConstant.cpp
│   │   │   │   ├── Test_SettleToConstantQuaternion.cpp
│   │   │   │   ├── Test_Tags.cpp
│   │   │   │   └── Test_ThreadsafeList.cpp
│   │   │   ├── JacobianDiagnostic.py
│   │   │   ├── NormalDotFlux.py
│   │   │   ├── Python/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Test_BlockAndElementLogicalCoordinates.py
│   │   │   │   ├── Test_Direction.py
│   │   │   │   ├── Test_Domain.py
│   │   │   │   ├── Test_ElementId.py
│   │   │   │   ├── Test_ElementMap.py
│   │   │   │   ├── Test_FunctionsOfTime.py
│   │   │   │   ├── Test_JacobianDiagnostic.py
│   │   │   │   ├── Test_RadiallyCompressedCoordinates.py
│   │   │   │   ├── Test_SegmentId.py
│   │   │   │   └── Test_StrahlkorperTransformations.py
│   │   │   ├── Structure/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── OrientationMap1d.serializations
│   │   │   │   ├── OrientationMap2d.serializations
│   │   │   │   ├── OrientationMap3d.serializations
│   │   │   │   ├── Test_BlockGroups.cpp
│   │   │   │   ├── Test_BlockId.cpp
│   │   │   │   ├── Test_BlockNeighbors.cpp
│   │   │   │   ├── Test_ChildSize.cpp
│   │   │   │   ├── Test_CreateInitialMesh.cpp
│   │   │   │   ├── Test_Direction.cpp
│   │   │   │   ├── Test_DirectionalId.cpp
│   │   │   │   ├── Test_Element.cpp
│   │   │   │   ├── Test_ElementId.cpp
│   │   │   │   ├── Test_FaceType.cpp
│   │   │   │   ├── Test_HasBoundary.cpp
│   │   │   │   ├── Test_Hypercube.cpp
│   │   │   │   ├── Test_IndexToSliceAt.cpp
│   │   │   │   ├── Test_InitialElementIds.cpp
│   │   │   │   ├── Test_NeighborIsConforming.cpp
│   │   │   │   ├── Test_Neighbors.cpp
│   │   │   │   ├── Test_ObjectLabel.cpp
│   │   │   │   ├── Test_OrientationMap.cpp
│   │   │   │   ├── Test_OrientationMapHelpers.cpp
│   │   │   │   ├── Test_SegmentId.cpp
│   │   │   │   ├── Test_Side.cpp
│   │   │   │   ├── Test_Topology.cpp
│   │   │   │   ├── Test_TrimMap.cpp
│   │   │   │   └── Test_ZCurve.cpp
│   │   │   ├── Tags/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Test_ElementDistribution.cpp
│   │   │   │   ├── Test_Faces.cpp
│   │   │   │   ├── Test_NeighborMesh.cpp
│   │   │   │   └── Test_SurfaceJacobian.cpp
│   │   │   ├── Test_AreaElement.cpp
│   │   │   ├── Test_Block.cpp
│   │   │   ├── Test_BlockAndElementLogicalCoordinates.cpp
│   │   │   ├── Test_CoordinatesTag.cpp
│   │   │   ├── Test_CoordsToDifferentFrame.cpp
│   │   │   ├── Test_CreateInitialElement.cpp
│   │   │   ├── Test_Domain.cpp
│   │   │   ├── Test_DomainHelpers.cpp
│   │   │   ├── Test_DomainTestHelpers.cpp
│   │   │   ├── Test_ElementDistribution.cpp
│   │   │   ├── Test_ElementMap.cpp
│   │   │   ├── Test_ElementSearchTree.cpp
│   │   │   ├── Test_ElementToBlockLogicalMap.cpp
│   │   │   ├── Test_ExcisionSphere.cpp
│   │   │   ├── Test_FaceNormal.cpp
│   │   │   ├── Test_FlatLogicalMetric.cpp
│   │   │   ├── Test_InterfaceHelpers.cpp
│   │   │   ├── Test_InterfaceItems.cpp
│   │   │   ├── Test_InterfaceLogicalCoordinates.cpp
│   │   │   ├── Test_JacobianDiagnostic.cpp
│   │   │   ├── Test_MinimumGridSpacing.cpp
│   │   │   ├── Test_RadiallyCompressedCoordinates.cpp
│   │   │   ├── Test_SizeOfElement.cpp
│   │   │   ├── Test_StrahlkorperTransformations.cpp
│   │   │   ├── Test_Tags.cpp
│   │   │   ├── Test_TagsCharacteristicSpeeds.cpp
│   │   │   └── Test_TagsTimeDependent.cpp
│   │   ├── Elliptic/
│   │   │   ├── Actions/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Test_InitializeAnalyticSolution.cpp
│   │   │   │   ├── Test_InitializeBackgroundFields.cpp
│   │   │   │   ├── Test_InitializeFields.cpp
│   │   │   │   ├── Test_InitializeFixedSources.cpp
│   │   │   │   └── Test_RunEventsAndTriggers.cpp
│   │   │   ├── BoundaryConditions/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Tags/
│   │   │   │   │   └── Test_BoundaryFields.cpp
│   │   │   │   ├── Te

================================================
FILE CONTENTS
================================================

================================================
FILE: .clang-format
================================================
---
# We'll use defaults from the Google style.
# See http://clang.llvm.org/docs/ClangFormat.html for help.
#
# We include the full configuration to avoid changes with our code
# formatting when there are changes added in clang-format or changes
# in Google's style
Language:        Cpp

# BasedOnStyle:  Google
AccessModifierOffset: -1
AlignAfterOpenBracket: Align
AlignConsecutiveAssignments: false
AlignConsecutiveDeclarations: false
AlignEscapedNewlines: Left
AlignOperands:   true
AlignTrailingComments: true
AllowAllParametersOfDeclarationOnNextLine: true
AllowShortBlocksOnASingleLine: false
AllowShortCaseLabelsOnASingleLine: false
AllowShortFunctionsOnASingleLine: All
AlwaysBreakAfterDefinitionReturnType: None
AlwaysBreakAfterReturnType: None
AlwaysBreakBeforeMultilineStrings: true
AlwaysBreakTemplateDeclarations: true
BinPackArguments: true
BinPackParameters: true
BraceWrapping:
  AfterClass:      false
  AfterControlStatement: false
  AfterEnum:       false
  AfterFunction:   false
  AfterNamespace:  false
  AfterObjCDeclaration: false
  AfterStruct:     false
  AfterUnion:      false
  BeforeCatch:     false
  BeforeElse:      false
  IndentBraces:    false
  SplitEmptyFunction: true
  SplitEmptyRecord: true
  SplitEmptyNamespace: true
BreakBeforeBinaryOperators: None
BreakBeforeBraces: Attach
BreakBeforeInheritanceComma: false
BreakBeforeTernaryOperators: true
BreakConstructorInitializersBeforeComma: false
BreakConstructorInitializers: BeforeColon
BreakAfterJavaFieldAnnotations: false
BreakStringLiterals: true
ColumnLimit:     80
CompactNamespaces: false
ConstructorInitializerAllOnOneLineOrOnePerLine: true
ConstructorInitializerIndentWidth: 4
ContinuationIndentWidth: 4
Cpp11BracedListStyle: true
DisableFormat:   false
ExperimentalAutoDetectBinPacking: false
FixNamespaceComments: true
ForEachMacros:
  - foreach
  - Q_FOREACH
  - BOOST_FOREACH
IncludeCategories:
  - Regex:           '^<.*'
    Priority:        1
  - Regex:           '.*'
    Priority:        2
IncludeIsMainRegex: '([-_](test|unittest))?$'
IndentCaseLabels: true
IndentWidth:     2
IndentWrappedFunctionNames: false
JavaScriptQuotes: Leave
JavaScriptWrapImports: true
KeepEmptyLinesAtTheStartOfBlocks: false
MacroBlockBegin: ''
MacroBlockEnd:   ''
MaxEmptyLinesToKeep: 1
NamespaceIndentation: None
ObjCBlockIndentWidth: 2
ObjCSpaceAfterProperty: false
ObjCSpaceBeforeProtocolList: false
PenaltyBreakAssignment: 2
PenaltyBreakBeforeFirstCallParameter: 1
PenaltyBreakComment: 300
PenaltyBreakFirstLessLess: 120
PenaltyBreakString: 1000
PenaltyExcessCharacter: 1000000
PenaltyReturnTypeOnItsOwnLine: 200
ReflowComments:  true
SortIncludes:    true
SortUsingDeclarations: true
SpaceAfterCStyleCast: false
SpaceAfterTemplateKeyword: true
SpaceBeforeAssignmentOperators: true
SpaceBeforeParens: ControlStatements
SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 2
SpacesInAngles:  false
SpacesInContainerLiterals: true
SpacesInCStyleCastParentheses: false
SpacesInParentheses: false
SpacesInSquareBrackets: false
Standard:        Auto
TabWidth:        8
UseTab:          Never

AllowShortIfStatementsOnASingleLine: false
AllowShortLoopsOnASingleLine: false
PointerAlignment: Left
DerivePointerAlignment: false
...


================================================
FILE: .clang-tidy
================================================
# Define the checks we want to use and remove with comments as to why.
#
# Here is a list of the quirks with clang-tidy file format:
# - no apostrophes in the comments
# - every comment line in the checks must end with a comma
# - every line in the checks must start at the beginning of the line
Checks: '*,
-abseil-*,
-altera-*,
-android-*,
-bugprone-easily-swappable-parameters,
-bugprone-exception-escape,
# complains about Catch macros having infinite loops,
-bugprone-infinite-loop,
# false positive: Catch2 CHECK(a == b) expands to Decomposer() <= a == b,
# which triggers the chained comparison check on macro-generated code.,
-bugprone-chained-comparison,
-bugprone-macro-parentheses,
# useless as it triggers on calls to value() which already do a check,
# and is too aggressive as it requires the check to be immediately before the
# access.
-bugprone-unchecked-optional-access,
# Official justification is not public, unofficial justification has nothing,
# specific to iterators and is basically "never create mutable temporaries",,
# which is against standard practice everywhere else.,
-cert-dcl21-cpp,
# many static variables we use do not throw and if they do we,
# want to terminate anyway,
-cert-err58-cpp,
-cert-msc51-cpp,
-cert-msc32-c,
# checks for incorrectly implemented self-assignment,
# checks.  However, it is broken.,
-cert-oop54-cpp,
-cppcoreguidelines-avoid-c-arrays,
-cppcoreguidelines-avoid-do-while,
# too many inconvenient positives for us to deal with,
-cppcoreguidelines-avoid-magic-numbers,
# false positives,
-cppcoreguidelines-c-copy-assignment-signature,
# sometimes macros are the right answer.,
-cppcoreguidelines-macro-usage,
# public and protected member variables are fine,
-cppcoreguidelines-non-private-member-variables-in-classes,
# We do not use gsl::owner,
-cppcoreguidelines-owning-memory,
-fuchsia-*,
# defaulting virtual functions in CoordinateMap,
-google-default-arguments,
# Documented as redundant with -Wold-style-cast.  Has more false positives.,
-google-readability-casting,
# specifying int32_t and int64_t instead of just int,
-google-runtime-int,
# redundant with other checks,
-hicpp-*,
# We use pragma once instead of include guards,
-llvm-header-guard,
# Makes code less portable because some implementation-defined STL,
# types can be pointers or not.  Same as,
# readability-qualified-auto below,
-llvm-qualified-auto,
# We are not developing LLVM libc,
-llvmlibc-*,
# anonymous namespaces are the idiomatic C++ way to restrict visibility;,
# conflicts with misc-use-anonymous-namespace which prefers anonymous namespaces.,
-llvm-prefer-static-over-anonymous-namespace,
# Triggers when "l" is used because it is "too similar" to "I",
-misc-confusable-identifiers,
# thinks constexpr variables in header files cause ODR violations,
-misc-definitions-in-headers,
# Insufficiently configurable, does not handle system headers well,
-misc-include-cleaner,
# false positives,
-misc-noexcept-move-constructor,
-misc-non-private-member-variables-in-classes,
# false positives,
-misc-unconventional-assign-operator,
-modernize-raw-string-literal,
# should be used, but requires possibly a lot of code changes that,
# we do not have the resources for,
-modernize-use-nodiscard,
# this wants everything to use trailing return type syntax, which,
# is silly.,
-modernize-use-trailing-return-type,
-performance-noexcept-move-constructor,
# complains about decltype(auto),
-readability-const-return-type,
# style choice, discussed in issue #145,
-readability-else-after-return,
-llvm-else-after-return,
# flagged code that is not very complex,
-readability-function-cognitive-complexity,
# We have lots of "x", "p", & "os" variable names,
-readability-identifier-length,
-readability-magic-numbers,
-misc-confusable-identifiers
# Same as llvm-qualified-auto above.,
-readability-qualified-auto,
# Access specifiers can be useful to structure code,
-readability-redundant-access-specifiers,
# We can have two of: methods are static when possible, static,
# methods are not called through instances, and methods of,
# calling, e.g., x.size(), are consistent across classes.  We,
# choose to lose this one.,
-readability-static-accessed-through-instance,
# we are okay with lower case,
-readability-uppercase-literal-suffix,'
CheckOptions:
  - key: cppcoreguidelines-avoid-do-while.IgnoreMacros
    value: true
  - key: cppcoreguidelines-special-member-functions.AllowMissingMoveFunctions
    value: true
  - key: cppcoreguidelines-special-member-functions.AllowSoleDefaultDtor
    value: true
  - key: performance-move-const-arg.CheckTriviallyCopyableMove
    value: false
  # The fix for this is not supported by GCC 9.
  - key: modernize-loop-convert.UseCxx20ReverseRanges
    value: false
WarningsAsErrors: '*'
# It is unclear if the header filter actually works or how to use it so
# just include all headers
HeaderFilterRegex: ''
FormatStyle:     none


================================================
FILE: .claude/hooks/PostFormat.sh
================================================
#!/usr/bin/env bash

# Distributed under the MIT License.
# See LICENSE.txt for details.

# Claude Code PostToolUse hook: auto-format files after Edit/Write.
#
# - C++ (.cpp, .hpp, .tpp):
#     Edit  -> git-clang-format -f (diff-only formatting)
#     Write -> clang-format -i    (whole-file formatting)
# - Python (.py):
#     black -q && isort -q        (single-file formatting)

# Returns the path to the best available git-clang-format binary.
# Prefers the unversioned `git-clang-format`, then falls back to the
# highest-versioned `git-clang-format-N` found in PATH.
find_git_clang_format() {
  if command -v git-clang-format &>/dev/null; then
    echo "git-clang-format"
    return
  fi
  local best_ver=0 best_bin=""
  IFS=: read -ra dirs <<< "$PATH"
  for dir in "${dirs[@]}"; do
    for bin in "$dir"/git-clang-format-*; do
      [[ -x "$bin" ]] || continue
      local ver="${bin##*-}"
      [[ "$ver" =~ ^[0-9]+$ ]] || continue
      (( ver > best_ver )) && { best_ver=$ver; best_bin=$bin; }
    done
  done
  echo "$best_bin"
}

INPUT=$(cat)
FILE=$(echo "$INPUT" | jq -r '.tool_input.file_path // empty')
TOOL=$(echo "$INPUT" | jq -r '.tool_name // empty')

if [[ -z "$FILE" || ! -f "$FILE" ]]; then
  exit 0
fi

case "$FILE" in
  *.cpp|*.hpp|*.tpp)
    if [[ "$TOOL" == "Write" ]]; then
      clang-format -i "$FILE" 2>/dev/null
    else
      gcf=$(find_git_clang_format)
      if [[ -n "$gcf" ]]; then
        "$gcf" -f -- "$FILE" 2>/dev/null
      else
        clang-format -i "$FILE" 2>/dev/null
      fi
    fi
    ;;
  *.py)
    black -q "$FILE" 2>/dev/null
    isort -q "$FILE" 2>/dev/null
    ;;
esac

exit 0


================================================
FILE: .claude/rules/CMake.md
================================================
---
triggers:
  - glob: "**/CMakeLists.txt"
---

- Files listed in spectre_target_sources() and spectre_target_headers() must be
  in alphabetical order (case-insensitive). When adding or removing entries,
  maintain the sorted order.
- Use ${LIBRARY} variable in CMake target calls, not hardcoded library names.


================================================
FILE: .claude/rules/Cxx.md
================================================
---
triggers:
  - glob: "**/*.{hpp,cpp,tpp}"
---

# SpECTRE Code Rules Reference

## Banned Patterns
- `#include <iostream>` -> `Parallel/Printf/Printf.hpp` with `Parallel::printf`
- `#include <lrtslock.h>` -> `#include <converse.h>`
- `std::enable_if` -> C++20 `requires` clause
- `||` `&&` `!` (logical operators) -> `or` `and` `not` (C++ alternative
  tokens). Note: `!=` is fine.
- `.ckLocal()` -> `Parallel::local(proxy)`
- `.ckLocalBranch()` -> `Parallel::local_branch(proxy)`
- `return Py_None;` -> `Py_RETURN_NONE`
- `TEST_CASE(` -> `SPECTRE_TEST_CASE(`
- `Approx(` in tests -> `approx` from `Framework/TestingFramework.hpp`
- `namespace _details` / `namespace details` -> `_detail` / `detail`
- `boost::optional` / `boost/optional.hpp` -> `std::optional`
- `mutable` member variables -> avoid (race conditions in parallel); discuss
  with core devs
- `struct TD;` / `class TD;` -> remove (debug artifacts)
- `Ls` as abbreviation -> use `List`
- `int` for container sizes/indices -> `size_t`
- `noexcept` -> don't add unless overriding a signature that requires it

## Prefer-Library Patterns
When you see manual loops over Tensor indices, suggest the existing utility:
- Dot product -> `DataStructures/Tensor/EagerMath/DotProduct.hpp`
- Cross product -> `EagerMath/CrossProduct.hpp`
- Trace -> `EagerMath/Trace.hpp`
- Determinant -> `EagerMath/Determinant.hpp` or `DeterminantAndInverse.hpp`
- Magnitude/norm -> `EagerMath/Magnitude.hpp` or `Norms.hpp`
- Outer product -> `EagerMath/OuterProduct.hpp`
- Raise/lower index -> `EagerMath/RaiseOrLowerIndex.hpp`
- Gram-Schmidt -> `EagerMath/GramSchmidtOrthonormalize.hpp`
- Frame transform -> `EagerMath/FrameTransform.hpp`
- Cartesian<->Spherical -> `EagerMath/CartesianToSpherical.hpp`

If you spot a tensor loop not covered above, grep
`src/DataStructures/Tensor/EagerMath/` and `src/NumericalAlgorithms/` for an
existing utility before suggesting the author write their own. Encourage use
of tensor expressions `src/DataStructures/Tensor/Expressions/`.

For general relativity, generalized harmonic, CCZ4, apparent horizons, and
GRMHD, many manipulations like shift from spacetime metric, lapse from spacetime
metric, derivative of shift, etc. are implemented as functions in
`src/PointwiseFunctions/GeneralRelativity` or `src/PointwiseFunctions/Hydro`.

## Style Rules
- **Naming**: CamelCase for classes, template params, files, dirs. snake_case
  for functions, variables. SCREAMING_SNAKE_CASE for macros. Trailing `_` on
  private members. Unused params: `/*name*/`.
- **Names**: Use full, descriptive names (e.g., `block_id` not `blk_id`).
- **Almost always `auto`** except expression templates (e.g. `DataVector`)
- **Braces on all loops and if/else** (no braceless one-liners)
- **Return by value** preferred. Mutable out-params: `gsl::not_null<T*>` (listed
  first in arg list).
- **`std::move`** into members from by-value constructor parameters
- **`get<a,b>(tensor)`** when indices are compile-time known
- **Explicit double literals**: `2.0` or `2.`, never bare `2` in floating-point
  context
- **`#pragma once`** for header guards (not `#ifndef`)
- **`override`** keyword on all virtual overrides
- **`const`** on all immutable objects
- **No top-level `const` on value parameters in declarations**: In `.hpp`
  forward declarations, don't mark value parameters (including pointer-by-value)
  as `const`. `const` is fine in the corresponding definition. Example:
  `void foo(int x, double* ptr);` (declaration) vs
  `void foo(const int x, double* const ptr) { ... }` (definition).
- **Templates**: prefer definitions in `.cpp` with explicit instantiations
  (`GENERATE_EXPLICIT_INSTANTIATIONS`)
- **Internal namespaces**: `LibraryOrFile_detail` (e.g. `Tensor_detail`)
- **Macros**: avoid if possible; use `constexpr` or templates. Macro vars: add
  suffix to avoid collisions.
- **Error messages**: descriptive, include runtime values. Bad: "Size
  mismatch". Good: "The number of grid points in matrix 'F' (N) != determinant
  grid points (M)."
- **Header order**: (1) TestingFramework.hpp + blank (tests), (2) corresponding
  .hpp + blank (.cpp files), (3) STL/external `<>` alphabetical, (4) blank, (5)
  SpECTRE `""` alphabetical
- **Doxygen**: required for all public API in `.hpp`. Use `///` or `/*!`. NO
  doxygen in `.cpp`. Use `\f$...\f$` for inline math, `align` env (not
  `eqnarray`) for multi-line. Blank doxygen line before/after out-of-line
  equations.
- **CMake lists**: alphabetical. Use `${LIBRARY}` variable, not hardcoded names.

## Test Requirements
- Files: `tests/Unit/<mirrors_src>/Test_<SourceFile>.cpp`
- Include order: `"Framework/TestingFramework.hpp"`, blank line,
  system/external includes, blank line, spectre includes.
- All helper classes/functions in anonymous `namespace {}`
- Test macro: `SPECTRE_TEST_CASE("Unit.Category.Name", "[Unit][Category]")`
- Floating-point: `CHECK_ITERABLE_APPROX` (not `Approx`)
- Completion: < 5 seconds (prefer < 0.5s)
- Random values: `MAKE_GENERATOR(gen)`, test 10^4 times for tolerance
- Error tests: `CHECK_THROWS_WITH` inside `#ifdef SPECTRE_DEBUG`
- Pointwise functions: test with analytic solution AND random-value comparison
  via `pypp::check_with_random_values()`
- Use metamorphic tests: like `sin^2(x)+cos^2(x)=1` or that a spacetime vector
  in general relativity that should be null is actually null. I.e, test
  identities.
- Name tests after the component and behavior (e.g.,
  `Test_ApparentHorizonFinder`).
- Prefer a single `SPECTRE_TEST_CASE` that calls several anonymous-namespace
  helper functions over many small `SPECTRE_TEST_CASE`s.
- Increase test timeouts sparingly. If necessary, use `// [[TimeOut, SECONDS]]`
  on the line before `SPECTRE_TEST_CASE`. Default timeout is 2 seconds.


================================================
FILE: .claude/settings.json
================================================
{
  "permissions": {
    "allow": [
      "Skill(spectre-fix-ci)",
      "Skill(spectre-fix-issue)",
      "Skill(spectre-fix-pr)",
      "Skill(spectre-review)"
    ]
  },
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Edit|Update|Write",
        "hooks": [
          {
            "type": "command",
            "command": "$CLAUDE_PROJECT_DIR/.claude/hooks/PostFormat.sh"
          }
        ]
      }
    ]
  }
}


================================================
FILE: .claude/skills/spectre-fix-ci/SKILL.md
================================================
---
name: spectre-fix-ci
description: >
  Fetch and analyze a failed GitHub Actions job log. When viewing a job
  in GitHub Actions, the job ID is the last number in the URL, e.g. in
  "runs/24319442407/job/71002790711" the job ID is "71002790711".
allowed-tools: ["Bash"]
argument-hint: "JOB_ID [--owner OWNER]"
user-invocable: true
model-invocable: false
---

Read and follow instructions in file
`$(git rev-parse --show-toplevel)/.skills/spectre-fix-ci/SKILL.md`


================================================
FILE: .claude/skills/spectre-fix-issue/SKILL.md
================================================
---
name: spectre-fix-issue
description: >
  Fetch a GitHub issue by number. Trigger when the user references a GitHub
  issue (e.g. "fix issue #1727", "work on #1727").
allowed-tools: ["Bash", "Read"]
argument-hint: "ISSUE_NUMBER [--repo OWNER/REPO] [--full]"
---

Read and follow instructions in file
`$(git rev-parse --show-toplevel)/.skills/spectre-fix-issue/SKILL.md`


================================================
FILE: .claude/skills/spectre-fix-pr/SKILL.md
================================================
---
name: spectre-fix-pr
description: >
  Fetch PR review comments. Trigger when users reference a PR
  (e.g. "address comments on PR #1234", "work on PR #1234 reviews").
allowed-tools: ["Bash", "Read"]
argument-hint: "PR_NUMBER [--repo OWNER/REPO]"
---

Read and follow instructions in file
`$(git rev-parse --show-toplevel)/.skills/spectre-fix-pr/SKILL.md`


================================================
FILE: .claude/skills/spectre-review/SKILL.md
================================================
---
name: spectre-review
description: SpECTRE code review (PR or local commits)
argument-hint: "[PR#] [clang-tidy] [coverage]"
allowed-tools: ["Bash", "Read", "Grep", "Glob", "Agent", "AskUserQuestion", "TaskCreate", "TaskUpdate", "TaskList"]
disable-model-invocation: true
---

Read and follow instructions in file
`$(git rev-parse --show-toplevel)/.skills/spectre-review/SKILL.md`


================================================
FILE: .codecov.yaml
================================================
# Distributed under the MIT License.
# See LICENSE.txt for details.

# Disable PR comments
comment: false

coverage:
  status:
    # Check that PRs increase overall coverage
    project:
      default:
        target: auto
        # Account for random-value tests sometimes taking different code paths
        threshold: 0.3%
    # Check that PRs are fully tested
    patch:
      default:
        target: 100%


================================================
FILE: .devcontainer/cmake-kits.json
================================================
[
    {
        "name": "Default",
        "compilers": {
            "C": "clang",
            "CXX": "clang++",
            "Fortran": "gfortran"
        },
        "cmakeSettings": {
            "BUILD_SHARED_LIBS": "ON",
            "MEMORY_ALLOCATOR": "SYSTEM"
        },
        "preferredGenerator": {
            "name": "Unix Makefiles"
        }
    }
]


================================================
FILE: .devcontainer/devcontainer.json
================================================
{
    "name": "SpECTRE development environment",
    "image": "sxscollaboration/spectre:dev",
    "workspaceMount": "source=${localWorkspaceFolder},target=${localWorkspaceFolder},type=bind,consistency=delegated",
    "workspaceFolder": "${localWorkspaceFolder}",
    "customizations": {
        "vscode": {
            "extensions": [
                "eamodio.gitlens",
                "foxundermoon.shell-format",
                "github.vscode-pull-request-github",
                "gruntfuggly.format-modified",
                "ms-python.black-formatter",
                "ms-python.python",
                "ms-vscode.cmake-tools",
                "ms-vscode.cpptools",
                "ms-vsliveshare.vsliveshare",
                "redhat.vscode-yaml",
                "stkb.rewrap",
                "streetsidesoftware.code-spell-checker",
                "twxs.cmake"
            ],
            "settings": {
                "cmake.buildDirectory": "${localWorkspaceFolder}/build-${buildKit}-${buildType}",
                "editor.rulers": [80],
                "editor.wordWrap": "off",
                "editor.formatOnSave": false,
                "editor.formatOnPaste": true,
                "editor.formatOnType": true,
                "python.pythonPath": "/usr/bin/python3",
                "[python]": {
                    "editor.defaultFormatter": "ms-python.black-formatter"
                }
            }
        }
    },
    "remoteEnv": {
        "SPECTRE_HOME": "${localWorkspaceFolder}"
    },
    "postCreateCommand": "git config --global --add safe.directory ${localWorkspaceFolder} && mkdir -p /root/.local/share/CMakeTools && cp ${localWorkspaceFolder}/.devcontainer/cmake-kits.json /root/.local/share/CMakeTools/cmake-tools-kits.json"
}


================================================
FILE: .dockerignore
================================================
# Distributed under the MIT License.
# See LICENSE.txt for details.

# Build directories
# Ignore build dirs named similarly to the example in the installation notes;
# in general arbitrary names are possible and cannot all be ignored. This will
# keep the size of the context down and prevent errors in the demo image where
# we create our own `build` directory in the container
build*
containers/Dockerfile.buildenv


================================================
FILE: .github/ISSUE_TEMPLATE.md
================================================
# Bug reports:

### Expected behavior:

<!--
describe the expected behavior
-->

### Current behavior:

<!--
describe the current behavior and how to reproduce
-->

### Environment:

Add as an attachment `$SPECTRE_BUILD_DIR/BuildInfo.txt` or
add its contents here.

# Feature request:

### Component:

- [ ] Code
- [ ] Documentation
- [ ] Build system
- [ ] Continuous integration

### Desired feature:

- [ ] Detail 1
- [ ] Detail 2
- [ ] Detail 3

### Detailed discussion:


================================================
FILE: .github/PULL_REQUEST_TEMPLATE.md
================================================
## Proposed changes

<!--
At a high level, describe what this PR does.
-->

### Upgrade instructions

<!--
If this PR makes changes that other people should be aware of when upgrading
their code, describe what they should do between the two UPGRADE INSTRUCTIONS
lines below.
-->
<!-- UPGRADE INSTRUCTIONS -->

<!-- UPGRADE INSTRUCTIONS -->

### Code review checklist

- [ ] The code is documented and the documentation renders correctly. Run
  `make doc` to generate the documentation locally into `BUILD_DIR/docs/html`.
  Then open `index.html`.
- [ ] The code follows the stylistic and code quality guidelines listed in the
  [code review guide](https://spectre-code.org/code_review_guide.html).
- [ ] The PR lists upgrade instructions and is labeled `bugfix` or
  `new feature` if appropriate.
- [ ] If a coding agent is used, have one of
      "Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>",
      "Co-Authored-by: Codex <noreply@openai.com>", or
      "Co-Authored-By: GitHub Copilot CLI <noreply@microsoft.com>"
      as the last line of the commit, depending on the agent.

### Further comments

<!--
If this is a relatively large or complex change, kick off the discussion by
explaining why you chose the solution you did and what alternatives you
considered, etc...
-->


================================================
FILE: .github/actions/parse-compiler/action.yaml
================================================
# Distributed under the MIT License.
# See LICENSE.txt for details.

name: Parse compiler

description: |
  Parse the compiler name and version from the input and set the environment
  variables CC, CXX, FC, COMPILER_ID, and COMPILER_VERSION.
  For nvcc, it sets CC, CXX, and FC to the host compilers (gcc, g++, gfortran).

inputs:
  compiler:
    description: Compiler to parse, e.g. 'gcc-10'
    required: true

runs:
  using: "composite"
  steps:
    - run: |
        if [[ ${{ inputs.compiler }} =~ (gcc|clang|nvcc)-([0-9\.\-]+) ]]; then
          COMPILER_ID=${BASH_REMATCH[1]}
          COMPILER_VERSION=${BASH_REMATCH[2]}
          if [[ $COMPILER_ID = gcc ]]; then
            CC=gcc-${COMPILER_VERSION};
            CXX=g++-${COMPILER_VERSION};
            FC=gfortran-${COMPILER_VERSION};
          elif [[ $COMPILER_ID = clang ]]; then
            CC=clang-${COMPILER_VERSION};
            CXX=clang++-${COMPILER_VERSION};
            FC=gfortran-11;
          elif [[ $COMPILER_ID = nvcc ]]; then
            # Set host compilers
            CC=gcc;
            CXX=g++;
            FC=gfortran-11;
          fi
        fi
        echo "CC=$CC" >> $GITHUB_ENV
        echo "CXX=$CXX" >> $GITHUB_ENV
        echo "FC=$FC" >> $GITHUB_ENV
        echo "COMPILER_ID=$COMPILER_ID" >> $GITHUB_ENV
        echo "COMPILER_VERSION=$COMPILER_VERSION" >> $GITHUB_ENV
      shell: bash


================================================
FILE: .github/problem_matchers/ClangTidy.json
================================================
{
  "problemMatcher": [
    {
      "owner": "clang-tidy",
      "pattern": [
        {
          "regexp": "^(?:\\x1b\\[[\\d;]+m)*(.+):(\\d+):(\\d+):\\s(?:\\x1b\\[[\\d;]+m)*(error):\\s(?:\\x1b\\[[\\d;]+m)*(.+)\\s\\[(.+)\\](?:\\x1b\\[[\\d;]+m)*$",
          "file": 1,
          "line": 2,
          "column": 3,
          "severity": 4,
          "message": 5,
          "code": 6
        }
      ]
    }
  ]
}


================================================
FILE: .github/scripts/Release.py
================================================
#!/usr/bin/env python

# Distributed under the MIT License.
# See LICENSE.txt for details.

import datetime
import difflib
import logging
import operator
import os
import pathlib
import re
import tempfile
import textwrap
import urllib
from typing import List

import git
import pybtex.database
import requests
import uplink
import yaml
from cffconvert.citation import Citation
from pybtex.backends.plaintext import Backend as PlaintextBackend
from pybtex.style.formatting.plain import Style as PlainStyle

logger = logging.getLogger(__name__)

VERSION_PATTERN = r"(\d{4})\.(\d{2})\.(\d{2})(\.\d+)?"
PUBLICATION_DATE_PATTERN = r"\d{4}-\d{2}-\d{2}"
DOI_PATTERN = r"10\.\d{4,9}/zenodo\.\d+"
ZENODO_ID_PATTERN = r"\d+"


def report_check_only(msg: str):
    logger.info(f"CHECK ONLY: {msg}")


def new_version_id_from_response(response):
    """Retrieves the ID of the new version draft from the API response

    The "New version" action of the Zenodo API returns the ID of the created
    version draft in the 'links' section, as documented
    [here](https://developers.zenodo.org/#new-version). This function parses the
    ID out of the link.
    """
    new_version_url = response.json()["links"]["latest_draft"]
    return int(
        pathlib.PurePosixPath(
            urllib.parse.urlparse(new_version_url).path
        ).parts[-1]
    )


def raise_for_status(response):
    try:
        response.raise_for_status()
    except requests.exceptions.HTTPError as err:
        if response.status_code >= 400 and response.status_code < 500:
            raise requests.exceptions.HTTPError(
                yaml.safe_dump(response.json(), allow_unicode=True)
            ) from err
        else:
            raise
    return response


@uplink.response_handler(raise_for_status)
class Zenodo(uplink.Consumer):
    """Abstraction of the [Zenodo API](https://developers.zenodo.org)"""

    @uplink.returns.json
    @uplink.get("deposit/depositions/{id}")
    def get_deposition(self, id: uplink.Path):
        """Retrieves a deposition by ID."""
        pass

    @uplink.returns.json
    @uplink.get("records/{id}")
    def get_record(self, id: uplink.Path):
        """Retrieves a published record by ID."""
        pass

    @uplink.returns.json(
        key=("metadata", "relations", "version", 0, "is_last"),
        type=bool,
    )
    @uplink.get("records/{id}")
    def is_latest_version(self, record_id: uplink.Path(name="id")):
        """Checks whether the record is the latest version."""
        pass

    @uplink.response_handler(new_version_id_from_response)
    @uplink.post("deposit/depositions/{id}/actions/newversion")
    def new_version(self, latest_version_id: uplink.Path(name="id")):
        """Invoke the "New version" action on a deposition.

        Returns:
          The ID of the new version.
        """
        pass

    @uplink.returns.json
    @uplink.post("deposit/depositions/{id}/actions/publish")
    def publish(self, id: uplink.Path):
        """Invoke the "Publish" action on a deposition."""
        pass

    @uplink.json
    @uplink.returns.json
    @uplink.put("deposit/depositions/{id}")
    def update_deposition(self, id: uplink.Path, **body: uplink.Body):
        """Update the deposition with the metadata"""
        pass

    @uplink.returns.json
    @uplink.put("files/{bucket_id}/{filename}")
    def upload_file(
        self, bucket_id: uplink.Path, filename: uplink.Path, file: uplink.Body
    ):
        """Uploads a file to the bucket."""
        pass


@uplink.response_handler(raise_for_status)
class Github(uplink.Consumer):
    """Abstraction of the [GitHub REST API](https://docs.github.com/en/rest)"""

    # This endpoint is not currently implemented in PyGithub, so we wrap it
    # here manually
    @uplink.headers({"Content-Type": "text/x-markdown"})
    @uplink.response_handler(operator.attrgetter("text"))
    @uplink.post("markdown/raw")
    def render_markdown_raw(self, text: uplink.Body):
        """Render Markdown in plain format like a README.md file on GitHub"""
        pass

    @uplink.returns.json
    @uplink.get("repos/{user}/{repo}/releases/tags/{tag}")
    def get_release_by_tag(
        self, user: uplink.Path, repo: uplink.Path, tag: uplink.Path
    ):
        pass

    @uplink.returns.json
    @uplink.get("repos/{user}/{repo}/releases/{release_id}/assets")
    def get_assets(
        self, user: uplink.Path, repo: uplink.Path, release_id: uplink.Path
    ):
        pass


def to_plaintext_reference(
    bib_entry: pybtex.database.Entry,
    style=PlainStyle(),
    backend=PlaintextBackend(),
) -> str:
    # pybtex doesn't support 'software' bibtex types for some reason:
    # https://bitbucket.org/pybtex-devs/pybtex/issues/157/support-for-software-and-patent-entries-in
    if bib_entry.type == "software":
        bib_entry.type = "misc"
    return style.format_entry(label=bib_entry.key, entry=bib_entry).text.render(
        backend
    )


def collect_zenodo_metadata(
    metadata: dict, references: List[pybtex.database.Entry], github: Github
) -> dict:
    """Produces the metadata that we send to Zenodo

    Args:
      metadata: The project metadata read from the YAML file. This is the main
        source of information for this function.
      references: List of references resolved from 'metadata["References"]'.
        They will be formatted and sent to Zenodo.
      github: The GitHub API client. We use it to render the description to
        HTML in a way that's consistent with GitHub's rendering.

    Returns:
      Metadata in the format that the Zenodo API expects.
    """
    # Generate the DOI author list from the authors in the project metadata
    zenodo_creators = []
    for author_tier in ["Core", "Developers", "Contributors"]:
        for author in metadata["Authors"][author_tier]["List"]:
            zenodo_creator = dict(name=author["Name"])
            if "Orcid" in author:
                zenodo_creator["orcid"] = author["Orcid"]
            if "Affiliations" in author and len(author["Affiliations"]) > 0:
                zenodo_creator["affiliation"] = " and ".join(
                    author["Affiliations"]
                )
            zenodo_creators.append(zenodo_creator)
    # Render the description to HTML
    rendered_description = github.render_markdown_raw(metadata["Description"])
    # Format references as plain text for Zenodo
    formatted_references = [
        to_plaintext_reference(entry) for entry in references
    ]
    # Construct Zenodo metadata
    return dict(
        title=metadata["Name"],
        version=metadata["Version"],
        publication_date=metadata["PublicationDate"].isoformat(),
        doi=metadata["Doi"],
        description=rendered_description,
        creators=zenodo_creators,
        related_identifiers=[
            dict(
                identifier=metadata["Homepage"],
                relation="isDocumentedBy",
                scheme="url",
                resource_type="publication-softwaredocumentation",
            ),
            dict(
                identifier=("https://github.com/" + metadata["GitHub"]),
                relation="isSupplementTo",
                scheme="url",
                resource_type="software",
            ),
        ],
        language="eng",
        communities=[dict(identifier="sxs")],
        keywords=metadata["Keywords"],
        license=metadata["License"],
        upload_type="software",
        access_right="open",
        references=formatted_references,
    )


def to_cff_person(person: pybtex.database.Person) -> dict:
    """BibTeX to CFF conversion for person objects.

    The format is defined here:
    https://github.com/citation-file-format/citation-file-format/blob/main/schema-guide.md#definitionsperson
    """
    # Map BibTeX to CFF fields
    name_fields = {
        "last": "family-names",
        "bibtex_first": "given-names",
        "prelast": "name-particle",
        "lineage": "name-suffix",
    }
    result = {
        cff_field: " ".join(person.get_part(bibtex_field))
        for bibtex_field, cff_field in name_fields.items()
        if person.get_part(bibtex_field)
    }
    # Use CFF "entity" format if BibTex has no first & last names
    if list(result.keys()) == ["family-names"]:
        return {"name": result["family-names"]}
    return result


def to_cff_reference(bib_entry: pybtex.database.Entry) -> dict:
    """BibTeX to CFF conversion for references.

    The format is defined here:
    https://github.com/citation-file-format/citation-file-format/blob/main/schema-guide.md#definitionsreference
    """

    def _cff_transform(cff_field, bib_value):
        if cff_field == "type":
            if bib_value == "inproceedings":
                return "article"
            elif bib_value == "incollection":
                return "article"
        elif cff_field == "publisher":
            return {"name": bib_value}
        elif cff_field == "month":
            try:
                return int(bib_value)
            except ValueError:
                return {
                    "jan": 1,
                    "feb": 2,
                    "mar": 3,
                    "apr": 4,
                    "may": 5,
                    "jun": 6,
                    "jul": 7,
                    "aug": 8,
                    "sep": 9,
                    "oct": 10,
                    "nov": 11,
                    "dec": 12,
                }[bib_value[:3].lower()]
        return bib_value

    cff_reference = {
        "type": _cff_transform(cff_field="type", bib_value=bib_entry.type),
        "authors": [
            to_cff_person(person) for person in bib_entry.persons["author"]
        ],
    }
    # Map BibTeX to CFF fields. This is just a subset of the most relevant
    # fields.
    fields = {
        "doi": "doi",
        "edition": "edition",
        "isbn": "isbn",
        "license": "license",
        "month": "month",
        "number": "number",
        "pages": "pages",
        "publisher": "publisher",
        "title": "title",
        "url": "url",
        "version": "version",
        "volume": "volume",
        "year": "year",
        "booktitle": "collection-title",
    }
    for bibtex_field, value in bib_entry.fields.items():
        bibtex_field = bibtex_field.lower()
        if bibtex_field in fields:
            cff_field = fields[bibtex_field]
            cff_reference[cff_field] = _cff_transform(
                cff_field=cff_field, bib_value=value
            )
    return cff_reference


def collect_citation_metadata(
    metadata: dict, references: List[pybtex.database.Entry]
) -> dict:
    """Produces the data stored in the CITATION.cff file

    Args:
      metadata: The project metadata read from the YAML file. This is the main
        source of information for this function.
      references: List of references resolved from 'metadata["References"]'.
        They will be converted to CFF.

    Returns:
      Citation data in the [Citation File Format](https://github.com/citation-file-format/citation-file-format)
    """
    # Author list
    citation_authors = []
    for author_tier in ["Core", "Developers", "Contributors"]:
        for author in metadata["Authors"][author_tier]["List"]:
            family_names, given_names = author["Name"].split(", ")
            citation_author = {
                "family-names": family_names,
                "given-names": given_names,
            }
            if "Orcid" in author:
                citation_author["orcid"] = (
                    "https://orcid.org/" + author["Orcid"]
                )
            if "Affiliations" in author and len(author["Affiliations"]) > 0:
                citation_author["affiliation"] = " and ".join(
                    author["Affiliations"]
                )
            citation_authors.append(citation_author)
    # References in CITATION.cff format
    citation_references = [to_cff_reference(entry) for entry in references]
    return {
        "cff-version": "1.2.0",
        "message": (
            "Please cite SpECTRE in any publications that make use of its code"
            " or data. Cite the latest version that you use in your"
            " publication. The citation for this version is listed below."
        ),
        "title": metadata["Name"],
        "url": metadata["Homepage"],
        "repository-code": "https://github.com/" + metadata["GitHub"],
        "version": metadata["Version"],
        "date-released": metadata["PublicationDate"],
        "doi": metadata["Doi"],
        "authors": citation_authors,
        "keywords": metadata["Keywords"],
        "license": metadata["License"],
        "references": citation_references,
    }


def build_bibtex_entry(metadata: dict):
    """Builds a BibTeX entry that we suggest people cite in publications

    Args:
      metadata: The project metadata read from the YAML file

    Returns:
      A pybtex.database.Entry. Use the `to_string` member function to convert to
      a string in BibTeX, YAML or other formats.
    """
    # We truncate the author list in the BibTeX entry after 'Developers',
    # because not all journals are happy with printing an excessively long
    # author list, e.g. Phys. Rev. wants at most 15 authors. By truncating the
    # author list here, the user who copies the BibTeX entry doesn't have to
    # make the decision where to truncate.
    authors = [
        pybtex.database.Person(author["Name"])
        for author in (
            metadata["Authors"]["Core"]["List"]
            + metadata["Authors"]["Developers"]["List"]
        )
    ] + [pybtex.database.Person("others")]
    entry = pybtex.database.Entry(
        "software",
        persons=dict(author=authors),
        fields=dict(
            title=(
                r"\texttt{"
                + metadata["Name"]
                + " v"
                + metadata["Version"]
                + "}"
            ),
            # The 'version' field is not used by revtex4-2, so we also put the
            # version in the title
            version=metadata["Version"],
            publisher="Zenodo",
            doi=metadata["Doi"],
            url=metadata["Homepage"],
            howpublished=(
                r"\href{https://doi.org/"
                + metadata["Doi"]
                + "}{"
                + metadata["Doi"]
                + "}"
            ),
            license=metadata["License"],
            year=str(metadata["PublicationDate"].year),
            month=str(metadata["PublicationDate"].month),
        ),
    )
    entry.key = "spectrecode"
    return entry


def prepare(
    metadata: dict,
    version_name: str,
    metadata_file: str,
    citation_file: str,
    bib_file: str,
    references_file: str,
    readme_file: str,
    zenodo: Zenodo,
    github: Github,
    update_only: bool,
    check_only: bool,
):
    # Validate new version name
    match_version_name = re.match(VERSION_PATTERN + "$", version_name)
    if not match_version_name:
        raise ValueError(
            f"Version name '{version_name}' doesn't match "
            f"pattern '{VERSION_PATTERN}'."
        )
    publication_date = datetime.date(
        year=int(match_version_name.group(1)),
        month=int(match_version_name.group(2)),
        day=int(match_version_name.group(3)),
    )

    if update_only:
        # Don't try to create a new version draft on Zenodo but update the
        # existing one. We assume that the metadata in the repository already
        # point to the existing version draft on Zenodo that we want to update.
        # This is the case when the user has run this script without the
        # `--update-only` option before and has thus created the new version
        # draft on Zenodo, and is now running it again with the `--update-only`
        # option to push updated metadata to the draft.
        new_version_id = metadata["ZenodoId"]
    else:
        # Zenodo doesn't have a draft for the new version yet, or the metadata
        # in the repository is not yet updated. Either way, we use the ID from
        # the metadata to obtain the latest version on Zenodo and create a new
        # draft. Zenodo doesn't create another draft if one already exists, but
        # just returns it.
        latest_version_id = metadata["ZenodoId"]
        try:
            assert zenodo.is_latest_version(record_id=latest_version_id), (
                "The latest Zenodo version ID in the repository is"
                f" {latest_version_id}, but Zenodo reports it is not the latest"
                " version."
            )
        except requests.exceptions.HTTPError as err:
            raise requests.exceptions.HTTPError(
                f"No published record with ID {latest_version_id} found on "
                "Zenodo. Use the '--update-only' flag if you're re-running "
                "the script over a repository that already has an unpublished "
                "new version ID inserted into Metadata.yaml."
            ) from err
        logger.info(f"The latest Zenodo version ID is {latest_version_id}.")
        # Reserve a DOI by creating a new version on Zenodo. It will remain a
        # draft until we publish it in the `publish` subprogram.
        if check_only:
            report_check_only(
                "Would create new version on Zenodo with "
                f"ID {latest_version_id}."
            )
            new_version_id = latest_version_id
        else:
            new_version_id = zenodo.new_version(
                latest_version_id=latest_version_id
            )
    new_version_draft = zenodo.get_deposition(id=new_version_id)
    new_version_doi = new_version_draft["metadata"]["prereserve_doi"]["doi"]
    assert new_version_doi, (
        "Zenodo did not return a reserved DOI for the new version draft. "
        "You may want to visit {} to reserve one, save the draft and re-run "
        "this script with the '--update-only' flag."
    ).format(new_version_draft["links"]["html"])
    logger.info(
        "The new version draft on Zenodo has "
        f"ID {new_version_id} and DOI {new_version_doi}."
    )

    # Insert the new version information into the metadata file. We have to
    # resort to regex-replacements because pyyaml doesn't support
    # format-preserving round-trips.
    def replace_in_yaml(content, key, value, validate_value_pattern):
        content, num_subs = re.subn(
            r"^{}: {}$".format(key, validate_value_pattern),
            r"{}: {}".format(key, value),
            content,
            flags=re.MULTILINE,
        )
        if num_subs == 0:
            match = re.search(
                r"^{}: (.*)$".format(key), content, flags=re.MULTILINE
            )
            if match:
                raise ValueError(
                    f"The value of '{key}' in the file '{metadata_file}' "
                    f"does not match the pattern '{validate_value_pattern}': "
                    f"{match.group(1)}"
                )
            else:
                raise ValueError(
                    f"Could not find '{key}' in root of file '{metadata_file}'."
                )
        elif num_subs > 1:
            raise ValueError(
                f"Found more than one '{key}' in file '{metadata_file}'."
            )
        return content

    with open(metadata_file, "r" if check_only else "r+") as open_metadata_file:
        content_original = open_metadata_file.read()
        content_new = replace_in_yaml(
            content_original, "Version", version_name, VERSION_PATTERN
        )
        content_new = replace_in_yaml(
            content_new,
            "PublicationDate",
            publication_date.isoformat(),
            PUBLICATION_DATE_PATTERN,
        )
        content_new = replace_in_yaml(
            content_new, "Doi", new_version_doi, DOI_PATTERN
        )
        content_new = replace_in_yaml(
            content_new, "ZenodoId", new_version_id, ZENODO_ID_PATTERN
        )
        content_diff = "\n".join(
            difflib.context_diff(
                content_original.split("\n"),
                content_new.split("\n"),
                lineterm="",
                fromfile=metadata_file,
                tofile=metadata_file,
            )
        )
        if check_only:
            report_check_only(f"Would apply diff:\n{content_diff}")
        else:
            logger.debug(f"Applying diff:\n{content_diff}")
            open_metadata_file.seek(0)
            open_metadata_file.write(content_new)
            open_metadata_file.truncate()
    logger.info(f"Inserted new version info into '{metadata_file}'.")
    # Also update the the metadata dict to make sure we don't accidentally use
    # the old values somewhere
    metadata["Version"] = version_name
    metadata["PublicationDate"] = publication_date
    metadata["Doi"] = new_version_doi
    metadata["ZenodoId"] = new_version_id

    def write_file_or_check(filename, content_new):
        with open(filename, "r" if check_only else "r+") as open_file:
            content_original = open_file.read()
            content_diff = "\n".join(
                difflib.context_diff(
                    content_original.split("\n"),
                    content_new.split("\n"),
                    lineterm="",
                    fromfile=filename,
                    tofile=filename,
                )
            )
            if check_only:
                report_check_only(f"Would apply diff:\n{content_diff}")
            else:
                logger.debug(f"Applying diff:\n{content_diff}")
                open_file.seek(0)
                open_file.write(content_new)
                open_file.truncate()

    # Write the CITATION.cff file
    reference_keys = metadata["References"]["List"]
    all_references = pybtex.database.parse_file(references_file)
    references = [all_references.entries[key] for key in reference_keys]
    citation_data = collect_citation_metadata(metadata, references)
    citation_file_content = """# Distributed under the MIT License.
# See LICENSE.txt for details.

# This file is automatically generated. It will be overwritten at every
# release. See .github/scripts/Release.py for details.

"""
    citation_file_content += yaml.safe_dump(citation_data, allow_unicode=True)
    write_file_or_check(citation_file, citation_file_content)
    # Validate the CFF file
    Citation(citation_file_content, src=citation_file).validate()

    # Get the BibTeX entry and write to file
    bibtex_entry = build_bibtex_entry(metadata)
    bib_file_content = bibtex_entry.to_string(
        "bibtex",
        # LaTeX-encode special characters, instead of writing unicode symbols
        encoding="ASCII",
    )
    # Fix an issue with encoded accents (a space in the author list is
    # recognized as delimiter between names)
    bib_file_content = bib_file_content.replace(r"\c c", r"\c{c}")
    # Wrap long lines in BibTeX output
    bib_file_content = "\n".join(
        [textwrap.fill(line, width=80) for line in bib_file_content.split("\n")]
    )
    write_file_or_check(bib_file, bib_file_content)

    # Insert the new version information into the README
    def replace_badge_in_readme(content, key, image_url, link_url):
        content, num_subs = re.subn(
            r"\[!\[{}\]\(.*\)\]\(.*\)".format(key),
            r"[![{}]({})]({})".format(key, image_url, link_url),
            content,
            flags=re.MULTILINE,
        )
        assert (
            num_subs > 0
        ), f"Could not find badge '{key}' in file '{readme_file}'."
        return content

    def replace_doi_in_readme(content, doi, doi_url):
        content, num_subs = re.subn(
            r"DOI: \[{}\]\(.*\)".format(DOI_PATTERN),
            r"DOI: [{}]({})".format(doi, doi_url),
            content,
            flags=re.MULTILINE,
        )
        assert (
            num_subs > 0
        ), "Could not find DOI (matching '{}') with link in file '{}'.".format(
            DOI_PATTERN, readme_file
        )
        return content

    def replace_link_in_readme(content, link_text, link_url):
        content, num_subs = re.subn(
            r"\[{}\]\(.*\)".format(link_text),
            r"[{}]({})".format(link_text, link_url),
            content,
            flags=re.MULTILINE,
        )
        assert num_subs > 0, (
            f"Could not find link with text '{link_text}' in "
            f"file '{readme_file}'."
        )
        return content

    def replace_bibtex_entry_in_readme(content, bibtex_entry):
        bibtex_entry_string = bib_file_content
        # Work around an issue with escaping LaTeX commands
        bibtex_entry_string = bibtex_entry_string.replace("\\", "\\\\")
        FENCE_PATTERN = "<!-- BIBTEX ENTRY -->"
        content, num_subs = re.subn(
            (FENCE_PATTERN + "(.*)" + FENCE_PATTERN),
            (
                FENCE_PATTERN
                + "\n```bib\n"
                + bibtex_entry_string.strip()
                + "\n```\n"
                + FENCE_PATTERN
            ),
            content,
            flags=re.DOTALL,
        )
        assert (
            num_subs > 0
        ), f"Could not find a BibTeX entry in file '{readme_file}'."
        return content

    with open(readme_file, "r" if check_only else "r+") as open_readme_file:
        content_original = open_readme_file.read()
        content = replace_badge_in_readme(
            content_original,
            "release",
            f"https://img.shields.io/badge/release-v{version_name}-informational",
            "https://github.com/{}/releases/tag/v{}".format(
                metadata["GitHub"], version_name
            ),
        )
        content = replace_badge_in_readme(
            content,
            "DOI",
            f"https://zenodo.org/badge/doi/{new_version_doi}.svg",
            f"https://doi.org/{new_version_doi}",
        )
        content = replace_doi_in_readme(
            content, new_version_doi, f"https://doi.org/{new_version_doi}"
        )
        # We don't currently link to the Zenodo BibTeX entry because it isn't
        # very good. Instead, we generate our own.
        content = replace_bibtex_entry_in_readme(content, bibtex_entry)
        content_diff = "\n".join(
            difflib.context_diff(
                content_original.split("\n"),
                content.split("\n"),
                lineterm="",
                fromfile=readme_file,
                tofile=readme_file,
            )
        )
        if check_only:
            report_check_only(f"Would apply diff:\n{content_diff}")
        else:
            logger.debug(f"Applying diff:\n{content_diff}")
            open_readme_file.seek(0)
            open_readme_file.write(content)
            open_readme_file.truncate()

    # Upload the updated metadata to Zenodo
    zenodo_metadata = collect_zenodo_metadata(metadata, references, github)
    logger.debug(
        "The metadata we'll send to Zenodo are:\n{}".format(
            yaml.safe_dump(zenodo_metadata, allow_unicode=True)
        )
    )
    if check_only:
        report_check_only("Would upload metadata to Zenodo.")
    else:
        zenodo.update_deposition(id=new_version_id, metadata=zenodo_metadata)
    logger.debug(
        (
            "New Zenodo version draft is now prepared. You can edit "
            "it here:\n{}"
        ).format(new_version_draft["links"]["html"])
    )


def publish(
    metadata: dict,
    zenodo: Zenodo,
    github: Github,
    auto_publish: bool,
    check_only: bool,
):
    version_name = metadata["Version"]
    new_version_id = metadata["ZenodoId"]

    # Retrieve the Zenodo deposition for the version draft that we have
    # prepared before
    new_version_draft = zenodo.get_deposition(id=new_version_id)

    # Retrieve the file "bucket" ID for uploading data
    bucket_id = pathlib.PurePosixPath(
        urllib.parse.urlparse(new_version_draft["links"]["bucket"]).path
    ).parts[-1]

    # Retrieve the URL of the GitHub release archive that we want to upload
    # to Zenodo
    gh_user, gh_repo = metadata["GitHub"].split("/")
    # Alternatively we could use the release ID that GitHub's
    # 'actions/create-release' returns to retrieve the release
    gh_release = github.get_release_by_tag(
        user=gh_user, repo=gh_repo, tag="v" + version_name
    )
    logger.debug(
        "The release on GitHub is:\n{}".format(
            yaml.safe_dump(gh_release, allow_unicode=True)
        )
    )
    zipball_url = gh_release["zipball_url"]

    # Stream the release archive to Zenodo.
    # We keep the file name for the archive on Zenodo the same for each
    # release so we can just overwrite it. Note that the _unpacked_ directory
    # name contains the version as expected, since the unpacked directory name
    # is determined by the GitHub release.
    archive_filename = gh_repo + ".zip"
    if check_only:
        report_check_only(
            f"Would stream release zipball '{zipball_url}' as "
            f"filename '{archive_filename}' to bucket '{bucket_id}'."
        )
    else:
        # Download the zipball from GitHub, then upload to Zenodo.
        # Note: Something like this should also work to stream the file
        # directly from GitHub to Zenodo without temporarily saving it, but
        # Zenodo doesn't currently document their new "bucket" file API so it
        # is difficult to debug:
        # with requests.get(zipball_url, stream=True) as zipball_stream:
        #     zipball_stream.raise_for_status()
        #     uploaded_file = zenodo.upload_file(bucket_id=bucket_id,
        #                                        file=zipball_stream,
        #                                        filename=archive_filename)
        zipball_download = requests.get(zipball_url, stream=True)
        with tempfile.TemporaryFile() as open_tmp_file:
            for chunk in zipball_download.iter_content():
                open_tmp_file.write(chunk)
            open_tmp_file.seek(0)
            uploaded_file = zenodo.upload_file(
                bucket_id=bucket_id,
                file=open_tmp_file,
                filename=archive_filename,
            )
        logger.debug(
            "Release archive upload complete:\n{}".format(
                yaml.safe_dump(uploaded_file, allow_unicode=True)
            )
        )

    # Publish!
    if auto_publish:
        if check_only:
            report_check_only(
                f"Would publish Zenodo record {new_version_id} now!"
            )
        else:
            published_record = zenodo.publish(id=new_version_id)
            logger.debug(
                "Zenodo record published:\n{}".format(
                    yaml.safe_dump(published_record, allow_unicode=True)
                )
            )
            logger.info(
                (
                    "Zenodo record is now public! Here's the link to the "
                    "record:\n{}"
                ).format(published_record["links"]["record_html"])
            )
    else:
        logger.info(
            (
                "Release is ready to be published on Zenodo. Go to this "
                "website, make sure everything looks fine and then hit the "
                "'Publish' button:\n{}"
            ).format(new_version_draft["links"]["html"])
        )


if __name__ == "__main__":
    # Always work with the repository that contains this file
    repo = git.Repo(__file__, search_parent_directories=True)

    import argparse

    parser = argparse.ArgumentParser(
        description=(
            "Prepare the repository and publish releases on Zenodo as part of"
            " the automatic versioning procedure. This script is not intended"
            " to be run outside of GitHub actions. The 'prepare' subprogram"
            " reserves a DOI on Zenodo and inserts it into the repository"
            " along with the new version name. Once the release archive has"
            " been created, the 'publish'subprogram uploads it to Zenodo."
            f" Repository: {repo.working_dir}."
        )
    )
    parent_parser = argparse.ArgumentParser(add_help=False)
    parent_parser.add_argument(
        "--zenodo-token",
        required=True,
        help=(
            "Zenodo access token. Refer to the Zenodo documentation "
            "for instructions on creating a personal access token."
        ),
    )
    parent_parser.add_argument(
        "--zenodo-sandbox",
        action="store_true",
        help="Use the Zenodo sandbox instead of the public version of Zenodo",
    )
    parent_parser.add_argument(
        "--github-token",
        required=False,
        help=(
            "Access token for GitHub queries. Refer to the GitHub documentation"
            " for instructions on creating a personal access token."
        ),
    )
    parent_parser.add_argument(
        "-v",
        "--verbose",
        action="count",
        default=0,
        help="Verbosity (-v, -vv, ...)",
    )
    parent_parser.add_argument(
        "--check-only",
        action="store_true",
        help=(
            "Dry mode, only check that all files are consistent. Nothing is"
            " edited or uploaded to Zenodo. Used in CI tests to make sure"
            " changes to the repository remain compatible with this script."
        ),
    )
    subparsers = parser.add_subparsers()
    parser_prepare = subparsers.add_parser("prepare", parents=[parent_parser])
    parser_prepare.set_defaults(subprogram=prepare)
    parser_prepare.add_argument(
        "--update-only",
        action="store_true",
        help=(
            "Only update an existing version draft on Zenodo, not creating a "
            "new one. Use this flag if the metadata in the repository already "
            "reference the new version draft on Zenodo."
        ),
    )
    parser_prepare.add_argument(
        "--version-name",
        required=False,
        help=(
            "The name of the new version. Will be inserted into the "
            "'--metadata-file'. Required unless '--check-only'."
        ),
    )
    parser_publish = subparsers.add_parser("publish", parents=[parent_parser])
    parser_publish.set_defaults(subprogram=publish)
    parser_publish.add_argument(
        "--auto-publish",
        action="store_true",
        help=(
            "Publish the Zenodo record once it's ready. "
            "WARNING: Published records cannot be deleted and editing is "
            "limited. Omit this argument to print out the link to the "
            "prepared draft on Zenodo so you can do a manual sanity-check "
            "before publishing it."
        ),
    )
    args = parser.parse_args()

    # Set the log level
    logging.basicConfig(level=logging.WARNING - args.verbose * 10)
    logging.getLogger("pykwalify").setLevel(logging.CRITICAL)
    del args.verbose

    # Load the project metadata
    metadata_file = os.path.join(repo.working_dir, "Metadata.yaml")
    args.metadata = yaml.safe_load(open(metadata_file, "r"))
    if args.subprogram == prepare:
        args.metadata_file = metadata_file

    # Make passing a version name optional in check-only mode
    if args.subprogram == prepare:
        assert args.check_only or args.version_name, (
            "The '--version-name' argument is required unless you run in "
            "'--check-only' mode."
        )
        if args.check_only and not args.version_name:
            args.version_name = args.metadata["Version"]

    # Locate project files
    if args.subprogram == prepare:
        args.readme_file = os.path.join(repo.working_dir, "README.md")
        args.citation_file = os.path.join(repo.working_dir, "CITATION.cff")
        args.bib_file = os.path.join(repo.working_dir, "citation.bib")
        args.references_file = os.path.join(
            repo.working_dir, args.metadata["References"]["BibliographyFile"]
        )

    # Configure the Zenodo API client
    args.zenodo = Zenodo(
        base_url=(
            "https://sandbox.zenodo.org/api/"
            if args.zenodo_sandbox
            else "https://zenodo.org/api/"
        ),
        auth=uplink.auth.BearerToken(args.zenodo_token),
    )
    del args.zenodo_sandbox
    del args.zenodo_token

    # Configure the GitHub API client
    args.github = Github(
        base_url="https://api.github.com/",
        auth=(
            uplink.auth.BearerToken(args.github_token)
            if args.github_token
            else None
        ),
    )
    del args.github_token

    # Dispatch to the selected subprogram
    subprogram = args.subprogram
    del args.subprogram
    subprogram(**vars(args))


================================================
FILE: .github/scripts/requirements-release.txt
================================================
# Distributed under the MIT License.
# See LICENSE.txt for details.

# Required Python packages for the release workflow

GitPython~=3.1.11
pybtex~=0.24.0
PyGithub~=1.53
PyYAML~=5.3.1
tqdm~=4.55.1
uplink==0.9.7
cffconvert==2.0.0


================================================
FILE: .github/workflows/BuildDockerContainer.yaml
================================================
# Distributed under the MIT License.
# See LICENSE.txt for details.

# This workflow can be run manually on any branch to build and push our Docker
# containers.
#
# We build containers that run both an AMD64/x86-64 and on ARM64. We used to use
# a cross-compilation approach with Docker's buildx support, but this can be
# quite fragile since cross-compilation is notoriously difficult. While buildx
# used an emulator, QEMU, this is still found to be quite fragile with difficult
# to diagnose segmentation faults and other errors. To get around this we use
# the GitHub Actions ARM64 runners to build the ARM image and the x86-64 runners
# to build that image. Then, once both images are pushed to Dockerhub, we create
# what Docker calls a "manifest", which is essentially a file that tells Docker
# which image to download depending on what it wants. This means for ARM64 it
# will automatically download the ARM64 container and similar for
# x86-64. The net result is extremely similar to the cross-compilation approach
# but since the builds are always native, it is simpler.
name: Build Docker container

on:
  workflow_dispatch:
    inputs:
      image_name:
        description: >
          Image name to push to DockerHub
        required: true
        default: 'sxscollaboration/spectre'
      build_arm:
        type: boolean
        description: >
          Build ARM container in addition to x86_64
        default: true

jobs:
  build:
    name: Build (${{ matrix.arch }})
    runs-on: ${{ matrix.runner }}
    # This environment can be protected to require manual approval before
    # deployment. On forks where you set your own secrets for authentication
    # with DockerHub you can choose not to protect this environment.
    environment: deploy-containers
    strategy:
      fail-fast: true
      # Dynamically set the matrix based on the build_arm input. GitHub Actions
      # expressions lack a ternary operator, so we use short-circuit evaluation:
      #   condition && value_if_true || value_if_false
      # fromJSON() then parses the resulting JSON string into an array for
      # `include`. The multi-line ${{ }} works because YAML folds unquoted
      # scalars into a single line before the expression is evaluated.
      # Docs:
      #   https://docs.github.com/en/actions/reference/workflows-and-actions/expressions
      #   https://docs.github.com/en/actions/using-jobs/using-a-matrix-for-your-jobs#expanding-or-adding-matrix-configurations
      matrix:
        include: ${{ fromJSON(inputs.build_arm
          && '[{"arch":"amd64","runner":"ubuntu-latest"},
               {"arch":"arm64","runner":"ubuntu-24.04-arm"}]'
          || '[{"arch":"amd64","runner":"ubuntu-latest"}]') }}
    steps:
      - name: Checkout repository
        uses: actions/checkout@v5
      - name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v4
      - name: Login to DockerHub
        uses: docker/login-action@v4
        with:
          username: ${{ secrets.DOCKERHUB_USERNAME }}
          password: ${{ secrets.DOCKERHUB_TOKEN }}
      # We could also push containers to GitHub instead of DockerHub
      # - name: Login to GitHub container registry
      #   uses: docker/login-action@v3
      #   with:
      #     registry: ghcr.io
      #     username: ${{ github.actor }}
      #     password: ${{ secrets.GITHUB_TOKEN }}
      - name: Build dev container
        uses: docker/build-push-action@v7
        with:
          push: true
          context: .
          file: "./containers/Dockerfile.buildenv"
          target: dev
          tags: ${{ inputs.image_name }}:dev-${{ matrix.arch }}
          platforms: linux/${{ matrix.arch }}
          build-args: |
            PARALLEL_MAKE_ARG=-j4
            UBUNTU_VERSION=22.04
      # The 18.04 container only supports amd64
      - name: Build dev1804 container
        if: ${{ matrix.arch == 'amd64' }}
        uses: docker/build-push-action@v7
        with:
          push: true
          context: .
          file: "./containers/Dockerfile.buildenv"
          target: dev
          tags: ${{ inputs.image_name }}:dev1804
          platforms: linux/amd64
          build-args: |
            PARALLEL_MAKE_ARG=-j4
            UBUNTU_VERSION=18.04

  create_manifest:
    name: Create multi-arch manifest
    needs: build
    runs-on: ubuntu-latest
    environment: deploy-containers
    steps:
      - name: Login to DockerHub
        uses: docker/login-action@v4
        with:
          username: ${{ secrets.DOCKERHUB_USERNAME }}
          password: ${{ secrets.DOCKERHUB_TOKEN }}
      - name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v4
      - name: Create dev manifest
        run: |
          SOURCES="${{ inputs.image_name }}:dev-amd64"
          if [ "${{ inputs.build_arm }}" = "true" ]; then
            SOURCES="$SOURCES ${{ inputs.image_name }}:dev-arm64"
          fi
          docker buildx imagetools create \
            --tag ${{ inputs.image_name }}:dev $SOURCES
      - name: Inspect manifest
        run: >
          docker buildx imagetools inspect ${{ inputs.image_name }}:dev

  run_tests:
    name: Test
    uses: ./.github/workflows/Tests.yaml
    needs: create_manifest
    secrets: inherit
    with:
      container: ${{ inputs.image_name }}:dev


================================================
FILE: .github/workflows/ClobberCache.yaml
================================================
# Distributed under the MIT License.
# See LICENSE.txt for details.

# Dump a large file into the cache to force GitHub to clobber it.
name: Clobber Cache

on:
  workflow_dispatch:

jobs:
  clobber_cache:
    name: Clobber Cache
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
    steps:
      # Configure the clobber cache
      - name: Restore cache
        uses: actions/cache@v4
        with:
          path:  cache
          key: "clobber-cache"
          restore-keys: |
            clobber-cache
      # Generate the random file to clobber the cache.
      # Note that the file size must be updated as GitHub expands the cache
      # size limits.
      - name: Clobber cache
        run: >
          mkdir -p cache

          cd ./cache

          rm -rf ./*

          head -c 9900MB /dev/urandom > clobber.txt


================================================
FILE: .github/workflows/DemoContainer.yaml
================================================
# Distributed under the MIT License.
# See LICENSE.txt for details.

name: Deploy containers

on:
  workflow_dispatch:
    inputs:
      image_name:
        description: Image name to push to DockerHub
        default: 'sxscollaboration/spectre'
      build_arm:
        type: boolean
        description: Build ARM container in addition to x86_64
        default: true

  workflow_call:
    inputs:
      image_name:
        type: string
        description: Image name to push to DockerHub
        default: 'sxscollaboration/spectre'
      build_arm:
        type: boolean
        description: Build ARM container in addition to x86_64
        default: true
    secrets:
      DOCKERHUB_USERNAME:
        required: true
      DOCKERHUB_TOKEN:
        required: true

jobs:
  build:
    name: Build (${{ matrix.arch }})
    runs-on: ${{ matrix.runner }}
    environment: deploy-containers
    strategy:
      fail-fast: true
      matrix:
        include: ${{ fromJSON(inputs.build_arm
          && '[{"arch":"amd64","runner":"ubuntu-latest"},
               {"arch":"arm64","runner":"ubuntu-24.04-arm"}]'
          || '[{"arch":"amd64","runner":"ubuntu-latest"}]') }}
    steps:
      - name: Checkout repository
        uses: actions/checkout@v5
      - name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v4
      - name: Login to DockerHub
        uses: docker/login-action@v4
        with:
          username: ${{ secrets.DOCKERHUB_USERNAME }}
          password: ${{ secrets.DOCKERHUB_TOKEN }}
      - name: Build and push deploy container
        uses: docker/build-push-action@v7
        with:
          push: true
          context: .
          file: "./containers/Dockerfile.buildenv"
          target: deploy
          tags: ${{ inputs.image_name }}:deploy-${{ matrix.arch }}
          platforms: linux/${{ matrix.arch }}
          build-args: PARALLEL_MAKE_ARG=-j4
      - name: Build and push demo container
        uses: docker/build-push-action@v5
        with:
          push: true
          context: .
          file: "./containers/Dockerfile.buildenv"
          target: demo
          tags: ${{ inputs.image_name }}:demo-${{ matrix.arch }}
          platforms: linux/${{ matrix.arch }}
          build-args: PARALLEL_MAKE_ARG=-j4

  create_manifests:
    name: Create multi-arch manifests
    needs: build
    runs-on: ubuntu-latest
    environment: deploy-containers
    steps:
      - name: Login to DockerHub
        uses: docker/login-action@v4
        with:
          username: ${{ secrets.DOCKERHUB_USERNAME }}
          password: ${{ secrets.DOCKERHUB_TOKEN }}
      - name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v4
      - name: Create deploy manifest
        run: |
          SOURCES="${{ inputs.image_name }}:deploy-amd64"
          if [ "${{ inputs.build_arm }}" = "true" ]; then
            SOURCES="$SOURCES ${{ inputs.image_name }}:deploy-arm64"
          fi
          docker buildx imagetools create \
            --tag ${{ inputs.image_name }}:deploy \
            --tag ${{ inputs.image_name }}:latest \
            $SOURCES
      - name: Create demo manifest
        run: |
          SOURCES="${{ inputs.image_name }}:demo-amd64"
          if [ "${{ inputs.build_arm }}" = "true" ]; then
            SOURCES="$SOURCES ${{ inputs.image_name }}:demo-arm64"
          fi
          docker buildx imagetools create \
            --tag ${{ inputs.image_name }}:demo $SOURCES
      - name: Inspect manifests
        run: |
          docker buildx imagetools inspect ${{ inputs.image_name }}:deploy
          docker buildx imagetools inspect ${{ inputs.image_name }}:demo


================================================
FILE: .github/workflows/DeployStaticExecutables.yaml
================================================
# Distributed under the MIT License.
# See LICENSE.txt for details.

name: Deploy static executables

on:
  release:
    types: [published]
  workflow_dispatch:
    inputs:
      tag_name:
        type: string
        required: true
        description: The name of the release tag

jobs:
  deploy_static_execs:
    name: Deploy static executables and libraries
    runs-on: ubuntu-latest
    env:
      RELEASE_TAG_NAME: ${{ inputs.tag_name || github.event.release.tag_name }}
    steps:
      - name: Checkout repository
        uses: actions/checkout@v5
      # Build static executables in a Docker container with an older version
      # of Ubuntu so that the glibc is compatible with most Linux distros.
      - name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v4
      - name: Build static executables
        uses: docker/build-push-action@v7
        with:
          push: false
          context: .
          file: "./containers/Dockerfile.buildenv"
          target: deploy_static_execs_and_libs
          tags: sxs-collaboration/spectre:deploy_static_execs_and_libs
          platforms: linux/amd64
          load: true
          build-args: |
            UBUNTU_VERSION=18.04
            PARALLEL_MAKE_ARG=-j4
      - name: Run Docker container
        run: >
          docker run --name static-execs
          sxs-collaboration/spectre:deploy_static_execs_and_libs
      - name: Install python dependencies
        run: >
          pip3 install numpy h5py gdown
      - name: Download extra data to include for CCE
        run: |
          gdown \
          "https://drive.google.com/uc?id=1CmgLLfuLod8stc13EtmjHUvBoIgSVD-Y"
          gdown \
          "https://drive.google.com/uc?id=1mN1oFQ7UcB1wsiXw9dphwAprQqufLia0"
          gdown \
          "https://drive.google.com/uc?id=1yYMM4PVUec9pIjKTxI4aCpo0Umqconr8"
      - name: Copy CCE executables from the container
        run: >
          mkdir CceExecutables;
          mkdir ./CceExecutables/PreprocessCceWorldtube;
          mkdir ./CceExecutables/Tests;

          cp ./tests/InputFiles/Cce/CharacteristicExtract.yaml
          ./CceExecutables/CharacteristicExtract.yaml

          cp
          ./tests/InputFiles/PreprocessCceWorldtube/PreprocessCceWorldtube.yaml
          ./CceExecutables/PreprocessCceWorldtube/PreprocessCceWorldtube.yaml

          cp
          ./tests/InputFiles/PreprocessCceWorldtube/AdmFirstOrderDriverPreprocessCceWorldtube.yaml
          ./CceExecutables/PreprocessCceWorldtube/AdmFirstOrderDriverPreprocessCceWorldtube.yaml

          cp
          ./tests/InputFiles/PreprocessCceWorldtube/AdmSecondOrderDriverPreprocessCceWorldtube.yaml
          ./CceExecutables/PreprocessCceWorldtube/AdmSecondOrderDriverPreprocessCceWorldtube.yaml

          docker cp
          static-execs:/work/spectre/build/bin/CharacteristicExtract
          ./CceExecutables/

          docker cp static-execs:/work/spectre/build/bin/PreprocessCceWorldtube
          ./CceExecutables/PreprocessCceWorldtube/

          docker cp
          static-execs:/work/spectre/build/bin/WriteCceWorldtubeCoordsToFile
          ./CceExecutables/PreprocessCceWorldtube/
      - name: Test CCE executable outside of container
        run: |
          mv BondiSachsCceR0200.h5 ./CceExecutables/Tests/
          mv CheckCceOutput.py ./CceExecutables/Tests/
          mv CharacteristicExtractReduction_Expected.h5 \
          ./CceExecutables/Tests/

          sed -i 's/CceR0257/Tests\/BondiSachsCceR0200/g' \
          ./CceExecutables/CharacteristicExtract.yaml

          cd ./CceExecutables/

          ./CharacteristicExtract \
          --input-file ./CharacteristicExtract.yaml
          python ./Tests/CheckCceOutput.py
          rm CharacteristicExtractReduction.h5

          cd ../
      - name: Create CCE executables release asset
        # Note: We use xz compression since it's much better than gzip, even
        # though it's a decent bit slower. Specifically, xz is two thirds the
        # size of gzip.
        run:  |
          tar cJf CceExecutables.tar.xz CceExecutables
      - name: Upload to release
        uses: softprops/action-gh-release@v3
        with:
          tag_name: ${{ env.RELEASE_TAG_NAME }}
          fail_on_unmatched_files: true
          files: |
            CceExecutables.tar.xz


================================================
FILE: .github/workflows/NewContributors.yaml
================================================
# Distributed under the MIT License.
# See LICENSE.txt for details.

# Add new contributors when their first PR was merged
name: New contributors

on:
  pull_request_target:
    branches: [develop]
    types: [closed]

jobs:
  new_contributors:
    if: github.event.pull_request.merged == true
    name: Notify
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v5
      - name: Check PR author is new
        id: check_pr_author
        shell: python
        run: |
          import yaml

          def all_authors():
            authors = yaml.safe_load(open('Metadata.yaml', 'r'))['Authors']
            for tier in ['Core', 'Developers', 'Contributors']:
              for author in authors[tier]['List']:
                yield author['GitHub']

          pr_author = '${{ github.event.pull_request.user.login }}'
          if pr_author not in all_authors():
            print('::set-output name=is_new::true')
      - name: Comment on PR
        if: steps.check_pr_author.outputs.is_new
        uses: peter-evans/create-or-update-comment@v5
        with:
          issue-number: ${{ github.event.pull_request.number }}
          body: >  # Newlines are line breaks, body renders as GitHub markdown
            @${{ github.event.pull_request.user.login }} looks like this is your
            first contribution to SpECTRE. Welcome! 🎉 Your contribution
            is much appreciated, and we invite you to add your name to the
            author list:


            1. Edit the [`Metadata.yaml`](https://github.com/${{ github.event.pull_request.user.login }}/spectre/blob/develop/Metadata.yaml)
            file in the repository.

            2. Add an entry to the list in `Authors.Contributors` with your
            name, affiliation, etc. Note that the list is ordered
            alphabetically by last name.

            3. Commit the change on a new branch and open a pull request with
            the change.


            Once the pull request is merged, your name will appear on the
            [SpECTRE DOI on Zenodo](https://doi.org/10.5281/zenodo.4290404)
            with the next public release.


================================================
FILE: .github/workflows/PostRelease.yaml
================================================
# Distributed under the MIT License.
# See LICENSE.txt for details.

# Automations that run on published releases
name: Post release

on:
  release:
    types: [published]
  workflow_dispatch:
    inputs:
      tag_name:
        description: 'Tag name of the release'
        required: true

jobs:
  add_spack_version:
    name: Add version to Spack
    # Checksum the new release and send a PR to Spack that adds the new version.
    # The 'sxs-bot' GitHub account is the author of the commit and the PR.
    # - This job requires a repository secret named `GH_TOKEN_SXSBOT_SPACK` that
    #   has write access to the `sxs-bot/spack` repository.
    runs-on: ubuntu-latest
    env:
      RELEASE_TAG_NAME: ${{ inputs.tag_name || github.event.release.tag_name }}
    steps:
      - name: Download Spack
        uses: actions/checkout@v5
        with:
          repository: spack/spack
          fetch-depth: 0
          token: ${{ secrets.GH_TOKEN_SXSBOT_SPACK }}
      - name: Add spack-python to path
        run: |
          echo "$GITHUB_WORKSPACE/bin" >> $GITHUB_PATH
      - name: Checksum new version
        # Download and checksum the release tarball, and add a line to Spack's
        # `spectre/package.py`` file with the new version.
        #
        # The package file defines versions in lines like this:
        #
        #    version('develop', branch='develop')
        #    version('2022.01.03', sha256='872a0d1...')
        #    ...
        #
        # The `spack.util.format.get_version_lines` function returns a string
        # with lines like this for the new version(s), including the correct
        # indentation. Therefore, we insert the new lines into the file right
        # below the 'develop' version.
        shell: spack-python {0}
        run: |
          import spack.spec
          import spack.stage
          import spack.repo
          import spack.util.format
          import os

          # The tag name includes the 'v' prefix
          release_name = '${{ env.RELEASE_TAG_NAME }}'[1:]

          # Get the URL for the release tarball. The
          # 'github.event.release.tarball_url' points to a slightly different
          # 'https://api.github.com/...' URL, which has a different checksum
          # than the tarball listed on the GitHub release page and used by
          # Spack.
          pkg_cls = spack.repo.PATH.get_pkg_class('spectre')
          pkg = pkg_cls(spack.spec.Spec('spectre'))
          release_url = pkg.url_for_version(release_name)

          url_dict = {
              release_name: release_url,
          }
          version_hashes = spack.stage.get_checksums_for_versions(
              url_dict,
              pkg.name,
              fetch_options=pkg.fetch_options,
          )
          version_lines = spack.util.format.get_version_lines(
            version_hashes, url_dict
          )

          package_file = os.path.join(pkg.package_dir, 'package.py')
          with open(package_file, 'r') as open_package_file:
            package_file_lines = open_package_file.readlines()
          with open(package_file, 'w') as open_package_file:
            for line in package_file_lines:
              open_package_file.write(line)
              if line.strip().startswith('version("develop"'):
                open_package_file.write(version_lines + "\n")
      - name: Fix code formatting
        run: |
          spack style --fix `git diff --name-only`
        # Formatting can also be fixed later by Spack maintainers in the PR, so
        # it's fine if it fails here for some reason
        continue-on-error: true
      - name: Print diff
        run: |
          git diff
      - name: Send pull request to Spack
        uses: peter-evans/create-pull-request@v8
        with:
          token: ${{ secrets.GH_TOKEN_SXSBOT_SPACK }}
          commit-message: "spectre: add ${{ env.RELEASE_TAG_NAME }}"
          committer: "sxs-bot <sxs-bot@black-holes.org>"
          branch: "spectre-${{ env.RELEASE_TAG_NAME }}"
          delete-branch: true
          push-to-fork: sxs-bot/spack
          title: "spectre: add ${{ env.RELEASE_TAG_NAME }}"
          body: ""
  # Build and push the `demo` container to DockerHub on releases. This is
  # because the `demo` container has pre-built executables that we want to keep
  # up to date.
  docker:
    uses: ./.github/workflows/DemoContainer.yaml
    secrets: inherit


================================================
FILE: .github/workflows/Spack.yaml
================================================
# Distributed under the MIT License.
# See LICENSE.txt for details.

# Installation test with the Spack package manager
name: Spack

on:
  # Could run this on a schedule once Spack is stable enough to not break every
  # week.
  # schedule:
  #   - cron: '0 0 * * 1' # every Monday morning
  workflow_dispatch:

concurrency:
  group: spack
  cancel-in-progress: true

jobs:
  spack_install:
    name: Install
    strategy:
      matrix:
        host: [ubuntu-latest, macos-latest]
        compiler: [gcc, llvm, apple-clang]
        exclude:
          - host: ubuntu-latest
            compiler: apple-clang
        version:
          # A non-exhaustive set of versions to test, e.g., versions listed in
          # published papers.
          - 'develop'
          - '2021.12.15'
      fail-fast: false
    runs-on: ${{ matrix.host }}
    env:
      # This is the configuration ("spec") that we'll install with Spack
      # - Build a subset of executables, and Python bindings
      # - Disable debug symbols to fit in the memory of the GitHub Actions VM
      # - Select the 'multicore' backend for Charm++, since we're running on a
      #   single node.
      # - Select HDF5 without MPI to avoid compiling MPI.
      SPECTRE_SPEC: >-  # Line breaks are spaces, no trailing newline
        spectre@${{ matrix.version }}
          executables=SolvePoisson1D
          +python
          ~debug_symbols
          ^${{ matrix.compiler }}
          ^charmpp backend=multicore
          ^hdf5~mpi
      SPACK_COLOR: always
    steps:
      - name: Install compiler
        if: matrix.host == 'macos-latest' && matrix.compiler == 'llvm'
        run: |
          brew install llvm
          echo "$(brew --prefix llvm)/bin" >> $GITHUB_PATH
      - name: Install Spack
        run: |
          git clone -c feature.manyFiles=true --depth=1 \
            https://github.com/spack/spack.git
          echo $PWD/spack/bin >> $GITHUB_PATH
      - name: Configure Spack
        run: |
          spack debug report
          spack compiler find
          spack compiler info ${{ matrix.compiler }}
          spack external find
      - name: Print packages to install
        run: |
          spack spec -I ${SPECTRE_SPEC}
      - name: Install SpECTRE
        run: |
          spack install --show-log-on-error ${SPECTRE_SPEC}


================================================
FILE: .github/workflows/Tests.yaml
================================================
# Distributed under the MIT License.
# See LICENSE.txt for details.

# Continuous integration tests that pull requests are required to pass. This
# workflow can also be dispatched manually to tag and release versions.
name: Tests

# Set any defaults for the runs below.
# - use bash as the default shell since this is almost certainly what
#   is always expected. We use regular expressions in a few places
#   that rely on bash.
defaults:
  run:
    shell: bash

# Note that by default the jobs only run on the base repository, testing pull
# requests and merge commits. Enable GitHub Actions in your fork's repository
# settings to also run the tests on every push to one of your branches.
on:
  # We run all jobs when pull requests are opened, commits are pushed, or pull
  # requests are re-opened after being closed.
  # The jobs triggered by this event run on the base repository of the pull
  # request, so they have access to its caches.
  pull_request:
  # We run those jobs that require no information about a pull request (e.g.
  # unit tests) also on `push` events. This setup tests merge commits into
  # `develop` and also builds up caches on `develop` that can be re-used by PRs.
  # It also runs the jobs on forks if they have GitHub Actions enabled.
  push:
    branches-ignore:
      - gh-pages
  # Allow running the workflow manually to run tests and optionally release a
  # version on success (see the dev guide on "Automatic versioning")
  workflow_dispatch:
    inputs:
      release_version:
        description: >
          Enter a version name YYYY.MM.DD[.TWEAK] to create a release on success
        required: false
        default: ''
      timezone:
        description: >
          Timezone used for validating the version name. The release must be
          approved by the end of the day in the specified timezone. See
          /usr/share/zoneinfo for a list of possible values.
        required: false
        default: 'America/Los_Angeles'
      clear_ccache:
        description: >
          Enter 'yes' without quotes to clear ccache before running
        required: false
        default: ''
      container:
        description: >
          Container to use for builds
        required: false
        default: 'sxscollaboration/spectre:dev'
  # Allow running this workflow as a job in another workflow. This is used to
  # test a new Docker container before publishing it.
  workflow_call:
    inputs:
      container:
        description: >
          Container to use for builds
        required: false
        type: string
        default: 'sxscollaboration/spectre:dev'

# Cancel all other queued or in-progress runs of this workflow when it is
# scheduled, so repeated pushes to a branch or a PR don't block CI. Repeated
# pushes to 'develop' and 'release' are not canceled, so every merge commit is
# tested.
concurrency:
  group: ${{ github.ref }}
  cancel-in-progress: ${{ github.ref != 'refs/heads/develop'
    && github.ref != 'refs/heads/release' }}

jobs:
  # Make sure no commits are prefixed with `fixup` or similar keywords. See
  # `tools/CheckCommits.sh` for details.
  check_commits:
    name: Commits
    # Only run on pull requests since we don't check _all_ commits, but only
    # those that came after the PR's base ref.
    if: github.event_name == 'pull_request'
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v5
        with:
          fetch-depth: 0
      - name: Check commits
        # `CheckCommits.sh` tests against the local `develop` branch, so that's
        # where we fetch the pull-request's base-branch to. Typically, it is
        # the upstream `sxs-collaboration/spectre/develop` branch.
        run: >
          cd $GITHUB_WORKSPACE

          git remote add upstream
          https://github.com/${{ github.repository }}.git

          git remote -v

          git fetch upstream ${{ github.base_ref }}:develop

          ./tools/CheckCommits.sh

  # - Run simple textual checks over files in the repository, e.g. checking for
  #   a license, line length limits etc. See `tools/CheckFiles.sh` for details.
  # - Run format checker for python to make sure the code is formatted correctly
  # - Check the metadata are consistent
  check_files_and_formatting:
    name: Files and formatting
    runs-on: ubuntu-latest
    container:
      image: ${{ inputs.container || 'sxscollaboration/spectre:dev' }}
    steps:
      - name: Checkout repository
        uses: actions/checkout@v5
        with:
          fetch-depth: 0
      # Work around https://github.com/actions/checkout/issues/760
      - name: Trust checkout
        run: |
          git config --global --add safe.directory $GITHUB_WORKSPACE
      # The action above checks out the `github.ref` by default, which points to
      # the merge commit with the target branch for pull-request events. For
      # this job we check out the pull-request HEAD instead. It makes
      # git-related issues easier to debug because the state matches the local
      # repository. It also prevents releases that happened since the
      # pull-request branch was last rebased from disrupting tests that involve
      # the latest release tag.
      - name: Checkout pull-request HEAD
        if: github.event_name == 'pull_request'
        run: |
          git checkout ${{ github.event.pull_request.head.sha }}
      # Some tests involve release tags, which may not have been pushed to
      # forks. Fetching them here.
      - name: Fetch upstream tags on forks
        if: github.repository != 'sxs-collaboration/spectre'
        run: |
          git fetch --tags https://github.com/sxs-collaboration/spectre
      - name: Install Python dependencies
        run: |
          pip3 install -r .github/scripts/requirements-release.txt
          pip3 install -r support/Python/dev_requirements.txt
      - name: Test tools
        run: |
          python3 -m unittest discover -p 'Test_CompileReleaseNotes.py' \
            tests.tools -v
      - name: Check Python formatting
        run: |
          cd $GITHUB_WORKSPACE
          echo "Using 'black' to check Python formatting..."
          black --check --extend-exclude '/external/' .
          echo "Using 'isort' to check Python formatting..."
          isort --check-only --extend-skip external .
      - name: Test script
        run: |
          cd $GITHUB_WORKSPACE
          ./tools/CheckFiles.sh --test
      - name: Check files
        run: |
          cd $GITHUB_WORKSPACE
          ./tools/CheckFiles.sh
      - name: Check metadata
        run: |
          python3 tools/CheckMetadata.py
      - name: Check the metadata is consistent with the releases
        # No need to check this on forks. They would need to set a Zenodo token
        # for this test. Also disable on PRs because they don't have access to
        # the repo's secrets.
        if: >
          github.repository == 'sxs-collaboration/spectre'
            && github.event_name != 'pull_request'
        run: |
          python3 .github/scripts/Release.py prepare -vv --check-only \
            --zenodo-token ${{ secrets.ZENODO_READONLY_TOKEN }} \
            --github-token ${{ secrets.GITHUB_TOKEN }}
          python3 .github/scripts/Release.py publish -vv --check-only \
            --zenodo-token ${{ secrets.ZENODO_READONLY_TOKEN }} \
            --github-token ${{ secrets.GITHUB_TOKEN }} \
            --auto-publish
      - name: Check release notes
        run: |
          python3 tools/CompileReleaseNotes.py -vv -o release_notes.md \
            --github-token ${{ secrets.GITHUB_TOKEN }}
      - name: Upload release notes
        uses: actions/upload-artifact@v7
        with:
          name: release-notes
          path: release_notes.md
      # GitHub doesn't display artifacts until the workflow has completed, so we
      # print the release notes here to be able to review them before approving
      # a release
      - name: Print release notes
        run: |
          cat release_notes.md

  # Lint with clang-tidy. We check only code that changed relative to the
  # nearest common ancestor commit with `sxs-collaboration/spectre/develop`.
  clang_tidy:
    name: Clang-tidy
    if: >
      (github.event_name == 'pull_request'
       && github.repository == 'sxs-collaboration/spectre'
       && github.base_ref == 'develop')
      || github.ref != 'refs/heads/develop'
    runs-on: ubuntu-latest
    container:
      image: ${{ inputs.container || 'sxscollaboration/spectre:dev' }}
    strategy:
      matrix:
        build_type: [Debug, Release]
    steps:
      - name: Checkout repository
        uses: actions/checkout@v5
        with:
          fetch-depth: 0
      # Work around https://github.com/actions/checkout/issues/760
      - name: Trust checkout
        run: |
          git config --global --add safe.directory $GITHUB_WORKSPACE
      # Some cpp20 features aren't supported until clang-tidy-16. See:
      # https://stackoverflow.com/questions/46114214/lambda-implicit-capture-fails-with-variable-declared-from-structured-binding#comment135007519_46115028
      # The clang-tidy-diff tool doesn't report exit codes until version
      # 18.1.0, so we grab the version that does:
      # https://github.com/llvm/llvm-project/commit/4294bca5e4f6e6e8cfdbd9fbe8751c5e5415fd47
      - name: Install clang-tidy-16
        run: |
          apt-get update -y
          apt-get remove -y clang-tidy clang-tidy-14
          apt-get install -y clang-tidy-16
          ln -s /usr/bin/clang-tidy-16 /usr/bin/clang-tidy
          wget https://raw.githubusercontent.com/llvm/llvm-project/4294bca5e4f6e6e8cfdbd9fbe8751c5e5415fd47/clang-tools-extra/clang-tidy/tool/clang-tidy-diff.py
          chmod +x clang-tidy-diff.py
          mv clang-tidy-diff.py /usr/bin/clang-tidy-diff.py
          ln -s /usr/bin/clang-tidy-diff.py /usr/bin/clang-tidy-diff
      - name: Configure annotations
        # Has to be accessible outside the container, see issue:
        # https://github.com/actions/toolkit/issues/305
        run: |
          cp .github/problem_matchers/ClangTidy.json "$HOME/"
          echo "::add-matcher::$HOME/ClangTidy.json"
      - name: Fetch sxs-collaboration/spectre/develop
        run: >
          cd $GITHUB_WORKSPACE

          git remote add upstream
          https://github.com/sxs-collaboration/spectre.git

          git remote -v

          git fetch upstream develop
      - name: Configure with cmake
        run: >
          mkdir build && cd build

          cmake
          -D CMAKE_C_COMPILER=clang-14
          -D CMAKE_CXX_COMPILER=clang++-14
          -D CMAKE_Fortran_COMPILER=gfortran
          -D CHARM_ROOT=${CHARM_ROOT}
          -D CMAKE_BUILD_TYPE=${{ matrix.build_type }}
          -D OVERRIDE_ARCH=x86-64
          -D USE_CCACHE=OFF
          -D USE_PCH=OFF
          -D DEBUG_SYMBOLS=OFF
          -D BUILD_PYTHON_BINDINGS=ON
          -D SPECTRE_AUTODIFF=ON
          -D SPECTRE_FETCH_MISSING_DEPS=ON
          $GITHUB_WORKSPACE

          make -j4 module_All Libsharp-external
      - name: Check clang-tidy
        run: >
          UPSTREAM_HASH=$(git merge-base HEAD upstream/develop)

          echo "Running clang-tidy relative to: $UPSTREAM_HASH\n"

          git diff -U0 $UPSTREAM_HASH |
            clang-tidy-diff -path build -p1 -use-color -j4 \
            -extra-arg=-I/usr/include/hdf5/serial \
            -extra-arg=-I$GITHUB_WORKSPACE/build/_deps/autodiff-src


  # Build the documentation and check for problems, then upload as a workflow
  # artifact and deploy to gh-pages.
  doc_check:
    name: Documentation
    needs: check_files_and_formatting
    runs-on: ubuntu-latest
    container:
      image: ${{ inputs.container || 'sxscollaboration/spectre:dev' }}
      env:
        CCACHE_DIR: /work/ccache
        CCACHE_READONLY: 1
        CCACHE_COMPILERCHECK: content
        CCACHE_BASEDIR: $GITHUB_WORKSPACE
    steps:
      - name: Checkout repository
        uses: actions/checkout@v5
      # Work around https://github.com/actions/checkout/issues/760
      - name: Trust checkout
        run: |
          git config --global --add safe.directory $GITHUB_WORKSPACE
      # These can be installed directly in the Docker container instead
      - name: Install Python dependencies
        run: |
          python3 -m pip install -r support/Python/dev_requirements.txt
      - name: Download release notes
        uses: actions/download-artifact@v8
        id: release-notes
        with:
          name: release-notes
          path: /work
      - name: Append release notes to changelog
        # The sed command escapes @ symbols at beginning of words (GitHub
        # usernames) so they aren't interpreted as Doxygen commands
        run: |
          echo "" >> docs/Changelog.md
          cat /work/release_notes.md | sed 's/\(\B\@\)/\\\1/g' \
            >> docs/Changelog.md
      - name: Restore ccache
        uses: actions/cache/restore@v5
        id: restore-ccache
        env:
          CACHE_KEY_PREFIX: ccache-gcc-11-Debug-pch-ON
        with:
          path: /work/ccache
          key: "${{ env.CACHE_KEY_PREFIX }}-${{ github.run_id }}"
          restore-keys: |
            ${{ env.CACHE_KEY_PREFIX }}-
      # - Make sure to use the same build configuration as the unit tests from
      #   which we restore the ccache.
      # - Set `BUILD_TESTING=OFF` to test a CMake configuration with tests
      #   turned off.
      - name: Configure with cmake
        run: >
          mkdir build && cd build

          cmake
          -D CMAKE_C_COMPILER=gcc-11
          -D CMAKE_CXX_COMPILER=g++-11
          -D CMAKE_Fortran_COMPILER=gfortran-11
          -D CMAKE_CXX_FLAGS="-Werror"
          -D OVERRIDE_ARCH=x86-64
          -D CHARM_ROOT=${CHARM_ROOT}
          -D CMAKE_BUILD_TYPE=Debug
          -D SPECTRE_DEBUG_Og=ON
          -D DEBUG_SYMBOLS=OFF
          -D USE_PCH=ON
          -D USE_XSIMD=ON
          -D USE_CCACHE=ON
          -D ENABLE_OPENMP=ON
          -D BUILD_PYTHON_BINDINGS=ON
          -D BUILD_SHARED_LIBS=ON
          -D MEMORY_ALLOCATOR=SYSTEM
          -D BUILD_DOCS=ON
          -D BUILD_TESTING=OFF
          -D SPECTRE_AUTODIFF=ON
          -D SPECTRE_FETCH_MISSING_DEPS=ON
          $GITHUB_WORKSPACE
      - name: Check documentation
        working-directory: build
        run: |
          make doc-check
      # Re-build with coverage information on pushes to develop for deployment
      # to gh-pages.
      - name: Build documentation with coverage
        if: github.event_name == 'push' && github.ref == 'refs/heads/develop'
        working-directory: build
        run: |
          make doc-coverage
      - name: Build Python docs
        working-directory: build
        run: |
          make py-docs -j4
      # Upload as an artifact to make available to deployment and to PRs
      - name: Prepare for upload
        working-directory: build
        run: |
          tar -cf docs-html.tar --directory docs/html .
      - name: Upload documentation
        uses: actions/upload-artifact@v7
        with:
          name: docs-html
          path: build/docs-html.tar

  # Deploy to gh-pages on pushes to develop
  # See docs: https://github.com/actions/deploy-pages
  docs-deploy:
    name: Deploy documentation
    if: github.event_name == 'push' && github.ref == 'refs/heads/develop'
    needs: doc_check
    runs-on: ubuntu-latest
    permissions:
      pages: write
      id-token: write
    environment:
      name: github-pages
      url: ${{ steps.deploy.outputs.page_url }}
    steps:
      - uses: actions/deploy-pages@v5
        id: deploy
        with:
          artifact_name: docs-html

  # Build all test executables and run unit tests on a variety of compiler
  # configurations.
  unit_tests:
    name: Unit tests
    runs-on: ubuntu-latest
    timeout-minutes: 345
    strategy:
      fail-fast: false
      matrix:
        # We have a sparse clang test configuration to reduce the amount of
        # GitHub cache space we use. GCC being the production compiler on
        # supercomputers means we need to thoroughly test it.
        compiler:
          - gcc-10
          - gcc-11
          - gcc-13
        build_type: [Debug, Release]
        include:
          # Generate code coverage report for a single build
          # Note: currently disabled because it exceeds the available disk space
          # - compiler: gcc-9
          #   build_type: Debug
          #   COVERAGE: ON
          #   TEST_TIMEOUT_FACTOR: 3
          # This configuration seems to run consistently slower than newer gcc
          # or clang builds, so we increase the test timeout a bit
          - compiler: gcc-10
            build_type: Debug
            TEST_TIMEOUT_FACTOR: 2
            # Test 3D rendering with ParaView
            # Note: currently disabled because of some unknown upstream issue
            # test_3d_rendering: ON
            # Need Python version consistent with ParaView
            PYTHON_VERSION: "3.9"
          # Test with Kokkos enabled but without CUDA
          - compiler: gcc-10
            build_type: Release
            KOKKOS: ON
            # Disable FMA optimizations to avoid this issue:
            # https://github.com/sxs-collaboration/spectre/issues/5145
            EXTRA_CXX_FLAGS: "-mno-fma"
          # Don't modify the gcc-11 Debug build so its cache can be reused for
          # the documentation build
          # - compiler: gcc-11
          #   build_type: Debug
          # Test with Python 3.8 so that we retain backwards compatibility. We
          # keep track of Python versions on supercomputers in this issue:
          # https://github.com/sxs-collaboration/spectre/issues/442
          - compiler: gcc-11
            build_type: Release
            PYTHON_VERSION: "3.8"
            # Disable building executable for this build for now because it
            # exceeds the available memory. See issue:
            # https://github.com/sxs-collaboration/spectre/issues/5472
            test_executables: OFF
          # Test building with static libraries. Do so with clang in release
          # mode because these builds use up little disk space compared to GCC
          # builds or clang Debug builds
          - compiler: clang-13
            build_type: Release
            BUILD_SHARED_LIBS: OFF
            use_xsimd: ON
            MEMORY_ALLOCATOR: JEMALLOC
          # Add a test without PCH to the build matrix, which only builds core
          # libraries. Building all the tests without the PCH takes very long
          # and the most we would catch is a missing include of something that's
          # in the PCH.
          # Use this test also to build and test all input files with "normal"
          # or higher priority. The other configurations only test input files
          # with "high" priority to reduce the total build time.
          - compiler: clang-13
            build_type: Debug
            use_pch: OFF
            unit_tests: OFF
            input_file_tests_min_priority: "normal"
          # Test with ASAN
          - compiler: clang-14
            build_type: Debug
            # When building with ASAN we also need python bindings to be
            # disabled because otherwise we get link errors. See issue:
            # https://github.com/sxs-collaboration/spectre/issues/1890
            # So we are also using this build to test building without Python
            # bindings enabled.
            ASAN: ON
            BUILD_PYTHON_BINDINGS: OFF
            MEMORY_ALLOCATOR: JEMALLOC
            TEST_TIMEOUT_FACTOR: 2
          - compiler: clang-14
            build_type: Release
            # Test compatibility with oldest supported CMake version
            CMAKE_VERSION: "3.18.2"
            # Use an MPI version of Charm
            CHARM_ROOT: /work/charm_7_0_0/mpi-linux-x86_64-smp-clang
            # MPI running tests is a bit slower than multicore
            TEST_TIMEOUT_FACTOR: 3
            # If MPI should be tested
            USE_MPI: ON
            # Test `install` target with clang in Release mode because it uses
            # little disk space
            install: ON
          # Test compiling with nvcc and CUDA
          - compiler: nvcc-12-6
            SPECTRE_AUTODIFF: OFF
            CUDA: ON
            KOKKOS: ON
            # Compile for NVIDIA Ampere architecture. Can't run this on
            # GitHub-hosted runners because they don't have the GPU hardware,
            # but we can test the compilation.
            KOKKOS_ARCH: "AMPERE80"
            # Compile in Release mode to speed up the build
            build_type: Release
            # Build with static libs because Kokkos CUDA doesn't support shared
            # libs
            BUILD_SHARED_LIBS: OFF
            # Build only a subset of the code because compiling the full code is
            # too slow and exceeds the available memory. We should extend this
            # to the full code once we have a better solution for the memory
            # issue. See 'Test nvcc support' step below.
            unit_tests: OFF
            test_executables: OFF
            # Enable PlaneWave3D.yaml input file test
            input_file_tests_min_priority: "normal"
            # Disable pybindings until they support nvcc
            BUILD_PYTHON_BINDINGS: OFF
            # Disable warnings as nvcc emits a lot of them from system headers
            ENABLE_WARNINGS: OFF

    container:
      image: ${{ inputs.container || 'sxscollaboration/spectre:dev' }}
      env:
        # We make sure to use a fixed absolute path for the ccache directory
        CCACHE_DIR: /work/ccache
        # Use a separate temp directory to conserve cache space on GitHub
        CCACHE_TEMPDIR: /work/ccache-tmp
        # Control the max cache size. We evict unused entries in a step below to
        # make sure that each build only uses what it need of this max size.
        CCACHE_MAXSIZE: "2G"
        # Control the compression level. The ccache docs recommend at most level
        # 5 to avoid slowing down compilation.
        CCACHE_COMPRESS: 1
        CCACHE_COMPRESSLEVEL: 5
        # We hash the content of the compiler rather than the location and mtime
        # to make sure the cache works across the different machines
        CCACHE_COMPILERCHECK: content
        # Rewrite absolute paths starting with this base dir to relative paths
        # before hashing. This is needed to reuse the cache for the formaline
        # test below, which builds in a different directory.
        CCACHE_BASEDIR: $GITHUB_WORKSPACE
        # These vars are to allow running charm with MPI as root inside the
        # container which arises from using the "--privileged" flag just below.
        OMPI_ALLOW_RUN_AS_ROOT: 1
        OMPI_ALLOW_RUN_AS_ROOT_CONFIRM: 1
        # The number of cores to run on. This is given at:
        # https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners#standard-github-hosted-runners-for-public-repositories
        NUMBER_OF_CORES: 4
      # See https://lists.cs.illinois.edu/lists/arc/charm/2018-10/msg00011.html
      # for why we need this
      options: --privileged
    steps:
      - name: Record start time
        id: start
        run: |
          echo "time=$(date +%s)" >> "$GITHUB_OUTPUT"
      - name: Checkout repository
        uses: actions/checkout@v5
      # Work around https://github.com/actions/checkout/issues/760
      - name: Trust checkout
        run: |
          git config --global --add safe.directory $GITHUB_WORKSPACE
      - uses: ./.github/actions/parse-compiler
        with:
          compiler: ${{ matrix.compiler }}
      # Install the selected compiler. We don't bundle all of them in the
      # container because they take up a lot of space.
      - name: Install compiler
        run: |
          add-apt-repository ppa:ubuntu-toolchain-r/test
          apt-get update -y
          if [[ $COMPILER_ID = gcc ]]; then
            apt-get install -y $CC $CXX $FC
          elif [[ $COMPILER_ID = clang ]]; then
            apt-get install -y $CC $FC
          elif [[ $COMPILER_ID = nvcc ]]; then
            # Install CUDA
            wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb
            dpkg -i cuda-keyring_1.1-1_all.deb
            apt-get update -y
            apt-get install -y cuda-nvcc-${COMPILER_VERSION} \
              build-essential libc6-dev pkg-config
            echo "/usr/local/cuda-${COMPILER_VERSION/-/.}/bin" >> $GITHUB_PATH
          fi
      - name: Install Kokkos
        if: matrix.KOKKOS == 'ON'
        working-directory: /work
        run: |
          KOKKOS_VERSION=4.4.00
          wget -O kokkos.tar.gz "https://github.com/kokkos/kokkos/releases/download/${KOKKOS_VERSION}/kokkos-${KOKKOS_VERSION}.tar.gz"
          tar -xzf kokkos.tar.gz && mv kokkos-* kokkos && cd kokkos
          mkdir build && cd build
          cmake .. \
            -D CMAKE_BUILD_TYPE=${{ matrix.build_type }} \
            -D CMAKE_INSTALL_PREFIX=/usr/local \
            -D Kokkos_ENABLE_SERIAL=ON \
            -D Kokkos_ENABLE_OPENMP=ON \
            -D Kokkos_ENABLE_CUDA=${{ matrix.CUDA || 'OFF' }} \
            -D Kokkos_ARCH_${{ matrix.KOKKOS_ARCH || 'X86_64' }}=ON \
            -D Kokkos_ENABLE_CUDA_CONSTEXPR=ON \
            -D Kokkos_ENABLE_CUDA_RELOCATABLE_DEVICE_CODE=ON \
            -D CMAKE_POSITION_INDEPENDENT_CODE=ON
          make -j ${NUMBER_OF_CORES} install
          cd ../../ && rm -rf kokkos.tar.gz kokkos
          # Use Kokkos compiler wrapper for nvcc
          if [[ $COMPILER_ID = nvcc ]]; then
            echo "CXX=/usr/local/bin/nvcc_wrapper" >> $GITHUB_ENV
          fi
      # Install specific CMake version if requested
      - name: Install CMake version
        if: matrix.CMAKE_VERSION
        working-directory: /work
        run: |
          CMAKE_VERSION=${{ matrix.CMAKE_VERSION }}
          wget -O cmake-install.sh "https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}-linux-x86_64.sh"
          sh cmake-install.sh --prefix=/usr --skip-license
          rm cmake-install.sh
      - name: Install Python version
        if: matrix.PYTHON_VERSION
        run: |
          add-apt-repository ppa:deadsnakes/ppa
          apt install -y python${{ matrix.PYTHON_VERSION }}-dev \
            python${{ matrix.PYTHON_VERSION }}-venv \
            python${{ matrix.PYTHON_VERSION }}-distutils
          update-alternatives --install /usr/bin/python3 python3 \
            /usr/bin/python${{ matrix.PYTHON_VERSION }} 1
      - name: Install Python dependencies
        if: matrix.PYTHON_VERSION
        run: |
          python${{ matrix.PYTHON_VERSION }} -m pip install \
            -r support/Python/requirements.txt \
            -r support/Python/dev_requirements.txt
          python${{ matrix.PYTHON_VERSION }} -m pip list -v
      - name: Install ParaView
        if: matrix.test_3d_rendering == 'ON'
        working-directory: /work
        # Can't just `apt-get install python3-paraview` because we need the
        # headless build of ParaView. So we download a binary from paraview.org
        # (which is built for a specific Python version unfortunately).
        run: |
          apt-get install -y libglvnd-dev  # Needed to find 'libglapi.so'
          wget -O paraview.tar.gz --no-check-certificate "https://www.paraview.org/paraview-downloads/download.php?submit=Download&version=v5.10&type=binary&os=Linux&downloadFile=ParaView-5.10.1-osmesa-MPI-Linux-Python3.9-x86_64.tar.gz"
          tar -xzf paraview.tar.gz
          rm paraview.tar.gz
          mv ParaView-* /opt/paraview
          echo "/opt/paraview/bin" >> $GITHUB_PATH
          # Make 'paraview' Python package available
          PYTHONPATH=/opt/paraview/lib/python3.9/site-packages:$PYTHONPATH
          # Give system-installed Python packages priority over ParaView's
          PYTHONPATH=$pythonLocation/lib/python3.9/site-packages:$PYTHONPATH
          echo "PYTHONPATH=$PYTHONPATH" >> $GITHUB_ENV
      - name: Install MPI and Charm++
        if: matrix.USE_MPI == 'ON'
        working-directory: /work
        run: |
          apt-get install -y libopenmpi-dev
          cd /work/charm_7_0_0 && ./build charm++ mpi-linux-x86_64-smp clang \
          -j ${NUMBER_OF_CORES} -g0 -O1 --build-shared --with-production

      # Assign a unique cache key for every run.
      # - We will save the cache using this unique key, but only on the develop
      #   branch. This way we regularly update the cache without filling up the
      #   storage space with caches from other branches.
      # - To restore the most recent cache we provide a partially-matched
      #   "restore key".
      - name: Restore ccache
        uses: actions/cache/restore@v5
        id: restore-ccache
        env:
          CACHE_KEY_PREFIX: "ccache-${{ matrix.compiler }}-\
${{ matrix.build_type }}-pch-${{ matrix.use_pch || 'ON' }}"
        with:
          path: /work/ccache
          key: "${{ env.CACHE_KEY_PREFIX }}-${{ github.run_id }}"
          restore-keys: |
            ${{ env.CACHE_KEY_PREFIX }}-
      - name: Configure ccache
        # Print the ccache configuration and reset statistics
        run: |
          ccache -pz
      - name: Clear ccache
        # Clear ccache if requested
        if: >
          github.event_name == 'workflow_dispatch'
            && github.event.inputs.clear_ccache == 'yes'
        run: |
          ccache -C
      - name: Configure build with cmake
        # Notes on the build configuration:
        # - We don't need debug symbols during CI, so we turn them off to reduce
        #   memory usage.
        # - We run unit tests with the following compiler flags:
        #   -Werror: Treat warnings as error.
        #   -march=x86-64: Make sure we are building on a consistent
        #   architecture so caching works. This is necessary because GitHub may
        #   run the job on different hardware.
        run: >
          mkdir build && cd build

          ENABLE_WARNINGS=${{ matrix.ENABLE_WARNINGS }}
          WERROR="${{ matrix.WERROR != 'OFF' && '-Werror' || '' }}"
          CXX_FLAGS="${WERROR} ${{ matrix.EXTRA_CXX_FLAGS }}"
          PYTHON_VERSION=${{ matrix.PYTHON_VERSION }}
          BUILD_PYTHON_BINDINGS=${{ matrix.BUILD_PYTHON_BINDINGS }}
          BUILD_SHARED_LIBS=${{ matrix.BUILD_SHARED_LIBS }}
          KOKKOS=${{ matrix.KOKKOS }}
          MATRIX_CHARM_ROOT=${{ matrix.CHARM_ROOT }}
          ASAN=${{ matrix.ASAN }}
          MEMORY_ALLOCATOR=${{ matrix.MEMORY_ALLOCATOR }}
          UBSAN_UNDEFINED=${{ matrix.UBSAN_UNDEFINED }}
          UBSAN_INTEGER=${{ matrix.UBSAN_INTEGER }}
          USE_PCH=${{ matrix.use_pch }}
          USE_XSIMD=${{ matrix.use_xsimd }}
          COVERAGE=${{ matrix.COVERAGE }}
          TEST_TIMEOUT_FACTOR=${{ matrix.TEST_TIMEOUT_FACTOR }}
          INPUT_FILE_MIN_PRIO=${{ matrix.input_file_tests_min_priority }}
          SPECTRE_AUTODIFF=${{ matrix.SPECTRE_AUTODIFF }}

          cmake --version

          cmake
          -D CMAKE_C_COMPILER=${CC}
          -D CMAKE_CXX_COMPILER=${CXX}
          -D CMAKE_Fortran_COMPILER=${FC}
          -D Python_EXECUTABLE=/usr/bin/python${PYTHON_VERSION:-'3'}
          -D CMAKE_CXX_FLAGS="${CXX_FLAGS}"
          -D OVERRIDE_ARCH=x86-64
          -D ENABLE_WARNINGS=${ENABLE_WARNINGS:-'ON'}
          -D CHARM_ROOT=${MATRIX_CHARM_ROOT:-$CHARM_ROOT}
          -D CMAKE_BUILD_TYPE=${{ matrix.build_type }}
          -D SPECTRE_DEBUG_Og=ON
          -D DEBUG_SYMBOLS=OFF
          -D BACKTRACE_LIB=/usr/local/lib/libbacktrace.a
          -D BACKTRACE_HEADER_DIR=/usr/local/include
          -D UNIT_TESTS_IN_TEST_EXECUTABLES=OFF
          -D SPECTRE_INPUT_FILE_TEST_MIN_PRIORITY=${INPUT_FILE_MIN_PRIO:-'high'}
          -D STRIP_SYMBOLS=ON
          -D STUB_EXECUTABLE_OBJECT_FILES=ON
          -D STUB_LIBRARY_OBJECT_FILES=ON
          -D USE_PCH=${USE_PCH:-'ON'}
          -D USE_XSIMD=${USE_XSIMD:-'ON'}
          -D USE_CCACHE=ON
          -D ENABLE_OPENMP=ON
          -D SPECTRE_KOKKOS=${KOKKOS:-'OFF'}
          -D COVERAGE=${COVERAGE:-'OFF'}
          -D BUILD_PYTHON_BINDINGS=${BUILD_PYTHON_BINDINGS:-'ON'}
          -D BUILD_SHARED_LIBS=${BUILD_SHARED_LIBS:-'ON'}
          -D ASAN=${ASAN:-'OFF'}
          -D UBSAN_UNDEFINED=${UBSAN_UNDEFINED:-'OFF'}
          -D UBSAN_INTEGER=${UBSAN_INTEGER:-'OFF'}
          -D MEMORY_ALLOCATOR=${MEMORY_ALLOCATOR:-'SYSTEM'}
          -D SPECTRE_UNIT_TEST_TIMEOUT_FACTOR=${TEST_TIMEOUT_FACTOR:-'1'}
          -D SPECTRE_INPUT_FILE_TEST_TIMEOUT_FACTOR=${TEST_TIMEOUT_FACTOR:-'1'}
          -D SPECTRE_PYTHON_TEST_TIMEOUT_FACTOR=${TEST_TIMEOUT_FACTOR:-'1'}
          -D CMAKE_INSTALL_PREFIX=/work/spectre_install
          -D BUILD_DOCS=OFF
          -D SPECTRE_AUTODIFF=${SPECTRE_AUTODIFF:-'ON'}
          -D SPECTRE_FETCH_MISSING_DEPS=ON
          --warn-uninitialized
          $GITHUB_WORKSPACE 2>&1 | tee CMakeOutput.txt 2>&1
      - name: Check for CMake warnings
        working-directory: build
        run: |
          ! grep -A 6 "CMake Warning" ./CMakeOutput.txt
      - name: Build unit tests
        if: matrix.unit_tests != 'OFF'
        working-directory: build
        run: |
          make -j${NUMBER_OF_CORES} unit-tests
      - name: Run unit tests
        if: matrix.unit_tests != 'OFF' && matrix.COVERAGE != 'ON'
        working-directory: build
        run: |
          # We get occasional random timeouts, repeat tests to see if
          # it is a random timeout or systematic.
          #
          # We run ctest -L unit before build test-executables to make
          # sure that all the unit tests are actually built by the
          # unit-tests target.
          ctest -j${NUMBER_OF_CORES} -L unit \
              --output-on-failure --repeat after-timeout:3
      - name: Run unit tests with coverage reporting
        if: matrix.COVERAGE == 'ON'
        working-directory: build
        run: |
          make unit-test-coverage
          rm -r docs/html/unit-test-coverage
      - name: Upload coverage report to codecov.io
        if: matrix.COVERAGE == 'ON'
        uses: codecov/codecov-action@v4
        with:
          files: build/tmp/coverage.info
          token: ${{ secrets.CODECOV_TOKEN }}
          # Display the job as failed if upload fails (defaults to false for
          # some reason)
          fail_ci_if_error: true
        # We currently don't require codecov in our guidelines, so don't fail
        # the CI build if codecov fails to upload
        continue-on-error: true
      # Test only a few unit tests with nvcc for now because compiling the full
      # suite is too slow and exceed the available memory. We should extend this
      # to the full suite once we have a better solution for the memory issue.
      - name: Test nvcc support
        if: matrix.CUDA == 'ON'
        working-directory: build
        run: |
          make -j${NUMBER_OF_CORES} \
            Test_DataStructures \
            Test_Tensor \
            Test_Kokkos \
            Test_Spectral \
            Test_Utilities \
            EvolveScalarWave3D
          # Can't run these tests on GitHub-hosted runners because they don't
          # have GPU hardware.
          # ./bin/Test_DataStructures
          # ./bin/Test_Tensor
          # ./bin/Test_Kokkos
          # ./bin/Test_Spectral
          # ./bin/Test_Utilities
          # ctest -R PlaneWave3D.yaml --output-on-failure
      # Avoid running out of disk space by cleaning up the build directory
      - name: Clean up unit tests
        working-directory: build
        run: |
          pwd
          ls | xargs du -sh
          du -sh .
          rm -f bin/Test_*
      # Build the executables in a single thread to reduce memory usage
      # sufficiently so they compile on the GitHub-hosted runners
      - name: Build executables
        if: matrix.COVERAGE != 'ON' && matrix.test_executables != 'OFF'
        working-directory: build
        run: |
          make test-executables
      - name: Build Benchmark executable
        if: matrix.build_type == 'Release'
        working-directory: build
        run: |
          make -j${NUMBER_OF_CORES} Benchmark
      # Delete unused cache entries before uploading the cache
      - name: Clean up ccache
        if: github.ref == 'refs/heads/develop'
        run: |
          now=$(date +%s)
          job_duration=$((now - ${{ steps.start.outputs.time }}))
          ccache --evict-older-than "${job_duration}s"
      # Save the cache after everything has been built. Also save on failure or
      # on cancellation (`always()`) because a partial cache is better than no
      # cache.
      - name: Save ccache
        if: always() && github.ref == 'refs/heads/develop'
        uses: actions/cache/save@v5
        with:
          path: /work/ccache
          key: ${{ steps.restore-ccache.outputs.cache-primary-key }}
      - name: Print size of build directory
        working-directory: build
        run: |
          pwd
          ls | xargs du -sh
          du -sh .
      - name: Diagnose ccache
        run: |
          ccache -s
      - name: Run non-unit tests
        if: matrix.COVERAGE != 'ON' && matrix.test_executables != 'OFF'
        working-directory: build
        run: |
          # We get occasional random timeouts, repeat tests to see if
          # it is a random timeout or systematic
          #
          # Only use 2 cores because these tests run more slowly.
          ctest -j2 -LE unit --output-on-failure \
                --repeat after-timeout:3
      - name: Install
        if: matrix.install == 'ON'
        working-directory: build
        # Make sure the `install` target runs without error. We could add some
        # basic smoke tests here to make sure the installation worked.
        run: |
          make install
      - name: Print size of install directory
        if: matrix.install == 'ON'
        working-directory: /work/spectre_install
        # Remove files post-install to reduce disk space for later on.
        run: |
          pwd
          ls | xargs du -sh
          du -sh .
          rm -r ./*
      - name: Test formaline tar can be built
        # - We only run the formaline tests in debug mode to reduce total build
        #   time in CI. We don't run them with ASAN because then we run out of
        #   disk space.
        # - We do run for all compilers, though, because formaline injects data
        #   at the linking stage, which means we are somewhat tied to the
        #   compiler version.
        # - We make sure to use the same compiler flags as the full build above
        #   so ccache is able to speed up the build.
        if: >
          matrix.build_type == 'Debug'
            && matrix.ASAN != 'ON'
            && matrix.test_executables != 'OFF'
        working-directory: build
        run: >
          make EvolveBurgers -j${NUMBER_OF_CORES}

          if [ ! -f ./bin/EvolveBurgers ]; then
            echo "Could not find the executable EvolveBurgers";
            echo "which we use for testing formaline";
            exit 1
          fi

          # We disable ASAN's leak sanitizer because Charm++ has false
          # positives that would cause the build to fail. We disable
          # leak sanitizer for the ctest runs inside CMake anyway.

          ASAN_OPTIONS=detect_leaks=0 ./bin/EvolveBurgers
          --dump-source-tree-as spectre_src --dump-only

          mkdir spectre_src;
          mv spectre_src.tar.gz spectre_src;
          cd spectre_src;
          tar xf spectre_src.tar.gz;
          mkdir build-formaline;
          cd build-formaline

          ENABLE_WARNINGS=${{ matrix.ENABLE_WARNINGS }}
          WERROR="${{ matrix.WERROR != 'OFF' && '-Werror' || '' }}"
          CXX_FLAGS="${WERROR} ${{ matrix.EXTRA_CXX_FLAGS }}"
          PYTHON_VERSION=${{ matrix.PYTHON_VERSION }}
          BUILD_PYTHON_BINDINGS=${{ matrix.BUILD_PYTHON_BINDINGS }}
          MATRIX_CHARM_ROOT=${{ matrix.CHARM_ROOT }}
          MEMORY_ALLOCATOR=${{ matrix.MEMORY_ALLOCATOR }};
          USE_PCH=${{ matrix.use_pch }};
          USE_XSIMD=${{ matrix.use_xsimd }}

          cmake
          -D CMAKE_C_COMPILER=${CC}
          -D CMAKE_CXX_COMPILER=${CXX}
          -D CMAKE_Fortran_COMPILER=${FC}
          -D Python_EXECUTABLE=/usr/bin/python${PYTHON_VERSION:-'3'}
          -D CMAKE_CXX_FLAGS="${CXX_FLAGS}"
          -D OVERRIDE_ARCH=x86-64
          -D ENABLE_WARNINGS=${ENABLE_WARNINGS:-'ON'}
          -D BUILD_SHARED_LIBS=ON
          -D CHARM_ROOT=${MATRIX_CHARM_ROOT:-$CHARM_ROOT}
          -D CMAKE_BUILD_TYPE=${{ matrix.build_type }}
          -D SPECTRE_DEBUG_Og=ON
          -D DEBUG_SYMBOLS=OFF
          -D UNIT_TESTS_IN_TEST_EXECUTABLES=OFF
          -D STRIP_SYMBOLS=ON
          -D STUB_EXECUTABLE_OBJECT_FILES=ON
          -D STUB_LIBRARY_OBJECT_FILES=ON
          -D USE_PCH=${USE_PCH:-'ON'}
          -D USE_XSIMD=${USE_XSIMD:-'ON'}
          -D USE_CCACHE=ON
          -D BUILD_PYTHON_BINDINGS=${BUILD_PYTHON_BINDINGS:-'ON'}
          -D MEMORY_ALLOCATOR=${MEMORY_ALLOCATOR:-'SYSTEM'}
          -D BUILD_DOCS=OFF
          -D SPECTRE_AUTODIFF=ON
          -D SPECTRE_FETCH_MISSING_DEPS=ON
          ..

          make EvolveBurgers -j${NUMBER_OF_CORES}

          # Run on multiple cores to run both the "parse" and "execute" tests
          # simultaneously.

          ctest -j${NUMBER_OF_CORES} -R InputFiles.Burgers.Step.yaml
          --output-on-failure

          cd .. && rm -r build-formaline
      - name: Test bundled exporter
        if: matrix.ASAN != 'ON' && matrix.CUDA != 'ON'
        working-directory: build
        run: |
          make -j${NUMBER_OF_CORES} BundledExporter
          mkdir build-test-exporter && cd build-test-exporter
          cmake -D SPECTRE_ROOT=$GITHUB_WORKSPACE/build \
            $GITHUB_WORKSPACE/tests/Unit/IO/Exporter/BundledExporter
          make -j${NUMBER_OF_CORES}
          ./TestSpectreExporter \
            $GITHUB_WORKSPACE/tests/Unit/Visualization/Python/VolTestData0.h5 \
            element_data 0 Psi 0 0 0 -0.07059806932542323
          cd .. && rm -r build-test-exporter
      - name: Diagnose ccache
        run: |
          ccache -s

  # Build all test executables and run unit tests on macOS
  unit_tests_macos:
    name: Unit tests on macOS
    timeout-minutes: 345
    strategy:
      fail-fast: false
      matrix:
        os:
          - macos-15-intel
          - macos-15
    runs-on: ${{ matrix.os }}
    env:
      # We install some low-level dependencies with Homebrew. They get picked up
      # by `spack external find`.
      SPECTRE_BREW_DEPS: >-  # Line breaks are spaces, no trailing newline
        autoconf automake boost catch2 ccache cmake gsl hdf5 openblas yaml-cpp xsimd
      # We install these packages with Spack and cache them. The full specs are
      # listed below. This list is only needed to create the cache.
      SPECTRE_SPACK_DEPS: blaze charmpp libxsmm
      CCACHE_DIR: $HOME/ccache
      CCACHE_TEMPDIR: $HOME/ccache-tmp
      CCACHE_MAXSIZE: "2G"
      CCACHE_COMPRESS: 1
      CCACHE_COMPRESSLEVEL: 5
      CCACHE_COMPILERCHECK: content
      SPACK_SKIP_MODULES: true
      SPACK_COLOR: always
      NUM_CORES: ${{ matrix.NUM_CORES }}
    steps:
      - name: Record start time
        id: start
        run: |
          echo "time=$(date +%s)" >> "$GITHUB_OUTPUT"
      - name: Get CPU cores
        id: get_cores
        run: |
          CORES=$(sysctl -n hw.ncpu)
          echo "NUM_CORES=$CORES" >> $GITHUB_ENV
          echo "Detect $CORES cores"
      - name: Checkout repository
        uses: actions/checkout@v5
      - uses: actions/setup-python@v6
        with:
          python-version: '3.12'
      - name: Install Homebrew dependencies
        # uninstall cmake to avoid conflict between brew taps
        run: |
          brew uninstall cmake
          brew install $SPECTRE_BREW_DEPS
      # We install the remaining dependencies with Spack and cache them.
      # See the `unit_tests` job above for details on the cache configuration.
      - name: Restore dependency cache
        uses: actions/cache/restore@v5
        id: restore-dependencies
        env:
          CACHE_KEY_PREFIX: "dependencies-${{ matrix.os }}"
        with:
          path: ~/dependencies
          key: "${{ env.CACHE_KEY_PREFIX }}-${{ github.run_id }}"
          restore-keys: |
            ${{ env.CACHE_KEY_PREFIX }}-
      - name: Install Spack
        # Pin a specific version of Spack to avoid breaking CI builds when
        # Spack changes.
        run: |
          cd $HOME
          git clone -c feature.manyFiles=true \
            https://github.com/spack/spack.git
          cd spack
          git checkout 7d1de58378fa210b7db887964fcc17187a504ad8
      - name: Configure Spack
        # - To avoid re-building packages that are already installed by Homebrew
        #   we let Spack find them.
        # - Add the dependency cache as binary mirror.
        run: |
          source $HOME/spack/share/spack/setup-env.sh
          spack debug report
          spack compiler find && spack compiler list
          spack external find
          spack config get packages
          spack mirror add dependencies file://$HOME/dependencies/spack
      # Install the remaining dependencies from source with Spack. We install
      # them in an environment that we can activate later. After building the
      # dependencies from source we cache them as compressed tarballs.
      - name: Install Spack dependencies
        run: |
          source $HOME/spack/share/spack/setup-env.sh
          spack env create spectre
          spack env activate spectre
          spack add blaze@3.8.2 ~blas ~lapack smp=none
          # Support installing charm 7.0.0 with CMake 4.0
          export CMAKE_POLICY_VERSION_MINIMUM=3.5
          spack add charmpp@7.0.0 +shared backend=multicore build-target=charm++
          # Use main branch until spack has 2.0 release
          spack add libxsmm@main
          spack concretize --reuse
          spack install --no-check-signature
          spack find -v
      - name: Update dependency cache
        if: github.ref == 'refs/heads/develop'
        run: |
          source $HOME/spack/share/spack/setup-env.sh
          # Clear existing buildcache so we don't accumulate old versions of
          # packages in the cache
          rm -rf $HOME/dependencies
          spack buildcache create -uf dependencies $SPECTRE_SPACK_DEPS
        # Allow the buildcache creation to fail without failing the job, since
        # it sometimes runs out of memory
        continue-on-error: true
      - name: Save dependency cache
        if: github.ref == 'refs/heads/develop'
        uses: actions/cache/save@v5
        with:
          path: ~/dependencies
          key: ${{ steps.restore-dependencies.outputs.cache-primary-key }}
      # Install remaining pure Python dependencies with pip because the Spack
      # package index can be incomplete (it can't mirror all of pip)
      - name: Install Python dependencies
        run: |
          source $HOME/spack/share/spack/setup-env.sh
          spack env activate spectre
          pip install -r support/Python/requirements.txt
      # Replace the ccache directory that building the dependencies may have
      # generated with the cached ccache directory.
      - name: Clear ccache from dependencies
        run: |
          ccache --clear
          rm -rf $CCACHE_DIR
          mkdir -p $CCACHE_DIR
      - name: Restore ccache
        uses: actions/cache/restore@v5
        id: restore-ccache
        env:
          CACHE_KEY_PREFIX: "ccache-${{ matrix.os }}"
        with:
          path: ~/ccache
          key: "${{ env.CACHE_KEY_PREFIX }}-${{ github.run_id }}"
          restore-keys: |
            ${{ env.CACHE_KEY_PREFIX }}-
      - name: Configure ccache
        run: |
          ccache -pz
      - name: Clear ccache
        # Clear ccache if requested
        if: >
          github.event_name == 'workflow_dispatch'
            && github.event.inputs.clear_ccache == 'yes'
        run: |
          ccache -C
      # Configure, build and run tests. See the `unit_tests` job above for
      # details.
      # - We increase the timeout for tests because the GitHub-hosted macOS VMs
      #   appear to be quite slow.
      - name: Configure build with cmake
        run: |
          source $HOME/spack/share/spack/setup-env.sh
          spack env activate spectre
          mkdir build && cd build
          cmake \
            -D CMAKE_C_COMPILER=clang \
            -D CMAKE_CXX_COMPILER=clang++ \
            -D CMAKE_Fortran_COMPILER=gfortran-14 \
            -D CMAKE_CXX_FLAGS="-Werror" \
            -D BUILD_SHARED_LIBS=ON \
            -D BUILD_PYTHON_BINDINGS=ON \
            -D MEMORY_ALLOCATOR=SYSTEM \
            -D CHARM_ROOT=$(spack location --install-dir charmpp) \
            -D BLAS_ROOT=$(brew --prefix openblas) \
            -D LAPACK_ROOT=$(brew --prefix openblas) \
            -D CMAKE_BUILD_TYPE=Debug \
            -D SPECTRE_DEBUG_Og=ON \
            -D DEBUG_SYMBOLS=OFF \
            -D UNIT_TESTS_IN_TEST_EXECUTABLES=OFF \
            -D STUB_EXECUTABLE_OBJECT_FILES=ON \
            -D STUB_LIBRARY_OBJECT_FILES=ON \
            -D USE_PCH=ON \
            -D USE_CCACHE=ON \
            -D SPECTRE_TEST_TIMEOUT_FACTOR=10 \
            -D CMAKE_INSTALL_PREFIX=../install \
            -D BUILD_DOCS=OFF \
            -D CMAKE_OSX_SYSROOT=macosx \
            $GITHUB_WORKSPACE
      - name: Build unit tests
        working-directory: build
        run: |
          make -j${NUM_CORES} unit-tests
      - name: Build executables
        working-directory: build
        run: |
          make test-executables
      - name: Clean up ccache
        if: github.ref == 'refs/heads/develop'
        run: |
          now=$(date +%s)
          job_duration=$((now - ${{ steps.start.outputs.time }}))
          ccache --evict-older-than "${job_duration}s"
      - name: Save ccache
        if: always() && github.ref == 'refs/heads/develop'
        uses: actions/cache/save@v5
        with:
          path: ~/ccache
          key: ${{ steps.restore-ccache.outputs.cache-primary-key }}
      - name: Print size of build directory
        working-directory: build
        run: |
          ls | xargs du -sh
          du -sh .
      - name: Diagnose ccache
        run: |
          ccache -s
      - name: Run unit tests
        working-directory: build
        run: |
          ctest -E TestingFramework.Abort -j${NUM_CORES} \
            --repeat after-timeout:3 --output-on-failure
      - name: Install
        working-directory: build
        run: |
          make install
      - name: Print size of install directory
        working-directory: install
        run: |
          ls | xargs du -sh
          du -sh .
          rm -r ./*

  # Release a new version on manual events when requested and the tests pass.
  # Only enable this on the `sxs-collaboration/spectre` repository (not on
  # forks).
  release_version:
    name: Release version
    # Running in a protected environment that provides the necessary secrets
    environment: release
    runs-on: ubuntu-latest
    if: >
      github.repository == 'sxs-collaboration/spectre'
        && github.ref == 'refs/heads/develop'
        && github.event_name == 'workflow_dispatch'
        && github.event.inputs.release_version != ''
    needs:
      - check_files_and_formatting
      - doc_check
      - unit_tests
    env:
      TZ: ${{ github.event.inputs.timezone }}
    steps:
      - uses: actions/checkout@v5
        with:
          fetch-depth: 0
          # Using a personal access token with admin privileges here so this
          # action can push to protected branches. Note that this also means
          # that the pushes can trigger additional workflows (GitHub only
          # prevents pushes with the default GITHUB_TOKEN from triggering
          # additional workflows).
          #
          # Note: sxs-bot has the personal access token configured.
          #
          # GitHub has 2 forms of personal access tokens.
          # For Fine-Grained Access:
          #  "Only selected repositories"
          #   - Contents: Access: Read and write
          #   - Deployments: Access: Read and write
          #
          # For Tokens (classic):
          #   repo: (off)
          #      public_repo: on
          #  Everything else is off.
          token: ${{ secrets.GH_TOKEN_RELEASE }}
      - uses: actions/setup-python@v6
        with:
          python-version: '3.8'
      - name: Install Python dependencies
        run: |
          pip3 install -r .github/scripts/requirements-release.txt
      # We use the current date as tag name, unless a tag name was specified
      # as input to the `workflow_dispatch` event
      - name: Determine release version
        id: get_version
        run: |
          INPUT_RELEASE_VERSION=${{ github.event.inputs.release_version }}
          RELEASE_VERSION=${INPUT_RELEASE_VERSION:-$(date +'%Y.%m.%d')}
          echo "Release version is: ${RELEASE_VERSION}"
          echo "RELEASE_VERSION=$RELEASE_VERSION" >> $GITHUB_ENV
      - name: Validate release version
        run: |
          VERSION_PATTERN="^([0-9]{4})\.([0-9]{2})\.([0-9]{2})(\.[0-9]+)?$"
          if [[ $RELEASE_VERSION =~ $VERSION_PATTERN ]]; then
            if [ $(date +'%Y') != ${BASH_REMATCH[1]} ] ||
            [ $(date +'%m') != ${BASH_REMATCH[2]} ] ||
            [ $(date +'%d') != ${BASH_REMATCH[3]} ]; then
              TODAY=$(date +'%Y.%m.%d')
              echo "'$RELEASE_VERSION' doesn't match current date '$TODAY'"
              exit 1
            fi
          else
            echo "'$RELEASE_VERSION' doesn't match '$VERSION_PATTERN'"
            exit 1
          fi
          if [ $(git tag -l "v$RELEASE_VERSION") ]; then
            echo "Tag 'v$RELEASE_VERSION' already exists"
            exit 1
          fi
          if [ $(git rev-parse HEAD) == $(git rev-parse origin/release) ]; then
            echo "Nothing changed since last release $(git describe release)."
            exit 1
          fi
      - name: Reserve Zenodo DOI and prepare repository
        run: |
          python3 .github/scripts/Release.py prepare -vv \
            --version $RELEASE_VERSION \
            --zenodo-token ${{ secrets.ZENODO_READWRITE_TOKEN }} \
            --github-token ${{ secrets.GITHUB_TOKEN }}
          git diff
      - name: Download release notes
        uses: actions/download-artifact@v8
        id: release-notes
        with:
          name: release-notes
          path: ~/release-notes
      # Push a commit tagged with the new version to `develop` and `release`.
      # The push will trigger the workflow again because we're using a personal
      # access token. The triggered workflow will build and deploy the
      # documentation so we don't need to do that here.
      - name: Commit and push
        run: |
          git config user.name sxs-bot
          git config user.email sxs-bot@black-holes.org
          git commit -a -m "Prepare release $RELEASE_VERSION"
          git show HEAD
          git status
          git tag -a v$RELEASE_VERSION -m "Release $RELEASE_VERSION" HEAD
          git push origin HEAD:develop
          git push origin HEAD:release
          git push origin v$RELEASE_VERSION
      - name: Create release on GitHub
        uses: softprops/action-gh-release@v2
        with:
          token: ${{ secrets.GH_TOKEN_RELEASE }}
          tag_name: v${{ env.RELEASE_VERSION }}
          name: Release ${{ env.RELEASE_VERSION }}
          body_path: >-
            ${{ steps.release-notes.outputs.download-path }}/release_notes.md
      # Publish the Zenodo record. Once published, the record can't be deleted
      # anymore and editing is limited.
      - name: Publish to Zenodo
        run: |
          python3 .github/scripts/Release.py publish -vv \
            --zenodo-token ${{ secrets.ZENODO_PUBLISH_TOKEN }} \
            --github-token ${{ secrets.GITHUB_TOKEN }} \
            --auto-publish

  arch_datastructures_tests:
    name: Archs
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        compiler:
          - gcc-10
          - gcc-11
          - clang-13
          - clang-14
        include:
          - sde_arch: ("-nhm;nehalem" "-snb;sandybridge" "-hsw;haswell"
              "-skl;skylake" "-icx;icelake-server")
            compiler: gcc-10
          - sde_arch: ("-nhm;nehalem" "-snb;sandybridge" "-hsw;haswell"
              "-skl;skylake" "-icx;icelake-server")
            compiler: gcc-11
          - sde_arch: ("-nhm;nehalem" "-snb;sandybridge" "-hsw;haswell"
              "-skl;skylake" "-icx;icelake-server")
            compiler: clang-13
          - sde_arch: ("-nhm;nehalem" "-snb;sandybridge" "-hsw;haswell"
              "-skl;skylake" "-icx;icelake-server" "-tgl;tigerlake")
            compiler: clang-14
    container:
      image: ${{ inputs.container || 'sxscollaboration/spectre:dev' }}
      env:
        # See the unit test job for the reasons for these configuration choices
        CXXFLAGS: "-Werror"
    steps:
      - name: Checkout repository
        uses: actions/checkout@v5
      # Work around https://github.com/actions/checkout/issues/760
      - name: Trust checkout
        run: |
          git config --global --add safe.directory $GITHUB_WORKSPACE
      - uses: ./.github/actions/parse-compiler
        with:
          compiler: ${{ matrix.compiler }}
      - name: Install compiler
        run: |
          apt-get update -y
          apt-get install --reinstall ca-certificates
          if [[ $COMPILER_ID = gcc ]]; then
            apt-get install -y $CC $CXX $FC
          else
            apt-get install -y $CC $FC
          fi
      - name: Install Intel SDE
        working-directory: /work
        run: |
          wget -O sde-external.tar.xz https://downloadmirror.intel.com/913594/sde-external-10.7.0-2026-02-18-lin.tar.xz
          tar -xJf sde-external.tar.xz
          mv sde-external-* sde
          rm sde-*
      - name: Configure, build, and run tests
        working-directory: /work
        # Notes on the build configuration:
        # - We don't need debug symbols during CI, so we turn them off to reduce
        #   memory usage.
        run: >
          ARCH_PARAM_LIST=${{ matrix.sde_arch }}

          for ARCH_PARAM in ${ARCH_PARAM_LIST[@]}; do
            OVERRIDE_ARCH=`echo ${ARCH_PARAM} | cut -d";" -f2`
            SDE_FLAG=`echo ${ARCH_PARAM} | cut -d";" -f1`
            echo "CMake arch flag: $OVERRIDE_ARCH"
            echo "Intel SDE arch flag: $SDE_FLAG"
            cd /work
            BUILD_DIR=build$OVERRIDE_ARCH
            mkdir $BUILD_DIR && cd $BUILD_DIR

            cmake\
            -D CMAKE_C_COMPILER=${CC}\
            -D CMAKE_CXX_COMPILER=${CXX}\
            -D CMAKE_Fortran_COMPILER=${FC}\
            -D CMAKE_CXX_FLAGS="${CXXFLAGS}"\
            -D OVERRIDE_ARCH=${OVERRIDE_ARCH}\
            -D CHARM_ROOT=${CHARM_ROOT}\
            -D CMAKE_BUILD_TYPE=Debug\
            -D SPECTRE_DEBUG_Og=ON\
            -D DEBUG_SYMBOLS=OFF\
            -D STRIP_SYMBOLS=ON\
            -D STUB_EXECUTABLE_OBJECT_FILES=ON\
            -D STUB_LIBRARY_OBJECT_FILES=ON\
            -D USE_PCH=ON\
            -D USE_CCACHE=ON\
            -D BUILD_DOCS=OFF\
            -D SPECTRE_AUTODIFF=ON\
            -D SPECTRE_FETCH_MISSING_DEPS=ON\
            $GITHUB_WORKSPACE

            make -j4 TestArchitectureVectorization

            /work/sde/sde ${SDE_FLAG}\
            -- ./bin/TestArchitectureVectorization [Unit]
          done

        shell: bash


================================================
FILE: .gitignore
================================================
# Distributed under the MIT License.
# See LICENSE.txt for details.

# Build directories
# Ignore build dirs named similarly to the example in the installation notes;
# in general arbitrary names are possible and cannot all be ignored.
/build*

# Editor configurations
.vscode
compile_commands.json
.idea
CMakeUserPresets.json

# Spack
/support/spack/
.spack-env
/support/DevEnvironments/spack.lock

# Python environments
# These are conventional locations where people may install Python packages
# related to the project. They are mentioned in the Python docs:
# https://docs.python.org/3/library/venv.html
/.venv
/env

# Temporary files
*~
*.swp
\#*\#
.\#*
.DS_Store
.dir-locals.el
.cquery_cached_index
.ycm_extra_conf.py
.clangd
.cache
.projectile-cache.eld

# TeX products
*.aux
*.log
*.toc
*.bbl
*.bbg
*.blg
*.out
*.bak
docs/auto

# Python related files
*.pyc
.ipynb_checkpoints

# charm++ runtime files
charmrun.*

# Observer output
*.xmf
*.h5

# Ignore deploy SSH keys and other TravisCI related files
.travis/deploy_key
coverage.info

# ClangFormat git hook file
.clang_format_diff.patch

# CTags, ETags and GNU Global Tags files
GPATH
GRTAGS
GTAGS
TAGS
tags
# Keep Tags/ directories on case-insensitive file systems
!Tags/

# AI/LLM Agent/CLI tools
AGENTS.md

.aider*

CLAUDE.md
.claude/settings.local.json
CLAUDE.local.md


================================================
FILE: .skills/scripts/FetchCiLog.py
================================================
# Distributed under the MIT License.
# See LICENSE.txt for details.

"""Fetch a failed GitHub Actions job log and extract failure context.

Retrieves the job summary and full log via the gh CLI, locates failure
lines, and prints a context window around each failure for the LLM.
"""

import argparse
import re
import subprocess
import sys

FAILURE_PATTERNS = [
    re.compile(r"FAILED:"),
    re.compile(r"\berror:"),
    re.compile(r"The following tests FAILED"),
    re.compile(r"##\[error\]"),
    re.compile(r"Process completed with exit code"),
    re.compile(r"\*\*\*Failed"),
]

# Patterns where only context *after* the failure line is useful
# (e.g. CTest's "***Failed" line is followed by the test output)
AFTER_ONLY_PATTERNS = {r"\*\*\*Failed"}

# Timestamp prefix on every GH Actions log line
TIMESTAMP_RE = re.compile(r"^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d+Z\s?")


def fetch_job_summary(job_id, owner, repo):
    """Fetch the job summary via 'gh run view --job'."""
    cmd = [
        "gh",
        "run",
        "view",
        "--job",
        str(job_id),
        "-R",
        f"{owner}/{repo}",
    ]
    result = subprocess.run(cmd, capture_output=True, text=True)
    if result.returncode != 0:
        print(
            f"Warning: could not fetch job summary: {result.stderr.strip()}",
            file=sys.stderr,
        )
        return None
    return result.stdout


def fetch_job_log(job_id, owner, repo):
    """Fetch the full job log via the GitHub API."""
    cmd = [
        "gh",
        "api",
        f"repos/{owner}/{repo}/actions/jobs/{job_id}/logs",
    ]
    result = subprocess.run(cmd, capture_output=True, text=True)
    if result.returncode != 0:
        print(f"Error fetching log: {result.stderr.strip()}", file=sys.stderr)
        sys.exit(1)
    return result.stdout


def strip_timestamps(lines):
    """Remove GH Actions timestamp prefixes from each line."""
    return [TIMESTAMP_RE.sub("", line) for line in lines]


def find_failure_lines(lines):
    """Return sorted list of (line_index, after_only) tuples.

    ``after_only`` is True when the matched pattern only needs context
    after the failure line (e.g. CTest's ``***Failed`` output).
    """
    hits = {}
    for i, line in enumerate(lines):
        for pattern in FAILURE_PATTERNS:
            if pattern.search(line):
                after_only = pattern.pattern in AFTER_ONLY_PATTERNS
                hits[i] = after_only
                break
    return hits


def merge_windows(hits, context, total_lines):
    """Merge overlapping [start, end] windows around each hit.

    ``hits`` is a dict {line_index: after_only}.  For after-only hits
    the window starts at the hit line itself (no before-context).
    """
    if not hits:
        return []
    windows = []
    for hit in sorted(hits):
        after_only = hits[hit]
        start = hit if after_only else max(0, hit - context)
        end = min(total_lines - 1, hit + context)
        if windows and start <= windows[-1][1] + 1:
            windows[-1] = (windows[-1][0], end, windows[-1][2] | {hit})
        else:
            windows.append((start, end, {hit}))
    return windows


def print_window(lines, start, end, failure_indices):
    """Print a window of lines with line numbers, marking failures."""
    for i in range(start, end + 1):
        marker = ">>>" if i in failure_indices else "   "
        print(f"{marker} {i + 1:>6d} | {lines[i]}")


def main():
    parser = argparse.ArgumentParser(
        description=(
            "Fetch a failed GitHub Actions job log and extract failure context."
        )
    )
    parser.add_argument("job_id", help="GitHub Actions job ID")
    parser.add_argument(
        "--owner",
        default="sxs-collaboration",
        help="Repository owner (default: sxs-collaboration)",
    )
    parser.add_argument(
        "--repo",
        default="spectre",
        help="Repository name (default: spectre)",
    )
    parser.add_argument(
        "--context",
        type=int,
        default=50,
        help="Number of lines before and after each failure (default: 50)",
    )
    args = parser.parse_args()

    # -- Job summary --
    summary = fetch_job_summary(args.job_id, args.owner, args.repo)
    if summary:
        print("=" * 60)
        print("JOB SUMMARY")
        print("=" * 60)
        print(summary.rstrip())
        print()

    # -- Fetch and process log --
    raw_log = fetch_job_log(args.job_id, args.owner, args.repo)
    raw_lines = raw_log.splitlines()
    lines = strip_timestamps(raw_lines)

    hits = find_failure_lines(lines)
    if not hits:
        print("No failure patterns found in the log.")
        print(f"Total log lines: {len(lines)}")
        sys.exit(1)

    windows = merge_windows(hits, args.context, len(lines))
    num_hits = len(hits)

    print("=" * 60)
    print(f"FAILURE LOG  (job {args.job_id}, {args.owner}/{args.repo})")
    print(
        f"  {num_hits} failure line(s) found, {len(windows)} context window(s)"
    )
    print(f"  Total log lines: {len(lines)}")
    print("=" * 60)

    for idx, (start, end, failure_indices) in enumerate(windows):
        print()
        print(
            f"--- Window {idx + 1}/{len(windows)} "
            f"(lines {start + 1}-{end + 1}) ---"
        )
        print_window(lines, start, end, failure_indices)

    print()
    print("=" * 60)
    print("END OF FAILURE CONTEXT")
    print("=" * 60)


if __name__ == "__main__":
    main()


================================================
FILE: .skills/scripts/FetchIssue.py
================================================
# Distributed under the MIT License.
# See LICENSE.txt for details.

"""Fetch a GitHub issue and print it in a structured format for Claude.

If the issue is a random test failure (title contains 'random failure in'
and the body/comments contain MAKE_GENERATOR seed lines), a compact
[RANDOM_FAILURE] format is emitted instead of the full issue text.
"""

import argparse
import json
import re
import subprocess
import sys


def is_random_failure(title, all_text):
    """Return True if this looks like a MAKE_GENERATOR random failure issue."""
    if "random failure in" not in title.lower():
        return False
    return bool(re.search(r"Seed is:\s*\d+\s+from", all_text))


def extract_make_generator_seeds(all_text):
    """Parse 'Seed is: N from path:line' entries, returning {path:line: [seeds]}.

    CI logs often wrap long paths at '/' boundaries, so we strip
    timestamps and collapse continuation lines before matching.
    """
    # Strip CI log timestamps (e.g. "2023-09-11T19:44:29.1292895Z   ")
    text = re.sub(r"\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d+Z\s*", "", all_text)
    # Collapse lines where a path wraps after a '/'
    text = re.sub(r"/\s*\n\s*", "/", text)
    pattern = r"Seed is:\s*(\d+)\s+from\s+(.*?\.[hct]pp:\d+)"
    matches = re.findall(pattern, text)

    grouped = {}
    for seed, raw_path in matches:
        # Canonicalize: keep only the part after tests/Unit/
        m = re.search(r"tests/Unit/(.*)", raw_path)
        canonical = m.group(1) if m else raw_path
        grouped.setdefault(canonical, [])
        if seed not in grouped[canonical]:
            grouped[canonical].append(seed)
    return grouped


def extract_test_name(title):
    """Extract the test name from a 'Random failure in TEST' title."""
    m = re.search(r"[Rr]andom\s+[Ff]ailure\s+in\s+(\S+)", title)
    return m.group(1) if m else title


def main():
    parser = argparse.ArgumentParser(
        description="Fetch a GitHub issue via gh CLI"
    )
    parser.add_argument("issue_number", help="Issue number (e.g. 1727)")
    parser.add_argument(
        "--repo",
        default=None,
        help="Repository in owner/repo form (default: current repo)",
    )
    parser.add_argument(
        "--full",
        action="store_true",
        help="Always print full issue text, bypassing random-failure detection",
    )
    args = parser.parse_args()

    cmd = [
        "gh",
        "issue",
        "view",
        str(args.issue_number),
        "--json",
        (
            "number,title,state,author,assignees,"
            "createdAt,labels,url,body,comments"
        ),
    ]
    if args.repo:
        cmd.extend(["--repo", args.repo])

    result = subprocess.run(cmd, capture_output=True, text=True)
    if result.returncode != 0:
        print(f"Error: {result.stderr.strip()}", file=sys.stderr)
        sys.exit(1)

    data = json.loads(result.stdout)

    title = data.get("title", "")
    body = data.get("body", "") or ""
    comments = data.get("comments", [])
    all_text = body + "\n" + "\n".join((c.get("body") or "") for c in comments)

    # --- Random failure detection ---
    if not args.full and is_random_failure(title, all_text):
        seeds = extract_make_generator_seeds(all_text)
        test_name = extract_test_name(title)
        print("[RANDOM_FAILURE]")
        print(f"Issue #{data['number']}: {title}")
        print(f"URL: {data.get('url', '')}")
        print(f"Test: {test_name}")
        print()
        print("Seeds by location (paths relative to tests/Unit/):")
        for path_line, seed_list in seeds.items():
            print(f"  {path_line} -> {', '.join(seed_list)}")
        sys.exit(0)

    # --- Normal issue output ---
    author = (data.get("author") or {}).get("login", "ghost")
    labels = ", ".join(lbl["name"] for lbl in data.get("labels", []))
    assignees = ", ".join(a["login"] for a in data.get("assignees", []))

    print(f"Issue #{data['number']}: {data['title']}")
    print(f"URL:     {data.get('url', '')}")
    print(f"State:   {data['state']}")
    print(f"Author:  {author}")
    print(f"Created: {data['createdAt']}")
    if assignees:
        print(f"Assigned: {assignees}")
    if labels:
        print(f"Labels:  {labels}")
    print()
    print((data.get("body") or "").strip())

    for comment in comments:
        comment_author = (comment.get("author") or {}).get("login", "ghost")
        print()
        print("---")
        print(f"Comment by: {comment_author} at {comment['createdAt']}")
        print((comment.get("body") or "").strip())


if __name__ == "__main__":
    main()


================================================
FILE: .skills/scripts/FetchPrComments.py
================================================
# Distributed under the MIT License.
# See LICENSE.txt for details.

"""Fetch PR review data and print it in a structured format for Claude."""

import argparse
import json
import subprocess
import sys


def run_gh_command(cmd):
    """Run a gh CLI command and return parsed JSON, or exit on error."""
    result = subprocess.run(cmd, capture_output=True, text=True)
    if result.returncode != 0:
        print(f"Error: {result.stderr.strip()}", file=sys.stderr)
        sys.exit(1)
    return json.loads(result.stdout)


def fetch_pr_metadata(pr_number, repo=None):
    """Fetch PR metadata, comments, reviews, and files via gh pr view."""
    cmd = [
        "gh",
        "pr",
        "view",
        str(pr_number),
        "--json",
        (
            "number,title,state,author,baseRefName,headRefName,"
            "body,comments,reviews,files,url,createdAt,reviewDecision"
        ),
    ]
    if repo:
        cmd.extend(["--repo", repo])
    return run_gh_command(cmd)


def fetch_review_threads(pr_number, repo=None):
    """Fetch review threads with resolution status via GraphQL API."""
    if repo:
        owner, name = repo.split("/", 1)
    else:
        detect_cmd = ["gh", "repo", "view", "--json", "owner,name"]
        repo_data = run_gh_command(detect_cmd)
        owner = repo_data["owner"]["login"]
        name = repo_data["name"]

    query = """query {
      repository(owner:"%s", name:"%s") {
        pullRequest(number:%d) {
          reviewThreads(first:100) {
            totalCount
            pageInfo { hasNextPage }
            nodes {
              isResolved
              isOutdated
              path
              line
              originalLine
              startLine
              originalStartLine
              subjectType
              comments(first:50) {
                nodes {
                  body
                  author { login }
                  path
                  diffHunk
                  line
                  originalLine
                  startLine
                  originalStartLine
                  createdAt
                }
              }
            }
          }
        }
      }
    }""" % (owner, name, int(pr_number))

    cmd = ["gh", "api", "graphql", "-f", f"query={query}"]
    data = run_gh_command(cmd)

    threads_data = (
        data.get("data", {})
        .get("repository", {})
        .get("pullRequest", {})
        .get("reviewThreads", {})
    )

    if threads_data.get("pageInfo", {}).get("hasNextPage"):
        print(
            (
                "WARNING: PR has more than 100 review threads. "
                "Only the first 100 are shown."
            ),
            file=sys.stderr,
        )

    return threads_data.get("nodes", [])


def print_pr_header(data):
    """Print PR metadata header."""
    author = (data.get("author") or {}).get("login", "ghost")
    print(f"PR #{data['number']}: {data['title']}")
    print(f"URL:             {data.get('url', '')}")
    print(f"State:           {data['state']}")
    print(f"Author:          {author}")
    print(f"Created:         {data['createdAt']}")
    print(f"Base <- Head:    {data['baseRefName']} <- {data['headRefName']}")
    print(f"Review decision: {data.get('reviewDecision', 'NONE')}")


def print_changed_files(files):
    """Print changed files list with addition/deletion counts."""
    print()
    print("=" * 60)
    print("CHANGED FILES")
    print("=" * 60)
    for f in files:
        print(f"  +{f['additions']:-4d} -{f['deletions']:-4d}  {f['path']}")
    total_add = sum(f["additions"] for f in files)
    total_del = sum(f["deletions"] for f in files)
    print(f"  {'':>10}  ({len(files)} files, +{total_add} -{total_del} total)")


def print_pr_body(body):
    """Print PR description."""
    body = (body or "").strip()
    if body:
        print()
        print("=" * 60)
        print("PR DESCRIPTION")
        print("=" * 60)
        print(body)


def print_top_level_comments(comments):
    """Print top-level PR conversation comments."""
    if not comments:
        return
    print()
    print("=" * 60)
    print(f"TOP-LEVEL COMMENTS ({len(comments)})")
    print("=" * 60)
    for c in comments:
        author = (c.get("author") or {}).get("login", "ghost")
        print()
        print(f"--- Comment by {author} at {c['createdAt']} ---")
        print((c.get("body") or "").strip())


def print_review_summaries(reviews):
    """Print review summaries (APPROVED, CHANGES_REQUESTED, etc.)."""
    summaries = [r for r in reviews if (r.get("body") or "").strip()]
    if not summaries:
        return
    print()
    print("=" * 60)
    print(f"REVIEW SUMMARIES ({len(summaries)})")
    print("=" * 60)
    for r in summaries:
        author = (r.get("author") or {}).get("login", "ghost")
        state = r.get("state", "COMMENTED")
        print()
        print(f"--- [{state}] Review by {author} at {r['submittedAt']} ---")
        print((r.get("body") or "").strip())


def print_review_threads(threads):
    """Print inline review threads grouped by resolution status."""
    if not threads:
        print()
        print("=" * 60)
        print("INLINE REVIEW THREADS")
        print("=" * 60)
        print("  (none)")
        return

    unresolved = [t for t in threads if not t["isResolved"]]
    resolved = [t for t in threads if t["isResolved"]]

    print()
    print("=" * 60)
    print(
        "INLINE REVIEW THREADS "
        f"({len(unresolved)} unresolved, {len(resolved)} resolved)"
    )
    print("=" * 60)

    for label, group in [("UNRESOLVED", unresolved), ("RESOLVED", resolved)]:
        if not group:
            continue
        print()
        print(f"--- {label} THREADS ---")
        for i, thread in enumerate(group, 1):
            status_tags = []
            if thread["isResolved"]:
                status_tags.append("[RESOLVED]")
            else:
                status_tags.append("[UNRESOLVED]")
            if thread["isOutdated"]:
                status_tags.append("[OUTDATED]")

            path = thread.get("path", "unknown")
            line = thread.get("line") or thread.get("originalLine")
            line_info = f":{line}" if line else ""

            print()
            print(f"  Thread {i}: {' '.join(status_tags)} {path}{line_info}")

            comments = thread.get("comments", {}).get("nodes", [])
            for j, c in enumerate(comments):
                author = (c.get("author") or {}).get("login", "ghost")
                print(f"    [{author} at {c['createdAt']}]")

                diff_hunk = c.get("diffHunk", "")
                if diff_hunk and j == 0:
                    for hunk_line in diff_hunk.split("\n"):
                        print(f"      {hunk_line}")

                body = (c.get("body") or "").strip()
                if body:
                    for body_line in body.split("\n"):
                        print(f"    {body_line}")


def main():
    parser = argparse.ArgumentParser(
        description="Fetch PR review data via gh CLI and GraphQL"
    )
    parser.add_argument("pr_number", help="Pull request number (e.g. 1234)")
    parser.add_argument(
        "--repo",
        default=None,
        help="Repository in owner/repo form (default: current repo)",
    )
    args = parser.parse_args()

    pr_data = fetch_pr_metadata(args.pr_number, args.repo)
    threads = fetch_review_threads(args.pr_number, args.repo)

    print_pr_header(pr_data)
    print_changed_files(pr_data.get("files", []))
    print_pr_body(pr_data.get("body"))
    print_top_level_comments(pr_data.get("comments", []))
    print_review_summaries(pr_data.get("reviews", []))
    print_review_threads(threads)


if __name__ == "__main__":
    main()


================================================
FILE: .skills/spectre-fix-ci/SKILL.md
================================================
Run the fetch script to retrieve and analyze the CI job log:

```
python3 \
  "$(git rev-parse --show-toplevel)/.skills/scripts/FetchCiLog.py" \
  <JOB_ID> [--owner OWNER] [--context LINES]
```

- Extract the job ID from the user's message (required).
- Pass `--owner OWNER` if the user specifies an owner (default is
  `sxs-collaboration`).
- `--context` defaults to 50 lines before and after each failure.

After the script returns:

1. **Summarize the failure**: which step failed, which test(s) failed,
   and what the error was.
2. **Identify source locations**: find file paths and line numbers in the
   error output that point to the failing code.
3. **Suggest next steps**: propose a fix or further investigation.

If the context window seems too narrow to understand the failure, re-run
with `--context 150` for more surrounding lines.


================================================
FILE: .skills/spectre-fix-issue/RANDOM_FAILURE.md
================================================
# Fixing a Random Test Failure

You have a random test failure issue. The script output above contains
the test name and a list of `file:line` locations with their failing seeds.

Random failures are almost always caused by a **numerical bug in the source
code**, not by overly tight test tolerances. Your job is to find and fix
the source-level bug. Increasing a test tolerance is a last resort, gated
behind mandatory investigation.

## 1. Background

`MAKE_GENERATOR(gen)` (defined in `tests/Unit/Framework/TestHelpers.hpp`)
creates a `std::mt19937` with a random seed. `MAKE_GENERATOR(gen, SEED)`
uses the provided constant instead, making the test deterministic. On
failure, prints `Seed is: N from file:line` so the failure can be replayed.

### Seeding a test file

When the `file:line` points to a test file (not `CheckWithRandomValues.hpp`):
open the file at the indicated line (line numbers may have shifted -- search
nearby for `MAKE_GENERATOR`) and change `MAKE_GENERATOR(gen);` to
`MAKE_GENERATOR(gen, SEED);` using the first seed listed for that location.

### Seeding CheckWithRandomValues

When the `file:line` points to `Framework/CheckWithRandomValues.hpp`:
`check_with_random_values()` accepts `epsilon` and `seed` parameters. Find
the calling test's `check_with_random_values` invocation and pass the failing
seed as the last argument. For example, if the original call is:
```cpp
pypp::check_with_random_values<1>(
    &Foo::bar<DataType>, klass, "Module", "function",
    {{{-10.0, 10.0}}}, member_vars, used_for_size);
```
add `epsilon` (default is `1.0e-12`) and the seed:
```cpp
pypp::check_with_random_values<1>(
    &Foo::bar<DataType>, klass, "Module", "function",
    {{{-10.0, 10.0}}}, member_vars, used_for_size,
    1.0e-12, FAILING_SEED);
```

## 2. Reproduce the Failure

For each `file:line` + seed entry from the script output:

1. **Set the seed** per Section 1 above.
2. **Find the build target**:
   ```
   cd build && ctest --show-only=json-v1 -R "TEST_NAME"
   ```
   Parse the JSON output for the binary path (first element of `"command"`).
3. **Build**: `ninja -C build <binary_name>`
4. **Run**: `build/bin/<binary_name> "TEST_NAME"`
5. **If the test does NOT fail**: STOP and report to the user that the failure
   cannot be reproduced (code may have changed since the issue was filed).

## 3. Investigate the Root Cause (REQUIRED)

This is the most important section. You MUST complete this investigation
before considering any tolerance change.

### 3a. Trace the call chain

1. Read the error output to identify the **exact failing comparison** -- which
   values were compared, what the expected vs. actual values were, and what the
   discrepancy is.
2. Identify which **function under test** produces the incorrect value.
3. **Read the source code** of that function. Trace through its arithmetic step
   by step. Identify the specific operation (e.g., "the subtraction on line 438
   of Wedge.cpp") that amplifies floating-point error.
4. If the function calls other functions, trace into those as well. Follow the
   data flow until you reach the arithmetic that is numerically unstable.

You MUST identify a specific line and operation in the source code. "The
computation accumulates floating-point error" is not sufficient -- you need to
say *where* and *why*.

### 3b. Numerical patterns checklist

Search the source code in the call chain for these common floating-point
pitfalls. For each pattern found, attempt the listed fix:

- **Catastrophic cancellation**: subtraction of nearly-equal values
  (`a - b` where `a ~ b`). Fix: rearrange the algebra to avoid the subtraction,
  use compensated forms, or factor out common terms.

- **Division by near-zero**: a denominator that approaches zero for certain
  inputs (e.g., near coordinate boundaries, poles, or special points). Fix:
  reformulate to multiply instead of divide, combine fractions to cancel the
  small denominator, or restructure the expression analytically.

- **`atan` instead of `atan2`**: `atan(y/x)` loses quadrant information and
  divides by near-zero when `x ~ 0`. Fix: replace with `atan2(y, x)`.

- **Missing precision-preserving library functions**: `log(1+x)` loses
  precision when `x ~ 0`; `exp(x)-1` loses precision when `x ~ 0`;
  `sqrt(x*x + y*y)` can overflow for large values. Fix: use `log1p(x)`,
  `expm1(x)`, and `hypot(x, y)`.

- **Naive summation of many terms**: summing a long list of floating-point
  numbers accumulates round-off. Fix: use Kahan (compensated) summation, or
  sort terms by magnitude before summing.

- **Unstable polynomial evaluation**: monomial form
  (`a*x^3 + b*x^2 + c*x + d`) accumulates error for large `x`. Fix: use
  Horner's method (`((a*x + b)*x + c)*x + d`).

- **Numerically unstable quadratic formula**: the standard formula
  `(-b +/- sqrt(b^2 - 4ac)) / 2a` loses precision when `b^2 >> 4ac` due to
  catastrophic cancellation in the numerator. Fix: use the numerically stable
  form (compute one root via the standard formula, the other via
  `c / (a * first_root)`).

- **Accumulation of terms with widely varying magnitudes**: adding a tiny
  correction to a large value drops the correction entirely. Fix: reorder
  operations so values of similar magnitude are combined first, or use
  compensated summation.

### 3c. Attempt a source-level fix

Based on the pattern(s) you identified in 3a and 3b:

1. **Implement a fix in the source code** (not the test). For example:
   rearrange an expression to avoid cancellation, replace a division with a
   multiplication, switch `atan` to `atan2`, etc.
2. **Build and run with the failing seed** to verify the fix resolves the
   failure.
3. If the fix works, skip Section 4 entirely and go to Section 5 (Verify).
4. If the fix does not fully resolve the issue, document what you tried and
   why it was insufficient, then continue investigating. Only proceed to
   Section 4 after exhausting source-level options.

## 4. LAST RESORT -- Tolerance Adjustment

**MANDATORY GATE -- you may NOT adjust any tolerance until ALL of the
following are true:**

1. You have identified the full call chain from the test to the failing
   arithmetic operation.
2. You have named the specific source-code operation (file, line, expression)
   that produces the numerical error.
3. You have attempted at least one source-level fix and can explain why it
   did not work.
4. You have confirmed the error is inherent to the algorithm in double
   precision and cannot be eliminated by rearranging the arithmetic.

**If you cannot satisfy all four conditions, go back to Section 3.**

### Adjusting tolerance in a test file

- `Approx custom_approx = Approx::custom().epsilon(TOL).scale(1.0);`
- For scalars: `CHECK(expected == custom_approx(computed));`
- For iterables:
  `CHECK_ITERABLE_CUSTOM_APPROX(expected, computed, custom_approx);`
- Start with `1.0e-14` and multiply by 10 until the test passes. Keep the
  tolerance as small as possible.

### Adjusting tolerance in CheckWithRandomValues

Adjust the `epsilon` parameter in the `check_with_random_values` call.
Start at `1.0e-12` and multiply by 10. Keep as small as possible.

### Required documentation

Add a C++ comment next to the tolerance change explaining:
- What source-level operation causes the error
- Why a source-level fix is not feasible
- What magnitude of error is expected

## 5. Verify

1. **Remove the explicit seed** so the generator returns to
   `MAKE_GENERATOR(gen);` (or remove the seed argument from
   `check_with_random_values`).
2. **Run**: `ctest --repeat-until-fail 1000 -R "TEST_NAME"` in the build
   directory.
3. If any iterations fail, return to Section 3 and investigate the new failure.
   Repeat until all 1000 iterations pass.

## 6. Report Summary

After all `file:line` entries are resolved, report:
- Every file and line changed
- For **source-level fixes**: what the numerical issue was and how it was fixed
- For **tolerance adjustments**: the root cause, why a source fix wasn't
  feasible, and the new tolerance value

## Important Notes

- The build directory is `build/` under the repository root.
- Do NOT modify global `approx` in `tests/Unit/Framework/TestingFramework.hpp`.
- Always remove explicit seeds before committing -- the seed is only for
  reproducing the failure, not for the final code.
- If multiple distinct test files have seeds, investigate each independently.


================================================
FILE: .skills/spectre-fix-issue/SKILL.md
================================================
Run the fetch script to retrieve the issue title, body, and comments:

```
python3 \
  "$(git rev-parse --show-toplevel)/.skills/scripts/FetchIssue.py" \
  <number> [--repo owner/repo] [--full]
```

- Extract the issue number from the user's message.
- Pass `--repo owner/repo` if the user specifies a repo or says "upstream"
  (for SpECTRE, upstream is `sxs-collaboration/spectre`).
- Pass `--full` if the user explicitly asks for the full/unshortened issue
  text (e.g. "show me the full issue", "don't shorten it", "skip random
  failure handling"). Do NOT pass `--full` by default.

**If the output starts with `[RANDOM_FAILURE]`**: Read and follow the
instructions in
`$(git rev-parse --show-toplevel)/.skills/spectre-fix-issue/RANDOM_FAILURE.md`
using the seed data from the script output. Mention to the user that they can
ask for the full issue text if they need it.

**Otherwise**: Summarize the issue, then proceed with the user's request.


================================================
FILE: .skills/spectre-fix-pr/SKILL.md
================================================
Run the fetch script to retrieve PR metadata, review comments, and changed
files:

```
python3 \
  "$(git rev-parse --show-toplevel)/.skills/scripts/FetchPrComments.py" \
  <number> [--repo owner/repo]
```

- Extract the PR number from the user's message.
- Pass `--repo owner/repo` if the user specifies a repo or says "upstream"
  (for SpECTRE, upstream is `sxs-collaboration/spectre`).

After fetching the PR data:

1. **Summarize the review** before starting work: list the total number of
   threads, how many are unresolved, and the files affected.
2. **Prioritize UNRESOLVED threads** -- these are the comments that still need
   to be addressed. Start with unresolved, non-outdated threads first.
3. **Group by file** -- work through comments file-by-file rather than jumping
   around, since multiple threads often apply to the same file.
4. **Use the diff hunk context** -- each inline comment includes the surrounding
   diff hunk so you can understand exactly what code the reviewer is referring
   to.
5. **Check OUTDATED threads** -- these refer to code that has since changed.
   Verify whether the concern still applies before making changes.
6. **Skip resolved threads** unless the user specifically asks about them.


================================================
FILE: .skills/spectre-review/SKILL.md
================================================
# SpECTRE Code Review

**Arguments**: $ARGUMENTS
**Current branch**: !`git branch --show-current`

Perform a thorough code review of SpECTRE changes. Follow every step below
precisely. The full SpECTRE code rules reference (provide to review agents):
!`tail -n +5 .claude/rules/Cxx.md`

## Step 1: Parse Arguments & Acquire Diff

Parse `$ARGUMENTS`:
- **Number present** (e.g. `1234`): PR mode. Fetch with:
  `gh pr diff <N> --repo sxs-collaboration/spectre` and
  `gh pr view <N> --repo sxs-collaboration/spectre --json
  title,body,headRefName,baseRefName`
- **No number**: Local mode. Use `git diff develop...HEAD` for committed
  changes, plus `git diff` and `git diff --cached` for uncommitted changes. If
  no diff, fall back to `git diff HEAD~1`.
- **"clang-tidy" present**: Enable the clang-tidy step.
- **"coverage" present**: Enable the targeted code coverage step.

Save the diff. Extract the list of changed files categorized by type (C++
`.cpp/.hpp/.tpp`, Python `.py`, CMake `CMakeLists.txt`, other).

Create a task list tracking all review steps.

## Step 2: Formatting Checks (run in parallel)

### C++ (clang-format)
For each changed C++ file:
1. Parse diff hunk headers (`@@ +START,COUNT @@`) to get changed line ranges
2. Expand each range by +/-4 lines (clamped to file bounds)
3. Run: `clang-format -style=file --lines=START:END [--lines=...] FILEPATH`
4. Diff against original. Collect any formatting differences.

### Python (black + isort)
For each changed `.py` file (excluding `external/`):
```
black --check --diff FILEPATH
isort --check-only --diff FILEPATH
```

## Step 3: CI Pre-Checks on Changed Files (run in parallel)

Check each changed file for issues that SpECTRE CI (`tools/FileTestDefs.sh`,
`tools/CheckFiles.sh`) will flag. Only check lines/patterns introduced in the
diff, not pre-existing issues.

**All files**: lines >80 chars (excluding URLs, NOLINT, #include, \snippet,
\image, \link, import); missing MIT license header; no final newline; tabs;
trailing whitespace; carriage returns

**C++ files (.cpp/.hpp/.tpp)**:
- Missing `#pragma once` in headers
- `#include <iostream>` -> use `Parallel/Printf/Printf.hpp`
- `#include <lrtslock.h>` -> use `<converse.h>`
- `std::enable_if` -> use `requires`
- `namespace _details` -> use `_detail`
- `struct TD;` / `class TD;` (debug artifacts)
- `.ckLocal()` -> `Parallel::local()`
- `.ckLocalBranch()` -> `Parallel::local_branch()`
- `return Py_None;` -> `Py_RETURN_NONE`
- Text after `/*!` on same line
- `Ls` abbreviation -> use `List`
- Doxygen (`///` or `/*!`) in `.cpp` files (only use `//` comments in cpp)
- Top-level `const` on value parameters in function declarations (`.hpp`) ->
  remove `const` from the declaration (keep in definition)
- TODO/FIXME comments (not allowed)

**Test files**:
- `TEST_CASE` instead of `SPECTRE_TEST_CASE`
- `Approx(` instead of `approx`

**CMake**: New C++ files in a directory must be listed in that directory's
CMakeLists.txt; removed files must be removed; entries should be alphabetical.

**LLM Comments**: Identify comments that seem like notes from a coding agent
during its thinking process.

### Include Order (C++ files in diff)
Verify:
1. (Tests) `"Framework/TestingFramework.hpp"` first, then blank line
2. (`.cpp` with `.hpp`) Corresponding `.hpp`, then blank line
3. STL/external `<headers>` alphabetical
4. Blank line
5. SpECTRE `"headers"` alphabetical

### Commit Messages (local mode only)
Check no commit starts with (case-insensitive): fixup, wip, fixme, deleteme,
rebaseme, testing, rebase.

## Step 4: Code Review (2 Parallel Agents)

Launch 2 parallel agents. Provide each with the full diff and the
SpECTRE code rules reference shown above.

### Agent A: Style, Patterns & Idioms
Instructions for the agent:
- Check the diff against every rule in **Banned Patterns** and **Style Rules**
- Check for **Prefer-Library Patterns** (manual tensor loops that should use
  EagerMath)
- When you spot a suspicious pattern NOT in the checklist (e.g., a manual matrix
  operation, a loop that looks like it reimplements an existing utility), use
  `grep -r` in `src/DataStructures/Tensor/EagerMath/`, `src/DataStructures/`,
  `src/NumericalAlgorithms/`, or `src/Utilities/` to find an existing utility
- Only flag issues in lines that the diff introduces (not pre-existing code)
- For each finding: `file:line`, severity (`critical`/`important`/`suggestion`),
  explanation

### Agent B: Bugs, Logic, Tests & Documentation
Instructions for the agent:
- Read each changed file in full (not just the diff) to understand surrounding
  context
- Look for: logic errors, off-by-one, uninitialized variables, NaN handling,
  race conditions, incorrect template instantiations, virtual inheritance issues
  (most-derived must init virtual bases)
- Check that new/changed public API in `.hpp` files has Doxygen documentation
- Check that new source files have corresponding tests (`src/Foo/Bar.hpp` ->
  `tests/Unit/Foo/Test_Bar.cpp`)
- Check that new `.cpp`/`.hpp` files are listed in their `CMakeLists.txt`
- Only flag issues introduced by the diff
- For each finding: `file:line`, severity, explanation
- Check for potentially problematic floating point math like:
  - Catastrophic cancellation: subtraction of nearly-equal values
    (`a - b` where `a ~ b`).
  - Division by near-zero: a denominator that approaches zero for certain
    inputs (e.g., near coordinate boundaries, poles, or special points).
  - Naive summation of many terms: summing a long list of floating-point
    numbers accumulates round-off.
  - Unstable polynomial evaluation: monomial form
    (`a*x^3 + b*x^2 + c*x + d`), instead use Horner's method,
    `evaluate_polynomial()` from `src/Utilities/Math.hpp`
  - Numerically unstable quadratic formula: the standard formula
    `(-b +/- sqrt(b^2 - 4ac)) / 2a` loses precision.
  - Accumulation of terms with widely varying magnitudes: adding a tiny
    correction to a large value drops the correction entirely.
  - Make sure the code always uses `atan2` instead of `atan`, `log1p(x)` instead
    of `log(1+x)`, `expm1(x)` instead of `exp(x)-1`, `hypot(x,y)` instead of
    `sqrt(x*x+y*y)`.

## Step 5: clang-tidy (if requested, run in parallel)

If "clang-tidy" was in arguments:
1. Check for `build/compile_commands.json`. If missing, report that clang-tidy
   requires a configured build directory and skip.
2. For each changed `.cpp` file: `clang-tidy -p build/ FILEPATH 2>&1`
3. Filter output to only warnings on lines in the diff.

## Step 6: Code Coverage (if requested, run in parallel)

If "coverage" was in arguments:
Read `references/coverage-steps.md` and follow those instructions exactly.

## Step 7: Self-Review Prune

Combine all findings from steps 2-6. Review each finding and REMOVE only clear
non-issues:
- False positives (pattern match that isn't the actual flagged issue)
- Pre-existing issues not introduced by this diff
- Issues suppressed by `// NOLINT(...)` comments
- Exact duplicates between agents or between agents and formatting/CI checks

Assign each remaining finding a confidence score (0-100). Remove findings
below 50. Keep all findings scoring 50 or above -- err on the side of including
borderline issues rather than missing real ones.

## Step 8: Lightweight Model Critique

Spawn an agent using the cheapest available model (Claude Code: `haiku`;
Codex: `gpt-5.4-mini`). Provide it with:
- The SpECTRE code rules reference (from Step 1)
- The list of pruned findings (with scores)
- A summary of what the diff does

Ask the critique agent to:
1. Score each finding 0-100 for "is this a real, actionable issue?"
2. Flag any remaining false positives with reasoning
3. Note if important issues seem to be missing
4. Return scores and feedback

After receiving the critique agent's feedback:
- Remove findings scored < 40
- Downgrade severity (e.g., important -> suggestion) for findings scored
  40-60
- Consider adding issues the critique agent suggested (verify them first)

## Step 9: Final Report

Read `references/report-template.md` and present the report in that format.


================================================
FILE: .skills/spectre-review/references/coverage-steps.md
================================================
# Code Coverage Steps

These instructions are followed by the orchestrator when "coverage" was in
the review arguments. Execute all sub-steps below exactly as written.

### 6a. Check out PR branch (PR mode only)

Coverage must be measured against the actual PR code, not the current working
tree. Before building or running any tests:

1. Record the current branch and stash any uncommitted changes so they can be
   restored afterwards:
   ```bash
   ORIGINAL_BRANCH=$(git branch --show-current)
   STASH_RESULT=$(git stash push --include-untracked -m "coverage-stash" 2>&1)
   STASHED=$([[ "$STASH_RESULT" == *"Saved"* ]] && echo yes || echo no)
   ```
2. Attempt to check out the PR branch using the GitHub CLI:
   ```bash
   gh pr checkout <N> --repo sxs-collaboration/spectre 2>&1
   ```
   If that fails (e.g. SSH key / remote mismatch), fall back to:
   ```bash
   git fetch upstream pull/<N>/head:pr-<N> 2>&1
   git checkout pr-<N> 2>&1
   ```
3. **Handle checkout conflicts explicitly.** If checkout fails with any error
   (e.g. "Your local changes to the following files would be overwritten",
   "untracked working tree files would be overwritten by checkout", or "Please
   commit your changes or stash them"), do NOT attempt to force-checkout.
   Instead, abort coverage and report clearly:
   > "Coverage analysis skipped: checking out PR branch '<headRefName>' failed
   > because the following local files conflict with the PR:
   >   <list conflicting files from the git error message>
   > Please resolve the conflict manually (commit, stash, or delete those files)
   > and re-run the review with 'coverage'."
   Then restore the original branch and pop the stash (step 5) and skip all
   remaining coverage steps.
4. Verify the checkout succeeded by comparing HEAD to the expected PR commit:
   ```bash
   git log --oneline -1
   gh pr view <N> --repo sxs-collaboration/spectre \
       --json headRefOid -q .headRefOid
   ```
   The two commit hashes should match (or the local log should show the PR
   branch name). If they differ, report: "Coverage skipped: checkout succeeded
   but HEAD does not match PR head — local branch may be stale."
5. **Restore step (must run after all coverage steps, or on any failure after
   this point):** at the end of Step 6f, restore the original working state:
   ```bash
   git checkout "$ORIGINAL_BRANCH"
   [[ "$STASHED" == "yes" ]] && git stash pop
   ```

### 6b. Prerequisites & Build Verification

1. Check `build/compile_commands.json` exists. If missing, skip with: "Coverage
   requires a configured build directory."
2. Check `build/CMakeCache.txt` for `COVERAGE:BOOL=ON`. If not found, skip with:
   "Build not compiled with -DCOVERAGE=ON. Rebuild with
   `cmake -DCOVERAGE=ON ..` to enable coverage."
3. Check `lcov` is available.
4. **Verify the gcov wrapper is functional.** For Clang builds,
   `build/llvm-gcov.sh` may contain `LLVM_COV_BIN-NOTFOUND` if `llvm-cov` was
   not found at CMake configure time. Check:
   ```bash
   grep "NOTFOUND" build/llvm-gcov.sh
   ```
   If found, locate the correct binary and fix the wrapper in-place:
   ```bash
   LLVM_VER=$(clang++ --version | grep -oP '\d+' | head -1)
   LLVM_COV=$(which llvm-cov-${LLVM_VER} 2>/dev/null || which llvm-cov)
   printf '#!/bin/bash\nexec %s gcov "$@"\n' "$LLVM_COV" > build/llvm-gcov.sh
   chmod +x build/llvm-gcov.sh
   ```
5. Determine the gcov tool and **always use its absolute path** to avoid lcov
   failing with "No such file or directory" when it resolves relative paths
   from a different working directory:
   - Clang: `GCOV=$(realpath build/llvm-gcov.sh)`
   - GNU: `GCOV=$(which gcov)`
6. **Verify objects are instrumented.** Pick one `.o` file for a changed source
   and check it has coverage symbols:
   ```bash
   nm <path/to/the_file.cpp.o> 2>/dev/null | grep -c "__llvm_gcov_ctr\|__gcov_"
   ```
   If the count is 0, objects were compiled before coverage was enabled —
   rebuild the relevant test targets:
   ```bash
   cmake --build build --target <TestTarget> -- -j$(nproc)
   ```
   Re-check instrumentation after the rebuild. If still 0, skip coverage with:
   "Objects lack coverage instrumentation even after rebuild. Check that the
   build was configured with -DCOVERAGE=ON before compiling."

### 6c. Map changed files to test targets
For each changed C++ file under `src/`:
1. Find the corresponding test directory: `src/A/B/C.hpp` -> `tests/Unit/A/B/`
2. Walk up directories reading `CMakeLists.txt` files for `set(LIBRARY
   "Test_...")` to find the test binary name. Test naming is NOT a simple
   transform (e.g., `Test_DomainCreators`, `Test_EllipticDG`, `Test_DgSubcell`),
   so CMakeLists.txt parsing is required.
3. Verify each binary exists in `build/bin/`. If not, build it: `cmake --build
   build --target <Target> -- -j$(nproc)`
4. If >5 unique test targets, ask the user before proceeding.

### 6d. Run tests and capture coverage
For each test target (using `$GCOV` absolute path from Step 6b):
```bash
lcov --gcov-tool $GCOV --directory build/ --zerocounters
build/bin/<TestTarget>
lcov --gcov-tool $GCOV --capture --rc lcov_branch_coverage=0 \
  --directory build/ --output-file /tmp/coverage_<TestTarget>.info
```
After the lcov capture, verify `.gcda` files were actually produced:
```bash
find build/ -name "*.gcda" | grep -q .
```
If no `.gcda` files are found, report:
> "No coverage data files (.gcda) generated. Possible causes: (1) objects were
> not compiled with --coverage (rebuild required after confirming
> -DCOVERAGE=ON), (2) test binary exited before writing data, (3) build
> directory path mismatch between compile and run."
Then skip remaining coverage steps (but still run Step 6f to restore the
branch).

### 6e. Filter to changed lines only
1. Merge .info files: `lcov --add-tracefile ... --output-file
   /tmp/coverage_merged.info`
2. Extract only changed source files: `lcov --extract /tmp/coverage_merged.info
   '<abs-path-to-file>' ... -o /tmp/coverage_filtered.info`
3. Parse `DA:<line>,<count>` entries from the filtered .info file
4. Cross-reference with diff hunk headers: only report lines that are both NEW
   in the diff AND have execution_count == 0. **Use new-file line numbers from
   the diff** — after checking out the PR branch these match the files on disk
   exactly. Do not use base-branch line numbers, which are offset from the PR.
5. Group uncovered lines into contiguous ranges

### 6f. Cleanup
Remove temporary .info files to avoid polluting subsequent builds:
```bash
rm -f /tmp/coverage_*.info /tmp/coverage_merged.info /tmp/coverage_filtered.info
```
Then restore the original branch and unstash local changes (PR mode only):
```bash
git checkout "$ORIGINAL_BRANCH"
[[ "$STASHED" == "yes" ]] && git stash pop
```


================================================
FILE: .skills/spectre-review/references/report-template.md
================================================
# Final Report Template

Present a clean report in the format below. Be brief and specific. No emojis.
Link to files and lines.

```
### SpECTRE Code Review

**Reviewing**: [PR #N: title | local changes on branch `name`]
**Files changed**: N (X C++, Y Python, Z CMake)

#### Formatting
[clang-format / black / isort changes, or "No formatting issues."]

#### Critical Issues
N. **Description** `file:line`
   Explanation and suggested fix.

#### Important Issues
N. **Description** `file:line`
   Explanation.

#### Suggestions
N. **Description** `file:line`
   Explanation.

#### CI Pre-Check Warnings
[Issues that CI will flag, or "None."]

[If clang-tidy ran:]
#### clang-tidy
[Findings or "No issues."]

[If coverage ran:]
#### Code Coverage (changed lines)
[Uncovered changed lines per file, or "All changed lines are covered by tests."]
[Files with no test target: "Coverage not checked: file1.cpp, file2.hpp (no test
target found)"]
```

If no issues at all: "No issues found. Checked style, patterns, bugs,
formatting, and CI compliance."


================================================
FILE: CITATION.cff
================================================
# Distributed under the MIT License.
# See LICENSE.txt for details.

# This file is automatically generated. It will be overwritten at every
# release. See .github/scripts/Release.py for details.

authors:
- affiliation: Theoretical Astrophysics, Walter Burke Institute for Theoretical Physics,
    California Institute of Technology, Pasadena, CA 91125, USA
  family-names: Deppe
  given-names: Nils
  orcid: https://orcid.org/0000-0003-4557-4115
- affiliation: Cornell Center for Astrophysics and Planetary Science, Cornell University,
    Ithaca, New York 14853, USA
  family-names: Throwe
  given-names: William
  orcid: https://orcid.org/0000-0001-5059-4378
- affiliation: Cornell Center for Astrophysics and Planetary Science, Cornell University,
    Ithaca, New York 14853, USA
  family-names: Kidder
  given-names: Lawrence E.
  orcid: https://orcid.org/0000-0001-5392-7342
- affiliation: Max Planck Institute for Gravitational Physics (Albert Einstein Institute),
    Am Mühlenberg 1, Potsdam 14476, Germany
  family-names: Vu
  given-names: Nils L.
  orcid: https://orcid.org/0000-0002-5767-3949
- affiliation: Theoretical Astrophysics, Walter Burke Institute for Theoretical Physics,
    California Institute of Technology, Pasadena, CA 91125, USA
  family-names: Nelli
  given-names: Kyle C.
  orcid: https://orcid.org/0000-0003-2426-8768
- affiliation: Cornell Center for Astrophysics and Planetary Science, Cornell University,
    Ithaca, New York 14853, USA
  family-names: Armaza
  given-names: Cristóbal
  orcid: https://orcid.org/0000-0002-1791-0743
- affiliation: Nicholas and Lee Begovich Center for Gravitational-Wave Physics and
    Astronomy, California State University, Fullerton, Fullerton, California 92831,
    USA
  family-names: Bonilla
  given-names: Marceline S.
  orcid: https://orcid.org/0000-0003-4502-528X
- affiliation: Theoretical Astrophysics, Walter Burke Institute for Theoretical Physics,
    California Institute of Technology, Pasadena, CA 91125, USA
  family-names: Hébert
  given-names: François
  orcid: https://orcid.org/0000-0001-9009-6955
- affiliation: Theoretical Astrophysics, Walter Burke Institute for Theoretical Physics,
    California Institute of Technology, Pasadena, CA 91125, USA
  family-names: Kim
  given-names: Yoonsoo
  orcid: https://orcid.org/0000-0002-4305-6026
- affiliation: Cornell Center for Astrophysics and Planetary Science, Cornell University,
    Ithaca, New York 14853, USA
  family-names: Kumar
  given-names: Prayush
  orcid: https://orcid.org/0000-0001-5523-4603
- affiliation: Nicholas and Lee Begovich Center for Gravitational-Wave Physics and
    Astronomy, California State University, Fullerton, Fullerton, California 92831,
    USA
  family-names: Lovelace
  given-names: Geoffrey
  orcid: https://orcid.org/0000-0002-7084-1070
- affiliation: Nicholas and Lee Begovich Center for Gravitational-Wave Physics and
    Astronomy, California State University, Fullerton, Fullerton, California 92831,
    USA
  family-names: Macedo
  given-names: Alexandra
  orcid: https://orcid.org/0009-0001-7671-6377
- affiliation: Theoretical Astrophysics, Walter Burke Institute for Theoretical Physics,
    California Institute of Technology, Pasadena, CA 91125, USA
  family-names: Moxon
  given-names: Jordan
  orcid: https://orcid.org/0000-0001-9891-8677
- affiliation: Cornell Center for Astrophysics and Planetary Science, Cornell University,
    Ithaca, New York 14853, USA
  family-names: O'Shea
  given-names: Eamonn
- affiliation: Max Planck Institute for Gravitational Physics (Albert Einstein Institute),
    Am Mühlenberg 1, Potsdam 14476, Germany
  family-names: Pfeiffer
  given-names: Harald P.
  orcid: https://orcid.org/0000-0001-9288-519X
- affiliation: Theoretical Astrophysics, Walter Burke Institute for Theoretical Physics,
    California Institute of Technology, Pasadena, CA 91125, USA
  family-names: Scheel
  given-names: Mark A.
  orcid: https://orcid.org/0000-0001-6656-9134
- affiliation: 
Download .txt
Showing preview only (417K chars total). Download the full file or copy to clipboard to get everything.
gitextract_tzqpsthm/

├── .clang-format
├── .clang-tidy
├── .claude/
│   ├── hooks/
│   │   └── PostFormat.sh
│   ├── rules/
│   │   ├── CMake.md
│   │   └── Cxx.md
│   ├── settings.json
│   └── skills/
│       ├── spectre-fix-ci/
│       │   └── SKILL.md
│       ├── spectre-fix-issue/
│       │   └── SKILL.md
│       ├── spectre-fix-pr/
│       │   └── SKILL.md
│       └── spectre-review/
│           └── SKILL.md
├── .codecov.yaml
├── .devcontainer/
│   ├── cmake-kits.json
│   └── devcontainer.json
├── .dockerignore
├── .github/
│   ├── ISSUE_TEMPLATE.md
│   ├── PULL_REQUEST_TEMPLATE.md
│   ├── actions/
│   │   └── parse-compiler/
│   │       └── action.yaml
│   ├── problem_matchers/
│   │   └── ClangTidy.json
│   ├── scripts/
│   │   ├── Release.py
│   │   └── requirements-release.txt
│   └── workflows/
│       ├── BuildDockerContainer.yaml
│       ├── ClobberCache.yaml
│       ├── DemoContainer.yaml
│       ├── DeployStaticExecutables.yaml
│       ├── NewContributors.yaml
│       ├── PostRelease.yaml
│       ├── Spack.yaml
│       └── Tests.yaml
├── .gitignore
├── .skills/
│   ├── scripts/
│   │   ├── FetchCiLog.py
│   │   ├── FetchIssue.py
│   │   └── FetchPrComments.py
│   ├── spectre-fix-ci/
│   │   └── SKILL.md
│   ├── spectre-fix-issue/
│   │   ├── RANDOM_FAILURE.md
│   │   └── SKILL.md
│   ├── spectre-fix-pr/
│   │   └── SKILL.md
│   └── spectre-review/
│       ├── SKILL.md
│       └── references/
│           ├── coverage-steps.md
│           └── report-template.md
├── CITATION.cff
├── CMakeLists.txt
├── LICENSE.txt
├── Metadata.yaml
├── README.md
├── citation.bib
├── cmake/
│   ├── AddCxxFlag.cmake
│   ├── AddInputFileTests.cmake
│   ├── AddSpectreExecutable.cmake
│   ├── AddStandaloneTests.cmake
│   ├── BootstrapPyDeps.cmake
│   ├── CheckBrokenArray0.cmake
│   ├── CheckBrokenArray0.cpp
│   ├── CheckCompilerVersion.cmake
│   ├── CodeCoverage.cmake
│   ├── CodeCoverageDetection.cmake
│   ├── EnableWarnings.cmake
│   ├── FindBlaze.cmake
│   ├── FindBreathe.cmake
│   ├── FindCharm.cmake
│   ├── FindClangFormat.cmake
│   ├── FindFFTW.cmake
│   ├── FindFUKA.cmake
│   ├── FindGoogleBenchmark.cmake
│   ├── FindJEMALLOC.cmake
│   ├── FindLIBCXX.cmake
│   ├── FindLIBXSMM.cmake
│   ├── FindNumPy.cmake
│   ├── FindPAPI.cmake
│   ├── FindParaView.cmake
│   ├── FindPythonModule.cmake
│   ├── FindScotch.cmake
│   ├── FindSleef.cmake
│   ├── FindSpEC.cmake
│   ├── FindTCMALLOC.cmake
│   ├── Findccache.cmake
│   ├── PrintUsefulCMakeInfo.cmake
│   ├── ProhibitInSourceBuild.cmake
│   ├── RunInputFileTest.sh
│   ├── SetBuildType.cmake
│   ├── SetCxxStandard.cmake
│   ├── SetOutputDirectory.cmake
│   ├── SetupAllocator.cmake
│   ├── SetupAutodiff.cmake
│   ├── SetupBlas.cmake
│   ├── SetupBlaze.cmake
│   ├── SetupBoost.cmake
│   ├── SetupCCache.cmake
│   ├── SetupCatch.cmake
│   ├── SetupCharm.cmake
│   ├── SetupCharmModuleFunctions.cmake
│   ├── SetupClangFormat.cmake
│   ├── SetupClangTidy.cmake
│   ├── SetupCxxFlags.cmake
│   ├── SetupDoxygen.cmake
│   ├── SetupFormaline.cmake
│   ├── SetupFortran.cmake
│   ├── SetupFuka.cmake
│   ├── SetupGitHooks.cmake
│   ├── SetupGoldOrLldLinker.cmake
│   ├── SetupGoogleBenchmark.cmake
│   ├── SetupGsl.cmake
│   ├── SetupHdf5.cmake
│   ├── SetupInformer.cmake
│   ├── SetupJemalloc.cmake
│   ├── SetupKokkos.cmake
│   ├── SetupLIBCXX.cmake
│   ├── SetupLIBCXXCharm.cmake
│   ├── SetupLIBXSMM.cmake
│   ├── SetupLapack.cmake
│   ├── SetupLicenseInfo.cmake
│   ├── SetupLinkTimeOptimization.cmake
│   ├── SetupListTargets.cmake
│   ├── SetupNinjaColors.cmake
│   ├── SetupOpenMP.cmake
│   ├── SetupPapi.cmake
│   ├── SetupParaView.cmake
│   ├── SetupPch.cmake
│   ├── SetupPic.cmake
│   ├── SetupProfiling.cmake
│   ├── SetupPybind11.cmake
│   ├── SetupPypp.cmake
│   ├── SetupSanitizers.cmake
│   ├── SetupSpec.cmake
│   ├── SetupSpectreInlining.cmake
│   ├── SetupSphinx.cmake
│   ├── SetupStl.cmake
│   ├── SetupTcmalloc.cmake
│   ├── SetupXsimd.cmake
│   ├── SetupYamlCpp.cmake
│   ├── SpectreAddCatchTests.cmake
│   ├── SpectreAddInterfaceLibraryHeaders.cmake
│   ├── SpectreAddLibraries.cmake
│   ├── SpectreAddTestLibs.cmake
│   ├── SpectreCheckDependencies.cmake
│   ├── SpectreCheckTargetDependencies.cmake
│   ├── SpectreGetGitHash.cmake
│   ├── SpectreInitializeVariables.cmake
│   ├── SpectreLoadMetadata.cmake
│   ├── SpectreParseTests.py
│   ├── SpectrePythonExecutable.sh
│   ├── SpectreSetSiteName.cmake
│   ├── SpectreSetupFlagsTarget.cmake
│   ├── SpectreSetupPythonPackage.cmake
│   ├── SpectreSetupTesting.cmake
│   ├── SpectreTargetHeaders.cmake
│   ├── SpectreTargetSources.cmake
│   ├── StripSymbols.cmake
│   └── UpdateAddExecutables.cmake
├── containers/
│   └── Dockerfile.buildenv
├── docs/
│   ├── .nojekyll
│   ├── CODE_OF_CONDUCT.md
│   ├── CONTRIBUTING.md
│   ├── Changelog.md
│   ├── Contributing/
│   │   ├── Contributing.md
│   │   └── ReportingGuide.md
│   ├── Dependencies.bib
│   ├── DevGuide/
│   │   ├── Amr.md
│   │   ├── AutomaticVersioning.md
│   │   ├── Brigand.md
│   │   ├── BuildOptimization.md
│   │   ├── CodeReviewGuide.md
│   │   ├── CompilerLinkerErrors.md
│   │   ├── Connectivity.md
│   │   ├── CreatingExecutables.md
│   │   ├── Databox.md
│   │   ├── DebuggingTips.md
│   │   ├── DevGuide.md
│   │   ├── DomainConcepts.md
│   │   ├── GitHubActions.md
│   │   ├── GpuSupport.md
│   │   ├── ImplementingVectors.md
│   │   ├── ImportingData.md
│   │   ├── LoadBalancingNotes.md
│   │   ├── Observers.md
│   │   ├── OptionParsing.md
│   │   ├── ParallelExecutable/
│   │   │   ├── Concepts.md
│   │   │   └── MinimalExecutable.md
│   │   ├── Parallelization.md
│   │   ├── PerformanceGuidelines.md
│   │   ├── Profiling.md
│   │   ├── Protocols.md
│   │   ├── PythonBindings.md
│   │   ├── QuickStartDockerVSCode.md
│   │   ├── RedistributingGridpoints.md
│   │   ├── StaticAnalysis.md
│   │   ├── TensorExpressions.md
│   │   ├── Tmp.md
│   │   ├── Variables.md
│   │   ├── WritingDox.md
│   │   └── WritingTests.md
│   ├── Doxyfile.in
│   ├── Examples/
│   │   ├── BbhInitialData/
│   │   │   ├── .gitignore
│   │   │   └── BbhInitialData.ipynb
│   │   ├── Examples.md
│   │   └── plots.mplstyle
│   ├── Gallery.md
│   ├── GroupDefs.hpp
│   ├── Images/
│   │   └── Tutorials/
│   │       └── make_multicube_figures.py
│   ├── Installation/
│   │   ├── BuildSystem.md
│   │   ├── Installation.md
│   │   ├── InstallationOnAppleSilicon.md
│   │   ├── InstallationOnClusters.md
│   │   └── VersioningAndReleases.md
│   ├── Main.md
│   ├── PublicationPolicy.md
│   ├── References.bib
│   ├── Tutorials/
│   │   ├── BeginnersTutorial.md
│   │   ├── CCE.md
│   │   ├── CheckpointRestart.md
│   │   ├── Cli.md
│   │   ├── DomainCreation.md
│   │   ├── EventsAndTriggers.md
│   │   ├── Imex.md
│   │   ├── Orientation.md
│   │   ├── ParallelExecutable/
│   │   │   └── Tutorials.md
│   │   ├── Python.md
│   │   ├── Tutorials.md
│   │   ├── Visualization.md
│   │   └── VisualizationWithPython.ipynb
│   ├── _templates/
│   │   └── autosummary/
│   │       └── module.rst
│   ├── cli.rst
│   ├── conf.py
│   ├── config/
│   │   ├── DoxygenLayout_1_8_10.xml
│   │   ├── DoxygenLayout_1_9_8.xml
│   │   ├── MathJax.js
│   │   ├── cppreference-doxygen-web.tag.xml
│   │   ├── custom.css
│   │   ├── doxygen-awesome-fragment-copy-button.js
│   │   ├── doxygen-awesome-interactive-toc.js
│   │   ├── doxygen-awesome-paragraph-link.js
│   │   ├── doxygen-awesome-sidebar-only.css
│   │   ├── doxygen-awesome.css
│   │   ├── footer.html
│   │   ├── header.html
│   │   ├── icons/
│   │   │   └── octicons.css
│   │   ├── js/
│   │   │   ├── doxygen-navtree-hacks.js
│   │   │   └── spectre.js
│   │   ├── markdown-math-filter.pl
│   │   ├── octicons.css
│   │   └── postprocess_docs.py
│   └── index.rst
├── external/
│   ├── CMakeLists.txt
│   ├── EffectiveSource/
│   │   ├── CMakeLists.txt
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── effsource.h
│   │   ├── effsource.hpp
│   │   └── kerr-circular.c
│   ├── GravitationalEffectiveSource/
│   │   ├── CMakeLists.txt
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── effsource_gr.h
│   │   ├── effsource_gr.hpp
│   │   └── kerr-circular.c
│   ├── Licenses/
│   │   ├── BlazeCopyright.txt
│   │   ├── BlazeLicense.txt
│   │   ├── BoostCopyright.txt
│   │   ├── BoostLicense.txt
│   │   ├── BrigandCopyright.txt
│   │   ├── BrigandLicense.txt
│   │   ├── Catch2Copyright.txt
│   │   ├── Catch2License.txt
│   │   ├── CharmCopyright.txt
│   │   ├── CharmLicense.txt
│   │   ├── GslCopyright.txt
│   │   ├── GslLicense.txt
│   │   ├── Hdf5Copyright.txt
│   │   ├── Hdf5License.txt
│   │   ├── JemallocCopyright.txt
│   │   ├── JemallocLicense.txt
│   │   ├── LibbacktraceCopyright.txt
│   │   ├── LibbacktraceLicense.txt
│   │   ├── LibsharpCopyright.txt
│   │   ├── LibsharpLicense.txt
│   │   ├── LibxsmmCopyright.txt
│   │   ├── LibxsmmLicense.txt
│   │   ├── OpenBlasCopyright.txt
│   │   ├── OpenBlasLicense.txt
│   │   ├── Pybind11Copyright.txt
│   │   ├── Pybind11License.txt
│   │   ├── SpectreGpl3License.txt
│   │   ├── XsimdCopyright.txt
│   │   ├── XsimdLicense.txt
│   │   ├── YamlCppCopyright.txt
│   │   └── YamlCppLicense.txt
│   ├── SPHEREPACK/
│   │   ├── CMakeLists.txt
│   │   ├── LICENSE.txt
│   │   ├── README.txt
│   │   ├── alf.f
│   │   ├── divgs.f
│   │   ├── gaqd.f
│   │   ├── gradgs.f
│   │   ├── hrfft.f
│   │   ├── shags.f
│   │   ├── shsgs.f
│   │   ├── slapgs.f
│   │   ├── sphcom.f
│   │   ├── vhags.f
│   │   ├── vhsgs.f
│   │   ├── vrtgs.f
│   │   └── vtsgs.f
│   ├── brigand/
│   │   ├── CMakeLists.txt
│   │   ├── LICENSE
│   │   ├── README.md
│   │   └── include/
│   │       └── brigand/
│   │           └── brigand.hpp
│   ├── libsharp/
│   │   ├── .gitignore
│   │   ├── COPYING
│   │   ├── Makefile
│   │   ├── README.md
│   │   ├── c_utils/
│   │   │   ├── c_utils.c
│   │   │   ├── c_utils.h
│   │   │   ├── memusage.c
│   │   │   ├── memusage.h
│   │   │   ├── planck.make
│   │   │   ├── walltime_c.c
│   │   │   └── walltime_c.h
│   │   ├── config/
│   │   │   ├── config.auto.in
│   │   │   └── rules.common
│   │   ├── configure.ac
│   │   ├── docsrc/
│   │   │   ├── c_utils.dox
│   │   │   ├── footer.html
│   │   │   ├── index_code.html
│   │   │   ├── libfftpack.dox
│   │   │   ├── libsharp.dox
│   │   │   └── planck.make
│   │   ├── fortran/
│   │   │   ├── sharp.f90
│   │   │   └── test_sharp.f90
│   │   ├── libfftpack/
│   │   │   ├── README
│   │   │   ├── bluestein.c
│   │   │   ├── bluestein.h
│   │   │   ├── fftpack.c
│   │   │   ├── fftpack.h
│   │   │   ├── fftpack_inc.c
│   │   │   ├── libfftpack.dox
│   │   │   ├── ls_fft.c
│   │   │   ├── ls_fft.h
│   │   │   └── planck.make
│   │   ├── libsharp/
│   │   │   ├── libsharp.dox
│   │   │   ├── planck.make
│   │   │   ├── sharp.c
│   │   │   ├── sharp.h
│   │   │   ├── sharp_almhelpers.c
│   │   │   ├── sharp_almhelpers.h
│   │   │   ├── sharp_announce.c
│   │   │   ├── sharp_announce.h
│   │   │   ├── sharp_complex_hacks.h
│   │   │   ├── sharp_core.c
│   │   │   ├── sharp_core.h
│   │   │   ├── sharp_core_inc.c
│   │   │   ├── sharp_core_inc2.c
│   │   │   ├── sharp_core_inchelper.c
│   │   │   ├── sharp_cxx.h
│   │   │   ├── sharp_geomhelpers.c
│   │   │   ├── sharp_geomhelpers.h
│   │   │   ├── sharp_internal.h
│   │   │   ├── sharp_legendre.c
│   │   │   ├── sharp_legendre.c.in
│   │   │   ├── sharp_legendre.h
│   │   │   ├── sharp_legendre_roots.c
│   │   │   ├── sharp_legendre_roots.h
│   │   │   ├── sharp_legendre_table.c
│   │   │   ├── sharp_legendre_table.h
│   │   │   ├── sharp_lowlevel.h
│   │   │   ├── sharp_mpi.c
│   │   │   ├── sharp_mpi.h
│   │   │   ├── sharp_testsuite.c
│   │   │   ├── sharp_vecsupport.h
│   │   │   ├── sharp_vecutil.h
│   │   │   ├── sharp_ylmgen_c.c
│   │   │   └── sharp_ylmgen_c.h
│   │   ├── python/
│   │   │   ├── fake_pyrex/
│   │   │   │   ├── Pyrex/
│   │   │   │   │   ├── Distutils/
│   │   │   │   │   │   ├── __init__.py
│   │   │   │   │   │   └── build_ext.py
│   │   │   │   │   └── __init__.py
│   │   │   │   └── README
│   │   │   ├── libsharp/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── libsharp.pxd
│   │   │   │   ├── libsharp.pyx
│   │   │   │   ├── libsharp_mpi.pyx
│   │   │   │   └── tests/
│   │   │   │       ├── __init__.py
│   │   │   │       ├── test_legendre.py
│   │   │   │       ├── test_legendre_table.py
│   │   │   │       ├── test_sht.py
│   │   │   │       └── test_smoothing_noise_pol_mpi.py
│   │   │   └── setup.py
│   │   └── runjinja.py
│   └── slatec/
│       ├── CMakeLists.txt
│       ├── LICENSE.txt
│       ├── README.txt
│       └── drc3jj.f
├── pyproject.toml
├── setup.cfg
├── src/
│   ├── CMakeLists.txt
│   ├── ControlSystem/
│   │   ├── Actions/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── GridCenters.cpp
│   │   │   ├── GridCenters.hpp
│   │   │   ├── Initialization.hpp
│   │   │   ├── InitializeMeasurements.hpp
│   │   │   ├── LimitTimeStep.hpp
│   │   │   └── PrintCurrentMeasurement.hpp
│   │   ├── Averager.cpp
│   │   ├── Averager.hpp
│   │   ├── CMakeLists.txt
│   │   ├── CalculateMeasurementTimescales.cpp
│   │   ├── CalculateMeasurementTimescales.hpp
│   │   ├── CleanFunctionsOfTime.cpp
│   │   ├── CleanFunctionsOfTime.hpp
│   │   ├── CombinedName.hpp
│   │   ├── Component.hpp
│   │   ├── ControlErrors/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Expansion.hpp
│   │   │   ├── GridCenters.cpp
│   │   │   ├── GridCenters.hpp
│   │   │   ├── Rotation.hpp
│   │   │   ├── Shape.hpp
│   │   │   ├── Size/
│   │   │   │   ├── AhSpeed.cpp
│   │   │   │   ├── AhSpeed.hpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── ComovingCharSpeedDerivative.cpp
│   │   │   │   ├── ComovingCharSpeedDerivative.hpp
│   │   │   │   ├── DeltaR.cpp
│   │   │   │   ├── DeltaR.hpp
│   │   │   │   ├── DeltaRDriftInward.cpp
│   │   │   │   ├── DeltaRDriftInward.hpp
│   │   │   │   ├── DeltaRDriftOutward.cpp
│   │   │   │   ├── DeltaRDriftOutward.hpp
│   │   │   │   ├── DeltaRNoDrift.cpp
│   │   │   │   ├── DeltaRNoDrift.hpp
│   │   │   │   ├── Error.cpp
│   │   │   │   ├── Error.hpp
│   │   │   │   ├── Factory.hpp
│   │   │   │   ├── Info.cpp
│   │   │   │   ├── Info.hpp
│   │   │   │   ├── Initial.cpp
│   │   │   │   ├── Initial.hpp
│   │   │   │   ├── RegisterDerivedWithCharm.cpp
│   │   │   │   ├── RegisterDerivedWithCharm.hpp
│   │   │   │   ├── State.hpp
│   │   │   │   ├── StateHistory.cpp
│   │   │   │   ├── StateHistory.hpp
│   │   │   │   └── Update.hpp
│   │   │   ├── Size.cpp
│   │   │   ├── Size.hpp
│   │   │   ├── Skew.cpp
│   │   │   ├── Skew.hpp
│   │   │   └── Translation.hpp
│   │   ├── Controller.cpp
│   │   ├── Controller.hpp
│   │   ├── ExpirationTimes.cpp
│   │   ├── ExpirationTimes.hpp
│   │   ├── FutureMeasurements.cpp
│   │   ├── FutureMeasurements.hpp
│   │   ├── IsSize.hpp
│   │   ├── Measurements/
│   │   │   ├── BNSCenterOfMass.cpp
│   │   │   ├── BNSCenterOfMass.hpp
│   │   │   ├── BothHorizons.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── CharSpeed.hpp
│   │   │   ├── Measurements.hpp
│   │   │   ├── NonFactoryCreatable.hpp
│   │   │   └── SingleHorizon.hpp
│   │   ├── Metafunctions.hpp
│   │   ├── NamespaceDocs.hpp
│   │   ├── Protocols/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── ControlError.hpp
│   │   │   ├── ControlSystem.hpp
│   │   │   ├── Measurement.hpp
│   │   │   ├── NamespaceDocs.hpp
│   │   │   └── Submeasurement.hpp
│   │   ├── RunCallbacks.hpp
│   │   ├── Systems/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Expansion.hpp
│   │   │   ├── GridCenters.hpp
│   │   │   ├── Rotation.hpp
│   │   │   ├── Shape.hpp
│   │   │   ├── Size.hpp
│   │   │   ├── Skew.hpp
│   │   │   └── Translation.hpp
│   │   ├── Tags/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── FunctionsOfTimeInitialize.cpp
│   │   │   ├── FunctionsOfTimeInitialize.hpp
│   │   │   ├── FutureMeasurements.hpp
│   │   │   ├── IsActiveMap.hpp
│   │   │   ├── MeasurementTimescales.hpp
│   │   │   ├── OptionTags.hpp
│   │   │   ├── QueueTags.hpp
│   │   │   ├── SystemTags.cpp
│   │   │   └── SystemTags.hpp
│   │   ├── TimescaleTuner.cpp
│   │   ├── TimescaleTuner.hpp
│   │   ├── Trigger.hpp
│   │   ├── UpdateControlSystem.hpp
│   │   ├── UpdateFunctionOfTime.cpp
│   │   ├── UpdateFunctionOfTime.hpp
│   │   ├── UpdateTimescaleTuner.hpp
│   │   └── WriteData.hpp
│   ├── DataStructures/
│   │   ├── ApplyMatrices.cpp
│   │   ├── ApplyMatrices.hpp
│   │   ├── Blaze/
│   │   │   ├── Blaze.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── IntegerPow.hpp
│   │   │   └── StepFunction.hpp
│   │   ├── BoostMultiArray.hpp
│   │   ├── CMakeLists.txt
│   │   ├── CachedTempBuffer.hpp
│   │   ├── CircularDeque.hpp
│   │   ├── ComplexDataVector.hpp
│   │   ├── ComplexDiagonalModalOperator.hpp
│   │   ├── ComplexModalVector.hpp
│   │   ├── CompressedMatrix.cpp
│   │   ├── CompressedMatrix.hpp
│   │   ├── CompressedVector.cpp
│   │   ├── CompressedVector.hpp
│   │   ├── DataBox/
│   │   │   ├── Access.hpp
│   │   │   ├── AsAccess.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── DataBox.hpp
│   │   │   ├── DataBoxTag.hpp
│   │   │   ├── DataOnSlice.hpp
│   │   │   ├── IsApplyCallable.hpp
│   │   │   ├── Item.hpp
│   │   │   ├── MetavariablesTag.hpp
│   │   │   ├── ObservationBox.hpp
│   │   │   ├── PrefixHelpers.hpp
│   │   │   ├── Prefixes.hpp
│   │   │   ├── Protocols/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   └── Mutator.hpp
│   │   │   ├── SubitemTag.hpp
│   │   │   ├── Subitems.hpp
│   │   │   ├── Tag.hpp
│   │   │   ├── TagName.hpp
│   │   │   ├── TagTraits.hpp
│   │   │   └── ValidateSelection.hpp
│   │   ├── DataVector.hpp
│   │   ├── DiagonalModalOperator.hpp
│   │   ├── DynamicBuffer.cpp
│   │   ├── DynamicBuffer.hpp
│   │   ├── DynamicMatrix.cpp
│   │   ├── DynamicMatrix.hpp
│   │   ├── DynamicVector.cpp
│   │   ├── DynamicVector.hpp
│   │   ├── ExtractPoint.hpp
│   │   ├── FixedHashMap.hpp
│   │   ├── FloatingPointType.cpp
│   │   ├── FloatingPointType.hpp
│   │   ├── IdPair.hpp
│   │   ├── Index.cpp
│   │   ├── Index.hpp
│   │   ├── IndexIterator.cpp
│   │   ├── IndexIterator.hpp
│   │   ├── LeviCivitaIterator.cpp
│   │   ├── LeviCivitaIterator.hpp
│   │   ├── LinkedMessageId.hpp
│   │   ├── LinkedMessageQueue.hpp
│   │   ├── MathWrapper.hpp
│   │   ├── Matrix.hpp
│   │   ├── ModalVector.hpp
│   │   ├── Python/
│   │   │   ├── Bindings.cpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── DataVector.cpp
│   │   │   ├── DataVector.hpp
│   │   │   ├── Matrix.cpp
│   │   │   ├── Matrix.hpp
│   │   │   ├── ModalVector.cpp
│   │   │   ├── ModalVector.hpp
│   │   │   └── __init__.py
│   │   ├── SimpleSparseMatrix.cpp
│   │   ├── SimpleSparseMatrix.hpp
│   │   ├── SliceIterator.cpp
│   │   ├── SliceIterator.hpp
│   │   ├── SliceTensorToVariables.hpp
│   │   ├── SliceVariables.hpp
│   │   ├── SparseMatrixFiller.cpp
│   │   ├── SparseMatrixFiller.hpp
│   │   ├── SpinWeighted.hpp
│   │   ├── StaticDeque.hpp
│   │   ├── StaticMatrix.hpp
│   │   ├── StaticVector.hpp
│   │   ├── StripeIterator.cpp
│   │   ├── StripeIterator.hpp
│   │   ├── TaggedContainers.hpp
│   │   ├── TaggedTuple.hpp
│   │   ├── TaggedVariant.hpp
│   │   ├── Tags/
│   │   │   ├── CMakeLists.txt
│   │   │   └── TempTensor.hpp
│   │   ├── Tags.hpp
│   │   ├── TempBuffer.hpp
│   │   ├── Tensor/
│   │   │   ├── AtIndex.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── CombineSpacetimeView.hpp
│   │   │   ├── ContractFirstNIndices.hpp
│   │   │   ├── EagerMath/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── CartesianToSpherical.cpp
│   │   │   │   ├── CartesianToSpherical.hpp
│   │   │   │   ├── CrossProduct.hpp
│   │   │   │   ├── Determinant.hpp
│   │   │   │   ├── DeterminantAndInverse.hpp
│   │   │   │   ├── DotProduct.hpp
│   │   │   │   ├── FrameTransform.cpp
│   │   │   │   ├── FrameTransform.hpp
│   │   │   │   ├── GramSchmidtOrthonormalize.cpp
│   │   │   │   ├── GramSchmidtOrthonormalize.hpp
│   │   │   │   ├── Magnitude.hpp
│   │   │   │   ├── Norms.hpp
│   │   │   │   ├── OrthonormalOneform.cpp
│   │   │   │   ├── OrthonormalOneform.hpp
│   │   │   │   ├── OuterProduct.hpp
│   │   │   │   ├── Python/
│   │   │   │   │   ├── Bindings.cpp
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── Determinant.cpp
│   │   │   │   │   ├── Determinant.hpp
│   │   │   │   │   ├── Magnitude.cpp
│   │   │   │   │   ├── Magnitude.hpp
│   │   │   │   │   └── __init__.py
│   │   │   │   ├── RaiseOrLowerIndex.cpp
│   │   │   │   ├── RaiseOrLowerIndex.hpp
│   │   │   │   ├── Trace.cpp
│   │   │   │   └── Trace.hpp
│   │   │   ├── Expressions/
│   │   │   │   ├── AddSubtract.hpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Contract.hpp
│   │   │   │   ├── DataTypeSupport.hpp
│   │   │   │   ├── Divide.hpp
│   │   │   │   ├── Evaluate.hpp
│   │   │   │   ├── IndexPropertyCheck.hpp
│   │   │   │   ├── LhsTensorSymmAndIndices.hpp
│   │   │   │   ├── Negate.hpp
│   │   │   │   ├── NumberAsExpression.hpp
│   │   │   │   ├── Product.hpp
│   │   │   │   ├── SpatialSpacetimeIndex.hpp
│   │   │   │   ├── SquareRoot.hpp
│   │   │   │   ├── TensorAsExpression.hpp
│   │   │   │   ├── TensorExpression.hpp
│   │   │   │   ├── TensorIndex.hpp
│   │   │   │   ├── TensorIndexTransformation.hpp
│   │   │   │   └── TimeIndex.hpp
│   │   │   ├── Identity.hpp
│   │   │   ├── IndexType.hpp
│   │   │   ├── Metafunctions.hpp
│   │   │   ├── Python/
│   │   │   │   ├── Bindings.cpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Frame.py
│   │   │   │   ├── InstantiateScalar.cpp
│   │   │   │   ├── InstantiateTensor1d.cpp
│   │   │   │   ├── InstantiateTensor2d.cpp
│   │   │   │   ├── InstantiateTensor3d.cpp
│   │   │   │   ├── Tensor.hpp
│   │   │   │   ├── Tensor.tpp
│   │   │   │   ├── __init__.py
│   │   │   │   └── tnsr.py
│   │   │   ├── Slice.hpp
│   │   │   ├── Structure.hpp
│   │   │   ├── Symmetry.hpp
│   │   │   ├── Tensor.hpp
│   │   │   └── TypeAliases.hpp
│   │   ├── Transpose.cpp
│   │   ├── Transpose.hpp
│   │   ├── Variables/
│   │   │   └── FrameTransform.hpp
│   │   ├── Variables.hpp
│   │   ├── VariablesTag.hpp
│   │   └── VectorImpl.hpp
│   ├── Domain/
│   │   ├── Amr/
│   │   │   ├── Amr.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Flag.cpp
│   │   │   ├── Flag.hpp
│   │   │   ├── Helpers.cpp
│   │   │   ├── Helpers.hpp
│   │   │   ├── Info.cpp
│   │   │   ├── Info.hpp
│   │   │   ├── NeighborsOfChild.cpp
│   │   │   ├── NeighborsOfChild.hpp
│   │   │   ├── NeighborsOfParent.cpp
│   │   │   ├── NeighborsOfParent.hpp
│   │   │   ├── NewNeighborIds.cpp
│   │   │   ├── NewNeighborIds.hpp
│   │   │   ├── Tags/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Flags.hpp
│   │   │   │   ├── NeighborFlags.hpp
│   │   │   │   └── Tags.hpp
│   │   │   ├── UpdateAmrDecision.cpp
│   │   │   └── UpdateAmrDecision.hpp
│   │   ├── AreaElement.cpp
│   │   ├── AreaElement.hpp
│   │   ├── Block.cpp
│   │   ├── Block.hpp
│   │   ├── BlockLogicalCoordinates.cpp
│   │   ├── BlockLogicalCoordinates.hpp
│   │   ├── BoundaryConditions/
│   │   │   ├── BoundaryCondition.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── GetBoundaryConditionsBase.hpp
│   │   │   ├── None.cpp
│   │   │   ├── None.hpp
│   │   │   ├── Periodic.cpp
│   │   │   └── Periodic.hpp
│   │   ├── CMakeLists.txt
│   │   ├── CoordinateMaps/
│   │   │   ├── Affine.cpp
│   │   │   ├── Affine.hpp
│   │   │   ├── AutodiffInstantiationTypes.hpp
│   │   │   ├── BulgedCube.cpp
│   │   │   ├── BulgedCube.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Composition.cpp
│   │   │   ├── Composition.hpp
│   │   │   ├── CoordinateMap.hpp
│   │   │   ├── CoordinateMap.tpp
│   │   │   ├── CoordinateMapHelpers.hpp
│   │   │   ├── CylindricalEndcap.cpp
│   │   │   ├── CylindricalEndcap.hpp
│   │   │   ├── CylindricalEndcapHelpers.cpp
│   │   │   ├── CylindricalEndcapHelpers.hpp
│   │   │   ├── CylindricalFlatEndcap.cpp
│   │   │   ├── CylindricalFlatEndcap.hpp
│   │   │   ├── CylindricalFlatSide.cpp
│   │   │   ├── CylindricalFlatSide.hpp
│   │   │   ├── CylindricalSide.cpp
│   │   │   ├── CylindricalSide.hpp
│   │   │   ├── DiscreteRotation.cpp
│   │   │   ├── DiscreteRotation.hpp
│   │   │   ├── Distribution.cpp
│   │   │   ├── Distribution.hpp
│   │   │   ├── EquatorialCompression.cpp
│   │   │   ├── EquatorialCompression.hpp
│   │   │   ├── Equiangular.cpp
│   │   │   ├── Equiangular.hpp
│   │   │   ├── FlatOffsetSphericalWedge.cpp
│   │   │   ├── FlatOffsetSphericalWedge.hpp
│   │   │   ├── FlatOffsetWedge.cpp
│   │   │   ├── FlatOffsetWedge.hpp
│   │   │   ├── FocallyLiftedEndcap.cpp
│   │   │   ├── FocallyLiftedEndcap.hpp
│   │   │   ├── FocallyLiftedFlatEndcap.cpp
│   │   │   ├── FocallyLiftedFlatEndcap.hpp
│   │   │   ├── FocallyLiftedFlatSide.cpp
│   │   │   ├── FocallyLiftedFlatSide.hpp
│   │   │   ├── FocallyLiftedMap.cpp
│   │   │   ├── FocallyLiftedMap.hpp
│   │   │   ├── FocallyLiftedMapHelpers.cpp
│   │   │   ├── FocallyLiftedMapHelpers.hpp
│   │   │   ├── FocallyLiftedSide.cpp
│   │   │   ├── FocallyLiftedSide.hpp
│   │   │   ├── Frustum.cpp
│   │   │   ├── Frustum.hpp
│   │   │   ├── Identity.cpp
│   │   │   ├── Identity.hpp
│   │   │   ├── Interval.cpp
│   │   │   ├── Interval.hpp
│   │   │   ├── KerrHorizonConforming.cpp
│   │   │   ├── KerrHorizonConforming.hpp
│   │   │   ├── MapInstantiationMacros.hpp
│   │   │   ├── PolarToCartesian.cpp
│   │   │   ├── PolarToCartesian.hpp
│   │   │   ├── ProductMaps.hpp
│   │   │   ├── ProductMaps.tpp
│   │   │   ├── Python/
│   │   │   │   ├── Bindings.cpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Composition.cpp
│   │   │   │   ├── Composition.hpp
│   │   │   │   ├── CoordinateMap.cpp
│   │   │   │   ├── CoordinateMap.hpp
│   │   │   │   └── __init__.py
│   │   │   ├── Rotation.cpp
│   │   │   ├── Rotation.hpp
│   │   │   ├── SpecialMobius.cpp
│   │   │   ├── SpecialMobius.hpp
│   │   │   ├── SphericalToCartesianPfaffian.cpp
│   │   │   ├── SphericalToCartesianPfaffian.hpp
│   │   │   ├── Tags.hpp
│   │   │   ├── TimeDependent/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── CubicScale.cpp
│   │   │   │   ├── CubicScale.hpp
│   │   │   │   ├── ProductMaps.hpp
│   │   │   │   ├── ProductMaps.tpp
│   │   │   │   ├── RotScaleTrans.cpp
│   │   │   │   ├── RotScaleTrans.hpp
│   │   │   │   ├── Rotation.cpp
│   │   │   │   ├── Rotation.hpp
│   │   │   │   ├── RotationMatrixHelpers.cpp
│   │   │   │   ├── RotationMatrixHelpers.hpp
│   │   │   │   ├── Shape.cpp
│   │   │   │   ├── Shape.hpp
│   │   │   │   ├── ShapeMapTransitionFunctions/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── RegisterDerivedWithCharm.cpp
│   │   │   │   │   ├── RegisterDerivedWithCharm.hpp
│   │   │   │   │   ├── ShapeMapTransitionFunction.hpp
│   │   │   │   │   ├── SphereTransition.cpp
│   │   │   │   │   ├── SphereTransition.hpp
│   │   │   │   │   ├── Wedge.cpp
│   │   │   │   │   └── Wedge.hpp
│   │   │   │   ├── Skew.cpp
│   │   │   │   ├── Skew.hpp
│   │   │   │   ├── SphericalCompression.cpp
│   │   │   │   ├── SphericalCompression.hpp
│   │   │   │   ├── Translation.cpp
│   │   │   │   └── Translation.hpp
│   │   │   ├── TimeDependentHelpers.hpp
│   │   │   ├── UniformCylindricalEndcap.cpp
│   │   │   ├── UniformCylindricalEndcap.hpp
│   │   │   ├── UniformCylindricalFlatEndcap.cpp
│   │   │   ├── UniformCylindricalFlatEndcap.hpp
│   │   │   ├── UniformCylindricalSide.cpp
│   │   │   ├── UniformCylindricalSide.hpp
│   │   │   ├── Wedge.cpp
│   │   │   └── Wedge.hpp
│   │   ├── CoordsToDifferentFrame.cpp
│   │   ├── CoordsToDifferentFrame.hpp
│   │   ├── CreateInitialElement.cpp
│   │   ├── CreateInitialElement.hpp
│   │   ├── Creators/
│   │   │   ├── AlignedLattice.cpp
│   │   │   ├── AlignedLattice.hpp
│   │   │   ├── AngularCylinder.cpp
│   │   │   ├── AngularCylinder.hpp
│   │   │   ├── AngularDisk.cpp
│   │   │   ├── AngularDisk.hpp
│   │   │   ├── BinaryCompactObject.cpp
│   │   │   ├── BinaryCompactObject.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── CartoonCylinder.cpp
│   │   │   ├── CartoonCylinder.hpp
│   │   │   ├── CartoonSphere1D.cpp
│   │   │   ├── CartoonSphere1D.hpp
│   │   │   ├── CartoonSphere2D.cpp
│   │   │   ├── CartoonSphere2D.hpp
│   │   │   ├── Cylinder.cpp
│   │   │   ├── Cylinder.hpp
│   │   │   ├── CylindricalBinaryCompactObject.cpp
│   │   │   ├── CylindricalBinaryCompactObject.hpp
│   │   │   ├── Disk.cpp
│   │   │   ├── Disk.hpp
│   │   │   ├── DomainCreator.hpp
│   │   │   ├── ExpandOverBlocks.cpp
│   │   │   ├── ExpandOverBlocks.hpp
│   │   │   ├── ExpandOverBlocks.tpp
│   │   │   ├── Factory.hpp
│   │   │   ├── Factory1D.hpp
│   │   │   ├── Factory2D.hpp
│   │   │   ├── Factory3D.hpp
│   │   │   ├── FrustalCloak.cpp
│   │   │   ├── FrustalCloak.hpp
│   │   │   ├── NonconformingSphericalShells.cpp
│   │   │   ├── NonconformingSphericalShells.hpp
│   │   │   ├── OptionTags.hpp
│   │   │   ├── Python/
│   │   │   │   ├── BinaryCompactObject.cpp
│   │   │   │   ├── BinaryCompactObject.hpp
│   │   │   │   ├── Bindings.cpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Cylinder.cpp
│   │   │   │   ├── Cylinder.hpp
│   │   │   │   ├── DomainCreator.cpp
│   │   │   │   ├── DomainCreator.hpp
│   │   │   │   ├── Rectilinear.cpp
│   │   │   │   ├── Rectilinear.hpp
│   │   │   │   ├── Sphere.cpp
│   │   │   │   ├── Sphere.hpp
│   │   │   │   └── __init__.py
│   │   │   ├── Rectilinear.cpp
│   │   │   ├── Rectilinear.hpp
│   │   │   ├── RegisterDerivedWithCharm.cpp
│   │   │   ├── RegisterDerivedWithCharm.hpp
│   │   │   ├── RotatedBricks.cpp
│   │   │   ├── RotatedBricks.hpp
│   │   │   ├── RotatedIntervals.cpp
│   │   │   ├── RotatedIntervals.hpp
│   │   │   ├── RotatedRectangles.cpp
│   │   │   ├── RotatedRectangles.hpp
│   │   │   ├── ShellDistribution.cpp
│   │   │   ├── ShellDistribution.hpp
│   │   │   ├── Sphere.cpp
│   │   │   ├── Sphere.hpp
│   │   │   ├── SphericalShells.cpp
│   │   │   ├── SphericalShells.hpp
│   │   │   ├── Tags/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Domain.cpp
│   │   │   │   ├── Domain.hpp
│   │   │   │   ├── ExternalBoundaryConditions.hpp
│   │   │   │   ├── FunctionsOfTime.hpp
│   │   │   │   ├── InitialExtents.cpp
│   │   │   │   ├── InitialExtents.hpp
│   │   │   │   ├── InitialRefinementLevels.cpp
│   │   │   │   ├── InitialRefinementLevels.hpp
│   │   │   │   ├── ObjectCenter.cpp
│   │   │   │   └── ObjectCenter.hpp
│   │   │   ├── TimeDependence/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── CubicScale.cpp
│   │   │   │   ├── CubicScale.hpp
│   │   │   │   ├── GenerateCoordinateMap.hpp
│   │   │   │   ├── None.cpp
│   │   │   │   ├── None.hpp
│   │   │   │   ├── RegisterDerivedWithCharm.cpp
│   │   │   │   ├── RegisterDerivedWithCharm.hpp
│   │   │   │   ├── RotationAboutZAxis.cpp
│   │   │   │   ├── RotationAboutZAxis.hpp
│   │   │   │   ├── ScalingAndZRotation.cpp
│   │   │   │   ├── ScalingAndZRotation.hpp
│   │   │   │   ├── Shape.cpp
│   │   │   │   ├── Shape.hpp
│   │   │   │   ├── SphericalCompression.cpp
│   │   │   │   ├── SphericalCompression.hpp
│   │   │   │   ├── TimeDependence.hpp
│   │   │   │   ├── UniformTranslation.cpp
│   │   │   │   └── UniformTranslation.hpp
│   │   │   └── TimeDependentOptions/
│   │   │       ├── BinaryCompactObject.cpp
│   │   │       ├── BinaryCompactObject.hpp
│   │   │       ├── CMakeLists.txt
│   │   │       ├── ExpansionMap.cpp
│   │   │       ├── ExpansionMap.hpp
│   │   │       ├── FromVolumeFile.cpp
│   │   │       ├── FromVolumeFile.hpp
│   │   │       ├── GridCenters.cpp
│   │   │       ├── GridCenters.hpp
│   │   │       ├── Python/
│   │   │       │   ├── BinaryCompactObject.cpp
│   │   │       │   ├── BinaryCompactObject.hpp
│   │   │       │   ├── Bindings.cpp
│   │   │       │   ├── CMakeLists.txt
│   │   │       │   ├── ExpansionMap.cpp
│   │   │       │   ├── ExpansionMap.hpp
│   │   │       │   ├── GridCenters.cpp
│   │   │       │   ├── GridCenters.hpp
│   │   │       │   ├── RotationMap.cpp
│   │   │       │   ├── RotationMap.hpp
│   │   │       │   ├── ShapeMap.cpp
│   │   │       │   ├── ShapeMap.hpp
│   │   │       │   ├── SkewMap.cpp
│   │   │       │   ├── SkewMap.hpp
│   │   │       │   ├── TranslationMap.cpp
│   │   │       │   ├── TranslationMap.hpp
│   │   │       │   └── __init__.py
│   │   │       ├── RotationMap.cpp
│   │   │       ├── RotationMap.hpp
│   │   │       ├── ShapeMap.cpp
│   │   │       ├── ShapeMap.hpp
│   │   │       ├── SkewMap.cpp
│   │   │       ├── SkewMap.hpp
│   │   │       ├── Sphere.cpp
│   │   │       ├── Sphere.hpp
│   │   │       ├── TranslationMap.cpp
│   │   │       └── TranslationMap.hpp
│   │   ├── Domain.cpp
│   │   ├── Domain.hpp
│   │   ├── DomainHelpers.cpp
│   │   ├── DomainHelpers.hpp
│   │   ├── ElementDistribution.cpp
│   │   ├── ElementDistribution.hpp
│   │   ├── ElementLogicalCoordinates.cpp
│   │   ├── ElementLogicalCoordinates.hpp
│   │   ├── ElementMap.cpp
│   │   ├── ElementMap.hpp
│   │   ├── ElementToBlockLogicalMap.cpp
│   │   ├── ElementToBlockLogicalMap.hpp
│   │   ├── ExcisionSphere.cpp
│   │   ├── ExcisionSphere.hpp
│   │   ├── FaceNormal.cpp
│   │   ├── FaceNormal.hpp
│   │   ├── FlatLogicalMetric.cpp
│   │   ├── FlatLogicalMetric.hpp
│   │   ├── FunctionsOfTime/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── FixedSpeedCubic.cpp
│   │   │   ├── FixedSpeedCubic.hpp
│   │   │   ├── FunctionOfTime.hpp
│   │   │   ├── IntegratedFunctionOfTime.cpp
│   │   │   ├── IntegratedFunctionOfTime.hpp
│   │   │   ├── OptionTags.hpp
│   │   │   ├── OutputTimeBounds.cpp
│   │   │   ├── OutputTimeBounds.hpp
│   │   │   ├── PiecewisePolynomial.cpp
│   │   │   ├── PiecewisePolynomial.hpp
│   │   │   ├── QuaternionFunctionOfTime.cpp
│   │   │   ├── QuaternionFunctionOfTime.hpp
│   │   │   ├── QuaternionHelpers.cpp
│   │   │   ├── QuaternionHelpers.hpp
│   │   │   ├── RegisterDerivedWithCharm.cpp
│   │   │   ├── RegisterDerivedWithCharm.hpp
│   │   │   ├── SettleToConstant.cpp
│   │   │   ├── SettleToConstant.hpp
│   │   │   ├── SettleToConstantQuaternion.cpp
│   │   │   ├── SettleToConstantQuaternion.hpp
│   │   │   ├── Tags.hpp
│   │   │   ├── ThreadsafeList.hpp
│   │   │   └── ThreadsafeList.tpp
│   │   ├── InterfaceComputeTags.hpp
│   │   ├── InterfaceHelpers.hpp
│   │   ├── InterfaceLogicalCoordinates.cpp
│   │   ├── InterfaceLogicalCoordinates.hpp
│   │   ├── JacobianDiagnostic.cpp
│   │   ├── JacobianDiagnostic.hpp
│   │   ├── MinimumGridSpacing.cpp
│   │   ├── MinimumGridSpacing.hpp
│   │   ├── Python/
│   │   │   ├── Bindings.cpp
│   │   │   ├── Block.cpp
│   │   │   ├── Block.hpp
│   │   │   ├── BlockLogicalCoordinates.cpp
│   │   │   ├── BlockLogicalCoordinates.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Direction.cpp
│   │   │   ├── Direction.hpp
│   │   │   ├── Domain.cpp
│   │   │   ├── Domain.hpp
│   │   │   ├── ElementId.cpp
│   │   │   ├── ElementId.hpp
│   │   │   ├── ElementLogicalCoordinates.cpp
│   │   │   ├── ElementLogicalCoordinates.hpp
│   │   │   ├── ElementMap.cpp
│   │   │   ├── ElementMap.hpp
│   │   │   ├── FunctionsOfTime.cpp
│   │   │   ├── FunctionsOfTime.hpp
│   │   │   ├── JacobianDiagnostic.cpp
│   │   │   ├── JacobianDiagnostic.hpp
│   │   │   ├── RadiallyCompressedCoordinates.cpp
│   │   │   ├── RadiallyCompressedCoordinates.hpp
│   │   │   ├── SegmentId.cpp
│   │   │   ├── SegmentId.hpp
│   │   │   ├── StrahlkorperTransformations.cpp
│   │   │   ├── StrahlkorperTransformations.hpp
│   │   │   └── __init__.py
│   │   ├── RadiallyCompressedCoordinates.cpp
│   │   ├── RadiallyCompressedCoordinates.hpp
│   │   ├── SizeOfElement.cpp
│   │   ├── SizeOfElement.hpp
│   │   ├── StrahlkorperTransformations.cpp
│   │   ├── StrahlkorperTransformations.hpp
│   │   ├── Structure/
│   │   │   ├── BlockGroups.cpp
│   │   │   ├── BlockGroups.hpp
│   │   │   ├── BlockId.hpp
│   │   │   ├── BlockNeighbors.cpp
│   │   │   ├── BlockNeighbors.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── ChildSize.cpp
│   │   │   ├── ChildSize.hpp
│   │   │   ├── CreateInitialMesh.cpp
│   │   │   ├── CreateInitialMesh.hpp
│   │   │   ├── Direction.cpp
│   │   │   ├── Direction.hpp
│   │   │   ├── DirectionMap.hpp
│   │   │   ├── DirectionalId.cpp
│   │   │   ├── DirectionalId.hpp
│   │   │   ├── DirectionalIdMap.hpp
│   │   │   ├── Element.cpp
│   │   │   ├── Element.hpp
│   │   │   ├── ElementId.cpp
│   │   │   ├── ElementId.hpp
│   │   │   ├── ElementSearchTree.cpp
│   │   │   ├── ElementSearchTree.hpp
│   │   │   ├── FaceType.cpp
│   │   │   ├── FaceType.hpp
│   │   │   ├── HasBoundary.cpp
│   │   │   ├── HasBoundary.hpp
│   │   │   ├── Hypercube.cpp
│   │   │   ├── Hypercube.hpp
│   │   │   ├── IndexToSliceAt.hpp
│   │   │   ├── InitialElementIds.cpp
│   │   │   ├── InitialElementIds.hpp
│   │   │   ├── MaxNumberOfNeighbors.hpp
│   │   │   ├── NeighborIsConforming.cpp
│   │   │   ├── NeighborIsConforming.hpp
│   │   │   ├── Neighbors.cpp
│   │   │   ├── Neighbors.hpp
│   │   │   ├── ObjectLabel.cpp
│   │   │   ├── ObjectLabel.hpp
│   │   │   ├── OrientationMap.cpp
│   │   │   ├── OrientationMap.hpp
│   │   │   ├── OrientationMapHelpers.cpp
│   │   │   ├── OrientationMapHelpers.hpp
│   │   │   ├── SegmentId.cpp
│   │   │   ├── SegmentId.hpp
│   │   │   ├── Side.cpp
│   │   │   ├── Side.hpp
│   │   │   ├── Topology.cpp
│   │   │   ├── Topology.hpp
│   │   │   ├── TrimMap.hpp
│   │   │   ├── ZCurve.cpp
│   │   │   └── ZCurve.hpp
│   │   ├── Tags/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── ElementDistribution.hpp
│   │   │   ├── FaceNormal.hpp
│   │   │   ├── Faces.hpp
│   │   │   ├── NeighborMesh.hpp
│   │   │   └── SurfaceJacobian.hpp
│   │   ├── Tags.hpp
│   │   ├── TagsCharacteristicSpeeds.hpp
│   │   ├── TagsTimeDependent.cpp
│   │   └── TagsTimeDependent.hpp
│   ├── Elliptic/
│   │   ├── Actions/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── InitializeAnalyticSolution.hpp
│   │   │   ├── InitializeBackgroundFields.hpp
│   │   │   ├── InitializeFields.hpp
│   │   │   ├── InitializeFixedSources.hpp
│   │   │   └── RunEventsAndTriggers.hpp
│   │   ├── Amr/
│   │   │   ├── Actions.hpp
│   │   │   └── CMakeLists.txt
│   │   ├── BoundaryConditions/
│   │   │   ├── AnalyticSolution.hpp
│   │   │   ├── ApplyBoundaryCondition.hpp
│   │   │   ├── BoundaryCondition.hpp
│   │   │   ├── BoundaryConditionType.cpp
│   │   │   ├── BoundaryConditionType.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Tags/
│   │   │   │   └── BoundaryFields.hpp
│   │   │   └── Tags.hpp
│   │   ├── CMakeLists.txt
│   │   ├── DiscontinuousGalerkin/
│   │   │   ├── Actions/
│   │   │   │   ├── ApplyOperator.hpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   └── InitializeDomain.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── DgElementArray.hpp
│   │   │   ├── DgOperator.hpp
│   │   │   ├── Initialization.cpp
│   │   │   ├── Initialization.hpp
│   │   │   ├── Penalty.cpp
│   │   │   ├── Penalty.hpp
│   │   │   ├── SubdomainOperator/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── InitializeSubdomain.cpp
│   │   │   │   ├── InitializeSubdomain.hpp
│   │   │   │   ├── SubdomainOperator.hpp
│   │   │   │   └── Tags.hpp
│   │   │   └── Tags.hpp
│   │   ├── Executables/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Elasticity/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── SolveElasticity.cpp
│   │   │   │   └── SolveElasticity.hpp
│   │   │   ├── Poisson/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── SolvePoisson.cpp
│   │   │   │   └── SolvePoisson.hpp
│   │   │   ├── Punctures/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── SolvePunctures.cpp
│   │   │   │   └── SolvePunctures.hpp
│   │   │   ├── SelfForce/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── GeneralRelativity/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── SolveGrSelfForce.cpp
│   │   │   │   │   └── SolveGrSelfForce.hpp
│   │   │   │   └── Scalar/
│   │   │   │       ├── CMakeLists.txt
│   │   │   │       ├── SolveScalarSelfForce.cpp
│   │   │   │       └── SolveScalarSelfForce.hpp
│   │   │   ├── Solver.hpp
│   │   │   └── Xcts/
│   │   │       ├── CMakeLists.txt
│   │   │       ├── SolveXcts.cpp
│   │   │       └── SolveXcts.hpp
│   │   ├── Protocols/
│   │   │   ├── CMakeLists.txt
│   │   │   └── FirstOrderSystem.hpp
│   │   ├── Python/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── ReadH5.py
│   │   │   └── __init__.py
│   │   ├── SubdomainPreconditioners/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── MinusLaplacian.hpp
│   │   │   ├── RegisterDerived.cpp
│   │   │   └── RegisterDerived.hpp
│   │   ├── Systems/
│   │   │   ├── BnsInitialData/
│   │   │   │   ├── BnsInitialData.hpp
│   │   │   │   ├── BoundaryConditions/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── Factory.hpp
│   │   │   │   │   ├── StarSurface.cpp
│   │   │   │   │   └── StarSurface.hpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Equations.cpp
│   │   │   │   ├── Equations.hpp
│   │   │   │   ├── FirstOrderSystem.hpp
│   │   │   │   └── Tags.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Elasticity/
│   │   │   │   ├── Actions/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── InitializeConstitutiveRelation.cpp
│   │   │   │   │   └── InitializeConstitutiveRelation.hpp
│   │   │   │   ├── BoundaryConditions/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── Factory.hpp
│   │   │   │   │   ├── LaserBeam.cpp
│   │   │   │   │   ├── LaserBeam.hpp
│   │   │   │   │   ├── Zero.cpp
│   │   │   │   │   └── Zero.hpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Equations.cpp
│   │   │   │   ├── Equations.hpp
│   │   │   │   ├── FirstOrderSystem.hpp
│   │   │   │   └── Tags.hpp
│   │   │   ├── GetFluxesComputer.hpp
│   │   │   ├── GetModifyBoundaryData.hpp
│   │   │   ├── GetSourcesComputer.hpp
│   │   │   ├── Poisson/
│   │   │   │   ├── BoundaryConditions/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── Factory.hpp
│   │   │   │   │   ├── Robin.cpp
│   │   │   │   │   └── Robin.hpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Equations.cpp
│   │   │   │   ├── Equations.hpp
│   │   │   │   ├── FirstOrderSystem.hpp
│   │   │   │   ├── Geometry.hpp
│   │   │   │   └── Tags.hpp
│   │   │   ├── Punctures/
│   │   │   │   ├── AmrCriteria/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── RefineAtPunctures.cpp
│   │   │   │   │   └── RefineAtPunctures.hpp
│   │   │   │   ├── BoundaryConditions/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── Factory.hpp
│   │   │   │   │   ├── Flatness.cpp
│   │   │   │   │   └── Flatness.hpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── FirstOrderSystem.hpp
│   │   │   │   ├── Punctures.hpp
│   │   │   │   ├── Sources.cpp
│   │   │   │   ├── Sources.hpp
│   │   │   │   └── Tags.hpp
│   │   │   ├── ScalarGaussBonnet/
│   │   │   │   ├── BoundaryConditions/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── DoNothing.hpp
│   │   │   │   │   └── Factory.hpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Equations.cpp
│   │   │   │   ├── Equations.hpp
│   │   │   │   ├── FirstOrderSystem.hpp
│   │   │   │   ├── ScalarGaussBonnet.hpp
│   │   │   │   └── Tags.hpp
│   │   │   ├── SelfForce/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── GeneralRelativity/
│   │   │   │   │   ├── Actions/
│   │   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   │   └── InitializeEffectiveSource.hpp
│   │   │   │   │   ├── AnalyticData/
│   │   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   │   ├── CircularOrbit.cpp
│   │   │   │   │   │   ├── CircularOrbit.hpp
│   │   │   │   │   │   ├── CircularOrbitCoeffs.cpp
│   │   │   │   │   │   ├── CircularOrbitCoeffs.hpp
│   │   │   │   │   │   ├── CircularOrbitConvertEffsource.cpp
│   │   │   │   │   │   └── CircularOrbitConvertEffsource.hpp
│   │   │   │   │   ├── BoundaryConditions/
│   │   │   │   │   │   ├── Angular.cpp
│   │   │   │   │   │   ├── Angular.hpp
│   │   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   │   ├── Factory.hpp
│   │   │   │   │   │   ├── None.cpp
│   │   │   │   │   │   ├── None.hpp
│   │   │   │   │   │   ├── Sommerfeld.cpp
│   │   │   │   │   │   └── Sommerfeld.hpp
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── Equations.cpp
│   │   │   │   │   ├── Equations.hpp
│   │   │   │   │   ├── FirstOrderSystem.hpp
│   │   │   │   │   └── Tags.hpp
│   │   │   │   └── Scalar/
│   │   │   │       ├── Actions/
│   │   │   │       │   ├── CMakeLists.txt
│   │   │   │       │   └── InitializeEffectiveSource.hpp
│   │   │   │       ├── AmrCriteria/
│   │   │   │       │   ├── CMakeLists.txt
│   │   │   │       │   ├── RefineAtPuncture.cpp
│   │   │   │       │   └── RefineAtPuncture.hpp
│   │   │   │       ├── AnalyticData/
│   │   │   │       │   ├── CMakeLists.txt
│   │   │   │       │   ├── CircularOrbit.cpp
│   │   │   │       │   └── CircularOrbit.hpp
│   │   │   │       ├── BoundaryConditions/
│   │   │   │       │   ├── CMakeLists.txt
│   │   │   │       │   ├── Factory.hpp
│   │   │   │       │   ├── None.cpp
│   │   │   │       │   ├── None.hpp
│   │   │   │       │   ├── Sommerfeld.cpp
│   │   │   │       │   └── Sommerfeld.hpp
│   │   │   │       ├── CMakeLists.txt
│   │   │   │       ├── Equations.cpp
│   │   │   │       ├── Equations.hpp
│   │   │   │       ├── Events/
│   │   │   │       │   ├── CMakeLists.txt
│   │   │   │       │   ├── ObserveSelfForce.cpp
│   │   │   │       │   └── ObserveSelfForce.hpp
│   │   │   │       ├── FirstOrderSystem.hpp
│   │   │   │       └── Tags.hpp
│   │   │   └── Xcts/
│   │   │       ├── BoundaryConditions/
│   │   │       │   ├── ApparentHorizon.cpp
│   │   │       │   ├── ApparentHorizon.hpp
│   │   │       │   ├── CMakeLists.txt
│   │   │       │   ├── Factory.hpp
│   │   │       │   ├── Flatness.cpp
│   │   │       │   ├── Flatness.hpp
│   │   │       │   ├── Robin.cpp
│   │   │       │   └── Robin.hpp
│   │   │       ├── CMakeLists.txt
│   │   │       ├── Equations.cpp
│   │   │       ├── Equations.hpp
│   │   │       ├── Events/
│   │   │       │   ├── CMakeLists.txt
│   │   │       │   ├── ObserveAdmIntegrals.cpp
│   │   │       │   └── ObserveAdmIntegrals.hpp
│   │   │       ├── FirstOrderSystem.hpp
│   │   │       ├── FluxesAndSources.cpp
│   │   │       ├── FluxesAndSources.hpp
│   │   │       ├── Geometry.hpp
│   │   │       ├── HydroQuantities.hpp
│   │   │       ├── Tags.hpp
│   │   │       └── Xcts.hpp
│   │   ├── Tags.hpp
│   │   ├── Triggers/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── EveryNIterations.hpp
│   │   │   ├── Factory.hpp
│   │   │   └── HasConverged.hpp
│   │   └── Utilities/
│   │       ├── ApplyAt.hpp
│   │       ├── CMakeLists.txt
│   │       └── GetAnalyticData.hpp
│   ├── Evolution/
│   │   ├── Actions/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── RunEventsAndDenseTriggers.hpp
│   │   │   └── RunEventsAndTriggers.hpp
│   │   ├── Ader/
│   │   │   ├── Ader.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Matrices.cpp
│   │   │   └── Matrices.hpp
│   │   ├── BoundaryConditions/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Type.cpp
│   │   │   └── Type.hpp
│   │   ├── BoundaryCorrection.hpp
│   │   ├── BoundaryCorrectionTags.hpp
│   │   ├── CMakeLists.txt
│   │   ├── ComputeTags.hpp
│   │   ├── Conservative/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── UpdateConservatives.hpp
│   │   │   └── UpdatePrimitives.hpp
│   │   ├── Deadlock/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── PrintDgElementArray.hpp
│   │   │   └── PrintFunctionsOfTime.hpp
│   │   ├── DgSubcell/
│   │   │   ├── Actions/
│   │   │   │   ├── Actions.hpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Initialize.hpp
│   │   │   │   ├── Labels.hpp
│   │   │   │   ├── ReconstructionCommunication.hpp
│   │   │   │   ├── SelectNumericalMethod.hpp
│   │   │   │   ├── TakeTimeStep.hpp
│   │   │   │   ├── TciAndRollback.hpp
│   │   │   │   └── TciAndSwitchToDg.hpp
│   │   │   ├── ActiveGrid.cpp
│   │   │   ├── ActiveGrid.hpp
│   │   │   ├── BackgroundGrVars.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── CartesianFluxDivergence.cpp
│   │   │   ├── CartesianFluxDivergence.hpp
│   │   │   ├── CellCenteredFlux.hpp
│   │   │   ├── CombineVolumeGhostData.cpp
│   │   │   ├── CombineVolumeGhostData.hpp
│   │   │   ├── ComputeBoundaryTerms.hpp
│   │   │   ├── CorrectPackagedData.hpp
│   │   │   ├── DgSubcell.hpp
│   │   │   ├── DisableLts.cpp
│   │   │   ├── DisableLts.hpp
│   │   │   ├── GetActiveTag.hpp
│   │   │   ├── GetTciDecision.hpp
│   │   │   ├── GhostData.cpp
│   │   │   ├── GhostData.hpp
│   │   │   ├── GhostZoneInverseJacobian.hpp
│   │   │   ├── GhostZoneLogicalCoordinates.cpp
│   │   │   ├── GhostZoneLogicalCoordinates.hpp
│   │   │   ├── InitialTciData.cpp
│   │   │   ├── InitialTciData.hpp
│   │   │   ├── Matrices.cpp
│   │   │   ├── Matrices.hpp
│   │   │   ├── Mesh.cpp
│   │   │   ├── Mesh.hpp
│   │   │   ├── NeighborRdmpAndVolumeData.cpp
│   │   │   ├── NeighborRdmpAndVolumeData.hpp
│   │   │   ├── NeighborReconstructedFaceSolution.hpp
│   │   │   ├── NeighborReconstructedFaceSolution.tpp
│   │   │   ├── NeighborTciDecision.cpp
│   │   │   ├── NeighborTciDecision.hpp
│   │   │   ├── PerssonTci.cpp
│   │   │   ├── PerssonTci.hpp
│   │   │   ├── PrepareNeighborData.hpp
│   │   │   ├── Projection.cpp
│   │   │   ├── Projection.hpp
│   │   │   ├── Python/
│   │   │   │   ├── Bindings.cpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   └── __init__.py
│   │   │   ├── RdmpTci.cpp
│   │   │   ├── RdmpTci.hpp
│   │   │   ├── RdmpTciData.cpp
│   │   │   ├── RdmpTciData.hpp
│   │   │   ├── ReceiveSubcellDataForDg.cpp
│   │   │   ├── ReceiveSubcellDataForDg.hpp
│   │   │   ├── Reconstruction.cpp
│   │   │   ├── Reconstruction.hpp
│   │   │   ├── ReconstructionMethod.cpp
│   │   │   ├── ReconstructionMethod.hpp
│   │   │   ├── ReconstructionOrder.hpp
│   │   │   ├── SetInterpolators.hpp
│   │   │   ├── SliceData.cpp
│   │   │   ├── SliceData.hpp
│   │   │   ├── SliceTensor.hpp
│   │   │   ├── SliceVariable.hpp
│   │   │   ├── SubcellOptions.cpp
│   │   │   ├── SubcellOptions.hpp
│   │   │   ├── Tags/
│   │   │   │   ├── ActiveGrid.hpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── CellCenteredFlux.hpp
│   │   │   │   ├── Coordinates.hpp
│   │   │   │   ├── DataForRdmpTci.hpp
│   │   │   │   ├── DidRollback.hpp
│   │   │   │   ├── GhostDataForReconstruction.hpp
│   │   │   │   ├── GhostZoneInverseJacobian.hpp
│   │   │   │   ├── Inactive.hpp
│   │   │   │   ├── InitialTciData.hpp
│   │   │   │   ├── Interpolators.hpp
│   │   │   │   ├── Jacobians.hpp
│   │   │   │   ├── Mesh.cpp
│   │   │   │   ├── Mesh.hpp
│   │   │   │   ├── MeshForGhostData.hpp
│   │   │   │   ├── MethodOrder.cpp
│   │   │   │   ├── MethodOrder.hpp
│   │   │   │   ├── ObserverCoordinates.hpp
│   │   │   │   ├── ObserverMesh.cpp
│   │   │   │   ├── ObserverMesh.hpp
│   │   │   │   ├── ObserverMeshVelocity.cpp
│   │   │   │   ├── ObserverMeshVelocity.hpp
│   │   │   │   ├── OnSubcellFaces.hpp
│   │   │   │   ├── OnSubcells.hpp
│   │   │   │   ├── ReconstructionOrder.hpp
│   │   │   │   ├── StepsSinceTciCall.hpp
│   │   │   │   ├── SubcellOptions.hpp
│   │   │   │   ├── SubcellSolver.hpp
│   │   │   │   ├── Tags.hpp
│   │   │   │   ├── TciCallsSinceRollback.hpp
│   │   │   │   ├── TciGridHistory.hpp
│   │   │   │   ├── TciStatus.cpp
│   │   │   │   └── TciStatus.hpp
│   │   │   └── TwoMeshRdmpTci.hpp
│   │   ├── DiscontinuousGalerkin/
│   │   │   ├── Actions/
│   │   │   │   ├── ApplyBoundaryCorrections.hpp
│   │   │   │   ├── BoundaryConditionsImpl.hpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── ComputeTimeDerivative.hpp
│   │   │   │   ├── ComputeTimeDerivativeHelpers.hpp
│   │   │   │   ├── InternalMortarDataImpl.hpp
│   │   │   │   ├── NormalCovectorAndMagnitude.hpp
│   │   │   │   ├── PackageDataImpl.hpp
│   │   │   │   ├── VolumeTermsImpl.hpp
│   │   │   │   └── VolumeTermsImpl.tpp
│   │   │   ├── AtomicInboxBoundaryData.cpp
│   │   │   ├── AtomicInboxBoundaryData.hpp
│   │   │   ├── BackgroundGrVars.hpp
│   │   │   ├── BoundaryData.cpp
│   │   │   ├── BoundaryData.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── CleanMortarHistory.cpp
│   │   │   ├── CleanMortarHistory.hpp
│   │   │   ├── DgElementArray.hpp
│   │   │   ├── InboxBoundaryData.cpp
│   │   │   ├── InboxBoundaryData.hpp
│   │   │   ├── InboxTags.cpp
│   │   │   ├── InboxTags.hpp
│   │   │   ├── Initialization/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Mortars.cpp
│   │   │   │   ├── Mortars.hpp
│   │   │   │   └── QuadratureTag.hpp
│   │   │   ├── InstantiateBoundaryHistory.cpp
│   │   │   ├── InterfaceDataPolicy.cpp
│   │   │   ├── InterfaceDataPolicy.hpp
│   │   │   ├── InterpolatedBoundaryData.cpp
│   │   │   ├── InterpolatedBoundaryData.hpp
│   │   │   ├── Limiters/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── HwenoImpl.cpp
│   │   │   │   ├── HwenoImpl.hpp
│   │   │   │   ├── Krivodonova.hpp
│   │   │   │   ├── Limiters.hpp
│   │   │   │   ├── Minmod.hpp
│   │   │   │   ├── MinmodHelpers.cpp
│   │   │   │   ├── MinmodHelpers.hpp
│   │   │   │   ├── MinmodImpl.cpp
│   │   │   │   ├── MinmodImpl.hpp
│   │   │   │   ├── MinmodTci.cpp
│   │   │   │   ├── MinmodTci.hpp
│   │   │   │   ├── MinmodType.cpp
│   │   │   │   ├── MinmodType.hpp
│   │   │   │   ├── SimpleWenoImpl.hpp
│   │   │   │   ├── Tags.hpp
│   │   │   │   ├── Tci.hpp
│   │   │   │   ├── Weno.hpp
│   │   │   │   ├── WenoGridHelpers.cpp
│   │   │   │   ├── WenoGridHelpers.hpp
│   │   │   │   ├── WenoHelpers.cpp
│   │   │   │   ├── WenoHelpers.hpp
│   │   │   │   ├── WenoOscillationIndicator.cpp
│   │   │   │   ├── WenoOscillationIndicator.hpp
│   │   │   │   ├── WenoType.cpp
│   │   │   │   └── WenoType.hpp
│   │   │   ├── Messages/
│   │   │   │   ├── BoundaryMessage.ci
│   │   │   │   ├── BoundaryMessage.cpp
│   │   │   │   ├── BoundaryMessage.hpp
│   │   │   │   └── CMakeLists.txt
│   │   │   ├── MortarData.cpp
│   │   │   ├── MortarData.hpp
│   │   │   ├── MortarDataHolder.cpp
│   │   │   ├── MortarDataHolder.hpp
│   │   │   ├── MortarInfo.cpp
│   │   │   ├── MortarInfo.hpp
│   │   │   ├── MortarTags.hpp
│   │   │   ├── NormalVectorTags.hpp
│   │   │   ├── TimeDerivativeDecisions.hpp
│   │   │   ├── TimeSteppingPolicy.cpp
│   │   │   ├── TimeSteppingPolicy.hpp
│   │   │   └── UsingSubcell.hpp
│   │   ├── Evolution.hpp
│   │   ├── Executables/
│   │   │   ├── Burgers/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── EvolveBurgers.cpp
│   │   │   │   └── EvolveBurgers.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Cce/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── CharacteristicExtract.cpp
│   │   │   │   ├── CharacteristicExtract.hpp
│   │   │   │   ├── CharacteristicExtractBase.hpp
│   │   │   │   ├── KleinGordonCharacteristicExtract.cpp
│   │   │   │   └── KleinGordonCharacteristicExtract.hpp
│   │   │   ├── CurvedScalarWave/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── EvolveCurvedScalarWave.cpp
│   │   │   │   ├── EvolveCurvedScalarWave.hpp
│   │   │   │   ├── EvolveWorldtubeCurvedScalarWave.cpp
│   │   │   │   └── EvolveWorldtubeCurvedScalarWave.hpp
│   │   │   ├── ForceFree/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── EvolveForceFree.cpp
│   │   │   │   └── EvolveForceFree.hpp
│   │   │   ├── GeneralizedHarmonic/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Deadlock.hpp
│   │   │   │   ├── EvolveGhBinaryBlackHole.cpp
│   │   │   │   ├── EvolveGhBinaryBlackHole.hpp
│   │   │   │   ├── EvolveGhNoBlackHole.cpp
│   │   │   │   ├── EvolveGhNoBlackHole.hpp
│   │   │   │   ├── EvolveGhSingleBlackHole.cpp
│   │   │   │   ├── EvolveGhSingleBlackHole.hpp
│   │   │   │   └── GeneralizedHarmonicBase.hpp
│   │   │   ├── GrMhd/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── GhValenciaDivClean/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── EvolveGhValenciaDivClean.cpp
│   │   │   │   │   ├── EvolveGhValenciaDivClean.hpp
│   │   │   │   │   ├── EvolveGhValenciaDivCleanWithHorizon.cpp
│   │   │   │   │   ├── EvolveGhValenciaDivCleanWithHorizon.hpp
│   │   │   │   │   └── GhValenciaDivCleanBase.hpp
│   │   │   │   └── ValenciaDivClean/
│   │   │   │       ├── CMakeLists.txt
│   │   │   │       ├── EvolveValenciaDivClean.cpp
│   │   │   │       └── EvolveValenciaDivClean.hpp
│   │   │   ├── NewtonianEuler/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── EvolveNewtonianEuler.cpp
│   │   │   │   ├── EvolveNewtonianEuler.hpp
│   │   │   │   ├── VolumeTermsInstantiation.tpp
│   │   │   │   ├── VolumeTermsInstantiation1D.cpp
│   │   │   │   ├── VolumeTermsInstantiation2D.cpp
│   │   │   │   └── VolumeTermsInstantiation3D.cpp
│   │   │   ├── RadiationTransport/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── M1Grey/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── EvolveM1Grey.cpp
│   │   │   │   │   └── EvolveM1Grey.hpp
│   │   │   │   └── MonteCarlo/
│   │   │   │       ├── CMakeLists.txt
│   │   │   │       ├── EvolveMonteCarlo.cpp
│   │   │   │       └── EvolveMonteCarlo.hpp
│   │   │   ├── ScalarAdvection/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── EvolveScalarAdvection.cpp
│   │   │   │   └── EvolveScalarAdvection.hpp
│   │   │   ├── ScalarTensor/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── EvolveScalarTensorSingleBlackHole.cpp
│   │   │   │   ├── EvolveScalarTensorSingleBlackHole.hpp
│   │   │   │   └── ScalarTensorBase.hpp
│   │   │   └── ScalarWave/
│   │   │       ├── CMakeLists.txt
│   │   │       ├── EvolveScalarWave.cpp
│   │   │       └── EvolveScalarWave.hpp
│   │   ├── Imex/
│   │   │   ├── Actions/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── DoImplicitStep.hpp
│   │   │   │   ├── NamespaceDocs.hpp
│   │   │   │   └── RecordTimeStepperData.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── CleanHistory.hpp
│   │   │   ├── CleanHistory.tpp
│   │   │   ├── GuessResult.cpp
│   │   │   ├── GuessResult.hpp
│   │   │   ├── ImplicitDenseOutput.hpp
│   │   │   ├── Initialize.hpp
│   │   │   ├── Mode.cpp
│   │   │   ├── Mode.hpp
│   │   │   ├── NamespaceDocs.hpp
│   │   │   ├── Protocols/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── ImexSystem.hpp
│   │   │   │   ├── ImplicitSector.hpp
│   │   │   │   ├── ImplicitSource.hpp
│   │   │   │   ├── ImplicitSourceJacobian.hpp
│   │   │   │   └── NamespaceDocs.hpp
│   │   │   ├── SolveImplicitSector.hpp
│   │   │   ├── SolveImplicitSector.tpp
│   │   │   └── Tags/
│   │   │       ├── CMakeLists.txt
│   │   │       ├── ImplicitHistory.hpp
│   │   │       ├── Jacobian.hpp
│   │   │       ├── Mode.hpp
│   │   │       ├── NamespaceDocs.hpp
│   │   │       ├── OptionGroup.hpp
│   │   │       ├── SolveFailures.hpp
│   │   │       └── SolveTolerance.hpp
│   │   ├── Initialization/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── ConservativeSystem.hpp
│   │   │   ├── DgDomain.cpp
│   │   │   ├── DgDomain.hpp
│   │   │   ├── Evolution.hpp
│   │   │   ├── InitialData.hpp
│   │   │   ├── Limiter.hpp
│   │   │   ├── NonconservativeSystem.hpp
│   │   │   ├── SetVariables.hpp
│   │   │   └── Tags.hpp
│   │   ├── NumericInitialData.hpp
│   │   ├── Particles/
│   │   │   ├── CMakeLists.txt
│   │   │   └── MonteCarlo/
│   │   │       ├── Actions/
│   │   │       │   ├── CMakeLists.txt
│   │   │       │   ├── FluidCouplingAction.hpp
│   │   │       │   ├── InitializeMonteCarlo.hpp
│   │   │       │   ├── Labels.hpp
│   │   │       │   ├── TimeStepActions.hpp
│   │   │       │   └── TriggerMonteCarloEvolution.hpp
│   │   │       ├── CMakeLists.txt
│   │   │       ├── CellCrossingTime.cpp
│   │   │       ├── CellCrossingTime.hpp
│   │   │       ├── CellVolume.cpp
│   │   │       ├── CellVolume.hpp
│   │   │       ├── CouplingTermsForPropagation.cpp
│   │   │       ├── CouplingTermsForPropagation.hpp
│   │   │       ├── EmitPackets.tpp
│   │   │       ├── EvolvePackets.cpp
│   │   │       ├── EvolvePackets.hpp
│   │   │       ├── EvolvePacketsInElement.tpp
│   │   │       ├── GhostZoneCommunication.hpp
│   │   │       ├── GhostZoneCommunicationStep.hpp
│   │   │       ├── GhostZoneCommunicationTags.hpp
│   │   │       ├── ImplicitMonteCarloCorrections.tpp
│   │   │       ├── InverseJacobianInertialToFluidCompute.cpp
│   │   │       ├── InverseJacobianInertialToFluidCompute.hpp
│   │   │       ├── MonteCarloOptions.cpp
│   │   │       ├── MonteCarloOptions.hpp
│   │   │       ├── MortarData.hpp
│   │   │       ├── NeutrinoInteractionTable.cpp
│   │   │       ├── NeutrinoInteractionTable.hpp
│   │   │       ├── NeutrinoMomentsFromMonteCarlo.cpp
│   │   │       ├── NeutrinoMomentsFromMonteCarlo.hpp
│   │   │       ├── Packet.cpp
│   │   │       ├── Packet.hpp
│   │   │       ├── Scattering.cpp
│   │   │       ├── Scattering.hpp
│   │   │       ├── SwapGrTags.cpp
│   │   │       ├── SwapGrTags.hpp
│   │   │       ├── System.hpp
│   │   │       ├── Tags.hpp
│   │   │       ├── TakeTimeStep.tpp
│   │   │       ├── TemplatedLocalFunctions.cpp
│   │   │       └── TemplatedLocalFunctions.hpp
│   │   ├── PassVariables.hpp
│   │   ├── Protocols.hpp
│   │   ├── Python/
│   │   │   ├── CMakeLists.txt
│   │   │   └── __init__.py
│   │   ├── Ringdown/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Python/
│   │   │   │   ├── Bindings.cpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── ComputeRingdownShapeAndTranslationFoT.py
│   │   │   │   └── __init__.py
│   │   │   ├── StrahlkorperCoefsAndCenters.cpp
│   │   │   └── StrahlkorperCoefsAndCenters.hpp
│   │   ├── Systems/
│   │   │   ├── Burgers/
│   │   │   │   ├── BoundaryConditions/
│   │   │   │   │   ├── BoundaryCondition.cpp
│   │   │   │   │   ├── BoundaryCondition.hpp
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── DemandOutgoingCharSpeeds.cpp
│   │   │   │   │   ├── DemandOutgoingCharSpeeds.hpp
│   │   │   │   │   ├── Dirichlet.cpp
│   │   │   │   │   ├── Dirichlet.hpp
│   │   │   │   │   ├── DirichletAnalytic.cpp
│   │   │   │   │   ├── DirichletAnalytic.hpp
│   │   │   │   │   └── Factory.hpp
│   │   │   │   ├── BoundaryCorrections/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── Factory.hpp
│   │   │   │   │   ├── Hll.cpp
│   │   │   │   │   ├── Hll.hpp
│   │   │   │   │   ├── NamespaceDocs.hpp
│   │   │   │   │   ├── Rusanov.cpp
│   │   │   │   │   └── Rusanov.hpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Characteristics.cpp
│   │   │   │   ├── Characteristics.hpp
│   │   │   │   ├── FiniteDifference/
│   │   │   │   │   ├── BoundaryConditionGhostData.hpp
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── Factory.hpp
│   │   │   │   │   ├── FiniteDifference.hpp
│   │   │   │   │   ├── MonotonisedCentral.cpp
│   │   │   │   │   ├── MonotonisedCentral.hpp
│   │   │   │   │   ├── ReconstructWork.hpp
│   │   │   │   │   ├── ReconstructWork.tpp
│   │   │   │   │   ├── Reconstructor.cpp
│   │   │   │   │   ├── Reconstructor.hpp
│   │   │   │   │   ├── RegisterDerivedWithCharm.cpp
│   │   │   │   │   ├── RegisterDerivedWithCharm.hpp
│   │   │   │   │   └── Tags.hpp
│   │   │   │   ├── Fluxes.cpp
│   │   │   │   ├── Fluxes.hpp
│   │   │   │   ├── Instantiations/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── Divergence.cpp
│   │   │   │   │   ├── Events.cpp
│   │   │   │   │   ├── TimeStepping.cpp
│   │   │   │   │   └── VolumeTerms.cpp
│   │   │   │   ├── Subcell/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── ComputeFluxes.hpp
│   │   │   │   │   ├── GhostData.cpp
│   │   │   │   │   ├── GhostData.hpp
│   │   │   │   │   ├── NeighborPackagedData.cpp
│   │   │   │   │   ├── NeighborPackagedData.hpp
│   │   │   │   │   ├── SetInitialRdmpData.cpp
│   │   │   │   │   ├── SetInitialRdmpData.hpp
│   │   │   │   │   ├── Subcell.hpp
│   │   │   │   │   ├── TciOnDgGrid.cpp
│   │   │   │   │   ├── TciOnDgGrid.hpp
│   │   │   │   │   ├── TciOnFdGrid.cpp
│   │   │   │   │   ├── TciOnFdGrid.hpp
│   │   │   │   │   └── TimeDerivative.hpp
│   │   │   │   ├── System.hpp
│   │   │   │   ├── Tags.hpp
│   │   │   │   ├── TimeDerivativeTerms.cpp
│   │   │   │   └── TimeDerivativeTerms.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Cce/
│   │   │   │   ├── Actions/
│   │   │   │   │   ├── BoundaryComputeAndSendToEvolution.hpp
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── CalculateScriInputs.hpp
│   │   │   │   │   ├── CharacteristicEvolutionBondiCalculations.hpp
│   │   │   │   │   ├── FilterSwshVolumeQuantity.hpp
│   │   │   │   │   ├── InitializeCharacteristicEvolutionScri.hpp
│   │   │   │   │   ├── InitializeCharacteristicEvolutionTime.hpp
│   │   │   │   │   ├── InitializeCharacteristicEvolutionVariables.hpp
│   │   │   │   │   ├── InitializeFirstHypersurface.hpp
│   │   │   │   │   ├── InitializeKleinGordonFirstHypersurface.hpp
│   │   │   │   │   ├── InitializeKleinGordonVariables.hpp
│   │   │   │   │   ├── InitializeWorldtubeBoundary.hpp
│   │   │   │   │   ├── InsertInterpolationScriData.hpp
│   │   │   │   │   ├── PrecomputeKleinGordonSourceVariables.hpp
│   │   │   │   │   ├── Psi0Matching.hpp
│   │   │   │   │   ├── ReceiveGhWorldtubeData.hpp
│   │   │   │   │   ├── ReceiveWorldtubeData.hpp
│   │   │   │   │   ├── RequestBoundaryData.hpp
│   │   │   │   │   ├── ScriObserveInterpolated.cpp
│   │   │   │   │   ├── ScriObserveInterpolated.hpp
│   │   │   │   │   ├── SendGhVarsToCce.hpp
│   │   │   │   │   ├── TimeManagement.hpp
│   │   │   │   │   ├── UpdateGauge.hpp
│   │   │   │   │   └── WriteScriBondiQuantities.hpp
│   │   │   │   ├── AnalyticBoundaryDataManager.cpp
│   │   │   │   ├── AnalyticBoundaryDataManager.hpp
│   │   │   │   ├── AnalyticSolutions/
│   │   │   │   │   ├── BouncingBlackHole.cpp
│   │   │   │   │   ├── BouncingBlackHole.hpp
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── GaugeWave.cpp
│   │   │   │   │   ├── GaugeWave.hpp
│   │   │   │   │   ├── LinearizedBondiSachs.cpp
│   │   │   │   │   ├── LinearizedBondiSachs.hpp
│   │   │   │   │   ├── RobinsonTrautman.cpp
│   │   │   │   │   ├── RobinsonTrautman.hpp
│   │   │   │   │   ├── RotatingSchwarzschild.cpp
│   │   │   │   │   ├── RotatingSchwarzschild.hpp
│   │   │   │   │   ├── SphericalMetricData.cpp
│   │   │   │   │   ├── SphericalMetricData.hpp
│   │   │   │   │   ├── TeukolskyWave.cpp
│   │   │   │   │   ├── TeukolskyWave.hpp
│   │   │   │   │   ├── WorldtubeData.cpp
│   │   │   │   │   └── WorldtubeData.hpp
│   │   │   │   ├── BoundaryData.cpp
│   │   │   │   ├── BoundaryData.hpp
│   │   │   │   ├── BoundaryDataTags.hpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Callbacks/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── DumpBondiSachsOnWorldtube.cpp
│   │   │   │   │   ├── DumpBondiSachsOnWorldtube.hpp
│   │   │   │   │   └── SendGhWorldtubeData.hpp
│   │   │   │   ├── Components/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── CharacteristicEvolution.hpp
│   │   │   │   │   ├── KleinGordonCharacteristicEvolution.hpp
│   │   │   │   │   └── WorldtubeBoundary.hpp
│   │   │   │   ├── Equations.cpp
│   │   │   │   ├── Equations.hpp
│   │   │   │   ├── Events/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── Events.hpp
│   │   │   │   │   ├── ObserveFields.hpp
│   │   │   │   │   └── ObserveTimeStep.hpp
│   │   │   │   ├── ExtractionRadius.cpp
│   │   │   │   ├── ExtractionRadius.hpp
│   │   │   │   ├── GaugeTransformBoundaryData.cpp
│   │   │   │   ├── GaugeTransformBoundaryData.hpp
│   │   │   │   ├── Initialize/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── ConformalFactor.cpp
│   │   │   │   │   ├── ConformalFactor.hpp
│   │   │   │   │   ├── InitializeJ.cpp
│   │   │   │   │   ├── InitializeJ.hpp
│   │   │   │   │   ├── InverseCubic.cpp
│   │   │   │   │   ├── InverseCubic.hpp
│   │   │   │   │   ├── NoIncomingRadiation.cpp
│   │   │   │   │   ├── NoIncomingRadiation.hpp
│   │   │   │   │   ├── RegisterInitializeJWithCharm.hpp
│   │   │   │   │   ├── ZeroNonSmooth.cpp
│   │   │   │   │   └── ZeroNonSmooth.hpp
│   │   │   │   ├── Instantiations/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   └── TimeStepping.cpp
│   │   │   │   ├── IntegrandInputSteps.hpp
│   │   │   │   ├── InterfaceManagers/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── GhInterfaceManager.hpp
│   │   │   │   │   ├── GhLocalTimeStepping.cpp
│   │   │   │   │   ├── GhLocalTimeStepping.hpp
│   │   │   │   │   ├── GhLockstep.cpp
│   │   │   │   │   └── GhLockstep.hpp
│   │   │   │   ├── KleinGordonSource.cpp
│   │   │   │   ├── KleinGordonSource.hpp
│   │   │   │   ├── KleinGordonSystem.hpp
│   │   │   │   ├── LinearOperators.cpp
│   │   │   │   ├── LinearOperators.hpp
│   │   │   │   ├── LinearSolve.cpp
│   │   │   │   ├── LinearSolve.hpp
│   │   │   │   ├── NewmanPenrose.cpp
│   │   │   │   ├── NewmanPenrose.hpp
│   │   │   │   ├── OptionTags.hpp
│   │   │   │   ├── PreSwshDerivatives.hpp
│   │   │   │   ├── PrecomputeCceDependencies.cpp
│   │   │   │   ├── PrecomputeCceDependencies.hpp
│   │   │   │   ├── ReceiveTags.hpp
│   │   │   │   ├── ScriPlusInterpolationManager.hpp
│   │   │   │   ├── ScriPlusValues.cpp
│   │   │   │   ├── ScriPlusValues.hpp
│   │   │   │   ├── SpecBoundaryData.cpp
│   │   │   │   ├── SpecBoundaryData.hpp
│   │   │   │   ├── SwshDerivatives.hpp
│   │   │   │   ├── System.hpp
│   │   │   │   ├── Tags.hpp
│   │   │   │   ├── WorldtubeBufferUpdater.cpp
│   │   │   │   ├── WorldtubeBufferUpdater.hpp
│   │   │   │   ├── WorldtubeDataManager.cpp
│   │   │   │   ├── WorldtubeDataManager.hpp
│   │   │   │   ├── WorldtubeModeRecorder.cpp
│   │   │   │   └── WorldtubeModeRecorder.hpp
│   │   │   ├── Ccz4/
│   │   │   │   ├── ATilde.cpp
│   │   │   │   ├── ATilde.hpp
│   │   │   │   ├── BoundaryConditions/
│   │   │   │   │   ├── BoundaryCondition.cpp
│   │   │   │   │   ├── BoundaryCondition.hpp
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── DirichletAnalytic.cpp
│   │   │   │   │   ├── DirichletAnalytic.hpp
│   │   │   │   │   ├── Factory.hpp
│   │   │   │   │   ├── Sommerfeld.cpp
│   │   │   │   │   └── Sommerfeld.hpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Ccz4WrappedGr.cpp
│   │   │   │   ├── Ccz4WrappedGr.hpp
│   │   │   │   ├── Ccz4WrappedGr.tpp
│   │   │   │   ├── Christoffel.cpp
│   │   │   │   ├── Christoffel.hpp
│   │   │   │   ├── DerivChristoffel.cpp
│   │   │   │   ├── DerivChristoffel.hpp
│   │   │   │   ├── DerivLapse.cpp
│   │   │   │   ├── DerivLapse.hpp
│   │   │   │   ├── DerivZ4Constraint.cpp
│   │   │   │   ├── DerivZ4Constraint.hpp
│   │   │   │   ├── FiniteDifference/
│   │   │   │   │   ├── ApplyFilter.cpp
│   │   │   │   │   ├── ApplyFilter.hpp
│   │   │   │   │   ├── BoundaryConditionGhostData.hpp
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── Derivatives.cpp
│   │   │   │   │   ├── Derivatives.hpp
│   │   │   │   │   ├── DummyReconstructor.cpp
│   │   │   │   │   ├── DummyReconstructor.hpp
│   │   │   │   │   ├── EnforceConstrainedEvolution.cpp
│   │   │   │   │   ├── EnforceConstrainedEvolution.hpp
│   │   │   │   │   ├── Filter.cpp
│   │   │   │   │   ├── Filter.hpp
│   │   │   │   │   ├── GhostData.cpp
│   │   │   │   │   ├── GhostData.hpp
│   │   │   │   │   ├── Reconstructor.cpp
│   │   │   │   │   ├── Reconstructor.hpp
│   │   │   │   │   ├── SoTimeDerivative.hpp
│   │   │   │   │   ├── System.hpp
│   │   │   │   │   └── Tags.hpp
│   │   │   │   ├── Instantiations/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── Ricci1.cpp
│   │   │   │   │   ├── Ricci2.cpp
│   │   │   │   │   └── Ricci3.cpp
│   │   │   │   ├── Ricci.hpp
│   │   │   │   ├── Ricci.tpp
│   │   │   │   ├── RicciScalarPlusDivergenceZ4Constraint.cpp
│   │   │   │   ├── RicciScalarPlusDivergenceZ4Constraint.hpp
│   │   │   │   ├── Solutions/
│   │   │   │   │   └── Factory.hpp
│   │   │   │   ├── System.hpp
│   │   │   │   ├── Tags.hpp
│   │   │   │   ├── TagsDeclarations.hpp
│   │   │   │   ├── TempTags.hpp
│   │   │   │   ├── TimeDerivative.cpp
│   │   │   │   ├── TimeDerivative.hpp
│   │   │   │   ├── Z4Constraint.cpp
│   │   │   │   └── Z4Constraint.hpp
│   │   │   ├── CurvedScalarWave/
│   │   │   │   ├── Actions/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── SetInitialData.cpp
│   │   │   │   │   └── SetInitialData.hpp
│   │   │   │   ├── Actions.hpp
│   │   │   │   ├── ApplyTensorYlmFilter.cpp
│   │   │   │   ├── ApplyTensorYlmFilter.hpp
│   │   │   │   ├── BackgroundSpacetime.hpp
│   │   │   │   ├── BoundaryConditions/
│   │   │   │   │   ├── AnalyticConstant.cpp
│   │   │   │   │   ├── AnalyticConstant.hpp
│   │   │   │   │   ├── BoundaryCondition.cpp
│   │   │   │   │   ├── BoundaryCondition.hpp
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── ConstraintPreservingSphericalRadiation.cpp
│   │   │   │   │   ├── ConstraintPreservingSphericalRadiation.hpp
│   │   │   │   │   ├── DemandOutgoingCharSpeeds.cpp
│   │   │   │   │   ├── DemandOutgoingCharSpeeds.hpp
│   │   │   │   │   ├── Factory.hpp
│   │   │   │   │   ├── Worldtube.cpp
│   │   │   │   │   └── Worldtube.hpp
│   │   │   │   ├── BoundaryCorrections/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── Factory.hpp
│   │   │   │   │   ├── NamespaceDocs.hpp
│   │   │   │   │   ├── UpwindPenalty.cpp
│   │   │   │   │   └── UpwindPenalty.hpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── CalculateGrVars.hpp
│   │   │   │   ├── Characteristics.cpp
│   │   │   │   ├── Characteristics.hpp
│   │   │   │   ├── Constraints.cpp
│   │   │   │   ├── Constraints.hpp
│   │   │   │   ├── Initialize.hpp
│   │   │   │   ├── Instantiations/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── Events.cpp
│   │   │   │   │   ├── TimeStepping.cpp
│   │   │   │   │   └── VolumeTerms.cpp
│   │   │   │   ├── PsiSquared.hpp
│   │   │   │   ├── System.hpp
│   │   │   │   ├── Tags.hpp
│   │   │   │   ├── TagsDeclarations.hpp
│   │   │   │   ├── TimeDerivative.cpp
│   │   │   │   ├── TimeDerivative.hpp
│   │   │   │   └── Worldtube/
│   │   │   │       ├── AccelerationTermsOrder0.cpp
│   │   │   │       ├── AccelerationTermsOrder1.cpp
│   │   │   │       ├── CMakeLists.txt
│   │   │   │       ├── ElementActions/
│   │   │   │       │   ├── CMakeLists.txt
│   │   │   │       │   ├── InitializeConstraintGammas.cpp
│   │   │   │       │   ├── InitializeConstraintGammas.hpp
│   │   │   │       │   ├── InitializeCurrentIteration.hpp
│   │   │   │       │   ├── IteratePunctureField.hpp
│   │   │   │       │   ├── ReceiveWorldtubeData.hpp
│   │   │   │       │   └── SendToWorldtube.hpp
│   │   │   │       ├── Inboxes.hpp
│   │   │   │       ├── InitialData/
│   │   │   │       │   ├── CMakeLists.txt
│   │   │   │       │   ├── ZerothOrderPuncture.cpp
│   │   │   │       │   └── ZerothOrderPuncture.hpp
│   │   │   │       ├── Instantiations/
│   │   │   │       │   ├── CMakeLists.txt
│   │   │   │       │   └── TimeStepping.cpp
│   │   │   │       ├── KerrSchildDerivatives.cpp
│   │   │   │       ├── KerrSchildDerivatives.hpp
│   │   │   │       ├── PunctureField.cpp
│   │   │   │       ├── PunctureField.hpp
│   │   │   │       ├── PunctureFieldOrder0.cpp
│   │   │   │       ├── PunctureFieldOrder1.cpp
│   │   │   │       ├── RadiusFunctions.cpp
│   │   │   │       ├── RadiusFunctions.hpp
│   │   │   │       ├── SelfForce.cpp
│   │   │   │       ├── SelfForce.hpp
│   │   │   │       ├── SingletonActions/
│   │   │   │       │   ├── CMakeLists.txt
│   │   │   │       │   ├── ChangeSlabSize.hpp
│   │   │   │       │   ├── InitializeElementFacesGridCoordinates.hpp
│   │   │   │       │   ├── InitializeEvolvedVariables.hpp
│   │   │   │       │   ├── IterateAccelerationTerms.cpp
│   │   │   │       │   ├── IterateAccelerationTerms.hpp
│   │   │   │       │   ├── ObserveWorldtubeSolution.hpp
│   │   │   │       │   ├── ReceiveElementData.hpp
│   │   │   │       │   ├── SendAccelerationTerms.hpp
│   │   │   │       │   ├── SendToElements.hpp
│   │   │   │       │   ├── UpdateAcceleration.cpp
│   │   │   │       │   ├── UpdateAcceleration.hpp
│   │   │   │       │   └── UpdateFunctionsOfTime.hpp
│   │   │   │       ├── SingletonChare.hpp
│   │   │   │       ├── System.hpp
│   │   │   │       ├── Tags.cpp
│   │   │   │       ├── Tags.hpp
│   │   │   │       ├── Triggers/
│   │   │   │       │   ├── CMakeLists.txt
│   │   │   │       │   ├── InsideHorizon.cpp
│   │   │   │       │   ├── InsideHorizon.hpp
│   │   │   │       │   ├── OrbitRadius.cpp
│   │   │   │       │   └── OrbitRadius.hpp
│   │   │   │       └── Worldtube.hpp
│   │   │   ├── ForceFree/
│   │   │   │   ├── BoundaryConditions/
│   │   │   │   │   ├── BoundaryCondition.cpp
│   │   │   │   │   ├── BoundaryCondition.hpp
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── DemandOutgoingCharSpeeds.cpp
│   │   │   │   │   ├── DemandOutgoingCharSpeeds.hpp
│   │   │   │   │   ├── DirichletAnalytic.cpp
│   │   │   │   │   ├── DirichletAnalytic.hpp
│   │   │   │   │   └── Factory.hpp
│   │   │   │   ├── BoundaryCorrections/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── Factory.hpp
│   │   │   │   │   ├── NamespaceDocs.hpp
│   │   │   │   │   ├── Rusanov.cpp
│   │   │   │   │   └── Rusanov.hpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Characteristics.cpp
│   │   │   │   ├── Characteristics.hpp
│   │   │   │   ├── ElectricCurrentDensity.cpp
│   │   │   │   ├── ElectricCurrentDensity.hpp
│   │   │   │   ├── ElectromagneticVariables.cpp
│   │   │   │   ├── ElectromagneticVariables.hpp
│   │   │   │   ├── FiniteDifference/
│   │   │   │   │   ├── AdaptiveOrder.cpp
│   │   │   │   │   ├── AdaptiveOrder.hpp
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── Factory.hpp
│   │   │   │   │   ├── FiniteDifference.hpp
│   │   │   │   │   ├── MonotonisedCentral.cpp
│   │   │   │   │   ├── MonotonisedCentral.hpp
│   │   │   │   │   ├── ReconstructWork.hpp
│   │   │   │   │   ├── ReconstructWork.tpp
│   │   │   │   │   ├── Reconstructor.cpp
│   │   │   │   │   ├── Reconstructor.hpp
│   │   │   │   │   ├── RegisterDerivedWithCharm.cpp
│   │   │   │   │   ├── RegisterDerivedWithCharm.hpp
│   │   │   │   │   ├── Tags.hpp
│   │   │   │   │   ├── Wcns5z.cpp
│   │   │   │   │   └── Wcns5z.hpp
│   │   │   │   ├── Fluxes.cpp
│   │   │   │   ├── Fluxes.hpp
│   │   │   │   ├── Imex/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   └── Imex.hpp
│   │   │   │   ├── Instantiations/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── Events.cpp
│   │   │   │   │   ├── TimeStepping.cpp
│   │   │   │   │   └── VolumeTerms.cpp
│   │   │   │   ├── MaskNeutronStarInterior.hpp
│   │   │   │   ├── Sources.cpp
│   │   │   │   ├── Sources.hpp
│   │   │   │   ├── Subcell/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── ComputeFluxes.hpp
│   │   │   │   │   ├── GhostData.cpp
│   │   │   │   │   ├── GhostData.hpp
│   │   │   │   │   ├── NeighborPackagedData.cpp
│   │   │   │   │   ├── NeighborPackagedData.hpp
│   │   │   │   │   ├── SetInitialRdmpData.cpp
│   │   │   │   │   ├── SetInitialRdmpData.hpp
│   │   │   │   │   ├── Subcell.hpp
│   │   │   │   │   ├── TciOnDgGrid.cpp
│   │   │   │   │   ├── TciOnDgGrid.hpp
│   │   │   │   │   ├── TciOnFdGrid.cpp
│   │   │   │   │   ├── TciOnFdGrid.hpp
│   │   │   │   │   ├── TciOptions.cpp
│   │   │   │   │   └── TciOptions.hpp
│   │   │   │   ├── System.hpp
│   │   │   │   ├── Tags.hpp
│   │   │   │   ├── TimeDerivativeTerms.cpp
│   │   │   │   └── TimeDerivativeTerms.hpp
│   │   │   ├── GeneralizedHarmonic/
│   │   │   │   ├── Actions/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── SetInitialData.cpp
│   │   │   │   │   └── SetInitialData.hpp
│   │   │   │   ├── ApplyTensorYlmFilter.cpp
│   │   │   │   ├── ApplyTensorYlmFilter.hpp
│   │   │   │   ├── Bbh/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── Callbacks/
│   │   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   │   └── UpdateCompletionCriteria.hpp
│   │   │   │   │   ├── CompletionCriteria.hpp
│   │   │   │   │   ├── CompletionSingleton.hpp
│   │   │   │   │   ├── Events/
│   │   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   │   ├── CheckConstraintThresholds.cpp
│   │   │   │   │   │   └── CheckConstraintThresholds.hpp
│   │   │   │   │   └── PhaseControl/
│   │   │   │   │       ├── CMakeLists.txt
│   │   │   │   │       ├── CheckpointAndExitIfComplete.cpp
│   │   │   │   │       └── CheckpointAndExitIfComplete.hpp
│   │   │   │   ├── BoundaryConditions/
│   │   │   │   │   ├── Bjorhus.cpp
│   │   │   │   │   ├── Bjorhus.hpp
│   │   │   │   │   ├── BjorhusImpl.cpp
│   │   │   │   │   ├── BjorhusImpl.hpp
│   │   │   │   │   ├── BoundaryCondition.cpp
│   │   │   │   │   ├── BoundaryCondition.hpp
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── DemandOutgoingCharSpeeds.cpp
│   │   │   │   │   ├── DemandOutgoingCharSpeeds.hpp
│   │   │   │   │   ├── DirichletAnalytic.cpp
│   │   │   │   │   ├── DirichletAnalytic.hpp
│   │   │   │   │   ├── DirichletMinkowski.cpp
│   │   │   │   │   ├── DirichletMinkowski.hpp
│   │   │   │   │   └── Factory.hpp
│   │   │   │   ├── BoundaryCorrections/
│   │   │   │   │   ├── AveragedUpwindPenalty.cpp
│   │   │   │   │   ├── AveragedUpwindPenalty.hpp
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── Factory.hpp
│   │   │   │   │   ├── NamespaceDocs.hpp
│   │   │   │   │   ├── UpwindPenalty.cpp
│   │   │   │   │   └── UpwindPenalty.hpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Characteristics.cpp
│   │   │   │   ├── Characteristics.hpp
│   │   │   │   ├── Constraints.cpp
│   │   │   │   ├── Constraints.hpp
│   │   │   │   ├── DuDtTempTags.hpp
│   │   │   │   ├── Equations.cpp
│   │   │   │   ├── Equations.hpp
│   │   │   │   ├── GaugeSourceFunctions/
│   │   │   │   │   ├── AnalyticChristoffel.cpp
│   │   │   │   │   ├── AnalyticChristoffel.hpp
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── DampedHarmonic.cpp
│   │   │   │   │   ├── DampedHarmonic.hpp
│   │   │   │   │   ├── DampedWaveHelpers.cpp
│   │   │   │   │   ├── DampedWaveHelpers.hpp
│   │   │   │   │   ├── DhGaugeParameters.cpp
│   │   │   │   │   ├── DhGaugeParameters.hpp
│   │   │   │   │   ├── Dispatch.cpp
│   │   │   │   │   ├── Dispatch.hpp
│   │   │   │   │   ├── Dispatch.tpp
│   │   │   │   │   ├── Factory.hpp
│   │   │   │   │   ├── Gauges.cpp
│   │   │   │   │   ├── Gauges.hpp
│   │   │   │   │   ├── HalfPiPhiTwoNormals.cpp
│   │   │   │   │   ├── HalfPiPhiTwoNormals.hpp
│   │   │   │   │   ├── Harmonic.cpp
│   │   │   │   │   ├── Harmonic.hpp
│   │   │   │   │   ├── RegisterDerived.cpp
│   │   │   │   │   ├── RegisterDerived.hpp
│   │   │   │   │   ├── SetPiAndPhiFromConstraints.cpp
│   │   │   │   │   ├── SetPiAndPhiFromConstraints.hpp
│   │   │   │   │   ├── SetPiAndPhiFromConstraints.tpp
│   │   │   │   │   └── Tags/
│   │   │   │   │       ├── CMakeLists.txt
│   │   │   │   │       ├── DhGaugeParameters.hpp
│   │   │   │   │       ├── GaugeCondition.cpp
│   │   │   │   │       ├── GaugeCondition.hpp
│   │   │   │   │       └── GaugeCondition.tpp
│   │   │   │   ├── Initialize.hpp
│   │   │   │   ├── Instantiations/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── Events.cpp
│   │   │   │   │   ├── TimeStepping.cpp
│   │   │   │   │   └── VolumeTerms.cpp
│   │   │   │   ├── System.hpp
│   │   │   │   ├── Tags.hpp
│   │   │   │   ├── TagsDeclarations.hpp
│   │   │   │   ├── TimeDerivative.cpp
│   │   │   │   ├── TimeDerivative.hpp
│   │   │   │   └── TimeDerivative.tpp
│   │   │   ├── GrMhd/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── GhValenciaDivClean/
│   │   │   │   │   ├── Actions/
│   │   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   │   ├── SetInitialData.cpp
│   │   │   │   │   │   └── SetInitialData.hpp
│   │   │   │   │   ├── AllSolutions.hpp
│   │   │   │   │   ├── BoundaryConditions/
│   │   │   │   │   │   ├── BoundaryCondition.cpp
│   │   │   │   │   │   ├── BoundaryCondition.hpp
│   │   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   │   ├── ConstraintPreservingFreeOutflow.cpp
│   │   │   │   │   │   ├── ConstraintPreservingFreeOutflow.hpp
│   │   │   │   │   │   ├── DirichletAnalytic.cpp
│   │   │   │   │   │   ├── DirichletAnalytic.hpp
│   │   │   │   │   │   ├── DirichletFreeOutflow.cpp
│   │   │   │   │   │   ├── DirichletFreeOutflow.hpp
│   │   │   │   │   │   └── Factory.hpp
│   │   │   │   │   ├── BoundaryCorrections/
│   │   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   │   ├── Factory.hpp
│   │   │   │   │   │   ├── NamespaceDocs.hpp
│   │   │   │   │   │   └── ProductOfCorrections.hpp
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── Characteristics.hpp
│   │   │   │   │   ├── Constraints.hpp
│   │   │   │   │   ├── FiniteDifference/
│   │   │   │   │   │   ├── BoundaryConditionGhostData.hpp
│   │   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   │   ├── Derivatives.cpp
│   │   │   │   │   │   ├── Derivatives.hpp
│   │   │   │   │   │   ├── Factory.hpp
│   │   │   │   │   │   ├── FillNeighborSpacetimeVariables.hpp
│   │   │   │   │   │   ├── FilterOptions.cpp
│   │   │   │   │   │   ├── FilterOptions.hpp
│   │   │   │   │   │   ├── Filters.cpp
│   │   │   │   │   │   ├── Filters.hpp
│   │   │   │   │   │   ├── FiniteDifference.hpp
│   │   │   │   │   │   ├── MonotonisedCentral.cpp
│   │   │   │   │   │   ├── MonotonisedCentral.hpp
│   │   │   │   │   │   ├── PositivityPreservingAdaptiveOrder.cpp
│   │   │   │   │   │   ├── PositivityPreservingAdaptiveOrder.hpp
│   │   │   │   │   │   ├── ReconstructWork.hpp
│   │   │   │   │   │   ├── ReconstructWork.tpp
│   │   │   │   │   │   ├── Reconstructor.cpp
│   │   │   │   │   │   ├── Reconstructor.hpp
│   │   │   │   │   │   ├── RegisterDerivedWithCharm.cpp
│   │   │   │   │   │   ├── RegisterDerivedWithCharm.hpp
│   │   │   │   │   │   ├── Tag.hpp
│   │   │   │   │   │   ├── Wcns5z.cpp
│   │   │   │   │   │   └── Wcns5z.hpp
│   │   │   │   │   ├── Instantiations/
│   │   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   │   ├── Events.cpp
│   │   │   │   │   │   ├── TimeStepping.cpp
│   │   │   │   │   │   └── VolumeTerms.cpp
│   │   │   │   │   ├── NeutrinoSystems.hpp
│   │   │   │   │   ├── SetPiAndPhiFromConstraints.hpp
│   │   │   │   │   ├── StressEnergy.cpp
│   │   │   │   │   ├── StressEnergy.hpp
│   │   │   │   │   ├── Subcell/
│   │   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   │   ├── FixConservativesAndComputePrims.cpp
│   │   │   │   │   │   ├── FixConservativesAndComputePrims.hpp
│   │   │   │   │   │   ├── NeighborPackagedData.cpp
│   │   │   │   │   │   ├── NeighborPackagedData.hpp
│   │   │   │   │   │   ├── PrimitiveGhostData.cpp
│   │   │   │   │   │   ├── PrimitiveGhostData.hpp
│   │   │   │   │   │   ├── PrimsAfterRollback.cpp
│   │   │   │   │   │   ├── PrimsAfterRollback.hpp
│   │   │   │   │   │   ├── ResizeAndComputePrimitives.cpp
│   │   │   │   │   │   ├── ResizeAndComputePrimitives.hpp
│   │   │   │   │   │   ├── Subcell.hpp
│   │   │   │   │   │   ├── TciOnDgGrid.hpp
│   │   │   │   │   │   ├── TciOnFdGrid.hpp
│   │   │   │   │   │   ├── TimeDerivative.hpp
│   │   │   │   │   │   └── ZeroTimeDerivatives.hpp
│   │   │   │   │   ├── System.hpp
│   │   │   │   │   ├── SystemM1.hpp
│   │   │   │   │   ├── Tags.hpp
│   │   │   │   │   ├── TimeDerivativeTerms.cpp
│   │   │   │   │   └── TimeDerivativeTerms.hpp
│   │   │   │   └── ValenciaDivClean/
│   │   │   │       ├── Actions/
│   │   │   │       │   ├── CMakeLists.txt
│   │   │   │       │   ├── NumericInitialData.cpp
│   │   │   │       │   └── NumericInitialData.hpp
│   │   │   │       ├── AllSolutions.hpp
│   │   │   │       ├── BoundaryConditions/
│   │   │   │       │   ├── BoundaryCondition.cpp
│   │   │   │       │   ├── BoundaryCondition.hpp
│   │   │   │       │   ├── CMakeLists.txt
│   │   │   │       │   ├── DemandOutgoingCharSpeeds.cpp
│   │   │   │       │   ├── DemandOutgoingCharSpeeds.hpp
│   │   │   │       │   ├── DirichletAnalytic.cpp
│   │   │   │       │   ├── DirichletAnalytic.hpp
│   │   │   │       │   ├── Factory.hpp
│   │   │   │       │   ├── HydroFreeOutflow.cpp
│   │   │   │       │   ├── HydroFreeOutflow.hpp
│   │   │   │       │   ├── Reflective.cpp
│   │   │   │       │   └── Reflective.hpp
│   │   │   │       ├── BoundaryCorrections/
│   │   │   │       │   ├── CMakeLists.txt
│   │   │   │       │   ├── Factory.hpp
│   │   │   │       │   ├── Hll.cpp
│   │   │   │       │   ├── Hll.hpp
│   │   │   │       │   ├── NamespaceDocs.hpp
│   │   │   │       │   ├── Rusanov.cpp
│   │   │   │       │   └── Rusanov.hpp
│   │   │   │       ├── CMakeLists.txt
│   │   │   │       ├── Characteristics.cpp
│   │   │   │       ├── Characteristics.hpp
│   │   │   │       ├── ComovingMagneticFieldMagnitude.cpp
│   │   │   │       ├── ComovingMagneticFieldMagnitude.hpp
│   │   │   │       ├── ComputeFluxesFromPrimitives.hpp
│   │   │   │       ├── ConservativeFromPrimitive.cpp
│   │   │   │       ├── ConservativeFromPrimitive.hpp
│   │   │   │       ├── FiniteDifference/
│   │   │   │       │   ├── BoundaryConditionGhostData.hpp
│   │   │   │       │   ├── CMakeLists.txt
│   │   │   │       │   ├── Factory.hpp
│   │   │   │       │   ├── FiniteDifference.hpp
│   │   │   │       │   ├── MonotonicityPreserving5.cpp
│   │   │   │       │   ├── MonotonicityPreserving5.hpp
│   │   │   │       │   ├── MonotonisedCentral.cpp
│   │   │   │       │   ├── MonotonisedCentral.hpp
│   │   │   │       │   ├── PositivityPreservingAdaptiveOrder.cpp
│   │   │   │       │   ├── PositivityPreservingAdaptiveOrder.hpp
│   │   │   │       │   ├── ReconstructWork.hpp
│   │   │   │       │   ├── ReconstructWork.tpp
│   │   │   │       │   ├── Reconstructor.cpp
│   │   │   │       │   ├── Reconstructor.hpp
│   │   │   │       │   ├── RegisterDerivedWithCharm.cpp
│   │   │   │       │   ├── RegisterDerivedWithCharm.hpp
│   │   │   │       │   ├── Tag.hpp
│   │   │   │       │   ├── Wcns5z.cpp
│   │   │   │       │   └── Wcns5z.hpp
│   │   │   │       ├── FixConservatives.cpp
│   │   │   │       ├── FixConservatives.hpp
│   │   │   │       ├── Flattener.cpp
│   │   │   │       ├── Flattener.hpp
│   │   │   │       ├── Fluxes.cpp
│   │   │   │       ├── Fluxes.hpp
│   │   │   │       ├── Instantiations/
│   │   │   │       │   ├── CMakeLists.txt
│   │   │   │       │   ├── Events.cpp
│   │   │   │       │   ├── TimeStepping.cpp
│   │   │   │       │   └── VolumeTerms.cpp
│   │   │   │       ├── KastaunEtAl.hpp
│   │   │   │       ├── KastaunEtAl.tpp
│   │   │   │       ├── KastaunEtAlHydro.hpp
│   │   │   │       ├── KastaunEtAlHydro.tpp
│   │   │   │       ├── NewmanHamlin.hpp
│   │   │   │       ├── NewmanHamlin.tpp
│   │   │   │       ├── PalenzuelaEtAl.hpp
│   │   │   │       ├── PalenzuelaEtAl.tpp
│   │   │   │       ├── PrimitiveFromConservative.cpp
│   │   │   │       ├── PrimitiveFromConservative.hpp
│   │   │   │       ├── PrimitiveFromConservativeOptions.cpp
│   │   │   │       ├── PrimitiveFromConservativeOptions.hpp
│   │   │   │       ├── PrimitiveRecoveryData.hpp
│   │   │   │       ├── QuadrupoleFormula.hpp
│   │   │   │       ├── SetVariablesNeededFixingToFalse.cpp
│   │   │   │       ├── SetVariablesNeededFixingToFalse.hpp
│   │   │   │       ├── Sources.cpp
│   │   │   │       ├── Sources.hpp
│   │   │   │       ├── Subcell/
│   │   │   │       │   ├── CMakeLists.txt
│   │   │   │       │   ├── ComputeFluxes.hpp
│   │   │   │       │   ├── FixConservativesAndComputePrims.cpp
│   │   │   │       │   ├── FixConservativesAndComputePrims.hpp
│   │   │   │       │   ├── NeighborPackagedData.cpp
│   │   │   │       │   ├── NeighborPackagedData.hpp
│   │   │   │       │   ├── PrimitiveGhostData.cpp
│   │   │   │       │   ├── PrimitiveGhostData.hpp
│   │   │   │       │   ├── PrimsAfterRollback.cpp
│   │   │   │       │   ├── PrimsAfterRollback.hpp
│   │   │   │       │   ├── ResizeAndComputePrimitives.cpp
│   │   │   │       │   ├── ResizeAndComputePrimitives.hpp
│   │   │   │       │   ├── SetInitialRdmpData.cpp
│   │   │   │       │   ├── SetInitialRdmpData.hpp
│   │   │   │       │   ├── Subcell.hpp
│   │   │   │       │   ├── SwapGrTags.cpp
│   │   │   │       │   ├── SwapGrTags.hpp
│   │   │   │       │   ├── TciOnDgGrid.cpp
│   │   │   │       │   ├── TciOnDgGrid.hpp
│   │   │   │       │   ├── TciOnFdGrid.cpp
│   │   │   │       │   ├── TciOnFdGrid.hpp
│   │   │   │       │   ├── TciOptions.cpp
│   │   │   │       │   ├── TciOptions.hpp
│   │   │   │       │   └── TimeDerivative.hpp
│   │   │   │       ├── System.hpp
│   │   │   │       ├── Tags.hpp
│   │   │   │       ├── TagsDeclarations.hpp
│   │   │   │       ├── TimeDerivativeTerms.cpp
│   │   │   │       └── TimeDerivativeTerms.hpp
│   │   │   ├── NewtonianEuler/
│   │   │   │   ├── AllSolutions.hpp
│   │   │   │   ├── BoundaryConditions/
│   │   │   │   │   ├── BoundaryCondition.cpp
│   │   │   │   │   ├── BoundaryCondition.hpp
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── DemandOutgoingCharSpeeds.cpp
│   │   │   │   │   ├── DemandOutgoingCharSpeeds.hpp
│   │   │   │   │   ├── DirichletAnalytic.cpp
│   │   │   │   │   ├── DirichletAnalytic.hpp
│   │   │   │   │   ├── Factory.hpp
│   │   │   │   │   ├── Reflection.cpp
│   │   │   │   │   └── Reflection.hpp
│   │   │   │   ├── BoundaryCorrections/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── Factory.hpp
│   │   │   │   │   ├── Hll.cpp
│   │   │   │   │   ├── Hll.hpp
│   │   │   │   │   ├── Hllc.cpp
│   │   │   │   │   ├── Hllc.hpp
│   │   │   │   │   ├── NamespaceDocs.hpp
│   │   │   │   │   ├── Rusanov.cpp
│   │   │   │   │   └── Rusanov.hpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Characteristics.cpp
│   │   │   │   ├── Characteristics.hpp
│   │   │   │   ├── ConservativeFromPrimitive.cpp
│   │   │   │   ├── ConservativeFromPrimitive.hpp
│   │   │   │   ├── FiniteDifference/
│   │   │   │   │   ├── AoWeno.cpp
│   │   │   │   │   ├── AoWeno.hpp
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── Factory.hpp
│   │   │   │   │   ├── FiniteDifference.hpp
│   │   │   │   │   ├── MonotonisedCentral.cpp
│   │   │   │   │   ├── MonotonisedCentral.hpp
│   │   │   │   │   ├── ReconstructWork.hpp
│   │   │   │   │   ├── ReconstructWork.tpp
│   │   │   │   │   ├── Reconstructor.cpp
│   │   │   │   │   ├── Reconstructor.hpp
│   │   │   │   │   ├── RegisterDerivedWithCharm.cpp
│   │   │   │   │   ├── RegisterDerivedWithCharm.hpp
│   │   │   │   │   └── Tag.hpp
│   │   │   │   ├── Fluxes.cpp
│   │   │   │   ├── Fluxes.hpp
│   │   │   │   ├── Instantiations/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── Events.cpp
│   │   │   │   │   └── TimeStepping.cpp
│   │   │   │   ├── InternalEnergyDensity.cpp
│   │   │   │   ├── InternalEnergyDensity.hpp
│   │   │   │   ├── KineticEnergyDensity.cpp
│   │   │   │   ├── KineticEnergyDensity.hpp
│   │   │   │   ├── Limiters/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── CharacteristicHelpers.cpp
│   │   │   │   │   ├── CharacteristicHelpers.hpp
│   │   │   │   │   ├── Flattener.cpp
│   │   │   │   │   ├── Flattener.hpp
│   │   │   │   │   ├── KxrcfTci.hpp
│   │   │   │   │   ├── Minmod.cpp
│   │   │   │   │   ├── Minmod.hpp
│   │   │   │   │   ├── VariablesToLimit.cpp
│   │   │   │   │   ├── VariablesToLimit.hpp
│   │   │   │   │   ├── Weno.cpp
│   │   │   │   │   └── Weno.hpp
│   │   │   │   ├── MachNumber.cpp
│   │   │   │   ├── MachNumber.hpp
│   │   │   │   ├── PrimitiveFromConservative.cpp
│   │   │   │   ├── PrimitiveFromConservative.hpp
│   │   │   │   ├── RamPressure.cpp
│   │   │   │   ├── RamPressure.hpp
│   │   │   │   ├── SoundSpeedSquared.cpp
│   │   │   │   ├── SoundSpeedSquared.hpp
│   │   │   │   ├── Sources/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── Factory.hpp
│   │   │   │   │   ├── LaneEmdenGravitationalField.cpp
│   │   │   │   │   ├── LaneEmdenGravitationalField.hpp
│   │   │   │   │   ├── NoSource.cpp
│   │   │   │   │   ├── NoSource.hpp
│   │   │   │   │   ├── Source.hpp
│   │   │   │   │   ├── UniformAcceleration.cpp
│   │   │   │   │   ├── UniformAcceleration.hpp
│   │   │   │   │   ├── VortexPerturbation.cpp
│   │   │   │   │   └── VortexPerturbation.hpp
│   │   │   │   ├── SpecificKineticEnergy.cpp
│   │   │   │   ├── SpecificKineticEnergy.hpp
│   │   │   │   ├── Subcell/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── ComputeFluxes.hpp
│   │   │   │   │   ├── NeighborPackagedData.cpp
│   │   │   │   │   ├── NeighborPackagedData.hpp
│   │   │   │   │   ├── PrimitiveGhostData.cpp
│   │   │   │   │   ├── PrimitiveGhostData.hpp
│   │   │   │   │   ├── PrimsAfterRollback.cpp
│   │   │   │   │   ├── PrimsAfterRollback.hpp
│   │   │   │   │   ├── ResizeAndComputePrimitives.cpp
│   │   │   │   │   ├── ResizeAndComputePrimitives.hpp
│   │   │   │   │   ├── SetInitialRdmpData.cpp
│   │   │   │   │   ├── SetInitialRdmpData.hpp
│   │   │   │   │   ├── Subcell.hpp
│   │   │   │   │   ├── TciOnDgGrid.cpp
│   │   │   │   │   ├── TciOnDgGrid.hpp
│   │   │   │   │   ├── TciOnFdGrid.cpp
│   │   │   │   │   ├── TciOnFdGrid.hpp
│   │   │   │   │   └── TimeDerivative.hpp
│   │   │   │   ├── System.hpp
│   │   │   │   ├── Tags.hpp
│   │   │   │   ├── TagsDeclarations.hpp
│   │   │   │   └── TimeDerivativeTerms.hpp
│   │   │   ├── RadiationTransport/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── M1Grey/
│   │   │   │   │   ├── BoundaryConditions/
│   │   │   │   │   │   ├── BoundaryCondition.hpp
│   │   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   │   ├── DirichletAnalytic.cpp
│   │   │   │   │   │   ├── DirichletAnalytic.hpp
│   │   │   │   │   │   └── Factory.hpp
│   │   │   │   │   ├── BoundaryCorrections/
│   │   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   │   ├── Factory.hpp
│   │   │   │   │   │   ├── NamespaceDocs.hpp
│   │   │   │   │   │   ├── Rusanov.cpp
│   │   │   │   │   │   └── Rusanov.hpp
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── Characteristics.cpp
│   │   │   │   │   ├── Characteristics.hpp
│   │   │   │   │   ├── Fluxes.cpp
│   │   │   │   │   ├── Fluxes.hpp
│   │   │   │   │   ├── Initialize.hpp
│   │   │   │   │   ├── Instantiations/
│   │   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   │   ├── Events.cpp
│   │   │   │   │   │   ├── Imex.cpp
│   │   │   │   │   │   └── TimeStepping.cpp
│   │   │   │   │   ├── M1Closure.cpp
│   │   │   │   │   ├── M1Closure.hpp
│   │   │   │   │   ├── M1HydroCoupling.cpp
│   │   │   │   │   ├── M1HydroCoupling.hpp
│   │   │   │   │   ├── Sources.cpp
│   │   │   │   │   ├── Sources.hpp
│   │   │   │   │   ├── System.hpp
│   │   │   │   │   ├── Tags.hpp
│   │   │   │   │   └── TimeDerivativeTerms.hpp
│   │   │   │   ├── NoNeutrinos/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   └── System.hpp
│   │   │   │   └── Tags.hpp
│   │   │   ├── ScalarAdvection/
│   │   │   │   ├── BoundaryConditions/
│   │   │   │   │   ├── BoundaryCondition.cpp
│   │   │   │   │   ├── BoundaryCondition.hpp
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   └── Factory.hpp
│   │   │   │   ├── BoundaryCorrections/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── Factory.hpp
│   │   │   │   │   ├── NamespaceDocs.hpp
│   │   │   │   │   ├── Rusanov.cpp
│   │   │   │   │   └── Rusanov.hpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Characteristics.cpp
│   │   │   │   ├── Characteristics.hpp
│   │   │   │   ├── FiniteDifference/
│   │   │   │   │   ├── AoWeno.cpp
│   │   │   │   │   ├── AoWeno.hpp
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── Factory.hpp
│   │   │   │   │   ├── FiniteDifference.hpp
│   │   │   │   │   ├── MonotonisedCentral.cpp
│   │   │   │   │   ├── MonotonisedCentral.hpp
│   │   │   │   │   ├── ReconstructWork.hpp
│   │   │   │   │   ├── ReconstructWork.tpp
│   │   │   │   │   ├── Reconstructor.cpp
│   │   │   │   │   ├── Reconstructor.hpp
│   │   │   │   │   ├── RegisterDerivedWithCharm.cpp
│   │   │   │   │   ├── RegisterDerivedWithCharm.hpp
│   │   │   │   │   └── Tags.hpp
│   │   │   │   ├── Fluxes.cpp
│   │   │   │   ├── Fluxes.hpp
│   │   │   │   ├── Instantiations/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── Events.cpp
│   │   │   │   │   ├── TimeStepping.cpp
│   │   │   │   │   └── VolumeTerms.cpp
│   │   │   │   ├── Subcell/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── ComputeFluxes.hpp
│   │   │   │   │   ├── GhostData.cpp
│   │   │   │   │   ├── GhostData.hpp
│   │   │   │   │   ├── NeighborPackagedData.cpp
│   │   │   │   │   ├── NeighborPackagedData.hpp
│   │   │   │   │   ├── SetInitialRdmpData.cpp
│   │   │   │   │   ├── SetInitialRdmpData.hpp
│   │   │   │   │   ├── Subcell.hpp
│   │   │   │   │   ├── TciOnDgGrid.cpp
│   │   │   │   │   ├── TciOnDgGrid.hpp
│   │   │   │   │   ├── TciOnFdGrid.cpp
│   │   │   │   │   ├── TciOnFdGrid.hpp
│   │   │   │   │   ├── TciOptions.cpp
│   │   │   │   │   ├── TciOptions.hpp
│   │   │   │   │   ├── TimeDerivative.hpp
│   │   │   │   │   └── VelocityAtFace.hpp
│   │   │   │   ├── System.hpp
│   │   │   │   ├── Tags.hpp
│   │   │   │   ├── TimeDerivativeTerms.cpp
│   │   │   │   ├── TimeDerivativeTerms.hpp
│   │   │   │   ├── VelocityField.cpp
│   │   │   │   └── VelocityField.hpp
│   │   │   ├── ScalarTensor/
│   │   │   │   ├── Actions/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── SetInitialData.cpp
│   │   │   │   │   └── SetInitialData.hpp
│   │   │   │   ├── BoundaryConditions/
│   │   │   │   │   ├── BoundaryCondition.cpp
│   │   │   │   │   ├── BoundaryCondition.hpp
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── ConstraintPreserving.cpp
│   │   │   │   │   ├── ConstraintPreserving.hpp
│   │   │   │   │   ├── DemandOutgoingCharSpeeds.cpp
│   │   │   │   │   ├── DemandOutgoingCharSpeeds.hpp
│   │   │   │   │   ├── DirichletAnalytic.cpp
│   │   │   │   │   ├── DirichletAnalytic.hpp
│   │   │   │   │   └── Factory.hpp
│   │   │   │   ├── BoundaryCorrections/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── Factory.hpp
│   │   │   │   │   ├── NamespaceDocs.hpp
│   │   │   │   │   └── ProductOfCorrections.hpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Characteristics.hpp
│   │   │   │   ├── Constraints.hpp
│   │   │   │   ├── Initialize.hpp
│   │   │   │   ├── Instantiations/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── Events.cpp
│   │   │   │   │   ├── TimeStepping.cpp
│   │   │   │   │   └── VolumeTerms.cpp
│   │   │   │   ├── System.hpp
│   │   │   │   ├── Tags.hpp
│   │   │   │   ├── TimeDerivative.cpp
│   │   │   │   └── TimeDerivative.hpp
│   │   │   └── ScalarWave/
│   │   │       ├── BoundaryConditions/
│   │   │       │   ├── BoundaryCondition.cpp
│   │   │       │   ├── BoundaryCondition.hpp
│   │   │       │   ├── CMakeLists.txt
│   │   │       │   ├── ConstraintPreservingSphericalRadiation.cpp
│   │   │       │   ├── ConstraintPreservingSphericalRadiation.hpp
│   │   │       │   ├── DirichletAnalytic.cpp
│   │   │       │   ├── DirichletAnalytic.hpp
│   │   │       │   ├── Factory.hpp
│   │   │       │   ├── SphericalRadiation.cpp
│   │   │       │   └── SphericalRadiation.hpp
│   │   │       ├── BoundaryCorrections/
│   │   │       │   ├── CMakeLists.txt
│   │   │       │   ├── Factory.hpp
│   │   │       │   ├── NamespaceDocs.hpp
│   │   │       │   ├── UpwindPenalty.cpp
│   │   │       │   └── UpwindPenalty.hpp
│   │   │       ├── CMakeLists.txt
│   │   │       ├── Characteristics.cpp
│   │   │       ├── Characteristics.hpp
│   │   │       ├── Constraints.cpp
│   │   │       ├── Constraints.hpp
│   │   │       ├── EnergyDensity.cpp
│   │   │       ├── EnergyDensity.hpp
│   │   │       ├── Equations.cpp
│   │   │       ├── Equations.hpp
│   │   │       ├── Initialize.hpp
│   │   │       ├── Instantiations/
│   │   │       │   ├── CMakeLists.txt
│   │   │       │   ├── Events.cpp
│   │   │       │   ├── TimeStepping.cpp
│   │   │       │   └── VolumeTerms.cpp
│   │   │       ├── MomentumDensity.cpp
│   │   │       ├── MomentumDensity.hpp
│   │   │       ├── System.hpp
│   │   │       ├── Tags.hpp
│   │   │       ├── TagsDeclarations.hpp
│   │   │       ├── TimeDerivative.cpp
│   │   │       └── TimeDerivative.hpp
│   │   ├── Tags/
│   │   │   ├── CMakeLists.txt
│   │   │   └── Filter.hpp
│   │   ├── Tags.hpp
│   │   ├── TagsDomain.cpp
│   │   ├── TagsDomain.hpp
│   │   ├── Triggers/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── SeparationLessThan.cpp
│   │   │   └── SeparationLessThan.hpp
│   │   ├── TypeTraits.hpp
│   │   └── VariableFixing/
│   │       ├── Actions.hpp
│   │       ├── CMakeLists.txt
│   │       ├── FixToAtmosphere.cpp
│   │       ├── FixToAtmosphere.hpp
│   │       ├── LimitLorentzFactor.cpp
│   │       ├── LimitLorentzFactor.hpp
│   │       ├── ParameterizedDeleptonization.cpp
│   │       ├── ParameterizedDeleptonization.hpp
│   │       ├── RadiallyFallingFloor.cpp
│   │       ├── RadiallyFallingFloor.hpp
│   │       └── Tags.hpp
│   ├── Executables/
│   │   ├── Benchmark/
│   │   │   ├── Benchmark.cpp
│   │   │   └── CMakeLists.txt
│   │   ├── CMakeLists.txt
│   │   ├── ConvertComposeTable/
│   │   │   ├── CMakeLists.txt
│   │   │   └── ConvertComposeTable.cpp
│   │   ├── DebugPreprocessor/
│   │   │   ├── CMakeLists.txt
│   │   │   └── DebugPreprocessor.cpp
│   │   ├── Examples/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── HelloWorld/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   └── SingletonHelloWorld.cpp
│   │   │   ├── HelloWorldNoCharm/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   └── HelloWorld.cpp
│   │   │   ├── ParallelTutorial/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   └── MinimalExecutable.cpp
│   │   │   ├── PiMonteCarlo/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── PiMonteCarlo.cpp
│   │   │   │   └── PiMonteCarloTutorial.cpp
│   │   │   └── RandomAmr/
│   │   │       ├── CMakeLists.txt
│   │   │       ├── InitializeDomain.hpp
│   │   │       ├── RandomAmr.cpp
│   │   │       └── RandomAmr.hpp
│   │   ├── ExportCoordinates/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── ExportCoordinates.cpp
│   │   │   └── ExportCoordinates.hpp
│   │   ├── ExportEquationOfStateForRotNS/
│   │   │   ├── CMakeLists.txt
│   │   │   └── ExportEquationOfStateForRotNS.cpp
│   │   ├── ParallelInfo/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── ParallelInfo.ci
│   │   │   ├── ParallelInfo.cpp
│   │   │   └── ParallelInfo.hpp
│   │   ├── PreprocessCceWorldtube/
│   │   │   ├── CMakeLists.txt
│   │   │   └── PreprocessCceWorldtube.cpp
│   │   ├── TimeStepperSummary/
│   │   │   ├── CMakeLists.txt
│   │   │   └── TimeStepperSummary.cpp
│   │   └── WriteCceWorldtubeCoordsToFile/
│   │       ├── CMakeLists.txt
│   │       └── WriteCceWorldtubeCoordsToFile.cpp
│   ├── IO/
│   │   ├── CMakeLists.txt
│   │   ├── ComposeTable.cpp
│   │   ├── ComposeTable.hpp
│   │   ├── Connectivity.cpp
│   │   ├── Connectivity.hpp
│   │   ├── Exporter/
│   │   │   ├── BundledExporter.cpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Exporter.cpp
│   │   │   ├── Exporter.hpp
│   │   │   ├── PointwiseInterpolator.cpp
│   │   │   ├── PointwiseInterpolator.hpp
│   │   │   ├── Python/
│   │   │   │   ├── Bindings.cpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── InterpolateToPoints.py
│   │   │   │   └── __init__.py
│   │   │   ├── SelectObservation.cpp
│   │   │   ├── SelectObservation.hpp
│   │   │   ├── SpacetimeInterpolator.cpp
│   │   │   └── SpacetimeInterpolator.hpp
│   │   ├── External/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── InterpolateFromFuka.cpp
│   │   │   ├── InterpolateFromFuka.hpp
│   │   │   └── InterpolateFromSpec.hpp
│   │   ├── H5/
│   │   │   ├── AccessType.cpp
│   │   │   ├── AccessType.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Cce.cpp
│   │   │   ├── Cce.hpp
│   │   │   ├── CheckH5.hpp
│   │   │   ├── CheckH5PropertiesMatch.cpp
│   │   │   ├── CheckH5PropertiesMatch.hpp
│   │   │   ├── CombineH5.cpp
│   │   │   ├── CombineH5.hpp
│   │   │   ├── Dat.cpp
│   │   │   ├── Dat.hpp
│   │   │   ├── EosTable.cpp
│   │   │   ├── EosTable.hpp
│   │   │   ├── ExtendConnectivityHelpers.cpp
│   │   │   ├── ExtendConnectivityHelpers.hpp
│   │   │   ├── File.cpp
│   │   │   ├── File.hpp
│   │   │   ├── Header.cpp
│   │   │   ├── Header.hpp
│   │   │   ├── Helpers.cpp
│   │   │   ├── Helpers.hpp
│   │   │   ├── Object.hpp
│   │   │   ├── OpenGroup.cpp
│   │   │   ├── OpenGroup.hpp
│   │   │   ├── Python/
│   │   │   │   ├── Bindings.cpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Cce.cpp
│   │   │   │   ├── Cce.hpp
│   │   │   │   ├── CombineH5.cpp
│   │   │   │   ├── CombineH5.hpp
│   │   │   │   ├── CombineH5.py
│   │   │   │   ├── CombineH5Dat.py
│   │   │   │   ├── Dat.cpp
│   │   │   │   ├── Dat.hpp
│   │   │   │   ├── DeleteSubfiles.py
│   │   │   │   ├── ExtendConnectivityData.py
│   │   │   │   ├── ExtractDatFromH5.py
│   │   │   │   ├── ExtractInputSourceYamlFromH5.py
│   │   │   │   ├── File.cpp
│   │   │   │   ├── File.hpp
│   │   │   │   ├── FunctionsOfTimeFromVolume.py
│   │   │   │   ├── InterpolateToMesh.py
│   │   │   │   ├── IterElements.py
│   │   │   │   ├── OpenVolfiles.py
│   │   │   │   ├── ReadH5.py
│   │   │   │   ├── TensorData.cpp
│   │   │   │   ├── TensorData.hpp
│   │   │   │   ├── TransformVolumeData.py
│   │   │   │   ├── VolumeData.cpp
│   │   │   │   ├── VolumeData.hpp
│   │   │   │   └── __init__.py
│   │   │   ├── SourceArchive.cpp
│   │   │   ├── SourceArchive.hpp
│   │   │   ├── SpectralIo.cpp
│   │   │   ├── SpectralIo.hpp
│   │   │   ├── StellarCollapseEos.cpp
│   │   │   ├── StellarCollapseEos.hpp
│   │   │   ├── TensorData.cpp
│   │   │   ├── TensorData.hpp
│   │   │   ├── Type.hpp
│   │   │   ├── Version.cpp
│   │   │   ├── Version.hpp
│   │   │   ├── VolumeData.cpp
│   │   │   ├── VolumeData.hpp
│   │   │   └── Wrappers.hpp
│   │   ├── Importers/
│   │   │   ├── Actions/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── ReadVolumeData.hpp
│   │   │   │   ├── ReceiveVolumeData.hpp
│   │   │   │   └── RegisterWithElementDataReader.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── ElementDataReader.hpp
│   │   │   ├── ObservationSelector.cpp
│   │   │   ├── ObservationSelector.hpp
│   │   │   └── Tags.hpp
│   │   ├── Logging/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Tags.hpp
│   │   │   ├── Verbosity.cpp
│   │   │   └── Verbosity.hpp
│   │   └── Observer/
│   │       ├── Actions/
│   │       │   ├── CMakeLists.txt
│   │       │   ├── GetLockPointer.hpp
│   │       │   ├── ObserverRegistration.hpp
│   │       │   ├── RegisterEvents.hpp
│   │       │   ├── RegisterSingleton.hpp
│   │       │   └── RegisterWithObservers.hpp
│   │       ├── CMakeLists.txt
│   │       ├── GetSectionObservationKey.hpp
│   │       ├── Helpers.hpp
│   │       ├── Initialize.hpp
│   │       ├── ObservationId.cpp
│   │       ├── ObservationId.hpp
│   │       ├── ObserverComponent.hpp
│   │       ├── Protocols/
│   │       │   ├── CMakeLists.txt
│   │       │   └── ReductionDataFormatter.hpp
│   │       ├── ReductionActions.cpp
│   │       ├── ReductionActions.hpp
│   │       ├── Tags.hpp
│   │       ├── TypeOfObservation.cpp
│   │       ├── TypeOfObservation.hpp
│   │       ├── VolumeActions.cpp
│   │       ├── VolumeActions.hpp
│   │       └── WriteSimpleData.hpp
│   ├── Informer/
│   │   ├── CMakeLists.txt
│   │   ├── InfoAtCompile.cpp
│   │   ├── InfoAtLink.cpp
│   │   ├── InfoAtLinkExtractFlags.py
│   │   ├── InfoFromBuild.hpp
│   │   ├── Informer.cpp
│   │   ├── Informer.hpp
│   │   └── Python/
│   │       ├── Bindings.cpp
│   │       ├── CMakeLists.txt
│   │       ├── InfoAtCompile.cpp
│   │       ├── InfoAtCompile.hpp
│   │       └── __init__.py
│   ├── NumericalAlgorithms/
│   │   ├── CMakeLists.txt
│   │   ├── Convergence/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Convergence.hpp
│   │   │   ├── Criteria.cpp
│   │   │   ├── Criteria.hpp
│   │   │   ├── HasConverged.cpp
│   │   │   ├── HasConverged.hpp
│   │   │   ├── Reason.cpp
│   │   │   ├── Reason.hpp
│   │   │   └── Tags.hpp
│   │   ├── DiscontinuousGalerkin/
│   │   │   ├── ApplyMassMatrix.cpp
│   │   │   ├── ApplyMassMatrix.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Formulation.cpp
│   │   │   ├── Formulation.hpp
│   │   │   ├── HasReceivedFromAllMortars.hpp
│   │   │   ├── InterpolateFromBoundary.cpp
│   │   │   ├── InterpolateFromBoundary.hpp
│   │   │   ├── LiftFlux.hpp
│   │   │   ├── LiftFromBoundary.cpp
│   │   │   ├── LiftFromBoundary.hpp
│   │   │   ├── MetricIdentityJacobian.cpp
│   │   │   ├── MetricIdentityJacobian.hpp
│   │   │   ├── MortarHelpers.cpp
│   │   │   ├── MortarHelpers.hpp
│   │   │   ├── MortarInterpolator.cpp
│   │   │   ├── MortarInterpolator.hpp
│   │   │   ├── NormalDotFlux.hpp
│   │   │   ├── ProjectToBoundary.hpp
│   │   │   ├── SimpleBoundaryData.hpp
│   │   │   ├── SimpleMortarData.hpp
│   │   │   ├── Tags/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Formulation.cpp
│   │   │   │   ├── Formulation.hpp
│   │   │   │   └── OptionsGroup.hpp
│   │   │   └── Tags.hpp
│   │   ├── FiniteDifference/
│   │   │   ├── AoWeno.cpp
│   │   │   ├── AoWeno.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── DerivativeOrder.cpp
│   │   │   ├── DerivativeOrder.hpp
│   │   │   ├── FallbackReconstructorType.cpp
│   │   │   ├── FallbackReconstructorType.hpp
│   │   │   ├── Filter.cpp
│   │   │   ├── Filter.hpp
│   │   │   ├── FiniteDifference.hpp
│   │   │   ├── HighOrderFluxCorrection.hpp
│   │   │   ├── Minmod.cpp
│   │   │   ├── Minmod.hpp
│   │   │   ├── MonotonicityPreserving5.cpp
│   │   │   ├── MonotonicityPreserving5.hpp
│   │   │   ├── MonotonisedCentral.cpp
│   │   │   ├── MonotonisedCentral.hpp
│   │   │   ├── NeighborDataAsVariables.hpp
│   │   │   ├── NonUniform1D.cpp
│   │   │   ├── NonUniform1D.hpp
│   │   │   ├── PartialDerivatives.cpp
│   │   │   ├── PartialDerivatives.hpp
│   │   │   ├── PartialDerivatives.tpp
│   │   │   ├── PositivityPreservingAdaptiveOrder.cpp
│   │   │   ├── PositivityPreservingAdaptiveOrder.hpp
│   │   │   ├── Reconstruct.hpp
│   │   │   ├── Reconstruct.tpp
│   │   │   ├── SecondPartialDerivatives.cpp
│   │   │   ├── SecondPartialDerivatives.hpp
│   │   │   ├── SecondPartialDerivatives.tpp
│   │   │   ├── Unlimited.cpp
│   │   │   ├── Unlimited.hpp
│   │   │   ├── Wcns5z.cpp
│   │   │   └── Wcns5z.hpp
│   │   ├── Integration/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── GslQuadAdaptive.cpp
│   │   │   └── GslQuadAdaptive.hpp
│   │   ├── Interpolation/
│   │   │   ├── BarycentricRational.cpp
│   │   │   ├── BarycentricRational.hpp
│   │   │   ├── BarycentricRationalSpanInterpolator.cpp
│   │   │   ├── BarycentricRationalSpanInterpolator.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── CardinalInterpolator.cpp
│   │   │   ├── CardinalInterpolator.hpp
│   │   │   ├── CubicSpanInterpolator.cpp
│   │   │   ├── CubicSpanInterpolator.hpp
│   │   │   ├── CubicSpline.cpp
│   │   │   ├── CubicSpline.hpp
│   │   │   ├── IrregularInterpolant.cpp
│   │   │   ├── IrregularInterpolant.hpp
│   │   │   ├── LagrangePolynomial.hpp
│   │   │   ├── LinearLeastSquares.cpp
│   │   │   ├── LinearLeastSquares.hpp
│   │   │   ├── LinearRegression.cpp
│   │   │   ├── LinearRegression.hpp
│   │   │   ├── LinearSpanInterpolator.cpp
│   │   │   ├── LinearSpanInterpolator.hpp
│   │   │   ├── MultiLinearSpanInterpolation.hpp
│   │   │   ├── PolynomialInterpolation.cpp
│   │   │   ├── PolynomialInterpolation.hpp
│   │   │   ├── PredictedZeroCrossing.cpp
│   │   │   ├── PredictedZeroCrossing.hpp
│   │   │   ├── Python/
│   │   │   │   ├── BarycentricRational.cpp
│   │   │   │   ├── BarycentricRational.hpp
│   │   │   │   ├── Bindings.cpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── CubicSpline.cpp
│   │   │   │   ├── CubicSpline.hpp
│   │   │   │   ├── IrregularInterpolant.cpp
│   │   │   │   ├── IrregularInterpolant.hpp
│   │   │   │   ├── RegularGridInterpolant.cpp
│   │   │   │   ├── RegularGridInterpolant.hpp
│   │   │   │   └── __init__.py
│   │   │   ├── RegularGridInterpolant.cpp
│   │   │   ├── RegularGridInterpolant.hpp
│   │   │   ├── SpanInterpolator.cpp
│   │   │   ├── SpanInterpolator.hpp
│   │   │   ├── ZeroCrossingPredictor.cpp
│   │   │   └── ZeroCrossingPredictor.hpp
│   │   ├── LinearAlgebra/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── FindGeneralizedEigenvalues.cpp
│   │   │   └── FindGeneralizedEigenvalues.hpp
│   │   ├── LinearOperators/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── CoefficientTransforms.cpp
│   │   │   ├── CoefficientTransforms.hpp
│   │   │   ├── DefiniteIntegral.cpp
│   │   │   ├── DefiniteIntegral.hpp
│   │   │   ├── Divergence.cpp
│   │   │   ├── Divergence.hpp
│   │   │   ├── Divergence.tpp
│   │   │   ├── ExponentialFilter.cpp
│   │   │   ├── ExponentialFilter.hpp
│   │   │   ├── IndefiniteIntegral.cpp
│   │   │   ├── IndefiniteIntegral.hpp
│   │   │   ├── Linearize.cpp
│   │   │   ├── Linearize.hpp
│   │   │   ├── MeanValue.cpp
│   │   │   ├── MeanValue.hpp
│   │   │   ├── PartialDerivatives.cpp
│   │   │   ├── PartialDerivatives.hpp
│   │   │   ├── PartialDerivatives.tpp
│   │   │   ├── PowerMonitors.cpp
│   │   │   ├── PowerMonitors.hpp
│   │   │   ├── Python/
│   │   │   │   ├── Bindings.cpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── DefiniteIntegral.cpp
│   │   │   │   ├── DefiniteIntegral.hpp
│   │   │   │   ├── PartialDerivatives.cpp
│   │   │   │   ├── PartialDerivatives.hpp
│   │   │   │   ├── PowerMonitors.cpp
│   │   │   │   ├── PowerMonitors.hpp
│   │   │   │   └── __init__.py
│   │   │   ├── WeakDivergence.cpp
│   │   │   └── WeakDivergence.hpp
│   │   ├── LinearSolver/
│   │   │   ├── BuildMatrix.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── ExplicitInverse.hpp
│   │   │   ├── Gmres.cpp
│   │   │   ├── Gmres.hpp
│   │   │   ├── InnerProduct.hpp
│   │   │   ├── Lapack.cpp
│   │   │   ├── Lapack.hpp
│   │   │   └── LinearSolver.hpp
│   │   ├── OdeIntegration/
│   │   │   ├── CMakeLists.txt
│   │   │   └── OdeIntegration.hpp
│   │   ├── RootFinding/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── GslMultiRoot.cpp
│   │   │   ├── GslMultiRoot.hpp
│   │   │   ├── LICENSE_1_0.txt
│   │   │   ├── NewtonRaphson.hpp
│   │   │   ├── QuadraticEquation.cpp
│   │   │   ├── QuadraticEquation.hpp
│   │   │   ├── RootBracketing.hpp
│   │   │   └── TOMS748.hpp
│   │   ├── SpatialDiscretization/
│   │   │   ├── CMakeLists.txt
│   │   │   └── OptionTags.hpp
│   │   ├── Spectral/
│   │   │   ├── BarycentricWeights.cpp
│   │   │   ├── BarycentricWeights.hpp
│   │   │   ├── Basis.cpp
│   │   │   ├── Basis.hpp
│   │   │   ├── BasisFunctionNormalizationSquare.hpp
│   │   │   ├── BasisFunctionValue.hpp
│   │   │   ├── BasisFunctions/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Chebyshev.cpp
│   │   │   │   ├── Chebyshev.hpp
│   │   │   │   ├── Fourier.cpp
│   │   │   │   ├── Fourier.hpp
│   │   │   │   ├── Jacobi.cpp
│   │   │   │   ├── Jacobi.hpp
│   │   │   │   ├── Legendre.cpp
│   │   │   │   ├── Zernike.cpp
│   │   │   │   └── Zernike.hpp
│   │   │   ├── BoundaryInterpolationMatrices.cpp
│   │   │   ├── BoundaryInterpolationMatrices.hpp
│   │   │   ├── BoundaryInterpolationTerm.cpp
│   │   │   ├── BoundaryInterpolationTerm.hpp
│   │   │   ├── BoundaryLiftingTerm.cpp
│   │   │   ├── BoundaryLiftingTerm.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Cartoon.cpp
│   │   │   ├── Clenshaw.hpp
│   │   │   ├── CollocationPoints.cpp
│   │   │   ├── CollocationPoints.hpp
│   │   │   ├── CollocationPointsAndWeights.cpp
│   │   │   ├── CollocationPointsAndWeights.hpp
│   │   │   ├── DifferentiationMatrix.cpp
│   │   │   ├── DifferentiationMatrix.hpp
│   │   │   ├── Filtering.cpp
│   │   │   ├── Filtering.hpp
│   │   │   ├── FiniteDifference.cpp
│   │   │   ├── GetSpectralQuantityForMesh.hpp
│   │   │   ├── IntegrationMatrix.cpp
│   │   │   ├── IntegrationMatrix.hpp
│   │   │   ├── InterpolationMatrix.cpp
│   │   │   ├── InterpolationMatrix.hpp
│   │   │   ├── InterpolationWeights.cpp
│   │   │   ├── InterpolationWeights.hpp
│   │   │   ├── InverseWeightFunctionValues.hpp
│   │   │   ├── Legendre.hpp
│   │   │   ├── LinearFilteringMatrix.cpp
│   │   │   ├── LinearFilteringMatrix.hpp
│   │   │   ├── LogicalCoordinates.cpp
│   │   │   ├── LogicalCoordinates.hpp
│   │   │   ├── MaximumNumberOfPoints.hpp
│   │   │   ├── Mesh.cpp
│   │   │   ├── Mesh.hpp
│   │   │   ├── MinimumNumberOfPoints.hpp
│   │   │   ├── ModalToNodalMatrix.cpp
│   │   │   ├── ModalToNodalMatrix.hpp
│   │   │   ├── Namespace.hpp
│   │   │   ├── NodalToModalMatrix.cpp
│   │   │   ├── NodalToModalMatrix.hpp
│   │   │   ├── Parity.cpp
│   │   │   ├── Parity.hpp
│   │   │   ├── ParityFromSymmetry.hpp
│   │   │   ├── PrecomputedSpectralQuantity.hpp
│   │   │   ├── Projection.cpp
│   │   │   ├── Projection.hpp
│   │   │   ├── Python/
│   │   │   │   ├── Bindings.cpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── LogicalCoordinates.cpp
│   │   │   │   ├── LogicalCoordinates.hpp
│   │   │   │   ├── Mesh.cpp
│   │   │   │   ├── Mesh.hpp
│   │   │   │   ├── Spectral.cpp
│   │   │   │   ├── Spectral.hpp
│   │   │   │   └── __init__.py
│   │   │   ├── Quadrature.cpp
│   │   │   ├── Quadrature.hpp
│   │   │   ├── QuadratureWeights.cpp
│   │   │   ├── QuadratureWeights.hpp
│   │   │   ├── SegmentSize.cpp
│   │   │   ├── SegmentSize.hpp
│   │   │   └── SpectralQuantityForMesh.hpp
│   │   ├── SphericalHarmonics/
│   │   │   ├── AngularOrdering.cpp
│   │   │   ├── AngularOrdering.hpp
│   │   │   ├── ApplyTensorYlmFilter.hpp
│   │   │   ├── ApplyTensorYlmFilter.tpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── ChangeCenterOfStrahlkorper.cpp
│   │   │   ├── ChangeCenterOfStrahlkorper.hpp
│   │   │   ├── IO/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── FillYlmLegendAndData.cpp
│   │   │   │   ├── FillYlmLegendAndData.hpp
│   │   │   │   ├── ReadSurfaceYlm.cpp
│   │   │   │   ├── ReadSurfaceYlm.hpp
│   │   │   │   ├── StrahlkorperCoordsToTextFile.cpp
│   │   │   │   ├── StrahlkorperCoordsToTextFile.hpp
│   │   │   │   └── StrahlkorperFromFile.cpp
│   │   │   ├── Python/
│   │   │   │   ├── Bindings.cpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Spherepack.cpp
│   │   │   │   ├── Spherepack.hpp
│   │   │   │   ├── Strahlkorper.cpp
│   │   │   │   ├── Strahlkorper.hpp
│   │   │   │   ├── StrahlkorperFunctions.cpp
│   │   │   │   ├── StrahlkorperFunctions.hpp
│   │   │   │   └── __init__.py
│   │   │   ├── RealSphericalHarmonics.cpp
│   │   │   ├── RealSphericalHarmonics.hpp
│   │   │   ├── Spherepack.cpp
│   │   │   ├── Spherepack.hpp
│   │   │   ├── SpherepackCache.cpp
│   │   │   ├── SpherepackCache.hpp
│   │   │   ├── SpherepackHelper.cpp
│   │   │   ├── SpherepackHelper.hpp
│   │   │   ├── SpherepackIterator.cpp
│   │   │   ├── SpherepackIterator.hpp
│   │   │   ├── Strahlkorper.cpp
│   │   │   ├── Strahlkorper.hpp
│   │   │   ├── StrahlkorperFunctions.cpp
│   │   │   ├── StrahlkorperFunctions.hpp
│   │   │   ├── Tags.cpp
│   │   │   ├── Tags.hpp
│   │   │   ├── TagsDeclarations.hpp
│   │   │   ├── TagsTypeAliases.hpp
│   │   │   ├── TensorYlm.hpp
│   │   │   ├── TensorYlmCartToSphere.cpp
│   │   │   ├── TensorYlmCartToSphere.hpp
│   │   │   ├── TensorYlmFilter.cpp
│   │   │   ├── TensorYlmFilter.hpp
│   │   │   ├── TensorYlmHelpers.cpp
│   │   │   ├── TensorYlmHelpers.hpp
│   │   │   ├── TensorYlmSphereToCart.cpp
│   │   │   ├── TensorYlmSphereToCart.hpp
│   │   │   ├── WignerThreeJ.cpp
│   │   │   ├── WignerThreeJ.hpp
│   │   │   ├── YlmToStf.cpp
│   │   │   └── YlmToStf.hpp
│   │   └── SpinWeightedSphericalHarmonics/
│   │       ├── CMakeLists.txt
│   │       ├── ComplexDataView.cpp
│   │       ├── ComplexDataView.hpp
│   │       ├── SwshCoefficients.cpp
│   │       ├── SwshCoefficients.hpp
│   │       ├── SwshCollocation.cpp
│   │       ├── SwshCollocation.hpp
│   │       ├── SwshDerivatives.cpp
│   │       ├── SwshDerivatives.hpp
│   │       ├── SwshFiltering.cpp
│   │       ├── SwshFiltering.hpp
│   │       ├── SwshInterpolation.cpp
│   │       ├── SwshInterpolation.hpp
│   │       ├── SwshSettings.hpp
│   │       ├── SwshTags.cpp
│   │       ├── SwshTags.hpp
│   │       ├── SwshTransform.cpp
│   │       └── SwshTransform.hpp
│   ├── Options/
│   │   ├── Auto.hpp
│   │   ├── CMakeLists.txt
│   │   ├── Comparator.cpp
│   │   ├── Comparator.hpp
│   │   ├── Context.cpp
│   │   ├── Context.hpp
│   │   ├── Factory.hpp
│   │   ├── FactoryHelpers.hpp
│   │   ├── Options.hpp
│   │   ├── OptionsDetails.hpp
│   │   ├── ParseError.hpp
│   │   ├── ParseOptions.cpp
│   │   ├── ParseOptions.hpp
│   │   ├── Protocols/
│   │   │   ├── CMakeLists.txt
│   │   │   └── FactoryCreation.hpp
│   │   ├── StdComplex.hpp
│   │   ├── String.hpp
│   │   └── Tags.hpp
│   ├── Parallel/
│   │   ├── AlgorithmExecution.hpp
│   │   ├── AlgorithmMetafunctions.hpp
│   │   ├── Algorithms/
│   │   │   ├── AlgorithmArray.ci
│   │   │   ├── AlgorithmArray.hpp
│   │   │   ├── AlgorithmArrayDeclarations.hpp
│   │   │   ├── AlgorithmGroup.ci
│   │   │   ├── AlgorithmGroup.hpp
│   │   │   ├── AlgorithmGroupDeclarations.hpp
│   │   │   ├── AlgorithmNodegroup.ci
│   │   │   ├── AlgorithmNodegroup.hpp
│   │   │   ├── AlgorithmNodegroupDeclarations.hpp
│   │   │   ├── AlgorithmSingleton.ci
│   │   │   ├── AlgorithmSingleton.hpp
│   │   │   ├── AlgorithmSingletonDeclarations.hpp
│   │   │   └── CMakeLists.txt
│   │   ├── ArrayCollection/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── CreateElementCollection.hpp
│   │   │   ├── CreateElementsUsingDistribution.hpp
│   │   │   ├── DgElementArrayMember.hpp
│   │   │   ├── DgElementArrayMemberBase.cpp
│   │   │   ├── DgElementArrayMemberBase.hpp
│   │   │   ├── DgElementCollection.hpp
│   │   │   ├── IsDgElementArrayMember.hpp
│   │   │   ├── IsDgElementCollection.hpp
│   │   │   ├── PerformAlgorithmOnElement.hpp
│   │   │   ├── ReceiveDataForElement.hpp
│   │   │   ├── SendDataToElement.hpp
│   │   │   ├── SetTerminateOnElement.hpp
│   │   │   ├── SimpleActionOnElement.hpp
│   │   │   ├── SpawnInitializeElementsInCollection.hpp
│   │   │   ├── StartPhaseOnNodegroup.hpp
│   │   │   ├── Tags/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── ElementCollection.hpp
│   │   │   │   ├── ElementLocations.hpp
│   │   │   │   ├── ElementLocationsReference.hpp
│   │   │   │   └── NumberOfElementsTerminated.hpp
│   │   │   └── TransformPdalForNodegroup.hpp
│   │   ├── ArrayComponentId.cpp
│   │   ├── ArrayComponentId.hpp
│   │   ├── ArrayIndex.hpp
│   │   ├── CMakeLists.txt
│   │   ├── Callback.hpp
│   │   ├── CharmMain.tpp
│   │   ├── CharmRegistration.cpp
│   │   ├── CharmRegistration.hpp
│   │   ├── CreateFromOptions.hpp
│   │   ├── DistributedObject.hpp
│   │   ├── DomainDiagnosticInfo.hpp
│   │   ├── ElementRegistration.hpp
│   │   ├── ExitCode.cpp
│   │   ├── ExitCode.hpp
│   │   ├── FifoCache.hpp
│   │   ├── GetSection.hpp
│   │   ├── GlobalCache.ci
│   │   ├── GlobalCache.hpp
│   │   ├── GlobalCacheDeclare.hpp
│   │   ├── InboxInserters.hpp
│   │   ├── Info.hpp
│   │   ├── InitializationFunctions.cpp
│   │   ├── InitializationFunctions.hpp
│   │   ├── InitializationTag.hpp
│   │   ├── Invoke.hpp
│   │   ├── Local.hpp
│   │   ├── Main.ci
│   │   ├── Main.cpp
│   │   ├── Main.hpp
│   │   ├── MaxInlineMethodsReached.hpp
│   │   ├── MemoryMonitor/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── MemoryMonitor.hpp
│   │   │   └── Tags.hpp
│   │   ├── MultiReaderSpinlock.hpp
│   │   ├── NodeLock.cpp
│   │   ├── NodeLock.hpp
│   │   ├── OutputInbox.hpp
│   │   ├── ParallelComponentHelpers.hpp
│   │   ├── Phase.cpp
│   │   ├── Phase.hpp
│   │   ├── PhaseControl/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── CheckpointAndExitAfterWallclock.cpp
│   │   │   ├── CheckpointAndExitAfterWallclock.hpp
│   │   │   ├── ContributeToPhaseChangeReduction.hpp
│   │   │   ├── ExecutePhaseChange.hpp
│   │   │   ├── Factory.hpp
│   │   │   ├── InitializePhaseChangeDecisionData.hpp
│   │   │   ├── PhaseChange.hpp
│   │   │   ├── PhaseControlTags.cpp
│   │   │   ├── PhaseControlTags.hpp
│   │   │   └── VisitAndReturn.hpp
│   │   ├── PhaseControlReductionHelpers.hpp
│   │   ├── PhaseDependentActionList.hpp
│   │   ├── Printf/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Printf.ci
│   │   │   ├── Printf.cpp
│   │   │   └── Printf.hpp
│   │   ├── Protocols/
│   │   │   ├── ArrayElementsAllocator.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── ElementRegistrar.hpp
│   │   │   └── RegistrationMetavariables.hpp
│   │   ├── Reduction.cpp
│   │   ├── Reduction.hpp
│   │   ├── ReductionDeclare.hpp
│   │   ├── ResourceInfo.hpp
│   │   ├── Section.hpp
│   │   ├── Spinlock.hpp
│   │   ├── StaticSpscQueue.hpp
│   │   ├── Tags/
│   │   │   ├── ArrayIndex.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── DistributedObjectTags.hpp
│   │   │   ├── InputSource.hpp
│   │   │   ├── Parallelization.hpp
│   │   │   ├── ResourceInfo.hpp
│   │   │   └── Section.hpp
│   │   └── TypeTraits.hpp
│   ├── ParallelAlgorithms/
│   │   ├── Actions/
│   │   │   ├── Actions.hpp
│   │   │   ├── AddComputeTags.hpp
│   │   │   ├── AddSimpleTags.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── FilterAction.hpp
│   │   │   ├── FunctionsOfTimeAreReady.hpp
│   │   │   ├── GetItemFromDistributedObject.hpp
│   │   │   ├── Goto.hpp
│   │   │   ├── InitializeItems.hpp
│   │   │   ├── LimiterActions.hpp
│   │   │   ├── MemoryMonitor/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── ContributeMemoryData.hpp
│   │   │   │   ├── ProcessArray.hpp
│   │   │   │   ├── ProcessGroups.hpp
│   │   │   │   └── ProcessSingleton.hpp
│   │   │   ├── MutateApply.hpp
│   │   │   ├── RandomizeVariables.hpp
│   │   │   ├── SetData.hpp
│   │   │   ├── TerminatePhase.hpp
│   │   │   └── UpdateMessageQueue.hpp
│   │   ├── Amr/
│   │   │   ├── Actions/
│   │   │   │   ├── Actions.hpp
│   │   │   │   ├── AdjustDomain.hpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── CollectDataFromChildren.hpp
│   │   │   │   ├── Component.hpp
│   │   │   │   ├── CreateChild.hpp
│   │   │   │   ├── CreateParent.hpp
│   │   │   │   ├── ElementsRegistration.hpp
│   │   │   │   ├── EvaluateRefinementCriteria.hpp
│   │   │   │   ├── Initialization.hpp
│   │   │   │   ├── Initialize.hpp
│   │   │   │   ├── InitializeChild.hpp
│   │   │   │   ├── InitializeParent.hpp
│   │   │   │   ├── RegisterCallbacks.hpp
│   │   │   │   ├── RunAmrDiagnostics.hpp
│   │   │   │   ├── SendAmrDiagnostics.hpp
│   │   │   │   ├── SendDataToChildren.hpp
│   │   │   │   └── UpdateAmrDecision.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Criteria/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Constraints.cpp
│   │   │   │   ├── Constraints.hpp
│   │   │   │   ├── Criteria.hpp
│   │   │   │   ├── Criterion.hpp
│   │   │   │   ├── DriveToTarget.cpp
│   │   │   │   ├── DriveToTarget.hpp
│   │   │   │   ├── Factory.hpp
│   │   │   │   ├── IncreaseResolution.cpp
│   │   │   │   ├── IncreaseResolution.hpp
│   │   │   │   ├── Loehner.cpp
│   │   │   │   ├── Loehner.hpp
│   │   │   │   ├── Persson.cpp
│   │   │   │   ├── Persson.hpp
│   │   │   │   ├── Random.cpp
│   │   │   │   ├── Random.hpp
│   │   │   │   ├── Tags/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── Criteria.hpp
│   │   │   │   │   └── Tags.hpp
│   │   │   │   ├── TruncationError.cpp
│   │   │   │   ├── TruncationError.hpp
│   │   │   │   ├── Type.cpp
│   │   │   │   └── Type.hpp
│   │   │   ├── Events/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Events.hpp
│   │   │   │   ├── ObserveAmrCriteria.hpp
│   │   │   │   ├── ObserveAmrStats.cpp
│   │   │   │   ├── ObserveAmrStats.hpp
│   │   │   │   ├── RefineMesh.cpp
│   │   │   │   └── RefineMesh.hpp
│   │   │   ├── Policies/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── EnforcePolicies.cpp
│   │   │   │   ├── EnforcePolicies.hpp
│   │   │   │   ├── Isotropy.cpp
│   │   │   │   ├── Isotropy.hpp
│   │   │   │   ├── Limits.cpp
│   │   │   │   ├── Limits.hpp
│   │   │   │   ├── Policies.cpp
│   │   │   │   ├── Policies.hpp
│   │   │   │   └── Tags.hpp
│   │   │   ├── Projectors/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── CopyFromCreatorOrLeaveAsIs.hpp
│   │   │   │   ├── DefaultInitialize.hpp
│   │   │   │   ├── Mesh.cpp
│   │   │   │   ├── Mesh.hpp
│   │   │   │   ├── NamespaceDocs.hpp
│   │   │   │   ├── Tensors.hpp
│   │   │   │   └── Variables.hpp
│   │   │   ├── Protocols/
│   │   │   │   ├── AmrMetavariables.hpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── NamespaceDocs.hpp
│   │   │   │   └── Projector.hpp
│   │   │   ├── Tags.cpp
│   │   │   └── Tags.hpp
│   │   ├── ApparentHorizonFinder/
│   │   │   ├── ApparentHorizon.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Callbacks/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Callbacks.hpp
│   │   │   │   ├── FailedHorizonFind.hpp
│   │   │   │   ├── InvokeCallbacks.hpp
│   │   │   │   ├── ObserveCenters.hpp
│   │   │   │   ├── ObserveFieldsOnHorizon.hpp
│   │   │   │   ├── ObserveTimeSeriesOnHorizon.hpp
│   │   │   │   └── SendDependencyToObserverWriter.hpp
│   │   │   ├── CleanUp.cpp
│   │   │   ├── CleanUp.hpp
│   │   │   ├── Component.hpp
│   │   │   ├── ComputeCoords.cpp
│   │   │   ├── ComputeCoords.hpp
│   │   │   ├── ComputeVarsToInterpolateToTarget.cpp
│   │   │   ├── ComputeVarsToInterpolateToTarget.hpp
│   │   │   ├── Criteria/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Criteria.hpp
│   │   │   │   ├── Criterion.hpp
│   │   │   │   ├── Factory.hpp
│   │   │   │   ├── IncreaseResolution.cpp
│   │   │   │   ├── IncreaseResolution.hpp
│   │   │   │   ├── Residual.cpp
│   │   │   │   ├── Residual.hpp
│   │   │   │   ├── Shape.cpp
│   │   │   │   ├── Shape.hpp
│   │   │   │   └── Tags/
│   │   │   │       ├── CMakeLists.txt
│   │   │   │       ├── Criteria.hpp
│   │   │   │       └── Tags.hpp
│   │   │   ├── CurrentTime.cpp
│   │   │   ├── CurrentTime.hpp
│   │   │   ├── Destination.cpp
│   │   │   ├── Destination.hpp
│   │   │   ├── Events/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── FindApparentHorizon.hpp
│   │   │   │   └── FindCommonHorizon.hpp
│   │   │   ├── FastFlow.cpp
│   │   │   ├── FastFlow.hpp
│   │   │   ├── FindApparentHorizon.hpp
│   │   │   ├── HorizonAliases.hpp
│   │   │   ├── Initialization.hpp
│   │   │   ├── InterpolateVolumeVars.cpp
│   │   │   ├── InterpolateVolumeVars.hpp
│   │   │   ├── OptionTags.cpp
│   │   │   ├── OptionTags.hpp
│   │   │   ├── PrintDeadlockAnalysis.hpp
│   │   │   ├── Protocols/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Callback.hpp
│   │   │   │   └── HorizonMetavars.hpp
│   │   │   ├── Python/
│   │   │   │   ├── Bindings.cpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   └── __init__.py
│   │   │   ├── Storage.cpp
│   │   │   ├── Storage.hpp
│   │   │   └── Tags.hpp
│   │   ├── CMakeLists.txt
│   │   ├── Events/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Completion.cpp
│   │   │   ├── Completion.hpp
│   │   │   ├── ErrorIfDataTooBig.hpp
│   │   │   ├── Factory.hpp
│   │   │   ├── MonitorMemory.hpp
│   │   │   ├── ObserveAdaptiveSteppingDiagnostics.cpp
│   │   │   ├── ObserveAdaptiveSteppingDiagnostics.hpp
│   │   │   ├── ObserveAtExtremum.hpp
│   │   │   ├── ObserveConstantsPerElement.cpp
│   │   │   ├── ObserveConstantsPerElement.hpp
│   │   │   ├── ObserveDataBox.cpp
│   │   │   ├── ObserveDataBox.hpp
│   │   │   ├── ObserveFields.hpp
│   │   │   ├── ObserveNorms.cpp
│   │   │   ├── ObserveNorms.hpp
│   │   │   ├── ObserveTimeStep.cpp
│   │   │   ├── ObserveTimeStep.hpp
│   │   │   ├── ObserveTimeStep.tpp
│   │   │   ├── ObserveTimeStepVolume.hpp
│   │   │   ├── ObserveTimeStepVolume.tpp
│   │   │   └── Tags.hpp
│   │   ├── EventsAndDenseTriggers/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── DenseTrigger.hpp
│   │   │   ├── DenseTriggers/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Factory.hpp
│   │   │   │   ├── Filter.cpp
│   │   │   │   ├── Filter.hpp
│   │   │   │   ├── Or.cpp
│   │   │   │   ├── Or.hpp
│   │   │   │   ├── Times.cpp
│   │   │   │   └── Times.hpp
│   │   │   ├── EventsAndDenseTriggers.cpp
│   │   │   ├── EventsAndDenseTriggers.hpp
│   │   │   └── Tags.hpp
│   │   ├── EventsAndTriggers/
│   │   │   ├── Actions/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   └── RunEventsOnFailure.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Event.hpp
│   │   │   ├── EventsAndTriggers.cpp
│   │   │   ├── EventsAndTriggers.hpp
│   │   │   ├── LogicalTriggers.cpp
│   │   │   ├── LogicalTriggers.hpp
│   │   │   ├── Tags.hpp
│   │   │   ├── Trigger.hpp
│   │   │   ├── WhenToCheck.cpp
│   │   │   └── WhenToCheck.hpp
│   │   ├── Initialization/
│   │   │   ├── CMakeLists.txt
│   │   │   └── MutateAssign.hpp
│   │   ├── Interpolation/
│   │   │   ├── Actions/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── ElementInitInterpPoints.hpp
│   │   │   │   ├── ElementReceiveInterpPoints.hpp
│   │   │   │   ├── InitializeInterpolationTarget.hpp
│   │   │   │   ├── InterpolationTargetSendPoints.hpp
│   │   │   │   ├── InterpolationTargetVarsFromElement.hpp
│   │   │   │   └── PrintInterpolationTargetForDeadlock.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Callbacks/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Callbacks.hpp
│   │   │   │   ├── ObserveLineSegment.hpp
│   │   │   │   ├── ObserveSurfaceData.hpp
│   │   │   │   └── ObserveTimeSeriesOnSurface.hpp
│   │   │   ├── ComputeExcisionBoundaryVolumeQuantities.hpp
│   │   │   ├── ComputeExcisionBoundaryVolumeQuantities.tpp
│   │   │   ├── Events/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── GetComputeItemsOnSource.hpp
│   │   │   │   └── InterpolateWithoutInterpComponent.hpp
│   │   │   ├── InterpolationTarget.hpp
│   │   │   ├── InterpolationTargetDetail.hpp
│   │   │   ├── Intrp.hpp
│   │   │   ├── IntrpOptionHolders.hpp
│   │   │   ├── PointInfoTag.hpp
│   │   │   ├── Protocols/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── ComputeTargetPoints.hpp
│   │   │   │   ├── ComputeVarsToInterpolate.hpp
│   │   │   │   ├── InterpolationTargetTag.hpp
│   │   │   │   ├── PostInterpolationCallback.hpp
│   │   │   │   └── ProtocolsNamespace.hpp
│   │   │   ├── Tags.hpp
│   │   │   ├── TagsMetafunctions.hpp
│   │   │   └── Targets/
│   │   │       ├── CMakeLists.txt
│   │   │       ├── KerrHorizon.cpp
│   │   │       ├── KerrHorizon.hpp
│   │   │       ├── LineSegment.cpp
│   │   │       ├── LineSegment.hpp
│   │   │       ├── SpecifiedPoints.cpp
│   │   │       ├── SpecifiedPoints.hpp
│   │   │       ├── Sphere.cpp
│   │   │       ├── Sphere.hpp
│   │   │       ├── WedgeSectionTorus.cpp
│   │   │       └── WedgeSectionTorus.hpp
│   │   ├── LinearSolver/
│   │   │   ├── Actions/
│   │   │   │   ├── BuildMatrix.cpp
│   │   │   │   ├── BuildMatrix.hpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   └── MakeIdentityIfSkipped.hpp
│   │   │   ├── AsynchronousSolvers/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   └── ElementActions.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── ConjugateGradient/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── ConjugateGradient.hpp
│   │   │   │   ├── ElementActions.hpp
│   │   │   │   ├── InitializeElement.hpp
│   │   │   │   ├── ResidualMonitor.hpp
│   │   │   │   ├── ResidualMonitorActions.hpp
│   │   │   │   └── Tags/
│   │   │   │       ├── CMakeLists.txt
│   │   │   │       └── InboxTags.hpp
│   │   │   ├── Gmres/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── ElementActions.hpp
│   │   │   │   ├── Gmres.hpp
│   │   │   │   ├── InitializeElement.hpp
│   │   │   │   ├── ResidualMonitor.hpp
│   │   │   │   ├── ResidualMonitorActions.hpp
│   │   │   │   └── Tags/
│   │   │   │       ├── CMakeLists.txt
│   │   │   │       └── InboxTags.hpp
│   │   │   ├── Multigrid/
│   │   │   │   ├── Actions/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   └── RestrictFields.hpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── ElementActions.hpp
│   │   │   │   ├── ElementsAllocator.hpp
│   │   │   │   ├── Hierarchy.cpp
│   │   │   │   ├── Hierarchy.hpp
│   │   │   │   ├── Multigrid.hpp
│   │   │   │   ├── ObserveVolumeData.hpp
│   │   │   │   └── Tags.hpp
│   │   │   ├── Observe.hpp
│   │   │   ├── Richardson/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Richardson.hpp
│   │   │   │   └── Tags.hpp
│   │   │   ├── Schwarz/
│   │   │   │   ├── Actions/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── CommunicateOverlapFields.hpp
│   │   │   │   │   └── ResetSubdomainSolver.hpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── ComputeTags.hpp
│   │   │   │   ├── ElementActions.hpp
│   │   │   │   ├── ElementCenteredSubdomainData.hpp
│   │   │   │   ├── ObserveVolumeData.hpp
│   │   │   │   ├── OverlapHelpers.cpp
│   │   │   │   ├── OverlapHelpers.hpp
│   │   │   │   ├── Schwarz.hpp
│   │   │   │   ├── SubdomainOperator.hpp
│   │   │   │   ├── Tags.hpp
│   │   │   │   ├── Weighting.cpp
│   │   │   │   └── Weighting.hpp
│   │   │   └── Tags.hpp
│   │   ├── NonlinearSolver/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── NewtonRaphson/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── ElementActions.hpp
│   │   │   │   ├── LineSearch.cpp
│   │   │   │   ├── LineSearch.hpp
│   │   │   │   ├── NewtonRaphson.hpp
│   │   │   │   ├── ResidualMonitor.hpp
│   │   │   │   ├── ResidualMonitorActions.hpp
│   │   │   │   └── Tags/
│   │   │   │       ├── CMakeLists.txt
│   │   │   │       └── InboxTags.hpp
│   │   │   ├── Observe.hpp
│   │   │   └── Tags.hpp
│   │   ├── RayTracer/
│   │   │   ├── BackgroundSpacetimes/
│   │   │   │   ├── BackgroundSpacetime.hpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Factory.hpp
│   │   │   │   ├── NumericData.cpp
│   │   │   │   ├── NumericData.hpp
│   │   │   │   └── WrappedGr.hpp
│   │   │   └── CMakeLists.txt
│   │   └── SurfaceFinder/
│   │       ├── CMakeLists.txt
│   │       ├── Python/
│   │       │   ├── Bindings.cpp
│   │       │   ├── CMakeLists.txt
│   │       │   ├── FindRadialSurface.py
│   │       │   └── __init__.py
│   │       ├── SurfaceFinder.cpp
│   │       └── SurfaceFinder.hpp
│   ├── PointwiseFunctions/
│   │   ├── AnalyticData/
│   │   │   ├── AnalyticData.hpp
│   │   │   ├── Burgers/
│   │   │   │   ├── AnalyticData.hpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Factory.hpp
│   │   │   │   ├── Sinusoid.cpp
│   │   │   │   └── Sinusoid.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── CurvedWaveEquation/
│   │   │   │   ├── AnalyticData.hpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── PureSphericalHarmonic.cpp
│   │   │   │   └── PureSphericalHarmonic.hpp
│   │   │   ├── ForceFree/
│   │   │   │   ├── AnalyticData.hpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Factory.hpp
│   │   │   │   ├── FfeBreakdown.cpp
│   │   │   │   ├── FfeBreakdown.hpp
│   │   │   │   ├── MagnetosphericWald.cpp
│   │   │   │   ├── MagnetosphericWald.hpp
│   │   │   │   ├── RotatingDipole.cpp
│   │   │   │   └── RotatingDipole.hpp
│   │   │   ├── GeneralRelativity/
│   │   │   │   ├── AnalyticData.hpp
│   │   │   │   ├── BrillLindquist.cpp
│   │   │   │   ├── BrillLindquist.hpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── SpecInitialData.cpp
│   │   │   │   └── SpecInitialData.hpp
│   │   │   ├── GhGrMhd/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Factory.hpp
│   │   │   │   └── InstantiateWrappedGr.cpp
│   │   │   ├── GhScalarTensor/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Factory.hpp
│   │   │   │   └── InstantiateWrappedGr.cpp
│   │   │   ├── GrMhd/
│   │   │   │   ├── AnalyticData.hpp
│   │   │   │   ├── BlastWave.cpp
│   │   │   │   ├── BlastWave.hpp
│   │   │   │   ├── BondiHoyleAccretion.cpp
│   │   │   │   ├── BondiHoyleAccretion.hpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── CcsnCollapse.cpp
│   │   │   │   ├── CcsnCollapse.hpp
│   │   │   │   ├── FukaInitialData.cpp
│   │   │   │   ├── FukaInitialData.hpp
│   │   │   │   ├── InitialMagneticFields/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── Factory.hpp
│   │   │   │   │   ├── InitialMagneticField.hpp
│   │   │   │   │   ├── Poloidal.cpp
│   │   │   │   │   ├── Poloidal.hpp
│   │   │   │   │   ├── Toroidal.cpp
│   │   │   │   │   └── Toroidal.hpp
│   │   │   │   ├── KhInstability.cpp
│   │   │   │   ├── KhInstability.hpp
│   │   │   │   ├── MagneticFieldLoop.cpp
│   │   │   │   ├── MagneticFieldLoop.hpp
│   │   │   │   ├── MagneticRotor.cpp
│   │   │   │   ├── MagneticRotor.hpp
│   │   │   │   ├── MagnetizedFmDisk.cpp
│   │   │   │   ├── MagnetizedFmDisk.hpp
│   │   │   │   ├── MagnetizedTovStar.cpp
│   │   │   │   ├── MagnetizedTovStar.hpp
│   │   │   │   ├── OrszagTangVortex.cpp
│   │   │   │   ├── OrszagTangVortex.hpp
│   │   │   │   ├── PolarMagnetizedFmDisk.cpp
│   │   │   │   ├── PolarMagnetizedFmDisk.hpp
│   │   │   │   ├── RiemannProblem.cpp
│   │   │   │   ├── RiemannProblem.hpp
│   │   │   │   ├── SlabJet.cpp
│   │   │   │   ├── SlabJet.hpp
│   │   │   │   ├── SpecInitialData.cpp
│   │   │   │   ├── SpecInitialData.hpp
│   │   │   │   ├── SphericalTorus.cpp
│   │   │   │   └── SphericalTorus.hpp
│   │   │   ├── NewtonianEuler/
│   │   │   │   ├── AnalyticData.hpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── KhInstability.cpp
│   │   │   │   ├── KhInstability.hpp
│   │   │   │   ├── ShuOsherTube.cpp
│   │   │   │   ├── ShuOsherTube.hpp
│   │   │   │   ├── SodExplosion.cpp
│   │   │   │   └── SodExplosion.hpp
│   │   │   ├── Punctures/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── MultiplePunctures.cpp
│   │   │   │   └── MultiplePunctures.hpp
│   │   │   ├── RadiationTransport/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   └── M1Grey/
│   │   │   │       ├── AnalyticData.hpp
│   │   │   │       ├── CMakeLists.txt
│   │   │   │       ├── Factory.hpp
│   │   │   │       ├── HomogeneousSphere.cpp
│   │   │   │       └── HomogeneousSphere.hpp
│   │   │   ├── ScalarTensor/
│   │   │   │   ├── AnalyticData.hpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── KerrSphericalHarmonic.cpp
│   │   │   │   └── KerrSphericalHarmonic.hpp
│   │   │   ├── Tags.hpp
│   │   │   └── Xcts/
│   │   │       ├── AnalyticData.hpp
│   │   │       ├── Binary.cpp
│   │   │       ├── Binary.hpp
│   │   │       ├── CMakeLists.txt
│   │   │       ├── CommonVariables.hpp
│   │   │       └── CommonVariables.tpp
│   │   ├── AnalyticSolutions/
│   │   │   ├── AnalyticSolution.hpp
│   │   │   ├── Burgers/
│   │   │   │   ├── Bump.cpp
│   │   │   │   ├── Bump.hpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Factory.hpp
│   │   │   │   ├── Linear.cpp
│   │   │   │   ├── Linear.hpp
│   │   │   │   ├── Solutions.hpp
│   │   │   │   ├── Step.cpp
│   │   │   │   └── Step.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Elasticity/
│   │   │   │   ├── BentBeam.cpp
│   │   │   │   ├── BentBeam.hpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Factory.hpp
│   │   │   │   ├── HalfSpaceMirror.cpp
│   │   │   │   ├── HalfSpaceMirror.hpp
│   │   │   │   └── Zero.hpp
│   │   │   ├── ForceFree/
│   │   │   │   ├── AlfvenWave.cpp
│   │   │   │   ├── AlfvenWave.hpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── ExactWald.cpp
│   │   │   │   ├── ExactWald.hpp
│   │   │   │   ├── Factory.hpp
│   │   │   │   ├── FastWave.cpp
│   │   │   │   ├── FastWave.hpp
│   │   │   │   └── Solutions.hpp
│   │   │   ├── GeneralRelativity/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Factory.hpp
│   │   │   │   ├── GaugePlaneWave.cpp
│   │   │   │   ├── GaugePlaneWave.hpp
│   │   │   │   ├── GaugeWave.cpp
│   │   │   │   ├── GaugeWave.hpp
│   │   │   │   ├── HarmonicSchwarzschild.cpp
│   │   │   │   ├── HarmonicSchwarzschild.hpp
│   │   │   │   ├── KerrSchild.cpp
│   │   │   │   ├── KerrSchild.hpp
│   │   │   │   ├── Minkowski.cpp
│   │   │   │   ├── Minkowski.hpp
│   │   │   │   ├── Python/
│   │   │   │   │   ├── Bindings.cpp
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   └── __init__.py
│   │   │   │   ├── Solutions.hpp
│   │   │   │   ├── SphericalKerrSchild.cpp
│   │   │   │   ├── SphericalKerrSchild.hpp
│   │   │   │   ├── TeukolskyWave.cpp
│   │   │   │   ├── TeukolskyWave.hpp
│   │   │   │   ├── TrumpetSchwarzschild.cpp
│   │   │   │   ├── TrumpetSchwarzschild.hpp
│   │   │   │   ├── WrappedGr.cpp
│   │   │   │   ├── WrappedGr.hpp
│   │   │   │   └── WrappedGr.tpp
│   │   │   ├── GhGrMhd/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Factory.hpp
│   │   │   │   └── InstantiateWrappedGr.cpp
│   │   │   ├── GhRelativisticEuler/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Factory.hpp
│   │   │   │   └── InstantiateWrappedGr.cpp
│   │   │   ├── GrMhd/
│   │   │   │   ├── AlfvenWave.cpp
│   │   │   │   ├── AlfvenWave.hpp
│   │   │   │   ├── BondiMichel.cpp
│   │   │   │   ├── BondiMichel.hpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── KomissarovShock.cpp
│   │   │   │   ├── KomissarovShock.hpp
│   │   │   │   ├── SmoothFlow.cpp
│   │   │   │   ├── SmoothFlow.hpp
│   │   │   │   └── Solutions.hpp
│   │   │   ├── Hydro/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── SmoothFlow.cpp
│   │   │   │   ├── SmoothFlow.hpp
│   │   │   │   └── Solutions.hpp
│   │   │   ├── NewtonianEuler/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── IsentropicVortex.cpp
│   │   │   │   ├── IsentropicVortex.hpp
│   │   │   │   ├── LaneEmdenStar.cpp
│   │   │   │   ├── LaneEmdenStar.hpp
│   │   │   │   ├── RiemannProblem.cpp
│   │   │   │   ├── RiemannProblem.hpp
│   │   │   │   ├── SmoothFlow.cpp
│   │   │   │   ├── SmoothFlow.hpp
│   │   │   │   └── Solutions.hpp
│   │   │   ├── Poisson/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Factory.hpp
│   │   │   │   ├── Lorentzian.cpp
│   │   │   │   ├── Lorentzian.hpp
│   │   │   │   ├── MathFunction.cpp
│   │   │   │   ├── MathFunction.hpp
│   │   │   │   ├── Moustache.cpp
│   │   │   │   ├── Moustache.hpp
│   │   │   │   ├── ProductOfSinusoids.cpp
│   │   │   │   ├── ProductOfSinusoids.hpp
│   │   │   │   └── Zero.hpp
│   │   │   ├── Punctures/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Flatness.cpp
│   │   │   │   └── Flatness.hpp
│   │   │   ├── RadiationTransport/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── M1Grey/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── ConstantM1.cpp
│   │   │   │   │   ├── ConstantM1.hpp
│   │   │   │   │   ├── Factory.hpp
│   │   │   │   │   └── Solutions.hpp
│   │   │   │   └── MonteCarlo/
│   │   │   │       ├── CMakeLists.txt
│   │   │   │       ├── Factory.hpp
│   │   │   │       ├── HomogeneousSphere.cpp
│   │   │   │       ├── HomogeneousSphere.hpp
│   │   │   │       └── Solutions.hpp
│   │   │   ├── RelativisticEuler/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── FishboneMoncriefDisk.cpp
│   │   │   │   ├── FishboneMoncriefDisk.hpp
│   │   │   │   ├── Python/
│   │   │   │   │   ├── Bindings.cpp
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── Tov.cpp
│   │   │   │   │   ├── Tov.hpp
│   │   │   │   │   └── __init__.py
│   │   │   │   ├── RotatingStar.cpp
│   │   │   │   ├── RotatingStar.hpp
│   │   │   │   ├── SmoothFlow.cpp
│   │   │   │   ├── SmoothFlow.hpp
│   │   │   │   ├── Solutions.hpp
│   │   │   │   ├── Tov.cpp
│   │   │   │   ├── Tov.hpp
│   │   │   │   ├── TovStar.cpp
│   │   │   │   └── TovStar.hpp
│   │   │   ├── ScalarAdvection/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Factory.hpp
│   │   │   │   ├── Krivodonova.cpp
│   │   │   │   ├── Krivodonova.hpp
│   │   │   │   ├── Kuzmin.cpp
│   │   │   │   ├── Kuzmin.hpp
│   │   │   │   ├── Sinusoid.cpp
│   │   │   │   ├── Sinusoid.hpp
│   │   │   │   └── Solutions.hpp
│   │   │   ├── Tags.hpp
│   │   │   ├── WaveEquation/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Factory.hpp
│   │   │   │   ├── PlaneWave.cpp
│   │   │   │   ├── PlaneWave.hpp
│   │   │   │   ├── RegularSphericalWave.cpp
│   │   │   │   ├── RegularSphericalWave.hpp
│   │   │   │   ├── SemidiscretizedDg.cpp
│   │   │   │   ├── SemidiscretizedDg.hpp
│   │   │   │   └── Solutions.hpp
│   │   │   └── Xcts/
│   │   │       ├── CMakeLists.txt
│   │   │       ├── CommonVariables.hpp
│   │   │       ├── CommonVariables.tpp
│   │   │       ├── ConstantDensityStar.cpp
│   │   │       ├── ConstantDensityStar.hpp
│   │   │       ├── Factory.hpp
│   │   │       ├── Flatness.cpp
│   │   │       ├── Flatness.hpp
│   │   │       ├── Schwarzschild.cpp
│   │   │       ├── Schwarzschild.hpp
│   │   │       ├── TovStar.cpp
│   │   │       ├── TovStar.hpp
│   │   │       ├── WrappedGr.cpp
│   │   │       └── WrappedGr.hpp
│   │   ├── CMakeLists.txt
│   │   ├── ConstraintDamping/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Constant.cpp
│   │   │   ├── Constant.hpp
│   │   │   ├── DampingFunction.hpp
│   │   │   ├── GaussianPlusConstant.cpp
│   │   │   ├── GaussianPlusConstant.hpp
│   │   │   ├── RegisterDerivedWithCharm.cpp
│   │   │   ├── RegisterDerivedWithCharm.hpp
│   │   │   ├── TimeDependentTripleGaussian.cpp
│   │   │   └── TimeDependentTripleGaussian.hpp
│   │   ├── Elasticity/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── ConstitutiveRelations/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── ConstitutiveRelation.hpp
│   │   │   │   ├── CubicCrystal.cpp
│   │   │   │   ├── CubicCrystal.hpp
│   │   │   │   ├── Factory.hpp
│   │   │   │   ├── IsotropicHomogeneous.cpp
│   │   │   │   ├── IsotropicHomogeneous.hpp
│   │   │   │   └── Tags.hpp
│   │   │   ├── PotentialEnergy.cpp
│   │   │   ├── PotentialEnergy.hpp
│   │   │   ├── Strain.cpp
│   │   │   ├── Strain.hpp
│   │   │   └── Stress.hpp
│   │   ├── GeneralRelativity/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Christoffel.cpp
│   │   │   ├── Christoffel.hpp
│   │   │   ├── CubicCurvatureScalars.cpp
│   │   │   ├── CubicCurvatureScalars.hpp
│   │   │   ├── DerivativeSpatialMetric.cpp
│   │   │   ├── DerivativeSpatialMetric.hpp
│   │   │   ├── DerivativesOfSpacetimeMetric.cpp
│   │   │   ├── DerivativesOfSpacetimeMetric.hpp
│   │   │   ├── DetAndInverseSpatialMetric.hpp
│   │   │   ├── ExtrinsicCurvature.cpp
│   │   │   ├── ExtrinsicCurvature.hpp
│   │   │   ├── GeneralizedHarmonic/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Christoffel.cpp
│   │   │   │   ├── Christoffel.hpp
│   │   │   │   ├── ConstraintDampingTags.hpp
│   │   │   │   ├── ConstraintGammas.hpp
│   │   │   │   ├── CovariantDerivOfExtrinsicCurvature.cpp
│   │   │   │   ├── CovariantDerivOfExtrinsicCurvature.hpp
│   │   │   │   ├── DerivSpatialMetric.cpp
│   │   │   │   ├── DerivSpatialMetric.hpp
│   │   │   │   ├── Expansion1D.cpp
│   │   │   │   ├── Expansion1D.hpp
│   │   │   │   ├── ExtrinsicCurvature.cpp
│   │   │   │   ├── ExtrinsicCurvature.hpp
│   │   │   │   ├── GaugeSource.cpp
│   │   │   │   ├── GaugeSource.hpp
│   │   │   │   ├── Phi.cpp
│   │   │   │   ├── Phi.hpp
│   │   │   │   ├── Pi.cpp
│   │   │   │   ├── Pi.hpp
│   │   │   │   ├── Python/
│   │   │   │   │   ├── Bindings.cpp
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   └── __init__.py
│   │   │   │   ├── Ricci.cpp
│   │   │   │   ├── Ricci.hpp
│   │   │   │   ├── SecondTimeDerivOfSpacetimeMetric.cpp
│   │   │   │   ├── SecondTimeDerivOfSpacetimeMetric.hpp
│   │   │   │   ├── SpacetimeDerivOfDetSpatialMetric.cpp
│   │   │   │   ├── SpacetimeDerivOfDetSpatialMetric.hpp
│   │   │   │   ├── SpacetimeDerivOfNormOfShift.cpp
│   │   │   │   ├── SpacetimeDerivOfNormOfShift.hpp
│   │   │   │   ├── SpacetimeDerivativeOfSpacetimeMetric.cpp
│   │   │   │   ├── SpacetimeDerivativeOfSpacetimeMetric.hpp
│   │   │   │   ├── SpatialDerivOfLapse.cpp
│   │   │   │   ├── SpatialDerivOfLapse.hpp
│   │   │   │   ├── SpatialDerivOfShift.cpp
│   │   │   │   ├── SpatialDerivOfShift.hpp
│   │   │   │   ├── TimeDerivOfLapse.cpp
│   │   │   │   ├── TimeDerivOfLapse.hpp
│   │   │   │   ├── TimeDerivOfLowerShift.cpp
│   │   │   │   ├── TimeDerivOfLowerShift.hpp
│   │   │   │   ├── TimeDerivOfShift.cpp
│   │   │   │   ├── TimeDerivOfShift.hpp
│   │   │   │   ├── TimeDerivOfSpatialMetric.cpp
│   │   │   │   ├── TimeDerivOfSpatialMetric.hpp
│   │   │   │   ├── TimeDerivativeOfSpacetimeMetric.cpp
│   │   │   │   └── TimeDerivativeOfSpacetimeMetric.hpp
│   │   │   ├── GeodesicAcceleration.cpp
│   │   │   ├── GeodesicAcceleration.hpp
│   │   │   ├── GeodesicEquation.cpp
│   │   │   ├── GeodesicEquation.hpp
│   │   │   ├── InterfaceNullNormal.cpp
│   │   │   ├── InterfaceNullNormal.hpp
│   │   │   ├── InverseSpacetimeMetric.cpp
│   │   │   ├── InverseSpacetimeMetric.hpp
│   │   │   ├── KerrHorizon.cpp
│   │   │   ├── KerrHorizon.hpp
│   │   │   ├── KerrSchildCoords.cpp
│   │   │   ├── KerrSchildCoords.hpp
│   │   │   ├── Lapse.cpp
│   │   │   ├── Lapse.hpp
│   │   │   ├── ProjectionOperators.cpp
│   │   │   ├── ProjectionOperators.hpp
│   │   │   ├── Psi4.cpp
│   │   │   ├── Psi4.hpp
│   │   │   ├── Psi4Real.cpp
│   │   │   ├── Psi4Real.hpp
│   │   │   ├── Python/
│   │   │   │   ├── Bindings.cpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   └── __init__.py
│   │   │   ├── QuadraticCurvatureScalars.cpp
│   │   │   ├── QuadraticCurvatureScalars.hpp
│   │   │   ├── Ricci.cpp
│   │   │   ├── Ricci.hpp
│   │   │   ├── Shift.cpp
│   │   │   ├── Shift.hpp
│   │   │   ├── SpacetimeDerivativeOfGothG.cpp
│   │   │   ├── SpacetimeDerivativeOfGothG.hpp
│   │   │   ├── SpacetimeMetric.cpp
│   │   │   ├── SpacetimeMetric.hpp
│   │   │   ├── SpacetimeNormalOneForm.cpp
│   │   │   ├── SpacetimeNormalOneForm.hpp
│   │   │   ├── SpacetimeNormalVector.cpp
│   │   │   ├── SpacetimeNormalVector.hpp
│   │   │   ├── SpatialMetric.cpp
│   │   │   ├── SpatialMetric.hpp
│   │   │   ├── Surfaces/
│   │   │   │   ├── AreaElement.cpp
│   │   │   │   ├── AreaElement.hpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── ComputeItems.hpp
│   │   │   │   ├── Expansion.cpp
│   │   │   │   ├── Expansion.hpp
│   │   │   │   ├── ExtrinsicCurvature.cpp
│   │   │   │   ├── ExtrinsicCurvature.hpp
│   │   │   │   ├── GradUnitNormalOneForm.cpp
│   │   │   │   ├── GradUnitNormalOneForm.hpp
│   │   │   │   ├── InverseSurfaceMetric.cpp
│   │   │   │   ├── InverseSurfaceMetric.hpp
│   │   │   │   ├── Mass.cpp
│   │   │   │   ├── Mass.hpp
│   │   │   │   ├── Python/
│   │   │   │   │   ├── Bindings.cpp
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   └── __init__.py
│   │   │   │   ├── RadialDistance.cpp
│   │   │   │   ├── RadialDistance.hpp
│   │   │   │   ├── RicciScalar.cpp
│   │   │   │   ├── RicciScalar.hpp
│   │   │   │   ├── Spin.cpp
│   │   │   │   ├── Spin.hpp
│   │   │   │   ├── SurfaceIntegralOfScalar.cpp
│   │   │   │   ├── SurfaceIntegralOfScalar.hpp
│   │   │   │   ├── SurfaceIntegralOfVector.cpp
│   │   │   │   ├── SurfaceIntegralOfVector.hpp
│   │   │   │   ├── Tags.hpp
│   │   │   │   ├── TagsDeclarations.hpp
│   │   │   │   ├── UnitNormalOneForm.cpp
│   │   │   │   └── UnitNormalOneForm.hpp
│   │   │   ├── Tags/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   └── Conformal.hpp
│   │   │   ├── Tags.hpp
│   │   │   ├── TagsDeclarations.hpp
│   │   │   ├── TimeDerivativeOfSpacetimeMetric.cpp
│   │   │   ├── TimeDerivativeOfSpacetimeMetric.hpp
│   │   │   ├── TimeDerivativeOfSpatialMetric.cpp
│   │   │   ├── TimeDerivativeOfSpatialMetric.hpp
│   │   │   ├── TortoiseCoordinates.cpp
│   │   │   ├── TortoiseCoordinates.hpp
│   │   │   ├── WeylElectric.cpp
│   │   │   ├── WeylElectric.hpp
│   │   │   ├── WeylMagnetic.cpp
│   │   │   ├── WeylMagnetic.hpp
│   │   │   ├── WeylPropagating.cpp
│   │   │   ├── WeylPropagating.hpp
│   │   │   ├── WeylTypeD1.cpp
│   │   │   └── WeylTypeD1.hpp
│   │   ├── Hydro/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── ComovingMagneticField.cpp
│   │   │   ├── ComovingMagneticField.hpp
│   │   │   ├── EquationsOfState/
│   │   │   │   ├── Barotropic2D.cpp
│   │   │   │   ├── Barotropic2D.hpp
│   │   │   │   ├── Barotropic3D.cpp
│   │   │   │   ├── Barotropic3D.hpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── DarkEnergyFluid.cpp
│   │   │   │   ├── DarkEnergyFluid.hpp
│   │   │   │   ├── Enthalpy.cpp
│   │   │   │   ├── Enthalpy.hpp
│   │   │   │   ├── EquationOfState.hpp
│   │   │   │   ├── Equilibrium3D.cpp
│   │   │   │   ├── Equilibrium3D.hpp
│   │   │   │   ├── Factory.hpp
│   │   │   │   ├── HybridEos.cpp
│   │   │   │   ├── HybridEos.hpp
│   │   │   │   ├── IdealFluid.cpp
│   │   │   │   ├── IdealFluid.hpp
│   │   │   │   ├── PiecewisePolytropicFluid.cpp
│   │   │   │   ├── PiecewisePolytropicFluid.hpp
│   │   │   │   ├── PolytropicFluid.cpp
│   │   │   │   ├── PolytropicFluid.hpp
│   │   │   │   ├── Python/
│   │   │   │   │   ├── Bindings.cpp
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── Enthalpy.cpp
│   │   │   │   │   ├── Enthalpy.hpp
│   │   │   │   │   ├── EquationOfState.cpp
│   │   │   │   │   ├── EquationOfState.hpp
│   │   │   │   │   ├── PiecewisePolytropicFluid.cpp
│   │   │   │   │   ├── PiecewisePolytropicFluid.hpp
│   │   │   │   │   ├── PolytropicFluid.cpp
│   │   │   │   │   ├── PolytropicFluid.hpp
│   │   │   │   │   ├── Spectral.cpp
│   │   │   │   │   ├── Spectral.hpp
│   │   │   │   │   └── __init__.py
│   │   │   │   ├── RegisterDerivedWithCharm.cpp
│   │   │   │   ├── RegisterDerivedWithCharm.hpp
│   │   │   │   ├── Spectral.cpp
│   │   │   │   ├── Spectral.hpp
│   │   │   │   ├── Tabulated3d.cpp
│   │   │   │   └── Tabulated3d.hpp
│   │   │   ├── InitialData/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── IrrotationalBns.cpp
│   │   │   │   └── IrrotationalBns.hpp
│   │   │   ├── InversePlasmaBeta.cpp
│   │   │   ├── InversePlasmaBeta.hpp
│   │   │   ├── LorentzFactor.cpp
│   │   │   ├── LorentzFactor.hpp
│   │   │   ├── LowerSpatialFourVelocity.cpp
│   │   │   ├── LowerSpatialFourVelocity.hpp
│   │   │   ├── MagneticFieldTreatment.cpp
│   │   │   ├── MagneticFieldTreatment.hpp
│   │   │   ├── MassFlux.cpp
│   │   │   ├── MassFlux.hpp
│   │   │   ├── MassWeightedFluidItems.cpp
│   │   │   ├── MassWeightedFluidItems.hpp
│   │   │   ├── Python/
│   │   │   │   ├── Bindings.cpp
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   └── __init__.py
│   │   │   ├── QuadrupoleFormula.cpp
│   │   │   ├── QuadrupoleFormula.hpp
│   │   │   ├── SoundSpeedSquared.cpp
│   │   │   ├── SoundSpeedSquared.hpp
│   │   │   ├── SpecificEnthalpy.cpp
│   │   │   ├── SpecificEnthalpy.hpp
│   │   │   ├── StressEnergy.cpp
│   │   │   ├── StressEnergy.hpp
│   │   │   ├── Tags.hpp
│   │   │   ├── TagsDeclarations.hpp
│   │   │   ├── Temperature.hpp
│   │   │   ├── TransportVelocity.cpp
│   │   │   ├── TransportVelocity.hpp
│   │   │   └── Units.hpp
│   │   ├── InitialDataUtilities/
│   │   │   ├── AnalyticSolution.hpp
│   │   │   ├── Background.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── InitialData.hpp
│   │   │   ├── InitialGuess.hpp
│   │   │   ├── NumericData.cpp
│   │   │   ├── NumericData.hpp
│   │   │   └── Tags/
│   │   │       ├── CMakeLists.txt
│   │   │       └── InitialData.hpp
│   │   ├── MathFunctions/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Factory.hpp
│   │   │   ├── Gaussian.cpp
│   │   │   ├── Gaussian.hpp
│   │   │   ├── MathFunction.hpp
│   │   │   ├── PowX.cpp
│   │   │   ├── PowX.hpp
│   │   │   ├── RegisterDerivedWithCharm.cpp
│   │   │   ├── RegisterDerivedWithCharm.hpp
│   │   │   ├── Sinusoid.cpp
│   │   │   ├── Sinusoid.hpp
│   │   │   ├── TensorProduct.cpp
│   │   │   └── TensorProduct.hpp
│   │   ├── Punctures/
│   │   │   ├── AdmIntegrals.cpp
│   │   │   ├── AdmIntegrals.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   └── Python/
│   │   │       ├── Bindings.cpp
│   │   │       ├── CMakeLists.txt
│   │   │       └── __init__.py
│   │   ├── ScalarTensor/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── ConstraintDampingTags.hpp
│   │   │   ├── ConstraintGammas.hpp
│   │   │   ├── RampUpFunction.cpp
│   │   │   ├── RampUpFunction.hpp
│   │   │   ├── ScalarCharge.cpp
│   │   │   ├── ScalarCharge.hpp
│   │   │   ├── ScalarGaussBonnet/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── CouplingParameters.cpp
│   │   │   │   ├── CouplingParameters.hpp
│   │   │   │   ├── ScalarSource.cpp
│   │   │   │   ├── ScalarSource.hpp
│   │   │   │   └── Tags.hpp
│   │   │   ├── ScalarSource.cpp
│   │   │   ├── ScalarSource.hpp
│   │   │   ├── SourceTags.hpp
│   │   │   ├── StressEnergy.cpp
│   │   │   ├── StressEnergy.hpp
│   │   │   └── Xcts/
│   │   │       ├── CMakeLists.txt
│   │   │       ├── ScalarMomentum.cpp
│   │   │       └── ScalarMomentum.hpp
│   │   ├── SpecialRelativity/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── LorentzBoostMatrix.cpp
│   │   │   └── LorentzBoostMatrix.hpp
│   │   └── Xcts/
│   │       ├── AdmMass.cpp
│   │       ├── AdmMass.hpp
│   │       ├── AdmMomentum.cpp
│   │       ├── AdmMomentum.hpp
│   │       ├── CMakeLists.txt
│   │       ├── CenterOfMass.cpp
│   │       ├── CenterOfMass.hpp
│   │       ├── ExtrinsicCurvature.cpp
│   │       ├── ExtrinsicCurvature.hpp
│   │       ├── LongitudinalOperator.cpp
│   │       ├── LongitudinalOperator.hpp
│   │       ├── SpacetimeQuantities.cpp
│   │       └── SpacetimeQuantities.hpp
│   ├── PythonBindings/
│   │   ├── BoundChecks.hpp
│   │   ├── CMakeLists.txt
│   │   ├── CharmCompatibility.cpp
│   │   ├── FormalineCompatibility.cpp
│   │   └── InfoAtLinkCompatibility.cpp
│   ├── Time/
│   │   ├── Actions/
│   │   │   ├── CMakeLists.txt
│   │   │   └── SelfStartActions.hpp
│   │   ├── AdaptiveSteppingDiagnostics.cpp
│   │   ├── AdaptiveSteppingDiagnostics.hpp
│   │   ├── AdvanceTime.cpp
│   │   ├── AdvanceTime.hpp
│   │   ├── ApproximateTime.cpp
│   │   ├── ApproximateTime.hpp
│   │   ├── BoundaryHistory.hpp
│   │   ├── BoundaryHistory.tpp
│   │   ├── CMakeLists.txt
│   │   ├── ChangeSlabSize/
│   │   │   ├── Action.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── ChangeSlabSize.hpp
│   │   │   ├── Event.cpp
│   │   │   ├── Event.hpp
│   │   │   └── Tags.hpp
│   │   ├── ChangeStepSize.hpp
│   │   ├── ChangeTimeStepperOrder.hpp
│   │   ├── ChangeTimeStepperOrder.tpp
│   │   ├── ChooseLtsStepSize.cpp
│   │   ├── ChooseLtsStepSize.hpp
│   │   ├── CleanHistory.hpp
│   │   ├── CleanHistory.tpp
│   │   ├── EvolutionOrdering.hpp
│   │   ├── History.cpp
│   │   ├── History.hpp
│   │   ├── LargestStepperError.cpp
│   │   ├── LargestStepperError.hpp
│   │   ├── OptionTags/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── InitialSlabSize.hpp
│   │   │   ├── InitialTime.hpp
│   │   │   ├── InitialTimeStep.hpp
│   │   │   ├── LtsStepChoosers.hpp
│   │   │   ├── MinimumTimeStep.hpp
│   │   │   ├── TimeStepper.hpp
│   │   │   └── VariableOrderAlgorithm.hpp
│   │   ├── RecordTimeStepperData.hpp
│   │   ├── RecordTimeStepperData.tpp
│   │   ├── RequestsStepperErrorTolerances.hpp
│   │   ├── SelfStart.cpp
│   │   ├── SelfStart.hpp
│   │   ├── Slab.cpp
│   │   ├── Slab.hpp
│   │   ├── SlabRoundingError.cpp
│   │   ├── SlabRoundingError.hpp
│   │   ├── StepChoosers/
│   │   │   ├── ByBlock.cpp
│   │   │   ├── ByBlock.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Cfl.hpp
│   │   │   ├── Constant.cpp
│   │   │   ├── Constant.hpp
│   │   │   ├── ElementSizeCfl.hpp
│   │   │   ├── ErrorControl.hpp
│   │   │   ├── Factory.hpp
│   │   │   ├── FixedLtsRatio.cpp
│   │   │   ├── FixedLtsRatio.hpp
│   │   │   ├── LimitIncrease.cpp
│   │   │   ├── LimitIncrease.hpp
│   │   │   ├── Maximum.cpp
│   │   │   ├── Maximum.hpp
│   │   │   ├── PreventRapidIncrease.hpp
│   │   │   ├── Random.cpp
│   │   │   ├── Random.hpp
│   │   │   ├── StepChooser.hpp
│   │   │   ├── StepToTimes.cpp
│   │   │   └── StepToTimes.hpp
│   │   ├── StepperErrorEstimate.cpp
│   │   ├── StepperErrorEstimate.hpp
│   │   ├── StepperErrorTolerances.cpp
│   │   ├── StepperErrorTolerances.hpp
│   │   ├── Tags/
│   │   │   ├── AdaptiveSteppingDiagnostics.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── FixedLtsRatio.hpp
│   │   │   ├── HistoryEvolvedVariables.hpp
│   │   │   ├── LtsStepChoosers.hpp
│   │   │   ├── MinimumTimeStep.hpp
│   │   │   ├── StepNumberWithinSlab.hpp
│   │   │   ├── StepperErrorEstimatesEnabled.hpp
│   │   │   ├── StepperErrorTolerances.hpp
│   │   │   ├── StepperErrorTolerancesCompute.cpp
│   │   │   ├── StepperErrorTolerancesCompute.hpp
│   │   │   ├── StepperErrors.hpp
│   │   │   ├── Time.hpp
│   │   │   ├── TimeAndPrevious.hpp
│   │   │   ├── TimeStep.hpp
│   │   │   ├── TimeStepId.hpp
│   │   │   ├── TimeStepper.hpp
│   │   │   └── VariableOrderAlgorithm.hpp
│   │   ├── Time.cpp
│   │   ├── Time.hpp
│   │   ├── TimeSequence.cpp
│   │   ├── TimeSequence.hpp
│   │   ├── TimeStepId.cpp
│   │   ├── TimeStepId.hpp
│   │   ├── TimeStepRequest.cpp
│   │   ├── TimeStepRequest.hpp
│   │   ├── TimeStepRequestProcessor.cpp
│   │   ├── TimeStepRequestProcessor.hpp
│   │   ├── TimeSteppers/
│   │   │   ├── AdamsBashforth.cpp
│   │   │   ├── AdamsBashforth.hpp
│   │   │   ├── AdamsCoefficients.cpp
│   │   │   ├── AdamsCoefficients.hpp
│   │   │   ├── AdamsLts.cpp
│   │   │   ├── AdamsLts.hpp
│   │   │   ├── AdamsMoultonPc.cpp
│   │   │   ├── AdamsMoultonPc.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── ClassicalRungeKutta4.cpp
│   │   │   ├── ClassicalRungeKutta4.hpp
│   │   │   ├── DormandPrince5.cpp
│   │   │   ├── DormandPrince5.hpp
│   │   │   ├── Factory.hpp
│   │   │   ├── Heun2.cpp
│   │   │   ├── Heun2.hpp
│   │   │   ├── ImexRungeKutta.cpp
│   │   │   ├── ImexRungeKutta.hpp
│   │   │   ├── ImexTimeStepper.hpp
│   │   │   ├── LtsTimeStepper.hpp
│   │   │   ├── Rk3HesthavenSsp.cpp
│   │   │   ├── Rk3HesthavenSsp.hpp
│   │   │   ├── Rk3Kennedy.cpp
│   │   │   ├── Rk3Kennedy.hpp
│   │   │   ├── Rk3Owren.cpp
│   │   │   ├── Rk3Owren.hpp
│   │   │   ├── Rk3Pareschi.cpp
│   │   │   ├── Rk3Pareschi.hpp
│   │   │   ├── Rk4Kennedy.cpp
│   │   │   ├── Rk4Kennedy.hpp
│   │   │   ├── Rk4Owren.cpp
│   │   │   ├── Rk4Owren.hpp
│   │   │   ├── Rk5Owren.cpp
│   │   │   ├── Rk5Owren.hpp
│   │   │   ├── Rk5Tsitouras.cpp
│   │   │   ├── Rk5Tsitouras.hpp
│   │   │   ├── RungeKutta.cpp
│   │   │   ├── RungeKutta.hpp
│   │   │   ├── TimeStepper.cpp
│   │   │   └── TimeStepper.hpp
│   │   ├── Triggers/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── NearTimes.cpp
│   │   │   ├── NearTimes.hpp
│   │   │   ├── OnSubsteps.cpp
│   │   │   ├── OnSubsteps.hpp
│   │   │   ├── SlabCompares.cpp
│   │   │   ├── SlabCompares.hpp
│   │   │   ├── Slabs.cpp
│   │   │   ├── Slabs.hpp
│   │   │   ├── StepsWithinSlab.cpp
│   │   │   ├── StepsWithinSlab.hpp
│   │   │   ├── TimeCompares.cpp
│   │   │   ├── TimeCompares.hpp
│   │   │   ├── TimeTriggers.hpp
│   │   │   ├── Times.cpp
│   │   │   └── Times.hpp
│   │   ├── UpdateU.hpp
│   │   ├── UpdateU.tpp
│   │   ├── VariableOrderAlgorithm.cpp
│   │   └── VariableOrderAlgorithm.hpp
│   ├── Utilities/
│   │   ├── Algorithm.hpp
│   │   ├── Array.hpp
│   │   ├── Autodiff/
│   │   │   ├── Autodiff.hpp
│   │   │   └── CMakeLists.txt
│   │   ├── Base64.cpp
│   │   ├── Base64.hpp
│   │   ├── Blas.cpp
│   │   ├── Blas.hpp
│   │   ├── BlazeExceptions.hpp
│   │   ├── CMakeLists.txt
│   │   ├── CachedFunction.hpp
│   │   ├── CallWithDynamicType.hpp
│   │   ├── CartesianProduct.hpp
│   │   ├── CleanupRoutine.hpp
│   │   ├── CloneUniquePtrs.hpp
│   │   ├── ConstantExpressions.hpp
│   │   ├── ContainerHelpers.hpp
│   │   ├── ContainsAllocations.hpp
│   │   ├── DereferenceWrapper.hpp
│   │   ├── EqualWithinRoundoff.hpp
│   │   ├── ErrorHandling/
│   │   │   ├── AbortWithErrorMessage.cpp
│   │   │   ├── AbortWithErrorMessage.hpp
│   │   │   ├── Assert.hpp
│   │   │   ├── Breakpoint.cpp
│   │   │   ├── Breakpoint.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── CaptureForError.cpp
│   │   │   ├── CaptureForError.hpp
│   │   │   ├── Error.hpp
│   │   │   ├── Exceptions.hpp
│   │   │   ├── ExpectsAndEnsures.hpp
│   │   │   ├── FloatingPointExceptions.cpp
│   │   │   ├── FloatingPointExceptions.hpp
│   │   │   ├── FormatStacktrace.cpp
│   │   │   ├── FormatStacktrace.hpp
│   │   │   ├── SegfaultHandler.cpp
│   │   │   ├── SegfaultHandler.hpp
│   │   │   ├── StaticAssert.hpp
│   │   │   ├── Strerror.cpp
│   │   │   ├── Strerror.hpp
│   │   │   ├── StrerrorWrapper.c
│   │   │   └── StrerrorWrapper.h
│   │   ├── FileSystem.cpp
│   │   ├── FileSystem.hpp
│   │   ├── ForceInline.hpp
│   │   ├── Formaline.cpp
│   │   ├── Formaline.hpp
│   │   ├── FractionUtilities.hpp
│   │   ├── Functional.hpp
│   │   ├── GenerateInstantiations.hpp
│   │   ├── GetOutput.hpp
│   │   ├── Gsl.hpp
│   │   ├── Kokkos/
│   │   │   ├── CMakeLists.txt
│   │   │   └── KokkosCore.hpp
│   │   ├── Literals.hpp
│   │   ├── MakeArray.hpp
│   │   ├── MakeSignalingNan.hpp
│   │   ├── MakeString.hpp
│   │   ├── MakeVector.hpp
│   │   ├── MakeWithValue.hpp
│   │   ├── Math.hpp
│   │   ├── MemoryHelpers.cpp
│   │   ├── MemoryHelpers.hpp
│   │   ├── NoSuchType.hpp
│   │   ├── Numeric.hpp
│   │   ├── OptimizerHacks.cpp
│   │   ├── OptimizerHacks.hpp
│   │   ├── OptionalHelpers.hpp
│   │   ├── Overloader.hpp
│   │   ├── PrettyType.cpp
│   │   ├── PrettyType.hpp
│   │   ├── PrintHelpers.hpp
│   │   ├── ProtocolHelpers.hpp
│   │   ├── Protocols/
│   │   │   ├── CMakeLists.txt
│   │   │   └── StaticReturnApplyable.hpp
│   │   ├── Rational.cpp
│   │   ├── Rational.hpp
│   │   ├── Registration.hpp
│   │   ├── Requires.hpp
│   │   ├── Serialization/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── CharmPupable.hpp
│   │   │   ├── PupBoost.hpp
│   │   │   ├── PupStlCpp11.hpp
│   │   │   ├── PupStlCpp17.hpp
│   │   │   ├── RegisterDerivedClassesWithCharm.hpp
│   │   │   └── Serialize.hpp
│   │   ├── SetNumberOfGridPoints.hpp
│   │   ├── Simd/
│   │   │   ├── CMakeLists.txt
│   │   │   └── Simd.hpp
│   │   ├── SnakeCase.cpp
│   │   ├── SnakeCase.hpp
│   │   ├── Spherepack.hpp
│   │   ├── SplitTuple.hpp
│   │   ├── StaticCache.hpp
│   │   ├── StdArrayHelpers.hpp
│   │   ├── StdHelpers/
│   │   │   ├── Bit.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   └── RetrieveUniquePtr.hpp
│   │   ├── StdHelpers.hpp
│   │   ├── StlBoilerplate.hpp
│   │   ├── StlStreamDeclarations.hpp
│   │   ├── System/
│   │   │   ├── Abort.cpp
│   │   │   ├── Abort.hpp
│   │   │   ├── AttachDebugger.cpp
│   │   │   ├── AttachDebugger.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── Exit.cpp
│   │   │   ├── Exit.hpp
│   │   │   ├── ParallelInfo.cpp
│   │   │   ├── ParallelInfo.hpp
│   │   │   ├── Prefetch.cpp
│   │   │   ├── Prefetch.hpp
│   │   │   └── System.hpp
│   │   ├── TMPL.hpp
│   │   ├── TmplDebugging.hpp
│   │   ├── TmplDigraph.hpp
│   │   ├── Tuple.hpp
│   │   ├── TupleSlice.hpp
│   │   ├── TypeTraits/
│   │   │   ├── ArraySize.hpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── CanBeCopyConstructed.hpp
│   │   │   ├── CreateGetStaticMemberVariableOrDefault.hpp
│   │   │   ├── CreateGetTypeAliasOrDefault.hpp
│   │   │   ├── CreateHasStaticMemberVariable.hpp
│   │   │   ├── CreateHasTypeAlias.hpp
│   │   │   ├── CreateIsCallable.hpp
│   │   │   ├── FastPointerCast.hpp
│   │   │   ├── FunctionInfo.hpp
│   │   │   ├── GetFundamentalType.hpp
│   │   │   ├── HasEquivalence.hpp
│   │   │   ├── HasInequivalence.hpp
│   │   │   ├── IsA.hpp
│   │   │   ├── IsCallable.hpp
│   │   │   ├── IsComplexOfFundamental.hpp
│   │   │   ├── IsInteger.hpp
│   │   │   ├── IsIterable.hpp
│   │   │   ├── IsMaplike.hpp
│   │   │   ├── IsStdArray.hpp
│   │   │   ├── IsStdArrayOfSize.hpp
│   │   │   ├── IsStreamable.hpp
│   │   │   ├── RemoveReferenceWrapper.hpp
│   │   │   └── TypeTraits.hpp
│   │   ├── TypeTraits.hpp
│   │   ├── UtcTime.cpp
│   │   ├── UtcTime.hpp
│   │   ├── VectorAlgebra.hpp
│   │   ├── WrapText.cpp
│   │   └── WrapText.hpp
│   └── Visualization/
│       ├── CMakeLists.txt
│       └── Python/
│           ├── CMakeLists.txt
│           ├── ElementIdToParaview.py
│           ├── GenerateTetrahedralConnectivity.py
│           ├── GenerateXdmf.py
│           ├── Plot.py
│           ├── PlotAlongLine.py
│           ├── PlotCce.py
│           ├── PlotControlSystem.py
│           ├── PlotDatFile.py
│           ├── PlotEccentricityControl.py
│           ├── PlotEllipticConvergence.py
│           ├── PlotMemoryMonitors.py
│           ├── PlotPowerMonitors.py
│           ├── PlotSizeControl.py
│           ├── PlotSlice.py
│           ├── PlotTrajectories.py
│           ├── ReadInputFile.py
│           ├── Render1D.py
│           ├── Render3D/
│           │   ├── Bbh.py
│           │   ├── CMakeLists.txt
│           │   ├── Clip.py
│           │   ├── Domain.py
│           │   └── __init__.py
│           ├── __init__.py
│           └── plots.mplstyle
├── support/
│   ├── CMakeLists.txt
│   ├── Charm/
│   │   ├── v6.7.patch
│   │   ├── v6.8.patch
│   │   ├── v7.0.0.patch
│   │   └── v7.0.1.patch
│   ├── DevEnvironments/
│   │   └── spack.yaml
│   ├── Environments/
│   │   ├── anvil_gcc.sh
│   │   ├── caltech_hpc_gcc.sh
│   │   ├── expanse_gcc.sh
│   │   ├── frontera_gcc.sh
│   │   ├── mbot.sh
│   │   ├── ocean2.sh
│   │   ├── ocean2_orca1.sh
│   │   ├── ocean_gcc.sh
│   │   ├── oscar.sh
│   │   ├── perlmutter.sh
│   │   ├── setup/
│   │   │   ├── anvil_gcc.sh
│   │   │   ├── expanse_gcc.sh
│   │   │   ├── frontera_gcc.sh
│   │   │   └── mbot_install.sh
│   │   ├── sonic.sh
│   │   ├── urania.sh
│   │   └── viper.sh
│   ├── Machines/
│   │   ├── CaltechHpc.yaml
│   │   ├── Mbot.yaml
│   │   ├── Ocean2.yaml
│   │   ├── Ocean2_orca1.yaml
│   │   ├── Oscar.yaml
│   │   ├── Perlmutter.yaml
│   │   ├── Sonic.yaml
│   │   ├── Urania.yaml
│   │   └── Viper.yaml
│   ├── Pipelines/
│   │   ├── Bbh/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── ControlId.py
│   │   │   ├── EccentricityControl.py
│   │   │   ├── FindHorizon.py
│   │   │   ├── InitialData.py
│   │   │   ├── InitialData.yaml
│   │   │   ├── Inspiral.py
│   │   │   ├── Inspiral.yaml
│   │   │   ├── PostprocessId.py
│   │   │   ├── Ringdown.py
│   │   │   ├── Ringdown.yaml
│   │   │   └── __init__.py
│   │   ├── Bns/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── ComputeTrajectories.py
│   │   │   └── __init__.py
│   │   ├── CMakeLists.txt
│   │   └── EccentricityControl/
│   │       ├── CMakeLists.txt
│   │       ├── EccentricityControlParams.py
│   │       ├── InitialOrbitalParameters.py
│   │       └── __init__.py
│   ├── Profiling/
│   │   └── ScoreP/
│   │       └── spectre.flt
│   ├── Python/
│   │   ├── CMakeLists.txt
│   │   ├── CheckSpecImport.py
│   │   ├── CliExceptions.py
│   │   ├── DirectoryStructure.py
│   │   ├── Logging.py
│   │   ├── Machines.py
│   │   ├── Resubmit.py
│   │   ├── RunNext.py
│   │   ├── Schedule.py
│   │   ├── Yaml.py
│   │   ├── __init__.py
│   │   ├── __main__.py
│   │   ├── dev_requirements.txt
│   │   ├── requirements.txt
│   │   ├── shell-completion.bash
│   │   ├── shell-completion.fish
│   │   └── shell-completion.zsh
│   ├── SubmitScripts/
│   │   ├── Anvil.sh
│   │   ├── CaltechHpc.sh
│   │   ├── Expanse.sh
│   │   ├── Frontera.sh
│   │   ├── Mbot.sh
│   │   ├── Ocean2.sh
│   │   ├── Ocean2_orca1.sh
│   │   ├── Oscar.sh
│   │   ├── Perlmutter.sh
│   │   ├── Sonic.sh
│   │   ├── SubmitTemplateBase.sh
│   │   ├── Urania.sh
│   │   └── Viper.sh
│   └── TeXLive/
│       └── texlive.profile
├── tests/
│   ├── CMakeLists.txt
│   ├── InputFiles/
│   │   ├── Burgers/
│   │   │   └── Step.yaml
│   │   ├── Cce/
│   │   │   ├── AnalyticTestBouncingBlackHole.yaml
│   │   │   ├── AnalyticTestGaugeWave.yaml
│   │   │   ├── AnalyticTestLinearizedBondiSachs.yaml
│   │   │   ├── AnalyticTestRobinsonTrautman.yaml
│   │   │   ├── AnalyticTestRotatingSchwarzschild.yaml
│   │   │   ├── AnalyticTestTeukolskyWave.yaml
│   │   │   ├── AnalyticTestVolumeNewmanPenroseSpinCoefficients.yaml
│   │   │   ├── AnalyticTestVolumeNewmanPenroseSpinCoefficientsRhoGammaMu.py
│   │   │   ├── AnalyticTestVolumeUtils.py
│   │   │   ├── AnalyticTestVolumeWeylPsi2.py
│   │   │   ├── AnalyticTestVolumeWeylScalars.yaml
│   │   │   ├── CharacteristicExtract.yaml
│   │   │   └── KleinGordonCharacteristicExtract.yaml
│   │   ├── CurvedScalarWave/
│   │   │   ├── PlaneWaveMinkowski1D.yaml
│   │   │   ├── PlaneWaveMinkowski2D.yaml
│   │   │   ├── PlaneWaveMinkowski3D.yaml
│   │   │   └── WorldtubeKerrSchild.yaml
│   │   ├── Elasticity/
│   │   │   ├── BentBeam.yaml
│   │   │   ├── HalfSpaceMirror.yaml
│   │   │   └── SingleCoatingMirror.yaml
│   │   ├── ExampleExecutables/
│   │   │   ├── HelloWorldNoCharm.yaml
│   │   │   ├── PiMonteCarlo.yaml
│   │   │   ├── RandomAmr1D.yaml
│   │   │   ├── RandomAmrKeepCoarseGrids1D.yaml
│   │   │   └── SingletonHelloWorld.yaml
│   │   ├── ExportCoordinates/
│   │   │   ├── Input1D.yaml
│   │   │   ├── Input2D.yaml
│   │   │   ├── Input3D.yaml
│   │   │   └── InputTimeDependent3D.yaml
│   │   ├── ExportEquationOfStateForRotNS/
│   │   │   └── ExportEosForRotNS.yaml
│   │   ├── ForceFree/
│   │   │   └── FastWave.yaml
│   │   ├── GeneralizedHarmonic/
│   │   │   ├── CylindricalBinaryBlackHole.yaml
│   │   │   ├── GaugeWave1D.yaml
│   │   │   ├── GaugeWave3D.yaml
│   │   │   └── KerrSchild.yaml
│   │   ├── GrMhd/
│   │   │   ├── GhValenciaDivClean/
│   │   │   │   ├── BinaryNeutronStar.yaml
│   │   │   │   ├── CoreCollapseSupernova.yaml
│   │   │   │   ├── EvolutionParameters.perl
│   │   │   │   ├── GhMhdBondiMichel.yaml
│   │   │   │   └── GhMhdTovStar.yaml
│   │   │   └── ValenciaDivClean/
│   │   │       ├── BlastWave.yaml
│   │   │       └── FishboneMoncriefDisk.yaml
│   │   ├── NewtonianEuler/
│   │   │   ├── RiemannProblem1D.yaml
│   │   │   ├── RiemannProblem2D.yaml
│   │   │   └── RiemannProblem3D.yaml
│   │   ├── Poisson/
│   │   │   ├── Lorentzian.yaml
│   │   │   ├── ProductOfSinusoids1D.yaml
│   │   │   ├── ProductOfSinusoids2D.yaml
│   │   │   └── ProductOfSinusoids3D.yaml
│   │   ├── PreprocessCceWorldtube/
│   │   │   ├── AdmFirstOrderDriverPreprocessCceWorldtube.yaml
│   │   │   ├── AdmSecondOrderDriverPreprocessCceWorldtube.yaml
│   │   │   └── PreprocessCceWorldtube.yaml
│   │   ├── Punctures/
│   │   │   └── MultiplePunctures.yaml
│   │   ├── RadiationTransport/
│   │   │   └── M1Grey/
│   │   │       └── ConstantM1.yaml
│   │   ├── ScalarAdvection/
│   │   │   ├── Krivodonova1D.yaml
│   │   │   ├── Kuzmin2D.yaml
│   │   │   └── Sinusoid1D.yaml
│   │   ├── ScalarTensor/
│   │   │   └── KerrSchildSphericalHarmonic.yaml
│   │   ├── ScalarWave/
│   │   │   ├── PlaneWave1D.yaml
│   │   │   ├── PlaneWave1DEventsAndTriggersExample.yaml
│   │   │   ├── PlaneWave1DObserveExample.yaml
│   │   │   ├── PlaneWave2D.overlay_0000.yaml
│   │   │   ├── PlaneWave2D.yaml
│   │   │   ├── PlaneWave3D.yaml
│   │   │   └── PlaneWave3DCartoonSphere.yaml
│   │   ├── SelfForce/
│   │   │   ├── GrCircularOrbit.yaml
│   │   │   └── ScalarCircularOrbit.yaml
│   │   └── Xcts/
│   │       ├── BinaryBlackHole.yaml
│   │       ├── HeadOnBns.yaml
│   │       ├── KerrSchild.yaml
│   │       └── TovStar.yaml
│   ├── Unit/
│   │   ├── ArchitectureVectorization/
│   │   │   └── CMakeLists.txt
│   │   ├── CMakeLists.txt
│   │   ├── ControlSystem/
│   │   │   ├── Actions/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Test_GridCenters.cpp
│   │   │   │   ├── Test_Initialization.cpp
│   │   │   │   ├── Test_InitializeMeasurements.cpp
│   │   │   │   └── Test_LimitTimeStep.cpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── ControlErrors/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── ComovingCharSpeedDerivative.py
│   │   │   │   ├── Test_ComovingCharSpeedDerivative.cpp
│   │   │   │   ├── Test_Expansion.cpp
│   │   │   │   ├── Test_GridCenters.cpp
│   │   │   │   ├── Test_Rotation.cpp
│   │   │   │   ├── Test_Shape.cpp
│   │   │   │   ├── Test_SizeControlStates.cpp
│   │   │   │   ├── Test_SizeError.cpp
│   │   │   │   ├── Test_Skew.cpp
│   │   │   │   ├── Test_StateHistory.cpp
│   │   │   │   └── Test_Translation.cpp
│   │   │   ├── Protocols/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   └── Test_Protocols.cpp
│   │   │   ├── Systems/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Test_Expansion.cpp
│   │   │   │   ├── Test_GridCenters.cpp
│   │   │   │   ├── Test_RotScaleTrans.cpp
│   │   │   │   ├── Test_Rotation.cpp
│   │   │   │   ├── Test_Shape.cpp
│   │   │   │   ├── Test_Size.cpp
│   │   │   │   ├── Test_Skew.cpp
│   │   │   │   └── Test_Translation.cpp
│   │   │   ├── Tags/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Test_FunctionsOfTimeInitialize.cpp
│   │   │   │   ├── Test_FutureMeasurements.cpp
│   │   │   │   └── Test_MeasurementTimescales.cpp
│   │   │   ├── Test_Averager.cpp
│   │   │   ├── Test_CleanFunctionsOfTime.cpp
│   │   │   ├── Test_CombinedName.cpp
│   │   │   ├── Test_Controller.cpp
│   │   │   ├── Test_EventTriggerMetafunctions.cpp
│   │   │   ├── Test_ExpirationTimes.cpp
│   │   │   ├── Test_FutureMeasurements.cpp
│   │   │   ├── Test_IsSize.cpp
│   │   │   ├── Test_Measurements.cpp
│   │   │   ├── Test_Metafunctions.cpp
│   │   │   ├── Test_RunCallbacks.cpp
│   │   │   ├── Test_Tags.cpp
│   │   │   ├── Test_TimescaleTuner.cpp
│   │   │   ├── Test_Trigger.cpp
│   │   │   ├── Test_UpdateFunctionOfTime.cpp
│   │   │   └── Test_WriteData.cpp
│   │   ├── DataStructures/
│   │   │   ├── CMakeLists.txt
│   │   │   ├── DataBox/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Test_DataBox.cpp
│   │   │   │   ├── Test_DataBoxDocumentation.cpp
│   │   │   │   ├── Test_DataBoxPrefixes.cpp
│   │   │   │   ├── Test_MetavariablesTag.cpp
│   │   │   │   ├── Test_ObservationBox.cpp
│   │   │   │   ├── Test_PrefixHelpers.cpp
│   │   │   │   ├── Test_Protocols.cpp
│   │   │   │   ├── Test_TagName.cpp
│   │   │   │   ├── Test_TagTraits.cpp
│   │   │   │   ├── Test_TestHelpers.cpp
│   │   │   │   └── Test_ValidateSelection.cpp
│   │   │   ├── Tensor/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── EagerMath/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── CrossProduct.py
│   │   │   │   │   ├── FrameTransform.py
│   │   │   │   │   ├── Python/
│   │   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   │   └── Test_EagerMath.py
│   │   │   │   │   ├── RaiseOrLowerIndex.py
│   │   │   │   │   ├── Test_CartesianToSpherical.cpp
│   │   │   │   │   ├── Test_CrossProduct.cpp
│   │   │   │   │   ├── Test_Determinant.cpp
│   │   │   │   │   ├── Test_DeterminantAndInverse.cpp
│   │   │   │   │   ├── Test_DotProduct.cpp
│   │   │   │   │   ├── Test_FrameTransform.cpp
│   │   │   │   │   ├── Test_GramSchmidtOrthonormalize.cpp
│   │   │   │   │   ├── Test_Magnitude.cpp
│   │   │   │   │   ├── Test_Norms.cpp
│   │   │   │   │   ├── Test_OrthonormalOneform.cpp
│   │   │   │   │   ├── Test_OuterProduct.cpp
│   │   │   │   │   ├── Test_RaiseOrLowerIndex.cpp
│   │   │   │   │   ├── Test_Trace.cpp
│   │   │   │   │   └── Trace.py
│   │   │   │   ├── Expressions/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── Test_AddSubSymmetry.cpp
│   │   │   │   │   ├── Test_AddSubtract.cpp
│   │   │   │   │   ├── Test_Contract.cpp
│   │   │   │   │   ├── Test_DataTypeSupport.cpp
│   │   │   │   │   ├── Test_Divide.cpp
│   │   │   │   │   ├── Test_Evaluate.cpp
│   │   │   │   │   ├── Test_EvaluateComplex.cpp
│   │   │   │   │   ├── Test_EvaluateRank3NonSymmetric.cpp
│   │   │   │   │   ├── Test_EvaluateRank3Symmetric.cpp
│   │   │   │   │   ├── Test_EvaluateRank4.cpp
│   │   │   │   │   ├── Test_EvaluateSpatialAndTimeSpacetimeIndex.cpp
│   │   │   │   │   ├── Test_EvaluateSpatialSpacetimeIndex.cpp
│   │   │   │   │   ├── Test_EvaluateTimeIndex.cpp
│   │   │   │   │   ├── Test_Examples.cpp
│   │   │   │   │   ├── Test_MixedOperations.cpp
│   │   │   │   │   ├── Test_Negate.cpp
│   │   │   │   │   ├── Test_Product.cpp
│   │   │   │   │   ├── Test_ProductHighRankIntermediate.cpp
│   │   │   │   │   ├── Test_SpatialSpacetimeIndex.cpp
│   │   │   │   │   ├── Test_SquareRoot.cpp
│   │   │   │   │   ├── Test_TensorIndex.cpp
│   │   │   │   │   ├── Test_TensorIndexTransformation.cpp
│   │   │   │   │   └── Test_TimeIndex.cpp
│   │   │   │   ├── Python/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   └── Test_Tensor.py
│   │   │   │   ├── Test_CombineSpacetimeView.cpp
│   │   │   │   ├── Test_ContractFirstNIndices.cpp
│   │   │   │   ├── Test_Identity.cpp
│   │   │   │   ├── Test_Metafunctions.cpp
│   │   │   │   ├── Test_Slice.cpp
│   │   │   │   ├── Test_Tensor.cpp
│   │   │   │   └── Test_TensorKokkos.cpp
│   │   │   ├── Test_ApplyMatrices.cpp
│   │   │   ├── Test_BlazeInteroperability.cpp
│   │   │   ├── Test_CachedTempBuffer.cpp
│   │   │   ├── Test_ComplexDataVector.cpp
│   │   │   ├── Test_ComplexDataVectorBinaryOperations.cpp
│   │   │   ├── Test_ComplexDiagonalModalOperator.cpp
│   │   │   ├── Test_ComplexModalVector.cpp
│   │   │   ├── Test_ComplexModalVectorInhomogeneousOperations.cpp
│   │   │   ├── Test_DataVector.cpp
│   │   │   ├── Test_DataVector.py
│   │   │   ├── Test_DataVectorBinaryOperations.cpp
│   │   │   ├── Test_DiagonalModalOperator.cpp
│   │   │   ├── Test_DynamicBuffer.cpp
│   │   │   ├── Test_ExtractPoint.cpp
│   │   │   ├── Test_FixedHashMap.cpp
│   │   │   ├── Test_FloatingPointType.cpp
│   │   │   ├── Test_IdPair.cpp
│   │   │   ├── Test_Index.cpp
│   │   │   ├── Test_IndexIterator.cpp
│   │   │   ├── Test_LeviCivitaIterator.cpp
│   │   │   ├── Test_LinkedMessageId.cpp
│   │   │   ├── Test_LinkedMessageQueue.cpp
│   │   │   ├── Test_MathWrapper.cpp
│   │   │   ├── Test_Matrix.py
│   │   │   ├── Test_ModalVector.cpp
│   │   │   ├── Test_ModalVector.py
│   │   │   ├── Test_ModalVectorInhomogeneousOperations.cpp
│   │   │   ├── Test_MoreComplexDiagonalModalOperatorMath.cpp
│   │   │   ├── Test_MoreDiagonalModalOperatorMath.cpp
│   │   │   ├── Test_NonZeroStaticSizeVector.cpp
│   │   │   ├── Test_SimpleSparseMatrix.cpp
│   │   │   ├── Test_SliceIterator.cpp
│   │   │   ├── Test_SliceTensorToVariables.cpp
│   │   │   ├── Test_SliceVariables.cpp
│   │   │   ├── Test_SparseMatrixFiller.cpp
│   │   │   ├── Test_SpinWeighted.cpp
│   │   │   ├── Test_StaticDeque.cpp
│   │   │   ├── Test_StripeIterator.cpp
│   │   │   ├── Test_TaggedContainers.cpp
│   │   │   ├── Test_TaggedTuple.cpp
│   │   │   ├── Test_TaggedVariant.cpp
│   │   │   ├── Test_Tags.cpp
│   │   │   ├── Test_TempBuffer.cpp
│   │   │   ├── Test_Transpose.cpp
│   │   │   ├── Test_Variables.cpp
│   │   │   ├── Test_VectorImpl.cpp
│   │   │   └── Test_VectorImplTestHelper.cpp
│   │   ├── Domain/
│   │   │   ├── Amr/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Test_Flag.cpp
│   │   │   │   ├── Test_Helpers.cpp
│   │   │   │   ├── Test_Info.cpp
│   │   │   │   ├── Test_NeighborsOfChild.cpp
│   │   │   │   ├── Test_NeighborsOfParent.cpp
│   │   │   │   ├── Test_NewNeighborIds.cpp
│   │   │   │   ├── Test_Tags.cpp
│   │   │   │   └── Test_UpdateAmrDecision.cpp
│   │   │   ├── BoundaryConditions/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Test_BoundaryCondition.cpp
│   │   │   │   ├── Test_GenericBcs.cpp
│   │   │   │   └── Test_GetBoundaryConditionsBase.cpp
│   │   │   ├── CMakeLists.txt
│   │   │   ├── CoordinateMaps/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Python/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   └── Test_Composition.py
│   │   │   │   ├── Test_Affine.cpp
│   │   │   │   ├── Test_BulgedCube.cpp
│   │   │   │   ├── Test_Composition.cpp
│   │   │   │   ├── Test_CoordinateMap.cpp
│   │   │   │   ├── Test_CylindricalEndcap.cpp
│   │   │   │   ├── Test_CylindricalFlatEndcap.cpp
│   │   │   │   ├── Test_CylindricalFlatSide.cpp
│   │   │   │   ├── Test_CylindricalSide.cpp
│   │   │   │   ├── Test_DiscreteRotation.cpp
│   │   │   │   ├── Test_Distribution.cpp
│   │   │   │   ├── Test_EquatorialCompression.cpp
│   │   │   │   ├── Test_Equiangular.cpp
│   │   │   │   ├── Test_FlatOffsetSphericalWedge.cpp
│   │   │   │   ├── Test_FlatOffsetWedge.cpp
│   │   │   │   ├── Test_Frustum.cpp
│   │   │   │   ├── Test_Identity.cpp
│   │   │   │   ├── Test_Interval.cpp
│   │   │   │   ├── Test_KerrHorizonConforming.cpp
│   │   │   │   ├── Test_PolarToCartesian.cpp
│   │   │   │   ├── Test_ProductMaps.cpp
│   │   │   │   ├── Test_Rotation.cpp
│   │   │   │   ├── Test_SpecialMobius.cpp
│   │   │   │   ├── Test_SphericalToCartesianPfaffian.cpp
│   │   │   │   ├── Test_Tags.cpp
│   │   │   │   ├── Test_TimeDependentHelpers.cpp
│   │   │   │   ├── Test_UniformCylindricalEndcap.cpp
│   │   │   │   ├── Test_UniformCylindricalFlatEndcap.cpp
│   │   │   │   ├── Test_UniformCylindricalSide.cpp
│   │   │   │   ├── Test_Wedge2D.cpp
│   │   │   │   ├── Test_Wedge3D.cpp
│   │   │   │   └── TimeDependent/
│   │   │   │       ├── CMakeLists.txt
│   │   │   │       ├── ShapeMapTransitionFunctions/
│   │   │   │       │   ├── CMakeLists.txt
│   │   │   │       │   ├── Test_SphereTransition.cpp
│   │   │   │       │   └── Test_Wedge.cpp
│   │   │   │       ├── Test_CubicScale.cpp
│   │   │   │       ├── Test_ProductMaps.cpp
│   │   │   │       ├── Test_RotScaleTrans.cpp
│   │   │   │       ├── Test_Rotation.cpp
│   │   │   │       ├── Test_RotationMatrixHelpers.cpp
│   │   │   │       ├── Test_Shape.cpp
│   │   │   │       ├── Test_Skew.cpp
│   │   │   │       ├── Test_SphericalCompression.cpp
│   │   │   │       └── Test_Translation.cpp
│   │   │   ├── Creators/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Python/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── Test_BinaryCompactObject.py
│   │   │   │   │   ├── Test_Brick.py
│   │   │   │   │   ├── Test_Cylinder.py
│   │   │   │   │   ├── Test_Interval.py
│   │   │   │   │   ├── Test_Rectangle.py
│   │   │   │   │   └── Test_Sphere.py
│   │   │   │   ├── Test_AlignedLattice.cpp
│   │   │   │   ├── Test_AngularCylinder.cpp
│   │   │   │   ├── Test_AngularDisk.cpp
│   │   │   │   ├── Test_BinaryCompactObject.cpp
│   │   │   │   ├── Test_Brick.cpp
│   │   │   │   ├── Test_CartoonCylinder.cpp
│   │   │   │   ├── Test_CartoonSphere1D.cpp
│   │   │   │   ├── Test_CartoonSphere2D.cpp
│   │   │   │   ├── Test_Cylinder.cpp
│   │   │   │   ├── Test_CylindricalBinaryCompactObject.cpp
│   │   │   │   ├── Test_Disk.cpp
│   │   │   │   ├── Test_ExpandOverBlocks.cpp
│   │   │   │   ├── Test_FrustalCloak.cpp
│   │   │   │   ├── Test_Interval.cpp
│   │   │   │   ├── Test_NonconformingSphericalShells.cpp
│   │   │   │   ├── Test_Rectangle.cpp
│   │   │   │   ├── Test_RotatedBricks.cpp
│   │   │   │   ├── Test_RotatedIntervals.cpp
│   │   │   │   ├── Test_RotatedRectangles.cpp
│   │   │   │   ├── Test_Sphere.cpp
│   │   │   │   ├── Test_SphericalShells.cpp
│   │   │   │   ├── Test_Tags.cpp
│   │   │   │   ├── TimeDependence/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── Test_CubicScale.cpp
│   │   │   │   │   ├── Test_None.cpp
│   │   │   │   │   ├── Test_RotationAboutZAxis.cpp
│   │   │   │   │   ├── Test_ScalingAndZRotation.cpp
│   │   │   │   │   ├── Test_Shape.cpp
│   │   │   │   │   ├── Test_SphericalCompression.cpp
│   │   │   │   │   └── Test_UniformTranslation.cpp
│   │   │   │   └── TimeDependentOptions/
│   │   │   │       ├── CMakeLists.txt
│   │   │   │       ├── Python/
│   │   │   │       │   ├── CMakeLists.txt
│   │   │   │       │   ├── Test_BinaryCompactObject.py
│   │   │   │       │   ├── Test_ExpansionMap.py
│   │   │   │       │   ├── Test_GridCenters.py
│   │   │   │       │   ├── Test_RotationMap.py
│   │   │   │       │   ├── Test_ShapeMap.py
│   │   │   │       │   ├── Test_SkewMap.py
│   │   │   │       │   └── Test_TranslationMap.py
│   │   │   │       ├── Test_BinaryCompactObject.cpp
│   │   │   │       ├── Test_ExpansionMap.cpp
│   │   │   │       ├── Test_FromVolumeFile.cpp
│   │   │   │       ├── Test_GridCenters.cpp
│   │   │   │       ├── Test_RotationMap.cpp
│   │   │   │       ├── Test_ShapeMap.cpp
│   │   │   │       ├── Test_Skew.cpp
│   │   │   │       ├── Test_Sphere.cpp
│   │   │   │       └── Test_TranslationMap.cpp
│   │   │   ├── FunctionsOfTime/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── IntegratedFunctionOfTime.serializations
│   │   │   │   ├── PiecewisePolynomial.serializations
│   │   │   │   ├── QuaternionFunctionOfTime.serializations
│   │   │   │   ├── Test_FixedSpeedCubic.cpp
│   │   │   │   ├── Test_FunctionsOfTimeAreReady.cpp
│   │   │   │   ├── Test_IntegratedFunctionOfTime.cpp
│   │   │   │   ├── Test_OutputTimeBounds.cpp
│   │   │   │   ├── Test_PiecewisePolynomial.cpp
│   │   │   │   ├── Test_QuaternionFunctionOfTime.cpp
│   │   │   │   ├── Test_QuaternionHelpers.cpp
│   │   │   │   ├── Test_SettleToConstant.cpp
│   │   │   │   ├── Test_SettleToConstantQuaternion.cpp
│   │   │   │   ├── Test_Tags.cpp
│   │   │   │   └── Test_ThreadsafeList.cpp
│   │   │   ├── JacobianDiagnostic.py
│   │   │   ├── NormalDotFlux.py
│   │   │   ├── Python/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Test_BlockAndElementLogicalCoordinates.py
│   │   │   │   ├── Test_Direction.py
│   │   │   │   ├── Test_Domain.py
│   │   │   │   ├── Test_ElementId.py
│   │   │   │   ├── Test_ElementMap.py
│   │   │   │   ├── Test_FunctionsOfTime.py
│   │   │   │   ├── Test_JacobianDiagnostic.py
│   │   │   │   ├── Test_RadiallyCompressedCoordinates.py
│   │   │   │   ├── Test_SegmentId.py
│   │   │   │   └── Test_StrahlkorperTransformations.py
│   │   │   ├── Structure/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── OrientationMap1d.serializations
│   │   │   │   ├── OrientationMap2d.serializations
│   │   │   │   ├── OrientationMap3d.serializations
│   │   │   │   ├── Test_BlockGroups.cpp
│   │   │   │   ├── Test_BlockId.cpp
│   │   │   │   ├── Test_BlockNeighbors.cpp
│   │   │   │   ├── Test_ChildSize.cpp
│   │   │   │   ├── Test_CreateInitialMesh.cpp
│   │   │   │   ├── Test_Direction.cpp
│   │   │   │   ├── Test_DirectionalId.cpp
│   │   │   │   ├── Test_Element.cpp
│   │   │   │   ├── Test_ElementId.cpp
│   │   │   │   ├── Test_FaceType.cpp
│   │   │   │   ├── Test_HasBoundary.cpp
│   │   │   │   ├── Test_Hypercube.cpp
│   │   │   │   ├── Test_IndexToSliceAt.cpp
│   │   │   │   ├── Test_InitialElementIds.cpp
│   │   │   │   ├── Test_NeighborIsConforming.cpp
│   │   │   │   ├── Test_Neighbors.cpp
│   │   │   │   ├── Test_ObjectLabel.cpp
│   │   │   │   ├── Test_OrientationMap.cpp
│   │   │   │   ├── Test_OrientationMapHelpers.cpp
│   │   │   │   ├── Test_SegmentId.cpp
│   │   │   │   ├── Test_Side.cpp
│   │   │   │   ├── Test_Topology.cpp
│   │   │   │   ├── Test_TrimMap.cpp
│   │   │   │   └── Test_ZCurve.cpp
│   │   │   ├── Tags/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Test_ElementDistribution.cpp
│   │   │   │   ├── Test_Faces.cpp
│   │   │   │   ├── Test_NeighborMesh.cpp
│   │   │   │   └── Test_SurfaceJacobian.cpp
│   │   │   ├── Test_AreaElement.cpp
│   │   │   ├── Test_Block.cpp
│   │   │   ├── Test_BlockAndElementLogicalCoordinates.cpp
│   │   │   ├── Test_CoordinatesTag.cpp
│   │   │   ├── Test_CoordsToDifferentFrame.cpp
│   │   │   ├── Test_CreateInitialElement.cpp
│   │   │   ├── Test_Domain.cpp
│   │   │   ├── Test_DomainHelpers.cpp
│   │   │   ├── Test_DomainTestHelpers.cpp
│   │   │   ├── Test_ElementDistribution.cpp
│   │   │   ├── Test_ElementMap.cpp
│   │   │   ├── Test_ElementSearchTree.cpp
│   │   │   ├── Test_ElementToBlockLogicalMap.cpp
│   │   │   ├── Test_ExcisionSphere.cpp
│   │   │   ├── Test_FaceNormal.cpp
│   │   │   ├── Test_FlatLogicalMetric.cpp
│   │   │   ├── Test_InterfaceHelpers.cpp
│   │   │   ├── Test_InterfaceItems.cpp
│   │   │   ├── Test_InterfaceLogicalCoordinates.cpp
│   │   │   ├── Test_JacobianDiagnostic.cpp
│   │   │   ├── Test_MinimumGridSpacing.cpp
│   │   │   ├── Test_RadiallyCompressedCoordinates.cpp
│   │   │   ├── Test_SizeOfElement.cpp
│   │   │   ├── Test_StrahlkorperTransformations.cpp
│   │   │   ├── Test_Tags.cpp
│   │   │   ├── Test_TagsCharacteristicSpeeds.cpp
│   │   │   └── Test_TagsTimeDependent.cpp
│   │   ├── Elliptic/
│   │   │   ├── Actions/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Test_InitializeAnalyticSolution.cpp
│   │   │   │   ├── Test_InitializeBackgroundFields.cpp
│   │   │   │   ├── Test_InitializeFields.cpp
│   │   │   │   ├── Test_InitializeFixedSources.cpp
│   │   │   │   └── Test_RunEventsAndTriggers.cpp
│   │   │   ├── BoundaryConditions/
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── Tags/
│   │   │   │   │   └── Test_BoundaryFields.cpp
│   │   │   │   ├── Test_AnalyticSolution.cpp
│   │   │   │   ├── Test_BoundaryCondition.cpp
│   │   │   │   ├── Test_BoundaryConditionType.cpp
│   │  
Copy disabled (too large) Download .txt
Showing preview only (60,465K chars total). Download the full file to get everything.
SYMBOL INDEX (38182 symbols across 5330 files)

FILE: .github/scripts/Release.py
  function report_check_only (line 35) | def report_check_only(msg: str):
  function new_version_id_from_response (line 39) | def new_version_id_from_response(response):
  function raise_for_status (line 55) | def raise_for_status(response):
  class Zenodo (line 69) | class Zenodo(uplink.Consumer):
    method get_deposition (line 74) | def get_deposition(self, id: uplink.Path):
    method get_record (line 80) | def get_record(self, id: uplink.Path):
    method is_latest_version (line 89) | def is_latest_version(self, record_id: uplink.Path(name="id")):
    method new_version (line 95) | def new_version(self, latest_version_id: uplink.Path(name="id")):
    method publish (line 105) | def publish(self, id: uplink.Path):
    method update_deposition (line 112) | def update_deposition(self, id: uplink.Path, **body: uplink.Body):
    method upload_file (line 118) | def upload_file(
  class Github (line 126) | class Github(uplink.Consumer):
    method render_markdown_raw (line 134) | def render_markdown_raw(self, text: uplink.Body):
    method get_release_by_tag (line 140) | def get_release_by_tag(
    method get_assets (line 147) | def get_assets(
  function to_plaintext_reference (line 153) | def to_plaintext_reference(
  function collect_zenodo_metadata (line 167) | def collect_zenodo_metadata(
  function to_cff_person (line 233) | def to_cff_person(person: pybtex.database.Person) -> dict:
  function to_cff_reference (line 257) | def to_cff_reference(bib_entry: pybtex.database.Entry) -> dict:
  function collect_citation_metadata (line 326) | def collect_citation_metadata(
  function build_bibtex_entry (line 380) | def build_bibtex_entry(metadata: dict):
  function prepare (line 435) | def prepare(
  function publish (line 759) | def publish(

FILE: .skills/scripts/FetchCiLog.py
  function fetch_job_summary (line 32) | def fetch_job_summary(job_id, owner, repo):
  function fetch_job_log (line 53) | def fetch_job_log(job_id, owner, repo):
  function strip_timestamps (line 67) | def strip_timestamps(lines):
  function find_failure_lines (line 72) | def find_failure_lines(lines):
  function merge_windows (line 88) | def merge_windows(hits, context, total_lines):
  function print_window (line 108) | def print_window(lines, start, end, failure_indices):
  function main (line 115) | def main():

FILE: .skills/scripts/FetchIssue.py
  function is_random_failure (line 18) | def is_random_failure(title, all_text):
  function extract_make_generator_seeds (line 25) | def extract_make_generator_seeds(all_text):
  function extract_test_name (line 49) | def extract_test_name(title):
  function main (line 55) | def main():

FILE: .skills/scripts/FetchPrComments.py
  function run_gh_command (line 12) | def run_gh_command(cmd):
  function fetch_pr_metadata (line 21) | def fetch_pr_metadata(pr_number, repo=None):
  function fetch_review_threads (line 39) | def fetch_review_threads(pr_number, repo=None):
  function print_pr_header (line 105) | def print_pr_header(data):
  function print_changed_files (line 117) | def print_changed_files(files):
  function print_pr_body (line 130) | def print_pr_body(body):
  function print_top_level_comments (line 141) | def print_top_level_comments(comments):
  function print_review_summaries (line 156) | def print_review_summaries(reviews):
  function print_review_threads (line 173) | def print_review_threads(threads):
  function main (line 231) | def main():

FILE: cmake/CheckBrokenArray0.cpp
  function main (line 11) | int main() {

FILE: cmake/SpectreParseTests.py
  function parse_source_file (line 71) | def parse_source_file(file_name):

FILE: docs/Images/Tutorials/make_multicube_figures.py
  function draw_basis_vectors (line 18) | def draw_basis_vectors(
  function draw_polygon_collection (line 64) | def draw_polygon_collection(ax, polygons, face_colors, edge_colors):
  function quad (line 72) | def quad(p, i, j, k, l):
  function cube (line 76) | def cube(p, index_start, strides):
  function black_color (line 105) | def black_color(mean_xyz):
  class CubeManager (line 109) | class CubeManager:
    method __init__ (line 110) | def __init__(self, point_list, strides, edge_color_function=black_color):
    method add_cube (line 118) | def add_cube(self, start_index, these_faces_transparent=[]):
  function one_cube_figure (line 138) | def one_cube_figure():
  function two_cube_figures (line 164) | def two_cube_figures():
  function eight_cube_figures (line 195) | def eight_cube_figures():
  function eight_cube_rotated_exploded_figure (line 262) | def eight_cube_rotated_exploded_figure():
  function tesseract_figure (line 344) | def tesseract_figure():

FILE: docs/config/doxygen-awesome-fragment-copy-button.js
  class DoxygenAwesomeFragmentCopyButton (line 30) | class DoxygenAwesomeFragmentCopyButton extends HTMLElement {
    method constructor (line 31) | constructor() {
    method init (line 39) | static init() {
    method copyContent (line 60) | copyContent() {

FILE: docs/config/doxygen-awesome-interactive-toc.js
  class DoxygenAwesomeInteractiveToc (line 30) | class DoxygenAwesomeInteractiveToc {
    method init (line 35) | static init() {
    method update (line 65) | static update() {
    method throttle (line 80) | static throttle(func, delay) {

FILE: docs/config/doxygen-awesome-paragraph-link.js
  class DoxygenAwesomeParagraphLink (line 30) | class DoxygenAwesomeParagraphLink {
    method init (line 36) | static init() {

FILE: docs/config/js/doxygen-navtree-hacks.js
  function getNode (line 10) | function getNode(o, po) {
  function expandNode (line 21) | function expandNode(o, node, imm, showRoot) {
  function initNavTree (line 41) | function initNavTree(toroot, relpath) {
  function checkChildrenData (line 100) | function checkChildrenData(node) {
  function createIndent (line 115) | function createIndent(o, domNode, node, level) {
  function selectAndHighlight (line 148) | function selectAndHighlight(hash, n) {

FILE: docs/config/postprocess_docs.py
  function append_eprint_links_to_citelist (line 14) | def append_eprint_links_to_citelist(html_dir, references_files):
  function parse_args (line 61) | def parse_args():

FILE: external/EffectiveSource/effsource.h
  type coordinate (line 5) | struct coordinate {
  type coordinate (line 13) | struct coordinate
  type coordinate (line 15) | struct coordinate
  type coordinate (line 16) | struct coordinate
  type coordinate (line 19) | struct coordinate
  type coordinate (line 20) | struct coordinate

FILE: external/EffectiveSource/kerr-circular.c
  type coordinate (line 12) | struct coordinate
  function effsource_PhiS (line 75) | void effsource_PhiS(struct coordinate * x, double * PhiS)
  function effsource_PhiS_m (line 122) | void effsource_PhiS_m(int m, struct coordinate * x, double * PhiS)
  function effsource_calc (line 211) | void effsource_calc(struct coordinate * x,
  function effsource_calc_m (line 357) | void effsource_calc_m(int m, struct coordinate * x,
  function effsource_init (line 778) | void effsource_init(double mass, double spin)
  function effsource_set_particle (line 785) | void effsource_set_particle(struct coordinate * x_p, double E, double L,...

FILE: external/GravitationalEffectiveSource/effsource_gr.h
  type coordinate (line 5) | struct coordinate {
  type coordinate (line 13) | struct coordinate
  type coordinate (line 15) | struct coordinate
  type coordinate (line 16) | struct coordinate
  type coordinate (line 18) | struct coordinate
  type coordinate (line 20) | struct coordinate

FILE: external/GravitationalEffectiveSource/kerr-circular.c
  type coordinate (line 11) | struct coordinate
  function max (line 83) | static inline int max(int a, int b)
  function effsource_hS (line 89) | void effsource_hS(struct coordinate * x, double * hS)
  function effsource_hS_m (line 138) | void effsource_hS_m(int m, struct coordinate * x, double * hS_re, double...
  function effsource_calc (line 285) | void effsource_calc(struct coordinate * x, double *hS, double *dhS_dr,
  function effsource_calc_m (line 567) | void effsource_calc_m(int m, struct coordinate * x, double *hS_re, doubl...
  function effsource_init (line 1327) | void effsource_init(double mass, double spin)
  function effsource_set_particle (line 1334) | void effsource_set_particle(struct coordinate * x, double E, double L, d...

FILE: external/brigand/include/brigand/brigand.hpp
  type brigand (line 12) | namespace brigand
    type integral_constant (line 15) | struct integral_constant
      method value_type (line 21) | value_type operator()() const { return (value); }
    type list (line 31) | struct list
    type detail (line 40) | namespace detail
      type dup_append_list (line 43) | struct dup_append_list
      type filled_list_impl (line 50) | struct filled_list_impl
      type filled_list_impl<T, List, 1> (line 56) | struct filled_list_impl<T, List, 1>
      type filled_list_impl<T, List, 0> (line 61) | struct filled_list_impl<T, List, 0>
      type append_impl (line 88) | struct append_impl
      type append_impl<> (line 90) | struct append_impl<>
      type map_impl (line 184) | struct map_impl
        type Pack (line 201) | struct Pack : pair<typename Ts::first_type, Ts>...
        type erase_return_t (line 219) | struct erase_return_t
      type map_impl<> (line 186) | struct map_impl<>
      type map_impl (line 198) | struct map_impl
        type Pack (line 201) | struct Pack : pair<typename Ts::first_type, Ts>...
        type erase_return_t (line 219) | struct erase_return_t
      type make_map (line 231) | struct make_map : type_<typename Ts::first_type>...
      type element_at (line 244) | struct element_at
      type at_impl (line 252) | struct at_impl
      type has_at_method (line 264) | struct has_at_method
        type dummy (line 266) | struct dummy
      type at_dispatch (line 277) | struct at_dispatch
      type at_dispatch<L, Index, true> (line 282) | struct at_dispatch<L, Index, true>
      type packaged_lcall (line 331) | struct packaged_lcall
      type apply (line 335) | struct apply {
      type clear_impl (line 451) | struct clear_impl
      type split_at_impl (line 466) | struct split_at_impl
      type call_split_at_impl (line 504) | struct call_split_at_impl : split_at_impl<(I::value > 16), brigand::...
      type push_front_impl (line 521) | struct push_front_impl
      type front_impl (line 540) | struct front_impl
      type pop_front_impl (line 552) | struct pop_front_impl
      type pop_front_element (line 559) | struct pop_front_element
      type substitute_impl (line 592) | struct substitute_impl
      type substitute_impl<args<Index>,List> (line 602) | struct substitute_impl<args<Index>,List>
      function count_bools (line 642) | constexpr unsigned int count_bools(const std::array<bool, length> & ...
      function count_bools (line 655) | constexpr unsigned int count_bools(bool const * const begin, bool co...
      type template_count_bools (line 663) | struct template_count_bools
      type push_back_impl (line 758) | struct push_back_impl
      type rot90 (line 778) | struct rot90
      type rot90<L1, list<>> (line 794) | struct rot90<L1, list<>>
      type transform_impl (line 799) | struct transform_impl
      type transform_apply (line 801) | struct transform_apply
      type transform (line 814) | struct transform : transform_impl<back<list<FuncOrSeqs...>>, Seq1, S...
      type as_sequence_impl (line 865) | struct as_sequence_impl
      type non_null_impl (line 943) | struct non_null_impl : bool_<Args::value != 0>{}
      type all_helper (line 955) | struct all_helper : ::brigand::apply<P, T>
      type bools_ (line 959) | struct bools_
      type all_impl (line 963) | struct all_impl
      type all_same (line 974) | struct all_same
        method all_same (line 977) | constexpr all_same(...) {}
        method all_same (line 979) | constexpr all_same(std::initializer_list<T *>) : value{true}
      type all_impl (line 984) | struct all_impl : bool_<true>
      type none_impl (line 1022) | struct none_impl
        type nope (line 1025) | struct nope
      type none_impl (line 1037) | struct none_impl : bool_<true>
        type nope (line 1025) | struct nope
      type any_impl (line 1074) | struct any_impl : bool_<!none<Sequence,Predicate>::value> {}
      type finder (line 1084) | struct finder
        type find (line 1089) | struct find
        type find<true, false, L> (line 1094) | struct find<true, false, L>
      type reverse_elements (line 1133) | struct reverse_elements
      type reverse_elements<L> (line 1135) | struct reverse_elements<L>
      type reverse_impl (line 1150) | struct reverse_impl
      type flatten_impl (line 1215) | struct flatten_impl
      type flatten_element_impl (line 1220) | struct flatten_element_impl
      type fold_impl (line 1246) | struct fold_impl
      type fold_impl<Functor, State, Sequence<T0>> (line 1253) | struct fold_impl<Functor, State, Sequence<T0>>
      type fold_impl<Functor, State, Sequence<T0, T1>> (line 1260) | struct fold_impl<Functor, State, Sequence<T0, T1>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2>> (line 1269) | struct fold_impl<Functor, State, Sequence<T0, T1, T2>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2, T3>> (line 1280) | struct fold_impl<Functor, State, Sequence<T0, T1, T2, T3>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4>> (line 1293) | struct fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5>> (line 1308) | struct fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5, T6>> (line 1325) | struct fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5, T6>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5, T6, T7>> (line 1344) | struct fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5, T6...
      type reverse_fold_impl (line 1389) | struct reverse_fold_impl
      function Functor (line 1451) | constexpr Functor for_each_impl( type_<List<Elements...>>&&, Functor...
      type index_if_impl (line 1466) | struct index_if_impl
      type index_if_impl<false, Sequence, Predicate, NotFoundType> (line 1472) | struct index_if_impl<false, Sequence, Predicate, NotFoundType>
      type range_cat (line 1488) | struct range_cat
      type int_plus (line 1491) | struct int_plus
      type range_impl (line 1506) | struct range_impl : range_cat<T, typename range_impl<T, Start, N / 2...
      type range_impl<T, Start, 1> (line 1511) | struct range_impl<T, Start, 1>
      type range_impl<T, Start, 0> (line 1516) | struct range_impl<T, Start, 0>
      type reverse_range_cat (line 1521) | struct reverse_range_cat
      type int_minus (line 1524) | struct int_minus
      type reverse_range_impl (line 1539) | struct reverse_range_impl
      type reverse_range_impl<T, Start, 1> (line 1545) | struct reverse_range_impl<T, Start, 1>
      type reverse_range_impl<T, Start, 0> (line 1550) | struct reverse_range_impl<T, Start, 0>
      type reverse_range_safe (line 1555) | struct reverse_range_safe
      type unique_x_t (line 1574) | struct unique_x_t
      type is_set_impl (line 1579) | struct is_set_impl
      type is_set_impl<list<>> (line 1581) | struct is_set_impl<list<>>
      type qrref (line 1598) | struct qrref
      type qref (line 1602) | struct qref
      type qnoref (line 1606) | struct qnoref
      type msvc_quali_ref (line 1610) | struct msvc_quali_ref
      type msvc_quali_ref<T &> (line 1615) | struct msvc_quali_ref<T &>
      type msvc_quali_ref<T &&> (line 1620) | struct msvc_quali_ref<T &&>
      type unique_x_t (line 1632) | struct unique_x_t : type_<T>
      type is_set_cont (line 1636) | struct is_set_cont
      type empty_helper (line 1735) | struct empty_helper : ::brigand::apply<Pred, T>
      type empty_if_true (line 1739) | struct empty_if_true : std::conditional<empty_helper<Pred, T>::value...
      type empty_if_true<bind<F, _1>, T, B> (line 1743) | struct empty_if_true<bind<F, _1>, T, B> : std::conditional<F<T>::val...
      type empty_if_true<F<_1>, T, B> (line 1747) | struct empty_if_true<F<_1>, T, B> : std::conditional<F<T>::type::val...
      type rep_helper (line 1803) | struct rep_helper
      type replacer (line 1808) | struct replacer : std::conditional<rep_helper<Pred, T>::type::value,...
      type replacer<T, bind<F, _1>, NewType> (line 1812) | struct replacer<T, bind<F, _1>, NewType> : std::conditional<F<T>::va...
      type replacer<T, F<_1>, NewType> (line 1816) | struct replacer<T, F<_1>, NewType> : std::conditional<F<T>::type::va...
      type split_impl (line 1857) | struct split_impl
      type split_helper (line 1884) | struct split_helper
      type split_helper<L<>, TDelim> (line 1889) | struct split_helper<L<>, TDelim> {
      type merge_helper (line 1918) | struct merge_helper : ::brigand::apply<Comp, T1, U>
      type merge_impl (line 1922) | struct merge_impl
      type merge_insert (line 1924) | struct merge_insert
      type sort_impl (line 1997) | struct sort_impl
      type mini_sort (line 1999) | struct mini_sort
      type mini_sort<list<T0, T1, T2, T3>, Comp> (line 2014) | struct mini_sort<list<T0, T1, T2, T3>, Comp>
      type mini_sort<list<T0, T1, T2>, Comp> (line 2020) | struct mini_sort<list<T0, T1, T2>, Comp>
      type mini_sort<list<T0, T1>, Comp> (line 2025) | struct mini_sort<list<T0, T1>, Comp>
      type mini_sort<list<T0>, Comp> (line 2031) | struct mini_sort<list<T0>, Comp>
      type sort_impl<list<L>, list<>, Comp> (line 2108) | struct sort_impl<list<L>, list<>, Comp>
      type sort_impl<list<L0, L1>, list<>, Comp> (line 2113) | struct sort_impl<list<L0, L1>, list<>, Comp>
      type sort_impl<list<L0, L1, L2>, list<>, Comp> (line 2118) | struct sort_impl<list<L0, L1, L2>, list<>, Comp>
      type sort_impl<list<>, list<>, Comp> (line 2123) | struct sort_impl<list<>, list<>, Comp>
      type and_impl (line 2391) | struct and_impl
      type and_impl<0> (line 2393) | struct and_impl<0>
      type and_impl<1> (line 2402) | struct and_impl<1>
      type or_impl (line 2432) | struct or_impl
      type or_impl<0> (line 2434) | struct or_impl<0>
      type or_impl<1> (line 2443) | struct or_impl<1>
      type repeat_impl (line 2481) | struct repeat_impl
      type repeat_impl<F, 7, T> (line 2485) | struct repeat_impl<F, 7, T>
      type repeat_impl<F, 6, T> (line 2490) | struct repeat_impl<F, 6, T>
      type repeat_impl<F, 5, T> (line 2495) | struct repeat_impl<F, 5, T>
      type repeat_impl<F, 4, T> (line 2500) | struct repeat_impl<F, 4, T>
      type repeat_impl<F, 3, T> (line 2505) | struct repeat_impl<F, 3, T>
      type repeat_impl<F, 2, T> (line 2510) | struct repeat_impl<F, 2, T>
      type repeat_impl<F, 1, T> (line 2515) | struct repeat_impl<F, 1, T>
      type repeat_impl<F, 0, T> (line 2520) | struct repeat_impl<F, 0, T>
      type has_key_impl (line 2545) | struct has_key_impl
      type mksq8 (line 2558) | struct mksq8
      type mksq8<Start, 8, Next> (line 2572) | struct mksq8<Start, 8, Next>
      type make_sequence_impl (line 2584) | struct make_sequence_impl
      type has_erase_method (line 2613) | struct has_erase_method
        type dummy (line 2615) | struct dummy
      type erase_dispatch (line 2626) | struct erase_dispatch
      type erase_dispatch<C, K, true> (line 2631) | struct erase_dispatch<C, K, true>
      type insert_impl (line 2644) | struct insert_impl
      type contains_impl (line 2657) | struct contains_impl
      type make_set (line 2670) | struct make_set
      type set_erase_pred_impl (line 2672) | struct set_erase_pred_impl
      type set_erase_pred_impl<K,K> (line 2677) | struct set_erase_pred_impl<K,K>
      type set_impl (line 2682) | struct set_impl
      type make_set (line 2700) | struct make_set : type_<Ts>...
      type get_second (line 2717) | struct get_second {
      type get_first (line 2729) | struct get_first {
    type lazy (line 71) | namespace lazy
      type wrap (line 73) | struct wrap
      type join (line 136) | struct join
      type lookup_at (line 169) | struct lookup_at
      type lookup (line 175) | struct lookup : lookup_at<M, K>::type
      type push_front (line 531) | struct push_front : detail::push_front_impl<L, T...>
      type pop_front (line 576) | struct pop_front : detail::pop_front_impl<L, N::value>
      type count_if (line 685) | struct count_if
      type count_if<S<>, Pred> (line 689) | struct count_if<S<>, Pred>
      type count_if<S<>, bind<F, _1>> (line 695) | struct count_if<S<>, bind<F, _1>>
      type count_if<S<>, F<_1>> (line 700) | struct count_if<S<>, F<_1>>
      type transform (line 844) | struct transform : detail::transform<sizeof...(OpSeq2), Sequence1, O...
      type find (line 1170) | struct find
      type reverse_find (line 1189) | struct reverse_find {
      type remove_if (line 1653) | struct remove_if
      type remove_if<L<>, Pred> (line 1655) | struct remove_if<L<>, Pred> {
      type remove (line 1688) | struct remove
      type filter (line 1699) | struct filter
      type filter<L<>, Pred> (line 1701) | struct filter<L<>, Pred> {
      type remove_if (line 1754) | struct remove_if
      type remove (line 1765) | struct remove
      type filter (line 1776) | struct filter
      type replace_if (line 1823) | struct replace_if
      type replace (line 1830) | struct replace : replace_if<Sequence, std::is_same<_1, pin<OldType>>...
      type inherit_linearly (line 2791) | struct inherit_linearly
    type detail (line 85) | namespace detail
      type dup_append_list (line 43) | struct dup_append_list
      type filled_list_impl (line 50) | struct filled_list_impl
      type filled_list_impl<T, List, 1> (line 56) | struct filled_list_impl<T, List, 1>
      type filled_list_impl<T, List, 0> (line 61) | struct filled_list_impl<T, List, 0>
      type append_impl (line 88) | struct append_impl
      type append_impl<> (line 90) | struct append_impl<>
      type map_impl (line 184) | struct map_impl
        type Pack (line 201) | struct Pack : pair<typename Ts::first_type, Ts>...
        type erase_return_t (line 219) | struct erase_return_t
      type map_impl<> (line 186) | struct map_impl<>
      type map_impl (line 198) | struct map_impl
        type Pack (line 201) | struct Pack : pair<typename Ts::first_type, Ts>...
        type erase_return_t (line 219) | struct erase_return_t
      type make_map (line 231) | struct make_map : type_<typename Ts::first_type>...
      type element_at (line 244) | struct element_at
      type at_impl (line 252) | struct at_impl
      type has_at_method (line 264) | struct has_at_method
        type dummy (line 266) | struct dummy
      type at_dispatch (line 277) | struct at_dispatch
      type at_dispatch<L, Index, true> (line 282) | struct at_dispatch<L, Index, true>
      type packaged_lcall (line 331) | struct packaged_lcall
      type apply (line 335) | struct apply {
      type clear_impl (line 451) | struct clear_impl
      type split_at_impl (line 466) | struct split_at_impl
      type call_split_at_impl (line 504) | struct call_split_at_impl : split_at_impl<(I::value > 16), brigand::...
      type push_front_impl (line 521) | struct push_front_impl
      type front_impl (line 540) | struct front_impl
      type pop_front_impl (line 552) | struct pop_front_impl
      type pop_front_element (line 559) | struct pop_front_element
      type substitute_impl (line 592) | struct substitute_impl
      type substitute_impl<args<Index>,List> (line 602) | struct substitute_impl<args<Index>,List>
      function count_bools (line 642) | constexpr unsigned int count_bools(const std::array<bool, length> & ...
      function count_bools (line 655) | constexpr unsigned int count_bools(bool const * const begin, bool co...
      type template_count_bools (line 663) | struct template_count_bools
      type push_back_impl (line 758) | struct push_back_impl
      type rot90 (line 778) | struct rot90
      type rot90<L1, list<>> (line 794) | struct rot90<L1, list<>>
      type transform_impl (line 799) | struct transform_impl
      type transform_apply (line 801) | struct transform_apply
      type transform (line 814) | struct transform : transform_impl<back<list<FuncOrSeqs...>>, Seq1, S...
      type as_sequence_impl (line 865) | struct as_sequence_impl
      type non_null_impl (line 943) | struct non_null_impl : bool_<Args::value != 0>{}
      type all_helper (line 955) | struct all_helper : ::brigand::apply<P, T>
      type bools_ (line 959) | struct bools_
      type all_impl (line 963) | struct all_impl
      type all_same (line 974) | struct all_same
        method all_same (line 977) | constexpr all_same(...) {}
        method all_same (line 979) | constexpr all_same(std::initializer_list<T *>) : value{true}
      type all_impl (line 984) | struct all_impl : bool_<true>
      type none_impl (line 1022) | struct none_impl
        type nope (line 1025) | struct nope
      type none_impl (line 1037) | struct none_impl : bool_<true>
        type nope (line 1025) | struct nope
      type any_impl (line 1074) | struct any_impl : bool_<!none<Sequence,Predicate>::value> {}
      type finder (line 1084) | struct finder
        type find (line 1089) | struct find
        type find<true, false, L> (line 1094) | struct find<true, false, L>
      type reverse_elements (line 1133) | struct reverse_elements
      type reverse_elements<L> (line 1135) | struct reverse_elements<L>
      type reverse_impl (line 1150) | struct reverse_impl
      type flatten_impl (line 1215) | struct flatten_impl
      type flatten_element_impl (line 1220) | struct flatten_element_impl
      type fold_impl (line 1246) | struct fold_impl
      type fold_impl<Functor, State, Sequence<T0>> (line 1253) | struct fold_impl<Functor, State, Sequence<T0>>
      type fold_impl<Functor, State, Sequence<T0, T1>> (line 1260) | struct fold_impl<Functor, State, Sequence<T0, T1>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2>> (line 1269) | struct fold_impl<Functor, State, Sequence<T0, T1, T2>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2, T3>> (line 1280) | struct fold_impl<Functor, State, Sequence<T0, T1, T2, T3>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4>> (line 1293) | struct fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5>> (line 1308) | struct fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5, T6>> (line 1325) | struct fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5, T6>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5, T6, T7>> (line 1344) | struct fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5, T6...
      type reverse_fold_impl (line 1389) | struct reverse_fold_impl
      function Functor (line 1451) | constexpr Functor for_each_impl( type_<List<Elements...>>&&, Functor...
      type index_if_impl (line 1466) | struct index_if_impl
      type index_if_impl<false, Sequence, Predicate, NotFoundType> (line 1472) | struct index_if_impl<false, Sequence, Predicate, NotFoundType>
      type range_cat (line 1488) | struct range_cat
      type int_plus (line 1491) | struct int_plus
      type range_impl (line 1506) | struct range_impl : range_cat<T, typename range_impl<T, Start, N / 2...
      type range_impl<T, Start, 1> (line 1511) | struct range_impl<T, Start, 1>
      type range_impl<T, Start, 0> (line 1516) | struct range_impl<T, Start, 0>
      type reverse_range_cat (line 1521) | struct reverse_range_cat
      type int_minus (line 1524) | struct int_minus
      type reverse_range_impl (line 1539) | struct reverse_range_impl
      type reverse_range_impl<T, Start, 1> (line 1545) | struct reverse_range_impl<T, Start, 1>
      type reverse_range_impl<T, Start, 0> (line 1550) | struct reverse_range_impl<T, Start, 0>
      type reverse_range_safe (line 1555) | struct reverse_range_safe
      type unique_x_t (line 1574) | struct unique_x_t
      type is_set_impl (line 1579) | struct is_set_impl
      type is_set_impl<list<>> (line 1581) | struct is_set_impl<list<>>
      type qrref (line 1598) | struct qrref
      type qref (line 1602) | struct qref
      type qnoref (line 1606) | struct qnoref
      type msvc_quali_ref (line 1610) | struct msvc_quali_ref
      type msvc_quali_ref<T &> (line 1615) | struct msvc_quali_ref<T &>
      type msvc_quali_ref<T &&> (line 1620) | struct msvc_quali_ref<T &&>
      type unique_x_t (line 1632) | struct unique_x_t : type_<T>
      type is_set_cont (line 1636) | struct is_set_cont
      type empty_helper (line 1735) | struct empty_helper : ::brigand::apply<Pred, T>
      type empty_if_true (line 1739) | struct empty_if_true : std::conditional<empty_helper<Pred, T>::value...
      type empty_if_true<bind<F, _1>, T, B> (line 1743) | struct empty_if_true<bind<F, _1>, T, B> : std::conditional<F<T>::val...
      type empty_if_true<F<_1>, T, B> (line 1747) | struct empty_if_true<F<_1>, T, B> : std::conditional<F<T>::type::val...
      type rep_helper (line 1803) | struct rep_helper
      type replacer (line 1808) | struct replacer : std::conditional<rep_helper<Pred, T>::type::value,...
      type replacer<T, bind<F, _1>, NewType> (line 1812) | struct replacer<T, bind<F, _1>, NewType> : std::conditional<F<T>::va...
      type replacer<T, F<_1>, NewType> (line 1816) | struct replacer<T, F<_1>, NewType> : std::conditional<F<T>::type::va...
      type split_impl (line 1857) | struct split_impl
      type split_helper (line 1884) | struct split_helper
      type split_helper<L<>, TDelim> (line 1889) | struct split_helper<L<>, TDelim> {
      type merge_helper (line 1918) | struct merge_helper : ::brigand::apply<Comp, T1, U>
      type merge_impl (line 1922) | struct merge_impl
      type merge_insert (line 1924) | struct merge_insert
      type sort_impl (line 1997) | struct sort_impl
      type mini_sort (line 1999) | struct mini_sort
      type mini_sort<list<T0, T1, T2, T3>, Comp> (line 2014) | struct mini_sort<list<T0, T1, T2, T3>, Comp>
      type mini_sort<list<T0, T1, T2>, Comp> (line 2020) | struct mini_sort<list<T0, T1, T2>, Comp>
      type mini_sort<list<T0, T1>, Comp> (line 2025) | struct mini_sort<list<T0, T1>, Comp>
      type mini_sort<list<T0>, Comp> (line 2031) | struct mini_sort<list<T0>, Comp>
      type sort_impl<list<L>, list<>, Comp> (line 2108) | struct sort_impl<list<L>, list<>, Comp>
      type sort_impl<list<L0, L1>, list<>, Comp> (line 2113) | struct sort_impl<list<L0, L1>, list<>, Comp>
      type sort_impl<list<L0, L1, L2>, list<>, Comp> (line 2118) | struct sort_impl<list<L0, L1, L2>, list<>, Comp>
      type sort_impl<list<>, list<>, Comp> (line 2123) | struct sort_impl<list<>, list<>, Comp>
      type and_impl (line 2391) | struct and_impl
      type and_impl<0> (line 2393) | struct and_impl<0>
      type and_impl<1> (line 2402) | struct and_impl<1>
      type or_impl (line 2432) | struct or_impl
      type or_impl<0> (line 2434) | struct or_impl<0>
      type or_impl<1> (line 2443) | struct or_impl<1>
      type repeat_impl (line 2481) | struct repeat_impl
      type repeat_impl<F, 7, T> (line 2485) | struct repeat_impl<F, 7, T>
      type repeat_impl<F, 6, T> (line 2490) | struct repeat_impl<F, 6, T>
      type repeat_impl<F, 5, T> (line 2495) | struct repeat_impl<F, 5, T>
      type repeat_impl<F, 4, T> (line 2500) | struct repeat_impl<F, 4, T>
      type repeat_impl<F, 3, T> (line 2505) | struct repeat_impl<F, 3, T>
      type repeat_impl<F, 2, T> (line 2510) | struct repeat_impl<F, 2, T>
      type repeat_impl<F, 1, T> (line 2515) | struct repeat_impl<F, 1, T>
      type repeat_impl<F, 0, T> (line 2520) | struct repeat_impl<F, 0, T>
      type has_key_impl (line 2545) | struct has_key_impl
      type mksq8 (line 2558) | struct mksq8
      type mksq8<Start, 8, Next> (line 2572) | struct mksq8<Start, 8, Next>
      type make_sequence_impl (line 2584) | struct make_sequence_impl
      type has_erase_method (line 2613) | struct has_erase_method
        type dummy (line 2615) | struct dummy
      type erase_dispatch (line 2626) | struct erase_dispatch
      type erase_dispatch<C, K, true> (line 2631) | struct erase_dispatch<C, K, true>
      type insert_impl (line 2644) | struct insert_impl
      type contains_impl (line 2657) | struct contains_impl
      type make_set (line 2670) | struct make_set
      type set_erase_pred_impl (line 2672) | struct set_erase_pred_impl
      type set_erase_pred_impl<K,K> (line 2677) | struct set_erase_pred_impl<K,K>
      type set_impl (line 2682) | struct set_impl
      type make_set (line 2700) | struct make_set : type_<Ts>...
      type get_second (line 2717) | struct get_second {
      type get_first (line 2729) | struct get_first {
    type lazy (line 126) | namespace lazy
      type wrap (line 73) | struct wrap
      type join (line 136) | struct join
      type lookup_at (line 169) | struct lookup_at
      type lookup (line 175) | struct lookup : lookup_at<M, K>::type
      type push_front (line 531) | struct push_front : detail::push_front_impl<L, T...>
      type pop_front (line 576) | struct pop_front : detail::pop_front_impl<L, N::value>
      type count_if (line 685) | struct count_if
      type count_if<S<>, Pred> (line 689) | struct count_if<S<>, Pred>
      type count_if<S<>, bind<F, _1>> (line 695) | struct count_if<S<>, bind<F, _1>>
      type count_if<S<>, F<_1>> (line 700) | struct count_if<S<>, F<_1>>
      type transform (line 844) | struct transform : detail::transform<sizeof...(OpSeq2), Sequence1, O...
      type find (line 1170) | struct find
      type reverse_find (line 1189) | struct reverse_find {
      type remove_if (line 1653) | struct remove_if
      type remove_if<L<>, Pred> (line 1655) | struct remove_if<L<>, Pred> {
      type remove (line 1688) | struct remove
      type filter (line 1699) | struct filter
      type filter<L<>, Pred> (line 1701) | struct filter<L<>, Pred> {
      type remove_if (line 1754) | struct remove_if
      type remove (line 1765) | struct remove
      type filter (line 1776) | struct filter
      type replace_if (line 1823) | struct replace_if
      type replace (line 1830) | struct replace : replace_if<Sequence, std::is_same<_1, pin<OldType>>...
      type inherit_linearly (line 2791) | struct inherit_linearly
    type lazy (line 133) | namespace lazy
      type wrap (line 73) | struct wrap
      type join (line 136) | struct join
      type lookup_at (line 169) | struct lookup_at
      type lookup (line 175) | struct lookup : lookup_at<M, K>::type
      type push_front (line 531) | struct push_front : detail::push_front_impl<L, T...>
      type pop_front (line 576) | struct pop_front : detail::pop_front_impl<L, N::value>
      type count_if (line 685) | struct count_if
      type count_if<S<>, Pred> (line 689) | struct count_if<S<>, Pred>
      type count_if<S<>, bind<F, _1>> (line 695) | struct count_if<S<>, bind<F, _1>>
      type count_if<S<>, F<_1>> (line 700) | struct count_if<S<>, F<_1>>
      type transform (line 844) | struct transform : detail::transform<sizeof...(OpSeq2), Sequence1, O...
      type find (line 1170) | struct find
      type reverse_find (line 1189) | struct reverse_find {
      type remove_if (line 1653) | struct remove_if
      type remove_if<L<>, Pred> (line 1655) | struct remove_if<L<>, Pred> {
      type remove (line 1688) | struct remove
      type filter (line 1699) | struct filter
      type filter<L<>, Pred> (line 1701) | struct filter<L<>, Pred> {
      type remove_if (line 1754) | struct remove_if
      type remove (line 1765) | struct remove
      type filter (line 1776) | struct filter
      type replace_if (line 1823) | struct replace_if
      type replace (line 1830) | struct replace : replace_if<Sequence, std::is_same<_1, pin<OldType>>...
      type inherit_linearly (line 2791) | struct inherit_linearly
    type pair (line 148) | struct pair
    type no_such_type_ (line 156) | struct no_such_type_ {}
    type type_ (line 160) | struct type_ { using type = T; }
    type lazy (line 166) | namespace lazy
      type wrap (line 73) | struct wrap
      type join (line 136) | struct join
      type lookup_at (line 169) | struct lookup_at
      type lookup (line 175) | struct lookup : lookup_at<M, K>::type
      type push_front (line 531) | struct push_front : detail::push_front_impl<L, T...>
      type pop_front (line 576) | struct pop_front : detail::pop_front_impl<L, N::value>
      type count_if (line 685) | struct count_if
      type count_if<S<>, Pred> (line 689) | struct count_if<S<>, Pred>
      type count_if<S<>, bind<F, _1>> (line 695) | struct count_if<S<>, bind<F, _1>>
      type count_if<S<>, F<_1>> (line 700) | struct count_if<S<>, F<_1>>
      type transform (line 844) | struct transform : detail::transform<sizeof...(OpSeq2), Sequence1, O...
      type find (line 1170) | struct find
      type reverse_find (line 1189) | struct reverse_find {
      type remove_if (line 1653) | struct remove_if
      type remove_if<L<>, Pred> (line 1655) | struct remove_if<L<>, Pred> {
      type remove (line 1688) | struct remove
      type filter (line 1699) | struct filter
      type filter<L<>, Pred> (line 1701) | struct filter<L<>, Pred> {
      type remove_if (line 1754) | struct remove_if
      type remove (line 1765) | struct remove
      type filter (line 1776) | struct filter
      type replace_if (line 1823) | struct replace_if
      type replace (line 1830) | struct replace : replace_if<Sequence, std::is_same<_1, pin<OldType>>...
      type inherit_linearly (line 2791) | struct inherit_linearly
    type detail (line 181) | namespace detail
      type dup_append_list (line 43) | struct dup_append_list
      type filled_list_impl (line 50) | struct filled_list_impl
      type filled_list_impl<T, List, 1> (line 56) | struct filled_list_impl<T, List, 1>
      type filled_list_impl<T, List, 0> (line 61) | struct filled_list_impl<T, List, 0>
      type append_impl (line 88) | struct append_impl
      type append_impl<> (line 90) | struct append_impl<>
      type map_impl (line 184) | struct map_impl
        type Pack (line 201) | struct Pack : pair<typename Ts::first_type, Ts>...
        type erase_return_t (line 219) | struct erase_return_t
      type map_impl<> (line 186) | struct map_impl<>
      type map_impl (line 198) | struct map_impl
        type Pack (line 201) | struct Pack : pair<typename Ts::first_type, Ts>...
        type erase_return_t (line 219) | struct erase_return_t
      type make_map (line 231) | struct make_map : type_<typename Ts::first_type>...
      type element_at (line 244) | struct element_at
      type at_impl (line 252) | struct at_impl
      type has_at_method (line 264) | struct has_at_method
        type dummy (line 266) | struct dummy
      type at_dispatch (line 277) | struct at_dispatch
      type at_dispatch<L, Index, true> (line 282) | struct at_dispatch<L, Index, true>
      type packaged_lcall (line 331) | struct packaged_lcall
      type apply (line 335) | struct apply {
      type clear_impl (line 451) | struct clear_impl
      type split_at_impl (line 466) | struct split_at_impl
      type call_split_at_impl (line 504) | struct call_split_at_impl : split_at_impl<(I::value > 16), brigand::...
      type push_front_impl (line 521) | struct push_front_impl
      type front_impl (line 540) | struct front_impl
      type pop_front_impl (line 552) | struct pop_front_impl
      type pop_front_element (line 559) | struct pop_front_element
      type substitute_impl (line 592) | struct substitute_impl
      type substitute_impl<args<Index>,List> (line 602) | struct substitute_impl<args<Index>,List>
      function count_bools (line 642) | constexpr unsigned int count_bools(const std::array<bool, length> & ...
      function count_bools (line 655) | constexpr unsigned int count_bools(bool const * const begin, bool co...
      type template_count_bools (line 663) | struct template_count_bools
      type push_back_impl (line 758) | struct push_back_impl
      type rot90 (line 778) | struct rot90
      type rot90<L1, list<>> (line 794) | struct rot90<L1, list<>>
      type transform_impl (line 799) | struct transform_impl
      type transform_apply (line 801) | struct transform_apply
      type transform (line 814) | struct transform : transform_impl<back<list<FuncOrSeqs...>>, Seq1, S...
      type as_sequence_impl (line 865) | struct as_sequence_impl
      type non_null_impl (line 943) | struct non_null_impl : bool_<Args::value != 0>{}
      type all_helper (line 955) | struct all_helper : ::brigand::apply<P, T>
      type bools_ (line 959) | struct bools_
      type all_impl (line 963) | struct all_impl
      type all_same (line 974) | struct all_same
        method all_same (line 977) | constexpr all_same(...) {}
        method all_same (line 979) | constexpr all_same(std::initializer_list<T *>) : value{true}
      type all_impl (line 984) | struct all_impl : bool_<true>
      type none_impl (line 1022) | struct none_impl
        type nope (line 1025) | struct nope
      type none_impl (line 1037) | struct none_impl : bool_<true>
        type nope (line 1025) | struct nope
      type any_impl (line 1074) | struct any_impl : bool_<!none<Sequence,Predicate>::value> {}
      type finder (line 1084) | struct finder
        type find (line 1089) | struct find
        type find<true, false, L> (line 1094) | struct find<true, false, L>
      type reverse_elements (line 1133) | struct reverse_elements
      type reverse_elements<L> (line 1135) | struct reverse_elements<L>
      type reverse_impl (line 1150) | struct reverse_impl
      type flatten_impl (line 1215) | struct flatten_impl
      type flatten_element_impl (line 1220) | struct flatten_element_impl
      type fold_impl (line 1246) | struct fold_impl
      type fold_impl<Functor, State, Sequence<T0>> (line 1253) | struct fold_impl<Functor, State, Sequence<T0>>
      type fold_impl<Functor, State, Sequence<T0, T1>> (line 1260) | struct fold_impl<Functor, State, Sequence<T0, T1>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2>> (line 1269) | struct fold_impl<Functor, State, Sequence<T0, T1, T2>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2, T3>> (line 1280) | struct fold_impl<Functor, State, Sequence<T0, T1, T2, T3>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4>> (line 1293) | struct fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5>> (line 1308) | struct fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5, T6>> (line 1325) | struct fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5, T6>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5, T6, T7>> (line 1344) | struct fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5, T6...
      type reverse_fold_impl (line 1389) | struct reverse_fold_impl
      function Functor (line 1451) | constexpr Functor for_each_impl( type_<List<Elements...>>&&, Functor...
      type index_if_impl (line 1466) | struct index_if_impl
      type index_if_impl<false, Sequence, Predicate, NotFoundType> (line 1472) | struct index_if_impl<false, Sequence, Predicate, NotFoundType>
      type range_cat (line 1488) | struct range_cat
      type int_plus (line 1491) | struct int_plus
      type range_impl (line 1506) | struct range_impl : range_cat<T, typename range_impl<T, Start, N / 2...
      type range_impl<T, Start, 1> (line 1511) | struct range_impl<T, Start, 1>
      type range_impl<T, Start, 0> (line 1516) | struct range_impl<T, Start, 0>
      type reverse_range_cat (line 1521) | struct reverse_range_cat
      type int_minus (line 1524) | struct int_minus
      type reverse_range_impl (line 1539) | struct reverse_range_impl
      type reverse_range_impl<T, Start, 1> (line 1545) | struct reverse_range_impl<T, Start, 1>
      type reverse_range_impl<T, Start, 0> (line 1550) | struct reverse_range_impl<T, Start, 0>
      type reverse_range_safe (line 1555) | struct reverse_range_safe
      type unique_x_t (line 1574) | struct unique_x_t
      type is_set_impl (line 1579) | struct is_set_impl
      type is_set_impl<list<>> (line 1581) | struct is_set_impl<list<>>
      type qrref (line 1598) | struct qrref
      type qref (line 1602) | struct qref
      type qnoref (line 1606) | struct qnoref
      type msvc_quali_ref (line 1610) | struct msvc_quali_ref
      type msvc_quali_ref<T &> (line 1615) | struct msvc_quali_ref<T &>
      type msvc_quali_ref<T &&> (line 1620) | struct msvc_quali_ref<T &&>
      type unique_x_t (line 1632) | struct unique_x_t : type_<T>
      type is_set_cont (line 1636) | struct is_set_cont
      type empty_helper (line 1735) | struct empty_helper : ::brigand::apply<Pred, T>
      type empty_if_true (line 1739) | struct empty_if_true : std::conditional<empty_helper<Pred, T>::value...
      type empty_if_true<bind<F, _1>, T, B> (line 1743) | struct empty_if_true<bind<F, _1>, T, B> : std::conditional<F<T>::val...
      type empty_if_true<F<_1>, T, B> (line 1747) | struct empty_if_true<F<_1>, T, B> : std::conditional<F<T>::type::val...
      type rep_helper (line 1803) | struct rep_helper
      type replacer (line 1808) | struct replacer : std::conditional<rep_helper<Pred, T>::type::value,...
      type replacer<T, bind<F, _1>, NewType> (line 1812) | struct replacer<T, bind<F, _1>, NewType> : std::conditional<F<T>::va...
      type replacer<T, F<_1>, NewType> (line 1816) | struct replacer<T, F<_1>, NewType> : std::conditional<F<T>::type::va...
      type split_impl (line 1857) | struct split_impl
      type split_helper (line 1884) | struct split_helper
      type split_helper<L<>, TDelim> (line 1889) | struct split_helper<L<>, TDelim> {
      type merge_helper (line 1918) | struct merge_helper : ::brigand::apply<Comp, T1, U>
      type merge_impl (line 1922) | struct merge_impl
      type merge_insert (line 1924) | struct merge_insert
      type sort_impl (line 1997) | struct sort_impl
      type mini_sort (line 1999) | struct mini_sort
      type mini_sort<list<T0, T1, T2, T3>, Comp> (line 2014) | struct mini_sort<list<T0, T1, T2, T3>, Comp>
      type mini_sort<list<T0, T1, T2>, Comp> (line 2020) | struct mini_sort<list<T0, T1, T2>, Comp>
      type mini_sort<list<T0, T1>, Comp> (line 2025) | struct mini_sort<list<T0, T1>, Comp>
      type mini_sort<list<T0>, Comp> (line 2031) | struct mini_sort<list<T0>, Comp>
      type sort_impl<list<L>, list<>, Comp> (line 2108) | struct sort_impl<list<L>, list<>, Comp>
      type sort_impl<list<L0, L1>, list<>, Comp> (line 2113) | struct sort_impl<list<L0, L1>, list<>, Comp>
      type sort_impl<list<L0, L1, L2>, list<>, Comp> (line 2118) | struct sort_impl<list<L0, L1, L2>, list<>, Comp>
      type sort_impl<list<>, list<>, Comp> (line 2123) | struct sort_impl<list<>, list<>, Comp>
      type and_impl (line 2391) | struct and_impl
      type and_impl<0> (line 2393) | struct and_impl<0>
      type and_impl<1> (line 2402) | struct and_impl<1>
      type or_impl (line 2432) | struct or_impl
      type or_impl<0> (line 2434) | struct or_impl<0>
      type or_impl<1> (line 2443) | struct or_impl<1>
      type repeat_impl (line 2481) | struct repeat_impl
      type repeat_impl<F, 7, T> (line 2485) | struct repeat_impl<F, 7, T>
      type repeat_impl<F, 6, T> (line 2490) | struct repeat_impl<F, 6, T>
      type repeat_impl<F, 5, T> (line 2495) | struct repeat_impl<F, 5, T>
      type repeat_impl<F, 4, T> (line 2500) | struct repeat_impl<F, 4, T>
      type repeat_impl<F, 3, T> (line 2505) | struct repeat_impl<F, 3, T>
      type repeat_impl<F, 2, T> (line 2510) | struct repeat_impl<F, 2, T>
      type repeat_impl<F, 1, T> (line 2515) | struct repeat_impl<F, 1, T>
      type repeat_impl<F, 0, T> (line 2520) | struct repeat_impl<F, 0, T>
      type has_key_impl (line 2545) | struct has_key_impl
      type mksq8 (line 2558) | struct mksq8
      type mksq8<Start, 8, Next> (line 2572) | struct mksq8<Start, 8, Next>
      type make_sequence_impl (line 2584) | struct make_sequence_impl
      type has_erase_method (line 2613) | struct has_erase_method
        type dummy (line 2615) | struct dummy
      type erase_dispatch (line 2626) | struct erase_dispatch
      type erase_dispatch<C, K, true> (line 2631) | struct erase_dispatch<C, K, true>
      type insert_impl (line 2644) | struct insert_impl
      type contains_impl (line 2657) | struct contains_impl
      type make_set (line 2670) | struct make_set
      type set_erase_pred_impl (line 2672) | struct set_erase_pred_impl
      type set_erase_pred_impl<K,K> (line 2677) | struct set_erase_pred_impl<K,K>
      type set_impl (line 2682) | struct set_impl
      type make_set (line 2700) | struct make_set : type_<Ts>...
      type get_second (line 2717) | struct get_second {
      type get_first (line 2729) | struct get_first {
    type detail (line 241) | namespace detail
      type dup_append_list (line 43) | struct dup_append_list
      type filled_list_impl (line 50) | struct filled_list_impl
      type filled_list_impl<T, List, 1> (line 56) | struct filled_list_impl<T, List, 1>
      type filled_list_impl<T, List, 0> (line 61) | struct filled_list_impl<T, List, 0>
      type append_impl (line 88) | struct append_impl
      type append_impl<> (line 90) | struct append_impl<>
      type map_impl (line 184) | struct map_impl
        type Pack (line 201) | struct Pack : pair<typename Ts::first_type, Ts>...
        type erase_return_t (line 219) | struct erase_return_t
      type map_impl<> (line 186) | struct map_impl<>
      type map_impl (line 198) | struct map_impl
        type Pack (line 201) | struct Pack : pair<typename Ts::first_type, Ts>...
        type erase_return_t (line 219) | struct erase_return_t
      type make_map (line 231) | struct make_map : type_<typename Ts::first_type>...
      type element_at (line 244) | struct element_at
      type at_impl (line 252) | struct at_impl
      type has_at_method (line 264) | struct has_at_method
        type dummy (line 266) | struct dummy
      type at_dispatch (line 277) | struct at_dispatch
      type at_dispatch<L, Index, true> (line 282) | struct at_dispatch<L, Index, true>
      type packaged_lcall (line 331) | struct packaged_lcall
      type apply (line 335) | struct apply {
      type clear_impl (line 451) | struct clear_impl
      type split_at_impl (line 466) | struct split_at_impl
      type call_split_at_impl (line 504) | struct call_split_at_impl : split_at_impl<(I::value > 16), brigand::...
      type push_front_impl (line 521) | struct push_front_impl
      type front_impl (line 540) | struct front_impl
      type pop_front_impl (line 552) | struct pop_front_impl
      type pop_front_element (line 559) | struct pop_front_element
      type substitute_impl (line 592) | struct substitute_impl
      type substitute_impl<args<Index>,List> (line 602) | struct substitute_impl<args<Index>,List>
      function count_bools (line 642) | constexpr unsigned int count_bools(const std::array<bool, length> & ...
      function count_bools (line 655) | constexpr unsigned int count_bools(bool const * const begin, bool co...
      type template_count_bools (line 663) | struct template_count_bools
      type push_back_impl (line 758) | struct push_back_impl
      type rot90 (line 778) | struct rot90
      type rot90<L1, list<>> (line 794) | struct rot90<L1, list<>>
      type transform_impl (line 799) | struct transform_impl
      type transform_apply (line 801) | struct transform_apply
      type transform (line 814) | struct transform : transform_impl<back<list<FuncOrSeqs...>>, Seq1, S...
      type as_sequence_impl (line 865) | struct as_sequence_impl
      type non_null_impl (line 943) | struct non_null_impl : bool_<Args::value != 0>{}
      type all_helper (line 955) | struct all_helper : ::brigand::apply<P, T>
      type bools_ (line 959) | struct bools_
      type all_impl (line 963) | struct all_impl
      type all_same (line 974) | struct all_same
        method all_same (line 977) | constexpr all_same(...) {}
        method all_same (line 979) | constexpr all_same(std::initializer_list<T *>) : value{true}
      type all_impl (line 984) | struct all_impl : bool_<true>
      type none_impl (line 1022) | struct none_impl
        type nope (line 1025) | struct nope
      type none_impl (line 1037) | struct none_impl : bool_<true>
        type nope (line 1025) | struct nope
      type any_impl (line 1074) | struct any_impl : bool_<!none<Sequence,Predicate>::value> {}
      type finder (line 1084) | struct finder
        type find (line 1089) | struct find
        type find<true, false, L> (line 1094) | struct find<true, false, L>
      type reverse_elements (line 1133) | struct reverse_elements
      type reverse_elements<L> (line 1135) | struct reverse_elements<L>
      type reverse_impl (line 1150) | struct reverse_impl
      type flatten_impl (line 1215) | struct flatten_impl
      type flatten_element_impl (line 1220) | struct flatten_element_impl
      type fold_impl (line 1246) | struct fold_impl
      type fold_impl<Functor, State, Sequence<T0>> (line 1253) | struct fold_impl<Functor, State, Sequence<T0>>
      type fold_impl<Functor, State, Sequence<T0, T1>> (line 1260) | struct fold_impl<Functor, State, Sequence<T0, T1>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2>> (line 1269) | struct fold_impl<Functor, State, Sequence<T0, T1, T2>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2, T3>> (line 1280) | struct fold_impl<Functor, State, Sequence<T0, T1, T2, T3>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4>> (line 1293) | struct fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5>> (line 1308) | struct fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5, T6>> (line 1325) | struct fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5, T6>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5, T6, T7>> (line 1344) | struct fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5, T6...
      type reverse_fold_impl (line 1389) | struct reverse_fold_impl
      function Functor (line 1451) | constexpr Functor for_each_impl( type_<List<Elements...>>&&, Functor...
      type index_if_impl (line 1466) | struct index_if_impl
      type index_if_impl<false, Sequence, Predicate, NotFoundType> (line 1472) | struct index_if_impl<false, Sequence, Predicate, NotFoundType>
      type range_cat (line 1488) | struct range_cat
      type int_plus (line 1491) | struct int_plus
      type range_impl (line 1506) | struct range_impl : range_cat<T, typename range_impl<T, Start, N / 2...
      type range_impl<T, Start, 1> (line 1511) | struct range_impl<T, Start, 1>
      type range_impl<T, Start, 0> (line 1516) | struct range_impl<T, Start, 0>
      type reverse_range_cat (line 1521) | struct reverse_range_cat
      type int_minus (line 1524) | struct int_minus
      type reverse_range_impl (line 1539) | struct reverse_range_impl
      type reverse_range_impl<T, Start, 1> (line 1545) | struct reverse_range_impl<T, Start, 1>
      type reverse_range_impl<T, Start, 0> (line 1550) | struct reverse_range_impl<T, Start, 0>
      type reverse_range_safe (line 1555) | struct reverse_range_safe
      type unique_x_t (line 1574) | struct unique_x_t
      type is_set_impl (line 1579) | struct is_set_impl
      type is_set_impl<list<>> (line 1581) | struct is_set_impl<list<>>
      type qrref (line 1598) | struct qrref
      type qref (line 1602) | struct qref
      type qnoref (line 1606) | struct qnoref
      type msvc_quali_ref (line 1610) | struct msvc_quali_ref
      type msvc_quali_ref<T &> (line 1615) | struct msvc_quali_ref<T &>
      type msvc_quali_ref<T &&> (line 1620) | struct msvc_quali_ref<T &&>
      type unique_x_t (line 1632) | struct unique_x_t : type_<T>
      type is_set_cont (line 1636) | struct is_set_cont
      type empty_helper (line 1735) | struct empty_helper : ::brigand::apply<Pred, T>
      type empty_if_true (line 1739) | struct empty_if_true : std::conditional<empty_helper<Pred, T>::value...
      type empty_if_true<bind<F, _1>, T, B> (line 1743) | struct empty_if_true<bind<F, _1>, T, B> : std::conditional<F<T>::val...
      type empty_if_true<F<_1>, T, B> (line 1747) | struct empty_if_true<F<_1>, T, B> : std::conditional<F<T>::type::val...
      type rep_helper (line 1803) | struct rep_helper
      type replacer (line 1808) | struct replacer : std::conditional<rep_helper<Pred, T>::type::value,...
      type replacer<T, bind<F, _1>, NewType> (line 1812) | struct replacer<T, bind<F, _1>, NewType> : std::conditional<F<T>::va...
      type replacer<T, F<_1>, NewType> (line 1816) | struct replacer<T, F<_1>, NewType> : std::conditional<F<T>::type::va...
      type split_impl (line 1857) | struct split_impl
      type split_helper (line 1884) | struct split_helper
      type split_helper<L<>, TDelim> (line 1889) | struct split_helper<L<>, TDelim> {
      type merge_helper (line 1918) | struct merge_helper : ::brigand::apply<Comp, T1, U>
      type merge_impl (line 1922) | struct merge_impl
      type merge_insert (line 1924) | struct merge_insert
      type sort_impl (line 1997) | struct sort_impl
      type mini_sort (line 1999) | struct mini_sort
      type mini_sort<list<T0, T1, T2, T3>, Comp> (line 2014) | struct mini_sort<list<T0, T1, T2, T3>, Comp>
      type mini_sort<list<T0, T1, T2>, Comp> (line 2020) | struct mini_sort<list<T0, T1, T2>, Comp>
      type mini_sort<list<T0, T1>, Comp> (line 2025) | struct mini_sort<list<T0, T1>, Comp>
      type mini_sort<list<T0>, Comp> (line 2031) | struct mini_sort<list<T0>, Comp>
      type sort_impl<list<L>, list<>, Comp> (line 2108) | struct sort_impl<list<L>, list<>, Comp>
      type sort_impl<list<L0, L1>, list<>, Comp> (line 2113) | struct sort_impl<list<L0, L1>, list<>, Comp>
      type sort_impl<list<L0, L1, L2>, list<>, Comp> (line 2118) | struct sort_impl<list<L0, L1, L2>, list<>, Comp>
      type sort_impl<list<>, list<>, Comp> (line 2123) | struct sort_impl<list<>, list<>, Comp>
      type and_impl (line 2391) | struct and_impl
      type and_impl<0> (line 2393) | struct and_impl<0>
      type and_impl<1> (line 2402) | struct and_impl<1>
      type or_impl (line 2432) | struct or_impl
      type or_impl<0> (line 2434) | struct or_impl<0>
      type or_impl<1> (line 2443) | struct or_impl<1>
      type repeat_impl (line 2481) | struct repeat_impl
      type repeat_impl<F, 7, T> (line 2485) | struct repeat_impl<F, 7, T>
      type repeat_impl<F, 6, T> (line 2490) | struct repeat_impl<F, 6, T>
      type repeat_impl<F, 5, T> (line 2495) | struct repeat_impl<F, 5, T>
      type repeat_impl<F, 4, T> (line 2500) | struct repeat_impl<F, 4, T>
      type repeat_impl<F, 3, T> (line 2505) | struct repeat_impl<F, 3, T>
      type repeat_impl<F, 2, T> (line 2510) | struct repeat_impl<F, 2, T>
      type repeat_impl<F, 1, T> (line 2515) | struct repeat_impl<F, 1, T>
      type repeat_impl<F, 0, T> (line 2520) | struct repeat_impl<F, 0, T>
      type has_key_impl (line 2545) | struct has_key_impl
      type mksq8 (line 2558) | struct mksq8
      type mksq8<Start, 8, Next> (line 2572) | struct mksq8<Start, 8, Next>
      type make_sequence_impl (line 2584) | struct make_sequence_impl
      type has_erase_method (line 2613) | struct has_erase_method
        type dummy (line 2615) | struct dummy
      type erase_dispatch (line 2626) | struct erase_dispatch
      type erase_dispatch<C, K, true> (line 2631) | struct erase_dispatch<C, K, true>
      type insert_impl (line 2644) | struct insert_impl
      type contains_impl (line 2657) | struct contains_impl
      type make_set (line 2670) | struct make_set
      type set_erase_pred_impl (line 2672) | struct set_erase_pred_impl
      type set_erase_pred_impl<K,K> (line 2677) | struct set_erase_pred_impl<K,K>
      type set_impl (line 2682) | struct set_impl
      type make_set (line 2700) | struct make_set : type_<Ts>...
      type get_second (line 2717) | struct get_second {
      type get_first (line 2729) | struct get_first {
    type detail (line 261) | namespace detail
      type dup_append_list (line 43) | struct dup_append_list
      type filled_list_impl (line 50) | struct filled_list_impl
      type filled_list_impl<T, List, 1> (line 56) | struct filled_list_impl<T, List, 1>
      type filled_list_impl<T, List, 0> (line 61) | struct filled_list_impl<T, List, 0>
      type append_impl (line 88) | struct append_impl
      type append_impl<> (line 90) | struct append_impl<>
      type map_impl (line 184) | struct map_impl
        type Pack (line 201) | struct Pack : pair<typename Ts::first_type, Ts>...
        type erase_return_t (line 219) | struct erase_return_t
      type map_impl<> (line 186) | struct map_impl<>
      type map_impl (line 198) | struct map_impl
        type Pack (line 201) | struct Pack : pair<typename Ts::first_type, Ts>...
        type erase_return_t (line 219) | struct erase_return_t
      type make_map (line 231) | struct make_map : type_<typename Ts::first_type>...
      type element_at (line 244) | struct element_at
      type at_impl (line 252) | struct at_impl
      type has_at_method (line 264) | struct has_at_method
        type dummy (line 266) | struct dummy
      type at_dispatch (line 277) | struct at_dispatch
      type at_dispatch<L, Index, true> (line 282) | struct at_dispatch<L, Index, true>
      type packaged_lcall (line 331) | struct packaged_lcall
      type apply (line 335) | struct apply {
      type clear_impl (line 451) | struct clear_impl
      type split_at_impl (line 466) | struct split_at_impl
      type call_split_at_impl (line 504) | struct call_split_at_impl : split_at_impl<(I::value > 16), brigand::...
      type push_front_impl (line 521) | struct push_front_impl
      type front_impl (line 540) | struct front_impl
      type pop_front_impl (line 552) | struct pop_front_impl
      type pop_front_element (line 559) | struct pop_front_element
      type substitute_impl (line 592) | struct substitute_impl
      type substitute_impl<args<Index>,List> (line 602) | struct substitute_impl<args<Index>,List>
      function count_bools (line 642) | constexpr unsigned int count_bools(const std::array<bool, length> & ...
      function count_bools (line 655) | constexpr unsigned int count_bools(bool const * const begin, bool co...
      type template_count_bools (line 663) | struct template_count_bools
      type push_back_impl (line 758) | struct push_back_impl
      type rot90 (line 778) | struct rot90
      type rot90<L1, list<>> (line 794) | struct rot90<L1, list<>>
      type transform_impl (line 799) | struct transform_impl
      type transform_apply (line 801) | struct transform_apply
      type transform (line 814) | struct transform : transform_impl<back<list<FuncOrSeqs...>>, Seq1, S...
      type as_sequence_impl (line 865) | struct as_sequence_impl
      type non_null_impl (line 943) | struct non_null_impl : bool_<Args::value != 0>{}
      type all_helper (line 955) | struct all_helper : ::brigand::apply<P, T>
      type bools_ (line 959) | struct bools_
      type all_impl (line 963) | struct all_impl
      type all_same (line 974) | struct all_same
        method all_same (line 977) | constexpr all_same(...) {}
        method all_same (line 979) | constexpr all_same(std::initializer_list<T *>) : value{true}
      type all_impl (line 984) | struct all_impl : bool_<true>
      type none_impl (line 1022) | struct none_impl
        type nope (line 1025) | struct nope
      type none_impl (line 1037) | struct none_impl : bool_<true>
        type nope (line 1025) | struct nope
      type any_impl (line 1074) | struct any_impl : bool_<!none<Sequence,Predicate>::value> {}
      type finder (line 1084) | struct finder
        type find (line 1089) | struct find
        type find<true, false, L> (line 1094) | struct find<true, false, L>
      type reverse_elements (line 1133) | struct reverse_elements
      type reverse_elements<L> (line 1135) | struct reverse_elements<L>
      type reverse_impl (line 1150) | struct reverse_impl
      type flatten_impl (line 1215) | struct flatten_impl
      type flatten_element_impl (line 1220) | struct flatten_element_impl
      type fold_impl (line 1246) | struct fold_impl
      type fold_impl<Functor, State, Sequence<T0>> (line 1253) | struct fold_impl<Functor, State, Sequence<T0>>
      type fold_impl<Functor, State, Sequence<T0, T1>> (line 1260) | struct fold_impl<Functor, State, Sequence<T0, T1>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2>> (line 1269) | struct fold_impl<Functor, State, Sequence<T0, T1, T2>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2, T3>> (line 1280) | struct fold_impl<Functor, State, Sequence<T0, T1, T2, T3>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4>> (line 1293) | struct fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5>> (line 1308) | struct fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5, T6>> (line 1325) | struct fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5, T6>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5, T6, T7>> (line 1344) | struct fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5, T6...
      type reverse_fold_impl (line 1389) | struct reverse_fold_impl
      function Functor (line 1451) | constexpr Functor for_each_impl( type_<List<Elements...>>&&, Functor...
      type index_if_impl (line 1466) | struct index_if_impl
      type index_if_impl<false, Sequence, Predicate, NotFoundType> (line 1472) | struct index_if_impl<false, Sequence, Predicate, NotFoundType>
      type range_cat (line 1488) | struct range_cat
      type int_plus (line 1491) | struct int_plus
      type range_impl (line 1506) | struct range_impl : range_cat<T, typename range_impl<T, Start, N / 2...
      type range_impl<T, Start, 1> (line 1511) | struct range_impl<T, Start, 1>
      type range_impl<T, Start, 0> (line 1516) | struct range_impl<T, Start, 0>
      type reverse_range_cat (line 1521) | struct reverse_range_cat
      type int_minus (line 1524) | struct int_minus
      type reverse_range_impl (line 1539) | struct reverse_range_impl
      type reverse_range_impl<T, Start, 1> (line 1545) | struct reverse_range_impl<T, Start, 1>
      type reverse_range_impl<T, Start, 0> (line 1550) | struct reverse_range_impl<T, Start, 0>
      type reverse_range_safe (line 1555) | struct reverse_range_safe
      type unique_x_t (line 1574) | struct unique_x_t
      type is_set_impl (line 1579) | struct is_set_impl
      type is_set_impl<list<>> (line 1581) | struct is_set_impl<list<>>
      type qrref (line 1598) | struct qrref
      type qref (line 1602) | struct qref
      type qnoref (line 1606) | struct qnoref
      type msvc_quali_ref (line 1610) | struct msvc_quali_ref
      type msvc_quali_ref<T &> (line 1615) | struct msvc_quali_ref<T &>
      type msvc_quali_ref<T &&> (line 1620) | struct msvc_quali_ref<T &&>
      type unique_x_t (line 1632) | struct unique_x_t : type_<T>
      type is_set_cont (line 1636) | struct is_set_cont
      type empty_helper (line 1735) | struct empty_helper : ::brigand::apply<Pred, T>
      type empty_if_true (line 1739) | struct empty_if_true : std::conditional<empty_helper<Pred, T>::value...
      type empty_if_true<bind<F, _1>, T, B> (line 1743) | struct empty_if_true<bind<F, _1>, T, B> : std::conditional<F<T>::val...
      type empty_if_true<F<_1>, T, B> (line 1747) | struct empty_if_true<F<_1>, T, B> : std::conditional<F<T>::type::val...
      type rep_helper (line 1803) | struct rep_helper
      type replacer (line 1808) | struct replacer : std::conditional<rep_helper<Pred, T>::type::value,...
      type replacer<T, bind<F, _1>, NewType> (line 1812) | struct replacer<T, bind<F, _1>, NewType> : std::conditional<F<T>::va...
      type replacer<T, F<_1>, NewType> (line 1816) | struct replacer<T, F<_1>, NewType> : std::conditional<F<T>::type::va...
      type split_impl (line 1857) | struct split_impl
      type split_helper (line 1884) | struct split_helper
      type split_helper<L<>, TDelim> (line 1889) | struct split_helper<L<>, TDelim> {
      type merge_helper (line 1918) | struct merge_helper : ::brigand::apply<Comp, T1, U>
      type merge_impl (line 1922) | struct merge_impl
      type merge_insert (line 1924) | struct merge_insert
      type sort_impl (line 1997) | struct sort_impl
      type mini_sort (line 1999) | struct mini_sort
      type mini_sort<list<T0, T1, T2, T3>, Comp> (line 2014) | struct mini_sort<list<T0, T1, T2, T3>, Comp>
      type mini_sort<list<T0, T1, T2>, Comp> (line 2020) | struct mini_sort<list<T0, T1, T2>, Comp>
      type mini_sort<list<T0, T1>, Comp> (line 2025) | struct mini_sort<list<T0, T1>, Comp>
      type mini_sort<list<T0>, Comp> (line 2031) | struct mini_sort<list<T0>, Comp>
      type sort_impl<list<L>, list<>, Comp> (line 2108) | struct sort_impl<list<L>, list<>, Comp>
      type sort_impl<list<L0, L1>, list<>, Comp> (line 2113) | struct sort_impl<list<L0, L1>, list<>, Comp>
      type sort_impl<list<L0, L1, L2>, list<>, Comp> (line 2118) | struct sort_impl<list<L0, L1, L2>, list<>, Comp>
      type sort_impl<list<>, list<>, Comp> (line 2123) | struct sort_impl<list<>, list<>, Comp>
      type and_impl (line 2391) | struct and_impl
      type and_impl<0> (line 2393) | struct and_impl<0>
      type and_impl<1> (line 2402) | struct and_impl<1>
      type or_impl (line 2432) | struct or_impl
      type or_impl<0> (line 2434) | struct or_impl<0>
      type or_impl<1> (line 2443) | struct or_impl<1>
      type repeat_impl (line 2481) | struct repeat_impl
      type repeat_impl<F, 7, T> (line 2485) | struct repeat_impl<F, 7, T>
      type repeat_impl<F, 6, T> (line 2490) | struct repeat_impl<F, 6, T>
      type repeat_impl<F, 5, T> (line 2495) | struct repeat_impl<F, 5, T>
      type repeat_impl<F, 4, T> (line 2500) | struct repeat_impl<F, 4, T>
      type repeat_impl<F, 3, T> (line 2505) | struct repeat_impl<F, 3, T>
      type repeat_impl<F, 2, T> (line 2510) | struct repeat_impl<F, 2, T>
      type repeat_impl<F, 1, T> (line 2515) | struct repeat_impl<F, 1, T>
      type repeat_impl<F, 0, T> (line 2520) | struct repeat_impl<F, 0, T>
      type has_key_impl (line 2545) | struct has_key_impl
      type mksq8 (line 2558) | struct mksq8
      type mksq8<Start, 8, Next> (line 2572) | struct mksq8<Start, 8, Next>
      type make_sequence_impl (line 2584) | struct make_sequence_impl
      type has_erase_method (line 2613) | struct has_erase_method
        type dummy (line 2615) | struct dummy
      type erase_dispatch (line 2626) | struct erase_dispatch
      type erase_dispatch<C, K, true> (line 2631) | struct erase_dispatch<C, K, true>
      type insert_impl (line 2644) | struct insert_impl
      type contains_impl (line 2657) | struct contains_impl
      type make_set (line 2670) | struct make_set
      type set_erase_pred_impl (line 2672) | struct set_erase_pred_impl
      type set_erase_pred_impl<K,K> (line 2677) | struct set_erase_pred_impl<K,K>
      type set_impl (line 2682) | struct set_impl
      type make_set (line 2700) | struct make_set : type_<Ts>...
      type get_second (line 2717) | struct get_second {
      type get_first (line 2729) | struct get_first {
    type bind (line 293) | struct bind
    type args (line 299) | struct args
    type _1 (line 302) | struct _1 {}
    type _2 (line 303) | struct _2 {}
    type defer (line 317) | struct defer
    type pin (line 321) | struct pin
    type parent (line 325) | struct parent
    type detail (line 328) | namespace detail
      type dup_append_list (line 43) | struct dup_append_list
      type filled_list_impl (line 50) | struct filled_list_impl
      type filled_list_impl<T, List, 1> (line 56) | struct filled_list_impl<T, List, 1>
      type filled_list_impl<T, List, 0> (line 61) | struct filled_list_impl<T, List, 0>
      type append_impl (line 88) | struct append_impl
      type append_impl<> (line 90) | struct append_impl<>
      type map_impl (line 184) | struct map_impl
        type Pack (line 201) | struct Pack : pair<typename Ts::first_type, Ts>...
        type erase_return_t (line 219) | struct erase_return_t
      type map_impl<> (line 186) | struct map_impl<>
      type map_impl (line 198) | struct map_impl
        type Pack (line 201) | struct Pack : pair<typename Ts::first_type, Ts>...
        type erase_return_t (line 219) | struct erase_return_t
      type make_map (line 231) | struct make_map : type_<typename Ts::first_type>...
      type element_at (line 244) | struct element_at
      type at_impl (line 252) | struct at_impl
      type has_at_method (line 264) | struct has_at_method
        type dummy (line 266) | struct dummy
      type at_dispatch (line 277) | struct at_dispatch
      type at_dispatch<L, Index, true> (line 282) | struct at_dispatch<L, Index, true>
      type packaged_lcall (line 331) | struct packaged_lcall
      type apply (line 335) | struct apply {
      type clear_impl (line 451) | struct clear_impl
      type split_at_impl (line 466) | struct split_at_impl
      type call_split_at_impl (line 504) | struct call_split_at_impl : split_at_impl<(I::value > 16), brigand::...
      type push_front_impl (line 521) | struct push_front_impl
      type front_impl (line 540) | struct front_impl
      type pop_front_impl (line 552) | struct pop_front_impl
      type pop_front_element (line 559) | struct pop_front_element
      type substitute_impl (line 592) | struct substitute_impl
      type substitute_impl<args<Index>,List> (line 602) | struct substitute_impl<args<Index>,List>
      function count_bools (line 642) | constexpr unsigned int count_bools(const std::array<bool, length> & ...
      function count_bools (line 655) | constexpr unsigned int count_bools(bool const * const begin, bool co...
      type template_count_bools (line 663) | struct template_count_bools
      type push_back_impl (line 758) | struct push_back_impl
      type rot90 (line 778) | struct rot90
      type rot90<L1, list<>> (line 794) | struct rot90<L1, list<>>
      type transform_impl (line 799) | struct transform_impl
      type transform_apply (line 801) | struct transform_apply
      type transform (line 814) | struct transform : transform_impl<back<list<FuncOrSeqs...>>, Seq1, S...
      type as_sequence_impl (line 865) | struct as_sequence_impl
      type non_null_impl (line 943) | struct non_null_impl : bool_<Args::value != 0>{}
      type all_helper (line 955) | struct all_helper : ::brigand::apply<P, T>
      type bools_ (line 959) | struct bools_
      type all_impl (line 963) | struct all_impl
      type all_same (line 974) | struct all_same
        method all_same (line 977) | constexpr all_same(...) {}
        method all_same (line 979) | constexpr all_same(std::initializer_list<T *>) : value{true}
      type all_impl (line 984) | struct all_impl : bool_<true>
      type none_impl (line 1022) | struct none_impl
        type nope (line 1025) | struct nope
      type none_impl (line 1037) | struct none_impl : bool_<true>
        type nope (line 1025) | struct nope
      type any_impl (line 1074) | struct any_impl : bool_<!none<Sequence,Predicate>::value> {}
      type finder (line 1084) | struct finder
        type find (line 1089) | struct find
        type find<true, false, L> (line 1094) | struct find<true, false, L>
      type reverse_elements (line 1133) | struct reverse_elements
      type reverse_elements<L> (line 1135) | struct reverse_elements<L>
      type reverse_impl (line 1150) | struct reverse_impl
      type flatten_impl (line 1215) | struct flatten_impl
      type flatten_element_impl (line 1220) | struct flatten_element_impl
      type fold_impl (line 1246) | struct fold_impl
      type fold_impl<Functor, State, Sequence<T0>> (line 1253) | struct fold_impl<Functor, State, Sequence<T0>>
      type fold_impl<Functor, State, Sequence<T0, T1>> (line 1260) | struct fold_impl<Functor, State, Sequence<T0, T1>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2>> (line 1269) | struct fold_impl<Functor, State, Sequence<T0, T1, T2>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2, T3>> (line 1280) | struct fold_impl<Functor, State, Sequence<T0, T1, T2, T3>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4>> (line 1293) | struct fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5>> (line 1308) | struct fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5, T6>> (line 1325) | struct fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5, T6>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5, T6, T7>> (line 1344) | struct fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5, T6...
      type reverse_fold_impl (line 1389) | struct reverse_fold_impl
      function Functor (line 1451) | constexpr Functor for_each_impl( type_<List<Elements...>>&&, Functor...
      type index_if_impl (line 1466) | struct index_if_impl
      type index_if_impl<false, Sequence, Predicate, NotFoundType> (line 1472) | struct index_if_impl<false, Sequence, Predicate, NotFoundType>
      type range_cat (line 1488) | struct range_cat
      type int_plus (line 1491) | struct int_plus
      type range_impl (line 1506) | struct range_impl : range_cat<T, typename range_impl<T, Start, N / 2...
      type range_impl<T, Start, 1> (line 1511) | struct range_impl<T, Start, 1>
      type range_impl<T, Start, 0> (line 1516) | struct range_impl<T, Start, 0>
      type reverse_range_cat (line 1521) | struct reverse_range_cat
      type int_minus (line 1524) | struct int_minus
      type reverse_range_impl (line 1539) | struct reverse_range_impl
      type reverse_range_impl<T, Start, 1> (line 1545) | struct reverse_range_impl<T, Start, 1>
      type reverse_range_impl<T, Start, 0> (line 1550) | struct reverse_range_impl<T, Start, 0>
      type reverse_range_safe (line 1555) | struct reverse_range_safe
      type unique_x_t (line 1574) | struct unique_x_t
      type is_set_impl (line 1579) | struct is_set_impl
      type is_set_impl<list<>> (line 1581) | struct is_set_impl<list<>>
      type qrref (line 1598) | struct qrref
      type qref (line 1602) | struct qref
      type qnoref (line 1606) | struct qnoref
      type msvc_quali_ref (line 1610) | struct msvc_quali_ref
      type msvc_quali_ref<T &> (line 1615) | struct msvc_quali_ref<T &>
      type msvc_quali_ref<T &&> (line 1620) | struct msvc_quali_ref<T &&>
      type unique_x_t (line 1632) | struct unique_x_t : type_<T>
      type is_set_cont (line 1636) | struct is_set_cont
      type empty_helper (line 1735) | struct empty_helper : ::brigand::apply<Pred, T>
      type empty_if_true (line 1739) | struct empty_if_true : std::conditional<empty_helper<Pred, T>::value...
      type empty_if_true<bind<F, _1>, T, B> (line 1743) | struct empty_if_true<bind<F, _1>, T, B> : std::conditional<F<T>::val...
      type empty_if_true<F<_1>, T, B> (line 1747) | struct empty_if_true<F<_1>, T, B> : std::conditional<F<T>::type::val...
      type rep_helper (line 1803) | struct rep_helper
      type replacer (line 1808) | struct replacer : std::conditional<rep_helper<Pred, T>::type::value,...
      type replacer<T, bind<F, _1>, NewType> (line 1812) | struct replacer<T, bind<F, _1>, NewType> : std::conditional<F<T>::va...
      type replacer<T, F<_1>, NewType> (line 1816) | struct replacer<T, F<_1>, NewType> : std::conditional<F<T>::type::va...
      type split_impl (line 1857) | struct split_impl
      type split_helper (line 1884) | struct split_helper
      type split_helper<L<>, TDelim> (line 1889) | struct split_helper<L<>, TDelim> {
      type merge_helper (line 1918) | struct merge_helper : ::brigand::apply<Comp, T1, U>
      type merge_impl (line 1922) | struct merge_impl
      type merge_insert (line 1924) | struct merge_insert
      type sort_impl (line 1997) | struct sort_impl
      type mini_sort (line 1999) | struct mini_sort
      type mini_sort<list<T0, T1, T2, T3>, Comp> (line 2014) | struct mini_sort<list<T0, T1, T2, T3>, Comp>
      type mini_sort<list<T0, T1, T2>, Comp> (line 2020) | struct mini_sort<list<T0, T1, T2>, Comp>
      type mini_sort<list<T0, T1>, Comp> (line 2025) | struct mini_sort<list<T0, T1>, Comp>
      type mini_sort<list<T0>, Comp> (line 2031) | struct mini_sort<list<T0>, Comp>
      type sort_impl<list<L>, list<>, Comp> (line 2108) | struct sort_impl<list<L>, list<>, Comp>
      type sort_impl<list<L0, L1>, list<>, Comp> (line 2113) | struct sort_impl<list<L0, L1>, list<>, Comp>
      type sort_impl<list<L0, L1, L2>, list<>, Comp> (line 2118) | struct sort_impl<list<L0, L1, L2>, list<>, Comp>
      type sort_impl<list<>, list<>, Comp> (line 2123) | struct sort_impl<list<>, list<>, Comp>
      type and_impl (line 2391) | struct and_impl
      type and_impl<0> (line 2393) | struct and_impl<0>
      type and_impl<1> (line 2402) | struct and_impl<1>
      type or_impl (line 2432) | struct or_impl
      type or_impl<0> (line 2434) | struct or_impl<0>
      type or_impl<1> (line 2443) | struct or_impl<1>
      type repeat_impl (line 2481) | struct repeat_impl
      type repeat_impl<F, 7, T> (line 2485) | struct repeat_impl<F, 7, T>
      type repeat_impl<F, 6, T> (line 2490) | struct repeat_impl<F, 6, T>
      type repeat_impl<F, 5, T> (line 2495) | struct repeat_impl<F, 5, T>
      type repeat_impl<F, 4, T> (line 2500) | struct repeat_impl<F, 4, T>
      type repeat_impl<F, 3, T> (line 2505) | struct repeat_impl<F, 3, T>
      type repeat_impl<F, 2, T> (line 2510) | struct repeat_impl<F, 2, T>
      type repeat_impl<F, 1, T> (line 2515) | struct repeat_impl<F, 1, T>
      type repeat_impl<F, 0, T> (line 2520) | struct repeat_impl<F, 0, T>
      type has_key_impl (line 2545) | struct has_key_impl
      type mksq8 (line 2558) | struct mksq8
      type mksq8<Start, 8, Next> (line 2572) | struct mksq8<Start, 8, Next>
      type make_sequence_impl (line 2584) | struct make_sequence_impl
      type has_erase_method (line 2613) | struct has_erase_method
        type dummy (line 2615) | struct dummy
      type erase_dispatch (line 2626) | struct erase_dispatch
      type erase_dispatch<C, K, true> (line 2631) | struct erase_dispatch<C, K, true>
      type insert_impl (line 2644) | struct insert_impl
      type contains_impl (line 2657) | struct contains_impl
      type make_set (line 2670) | struct make_set
      type set_erase_pred_impl (line 2672) | struct set_erase_pred_impl
      type set_erase_pred_impl<K,K> (line 2677) | struct set_erase_pred_impl<K,K>
      type set_impl (line 2682) | struct set_impl
      type make_set (line 2700) | struct make_set : type_<Ts>...
      type get_second (line 2717) | struct get_second {
      type get_first (line 2729) | struct get_first {
    type detail (line 448) | namespace detail
      type dup_append_list (line 43) | struct dup_append_list
      type filled_list_impl (line 50) | struct filled_list_impl
      type filled_list_impl<T, List, 1> (line 56) | struct filled_list_impl<T, List, 1>
      type filled_list_impl<T, List, 0> (line 61) | struct filled_list_impl<T, List, 0>
      type append_impl (line 88) | struct append_impl
      type append_impl<> (line 90) | struct append_impl<>
      type map_impl (line 184) | struct map_impl
        type Pack (line 201) | struct Pack : pair<typename Ts::first_type, Ts>...
        type erase_return_t (line 219) | struct erase_return_t
      type map_impl<> (line 186) | struct map_impl<>
      type map_impl (line 198) | struct map_impl
        type Pack (line 201) | struct Pack : pair<typename Ts::first_type, Ts>...
        type erase_return_t (line 219) | struct erase_return_t
      type make_map (line 231) | struct make_map : type_<typename Ts::first_type>...
      type element_at (line 244) | struct element_at
      type at_impl (line 252) | struct at_impl
      type has_at_method (line 264) | struct has_at_method
        type dummy (line 266) | struct dummy
      type at_dispatch (line 277) | struct at_dispatch
      type at_dispatch<L, Index, true> (line 282) | struct at_dispatch<L, Index, true>
      type packaged_lcall (line 331) | struct packaged_lcall
      type apply (line 335) | struct apply {
      type clear_impl (line 451) | struct clear_impl
      type split_at_impl (line 466) | struct split_at_impl
      type call_split_at_impl (line 504) | struct call_split_at_impl : split_at_impl<(I::value > 16), brigand::...
      type push_front_impl (line 521) | struct push_front_impl
      type front_impl (line 540) | struct front_impl
      type pop_front_impl (line 552) | struct pop_front_impl
      type pop_front_element (line 559) | struct pop_front_element
      type substitute_impl (line 592) | struct substitute_impl
      type substitute_impl<args<Index>,List> (line 602) | struct substitute_impl<args<Index>,List>
      function count_bools (line 642) | constexpr unsigned int count_bools(const std::array<bool, length> & ...
      function count_bools (line 655) | constexpr unsigned int count_bools(bool const * const begin, bool co...
      type template_count_bools (line 663) | struct template_count_bools
      type push_back_impl (line 758) | struct push_back_impl
      type rot90 (line 778) | struct rot90
      type rot90<L1, list<>> (line 794) | struct rot90<L1, list<>>
      type transform_impl (line 799) | struct transform_impl
      type transform_apply (line 801) | struct transform_apply
      type transform (line 814) | struct transform : transform_impl<back<list<FuncOrSeqs...>>, Seq1, S...
      type as_sequence_impl (line 865) | struct as_sequence_impl
      type non_null_impl (line 943) | struct non_null_impl : bool_<Args::value != 0>{}
      type all_helper (line 955) | struct all_helper : ::brigand::apply<P, T>
      type bools_ (line 959) | struct bools_
      type all_impl (line 963) | struct all_impl
      type all_same (line 974) | struct all_same
        method all_same (line 977) | constexpr all_same(...) {}
        method all_same (line 979) | constexpr all_same(std::initializer_list<T *>) : value{true}
      type all_impl (line 984) | struct all_impl : bool_<true>
      type none_impl (line 1022) | struct none_impl
        type nope (line 1025) | struct nope
      type none_impl (line 1037) | struct none_impl : bool_<true>
        type nope (line 1025) | struct nope
      type any_impl (line 1074) | struct any_impl : bool_<!none<Sequence,Predicate>::value> {}
      type finder (line 1084) | struct finder
        type find (line 1089) | struct find
        type find<true, false, L> (line 1094) | struct find<true, false, L>
      type reverse_elements (line 1133) | struct reverse_elements
      type reverse_elements<L> (line 1135) | struct reverse_elements<L>
      type reverse_impl (line 1150) | struct reverse_impl
      type flatten_impl (line 1215) | struct flatten_impl
      type flatten_element_impl (line 1220) | struct flatten_element_impl
      type fold_impl (line 1246) | struct fold_impl
      type fold_impl<Functor, State, Sequence<T0>> (line 1253) | struct fold_impl<Functor, State, Sequence<T0>>
      type fold_impl<Functor, State, Sequence<T0, T1>> (line 1260) | struct fold_impl<Functor, State, Sequence<T0, T1>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2>> (line 1269) | struct fold_impl<Functor, State, Sequence<T0, T1, T2>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2, T3>> (line 1280) | struct fold_impl<Functor, State, Sequence<T0, T1, T2, T3>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4>> (line 1293) | struct fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5>> (line 1308) | struct fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5, T6>> (line 1325) | struct fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5, T6>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5, T6, T7>> (line 1344) | struct fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5, T6...
      type reverse_fold_impl (line 1389) | struct reverse_fold_impl
      function Functor (line 1451) | constexpr Functor for_each_impl( type_<List<Elements...>>&&, Functor...
      type index_if_impl (line 1466) | struct index_if_impl
      type index_if_impl<false, Sequence, Predicate, NotFoundType> (line 1472) | struct index_if_impl<false, Sequence, Predicate, NotFoundType>
      type range_cat (line 1488) | struct range_cat
      type int_plus (line 1491) | struct int_plus
      type range_impl (line 1506) | struct range_impl : range_cat<T, typename range_impl<T, Start, N / 2...
      type range_impl<T, Start, 1> (line 1511) | struct range_impl<T, Start, 1>
      type range_impl<T, Start, 0> (line 1516) | struct range_impl<T, Start, 0>
      type reverse_range_cat (line 1521) | struct reverse_range_cat
      type int_minus (line 1524) | struct int_minus
      type reverse_range_impl (line 1539) | struct reverse_range_impl
      type reverse_range_impl<T, Start, 1> (line 1545) | struct reverse_range_impl<T, Start, 1>
      type reverse_range_impl<T, Start, 0> (line 1550) | struct reverse_range_impl<T, Start, 0>
      type reverse_range_safe (line 1555) | struct reverse_range_safe
      type unique_x_t (line 1574) | struct unique_x_t
      type is_set_impl (line 1579) | struct is_set_impl
      type is_set_impl<list<>> (line 1581) | struct is_set_impl<list<>>
      type qrref (line 1598) | struct qrref
      type qref (line 1602) | struct qref
      type qnoref (line 1606) | struct qnoref
      type msvc_quali_ref (line 1610) | struct msvc_quali_ref
      type msvc_quali_ref<T &> (line 1615) | struct msvc_quali_ref<T &>
      type msvc_quali_ref<T &&> (line 1620) | struct msvc_quali_ref<T &&>
      type unique_x_t (line 1632) | struct unique_x_t : type_<T>
      type is_set_cont (line 1636) | struct is_set_cont
      type empty_helper (line 1735) | struct empty_helper : ::brigand::apply<Pred, T>
      type empty_if_true (line 1739) | struct empty_if_true : std::conditional<empty_helper<Pred, T>::value...
      type empty_if_true<bind<F, _1>, T, B> (line 1743) | struct empty_if_true<bind<F, _1>, T, B> : std::conditional<F<T>::val...
      type empty_if_true<F<_1>, T, B> (line 1747) | struct empty_if_true<F<_1>, T, B> : std::conditional<F<T>::type::val...
      type rep_helper (line 1803) | struct rep_helper
      type replacer (line 1808) | struct replacer : std::conditional<rep_helper<Pred, T>::type::value,...
      type replacer<T, bind<F, _1>, NewType> (line 1812) | struct replacer<T, bind<F, _1>, NewType> : std::conditional<F<T>::va...
      type replacer<T, F<_1>, NewType> (line 1816) | struct replacer<T, F<_1>, NewType> : std::conditional<F<T>::type::va...
      type split_impl (line 1857) | struct split_impl
      type split_helper (line 1884) | struct split_helper
      type split_helper<L<>, TDelim> (line 1889) | struct split_helper<L<>, TDelim> {
      type merge_helper (line 1918) | struct merge_helper : ::brigand::apply<Comp, T1, U>
      type merge_impl (line 1922) | struct merge_impl
      type merge_insert (line 1924) | struct merge_insert
      type sort_impl (line 1997) | struct sort_impl
      type mini_sort (line 1999) | struct mini_sort
      type mini_sort<list<T0, T1, T2, T3>, Comp> (line 2014) | struct mini_sort<list<T0, T1, T2, T3>, Comp>
      type mini_sort<list<T0, T1, T2>, Comp> (line 2020) | struct mini_sort<list<T0, T1, T2>, Comp>
      type mini_sort<list<T0, T1>, Comp> (line 2025) | struct mini_sort<list<T0, T1>, Comp>
      type mini_sort<list<T0>, Comp> (line 2031) | struct mini_sort<list<T0>, Comp>
      type sort_impl<list<L>, list<>, Comp> (line 2108) | struct sort_impl<list<L>, list<>, Comp>
      type sort_impl<list<L0, L1>, list<>, Comp> (line 2113) | struct sort_impl<list<L0, L1>, list<>, Comp>
      type sort_impl<list<L0, L1, L2>, list<>, Comp> (line 2118) | struct sort_impl<list<L0, L1, L2>, list<>, Comp>
      type sort_impl<list<>, list<>, Comp> (line 2123) | struct sort_impl<list<>, list<>, Comp>
      type and_impl (line 2391) | struct and_impl
      type and_impl<0> (line 2393) | struct and_impl<0>
      type and_impl<1> (line 2402) | struct and_impl<1>
      type or_impl (line 2432) | struct or_impl
      type or_impl<0> (line 2434) | struct or_impl<0>
      type or_impl<1> (line 2443) | struct or_impl<1>
      type repeat_impl (line 2481) | struct repeat_impl
      type repeat_impl<F, 7, T> (line 2485) | struct repeat_impl<F, 7, T>
      type repeat_impl<F, 6, T> (line 2490) | struct repeat_impl<F, 6, T>
      type repeat_impl<F, 5, T> (line 2495) | struct repeat_impl<F, 5, T>
      type repeat_impl<F, 4, T> (line 2500) | struct repeat_impl<F, 4, T>
      type repeat_impl<F, 3, T> (line 2505) | struct repeat_impl<F, 3, T>
      type repeat_impl<F, 2, T> (line 2510) | struct repeat_impl<F, 2, T>
      type repeat_impl<F, 1, T> (line 2515) | struct repeat_impl<F, 1, T>
      type repeat_impl<F, 0, T> (line 2520) | struct repeat_impl<F, 0, T>
      type has_key_impl (line 2545) | struct has_key_impl
      type mksq8 (line 2558) | struct mksq8
      type mksq8<Start, 8, Next> (line 2572) | struct mksq8<Start, 8, Next>
      type make_sequence_impl (line 2584) | struct make_sequence_impl
      type has_erase_method (line 2613) | struct has_erase_method
        type dummy (line 2615) | struct dummy
      type erase_dispatch (line 2626) | struct erase_dispatch
      type erase_dispatch<C, K, true> (line 2631) | struct erase_dispatch<C, K, true>
      type insert_impl (line 2644) | struct insert_impl
      type contains_impl (line 2657) | struct contains_impl
      type make_set (line 2670) | struct make_set
      type set_erase_pred_impl (line 2672) | struct set_erase_pred_impl
      type set_erase_pred_impl<K,K> (line 2677) | struct set_erase_pred_impl<K,K>
      type set_impl (line 2682) | struct set_impl
      type make_set (line 2700) | struct make_set : type_<Ts>...
      type get_second (line 2717) | struct get_second {
      type get_first (line 2729) | struct get_first {
    type detail (line 463) | namespace detail
      type dup_append_list (line 43) | struct dup_append_list
      type filled_list_impl (line 50) | struct filled_list_impl
      type filled_list_impl<T, List, 1> (line 56) | struct filled_list_impl<T, List, 1>
      type filled_list_impl<T, List, 0> (line 61) | struct filled_list_impl<T, List, 0>
      type append_impl (line 88) | struct append_impl
      type append_impl<> (line 90) | struct append_impl<>
      type map_impl (line 184) | struct map_impl
        type Pack (line 201) | struct Pack : pair<typename Ts::first_type, Ts>...
        type erase_return_t (line 219) | struct erase_return_t
      type map_impl<> (line 186) | struct map_impl<>
      type map_impl (line 198) | struct map_impl
        type Pack (line 201) | struct Pack : pair<typename Ts::first_type, Ts>...
        type erase_return_t (line 219) | struct erase_return_t
      type make_map (line 231) | struct make_map : type_<typename Ts::first_type>...
      type element_at (line 244) | struct element_at
      type at_impl (line 252) | struct at_impl
      type has_at_method (line 264) | struct has_at_method
        type dummy (line 266) | struct dummy
      type at_dispatch (line 277) | struct at_dispatch
      type at_dispatch<L, Index, true> (line 282) | struct at_dispatch<L, Index, true>
      type packaged_lcall (line 331) | struct packaged_lcall
      type apply (line 335) | struct apply {
      type clear_impl (line 451) | struct clear_impl
      type split_at_impl (line 466) | struct split_at_impl
      type call_split_at_impl (line 504) | struct call_split_at_impl : split_at_impl<(I::value > 16), brigand::...
      type push_front_impl (line 521) | struct push_front_impl
      type front_impl (line 540) | struct front_impl
      type pop_front_impl (line 552) | struct pop_front_impl
      type pop_front_element (line 559) | struct pop_front_element
      type substitute_impl (line 592) | struct substitute_impl
      type substitute_impl<args<Index>,List> (line 602) | struct substitute_impl<args<Index>,List>
      function count_bools (line 642) | constexpr unsigned int count_bools(const std::array<bool, length> & ...
      function count_bools (line 655) | constexpr unsigned int count_bools(bool const * const begin, bool co...
      type template_count_bools (line 663) | struct template_count_bools
      type push_back_impl (line 758) | struct push_back_impl
      type rot90 (line 778) | struct rot90
      type rot90<L1, list<>> (line 794) | struct rot90<L1, list<>>
      type transform_impl (line 799) | struct transform_impl
      type transform_apply (line 801) | struct transform_apply
      type transform (line 814) | struct transform : transform_impl<back<list<FuncOrSeqs...>>, Seq1, S...
      type as_sequence_impl (line 865) | struct as_sequence_impl
      type non_null_impl (line 943) | struct non_null_impl : bool_<Args::value != 0>{}
      type all_helper (line 955) | struct all_helper : ::brigand::apply<P, T>
      type bools_ (line 959) | struct bools_
      type all_impl (line 963) | struct all_impl
      type all_same (line 974) | struct all_same
        method all_same (line 977) | constexpr all_same(...) {}
        method all_same (line 979) | constexpr all_same(std::initializer_list<T *>) : value{true}
      type all_impl (line 984) | struct all_impl : bool_<true>
      type none_impl (line 1022) | struct none_impl
        type nope (line 1025) | struct nope
      type none_impl (line 1037) | struct none_impl : bool_<true>
        type nope (line 1025) | struct nope
      type any_impl (line 1074) | struct any_impl : bool_<!none<Sequence,Predicate>::value> {}
      type finder (line 1084) | struct finder
        type find (line 1089) | struct find
        type find<true, false, L> (line 1094) | struct find<true, false, L>
      type reverse_elements (line 1133) | struct reverse_elements
      type reverse_elements<L> (line 1135) | struct reverse_elements<L>
      type reverse_impl (line 1150) | struct reverse_impl
      type flatten_impl (line 1215) | struct flatten_impl
      type flatten_element_impl (line 1220) | struct flatten_element_impl
      type fold_impl (line 1246) | struct fold_impl
      type fold_impl<Functor, State, Sequence<T0>> (line 1253) | struct fold_impl<Functor, State, Sequence<T0>>
      type fold_impl<Functor, State, Sequence<T0, T1>> (line 1260) | struct fold_impl<Functor, State, Sequence<T0, T1>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2>> (line 1269) | struct fold_impl<Functor, State, Sequence<T0, T1, T2>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2, T3>> (line 1280) | struct fold_impl<Functor, State, Sequence<T0, T1, T2, T3>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4>> (line 1293) | struct fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5>> (line 1308) | struct fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5, T6>> (line 1325) | struct fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5, T6>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5, T6, T7>> (line 1344) | struct fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5, T6...
      type reverse_fold_impl (line 1389) | struct reverse_fold_impl
      function Functor (line 1451) | constexpr Functor for_each_impl( type_<List<Elements...>>&&, Functor...
      type index_if_impl (line 1466) | struct index_if_impl
      type index_if_impl<false, Sequence, Predicate, NotFoundType> (line 1472) | struct index_if_impl<false, Sequence, Predicate, NotFoundType>
      type range_cat (line 1488) | struct range_cat
      type int_plus (line 1491) | struct int_plus
      type range_impl (line 1506) | struct range_impl : range_cat<T, typename range_impl<T, Start, N / 2...
      type range_impl<T, Start, 1> (line 1511) | struct range_impl<T, Start, 1>
      type range_impl<T, Start, 0> (line 1516) | struct range_impl<T, Start, 0>
      type reverse_range_cat (line 1521) | struct reverse_range_cat
      type int_minus (line 1524) | struct int_minus
      type reverse_range_impl (line 1539) | struct reverse_range_impl
      type reverse_range_impl<T, Start, 1> (line 1545) | struct reverse_range_impl<T, Start, 1>
      type reverse_range_impl<T, Start, 0> (line 1550) | struct reverse_range_impl<T, Start, 0>
      type reverse_range_safe (line 1555) | struct reverse_range_safe
      type unique_x_t (line 1574) | struct unique_x_t
      type is_set_impl (line 1579) | struct is_set_impl
      type is_set_impl<list<>> (line 1581) | struct is_set_impl<list<>>
      type qrref (line 1598) | struct qrref
      type qref (line 1602) | struct qref
      type qnoref (line 1606) | struct qnoref
      type msvc_quali_ref (line 1610) | struct msvc_quali_ref
      type msvc_quali_ref<T &> (line 1615) | struct msvc_quali_ref<T &>
      type msvc_quali_ref<T &&> (line 1620) | struct msvc_quali_ref<T &&>
      type unique_x_t (line 1632) | struct unique_x_t : type_<T>
      type is_set_cont (line 1636) | struct is_set_cont
      type empty_helper (line 1735) | struct empty_helper : ::brigand::apply<Pred, T>
      type empty_if_true (line 1739) | struct empty_if_true : std::conditional<empty_helper<Pred, T>::value...
      type empty_if_true<bind<F, _1>, T, B> (line 1743) | struct empty_if_true<bind<F, _1>, T, B> : std::conditional<F<T>::val...
      type empty_if_true<F<_1>, T, B> (line 1747) | struct empty_if_true<F<_1>, T, B> : std::conditional<F<T>::type::val...
      type rep_helper (line 1803) | struct rep_helper
      type replacer (line 1808) | struct replacer : std::conditional<rep_helper<Pred, T>::type::value,...
      type replacer<T, bind<F, _1>, NewType> (line 1812) | struct replacer<T, bind<F, _1>, NewType> : std::conditional<F<T>::va...
      type replacer<T, F<_1>, NewType> (line 1816) | struct replacer<T, F<_1>, NewType> : std::conditional<F<T>::type::va...
      type split_impl (line 1857) | struct split_impl
      type split_helper (line 1884) | struct split_helper
      type split_helper<L<>, TDelim> (line 1889) | struct split_helper<L<>, TDelim> {
      type merge_helper (line 1918) | struct merge_helper : ::brigand::apply<Comp, T1, U>
      type merge_impl (line 1922) | struct merge_impl
      type merge_insert (line 1924) | struct merge_insert
      type sort_impl (line 1997) | struct sort_impl
      type mini_sort (line 1999) | struct mini_sort
      type mini_sort<list<T0, T1, T2, T3>, Comp> (line 2014) | struct mini_sort<list<T0, T1, T2, T3>, Comp>
      type mini_sort<list<T0, T1, T2>, Comp> (line 2020) | struct mini_sort<list<T0, T1, T2>, Comp>
      type mini_sort<list<T0, T1>, Comp> (line 2025) | struct mini_sort<list<T0, T1>, Comp>
      type mini_sort<list<T0>, Comp> (line 2031) | struct mini_sort<list<T0>, Comp>
      type sort_impl<list<L>, list<>, Comp> (line 2108) | struct sort_impl<list<L>, list<>, Comp>
      type sort_impl<list<L0, L1>, list<>, Comp> (line 2113) | struct sort_impl<list<L0, L1>, list<>, Comp>
      type sort_impl<list<L0, L1, L2>, list<>, Comp> (line 2118) | struct sort_impl<list<L0, L1, L2>, list<>, Comp>
      type sort_impl<list<>, list<>, Comp> (line 2123) | struct sort_impl<list<>, list<>, Comp>
      type and_impl (line 2391) | struct and_impl
      type and_impl<0> (line 2393) | struct and_impl<0>
      type and_impl<1> (line 2402) | struct and_impl<1>
      type or_impl (line 2432) | struct or_impl
      type or_impl<0> (line 2434) | struct or_impl<0>
      type or_impl<1> (line 2443) | struct or_impl<1>
      type repeat_impl (line 2481) | struct repeat_impl
      type repeat_impl<F, 7, T> (line 2485) | struct repeat_impl<F, 7, T>
      type repeat_impl<F, 6, T> (line 2490) | struct repeat_impl<F, 6, T>
      type repeat_impl<F, 5, T> (line 2495) | struct repeat_impl<F, 5, T>
      type repeat_impl<F, 4, T> (line 2500) | struct repeat_impl<F, 4, T>
      type repeat_impl<F, 3, T> (line 2505) | struct repeat_impl<F, 3, T>
      type repeat_impl<F, 2, T> (line 2510) | struct repeat_impl<F, 2, T>
      type repeat_impl<F, 1, T> (line 2515) | struct repeat_impl<F, 1, T>
      type repeat_impl<F, 0, T> (line 2520) | struct repeat_impl<F, 0, T>
      type has_key_impl (line 2545) | struct has_key_impl
      type mksq8 (line 2558) | struct mksq8
      type mksq8<Start, 8, Next> (line 2572) | struct mksq8<Start, 8, Next>
      type make_sequence_impl (line 2584) | struct make_sequence_impl
      type has_erase_method (line 2613) | struct has_erase_method
        type dummy (line 2615) | struct dummy
      type erase_dispatch (line 2626) | struct erase_dispatch
      type erase_dispatch<C, K, true> (line 2631) | struct erase_dispatch<C, K, true>
      type insert_impl (line 2644) | struct insert_impl
      type contains_impl (line 2657) | struct contains_impl
      type make_set (line 2670) | struct make_set
      type set_erase_pred_impl (line 2672) | struct set_erase_pred_impl
      type set_erase_pred_impl<K,K> (line 2677) | struct set_erase_pred_impl<K,K>
      type set_impl (line 2682) | struct set_impl
      type make_set (line 2700) | struct make_set : type_<Ts>...
      type get_second (line 2717) | struct get_second {
      type get_first (line 2729) | struct get_first {
    type lazy (line 508) | namespace lazy
      type wrap (line 73) | struct wrap
      type join (line 136) | struct join
      type lookup_at (line 169) | struct lookup_at
      type lookup (line 175) | struct lookup : lookup_at<M, K>::type
      type push_front (line 531) | struct push_front : detail::push_front_impl<L, T...>
      type pop_front (line 576) | struct pop_front : detail::pop_front_impl<L, N::value>
      type count_if (line 685) | struct count_if
      type count_if<S<>, Pred> (line 689) | struct count_if<S<>, Pred>
      type count_if<S<>, bind<F, _1>> (line 695) | struct count_if<S<>, bind<F, _1>>
      type count_if<S<>, F<_1>> (line 700) | struct count_if<S<>, F<_1>>
      type transform (line 844) | struct transform : detail::transform<sizeof...(OpSeq2), Sequence1, O...
      type find (line 1170) | struct find
      type reverse_find (line 1189) | struct reverse_find {
      type remove_if (line 1653) | struct remove_if
      type remove_if<L<>, Pred> (line 1655) | struct remove_if<L<>, Pred> {
      type remove (line 1688) | struct remove
      type filter (line 1699) | struct filter
      type filter<L<>, Pred> (line 1701) | struct filter<L<>, Pred> {
      type remove_if (line 1754) | struct remove_if
      type remove (line 1765) | struct remove
      type filter (line 1776) | struct filter
      type replace_if (line 1823) | struct replace_if
      type replace (line 1830) | struct replace : replace_if<Sequence, std::is_same<_1, pin<OldType>>...
      type inherit_linearly (line 2791) | struct inherit_linearly
    type detail (line 518) | namespace detail
      type dup_append_list (line 43) | struct dup_append_list
      type filled_list_impl (line 50) | struct filled_list_impl
      type filled_list_impl<T, List, 1> (line 56) | struct filled_list_impl<T, List, 1>
      type filled_list_impl<T, List, 0> (line 61) | struct filled_list_impl<T, List, 0>
      type append_impl (line 88) | struct append_impl
      type append_impl<> (line 90) | struct append_impl<>
      type map_impl (line 184) | struct map_impl
        type Pack (line 201) | struct Pack : pair<typename Ts::first_type, Ts>...
        type erase_return_t (line 219) | struct erase_return_t
      type map_impl<> (line 186) | struct map_impl<>
      type map_impl (line 198) | struct map_impl
        type Pack (line 201) | struct Pack : pair<typename Ts::first_type, Ts>...
        type erase_return_t (line 219) | struct erase_return_t
      type make_map (line 231) | struct make_map : type_<typename Ts::first_type>...
      type element_at (line 244) | struct element_at
      type at_impl (line 252) | struct at_impl
      type has_at_method (line 264) | struct has_at_method
        type dummy (line 266) | struct dummy
      type at_dispatch (line 277) | struct at_dispatch
      type at_dispatch<L, Index, true> (line 282) | struct at_dispatch<L, Index, true>
      type packaged_lcall (line 331) | struct packaged_lcall
      type apply (line 335) | struct apply {
      type clear_impl (line 451) | struct clear_impl
      type split_at_impl (line 466) | struct split_at_impl
      type call_split_at_impl (line 504) | struct call_split_at_impl : split_at_impl<(I::value > 16), brigand::...
      type push_front_impl (line 521) | struct push_front_impl
      type front_impl (line 540) | struct front_impl
      type pop_front_impl (line 552) | struct pop_front_impl
      type pop_front_element (line 559) | struct pop_front_element
      type substitute_impl (line 592) | struct substitute_impl
      type substitute_impl<args<Index>,List> (line 602) | struct substitute_impl<args<Index>,List>
      function count_bools (line 642) | constexpr unsigned int count_bools(const std::array<bool, length> & ...
      function count_bools (line 655) | constexpr unsigned int count_bools(bool const * const begin, bool co...
      type template_count_bools (line 663) | struct template_count_bools
      type push_back_impl (line 758) | struct push_back_impl
      type rot90 (line 778) | struct rot90
      type rot90<L1, list<>> (line 794) | struct rot90<L1, list<>>
      type transform_impl (line 799) | struct transform_impl
      type transform_apply (line 801) | struct transform_apply
      type transform (line 814) | struct transform : transform_impl<back<list<FuncOrSeqs...>>, Seq1, S...
      type as_sequence_impl (line 865) | struct as_sequence_impl
      type non_null_impl (line 943) | struct non_null_impl : bool_<Args::value != 0>{}
      type all_helper (line 955) | struct all_helper : ::brigand::apply<P, T>
      type bools_ (line 959) | struct bools_
      type all_impl (line 963) | struct all_impl
      type all_same (line 974) | struct all_same
        method all_same (line 977) | constexpr all_same(...) {}
        method all_same (line 979) | constexpr all_same(std::initializer_list<T *>) : value{true}
      type all_impl (line 984) | struct all_impl : bool_<true>
      type none_impl (line 1022) | struct none_impl
        type nope (line 1025) | struct nope
      type none_impl (line 1037) | struct none_impl : bool_<true>
        type nope (line 1025) | struct nope
      type any_impl (line 1074) | struct any_impl : bool_<!none<Sequence,Predicate>::value> {}
      type finder (line 1084) | struct finder
        type find (line 1089) | struct find
        type find<true, false, L> (line 1094) | struct find<true, false, L>
      type reverse_elements (line 1133) | struct reverse_elements
      type reverse_elements<L> (line 1135) | struct reverse_elements<L>
      type reverse_impl (line 1150) | struct reverse_impl
      type flatten_impl (line 1215) | struct flatten_impl
      type flatten_element_impl (line 1220) | struct flatten_element_impl
      type fold_impl (line 1246) | struct fold_impl
      type fold_impl<Functor, State, Sequence<T0>> (line 1253) | struct fold_impl<Functor, State, Sequence<T0>>
      type fold_impl<Functor, State, Sequence<T0, T1>> (line 1260) | struct fold_impl<Functor, State, Sequence<T0, T1>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2>> (line 1269) | struct fold_impl<Functor, State, Sequence<T0, T1, T2>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2, T3>> (line 1280) | struct fold_impl<Functor, State, Sequence<T0, T1, T2, T3>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4>> (line 1293) | struct fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5>> (line 1308) | struct fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5, T6>> (line 1325) | struct fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5, T6>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5, T6, T7>> (line 1344) | struct fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5, T6...
      type reverse_fold_impl (line 1389) | struct reverse_fold_impl
      function Functor (line 1451) | constexpr Functor for_each_impl( type_<List<Elements...>>&&, Functor...
      type index_if_impl (line 1466) | struct index_if_impl
      type index_if_impl<false, Sequence, Predicate, NotFoundType> (line 1472) | struct index_if_impl<false, Sequence, Predicate, NotFoundType>
      type range_cat (line 1488) | struct range_cat
      type int_plus (line 1491) | struct int_plus
      type range_impl (line 1506) | struct range_impl : range_cat<T, typename range_impl<T, Start, N / 2...
      type range_impl<T, Start, 1> (line 1511) | struct range_impl<T, Start, 1>
      type range_impl<T, Start, 0> (line 1516) | struct range_impl<T, Start, 0>
      type reverse_range_cat (line 1521) | struct reverse_range_cat
      type int_minus (line 1524) | struct int_minus
      type reverse_range_impl (line 1539) | struct reverse_range_impl
      type reverse_range_impl<T, Start, 1> (line 1545) | struct reverse_range_impl<T, Start, 1>
      type reverse_range_impl<T, Start, 0> (line 1550) | struct reverse_range_impl<T, Start, 0>
      type reverse_range_safe (line 1555) | struct reverse_range_safe
      type unique_x_t (line 1574) | struct unique_x_t
      type is_set_impl (line 1579) | struct is_set_impl
      type is_set_impl<list<>> (line 1581) | struct is_set_impl<list<>>
      type qrref (line 1598) | struct qrref
      type qref (line 1602) | struct qref
      type qnoref (line 1606) | struct qnoref
      type msvc_quali_ref (line 1610) | struct msvc_quali_ref
      type msvc_quali_ref<T &> (line 1615) | struct msvc_quali_ref<T &>
      type msvc_quali_ref<T &&> (line 1620) | struct msvc_quali_ref<T &&>
      type unique_x_t (line 1632) | struct unique_x_t : type_<T>
      type is_set_cont (line 1636) | struct is_set_cont
      type empty_helper (line 1735) | struct empty_helper : ::brigand::apply<Pred, T>
      type empty_if_true (line 1739) | struct empty_if_true : std::conditional<empty_helper<Pred, T>::value...
      type empty_if_true<bind<F, _1>, T, B> (line 1743) | struct empty_if_true<bind<F, _1>, T, B> : std::conditional<F<T>::val...
      type empty_if_true<F<_1>, T, B> (line 1747) | struct empty_if_true<F<_1>, T, B> : std::conditional<F<T>::type::val...
      type rep_helper (line 1803) | struct rep_helper
      type replacer (line 1808) | struct replacer : std::conditional<rep_helper<Pred, T>::type::value,...
      type replacer<T, bind<F, _1>, NewType> (line 1812) | struct replacer<T, bind<F, _1>, NewType> : std::conditional<F<T>::va...
      type replacer<T, F<_1>, NewType> (line 1816) | struct replacer<T, F<_1>, NewType> : std::conditional<F<T>::type::va...
      type split_impl (line 1857) | struct split_impl
      type split_helper (line 1884) | struct split_helper
      type split_helper<L<>, TDelim> (line 1889) | struct split_helper<L<>, TDelim> {
      type merge_helper (line 1918) | struct merge_helper : ::brigand::apply<Comp, T1, U>
      type merge_impl (line 1922) | struct merge_impl
      type merge_insert (line 1924) | struct merge_insert
      type sort_impl (line 1997) | struct sort_impl
      type mini_sort (line 1999) | struct mini_sort
      type mini_sort<list<T0, T1, T2, T3>, Comp> (line 2014) | struct mini_sort<list<T0, T1, T2, T3>, Comp>
      type mini_sort<list<T0, T1, T2>, Comp> (line 2020) | struct mini_sort<list<T0, T1, T2>, Comp>
      type mini_sort<list<T0, T1>, Comp> (line 2025) | struct mini_sort<list<T0, T1>, Comp>
      type mini_sort<list<T0>, Comp> (line 2031) | struct mini_sort<list<T0>, Comp>
      type sort_impl<list<L>, list<>, Comp> (line 2108) | struct sort_impl<list<L>, list<>, Comp>
      type sort_impl<list<L0, L1>, list<>, Comp> (line 2113) | struct sort_impl<list<L0, L1>, list<>, Comp>
      type sort_impl<list<L0, L1, L2>, list<>, Comp> (line 2118) | struct sort_impl<list<L0, L1, L2>, list<>, Comp>
      type sort_impl<list<>, list<>, Comp> (line 2123) | struct sort_impl<list<>, list<>, Comp>
      type and_impl (line 2391) | struct and_impl
      type and_impl<0> (line 2393) | struct and_impl<0>
      type and_impl<1> (line 2402) | struct and_impl<1>
      type or_impl (line 2432) | struct or_impl
      type or_impl<0> (line 2434) | struct or_impl<0>
      type or_impl<1> (line 2443) | struct or_impl<1>
      type repeat_impl (line 2481) | struct repeat_impl
      type repeat_impl<F, 7, T> (line 2485) | struct repeat_impl<F, 7, T>
      type repeat_impl<F, 6, T> (line 2490) | struct repeat_impl<F, 6, T>
      type repeat_impl<F, 5, T> (line 2495) | struct repeat_impl<F, 5, T>
      type repeat_impl<F, 4, T> (line 2500) | struct repeat_impl<F, 4, T>
      type repeat_impl<F, 3, T> (line 2505) | struct repeat_impl<F, 3, T>
      type repeat_impl<F, 2, T> (line 2510) | struct repeat_impl<F, 2, T>
      type repeat_impl<F, 1, T> (line 2515) | struct repeat_impl<F, 1, T>
      type repeat_impl<F, 0, T> (line 2520) | struct repeat_impl<F, 0, T>
      type has_key_impl (line 2545) | struct has_key_impl
      type mksq8 (line 2558) | struct mksq8
      type mksq8<Start, 8, Next> (line 2572) | struct mksq8<Start, 8, Next>
      type make_sequence_impl (line 2584) | struct make_sequence_impl
      type has_erase_method (line 2613) | struct has_erase_method
        type dummy (line 2615) | struct dummy
      type erase_dispatch (line 2626) | struct erase_dispatch
      type erase_dispatch<C, K, true> (line 2631) | struct erase_dispatch<C, K, true>
      type insert_impl (line 2644) | struct insert_impl
      type contains_impl (line 2657) | struct contains_impl
      type make_set (line 2670) | struct make_set
      type set_erase_pred_impl (line 2672) | struct set_erase_pred_impl
      type set_erase_pred_impl<K,K> (line 2677) | struct set_erase_pred_impl<K,K>
      type set_impl (line 2682) | struct set_impl
      type make_set (line 2700) | struct make_set : type_<Ts>...
      type get_second (line 2717) | struct get_second {
      type get_first (line 2729) | struct get_first {
    type lazy (line 528) | namespace lazy
      type wrap (line 73) | struct wrap
      type join (line 136) | struct join
      type lookup_at (line 169) | struct lookup_at
      type lookup (line 175) | struct lookup : lookup_at<M, K>::type
      type push_front (line 531) | struct push_front : detail::push_front_impl<L, T...>
      type pop_front (line 576) | struct pop_front : detail::pop_front_impl<L, N::value>
      type count_if (line 685) | struct count_if
      type count_if<S<>, Pred> (line 689) | struct count_if<S<>, Pred>
      type count_if<S<>, bind<F, _1>> (line 695) | struct count_if<S<>, bind<F, _1>>
      type count_if<S<>, F<_1>> (line 700) | struct count_if<S<>, F<_1>>
      type transform (line 844) | struct transform : detail::transform<sizeof...(OpSeq2), Sequence1, O...
      type find (line 1170) | struct find
      type reverse_find (line 1189) | struct reverse_find {
      type remove_if (line 1653) | struct remove_if
      type remove_if<L<>, Pred> (line 1655) | struct remove_if<L<>, Pred> {
      type remove (line 1688) | struct remove
      type filter (line 1699) | struct filter
      type filter<L<>, Pred> (line 1701) | struct filter<L<>, Pred> {
      type remove_if (line 1754) | struct remove_if
      type remove (line 1765) | struct remove
      type filter (line 1776) | struct filter
      type replace_if (line 1823) | struct replace_if
      type replace (line 1830) | struct replace : replace_if<Sequence, std::is_same<_1, pin<OldType>>...
      type inherit_linearly (line 2791) | struct inherit_linearly
    type detail (line 537) | namespace detail
      type dup_append_list (line 43) | struct dup_append_list
      type filled_list_impl (line 50) | struct filled_list_impl
      type filled_list_impl<T, List, 1> (line 56) | struct filled_list_impl<T, List, 1>
      type filled_list_impl<T, List, 0> (line 61) | struct filled_list_impl<T, List, 0>
      type append_impl (line 88) | struct append_impl
      type append_impl<> (line 90) | struct append_impl<>
      type map_impl (line 184) | struct map_impl
        type Pack (line 201) | struct Pack : pair<typename Ts::first_type, Ts>...
        type erase_return_t (line 219) | struct erase_return_t
      type map_impl<> (line 186) | struct map_impl<>
      type map_impl (line 198) | struct map_impl
        type Pack (line 201) | struct Pack : pair<typename Ts::first_type, Ts>...
        type erase_return_t (line 219) | struct erase_return_t
      type make_map (line 231) | struct make_map : type_<typename Ts::first_type>...
      type element_at (line 244) | struct element_at
      type at_impl (line 252) | struct at_impl
      type has_at_method (line 264) | struct has_at_method
        type dummy (line 266) | struct dummy
      type at_dispatch (line 277) | struct at_dispatch
      type at_dispatch<L, Index, true> (line 282) | struct at_dispatch<L, Index, true>
      type packaged_lcall (line 331) | struct packaged_lcall
      type apply (line 335) | struct apply {
      type clear_impl (line 451) | struct clear_impl
      type split_at_impl (line 466) | struct split_at_impl
      type call_split_at_impl (line 504) | struct call_split_at_impl : split_at_impl<(I::value > 16), brigand::...
      type push_front_impl (line 521) | struct push_front_impl
      type front_impl (line 540) | struct front_impl
      type pop_front_impl (line 552) | struct pop_front_impl
      type pop_front_element (line 559) | struct pop_front_element
      type substitute_impl (line 592) | struct substitute_impl
      type substitute_impl<args<Index>,List> (line 602) | struct substitute_impl<args<Index>,List>
      function count_bools (line 642) | constexpr unsigned int count_bools(const std::array<bool, length> & ...
      function count_bools (line 655) | constexpr unsigned int count_bools(bool const * const begin, bool co...
      type template_count_bools (line 663) | struct template_count_bools
      type push_back_impl (line 758) | struct push_back_impl
      type rot90 (line 778) | struct rot90
      type rot90<L1, list<>> (line 794) | struct rot90<L1, list<>>
      type transform_impl (line 799) | struct transform_impl
      type transform_apply (line 801) | struct transform_apply
      type transform (line 814) | struct transform : transform_impl<back<list<FuncOrSeqs...>>, Seq1, S...
      type as_sequence_impl (line 865) | struct as_sequence_impl
      type non_null_impl (line 943) | struct non_null_impl : bool_<Args::value != 0>{}
      type all_helper (line 955) | struct all_helper : ::brigand::apply<P, T>
      type bools_ (line 959) | struct bools_
      type all_impl (line 963) | struct all_impl
      type all_same (line 974) | struct all_same
        method all_same (line 977) | constexpr all_same(...) {}
        method all_same (line 979) | constexpr all_same(std::initializer_list<T *>) : value{true}
      type all_impl (line 984) | struct all_impl : bool_<true>
      type none_impl (line 1022) | struct none_impl
        type nope (line 1025) | struct nope
      type none_impl (line 1037) | struct none_impl : bool_<true>
        type nope (line 1025) | struct nope
      type any_impl (line 1074) | struct any_impl : bool_<!none<Sequence,Predicate>::value> {}
      type finder (line 1084) | struct finder
        type find (line 1089) | struct find
        type find<true, false, L> (line 1094) | struct find<true, false, L>
      type reverse_elements (line 1133) | struct reverse_elements
      type reverse_elements<L> (line 1135) | struct reverse_elements<L>
      type reverse_impl (line 1150) | struct reverse_impl
      type flatten_impl (line 1215) | struct flatten_impl
      type flatten_element_impl (line 1220) | struct flatten_element_impl
      type fold_impl (line 1246) | struct fold_impl
      type fold_impl<Functor, State, Sequence<T0>> (line 1253) | struct fold_impl<Functor, State, Sequence<T0>>
      type fold_impl<Functor, State, Sequence<T0, T1>> (line 1260) | struct fold_impl<Functor, State, Sequence<T0, T1>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2>> (line 1269) | struct fold_impl<Functor, State, Sequence<T0, T1, T2>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2, T3>> (line 1280) | struct fold_impl<Functor, State, Sequence<T0, T1, T2, T3>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4>> (line 1293) | struct fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5>> (line 1308) | struct fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5, T6>> (line 1325) | struct fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5, T6>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5, T6, T7>> (line 1344) | struct fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5, T6...
      type reverse_fold_impl (line 1389) | struct reverse_fold_impl
      function Functor (line 1451) | constexpr Functor for_each_impl( type_<List<Elements...>>&&, Functor...
      type index_if_impl (line 1466) | struct index_if_impl
      type index_if_impl<false, Sequence, Predicate, NotFoundType> (line 1472) | struct index_if_impl<false, Sequence, Predicate, NotFoundType>
      type range_cat (line 1488) | struct range_cat
      type int_plus (line 1491) | struct int_plus
      type range_impl (line 1506) | struct range_impl : range_cat<T, typename range_impl<T, Start, N / 2...
      type range_impl<T, Start, 1> (line 1511) | struct range_impl<T, Start, 1>
      type range_impl<T, Start, 0> (line 1516) | struct range_impl<T, Start, 0>
      type reverse_range_cat (line 1521) | struct reverse_range_cat
      type int_minus (line 1524) | struct int_minus
      type reverse_range_impl (line 1539) | struct reverse_range_impl
      type reverse_range_impl<T, Start, 1> (line 1545) | struct reverse_range_impl<T, Start, 1>
      type reverse_range_impl<T, Start, 0> (line 1550) | struct reverse_range_impl<T, Start, 0>
      type reverse_range_safe (line 1555) | struct reverse_range_safe
      type unique_x_t (line 1574) | struct unique_x_t
      type is_set_impl (line 1579) | struct is_set_impl
      type is_set_impl<list<>> (line 1581) | struct is_set_impl<list<>>
      type qrref (line 1598) | struct qrref
      type qref (line 1602) | struct qref
      type qnoref (line 1606) | struct qnoref
      type msvc_quali_ref (line 1610) | struct msvc_quali_ref
      type msvc_quali_ref<T &> (line 1615) | struct msvc_quali_ref<T &>
      type msvc_quali_ref<T &&> (line 1620) | struct msvc_quali_ref<T &&>
      type unique_x_t (line 1632) | struct unique_x_t : type_<T>
      type is_set_cont (line 1636) | struct is_set_cont
      type empty_helper (line 1735) | struct empty_helper : ::brigand::apply<Pred, T>
      type empty_if_true (line 1739) | struct empty_if_true : std::conditional<empty_helper<Pred, T>::value...
      type empty_if_true<bind<F, _1>, T, B> (line 1743) | struct empty_if_true<bind<F, _1>, T, B> : std::conditional<F<T>::val...
      type empty_if_true<F<_1>, T, B> (line 1747) | struct empty_if_true<F<_1>, T, B> : std::conditional<F<T>::type::val...
      type rep_helper (line 1803) | struct rep_helper
      type replacer (line 1808) | struct replacer : std::conditional<rep_helper<Pred, T>::type::value,...
      type replacer<T, bind<F, _1>, NewType> (line 1812) | struct replacer<T, bind<F, _1>, NewType> : std::conditional<F<T>::va...
      type replacer<T, F<_1>, NewType> (line 1816) | struct replacer<T, F<_1>, NewType> : std::conditional<F<T>::type::va...
      type split_impl (line 1857) | struct split_impl
      type split_helper (line 1884) | struct split_helper
      type split_helper<L<>, TDelim> (line 1889) | struct split_helper<L<>, TDelim> {
      type merge_helper (line 1918) | struct merge_helper : ::brigand::apply<Comp, T1, U>
      type merge_impl (line 1922) | struct merge_impl
      type merge_insert (line 1924) | struct merge_insert
      type sort_impl (line 1997) | struct sort_impl
      type mini_sort (line 1999) | struct mini_sort
      type mini_sort<list<T0, T1, T2, T3>, Comp> (line 2014) | struct mini_sort<list<T0, T1, T2, T3>, Comp>
      type mini_sort<list<T0, T1, T2>, Comp> (line 2020) | struct mini_sort<list<T0, T1, T2>, Comp>
      type mini_sort<list<T0, T1>, Comp> (line 2025) | struct mini_sort<list<T0, T1>, Comp>
      type mini_sort<list<T0>, Comp> (line 2031) | struct mini_sort<list<T0>, Comp>
      type sort_impl<list<L>, list<>, Comp> (line 2108) | struct sort_impl<list<L>, list<>, Comp>
      type sort_impl<list<L0, L1>, list<>, Comp> (line 2113) | struct sort_impl<list<L0, L1>, list<>, Comp>
      type sort_impl<list<L0, L1, L2>, list<>, Comp> (line 2118) | struct sort_impl<list<L0, L1, L2>, list<>, Comp>
      type sort_impl<list<>, list<>, Comp> (line 2123) | struct sort_impl<list<>, list<>, Comp>
      type and_impl (line 2391) | struct and_impl
      type and_impl<0> (line 2393) | struct and_impl<0>
      type and_impl<1> (line 2402) | struct and_impl<1>
      type or_impl (line 2432) | struct or_impl
      type or_impl<0> (line 2434) | struct or_impl<0>
      type or_impl<1> (line 2443) | struct or_impl<1>
      type repeat_impl (line 2481) | struct repeat_impl
      type repeat_impl<F, 7, T> (line 2485) | struct repeat_impl<F, 7, T>
      type repeat_impl<F, 6, T> (line 2490) | struct repeat_impl<F, 6, T>
      type repeat_impl<F, 5, T> (line 2495) | struct repeat_impl<F, 5, T>
      type repeat_impl<F, 4, T> (line 2500) | struct repeat_impl<F, 4, T>
      type repeat_impl<F, 3, T> (line 2505) | struct repeat_impl<F, 3, T>
      type repeat_impl<F, 2, T> (line 2510) | struct repeat_impl<F, 2, T>
      type repeat_impl<F, 1, T> (line 2515) | struct repeat_impl<F, 1, T>
      type repeat_impl<F, 0, T> (line 2520) | struct repeat_impl<F, 0, T>
      type has_key_impl (line 2545) | struct has_key_impl
      type mksq8 (line 2558) | struct mksq8
      type mksq8<Start, 8, Next> (line 2572) | struct mksq8<Start, 8, Next>
      type make_sequence_impl (line 2584) | struct make_sequence_impl
      type has_erase_method (line 2613) | struct has_erase_method
        type dummy (line 2615) | struct dummy
      type erase_dispatch (line 2626) | struct erase_dispatch
      type erase_dispatch<C, K, true> (line 2631) | struct erase_dispatch<C, K, true>
      type insert_impl (line 2644) | struct insert_impl
      type contains_impl (line 2657) | struct contains_impl
      type make_set (line 2670) | struct make_set
      type set_erase_pred_impl (line 2672) | struct set_erase_pred_impl
      type set_erase_pred_impl<K,K> (line 2677) | struct set_erase_pred_impl<K,K>
      type set_impl (line 2682) | struct set_impl
      type make_set (line 2700) | struct make_set : type_<Ts>...
      type get_second (line 2717) | struct get_second {
      type get_first (line 2729) | struct get_first {
    type detail (line 549) | namespace detail
      type dup_append_list (line 43) | struct dup_append_list
      type filled_list_impl (line 50) | struct filled_list_impl
      type filled_list_impl<T, List, 1> (line 56) | struct filled_list_impl<T, List, 1>
      type filled_list_impl<T, List, 0> (line 61) | struct filled_list_impl<T, List, 0>
      type append_impl (line 88) | struct append_impl
      type append_impl<> (line 90) | struct append_impl<>
      type map_impl (line 184) | struct map_impl
        type Pack (line 201) | struct Pack : pair<typename Ts::first_type, Ts>...
        type erase_return_t (line 219) | struct erase_return_t
      type map_impl<> (line 186) | struct map_impl<>
      type map_impl (line 198) | struct map_impl
        type Pack (line 201) | struct Pack : pair<typename Ts::first_type, Ts>...
        type erase_return_t (line 219) | struct erase_return_t
      type make_map (line 231) | struct make_map : type_<typename Ts::first_type>...
      type element_at (line 244) | struct element_at
      type at_impl (line 252) | struct at_impl
      type has_at_method (line 264) | struct has_at_method
        type dummy (line 266) | struct dummy
      type at_dispatch (line 277) | struct at_dispatch
      type at_dispatch<L, Index, true> (line 282) | struct at_dispatch<L, Index, true>
      type packaged_lcall (line 331) | struct packaged_lcall
      type apply (line 335) | struct apply {
      type clear_impl (line 451) | struct clear_impl
      type split_at_impl (line 466) | struct split_at_impl
      type call_split_at_impl (line 504) | struct call_split_at_impl : split_at_impl<(I::value > 16), brigand::...
      type push_front_impl (line 521) | struct push_front_impl
      type front_impl (line 540) | struct front_impl
      type pop_front_impl (line 552) | struct pop_front_impl
      type pop_front_element (line 559) | struct pop_front_element
      type substitute_impl (line 592) | struct substitute_impl
      type substitute_impl<args<Index>,List> (line 602) | struct substitute_impl<args<Index>,List>
      function count_bools (line 642) | constexpr unsigned int count_bools(const std::array<bool, length> & ...
      function count_bools (line 655) | constexpr unsigned int count_bools(bool const * const begin, bool co...
      type template_count_bools (line 663) | struct template_count_bools
      type push_back_impl (line 758) | struct push_back_impl
      type rot90 (line 778) | struct rot90
      type rot90<L1, list<>> (line 794) | struct rot90<L1, list<>>
      type transform_impl (line 799) | struct transform_impl
      type transform_apply (line 801) | struct transform_apply
      type transform (line 814) | struct transform : transform_impl<back<list<FuncOrSeqs...>>, Seq1, S...
      type as_sequence_impl (line 865) | struct as_sequence_impl
      type non_null_impl (line 943) | struct non_null_impl : bool_<Args::value != 0>{}
      type all_helper (line 955) | struct all_helper : ::brigand::apply<P, T>
      type bools_ (line 959) | struct bools_
      type all_impl (line 963) | struct all_impl
      type all_same (line 974) | struct all_same
        method all_same (line 977) | constexpr all_same(...) {}
        method all_same (line 979) | constexpr all_same(std::initializer_list<T *>) : value{true}
      type all_impl (line 984) | struct all_impl : bool_<true>
      type none_impl (line 1022) | struct none_impl
        type nope (line 1025) | struct nope
      type none_impl (line 1037) | struct none_impl : bool_<true>
        type nope (line 1025) | struct nope
      type any_impl (line 1074) | struct any_impl : bool_<!none<Sequence,Predicate>::value> {}
      type finder (line 1084) | struct finder
        type find (line 1089) | struct find
        type find<true, false, L> (line 1094) | struct find<true, false, L>
      type reverse_elements (line 1133) | struct reverse_elements
      type reverse_elements<L> (line 1135) | struct reverse_elements<L>
      type reverse_impl (line 1150) | struct reverse_impl
      type flatten_impl (line 1215) | struct flatten_impl
      type flatten_element_impl (line 1220) | struct flatten_element_impl
      type fold_impl (line 1246) | struct fold_impl
      type fold_impl<Functor, State, Sequence<T0>> (line 1253) | struct fold_impl<Functor, State, Sequence<T0>>
      type fold_impl<Functor, State, Sequence<T0, T1>> (line 1260) | struct fold_impl<Functor, State, Sequence<T0, T1>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2>> (line 1269) | struct fold_impl<Functor, State, Sequence<T0, T1, T2>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2, T3>> (line 1280) | struct fold_impl<Functor, State, Sequence<T0, T1, T2, T3>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4>> (line 1293) | struct fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5>> (line 1308) | struct fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5, T6>> (line 1325) | struct fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5, T6>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5, T6, T7>> (line 1344) | struct fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5, T6...
      type reverse_fold_impl (line 1389) | struct reverse_fold_impl
      function Functor (line 1451) | constexpr Functor for_each_impl( type_<List<Elements...>>&&, Functor...
      type index_if_impl (line 1466) | struct index_if_impl
      type index_if_impl<false, Sequence, Predicate, NotFoundType> (line 1472) | struct index_if_impl<false, Sequence, Predicate, NotFoundType>
      type range_cat (line 1488) | struct range_cat
      type int_plus (line 1491) | struct int_plus
      type range_impl (line 1506) | struct range_impl : range_cat<T, typename range_impl<T, Start, N / 2...
      type range_impl<T, Start, 1> (line 1511) | struct range_impl<T, Start, 1>
      type range_impl<T, Start, 0> (line 1516) | struct range_impl<T, Start, 0>
      type reverse_range_cat (line 1521) | struct reverse_range_cat
      type int_minus (line 1524) | struct int_minus
      type reverse_range_impl (line 1539) | struct reverse_range_impl
      type reverse_range_impl<T, Start, 1> (line 1545) | struct reverse_range_impl<T, Start, 1>
      type reverse_range_impl<T, Start, 0> (line 1550) | struct reverse_range_impl<T, Start, 0>
      type reverse_range_safe (line 1555) | struct reverse_range_safe
      type unique_x_t (line 1574) | struct unique_x_t
      type is_set_impl (line 1579) | struct is_set_impl
      type is_set_impl<list<>> (line 1581) | struct is_set_impl<list<>>
      type qrref (line 1598) | struct qrref
      type qref (line 1602) | struct qref
      type qnoref (line 1606) | struct qnoref
      type msvc_quali_ref (line 1610) | struct msvc_quali_ref
      type msvc_quali_ref<T &> (line 1615) | struct msvc_quali_ref<T &>
      type msvc_quali_ref<T &&> (line 1620) | struct msvc_quali_ref<T &&>
      type unique_x_t (line 1632) | struct unique_x_t : type_<T>
      type is_set_cont (line 1636) | struct is_set_cont
      type empty_helper (line 1735) | struct empty_helper : ::brigand::apply<Pred, T>
      type empty_if_true (line 1739) | struct empty_if_true : std::conditional<empty_helper<Pred, T>::value...
      type empty_if_true<bind<F, _1>, T, B> (line 1743) | struct empty_if_true<bind<F, _1>, T, B> : std::conditional<F<T>::val...
      type empty_if_true<F<_1>, T, B> (line 1747) | struct empty_if_true<F<_1>, T, B> : std::conditional<F<T>::type::val...
      type rep_helper (line 1803) | struct rep_helper
      type replacer (line 1808) | struct replacer : std::conditional<rep_helper<Pred, T>::type::value,...
      type replacer<T, bind<F, _1>, NewType> (line 1812) | struct replacer<T, bind<F, _1>, NewType> : std::conditional<F<T>::va...
      type replacer<T, F<_1>, NewType> (line 1816) | struct replacer<T, F<_1>, NewType> : std::conditional<F<T>::type::va...
      type split_impl (line 1857) | struct split_impl
      type split_helper (line 1884) | struct split_helper
      type split_helper<L<>, TDelim> (line 1889) | struct split_helper<L<>, TDelim> {
      type merge_helper (line 1918) | struct merge_helper : ::brigand::apply<Comp, T1, U>
      type merge_impl (line 1922) | struct merge_impl
      type merge_insert (line 1924) | struct merge_insert
      type sort_impl (line 1997) | struct sort_impl
      type mini_sort (line 1999) | struct mini_sort
      type mini_sort<list<T0, T1, T2, T3>, Comp> (line 2014) | struct mini_sort<list<T0, T1, T2, T3>, Comp>
      type mini_sort<list<T0, T1, T2>, Comp> (line 2020) | struct mini_sort<list<T0, T1, T2>, Comp>
      type mini_sort<list<T0, T1>, Comp> (line 2025) | struct mini_sort<list<T0, T1>, Comp>
      type mini_sort<list<T0>, Comp> (line 2031) | struct mini_sort<list<T0>, Comp>
      type sort_impl<list<L>, list<>, Comp> (line 2108) | struct sort_impl<list<L>, list<>, Comp>
      type sort_impl<list<L0, L1>, list<>, Comp> (line 2113) | struct sort_impl<list<L0, L1>, list<>, Comp>
      type sort_impl<list<L0, L1, L2>, list<>, Comp> (line 2118) | struct sort_impl<list<L0, L1, L2>, list<>, Comp>
      type sort_impl<list<>, list<>, Comp> (line 2123) | struct sort_impl<list<>, list<>, Comp>
      type and_impl (line 2391) | struct and_impl
      type and_impl<0> (line 2393) | struct and_impl<0>
      type and_impl<1> (line 2402) | struct and_impl<1>
      type or_impl (line 2432) | struct or_impl
      type or_impl<0> (line 2434) | struct or_impl<0>
      type or_impl<1> (line 2443) | struct or_impl<1>
      type repeat_impl (line 2481) | struct repeat_impl
      type repeat_impl<F, 7, T> (line 2485) | struct repeat_impl<F, 7, T>
      type repeat_impl<F, 6, T> (line 2490) | struct repeat_impl<F, 6, T>
      type repeat_impl<F, 5, T> (line 2495) | struct repeat_impl<F, 5, T>
      type repeat_impl<F, 4, T> (line 2500) | struct repeat_impl<F, 4, T>
      type repeat_impl<F, 3, T> (line 2505) | struct repeat_impl<F, 3, T>
      type repeat_impl<F, 2, T> (line 2510) | struct repeat_impl<F, 2, T>
      type repeat_impl<F, 1, T> (line 2515) | struct repeat_impl<F, 1, T>
      type repeat_impl<F, 0, T> (line 2520) | struct repeat_impl<F, 0, T>
      type has_key_impl (line 2545) | struct has_key_impl
      type mksq8 (line 2558) | struct mksq8
      type mksq8<Start, 8, Next> (line 2572) | struct mksq8<Start, 8, Next>
      type make_sequence_impl (line 2584) | struct make_sequence_impl
      type has_erase_method (line 2613) | struct has_erase_method
        type dummy (line 2615) | struct dummy
      type erase_dispatch (line 2626) | struct erase_dispatch
      type erase_dispatch<C, K, true> (line 2631) | struct erase_dispatch<C, K, true>
      type insert_impl (line 2644) | struct insert_impl
      type contains_impl (line 2657) | struct contains_impl
      type make_set (line 2670) | struct make_set
      type set_erase_pred_impl (line 2672) | struct set_erase_pred_impl
      type set_erase_pred_impl<K,K> (line 2677) | struct set_erase_pred_impl<K,K>
      type set_impl (line 2682) | struct set_impl
      type make_set (line 2700) | struct make_set : type_<Ts>...
      type get_second (line 2717) | struct get_second {
      type get_first (line 2729) | struct get_first {
    type lazy (line 573) | namespace lazy
      type wrap (line 73) | struct wrap
      type join (line 136) | struct join
      type lookup_at (line 169) | struct lookup_at
      type lookup (line 175) | struct lookup : lookup_at<M, K>::type
      type push_front (line 531) | struct push_front : detail::push_front_impl<L, T...>
      type pop_front (line 576) | struct pop_front : detail::pop_front_impl<L, N::value>
      type count_if (line 685) | struct count_if
      type count_if<S<>, Pred> (line 689) | struct count_if<S<>, Pred>
      type count_if<S<>, bind<F, _1>> (line 695) | struct count_if<S<>, bind<F, _1>>
      type count_if<S<>, F<_1>> (line 700) | struct count_if<S<>, F<_1>>
      type transform (line 844) | struct transform : detail::transform<sizeof...(OpSeq2), Sequence1, O...
      type find (line 1170) | struct find
      type reverse_find (line 1189) | struct reverse_find {
      type remove_if (line 1653) | struct remove_if
      type remove_if<L<>, Pred> (line 1655) | struct remove_if<L<>, Pred> {
      type remove (line 1688) | struct remove
      type filter (line 1699) | struct filter
      type filter<L<>, Pred> (line 1701) | struct filter<L<>, Pred> {
      type remove_if (line 1754) | struct remove_if
      type remove (line 1765) | struct remove
      type filter (line 1776) | struct filter
      type replace_if (line 1823) | struct replace_if
      type replace (line 1830) | struct replace : replace_if<Sequence, std::is_same<_1, pin<OldType>>...
      type inherit_linearly (line 2791) | struct inherit_linearly
    type args (line 588) | struct args
    type detail (line 589) | namespace detail
      type dup_append_list (line 43) | struct dup_append_list
      type filled_list_impl (line 50) | struct filled_list_impl
      type filled_list_impl<T, List, 1> (line 56) | struct filled_list_impl<T, List, 1>
      type filled_list_impl<T, List, 0> (line 61) | struct filled_list_impl<T, List, 0>
      type append_impl (line 88) | struct append_impl
      type append_impl<> (line 90) | struct append_impl<>
      type map_impl (line 184) | struct map_impl
        type Pack (line 201) | struct Pack : pair<typename Ts::first_type, Ts>...
        type erase_return_t (line 219) | struct erase_return_t
      type map_impl<> (line 186) | struct map_impl<>
      type map_impl (line 198) | struct map_impl
        type Pack (line 201) | struct Pack : pair<typename Ts::first_type, Ts>...
        type erase_return_t (line 219) | struct erase_return_t
      type make_map (line 231) | struct make_map : type_<typename Ts::first_type>...
      type element_at (line 244) | struct element_at
      type at_impl (line 252) | struct at_impl
      type has_at_method (line 264) | struct has_at_method
        type dummy (line 266) | struct dummy
      type at_dispatch (line 277) | struct at_dispatch
      type at_dispatch<L, Index, true> (line 282) | struct at_dispatch<L, Index, true>
      type packaged_lcall (line 331) | struct packaged_lcall
      type apply (line 335) | struct apply {
      type clear_impl (line 451) | struct clear_impl
      type split_at_impl (line 466) | struct split_at_impl
      type call_split_at_impl (line 504) | struct call_split_at_impl : split_at_impl<(I::value > 16), brigand::...
      type push_front_impl (line 521) | struct push_front_impl
      type front_impl (line 540) | struct front_impl
      type pop_front_impl (line 552) | struct pop_front_impl
      type pop_front_element (line 559) | struct pop_front_element
      type substitute_impl (line 592) | struct substitute_impl
      type substitute_impl<args<Index>,List> (line 602) | struct substitute_impl<args<Index>,List>
      function count_bools (line 642) | constexpr unsigned int count_bools(const std::array<bool, length> & ...
      function count_bools (line 655) | constexpr unsigned int count_bools(bool const * const begin, bool co...
      type template_count_bools (line 663) | struct template_count_bools
      type push_back_impl (line 758) | struct push_back_impl
      type rot90 (line 778) | struct rot90
      type rot90<L1, list<>> (line 794) | struct rot90<L1, list<>>
      type transform_impl (line 799) | struct transform_impl
      type transform_apply (line 801) | struct transform_apply
      type transform (line 814) | struct transform : transform_impl<back<list<FuncOrSeqs...>>, Seq1, S...
      type as_sequence_impl (line 865) | struct as_sequence_impl
      type non_null_impl (line 943) | struct non_null_impl : bool_<Args::value != 0>{}
      type all_helper (line 955) | struct all_helper : ::brigand::apply<P, T>
      type bools_ (line 959) | struct bools_
      type all_impl (line 963) | struct all_impl
      type all_same (line 974) | struct all_same
        method all_same (line 977) | constexpr all_same(...) {}
        method all_same (line 979) | constexpr all_same(std::initializer_list<T *>) : value{true}
      type all_impl (line 984) | struct all_impl : bool_<true>
      type none_impl (line 1022) | struct none_impl
        type nope (line 1025) | struct nope
      type none_impl (line 1037) | struct none_impl : bool_<true>
        type nope (line 1025) | struct nope
      type any_impl (line 1074) | struct any_impl : bool_<!none<Sequence,Predicate>::value> {}
      type finder (line 1084) | struct finder
        type find (line 1089) | struct find
        type find<true, false, L> (line 1094) | struct find<true, false, L>
      type reverse_elements (line 1133) | struct reverse_elements
      type reverse_elements<L> (line 1135) | struct reverse_elements<L>
      type reverse_impl (line 1150) | struct reverse_impl
      type flatten_impl (line 1215) | struct flatten_impl
      type flatten_element_impl (line 1220) | struct flatten_element_impl
      type fold_impl (line 1246) | struct fold_impl
      type fold_impl<Functor, State, Sequence<T0>> (line 1253) | struct fold_impl<Functor, State, Sequence<T0>>
      type fold_impl<Functor, State, Sequence<T0, T1>> (line 1260) | struct fold_impl<Functor, State, Sequence<T0, T1>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2>> (line 1269) | struct fold_impl<Functor, State, Sequence<T0, T1, T2>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2, T3>> (line 1280) | struct fold_impl<Functor, State, Sequence<T0, T1, T2, T3>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4>> (line 1293) | struct fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5>> (line 1308) | struct fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5, T6>> (line 1325) | struct fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5, T6>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5, T6, T7>> (line 1344) | struct fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5, T6...
      type reverse_fold_impl (line 1389) | struct reverse_fold_impl
      function Functor (line 1451) | constexpr Functor for_each_impl( type_<List<Elements...>>&&, Functor...
      type index_if_impl (line 1466) | struct index_if_impl
      type index_if_impl<false, Sequence, Predicate, NotFoundType> (line 1472) | struct index_if_impl<false, Sequence, Predicate, NotFoundType>
      type range_cat (line 1488) | struct range_cat
      type int_plus (line 1491) | struct int_plus
      type range_impl (line 1506) | struct range_impl : range_cat<T, typename range_impl<T, Start, N / 2...
      type range_impl<T, Start, 1> (line 1511) | struct range_impl<T, Start, 1>
      type range_impl<T, Start, 0> (line 1516) | struct range_impl<T, Start, 0>
      type reverse_range_cat (line 1521) | struct reverse_range_cat
      type int_minus (line 1524) | struct int_minus
      type reverse_range_impl (line 1539) | struct reverse_range_impl
      type reverse_range_impl<T, Start, 1> (line 1545) | struct reverse_range_impl<T, Start, 1>
      type reverse_range_impl<T, Start, 0> (line 1550) | struct reverse_range_impl<T, Start, 0>
      type reverse_range_safe (line 1555) | struct reverse_range_safe
      type unique_x_t (line 1574) | struct unique_x_t
      type is_set_impl (line 1579) | struct is_set_impl
      type is_set_impl<list<>> (line 1581) | struct is_set_impl<list<>>
      type qrref (line 1598) | struct qrref
      type qref (line 1602) | struct qref
      type qnoref (line 1606) | struct qnoref
      type msvc_quali_ref (line 1610) | struct msvc_quali_ref
      type msvc_quali_ref<T &> (line 1615) | struct msvc_quali_ref<T &>
      type msvc_quali_ref<T &&> (line 1620) | struct msvc_quali_ref<T &&>
      type unique_x_t (line 1632) | struct unique_x_t : type_<T>
      type is_set_cont (line 1636) | struct is_set_cont
      type empty_helper (line 1735) | struct empty_helper : ::brigand::apply<Pred, T>
      type empty_if_true (line 1739) | struct empty_if_true : std::conditional<empty_helper<Pred, T>::value...
      type empty_if_true<bind<F, _1>, T, B> (line 1743) | struct empty_if_true<bind<F, _1>, T, B> : std::conditional<F<T>::val...
      type empty_if_true<F<_1>, T, B> (line 1747) | struct empty_if_true<F<_1>, T, B> : std::conditional<F<T>::type::val...
      type rep_helper (line 1803) | struct rep_helper
      type replacer (line 1808) | struct replacer : std::conditional<rep_helper<Pred, T>::type::value,...
      type replacer<T, bind<F, _1>, NewType> (line 1812) | struct replacer<T, bind<F, _1>, NewType> : std::conditional<F<T>::va...
      type replacer<T, F<_1>, NewType> (line 1816) | struct replacer<T, F<_1>, NewType> : std::conditional<F<T>::type::va...
      type split_impl (line 1857) | struct split_impl
      type split_helper (line 1884) | struct split_helper
      type split_helper<L<>, TDelim> (line 1889) | struct split_helper<L<>, TDelim> {
      type merge_helper (line 1918) | struct merge_helper : ::brigand::apply<Comp, T1, U>
      type merge_impl (line 1922) | struct merge_impl
      type merge_insert (line 1924) | struct merge_insert
      type sort_impl (line 1997) | struct sort_impl
      type mini_sort (line 1999) | struct mini_sort
      type mini_sort<list<T0, T1, T2, T3>, Comp> (line 2014) | struct mini_sort<list<T0, T1, T2, T3>, Comp>
      type mini_sort<list<T0, T1, T2>, Comp> (line 2020) | struct mini_sort<list<T0, T1, T2>, Comp>
      type mini_sort<list<T0, T1>, Comp> (line 2025) | struct mini_sort<list<T0, T1>, Comp>
      type mini_sort<list<T0>, Comp> (line 2031) | struct mini_sort<list<T0>, Comp>
      type sort_impl<list<L>, list<>, Comp> (line 2108) | struct sort_impl<list<L>, list<>, Comp>
      type sort_impl<list<L0, L1>, list<>, Comp> (line 2113) | struct sort_impl<list<L0, L1>, list<>, Comp>
      type sort_impl<list<L0, L1, L2>, list<>, Comp> (line 2118) | struct sort_impl<list<L0, L1, L2>, list<>, Comp>
      type sort_impl<list<>, list<>, Comp> (line 2123) | struct sort_impl<list<>, list<>, Comp>
      type and_impl (line 2391) | struct and_impl
      type and_impl<0> (line 2393) | struct and_impl<0>
      type and_impl<1> (line 2402) | struct and_impl<1>
      type or_impl (line 2432) | struct or_impl
      type or_impl<0> (line 2434) | struct or_impl<0>
      type or_impl<1> (line 2443) | struct or_impl<1>
      type repeat_impl (line 2481) | struct repeat_impl
      type repeat_impl<F, 7, T> (line 2485) | struct repeat_impl<F, 7, T>
      type repeat_impl<F, 6, T> (line 2490) | struct repeat_impl<F, 6, T>
      type repeat_impl<F, 5, T> (line 2495) | struct repeat_impl<F, 5, T>
      type repeat_impl<F, 4, T> (line 2500) | struct repeat_impl<F, 4, T>
      type repeat_impl<F, 3, T> (line 2505) | struct repeat_impl<F, 3, T>
      type repeat_impl<F, 2, T> (line 2510) | struct repeat_impl<F, 2, T>
      type repeat_impl<F, 1, T> (line 2515) | struct repeat_impl<F, 1, T>
      type repeat_impl<F, 0, T> (line 2520) | struct repeat_impl<F, 0, T>
      type has_key_impl (line 2545) | struct has_key_impl
      type mksq8 (line 2558) | struct mksq8
      type mksq8<Start, 8, Next> (line 2572) | struct mksq8<Start, 8, Next>
      type make_sequence_impl (line 2584) | struct make_sequence_impl
      type has_erase_method (line 2613) | struct has_erase_method
        type dummy (line 2615) | struct dummy
      type erase_dispatch (line 2626) | struct erase_dispatch
      type erase_dispatch<C, K, true> (line 2631) | struct erase_dispatch<C, K, true>
      type insert_impl (line 2644) | struct insert_impl
      type contains_impl (line 2657) | struct contains_impl
      type make_set (line 2670) | struct make_set
      type set_erase_pred_impl (line 2672) | struct set_erase_pred_impl
      type set_erase_pred_impl<K,K> (line 2677) | struct set_erase_pred_impl<K,K>
      type set_impl (line 2682) | struct set_impl
      type make_set (line 2700) | struct make_set : type_<Ts>...
      type get_second (line 2717) | struct get_second {
      type get_first (line 2729) | struct get_first {
    type detail (line 637) | namespace detail
      type dup_append_list (line 43) | struct dup_append_list
      type filled_list_impl (line 50) | struct filled_list_impl
      type filled_list_impl<T, List, 1> (line 56) | struct filled_list_impl<T, List, 1>
      type filled_list_impl<T, List, 0> (line 61) | struct filled_list_impl<T, List, 0>
      type append_impl (line 88) | struct append_impl
      type append_impl<> (line 90) | struct append_impl<>
      type map_impl (line 184) | struct map_impl
        type Pack (line 201) | struct Pack : pair<typename Ts::first_type, Ts>...
        type erase_return_t (line 219) | struct erase_return_t
      type map_impl<> (line 186) | struct map_impl<>
      type map_impl (line 198) | struct map_impl
        type Pack (line 201) | struct Pack : pair<typename Ts::first_type, Ts>...
        type erase_return_t (line 219) | struct erase_return_t
      type make_map (line 231) | struct make_map : type_<typename Ts::first_type>...
      type element_at (line 244) | struct element_at
      type at_impl (line 252) | struct at_impl
      type has_at_method (line 264) | struct has_at_method
        type dummy (line 266) | struct dummy
      type at_dispatch (line 277) | struct at_dispatch
      type at_dispatch<L, Index, true> (line 282) | struct at_dispatch<L, Index, true>
      type packaged_lcall (line 331) | struct packaged_lcall
      type apply (line 335) | struct apply {
      type clear_impl (line 451) | struct clear_impl
      type split_at_impl (line 466) | struct split_at_impl
      type call_split_at_impl (line 504) | struct call_split_at_impl : split_at_impl<(I::value > 16), brigand::...
      type push_front_impl (line 521) | struct push_front_impl
      type front_impl (line 540) | struct front_impl
      type pop_front_impl (line 552) | struct pop_front_impl
      type pop_front_element (line 559) | struct pop_front_element
      type substitute_impl (line 592) | struct substitute_impl
      type substitute_impl<args<Index>,List> (line 602) | struct substitute_impl<args<Index>,List>
      function count_bools (line 642) | constexpr unsigned int count_bools(const std::array<bool, length> & ...
      function count_bools (line 655) | constexpr unsigned int count_bools(bool const * const begin, bool co...
      type template_count_bools (line 663) | struct template_count_bools
      type push_back_impl (line 758) | struct push_back_impl
      type rot90 (line 778) | struct rot90
      type rot90<L1, list<>> (line 794) | struct rot90<L1, list<>>
      type transform_impl (line 799) | struct transform_impl
      type transform_apply (line 801) | struct transform_apply
      type transform (line 814) | struct transform : transform_impl<back<list<FuncOrSeqs...>>, Seq1, S...
      type as_sequence_impl (line 865) | struct as_sequence_impl
      type non_null_impl (line 943) | struct non_null_impl : bool_<Args::value != 0>{}
      type all_helper (line 955) | struct all_helper : ::brigand::apply<P, T>
      type bools_ (line 959) | struct bools_
      type all_impl (line 963) | struct all_impl
      type all_same (line 974) | struct all_same
        method all_same (line 977) | constexpr all_same(...) {}
        method all_same (line 979) | constexpr all_same(std::initializer_list<T *>) : value{true}
      type all_impl (line 984) | struct all_impl : bool_<true>
      type none_impl (line 1022) | struct none_impl
        type nope (line 1025) | struct nope
      type none_impl (line 1037) | struct none_impl : bool_<true>
        type nope (line 1025) | struct nope
      type any_impl (line 1074) | struct any_impl : bool_<!none<Sequence,Predicate>::value> {}
      type finder (line 1084) | struct finder
        type find (line 1089) | struct find
        type find<true, false, L> (line 1094) | struct find<true, false, L>
      type reverse_elements (line 1133) | struct reverse_elements
      type reverse_elements<L> (line 1135) | struct reverse_elements<L>
      type reverse_impl (line 1150) | struct reverse_impl
      type flatten_impl (line 1215) | struct flatten_impl
      type flatten_element_impl (line 1220) | struct flatten_element_impl
      type fold_impl (line 1246) | struct fold_impl
      type fold_impl<Functor, State, Sequence<T0>> (line 1253) | struct fold_impl<Functor, State, Sequence<T0>>
      type fold_impl<Functor, State, Sequence<T0, T1>> (line 1260) | struct fold_impl<Functor, State, Sequence<T0, T1>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2>> (line 1269) | struct fold_impl<Functor, State, Sequence<T0, T1, T2>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2, T3>> (line 1280) | struct fold_impl<Functor, State, Sequence<T0, T1, T2, T3>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4>> (line 1293) | struct fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5>> (line 1308) | struct fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5, T6>> (line 1325) | struct fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5, T6>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5, T6, T7>> (line 1344) | struct fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5, T6...
      type reverse_fold_impl (line 1389) | struct reverse_fold_impl
      function Functor (line 1451) | constexpr Functor for_each_impl( type_<List<Elements...>>&&, Functor...
      type index_if_impl (line 1466) | struct index_if_impl
      type index_if_impl<false, Sequence, Predicate, NotFoundType> (line 1472) | struct index_if_impl<false, Sequence, Predicate, NotFoundType>
      type range_cat (line 1488) | struct range_cat
      type int_plus (line 1491) | struct int_plus
      type range_impl (line 1506) | struct range_impl : range_cat<T, typename range_impl<T, Start, N / 2...
      type range_impl<T, Start, 1> (line 1511) | struct range_impl<T, Start, 1>
      type range_impl<T, Start, 0> (line 1516) | struct range_impl<T, Start, 0>
      type reverse_range_cat (line 1521) | struct reverse_range_cat
      type int_minus (line 1524) | struct int_minus
      type reverse_range_impl (line 1539) | struct reverse_range_impl
      type reverse_range_impl<T, Start, 1> (line 1545) | struct reverse_range_impl<T, Start, 1>
      type reverse_range_impl<T, Start, 0> (line 1550) | struct reverse_range_impl<T, Start, 0>
      type reverse_range_safe (line 1555) | struct reverse_range_safe
      type unique_x_t (line 1574) | struct unique_x_t
      type is_set_impl (line 1579) | struct is_set_impl
      type is_set_impl<list<>> (line 1581) | struct is_set_impl<list<>>
      type qrref (line 1598) | struct qrref
      type qref (line 1602) | struct qref
      type qnoref (line 1606) | struct qnoref
      type msvc_quali_ref (line 1610) | struct msvc_quali_ref
      type msvc_quali_ref<T &> (line 1615) | struct msvc_quali_ref<T &>
      type msvc_quali_ref<T &&> (line 1620) | struct msvc_quali_ref<T &&>
      type unique_x_t (line 1632) | struct unique_x_t : type_<T>
      type is_set_cont (line 1636) | struct is_set_cont
      type empty_helper (line 1735) | struct empty_helper : ::brigand::apply<Pred, T>
      type empty_if_true (line 1739) | struct empty_if_true : std::conditional<empty_helper<Pred, T>::value...
      type empty_if_true<bind<F, _1>, T, B> (line 1743) | struct empty_if_true<bind<F, _1>, T, B> : std::conditional<F<T>::val...
      type empty_if_true<F<_1>, T, B> (line 1747) | struct empty_if_true<F<_1>, T, B> : std::conditional<F<T>::type::val...
      type rep_helper (line 1803) | struct rep_helper
      type replacer (line 1808) | struct replacer : std::conditional<rep_helper<Pred, T>::type::value,...
      type replacer<T, bind<F, _1>, NewType> (line 1812) | struct replacer<T, bind<F, _1>, NewType> : std::conditional<F<T>::va...
      type replacer<T, F<_1>, NewType> (line 1816) | struct replacer<T, F<_1>, NewType> : std::conditional<F<T>::type::va...
      type split_impl (line 1857) | struct split_impl
      type split_helper (line 1884) | struct split_helper
      type split_helper<L<>, TDelim> (line 1889) | struct split_helper<L<>, TDelim> {
      type merge_helper (line 1918) | struct merge_helper : ::brigand::apply<Comp, T1, U>
      type merge_impl (line 1922) | struct merge_impl
      type merge_insert (line 1924) | struct merge_insert
      type sort_impl (line 1997) | struct sort_impl
      type mini_sort (line 1999) | struct mini_sort
      type mini_sort<list<T0, T1, T2, T3>, Comp> (line 2014) | struct mini_sort<list<T0, T1, T2, T3>, Comp>
      type mini_sort<list<T0, T1, T2>, Comp> (line 2020) | struct mini_sort<list<T0, T1, T2>, Comp>
      type mini_sort<list<T0, T1>, Comp> (line 2025) | struct mini_sort<list<T0, T1>, Comp>
      type mini_sort<list<T0>, Comp> (line 2031) | struct mini_sort<list<T0>, Comp>
      type sort_impl<list<L>, list<>, Comp> (line 2108) | struct sort_impl<list<L>, list<>, Comp>
      type sort_impl<list<L0, L1>, list<>, Comp> (line 2113) | struct sort_impl<list<L0, L1>, list<>, Comp>
      type sort_impl<list<L0, L1, L2>, list<>, Comp> (line 2118) | struct sort_impl<list<L0, L1, L2>, list<>, Comp>
      type sort_impl<list<>, list<>, Comp> (line 2123) | struct sort_impl<list<>, list<>, Comp>
      type and_impl (line 2391) | struct and_impl
      type and_impl<0> (line 2393) | struct and_impl<0>
      type and_impl<1> (line 2402) | struct and_impl<1>
      type or_impl (line 2432) | struct or_impl
      type or_impl<0> (line 2434) | struct or_impl<0>
      type or_impl<1> (line 2443) | struct or_impl<1>
      type repeat_impl (line 2481) | struct repeat_impl
      type repeat_impl<F, 7, T> (line 2485) | struct repeat_impl<F, 7, T>
      type repeat_impl<F, 6, T> (line 2490) | struct repeat_impl<F, 6, T>
      type repeat_impl<F, 5, T> (line 2495) | struct repeat_impl<F, 5, T>
      type repeat_impl<F, 4, T> (line 2500) | struct repeat_impl<F, 4, T>
      type repeat_impl<F, 3, T> (line 2505) | struct repeat_impl<F, 3, T>
      type repeat_impl<F, 2, T> (line 2510) | struct repeat_impl<F, 2, T>
      type repeat_impl<F, 1, T> (line 2515) | struct repeat_impl<F, 1, T>
      type repeat_impl<F, 0, T> (line 2520) | struct repeat_impl<F, 0, T>
      type has_key_impl (line 2545) | struct has_key_impl
      type mksq8 (line 2558) | struct mksq8
      type mksq8<Start, 8, Next> (line 2572) | struct mksq8<Start, 8, Next>
      type make_sequence_impl (line 2584) | struct make_sequence_impl
      type has_erase_method (line 2613) | struct has_erase_method
        type dummy (line 2615) | struct dummy
      type erase_dispatch (line 2626) | struct erase_dispatch
      type erase_dispatch<C, K, true> (line 2631) | struct erase_dispatch<C, K, true>
      type insert_impl (line 2644) | struct insert_impl
      type contains_impl (line 2657) | struct contains_impl
      type make_set (line 2670) | struct make_set
      type set_erase_pred_impl (line 2672) | struct set_erase_pred_impl
      type set_erase_pred_impl<K,K> (line 2677) | struct set_erase_pred_impl<K,K>
      type set_impl (line 2682) | struct set_impl
      type make_set (line 2700) | struct make_set : type_<Ts>...
      type get_second (line 2717) | struct get_second {
      type get_first (line 2729) | struct get_first {
    type lazy (line 682) | namespace lazy
      type wrap (line 73) | struct wrap
      type join (line 136) | struct join
      type lookup_at (line 169) | struct lookup_at
      type lookup (line 175) | struct lookup : lookup_at<M, K>::type
      type push_front (line 531) | struct push_front : detail::push_front_impl<L, T...>
      type pop_front (line 576) | struct pop_front : detail::pop_front_impl<L, N::value>
      type count_if (line 685) | struct count_if
      type count_if<S<>, Pred> (line 689) | struct count_if<S<>, Pred>
      type count_if<S<>, bind<F, _1>> (line 695) | struct count_if<S<>, bind<F, _1>>
      type count_if<S<>, F<_1>> (line 700) | struct count_if<S<>, F<_1>>
      type transform (line 844) | struct transform : detail::transform<sizeof...(OpSeq2), Sequence1, O...
      type find (line 1170) | struct find
      type reverse_find (line 1189) | struct reverse_find {
      type remove_if (line 1653) | struct remove_if
      type remove_if<L<>, Pred> (line 1655) | struct remove_if<L<>, Pred> {
      type remove (line 1688) | struct remove
      type filter (line 1699) | struct filter
      type filter<L<>, Pred> (line 1701) | struct filter<L<>, Pred> {
      type remove_if (line 1754) | struct remove_if
      type remove (line 1765) | struct remove
      type filter (line 1776) | struct filter
      type replace_if (line 1823) | struct replace_if
      type replace (line 1830) | struct replace : replace_if<Sequence, std::is_same<_1, pin<OldType>>...
      type inherit_linearly (line 2791) | struct inherit_linearly
    type detail (line 755) | namespace detail
      type dup_append_list (line 43) | struct dup_append_list
      type filled_list_impl (line 50) | struct filled_list_impl
      type filled_list_impl<T, List, 1> (line 56) | struct filled_list_impl<T, List, 1>
      type filled_list_impl<T, List, 0> (line 61) | struct filled_list_impl<T, List, 0>
      type append_impl (line 88) | struct append_impl
      type append_impl<> (line 90) | struct append_impl<>
      type map_impl (line 184) | struct map_impl
        type Pack (line 201) | struct Pack : pair<typename Ts::first_type, Ts>...
        type erase_return_t (line 219) | struct erase_return_t
      type map_impl<> (line 186) | struct map_impl<>
      type map_impl (line 198) | struct map_impl
        type Pack (line 201) | struct Pack : pair<typename Ts::first_type, Ts>...
        type erase_return_t (line 219) | struct erase_return_t
      type make_map (line 231) | struct make_map : type_<typename Ts::first_type>...
      type element_at (line 244) | struct element_at
      type at_impl (line 252) | struct at_impl
      type has_at_method (line 264) | struct has_at_method
        type dummy (line 266) | struct dummy
      type at_dispatch (line 277) | struct at_dispatch
      type at_dispatch<L, Index, true> (line 282) | struct at_dispatch<L, Index, true>
      type packaged_lcall (line 331) | struct packaged_lcall
      type apply (line 335) | struct apply {
      type clear_impl (line 451) | struct clear_impl
      type split_at_impl (line 466) | struct split_at_impl
      type call_split_at_impl (line 504) | struct call_split_at_impl : split_at_impl<(I::value > 16), brigand::...
      type push_front_impl (line 521) | struct push_front_impl
      type front_impl (line 540) | struct front_impl
      type pop_front_impl (line 552) | struct pop_front_impl
      type pop_front_element (line 559) | struct pop_front_element
      type substitute_impl (line 592) | struct substitute_impl
      type substitute_impl<args<Index>,List> (line 602) | struct substitute_impl<args<Index>,List>
      function count_bools (line 642) | constexpr unsigned int count_bools(const std::array<bool, length> & ...
      function count_bools (line 655) | constexpr unsigned int count_bools(bool const * const begin, bool co...
      type template_count_bools (line 663) | struct template_count_bools
      type push_back_impl (line 758) | struct push_back_impl
      type rot90 (line 778) | struct rot90
      type rot90<L1, list<>> (line 794) | struct rot90<L1, list<>>
      type transform_impl (line 799) | struct transform_impl
      type transform_apply (line 801) | struct transform_apply
      type transform (line 814) | struct transform : transform_impl<back<list<FuncOrSeqs...>>, Seq1, S...
      type as_sequence_impl (line 865) | struct as_sequence_impl
      type non_null_impl (line 943) | struct non_null_impl : bool_<Args::value != 0>{}
      type all_helper (line 955) | struct all_helper : ::brigand::apply<P, T>
      type bools_ (line 959) | struct bools_
      type all_impl (line 963) | struct all_impl
      type all_same (line 974) | struct all_same
        method all_same (line 977) | constexpr all_same(...) {}
        method all_same (line 979) | constexpr all_same(std::initializer_list<T *>) : value{true}
      type all_impl (line 984) | struct all_impl : bool_<true>
      type none_impl (line 1022) | struct none_impl
        type nope (line 1025) | struct nope
      type none_impl (line 1037) | struct none_impl : bool_<true>
        type nope (line 1025) | struct nope
      type any_impl (line 1074) | struct any_impl : bool_<!none<Sequence,Predicate>::value> {}
      type finder (line 1084) | struct finder
        type find (line 1089) | struct find
        type find<true, false, L> (line 1094) | struct find<true, false, L>
      type reverse_elements (line 1133) | struct reverse_elements
      type reverse_elements<L> (line 1135) | struct reverse_elements<L>
      type reverse_impl (line 1150) | struct reverse_impl
      type flatten_impl (line 1215) | struct flatten_impl
      type flatten_element_impl (line 1220) | struct flatten_element_impl
      type fold_impl (line 1246) | struct fold_impl
      type fold_impl<Functor, State, Sequence<T0>> (line 1253) | struct fold_impl<Functor, State, Sequence<T0>>
      type fold_impl<Functor, State, Sequence<T0, T1>> (line 1260) | struct fold_impl<Functor, State, Sequence<T0, T1>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2>> (line 1269) | struct fold_impl<Functor, State, Sequence<T0, T1, T2>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2, T3>> (line 1280) | struct fold_impl<Functor, State, Sequence<T0, T1, T2, T3>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4>> (line 1293) | struct fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5>> (line 1308) | struct fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5, T6>> (line 1325) | struct fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5, T6>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5, T6, T7>> (line 1344) | struct fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5, T6...
      type reverse_fold_impl (line 1389) | struct reverse_fold_impl
      function Functor (line 1451) | constexpr Functor for_each_impl( type_<List<Elements...>>&&, Functor...
      type index_if_impl (line 1466) | struct index_if_impl
      type index_if_impl<false, Sequence, Predicate, NotFoundType> (line 1472) | struct index_if_impl<false, Sequence, Predicate, NotFoundType>
      type range_cat (line 1488) | struct range_cat
      type int_plus (line 1491) | struct int_plus
      type range_impl (line 1506) | struct range_impl : range_cat<T, typename range_impl<T, Start, N / 2...
      type range_impl<T, Start, 1> (line 1511) | struct range_impl<T, Start, 1>
      type range_impl<T, Start, 0> (line 1516) | struct range_impl<T, Start, 0>
      type reverse_range_cat (line 1521) | struct reverse_range_cat
      type int_minus (line 1524) | struct int_minus
      type reverse_range_impl (line 1539) | struct reverse_range_impl
      type reverse_range_impl<T, Start, 1> (line 1545) | struct reverse_range_impl<T, Start, 1>
      type reverse_range_impl<T, Start, 0> (line 1550) | struct reverse_range_impl<T, Start, 0>
      type reverse_range_safe (line 1555) | struct reverse_range_safe
      type unique_x_t (line 1574) | struct unique_x_t
      type is_set_impl (line 1579) | struct is_set_impl
      type is_set_impl<list<>> (line 1581) | struct is_set_impl<list<>>
      type qrref (line 1598) | struct qrref
      type qref (line 1602) | struct qref
      type qnoref (line 1606) | struct qnoref
      type msvc_quali_ref (line 1610) | struct msvc_quali_ref
      type msvc_quali_ref<T &> (line 1615) | struct msvc_quali_ref<T &>
      type msvc_quali_ref<T &&> (line 1620) | struct msvc_quali_ref<T &&>
      type unique_x_t (line 1632) | struct unique_x_t : type_<T>
      type is_set_cont (line 1636) | struct is_set_cont
      type empty_helper (line 1735) | struct empty_helper : ::brigand::apply<Pred, T>
      type empty_if_true (line 1739) | struct empty_if_true : std::conditional<empty_helper<Pred, T>::value...
      type empty_if_true<bind<F, _1>, T, B> (line 1743) | struct empty_if_true<bind<F, _1>, T, B> : std::conditional<F<T>::val...
      type empty_if_true<F<_1>, T, B> (line 1747) | struct empty_if_true<F<_1>, T, B> : std::conditional<F<T>::type::val...
      type rep_helper (line 1803) | struct rep_helper
      type replacer (line 1808) | struct replacer : std::conditional<rep_helper<Pred, T>::type::value,...
      type replacer<T, bind<F, _1>, NewType> (line 1812) | struct replacer<T, bind<F, _1>, NewType> : std::conditional<F<T>::va...
      type replacer<T, F<_1>, NewType> (line 1816) | struct replacer<T, F<_1>, NewType> : std::conditional<F<T>::type::va...
      type split_impl (line 1857) | struct split_impl
      type split_helper (line 1884) | struct split_helper
      type split_helper<L<>, TDelim> (line 1889) | struct split_helper<L<>, TDelim> {
      type merge_helper (line 1918) | struct merge_helper : ::brigand::apply<Comp, T1, U>
      type merge_impl (line 1922) | struct merge_impl
      type merge_insert (line 1924) | struct merge_insert
      type sort_impl (line 1997) | struct sort_impl
      type mini_sort (line 1999) | struct mini_sort
      type mini_sort<list<T0, T1, T2, T3>, Comp> (line 2014) | struct mini_sort<list<T0, T1, T2, T3>, Comp>
      type mini_sort<list<T0, T1, T2>, Comp> (line 2020) | struct mini_sort<list<T0, T1, T2>, Comp>
      type mini_sort<list<T0, T1>, Comp> (line 2025) | struct mini_sort<list<T0, T1>, Comp>
      type mini_sort<list<T0>, Comp> (line 2031) | struct mini_sort<list<T0>, Comp>
      type sort_impl<list<L>, list<>, Comp> (line 2108) | struct sort_impl<list<L>, list<>, Comp>
      type sort_impl<list<L0, L1>, list<>, Comp> (line 2113) | struct sort_impl<list<L0, L1>, list<>, Comp>
      type sort_impl<list<L0, L1, L2>, list<>, Comp> (line 2118) | struct sort_impl<list<L0, L1, L2>, list<>, Comp>
      type sort_impl<list<>, list<>, Comp> (line 2123) | struct sort_impl<list<>, list<>, Comp>
      type and_impl (line 2391) | struct and_impl
      type and_impl<0> (line 2393) | struct and_impl<0>
      type and_impl<1> (line 2402) | struct and_impl<1>
      type or_impl (line 2432) | struct or_impl
      type or_impl<0> (line 2434) | struct or_impl<0>
      type or_impl<1> (line 2443) | struct or_impl<1>
      type repeat_impl (line 2481) | struct repeat_impl
      type repeat_impl<F, 7, T> (line 2485) | struct repeat_impl<F, 7, T>
      type repeat_impl<F, 6, T> (line 2490) | struct repeat_impl<F, 6, T>
      type repeat_impl<F, 5, T> (line 2495) | struct repeat_impl<F, 5, T>
      type repeat_impl<F, 4, T> (line 2500) | struct repeat_impl<F, 4, T>
      type repeat_impl<F, 3, T> (line 2505) | struct repeat_impl<F, 3, T>
      type repeat_impl<F, 2, T> (line 2510) | struct repeat_impl<F, 2, T>
      type repeat_impl<F, 1, T> (line 2515) | struct repeat_impl<F, 1, T>
      type repeat_impl<F, 0, T> (line 2520) | struct repeat_impl<F, 0, T>
      type has_key_impl (line 2545) | struct has_key_impl
      type mksq8 (line 2558) | struct mksq8
      type mksq8<Start, 8, Next> (line 2572) | struct mksq8<Start, 8, Next>
      type make_sequence_impl (line 2584) | struct make_sequence_impl
      type has_erase_method (line 2613) | struct has_erase_method
        type dummy (line 2615) | struct dummy
      type erase_dispatch (line 2626) | struct erase_dispatch
      type erase_dispatch<C, K, true> (line 2631) | struct erase_dispatch<C, K, true>
      type insert_impl (line 2644) | struct insert_impl
      type contains_impl (line 2657) | struct contains_impl
      type make_set (line 2670) | struct make_set
      type set_erase_pred_impl (line 2672) | struct set_erase_pred_impl
      type set_erase_pred_impl<K,K> (line 2677) | struct set_erase_pred_impl<K,K>
      type set_impl (line 2682) | struct set_impl
      type make_set (line 2700) | struct make_set : type_<Ts>...
      type get_second (line 2717) | struct get_second {
      type get_first (line 2729) | struct get_first {
    type detail (line 775) | namespace detail
      type dup_append_list (line 43) | struct dup_append_list
      type filled_list_impl (line 50) | struct filled_list_impl
      type filled_list_impl<T, List, 1> (line 56) | struct filled_list_impl<T, List, 1>
      type filled_list_impl<T, List, 0> (line 61) | struct filled_list_impl<T, List, 0>
      type append_impl (line 88) | struct append_impl
      type append_impl<> (line 90) | struct append_impl<>
      type map_impl (line 184) | struct map_impl
        type Pack (line 201) | struct Pack : pair<typename Ts::first_type, Ts>...
        type erase_return_t (line 219) | struct erase_return_t
      type map_impl<> (line 186) | struct map_impl<>
      type map_impl (line 198) | struct map_impl
        type Pack (line 201) | struct Pack : pair<typename Ts::first_type, Ts>...
        type erase_return_t (line 219) | struct erase_return_t
      type make_map (line 231) | struct make_map : type_<typename Ts::first_type>...
      type element_at (line 244) | struct element_at
      type at_impl (line 252) | struct at_impl
      type has_at_method (line 264) | struct has_at_method
        type dummy (line 266) | struct dummy
      type at_dispatch (line 277) | struct at_dispatch
      type at_dispatch<L, Index, true> (line 282) | struct at_dispatch<L, Index, true>
      type packaged_lcall (line 331) | struct packaged_lcall
      type apply (line 335) | struct apply {
      type clear_impl (line 451) | struct clear_impl
      type split_at_impl (line 466) | struct split_at_impl
      type call_split_at_impl (line 504) | struct call_split_at_impl : split_at_impl<(I::value > 16), brigand::...
      type push_front_impl (line 521) | struct push_front_impl
      type front_impl (line 540) | struct front_impl
      type pop_front_impl (line 552) | struct pop_front_impl
      type pop_front_element (line 559) | struct pop_front_element
      type substitute_impl (line 592) | struct substitute_impl
      type substitute_impl<args<Index>,List> (line 602) | struct substitute_impl<args<Index>,List>
      function count_bools (line 642) | constexpr unsigned int count_bools(const std::array<bool, length> & ...
      function count_bools (line 655) | constexpr unsigned int count_bools(bool const * const begin, bool co...
      type template_count_bools (line 663) | struct template_count_bools
      type push_back_impl (line 758) | struct push_back_impl
      type rot90 (line 778) | struct rot90
      type rot90<L1, list<>> (line 794) | struct rot90<L1, list<>>
      type transform_impl (line 799) | struct transform_impl
      type transform_apply (line 801) | struct transform_apply
      type transform (line 814) | struct transform : transform_impl<back<list<FuncOrSeqs...>>, Seq1, S...
      type as_sequence_impl (line 865) | struct as_sequence_impl
      type non_null_impl (line 943) | struct non_null_impl : bool_<Args::value != 0>{}
      type all_helper (line 955) | struct all_helper : ::brigand::apply<P, T>
      type bools_ (line 959) | struct bools_
      type all_impl (line 963) | struct all_impl
      type all_same (line 974) | struct all_same
        method all_same (line 977) | constexpr all_same(...) {}
        method all_same (line 979) | constexpr all_same(std::initializer_list<T *>) : value{true}
      type all_impl (line 984) | struct all_impl : bool_<true>
      type none_impl (line 1022) | struct none_impl
        type nope (line 1025) | struct nope
      type none_impl (line 1037) | struct none_impl : bool_<true>
        type nope (line 1025) | struct nope
      type any_impl (line 1074) | struct any_impl : bool_<!none<Sequence,Predicate>::value> {}
      type finder (line 1084) | struct finder
        type find (line 1089) | struct find
        type find<true, false, L> (line 1094) | struct find<true, false, L>
      type reverse_elements (line 1133) | struct reverse_elements
      type reverse_elements<L> (line 1135) | struct reverse_elements<L>
      type reverse_impl (line 1150) | struct reverse_impl
      type flatten_impl (line 1215) | struct flatten_impl
      type flatten_element_impl (line 1220) | struct flatten_element_impl
      type fold_impl (line 1246) | struct fold_impl
      type fold_impl<Functor, State, Sequence<T0>> (line 1253) | struct fold_impl<Functor, State, Sequence<T0>>
      type fold_impl<Functor, State, Sequence<T0, T1>> (line 1260) | struct fold_impl<Functor, State, Sequence<T0, T1>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2>> (line 1269) | struct fold_impl<Functor, State, Sequence<T0, T1, T2>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2, T3>> (line 1280) | struct fold_impl<Functor, State, Sequence<T0, T1, T2, T3>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4>> (line 1293) | struct fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5>> (line 1308) | struct fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5, T6>> (line 1325) | struct fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5, T6>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5, T6, T7>> (line 1344) | struct fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5, T6...
      type reverse_fold_impl (line 1389) | struct reverse_fold_impl
      function Functor (line 1451) | constexpr Functor for_each_impl( type_<List<Elements...>>&&, Functor...
      type index_if_impl (line 1466) | struct index_if_impl
      type index_if_impl<false, Sequence, Predicate, NotFoundType> (line 1472) | struct index_if_impl<false, Sequence, Predicate, NotFoundType>
      type range_cat (line 1488) | struct range_cat
      type int_plus (line 1491) | struct int_plus
      type range_impl (line 1506) | struct range_impl : range_cat<T, typename range_impl<T, Start, N / 2...
      type range_impl<T, Start, 1> (line 1511) | struct range_impl<T, Start, 1>
      type range_impl<T, Start, 0> (line 1516) | struct range_impl<T, Start, 0>
      type reverse_range_cat (line 1521) | struct reverse_range_cat
      type int_minus (line 1524) | struct int_minus
      type reverse_range_impl (line 1539) | struct reverse_range_impl
      type reverse_range_impl<T, Start, 1> (line 1545) | struct reverse_range_impl<T, Start, 1>
      type reverse_range_impl<T, Start, 0> (line 1550) | struct reverse_range_impl<T, Start, 0>
      type reverse_range_safe (line 1555) | struct reverse_range_safe
      type unique_x_t (line 1574) | struct unique_x_t
      type is_set_impl (line 1579) | struct is_set_impl
      type is_set_impl<list<>> (line 1581) | struct is_set_impl<list<>>
      type qrref (line 1598) | struct qrref
      type qref (line 1602) | struct qref
      type qnoref (line 1606) | struct qnoref
      type msvc_quali_ref (line 1610) | struct msvc_quali_ref
      type msvc_quali_ref<T &> (line 1615) | struct msvc_quali_ref<T &>
      type msvc_quali_ref<T &&> (line 1620) | struct msvc_quali_ref<T &&>
      type unique_x_t (line 1632) | struct unique_x_t : type_<T>
      type is_set_cont (line 1636) | struct is_set_cont
      type empty_helper (line 1735) | struct empty_helper : ::brigand::apply<Pred, T>
      type empty_if_true (line 1739) | struct empty_if_true : std::conditional<empty_helper<Pred, T>::value...
      type empty_if_true<bind<F, _1>, T, B> (line 1743) | struct empty_if_true<bind<F, _1>, T, B> : std::conditional<F<T>::val...
      type empty_if_true<F<_1>, T, B> (line 1747) | struct empty_if_true<F<_1>, T, B> : std::conditional<F<T>::type::val...
      type rep_helper (line 1803) | struct rep_helper
      type replacer (line 1808) | struct replacer : std::conditional<rep_helper<Pred, T>::type::value,...
      type replacer<T, bind<F, _1>, NewType> (line 1812) | struct replacer<T, bind<F, _1>, NewType> : std::conditional<F<T>::va...
      type replacer<T, F<_1>, NewType> (line 1816) | struct replacer<T, F<_1>, NewType> : std::conditional<F<T>::type::va...
      type split_impl (line 1857) | struct split_impl
      type split_helper (line 1884) | struct split_helper
      type split_helper<L<>, TDelim> (line 1889) | struct split_helper<L<>, TDelim> {
      type merge_helper (line 1918) | struct merge_helper : ::brigand::apply<Comp, T1, U>
      type merge_impl (line 1922) | struct merge_impl
      type merge_insert (line 1924) | struct merge_insert
      type sort_impl (line 1997) | struct sort_impl
      type mini_sort (line 1999) | struct mini_sort
      type mini_sort<list<T0, T1, T2, T3>, Comp> (line 2014) | struct mini_sort<list<T0, T1, T2, T3>, Comp>
      type mini_sort<list<T0, T1, T2>, Comp> (line 2020) | struct mini_sort<list<T0, T1, T2>, Comp>
      type mini_sort<list<T0, T1>, Comp> (line 2025) | struct mini_sort<list<T0, T1>, Comp>
      type mini_sort<list<T0>, Comp> (line 2031) | struct mini_sort<list<T0>, Comp>
      type sort_impl<list<L>, list<>, Comp> (line 2108) | struct sort_impl<list<L>, list<>, Comp>
      type sort_impl<list<L0, L1>, list<>, Comp> (line 2113) | struct sort_impl<list<L0, L1>, list<>, Comp>
      type sort_impl<list<L0, L1, L2>, list<>, Comp> (line 2118) | struct sort_impl<list<L0, L1, L2>, list<>, Comp>
      type sort_impl<list<>, list<>, Comp> (line 2123) | struct sort_impl<list<>, list<>, Comp>
      type and_impl (line 2391) | struct and_impl
      type and_impl<0> (line 2393) | struct and_impl<0>
      type and_impl<1> (line 2402) | struct and_impl<1>
      type or_impl (line 2432) | struct or_impl
      type or_impl<0> (line 2434) | struct or_impl<0>
      type or_impl<1> (line 2443) | struct or_impl<1>
      type repeat_impl (line 2481) | struct repeat_impl
      type repeat_impl<F, 7, T> (line 2485) | struct repeat_impl<F, 7, T>
      type repeat_impl<F, 6, T> (line 2490) | struct repeat_impl<F, 6, T>
      type repeat_impl<F, 5, T> (line 2495) | struct repeat_impl<F, 5, T>
      type repeat_impl<F, 4, T> (line 2500) | struct repeat_impl<F, 4, T>
      type repeat_impl<F, 3, T> (line 2505) | struct repeat_impl<F, 3, T>
      type repeat_impl<F, 2, T> (line 2510) | struct repeat_impl<F, 2, T>
      type repeat_impl<F, 1, T> (line 2515) | struct repeat_impl<F, 1, T>
      type repeat_impl<F, 0, T> (line 2520) | struct repeat_impl<F, 0, T>
      type has_key_impl (line 2545) | struct has_key_impl
      type mksq8 (line 2558) | struct mksq8
      type mksq8<Start, 8, Next> (line 2572) | struct mksq8<Start, 8, Next>
      type make_sequence_impl (line 2584) | struct make_sequence_impl
      type has_erase_method (line 2613) | struct has_erase_method
        type dummy (line 2615) | struct dummy
      type erase_dispatch (line 2626) | struct erase_dispatch
      type erase_dispatch<C, K, true> (line 2631) | struct erase_dispatch<C, K, true>
      type insert_impl (line 2644) | struct insert_impl
      type contains_impl (line 2657) | struct contains_impl
      type make_set (line 2670) | struct make_set
      type set_erase_pred_impl (line 2672) | struct set_erase_pred_impl
      type set_erase_pred_impl<K,K> (line 2677) | struct set_erase_pred_impl<K,K>
      type set_impl (line 2682) | struct set_impl
      type make_set (line 2700) | struct make_set : type_<Ts>...
      type get_second (line 2717) | struct get_second {
      type get_first (line 2729) | struct get_first {
    type lazy (line 841) | namespace lazy
      type wrap (line 73) | struct wrap
      type join (line 136) | struct join
      type lookup_at (line 169) | struct lookup_at
      type lookup (line 175) | struct lookup : lookup_at<M, K>::type
      type push_front (line 531) | struct push_front : detail::push_front_impl<L, T...>
      type pop_front (line 576) | struct pop_front : detail::pop_front_impl<L, N::value>
      type count_if (line 685) | struct count_if
      type count_if<S<>, Pred> (line 689) | struct count_if<S<>, Pred>
      type count_if<S<>, bind<F, _1>> (line 695) | struct count_if<S<>, bind<F, _1>>
      type count_if<S<>, F<_1>> (line 700) | struct count_if<S<>, F<_1>>
      type transform (line 844) | struct transform : detail::transform<sizeof...(OpSeq2), Sequence1, O...
      type find (line 1170) | struct find
      type reverse_find (line 1189) | struct reverse_find {
      type remove_if (line 1653) | struct remove_if
      type remove_if<L<>, Pred> (line 1655) | struct remove_if<L<>, Pred> {
      type remove (line 1688) | struct remove
      type filter (line 1699) | struct filter
      type filter<L<>, Pred> (line 1701) | struct filter<L<>, Pred> {
      type remove_if (line 1754) | struct remove_if
      type remove (line 1765) | struct remove
      type filter (line 1776) | struct filter
      type replace_if (line 1823) | struct replace_if
      type replace (line 1830) | struct replace : replace_if<Sequence, std::is_same<_1, pin<OldType>>...
      type inherit_linearly (line 2791) | struct inherit_linearly
    type make_integral (line 854) | struct make_integral : brigand::integral_constant<typename T::value_ty...
    type detail (line 862) | namespace detail
      type dup_append_list (line 43) | struct dup_append_list
      type filled_list_impl (line 50) | struct filled_list_impl
      type filled_list_impl<T, List, 1> (line 56) | struct filled_list_impl<T, List, 1>
      type filled_list_impl<T, List, 0> (line 61) | struct filled_list_impl<T, List, 0>
      type append_impl (line 88) | struct append_impl
      type append_impl<> (line 90) | struct append_impl<>
      type map_impl (line 184) | struct map_impl
        type Pack (line 201) | struct Pack : pair<typename Ts::first_type, Ts>...
        type erase_return_t (line 219) | struct erase_return_t
      type map_impl<> (line 186) | struct map_impl<>
      type map_impl (line 198) | struct map_impl
        type Pack (line 201) | struct Pack : pair<typename Ts::first_type, Ts>...
        type erase_return_t (line 219) | struct erase_return_t
      type make_map (line 231) | struct make_map : type_<typename Ts::first_type>...
      type element_at (line 244) | struct element_at
      type at_impl (line 252) | struct at_impl
      type has_at_method (line 264) | struct has_at_method
        type dummy (line 266) | struct dummy
      type at_dispatch (line 277) | struct at_dispatch
      type at_dispatch<L, Index, true> (line 282) | struct at_dispatch<L, Index, true>
      type packaged_lcall (line 331) | struct packaged_lcall
      type apply (line 335) | struct apply {
      type clear_impl (line 451) | struct clear_impl
      type split_at_impl (line 466) | struct split_at_impl
      type call_split_at_impl (line 504) | struct call_split_at_impl : split_at_impl<(I::value > 16), brigand::...
      type push_front_impl (line 521) | struct push_front_impl
      type front_impl (line 540) | struct front_impl
      type pop_front_impl (line 552) | struct pop_front_impl
      type pop_front_element (line 559) | struct pop_front_element
      type substitute_impl (line 592) | struct substitute_impl
      type substitute_impl<args<Index>,List> (line 602) | struct substitute_impl<args<Index>,List>
      function count_bools (line 642) | constexpr unsigned int count_bools(const std::array<bool, length> & ...
      function count_bools (line 655) | constexpr unsigned int count_bools(bool const * const begin, bool co...
      type template_count_bools (line 663) | struct template_count_bools
      type push_back_impl (line 758) | struct push_back_impl
      type rot90 (line 778) | struct rot90
      type rot90<L1, list<>> (line 794) | struct rot90<L1, list<>>
      type transform_impl (line 799) | struct transform_impl
      type transform_apply (line 801) | struct transform_apply
      type transform (line 814) | struct transform : transform_impl<back<list<FuncOrSeqs...>>, Seq1, S...
      type as_sequence_impl (line 865) | struct as_sequence_impl
      type non_null_impl (line 943) | struct non_null_impl : bool_<Args::value != 0>{}
      type all_helper (line 955) | struct all_helper : ::brigand::apply<P, T>
      type bools_ (line 959) | struct bools_
      type all_impl (line 963) | struct all_impl
      type all_same (line 974) | struct all_same
        method all_same (line 977) | constexpr all_same(...) {}
        method all_same (line 979) | constexpr all_same(std::initializer_list<T *>) : value{true}
      type all_impl (line 984) | struct all_impl : bool_<true>
      type none_impl (line 1022) | struct none_impl
        type nope (line 1025) | struct nope
      type none_impl (line 1037) | struct none_impl : bool_<true>
        type nope (line 1025) | struct nope
      type any_impl (line 1074) | struct any_impl : bool_<!none<Sequence,Predicate>::value> {}
      type finder (line 1084) | struct finder
        type find (line 1089) | struct find
        type find<true, false, L> (line 1094) | struct find<true, false, L>
      type reverse_elements (line 1133) | struct reverse_elements
      type reverse_elements<L> (line 1135) | struct reverse_elements<L>
      type reverse_impl (line 1150) | struct reverse_impl
      type flatten_impl (line 1215) | struct flatten_impl
      type flatten_element_impl (line 1220) | struct flatten_element_impl
      type fold_impl (line 1246) | struct fold_impl
      type fold_impl<Functor, State, Sequence<T0>> (line 1253) | struct fold_impl<Functor, State, Sequence<T0>>
      type fold_impl<Functor, State, Sequence<T0, T1>> (line 1260) | struct fold_impl<Functor, State, Sequence<T0, T1>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2>> (line 1269) | struct fold_impl<Functor, State, Sequence<T0, T1, T2>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2, T3>> (line 1280) | struct fold_impl<Functor, State, Sequence<T0, T1, T2, T3>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4>> (line 1293) | struct fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5>> (line 1308) | struct fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5, T6>> (line 1325) | struct fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5, T6>>
      type fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5, T6, T7>> (line 1344) | struct fold_impl<Functor, State, Sequence<T0, T1, T2, T3, T4, T5, T6...
      type reverse_fold_impl (line 1389) | struct reverse_fold_impl
      function Functor (line 1451) | constexpr Functor for_each_impl( type_<List<Elements...>>&&, Functor...
      type index_if_impl (line 1466) | struct index_if_impl
      type index_if_impl<false, Sequence, Predicate, NotFoundType> (line 1472) | struct index_if_impl<false, Sequence, Predicate, NotFoundType>
      type range_cat (line 1488) | struct range_cat
      type int_plus (line 1491) | struct int_plus
      type range_impl (line 1506) | struct range_impl : range_cat<T, typename range_impl<T, Start, N / 2...
      type range_impl<T, Start, 1> (line 1511) | struct range_impl<T, Start, 1>
      type range_impl<T, Start, 0> (line 1516) | struct range_impl<T, Start, 0>
      type 
Copy disabled (too large) Download .json
Condensed preview — 7092 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (47,581K chars).
[
  {
    "path": ".clang-format",
    "chars": 3224,
    "preview": "---\n# We'll use defaults from the Google style.\n# See http://clang.llvm.org/docs/ClangFormat.html for help.\n#\n# We inclu"
  },
  {
    "path": ".clang-tidy",
    "chars": 4910,
    "preview": "# Define the checks we want to use and remove with comments as to why.\n#\n# Here is a list of the quirks with clang-tidy "
  },
  {
    "path": ".claude/hooks/PostFormat.sh",
    "chars": 1631,
    "preview": "#!/usr/bin/env bash\n\n# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\n# Claude Code PostToolUse hook"
  },
  {
    "path": ".claude/rules/CMake.md",
    "chars": 313,
    "preview": "---\ntriggers:\n  - glob: \"**/CMakeLists.txt\"\n---\n\n- Files listed in spectre_target_sources() and spectre_target_headers()"
  },
  {
    "path": ".claude/rules/Cxx.md",
    "chars": 5752,
    "preview": "---\ntriggers:\n  - glob: \"**/*.{hpp,cpp,tpp}\"\n---\n\n# SpECTRE Code Rules Reference\n\n## Banned Patterns\n- `#include <iostre"
  },
  {
    "path": ".claude/settings.json",
    "chars": 432,
    "preview": "{\n  \"permissions\": {\n    \"allow\": [\n      \"Skill(spectre-fix-ci)\",\n      \"Skill(spectre-fix-issue)\",\n      \"Skill(spectr"
  },
  {
    "path": ".claude/skills/spectre-fix-ci/SKILL.md",
    "chars": 466,
    "preview": "---\nname: spectre-fix-ci\ndescription: >\n  Fetch and analyze a failed GitHub Actions job log. When viewing a job\n  in Git"
  },
  {
    "path": ".claude/skills/spectre-fix-issue/SKILL.md",
    "chars": 373,
    "preview": "---\nname: spectre-fix-issue\ndescription: >\n  Fetch a GitHub issue by number. Trigger when the user references a GitHub\n "
  },
  {
    "path": ".claude/skills/spectre-fix-pr/SKILL.md",
    "chars": 359,
    "preview": "---\nname: spectre-fix-pr\ndescription: >\n  Fetch PR review comments. Trigger when users reference a PR\n  (e.g. \"address c"
  },
  {
    "path": ".claude/skills/spectre-review/SKILL.md",
    "chars": 383,
    "preview": "---\nname: spectre-review\ndescription: SpECTRE code review (PR or local commits)\nargument-hint: \"[PR#] [clang-tidy] [cove"
  },
  {
    "path": ".codecov.yaml",
    "chars": 411,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\n# Disable PR comments\ncomment: false\n\ncoverage:\n  s"
  },
  {
    "path": ".devcontainer/cmake-kits.json",
    "chars": 364,
    "preview": "[\n    {\n        \"name\": \"Default\",\n        \"compilers\": {\n            \"C\": \"clang\",\n            \"CXX\": \"clang++\",\n      "
  },
  {
    "path": ".devcontainer/devcontainer.json",
    "chars": 1768,
    "preview": "{\n    \"name\": \"SpECTRE development environment\",\n    \"image\": \"sxscollaboration/spectre:dev\",\n    \"workspaceMount\": \"sou"
  },
  {
    "path": ".dockerignore",
    "chars": 418,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\n# Build directories\n# Ignore build dirs named simil"
  },
  {
    "path": ".github/ISSUE_TEMPLATE.md",
    "chars": 475,
    "preview": "# Bug reports:\n\n### Expected behavior:\n\n<!--\ndescribe the expected behavior\n-->\n\n### Current behavior:\n\n<!--\ndescribe th"
  },
  {
    "path": ".github/PULL_REQUEST_TEMPLATE.md",
    "chars": 1292,
    "preview": "## Proposed changes\n\n<!--\nAt a high level, describe what this PR does.\n-->\n\n### Upgrade instructions\n\n<!--\nIf this PR ma"
  },
  {
    "path": ".github/actions/parse-compiler/action.yaml",
    "chars": 1386,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\nname: Parse compiler\n\ndescription: |\n  Parse the co"
  },
  {
    "path": ".github/problem_matchers/ClangTidy.json",
    "chars": 412,
    "preview": "{\n  \"problemMatcher\": [\n    {\n      \"owner\": \"clang-tidy\",\n      \"pattern\": [\n        {\n          \"regexp\": \"^(?:\\\\x1b\\\\"
  },
  {
    "path": ".github/scripts/Release.py",
    "chars": 36688,
    "preview": "#!/usr/bin/env python\n\n# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\nimport datetime\nimport diffl"
  },
  {
    "path": ".github/scripts/requirements-release.txt",
    "chars": 229,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\n# Required Python packages for the release workflow"
  },
  {
    "path": ".github/workflows/BuildDockerContainer.yaml",
    "chars": 5295,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\n# This workflow can be run manually on any branch t"
  },
  {
    "path": ".github/workflows/ClobberCache.yaml",
    "chars": 836,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\n# Dump a large file into the cache to force GitHub "
  },
  {
    "path": ".github/workflows/DemoContainer.yaml",
    "chars": 3641,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\nname: Deploy containers\n\non:\n  workflow_dispatch:\n "
  },
  {
    "path": ".github/workflows/DeployStaticExecutables.yaml",
    "chars": 4308,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\nname: Deploy static executables\n\non:\n  release:\n   "
  },
  {
    "path": ".github/workflows/NewContributors.yaml",
    "chars": 2134,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\n# Add new contributors when their first PR was merg"
  },
  {
    "path": ".github/workflows/PostRelease.yaml",
    "chars": 4397,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\n# Automations that run on published releases\nname: "
  },
  {
    "path": ".github/workflows/Spack.yaml",
    "chars": 2317,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\n# Installation test with the Spack package manager\n"
  },
  {
    "path": ".github/workflows/Tests.yaml",
    "chars": 59815,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\n# Continuous integration tests that pull requests a"
  },
  {
    "path": ".gitignore",
    "chars": 1333,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\n# Build directories\n# Ignore build dirs named simil"
  },
  {
    "path": ".skills/scripts/FetchCiLog.py",
    "chars": 5476,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\n\"\"\"Fetch a failed GitHub Actions job log and extrac"
  },
  {
    "path": ".skills/scripts/FetchIssue.py",
    "chars": 4602,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\n\"\"\"Fetch a GitHub issue and print it in a structure"
  },
  {
    "path": ".skills/scripts/FetchPrComments.py",
    "chars": 7732,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\n\"\"\"Fetch PR review data and print it in a structure"
  },
  {
    "path": ".skills/spectre-fix-ci/SKILL.md",
    "chars": 846,
    "preview": "Run the fetch script to retrieve and analyze the CI job log:\n\n```\npython3 \\\n  \"$(git rev-parse --show-toplevel)/.skills/"
  },
  {
    "path": ".skills/spectre-fix-issue/RANDOM_FAILURE.md",
    "chars": 8406,
    "preview": "# Fixing a Random Test Failure\n\nYou have a random test failure issue. The script output above contains\nthe test name and"
  },
  {
    "path": ".skills/spectre-fix-issue/SKILL.md",
    "chars": 950,
    "preview": "Run the fetch script to retrieve the issue title, body, and comments:\n\n```\npython3 \\\n  \"$(git rev-parse --show-toplevel)"
  },
  {
    "path": ".skills/spectre-fix-pr/SKILL.md",
    "chars": 1234,
    "preview": "Run the fetch script to retrieve PR metadata, review comments, and changed\nfiles:\n\n```\npython3 \\\n  \"$(git rev-parse --sh"
  },
  {
    "path": ".skills/spectre-review/SKILL.md",
    "chars": 8080,
    "preview": "# SpECTRE Code Review\n\n**Arguments**: $ARGUMENTS\n**Current branch**: !`git branch --show-current`\n\nPerform a thorough co"
  },
  {
    "path": ".skills/spectre-review/references/coverage-steps.md",
    "chars": 6762,
    "preview": "# Code Coverage Steps\n\nThese instructions are followed by the orchestrator when \"coverage\" was in\nthe review arguments. "
  },
  {
    "path": ".skills/spectre-review/references/report-template.md",
    "chars": 1047,
    "preview": "# Final Report Template\n\nPresent a clean report in the format below. Be brief and specific. No emojis.\nLink to files and"
  },
  {
    "path": "CITATION.cff",
    "chars": 33716,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\n# This file is automatically generated. It will be "
  },
  {
    "path": "CMakeLists.txt",
    "chars": 7525,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\ncmake_minimum_required(VERSION 3.18.0)\n\nlist(APPEND"
  },
  {
    "path": "LICENSE.txt",
    "chars": 1273,
    "preview": "==============================================================================\nSpECTRE Release License\n================="
  },
  {
    "path": "Metadata.yaml",
    "chars": 16314,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\nName: SpECTRE\n\nLicense: MIT\n\nHomepage: https://spec"
  },
  {
    "path": "README.md",
    "chars": 3856,
    "preview": "[//]: # (Distributed under the MIT License.)\n[//]: # (See LICENSE.txt for details.)\n\n[![license](https://img.shields.io/"
  },
  {
    "path": "citation.bib",
    "chars": 751,
    "preview": "@software{spectrecode,\n    author = \"Deppe, Nils and Throwe, William and Kidder, Lawrence E. and Vu,\nNils L. and Nelli, "
  },
  {
    "path": "cmake/AddCxxFlag.cmake",
    "chars": 8080,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\n# Have to compile a file (can be empty) to check fo"
  },
  {
    "path": "cmake/AddInputFileTests.cmake",
    "chars": 11006,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\nspectre_define_test_timeout_factor_option(INPUT_FIL"
  },
  {
    "path": "cmake/AddSpectreExecutable.cmake",
    "chars": 2383,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\n# Adds an executable by wrapping CMake's 'add_execu"
  },
  {
    "path": "cmake/AddStandaloneTests.cmake",
    "chars": 3102,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\nspectre_define_test_timeout_factor_option(STANDALON"
  },
  {
    "path": "cmake/BootstrapPyDeps.cmake",
    "chars": 1487,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\noption(BOOTSTRAP_PY_DEPS\n  \"Install missing Python "
  },
  {
    "path": "cmake/CheckBrokenArray0.cmake",
    "chars": 985,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\n# Check whether the standard library is affected by"
  },
  {
    "path": "cmake/CheckBrokenArray0.cpp",
    "chars": 492,
    "preview": "// Distributed under the MIT License.\n// Copyright (c) 2009-2017 by the contributors to libc++, listed at\n// https://llv"
  },
  {
    "path": "cmake/CheckCompilerVersion.cmake",
    "chars": 885,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\nif (\"${CMAKE_CXX_COMPILER_ID}\" STREQUAL \"GNU\")\n  if"
  },
  {
    "path": "cmake/CodeCoverage.cmake",
    "chars": 6548,
    "preview": "################################################################################\n#\n# \\file      cmake/CodeCoverage.cmake"
  },
  {
    "path": "cmake/CodeCoverageDetection.cmake",
    "chars": 2273,
    "preview": "################################################################################\n#\n# \\file      cmake/CodeCoverageDetect"
  },
  {
    "path": "cmake/EnableWarnings.cmake",
    "chars": 2746,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\ninclude(AddCxxFlag)\n\n# On systems where we can't us"
  },
  {
    "path": "cmake/FindBlaze.cmake",
    "chars": 1711,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\nif(NOT BLAZE_ROOT)\n  # Need to set to empty to avoi"
  },
  {
    "path": "cmake/FindBreathe.cmake",
    "chars": 1050,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\nif(NOT BREATHE_ROOT)\n  # Need to set to empty to av"
  },
  {
    "path": "cmake/FindCharm.cmake",
    "chars": 17970,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\n# FindCharm.cmake\n#\n# Finds a suitable Charm++ inst"
  },
  {
    "path": "cmake/FindClangFormat.cmake",
    "chars": 1712,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\nif(NOT CLANG_FORMAT_ROOT)\n  # Need to set to empty "
  },
  {
    "path": "cmake/FindFFTW.cmake",
    "chars": 916,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\n# Find FFTW3 (The Fastest Fourier Transform in the "
  },
  {
    "path": "cmake/FindFUKA.cmake",
    "chars": 1046,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\n# Find the FUKA initial data code (https://bitbucke"
  },
  {
    "path": "cmake/FindGoogleBenchmark.cmake",
    "chars": 1183,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\n# Find GOOGLE_BENCHMARK: https://github.com/google/"
  },
  {
    "path": "cmake/FindJEMALLOC.cmake",
    "chars": 2270,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\n# Find jemalloc: https://github.com/jemalloc/jemall"
  },
  {
    "path": "cmake/FindLIBCXX.cmake",
    "chars": 2843,
    "preview": "################################################################################\n#\n# \\file      cmake/FindLIBCXX.cmake\n#"
  },
  {
    "path": "cmake/FindLIBXSMM.cmake",
    "chars": 3255,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\n# Find LIBXSMM: https://github.com/libxsmm/libxsmm\n"
  },
  {
    "path": "cmake/FindNumPy.cmake",
    "chars": 1176,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\nexecute_process(COMMAND ${CMAKE_COMMAND} -E env\n  P"
  },
  {
    "path": "cmake/FindPAPI.cmake",
    "chars": 1409,
    "preview": "# Obtained from: https://github.com/LLNL/perf-dump\n\n# Try to find PAPI headers and libraries.\n#\n# Usage of this module a"
  },
  {
    "path": "cmake/FindParaView.cmake",
    "chars": 2472,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\nfind_program(PVPYTHON_EXEC pvpython)\n\n# Get version"
  },
  {
    "path": "cmake/FindPythonModule.cmake",
    "chars": 1641,
    "preview": "# From: https://github.com/ivansafrin/Polycode/\n\n# Find if a Python module is installed\n# Found at http://www.cmake.org/"
  },
  {
    "path": "cmake/FindScotch.cmake",
    "chars": 2105,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\n# Find Scotch: https://www.labri.fr/perso/pelegrin/"
  },
  {
    "path": "cmake/FindSleef.cmake",
    "chars": 2281,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\n# Find Sleef: https://github.com/shibatch/sleef\n# I"
  },
  {
    "path": "cmake/FindSpEC.cmake",
    "chars": 2677,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\n# Optionally link SpEC libraries. Pass `SPEC_ROOT` "
  },
  {
    "path": "cmake/FindTCMALLOC.cmake",
    "chars": 1954,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\n# Find tcmalloc: https://github.com/gperftools/gper"
  },
  {
    "path": "cmake/Findccache.cmake",
    "chars": 661,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\nfind_program(CCACHE_EXEC ccache)\n\nif (CCACHE_EXEC)\n"
  },
  {
    "path": "cmake/PrintUsefulCMakeInfo.cmake",
    "chars": 3231,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\n# First append useful info to BuildInfo.txt\nfile(AP"
  },
  {
    "path": "cmake/ProhibitInSourceBuild.cmake",
    "chars": 1176,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\nstring(\n    REGEX REPLACE\n    \"^${CMAKE_SOURCE_DIR}"
  },
  {
    "path": "cmake/RunInputFileTest.sh",
    "chars": 2006,
    "preview": "#!/bin/sh -e\n\n# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\n# Positional arguments to this script"
  },
  {
    "path": "cmake/SetBuildType.cmake",
    "chars": 2679,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\n# CMake lets the user define CMAKE_BUILD_TYPE on th"
  },
  {
    "path": "cmake/SetCxxStandard.cmake",
    "chars": 162,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\nset(CMAKE_CXX_STANDARD 20)\nset(CMAKE_CXX_STANDARD_R"
  },
  {
    "path": "cmake/SetOutputDirectory.cmake",
    "chars": 954,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\n# Set the directory where the libraries and executa"
  },
  {
    "path": "cmake/SetupAllocator.cmake",
    "chars": 2747,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\n# Always create the target and global property so t"
  },
  {
    "path": "cmake/SetupAutodiff.cmake",
    "chars": 2100,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\n# Find autodiff (https://github.com/autodiff/autodi"
  },
  {
    "path": "cmake/SetupBlas.cmake",
    "chars": 1538,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\nfind_package(BLAS REQUIRED)\nmessage(STATUS \"BLAS li"
  },
  {
    "path": "cmake/SetupBlaze.cmake",
    "chars": 6273,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\noption(USE_SLEEF \"Use Sleef to add more vectorized "
  },
  {
    "path": "cmake/SetupBoost.cmake",
    "chars": 5459,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\nfind_package(Boost 1.60.0 REQUIRED COMPONENTS progr"
  },
  {
    "path": "cmake/SetupCCache.cmake",
    "chars": 2271,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\n# Use CCache if available to speed up builds\n#\n# CC"
  },
  {
    "path": "cmake/SetupCatch.cmake",
    "chars": 593,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\nfind_package(Catch2 3.4.0)\n\nif (NOT Catch2_FOUND)\n "
  },
  {
    "path": "cmake/SetupCharm.cmake",
    "chars": 3310,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\nset(SPECTRE_REQUIRED_CHARM_VERSION 7.0.0)\n\noption(U"
  },
  {
    "path": "cmake/SetupCharmModuleFunctions.cmake",
    "chars": 980,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\n# Add a function to generate the charm interface fi"
  },
  {
    "path": "cmake/SetupClangFormat.cmake",
    "chars": 440,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\nfind_package(ClangFormat)\n\nif(CLANG_FORMAT_BIN AND "
  },
  {
    "path": "cmake/SetupClangTidy.cmake",
    "chars": 1727,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\nif(NOT CLANG_TIDY_ROOT)\n  # Need to set to empty to"
  },
  {
    "path": "cmake/SetupCxxFlags.cmake",
    "chars": 7389,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\noption(DEBUG_SYMBOLS \"Add -g to CMAKE_CXX_FLAGS if "
  },
  {
    "path": "cmake/SetupDoxygen.cmake",
    "chars": 8995,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\n# Targets to preprocess the documentation\n# - Conve"
  },
  {
    "path": "cmake/SetupFormaline.cmake",
    "chars": 3052,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\n# When running formaline when SpECTRE was not built"
  },
  {
    "path": "cmake/SetupFortran.cmake",
    "chars": 343,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\noption(SPECTRE_Fortran_STATIC_LIBS\n  \"Link static v"
  },
  {
    "path": "cmake/SetupFuka.cmake",
    "chars": 200,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\nfind_package(FUKA)\n\nif (FUKA_FOUND)\n  file(APPEND\n "
  },
  {
    "path": "cmake/SetupGitHooks.cmake",
    "chars": 1126,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\n# Allow disabling the Git hooks because if you are "
  },
  {
    "path": "cmake/SetupGoldOrLldLinker.cmake",
    "chars": 1592,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\noption(USE_LD\n  \"Override the default linker. Optio"
  },
  {
    "path": "cmake/SetupGoogleBenchmark.cmake",
    "chars": 751,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\nfind_package(GoogleBenchmark QUIET)\n\n\nif (${GoogleB"
  },
  {
    "path": "cmake/SetupGsl.cmake",
    "chars": 918,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\noption(GSL_STATIC\n  \"Link static versions of GNU Sc"
  },
  {
    "path": "cmake/SetupHdf5.cmake",
    "chars": 5468,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\nfind_package(HDF5 REQUIRED COMPONENTS C)\n\nmessage(S"
  },
  {
    "path": "cmake/SetupInformer.cmake",
    "chars": 1160,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\n# Configure info from build to give access to unit "
  },
  {
    "path": "cmake/SetupJemalloc.cmake",
    "chars": 1793,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\nfind_package(JEMALLOC REQUIRED)\n\nmessage(STATUS \"je"
  },
  {
    "path": "cmake/SetupKokkos.cmake",
    "chars": 4078,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\noption(SPECTRE_KOKKOS \"Use Kokkos\" OFF)\n\nif(SPECTRE"
  },
  {
    "path": "cmake/SetupLIBCXX.cmake",
    "chars": 1525,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\nif (\"${CMAKE_CXX_COMPILER_ID}\" STREQUAL \"Clang\")\n  "
  },
  {
    "path": "cmake/SetupLIBCXXCharm.cmake",
    "chars": 389,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\n# We need to add the link flag after finding packag"
  },
  {
    "path": "cmake/SetupLIBXSMM.cmake",
    "chars": 1763,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\nfind_package(LIBXSMM 1.16.1)\n\nif (NOT LIBXSMM_FOUND"
  },
  {
    "path": "cmake/SetupLapack.cmake",
    "chars": 336,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\nfind_package(LAPACK REQUIRED)\nmessage(STATUS \"LAPAC"
  },
  {
    "path": "cmake/SetupLicenseInfo.cmake",
    "chars": 2220,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\nset(_LIST_OF_3PLS\n  Blaze\n  Boost\n  Brigand\n  Catch"
  },
  {
    "path": "cmake/SetupLinkTimeOptimization.cmake",
    "chars": 679,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\noption(SPECTRE_LTO \"Use link-time optimization if a"
  },
  {
    "path": "cmake/SetupListTargets.cmake",
    "chars": 385,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\nadd_custom_target(\n    list-targets\n    COMMAND\n   "
  },
  {
    "path": "cmake/SetupNinjaColors.cmake",
    "chars": 802,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\nif (\"${CMAKE_GENERATOR}\" STREQUAL \"Ninja\")\n  if (\"$"
  },
  {
    "path": "cmake/SetupOpenMP.cmake",
    "chars": 203,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\noption(ENABLE_OPENMP \"Enable OpenMP in some parts o"
  },
  {
    "path": "cmake/SetupPapi.cmake",
    "chars": 724,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\nif(NOT USE_PAPI)\n  option(USE_PAPI \"Search for and "
  },
  {
    "path": "cmake/SetupParaView.cmake",
    "chars": 363,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\noption(ENABLE_PARAVIEW \"Try to find ParaView to ena"
  },
  {
    "path": "cmake/SetupPch.cmake",
    "chars": 2798,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\n# Support for precompiled headers (PCH)\n# ========="
  },
  {
    "path": "cmake/SetupPic.cmake",
    "chars": 845,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\n# Set up position independent code by default since"
  },
  {
    "path": "cmake/SetupProfiling.cmake",
    "chars": 927,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\noption(ENABLE_PROFILING \"Enables various options to"
  },
  {
    "path": "cmake/SetupPybind11.cmake",
    "chars": 1160,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\noption(BUILD_PYTHON_BINDINGS \"Build the python bind"
  },
  {
    "path": "cmake/SetupPypp.cmake",
    "chars": 1323,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\n# To run Python tests we need the development compo"
  },
  {
    "path": "cmake/SetupSanitizers.cmake",
    "chars": 1867,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\noption(ASAN \"Add AddressSanitizer compile flags\" OF"
  },
  {
    "path": "cmake/SetupSpec.cmake",
    "chars": 447,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\nfind_package(SpEC)\n\n# Make SpEC scripts available i"
  },
  {
    "path": "cmake/SetupSpectreInlining.cmake",
    "chars": 416,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\noption(SPECTRE_USE_ALWAYS_INLINE \"Force SpECTRE inl"
  },
  {
    "path": "cmake/SetupSphinx.cmake",
    "chars": 1104,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\n# Setup Sphinx to generate documentation for our Py"
  },
  {
    "path": "cmake/SetupStl.cmake",
    "chars": 1726,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\n# Create an C++ standard library target for trackin"
  },
  {
    "path": "cmake/SetupTcmalloc.cmake",
    "chars": 629,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\nfind_package(TCMALLOC REQUIRED)\n\nmessage(STATUS \"tc"
  },
  {
    "path": "cmake/SetupXsimd.cmake",
    "chars": 2184,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\n# To turn this off, one should provide an alternati"
  },
  {
    "path": "cmake/SetupYamlCpp.cmake",
    "chars": 986,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\nfind_package(YAML_CPP NAMES yaml-cpp)\n\nif (NOT YAML"
  },
  {
    "path": "cmake/SpectreAddCatchTests.cmake",
    "chars": 9623,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n#\n# This file contains functions used by CMake to ad"
  },
  {
    "path": "cmake/SpectreAddInterfaceLibraryHeaders.cmake",
    "chars": 4605,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\n# Adds the header files to the target.\n#\n# Usage:\n#"
  },
  {
    "path": "cmake/SpectreAddLibraries.cmake",
    "chars": 2187,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\nadd_custom_target(libs)\n\nfunction(ADD_SPECTRE_LIBRA"
  },
  {
    "path": "cmake/SpectreAddTestLibs.cmake",
    "chars": 2078,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\n# Add an executable with Catch2 unit tests and regi"
  },
  {
    "path": "cmake/SpectreCheckDependencies.cmake",
    "chars": 1147,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\ninclude(SpectreCheckTargetDependencies)\n\nfunction(c"
  },
  {
    "path": "cmake/SpectreCheckTargetDependencies.cmake",
    "chars": 26976,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\ninclude(SpectreAddInterfaceLibraryHeaders)\n\n# Get t"
  },
  {
    "path": "cmake/SpectreGetGitHash.cmake",
    "chars": 1647,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\nset(GIT_HASH \"\")\nset(GIT_BRANCH_COMMAND \"\")\nset(GIT"
  },
  {
    "path": "cmake/SpectreInitializeVariables.cmake",
    "chars": 137,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\nif(NOT CMAKE_CXX_LINK_FLAGS)\n  set(CMAKE_CXX_LINK_F"
  },
  {
    "path": "cmake/SpectreLoadMetadata.cmake",
    "chars": 2325,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\n# Read the following information from the `Metadata"
  },
  {
    "path": "cmake/SpectreParseTests.py",
    "chars": 6509,
    "preview": "#!/usr/bin/env python\n\n# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\nimport re\n\n# A list of all t"
  },
  {
    "path": "cmake/SpectrePythonExecutable.sh",
    "chars": 184,
    "preview": "#!/bin/bash -e\n\n# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\nPYTHONPATH=\"@PYTHONPATH@\" @PYTHON_E"
  },
  {
    "path": "cmake/SpectreSetSiteName.cmake",
    "chars": 328,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\nsite_name(HOSTNAME)\n\nfile(APPEND\n  \"${CMAKE_BINARY_"
  },
  {
    "path": "cmake/SpectreSetupFlagsTarget.cmake",
    "chars": 276,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\n# The library that contains all the flags for build"
  },
  {
    "path": "cmake/SpectreSetupPythonPackage.cmake",
    "chars": 14358,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\nif (ENABLE_PYTHON)\n  spectre_define_test_timeout_fa"
  },
  {
    "path": "cmake/SpectreSetupTesting.cmake",
    "chars": 1079,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\ninclude(CTest)\n\nset(SPECTRE_TEST_RUNNER \"\" CACHE ST"
  },
  {
    "path": "cmake/SpectreTargetHeaders.cmake",
    "chars": 3931,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\n# Add header files for CMake to track for a given l"
  },
  {
    "path": "cmake/SpectreTargetSources.cmake",
    "chars": 187,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\n# Alias for target_sources.\nfunction(spectre_target"
  },
  {
    "path": "cmake/StripSymbols.cmake",
    "chars": 423,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\noption(STRIP_SYMBOLS \"Strip symbols from executable"
  },
  {
    "path": "cmake/UpdateAddExecutables.cmake",
    "chars": 512,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\nfunction(add_spectre_executable TARGET_NAME)\n  _add"
  },
  {
    "path": "containers/Dockerfile.buildenv",
    "chars": 23832,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\n# If you change this file please push the new image"
  },
  {
    "path": "docs/.nojekyll",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "docs/CODE_OF_CONDUCT.md",
    "chars": 5334,
    "preview": "\\cond NEVER\nDistributed under the MIT License.\nSee LICENSE.txt for details.\n\\endcond\n# SpECTRE Code of Conduct {#code_of"
  },
  {
    "path": "docs/CONTRIBUTING.md",
    "chars": 16988,
    "preview": "\\cond NEVER\nDistributed under the MIT License.\nSee LICENSE.txt for details.\n\\endcond\n\n\n# Contributing to SpECTRE {#contr"
  },
  {
    "path": "docs/Changelog.md",
    "chars": 337,
    "preview": "\\cond NEVER\nDistributed under the MIT License.\nSee LICENSE.txt for details.\n\\endcond\n\n# Changelog {#changelog}\n\nThe comp"
  },
  {
    "path": "docs/Contributing/Contributing.md",
    "chars": 223,
    "preview": "\\cond NEVER\nDistributed under the MIT License.\nSee LICENSE.txt for details.\n\\endcond\n# Contributing to SpECTRE {#contrib"
  },
  {
    "path": "docs/Contributing/ReportingGuide.md",
    "chars": 3841,
    "preview": "\\cond NEVER\nDistributed under the MIT License.\nSee LICENSE.txt for details.\n\\endcond\n# SpECTRE Code of Conduct - Reporti"
  },
  {
    "path": "docs/Dependencies.bib",
    "chars": 12364,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\n# When editing this file, please follow the guideli"
  },
  {
    "path": "docs/DevGuide/Amr.md",
    "chars": 17720,
    "preview": "\\cond NEVER\nDistributed under the MIT License.\nSee LICENSE.txt for details.\n\\endcond\n\n# Adaptive mesh refinement (AMR) {"
  },
  {
    "path": "docs/DevGuide/AutomaticVersioning.md",
    "chars": 3480,
    "preview": "\\cond NEVER\nDistributed under the MIT License.\nSee LICENSE.txt for details.\n\\endcond\n\n# Automatic versioning {#dev_guide"
  },
  {
    "path": "docs/DevGuide/Brigand.md",
    "chars": 64046,
    "preview": "\\cond NEVER\nDistributed under the MIT License.\nSee LICENSE.txt for details.\n\\endcond\n# Metaprogramming with Brigand {#br"
  },
  {
    "path": "docs/DevGuide/BuildOptimization.md",
    "chars": 14653,
    "preview": "\\cond NEVER\nDistributed under the MIT License.\nSee LICENSE.txt for details.\n\\endcond\n\n# Build Profiling and Optimization"
  },
  {
    "path": "docs/DevGuide/CodeReviewGuide.md",
    "chars": 6736,
    "preview": "\\cond NEVER\nDistributed under the MIT License.\nSee LICENSE.txt for details.\n\\endcond\n# Code Review Guide {#code_review_g"
  },
  {
    "path": "docs/DevGuide/CompilerLinkerErrors.md",
    "chars": 6747,
    "preview": "\\cond NEVER\nDistributed under the MIT License.\nSee LICENSE.txt for details.\n\\endcond\n\n# Understanding Compiler and Linke"
  },
  {
    "path": "docs/DevGuide/Connectivity.md",
    "chars": 9058,
    "preview": "\\cond NEVER\nDistributed under the MIT License.\nSee LICENSE.txt for details.\n\\endcond\n# Visualisation Connectivity {#visu"
  },
  {
    "path": "docs/DevGuide/CreatingExecutables.md",
    "chars": 6470,
    "preview": "\\cond NEVER\nDistributed under the MIT License.\nSee LICENSE.txt for details.\n\\endcond\n# Creating Executables {#dev_guide_"
  },
  {
    "path": "docs/DevGuide/Databox.md",
    "chars": 17233,
    "preview": "\\cond NEVER\nDistributed under the MIT License.\nSee LICENSE.txt for details.\n\\endcond\n# Motivation for SpECTRE's DataBox "
  },
  {
    "path": "docs/DevGuide/DebuggingTips.md",
    "chars": 839,
    "preview": "\\cond NEVER\nDistributed under the MIT License.\nSee LICENSE.txt for details.\n\\endcond\n\n# Tips for debugging an executable"
  },
  {
    "path": "docs/DevGuide/DevGuide.md",
    "chars": 3741,
    "preview": "\\cond NEVER\nDistributed under the MIT License.\nSee LICENSE.txt for details.\n\\endcond\n# Developer Guides {#dev_guide}\n\n##"
  },
  {
    "path": "docs/DevGuide/DomainConcepts.md",
    "chars": 4542,
    "preview": "\\cond NEVER\nDistributed under the MIT License.\nSee LICENSE.txt for details.\n\\endcond\n# Domain Concepts {#domain_concepts"
  },
  {
    "path": "docs/DevGuide/GitHubActions.md",
    "chars": 9607,
    "preview": "\\cond NEVER\nDistributed under the MIT License.\nSee LICENSE.txt for details.\n\\endcond\n\n# GitHub Actions Continuous Integr"
  },
  {
    "path": "docs/DevGuide/GpuSupport.md",
    "chars": 1581,
    "preview": "\\cond NEVER\nDistributed under the MIT License.\nSee LICENSE.txt for details.\n\\endcond\n\n# GPU support {#gpu_support}\n\n\\tab"
  },
  {
    "path": "docs/DevGuide/ImplementingVectors.md",
    "chars": 18085,
    "preview": "\\cond NEVER\nDistributed under the MIT License.\nSee LICENSE.txt for details.\n\\endcond\n\n# Implementing SpECTRE vectors {#i"
  },
  {
    "path": "docs/DevGuide/ImportingData.md",
    "chars": 3006,
    "preview": "\\cond NEVER\nDistributed under the MIT License.\nSee LICENSE.txt for details.\n\\endcond\n# Importing data {#dev_guide_import"
  },
  {
    "path": "docs/DevGuide/LoadBalancingNotes.md",
    "chars": 9116,
    "preview": "\\cond NEVER\nDistributed under the MIT License.\nSee LICENSE.txt for details.\n\\endcond\n\n# Notes on SpECTRE load-balancing "
  },
  {
    "path": "docs/DevGuide/Observers.md",
    "chars": 7782,
    "preview": "\\cond NEVER\nDistributed under the MIT License.\nSee LICENSE.txt for details.\n\\endcond\n# Observers Infrastructure {#observ"
  },
  {
    "path": "docs/DevGuide/OptionParsing.md",
    "chars": 7441,
    "preview": "\\cond NEVER\nDistributed under the MIT License.\nSee LICENSE.txt for details.\n\\endcond\n# Option Parsing {#dev_guide_option"
  },
  {
    "path": "docs/DevGuide/ParallelExecutable/Concepts.md",
    "chars": 17036,
    "preview": "\\cond NEVER\nDistributed under the MIT License.\nSee LICENSE.txt for details.\n\\endcond\n# Parallelization in SpECTRE {#tuto"
  },
  {
    "path": "docs/DevGuide/ParallelExecutable/MinimalExecutable.md",
    "chars": 11229,
    "preview": "\\cond NEVER\nDistributed under the MIT License.\nSee LICENSE.txt for details.\n\\endcond\n# The minimal SpECTRE executable {#"
  },
  {
    "path": "docs/DevGuide/Parallelization.md",
    "chars": 46477,
    "preview": "\\cond NEVER\nDistributed under the MIT License.\nSee LICENSE.txt for details.\n\\endcond\n# Parallelization, Charm++, and Cor"
  },
  {
    "path": "docs/DevGuide/PerformanceGuidelines.md",
    "chars": 1841,
    "preview": "\\cond NEVER\nDistributed under the MIT License.\nSee LICENSE.txt for details.\n\\endcond\n# General Performance Guidelines {#"
  },
  {
    "path": "docs/DevGuide/Profiling.md",
    "chars": 11737,
    "preview": "\\cond NEVER\nDistributed under the MIT License.\nSee LICENSE.txt for details.\n\\endcond\n# Profiling {#profiling}\n\n\\tableofc"
  },
  {
    "path": "docs/DevGuide/Protocols.md",
    "chars": 6901,
    "preview": "\\cond NEVER\nDistributed under the MIT License.\nSee LICENSE.txt for details.\n\\endcond\n# Protocols {#protocols}\n\n\\tableofc"
  },
  {
    "path": "docs/DevGuide/PythonBindings.md",
    "chars": 9634,
    "preview": "\\cond NEVER\nDistributed under the MIT License.\nSee LICENSE.txt for details.\n\\endcond\n# Writing Python Bindings {#spectre"
  },
  {
    "path": "docs/DevGuide/QuickStartDockerVSCode.md",
    "chars": 12730,
    "preview": "\\cond NEVER\nDistributed under the MIT License.\nSee LICENSE.txt for details.\n\\endcond\n# Code development quick-start with"
  },
  {
    "path": "docs/DevGuide/RedistributingGridpoints.md",
    "chars": 8389,
    "preview": "\\cond NEVER\nDistributed under the MIT License.\nSee LICENSE.txt for details.\n\\endcond\n# Redistributing Gridpoints {#redis"
  },
  {
    "path": "docs/DevGuide/StaticAnalysis.md",
    "chars": 835,
    "preview": "\\cond NEVER\nDistributed under the MIT License.\nSee LICENSE.txt for details.\n\\endcond\n# Static Analysis Tools {#static_an"
  },
  {
    "path": "docs/DevGuide/TensorExpressions.md",
    "chars": 17505,
    "preview": "\\cond NEVER\nDistributed under the MIT License.\nSee LICENSE.txt for details.\n\\endcond\n# Writing Tensor Equations with Ten"
  },
  {
    "path": "docs/DevGuide/Tmp.md",
    "chars": 3501,
    "preview": "\\cond NEVER\nDistributed under the MIT License.\nSee LICENSE.txt for details.\n\\endcond\n# SFINAE {#sfinae}\n\n\\tableofcontent"
  },
  {
    "path": "docs/DevGuide/Variables.md",
    "chars": 3916,
    "preview": "\\cond NEVER\nDistributed under the MIT License.\nSee LICENSE.txt for details.\n\\endcond\n# Using Variables in SpECTRE {#vari"
  },
  {
    "path": "docs/DevGuide/WritingDox.md",
    "chars": 7266,
    "preview": "\\cond NEVER\nDistributed under the MIT License.\nSee LICENSE.txt for details.\n\\endcond\n# Writing Good Documentation {#writ"
  },
  {
    "path": "docs/DevGuide/WritingTests.md",
    "chars": 14128,
    "preview": "\\cond NEVER\nDistributed under the MIT License.\nSee LICENSE.txt for details.\n\\endcond\n# Writing Unit Tests {#writing_unit"
  },
  {
    "path": "docs/Doxyfile.in",
    "chars": 11213,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\n# Last updated for Doxygen 1.9.1\n# See https://www."
  },
  {
    "path": "docs/Examples/BbhInitialData/.gitignore",
    "chars": 81,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\n*.yaml\n*.h5\n"
  },
  {
    "path": "docs/Examples/BbhInitialData/BbhInitialData.ipynb",
    "chars": 88352,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Binary black hole initial data {#"
  },
  {
    "path": "docs/Examples/Examples.md",
    "chars": 135,
    "preview": "\\cond NEVER\nDistributed under the MIT License.\nSee LICENSE.txt for details.\n\\endcond\n# Examples {#examples}\n\n- \\subpage "
  },
  {
    "path": "docs/Examples/plots.mplstyle",
    "chars": 471,
    "preview": "# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\n# Matplotlib style suitable for notebooks that get "
  },
  {
    "path": "docs/Gallery.md",
    "chars": 10139,
    "preview": "\\cond NEVER\nDistributed under the MIT License.\nSee LICENSE.txt for details.\n\\endcond\n\n\\cond NEVER\nInstructions for addin"
  },
  {
    "path": "docs/GroupDefs.hpp",
    "chars": 30870,
    "preview": "// Distributed under the MIT License.\n// See LICENSE.txt for details.\n\n/// \\file\n/// Defines all group definitions\n\n#pra"
  },
  {
    "path": "docs/Images/Tutorials/make_multicube_figures.py",
    "chars": 12895,
    "preview": "#!/usr/bin/env python\n\n# Distributed under the MIT License.\n# See LICENSE.txt for details.\n\nimport matplotlib.pyplot as "
  },
  {
    "path": "docs/Installation/BuildSystem.md",
    "chars": 26190,
    "preview": "\\cond NEVER\nDistributed under the MIT License.\nSee LICENSE.txt for details.\n\\endcond\n# Build System - CMake {#spectre_bu"
  },
  {
    "path": "docs/Installation/Installation.md",
    "chars": 27273,
    "preview": "\\cond NEVER\nDistributed under the MIT License.\nSee LICENSE.txt for details.\n\\endcond\n# Installation {#installation}\n\n\\ta"
  }
]

// ... and 6892 more files (download for full content)

About this extraction

This page contains the full source code of the sxs-collaboration/spectre GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 7092 files (43.4 MB), approximately 11.8M tokens, and a symbol index with 38182 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!