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:
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[ 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.