Releases: sxs-collaboration/spectre
Release 2024.09.29
Upgrade instructions
From #6296 (Add epsilon when reading NumericInitialData):
Any executable that reads in numeric initial data must add the following option to the NumericInitialData:
block
NumericInitialData:
...
ObservationValueEpsilon: Auto # <-- This defaults to 1e-12
Merged pull-requests (21)
CLI & Python bindings (1):
- TransformVolumeData.py: support ElementId in kernels (#6289)
General changes (15):
- Observe worldtube position, velocity and acceleration (#6272)
- Add several common time dependent options (#6113)
- Add volume integrands for XCTS asymptotic quantities. (#6276)
- Observe min delta x in ObserveTimeStepVolume (#6301)
- Add FindRadialSurface.py (#6300)
- Add epsilon when reading NumericInitialData (#6296)
- Deprecate the Metric worldtube format in CCE (#6299)
- Add block_names function to domain and allow non-isotropic mesh where we force DG (#6302)
- Add tags used to smoothly turn on the self force (#6273)
- Add jacobian for hydro coupling source term (#6132)
- Communicate volume mesh in boundary data (#6293)
- Support time range and only combining some blocks in combine_h5 (#6306)
- Mark formaline objects noexecstack (#6309)
- Allow observing only some blocks in ObserveFields (#6305)
- Fix two Python tests (#6307)
Documentation (2):
- Add documentation and function to make debugging multiple MPI ranks easier (#6288)
- Hitchhiker’s Guide Update (#6304)
Bugfixes (1):
- Fix output for eccentricity params (#6290)
Continuous integration & deployment (2):
Contributors (10): @nikwit, @nilsvu, @guilara, @knelli2, @iago-mendes, @nilsdeppe, @pajkosmi, @kidder, @wthrowe, @SunPeike
Release 2024.09.16
Upgrade instructions
From #6212 (Control center of mass and linear momentum in initial data.):
This PR changes BinaryCompactObject
, which is used in multiple parts of the code. Now, the constructor expects the argument std::array<double, 2> center_of_mass_offset
.
From #6254 (Error if the time step becomes too small):
Input files for evolution executables now require a new MinimumTimeStep
option in the Evolution
section.
From #6247 (Add single BH control system):
Must now specify a Translation:
control system in EvolveGhSingleBlackHole
input files.
Merged pull-requests (82)
CLI & Python bindings (3):
- Add zoom to BBH rendering script (#6197)
- PlotPowerMonitors: skip filtered modes (#6206)
- Update Inspiral.yaml (#6259)
General changes (58):
- Add FromEos Option to ElectronFraction in Spec Initial Data (#6174)
- Use continued fraction semiconvergent on overflow (#6180)
- Start adding support for Kokkos and the Nvidia compiler (#6203)
- Compress OrientationMap and add create_aligned to catch default construction (#6166)
- Clarify error messages in H5 Cce constructor (#6211)
- Add more Kokkos and nvcc support (#6213)
- Update Asserts in MultiLinearSpanInterpolation (#6217)
- Fetch Kokkos if requested (#6219)
- Fix PCH issue (#6220)
- Add option for higher dimension EOSes to Spec initial data (#6218)
- Observe DimensionfulSpinVector on horizons (#6204)
- Control center of mass and linear momentum in initial data. (#6212)
- Fix clang-tidy errors in PiMonteCarlo example (#6229)
- Fix iterations test failure (#6225)
- Add nodegroup support to control system and interpolation framework (#6172)
- Numerically invert Jacobian in combined call (#6223)
- Support complex numbers in IrregularInterpolant (#6228)
- Increase timeout in ReadBoundaryDataH5 test (#6235)
- Add DevGuide for connectivity in SpECTRE (#5825)
- Project mortar data (#6230)
- Blaze: restore support for padding (#3825)
- Construct DataVector from STL containers (#5587)
- Merge implementations of Interval, Rectangle, and Brick (#5898)
- Enable ParaView on CaltechHPC (#6135)
- Support complex numbers in PartialDerivatives (#6107)
- Allow offset in Wedge transition function (#6234)
- AlignedLattice: boundary condition per direction (#6241)
- Add more support for nvcc (#6248)
- Add ScalarGaussBonnet system and functions. (#6244)
- Add a lower bound of zero for TildeTau in FixConservative for zero B (#6242)
- Add tags for ghost zone communication in MC (#6138)
- Add logical_divergence function, elliptic StrongLogical DG formulation (#6245)
- Upgrade to Apple Silicon on CI, simplify Apple Silicon installation instructions (#5973)
- Enable Wedges to have a focal offset (#6214)
- Monte Carlo time stepping action (#6198)
- Support complex numbers in DG routines (#6252)
- Fix FPEs in tests (#6265)
- Fix printing tensors in GDB on mbot (#6262)
- Add equatorial compression option for spherical torus map (#6263)
- Add nodegroup support to SW and GH execs (#6251)
- nvcc support for almost entire code base (#6249)
- Adds worldtube functions of time to
BinaryCompactObject
(#6255) - Error if the time step becomes too small (#6254)
- Add Wedge Offset Option to BCO (#6243)
- Add YlmsFromSpEC to shape time dependent options (#6114)
- Test complex elliptic DG operator (#6269)
- Add Perlmutter machine (#6267)
- Add Christoffel symbol and trace to
BackgroundQuantities
(#6270) - Add protection against negative pressure in
HybridEos
(#6221) - Add single BH control system (#6247)
- Add template for InboxTags to switch to nodegroup (#6275)
- Fix interpolation stencil misalignment in
RotatingStar
(#6260) - Limit ADM integrals observer to the finest grid. (#6286)
- Add executable to write CCE worldtube coords to a file (#6284)
- Fixes for nodegroups running on multiple nodes (#6285)
- Add serial numeric initial data loading (#6279)
- Combine Shape map calls (#6227)
- Increase a test timeout (#6292)
Documentation (5):
- Add favicon with spectre logo (#6205)
- Add link to logos (#6201)
- Document Exporter namespace (#6222)
- Add tutorial for visualizing volume data with Python, update docs (#5535)
- Document CCE grid point locations for Ylms (#6271)
Bugfixes (11):
- Fix typo in BC test. (#6215)
- Fix compatibility with Numpy 2.1 (#6232)
- Fix infinite loop time step rejection (#6250)
- Fix COM offset when starting from SpEC ID (#6257)
- Fix race condition in exporter (#6258)
- Fix CaltechHPC submit script (#6268)
- Fix colorbar in PlotSlice (#6266)
- Fix
size_t
underflow in geodesic worldtube evolution (#6277) - Prevent worldtube observing during substeps (#6274)
- Fix communication race bug in interpolation framework (#6253)
- Fix clang-tidy quirk (#6282)
Build system (1):
- Download dependencies on demand (#5956)
Continuous integration & deployment (4):
- Fix clang-tidy exit codes on CI (#6209)
- Fix macOS CI (#6216)
- Disable LB test in Burgers yaml (#6210)
- Fix clang-tidy on CI (#6226)
Contributors (17): @ctrandrsn, @nilsvu, @duetosymmetry, @wthrowe, @nilsdepp...
Release 2024.08.03
Upgrade instructions
From #6090 (Bump pybind11 version, include in Py dependencies, support pathlib.Path):
Pybind11 version 2.7+ is required now. To upgrade, run pip install -r support/Python/requirements.txt
in your Python environment.
From #6118 (Control BBH masses and spins in initial data):
If calling generate_id
or id_parameters
from InitialData.py
, you now need to specify the masses mass_a
and mass_b
separately instead of the previous mass_ratio
. Note that generate_id_command
still takes in mass_ratio
as an argument.
From #5999 (Redesign step/slab size changing):
When changing slab sizes, including step size with global time-stepping, some effects now only change the size for a single step, after which the step will revert to the previous value. These include the StepChoosers documented as limiting the step (as opposed to setting a goal) and the GTS control-system step limit.
The "Increase" StepChooser has been renamed to "LimitIncrease" to reflect this change, and "Constant" has been split into "Constant", which sets a goal, and "Maximum", which does not. Check the documentation or help text to see which type of change other StepChoosers now apply.
From #6120 (Fix unit conversions between SpECTRE and RotNS for non-polytropic EoS):
If you use RotatingStar
with polytropic EoSs, nothing changes for you, the input file works the same.
If you use some other EoS, instead of using the PolytropicConstant
input option, you should use EquationOfState
followed by the equation of state with which you would like to initialize the data.
From #6164 (Remove IWYU):
Removed include-what-you-use (IWYU) as a dependency.
Merged pull-requests (89)
CLI & Python bindings (17):
- Remove defaults from TransformVolumeData.py (#6071)
- Automate choice of some params in BBH pipeline (#5957)
- Optionally specify path to Horizons.h5 in Inspiral CLI (#6112)
- Control BBH masses and spins in initial data (#6118)
- Minor updates to PlotTrajectories (#6131)
- Set shape of initial BBH inspiral excisions to ID excisions (#6127)
- InitialData.py: allow to disable param control (#6148)
- Add experimental dashboard to monitor simulations (#6137)
- Add some pybindings (#6149)
- Maintain initial data resolution in control loop. (#6162)
- Ignore matplotlib font manager debug logging info (#6165)
- Add 3D BBH visualization script (#4656)
- Add python bindings for Index and parts of subcell code, add missing action to NewtEuler (#6185)
- Add python bindings for Hydro lib (#6186)
- Add some defaults to eccentricity control CLI (#6190)
- Add bindings for 1d h projection matrix functions (#6194)
- Factor plotting functions out of CLI (#6196)
General changes (47):
- Simplify MortarData (#6061)
- Move MortarSizeHash to Spectral and add several tests for DirectionalId (#6099)
- Use mc high ka corr in time step (#6069)
- Add is_equilibrium and is_barotropic tests to EOSes (#6104)
- Fix Test_DgSubcell for GCC 13.2 (#6119)
- Add Iago Mendes to Authors.Contributors. (#6130)
- Set initial temperature lower bound from EOS (#6121)
- Update CaltechHPC submit script (#6133)
- Add constraint preserving boundary condition product for ScalarTensor (#6122)
- Add support for 3d EOSes for Spec initial data (#6134)
- Add boost to KerrSchild (#5610)
- Add stress-energy tensor to FConstraint in ScalarTensor (#6136)
- Add script to compute eccentricity removal updates for SpECTRE ID (#5895)
- Stop storing volume time-stepper errors (#6123)
- Compute total ADM linear momentum integrands. (#6140)
- Add FromVolumeFile time dependent option (#6109)
- Add BnsInitialData System (#6054)
- Add ObserveTimeStepVolume event (#6139)
- Add 3D EoS test helper and fix bug in 2d random generators (#6030)
- Enable nodegroups with LTS and compute correct hash for boundary data (#6143)
- Redesign step/slab size changing (#5999)
- Add TaggedVariant, parsable similarly to a factory (#6096)
- Increase epsilon in MultiLinearSpanInterpolation test (#6153)
- Make MortarData a simple struct (#6147)
- Fix unit conversions between SpECTRE and RotNS for non-polytropic EoS (#6120)
- Add environment for Oscar (cluster at Brown) (#6152)
- Add DgElement collection component and CreateElementCollection action (#6083)
- Add PerformAlgorithOnElement action for nodegroup, disable slab size adjust for nodegroup (#6144)
- Communicate integration order of time-stepper (#6157)
- Add helper functions to DgElementArrayMember(Base) (#6159)
- Print ElementId in DataTooBig error (#6160)
- Add actions GetItemFromDistributedObject, SimpleActionOnElement, and PrintDgElementArray (nodegroup support) (#6161)
- Allow compiling nodegroup elements and with numerical data (errors for now) (#6158)
- Support complex numbers in serial linear solvers, add BLAS zdot (#6117)
- Exporter: allow extrapolation into excisions (#6056)
- Observe GR variables in EvolveValenciaDivClean volume data (#6163)
- Remove some old clusters (#6170)
- Observe ADM linear momentum in SolveXcts executable. (#6151)
- Measure total ADM mass in XCTS system. (#6176)
- Switch backwards input file test from 3D to 2D (#6175)
- Move registration to before import initial data in GhValenciaDivClean. (#6173)
- Update Ocean submit script (#6094)
- Test ADM integrals with a boosted Schwarzschild solution. (#6177)
- Add parallelization tutorial executable PiMonteCarlo (#6189)
- Enforce cascadelake arch on Oscar (#6193)
- Measure center of mass in XCTS system. (#6192)
- Enable ParaView on Oscar (#6195)
Documentation (7):
- Fix reference for Dormand-Prince 5 (#6102)
- Update Mbot instructions and hitchhiker's guide (#6105)
- Added detail to "--evolve" flag error message (#6111)
- Minor clarification in ConvertComposeTable documentation ([#6142](https://github.com/sxs-collaboration/sp...
Release 2024.06.18
Upgrade instructions
From #6024 (FindHorizon.py: also compute horizon quantities):
The FindHorizons3D
executable was removed. You can find horizons in 3D volume data in Python like this:
from spectre.Pipelines.Bbh.FindHorizon import find_horizon
from spectre.SphericalHarmonics import Strahlkorper
horizon, quantities = find_horizon(
h5_files, subfile_name, obs_id, obs_time,
initial_guess=Strahlkorper(l_max, m_max, radius, center)
)
mass = quantities["ChristodoulouMass"]
spin = quantities["DimensionlessSpinMagnitude"]
Merged pull-requests (29)
CLI & Python bindings (3):
- CLI for plotting trajectories of binaries (#5976)
- FindHorizon.py: also compute horizon quantities (#6024)
- Clarify PlotCce modes option (#6087)
General changes (19):
- Add more updates to CCE tutorial (#6059)
- Add fixed object radius and increase run speed (#6049)
- Added Vittoria Tommasini to Spectre Authors.Contributors list (#6068)
- Add IntegratedFunctionOfTime (#5996)
- ElementID: assert max refinement level (#6074)
- Add ComovingCharSpeedDerivative (#5516)
- Add LTS CMake Option in GenHarmBase Executables (#6057)
- Docker ubuntu 18.04 support and static execs (#6060)
- Restructure ApplyBoundaryCorrections and support AtomicBoundaryInbox (#6044)
- Add code to get common horizon coefs in ringdown distorted frame (#6065)
- Add LTS support to Adams-Moulton time steppers (#6043)
- Clarify error in InitializeJ (#6048)
- Set up ghost zones for MC (#6037)
- Improve some CLI errors and docs (#6088)
- Add threaded callbacks for functions of times (#6084)
- Mc high ka corrections (#5977)
- BBH pipeline: find horizons in initial data, write masses & spins to file (#6082)
- Support ComplexDataVector in observations (#6075)
- Add computation of light crossing time of a cell. (#6093)
Documentation (1):
- Add dev guide for AMR (#6078)
Bugfixes (2):
Continuous integration & deployment (4):
- Fix notification for new contributors (#6066)
- Avoid name conflicts between Dat and Cce tests (#6081)
- Increase a test timeout (#6089)
- Support numpy 2.0.0 (#6095)
Contributors (11): @knelli2, @vtommasini, @nilsvu, @nikwit, @markscheel, @AlexCarpenter46, @nilsdeppe, @geoffrey4444, @wthrowe, @ffoucart, @kidder
Release 2024.06.05
Upgrade instructions
From #5978 (Add CLI to plot basic control system quantities):
To use, build the CLI then run
spectre plot control-system -h
From #5985 (Write an H5::Cce file from the CharacteristicExtract execs):
The output from CCE in the reductions file should only be a Cce.cce
subfile. It won't have a bunch of .dat
files anymore.
From #6019 (Split time-stepper-history cleaning from update):
Evolution executables now need to include the Actions::CleanHistory
action after each variable update. See the modifications to the executables in this PR for suggested exact changes.
From #6038 (Update Apple Silicon docs):
The instructions for building spectre on Apple Silicon have been updated, including enabling python bindings and building with shared libraries instead of static libraries.
From #6058 (AMR: do not enforce 2:1 balance in normal direction):
In input files that use AMR, you will need to add EnforceTwoToOneBalanceInNormalDirection: true
to the list of Policies
Merged pull-requests (54)
CLI & Python bindings (7):
- Add CLI to plot basic control system quantities (#5978)
- Plot zero crossing time on log scale in PlotSize CLI (#5987)
- Plot along line log scale options (#6007)
- Add CLI for plotting CCE output data (#6011)
- Add python bindings for ModalVector (#6017)
- Status CLI: remove some backwards compatibility (#6022)
- Support SpEC initial data in BBH pipeline (#6031)
General changes (30):
- Observe walltime in elliptic solver (#5941)
- BBH Inspiral.yaml: trigger checkpoint and AH observations more often (#5979)
- Add BondiSachs output to BBH pipeline (#5990)
- Write an H5::Cce file from the *CharacteristicExtract execs (#5985)
- Decrease sizes of Time and TimeStepId (#5988)
- Expand list of TciStatus (#6005)
- Reduce the size of Mesh, Basis & Quadrature, Direction & Size, ElementId, FixedHashMap, and combine ElementId and DirectionalId (#6000)
- Enable filtering in GH LTS evolutions (#6013)
- More helper code for nodegroups, eg AtomicInboxBoundaryData, number_of_block_boundaries for an ElementId (#5997)
- Add ErrorIfDataTooBig to BBH pipeline (#6014)
- Implement reader for NuLib interaction tables (#5902)
- Update packet list on absorption in MC (#5995)
- Add increasing_substep_time_steppers list (#6021)
- BBH pipeline: load subcommands lazily (#6025)
- Add pup and move constructor to AtomicInboxBoundaryData (#6026)
- Move element distribution code from DgElementArray to free function (#6028)
- More minor code for nodegroup elements (#6027)
- Split time-stepper-history cleaning from update (#6019)
- Compress ElementId more (#6046)
- Cleanup element map and decrease size of ChildSize/MortarSize enums (#6032)
- Update how often constraints are observed in BBH inspiral pipeline (#6039)
- Improve time step too small error. (#6035)
- Add ElementLocationsReference tag, and TransformPdalForNodegroup metafunction (#6040)
- Add SendDataToElement action for nodegroup elements (#6041)
- Add DgElementArrayMember (#6042)
- Use DirectionalIdMaps for data on mortars (#6051)
- Add support for Charm 7.0.1, switch container to it, and add Charm++ license+copyright (#6050)
- Draft function to take full MC step (#5907)
- Add limit to time step of packet in high opacity region (#5998)
- AMR: do not enforce 2:1 balance in normal direction (#6058)
Documentation (6):
- Document the CCE example input file (#6015)
- Update tutorial to match
generate-xdmf
arguments (#6047) - Update CCE tutorial (#6029)
- Update Apple Silicon docs (#6038)
- Rename 3-metric as gamma in help for Kerr solution (#6055)
- Change to documentation for CaltechHPC cluster. (#6064)
Bugfixes (5):
- Fix overflow FPE in TimescaleTuner test (#5989)
- Remove extraneous factor of 2 in coord of MC packets (#5992)
- Fix Psi4 Test (#6033)
- Fix missing includes for no-PCH builds (#6034)
- Change subfile for constraint energy observation (#6062)
Build system (1):
- Fix linker errors when building with shared libs on macOS Apple Silicon (#6036)
Continuous integration & deployment (5):
- Fix broken codecov links in Readme (#5984)
- Disable code cov (#5991)
- Bump macOS GitHub CI runner version (#6006)
- Update docker github actions (#6045)
- Switch to using 4 cores in CI since GitHub supports that now (#6052)
Contributors (12): @nilsvu, @knelli2, @kidder, @wthrowe, @ffoucart, @shabibti, @ncorsobh, @nilsdeppe, @geoffrey4444, @AlexCarpenter46, @farhannaqib, @estherroselopez
Release 2024.05.11
Upgrade instructions
From #5922 (Factor out Shape options from BCO and Sphere domain):
When using the hardcoded time dependent maps in the Sphere domain, you must now also specify SizeInitialValues:
in the shape map options:
ShapeMap:
LMax: 10
InitialValues: Spherical
SizeInitialValues: Auto # <-- This is new
These are either Auto
or an array of length 3 for the value and it's two time derivatives
From #5923 (Add ability to read horizon coefs from file into shape map):
Specify reading in the shape coefficients from a file like so
ShapeMap:
LMax: 8
SizeInitialValues: Auto
InitialValues:
H5Filename: NameOfFile.h5
SubfileNames:
- NameOfCoefSubfile
- NameOfdtCoefSubfile
- NameOfd2tCoefSubfile
MatchTime: 49.8
MatchTimeEpsilon: 1e-10 # <-- Use 'Auto' for a default of 1e-12
SetL2CoefsToZero: True
Merged pull-requests (70)
CLI & Python bindings (7):
- Print available observations in CLI (#5916)
- Clarify use of 'multiple' options in some CLI functions (#5917)
- Add CLI command to plot elliptic solver convergence (#5929)
- Bind horizon finder in Python (#5919)
- Log scale in PlotSizeControl.py (#5954)
- Animate PlotSlice and PlotAlongLine (#5968)
- PlotPowerMonitors: add figsize, axis labels (#5964)
General changes (54):
- Add an observer for tracking the size of DataBox items (#5858)
- Hypersurface calculations for Klein-Gordon Cce (#5883)
- Add calculation and use of opacities in MC (#5870)
- Allow Strahlkorper construction from different frame (#5871)
- Add spinlock and switch nodelock to use it (#5911)
- Add nodegroup element support to various Events (#5912)
- BinaryCompactObject domain: support initial Kerr horizon shape (#5896)
- Add tags for worldtube iterations (#5847)
- Diffusion scattering mc (#5851)
- Make Parallel::printf atomic (#5877)
- XCTS: add Robin outer boundary conditions (#5915)
- Add a reflective boundary condition (#5624)
- Add scalar self force and derivatives calculations (#5869)
- Add functionality to Ylm IO (#5921)
- Factor out Shape options from BCO and Sphere domain (#5922)
- Uncomment MC testing code (#5928)
- Add RotScaleTrans Map to BCO (#5854)
- XCTS: output spatial Christoffels (#5918)
- Normalize subfile path in H5 lib (#5924)
- Add nodegroup tags and DgElementArrayMemberBase class (#5936)
- Tune BBH ID input file a little (#5940)
- Remove TOV sanity check for RHS evaluation (#5934)
- BBH ID: compute initial orbital params from PN (#5933)
- Mbot fix paraview (#5946)
- Change translation control to work like SpEC (#5944)
- A couple type traits & SetTerminateOnElement action (#5945)
- Correct queue name in submit scripts (#5949)
- Print remark when AH finder fails for verbosity >= quiet (#5890)
- Add 0th order acceleration terms (#5860)
- Move Swsh classes and functions to their own directory (#5942)
- Add cartesian_to_spherical routines (#5948)
- Write data synchronously in CCE for monotomic times in output (#5950)
- Add actions ReceiveDataForElement, StartPhaseOnNodegroup, and SpawnInitializeElementsInCollection (#5958)
- Calculation of proper and coordinate volume needed for MC (#5904)
- Add hydro coupling bookkeeping to emission function in MC (#5903)
- Invoke executables on interactive nodes with mpirun (#5939)
- Bookkeeping of hydro-mc coupling in packet evolution (#5920)
- Parallelize block_logical_coords with OpenMP if enabled (#5947)
- Add Sarah Habib to metadata (#5965)
- Add ability to read horizon coefs from file into shape map (#5923)
- Handle substeps in LTS error control (#5943)
- Unconstrain numpy version (#5962)
- Binary Input File Tuning (#5953)
- Add iterative scheme to worldtube (#5855)
- Fix gcc warning about infinite recursion (#5970)
- Switch from std::tuple to evolution::dg::BoundaryData class (#5969)
- Add IrrotationalBNS Pointwise Functions (#5880)
- Update documentation and env for mbot (#5974)
- Add coupling to scattering (#5927)
- Correct tildeB sources and fluxes in ValenciaDivClean (#5960)
- Fix CaltechHPC environment (#5959)
- Add 1st order acceleration terms (#5861)
- Update contributor status in metadata (#5981)
- Add Cce H5 file type (#5963)
Documentation (3):
- Add IMEX tutorial (#5759)
- Document extract-dat to standard output (#5930)
- Fix beginners guide docker instruction (#5975)
Bugfixes (2):
Build system (3):
- Improve static linking of GSL, HDF5, libgfortran, & libquadmath. Add CMake & executable code to print licenses and copyrights of 3PLs (#5961)
- Bundle brigand and libsharp in externals (#5967)
- Static libsz and libaec, switch to HDF5::HDF5 in cmake, rename ENABLE_SPECTRE_DEBUG to SPECTRE_DEBUG in cmake, fix incorrect CCE assert (#5972)
Continuous integration & deployment (1):
- Bump versions of GitHub actions (#5980)
Contributors (14): @wthrowe, @kidder, @Sizheng-Ma, @ffoucart, @knelli2, @nilsdeppe, @nilsvu, @nikwit, @jyoo1042, @AlexCarpenter46, @isaaclegred, @shabibti, @geoffrey4444, @norafl
Release 2024.04.12
Merged pull-requests (26)
CLI & Python bindings (3):
- PlotSlice: add default title (#5872)
- PlotPowerMonitors: allow only integer ticks for modes (#5894)
- CleanOutput.py: support glob patterns (#5905)
General changes (17):
- Newtonian Euler: analytic prescription in boundary condition and use runtime EOS in NE (#5867)
- Use 2d EOS in Newtonian Euler, stop using EOS base tag in Newtonian Euler (#5884)
- Add derivatives of Kerr Schild quantities (#5865)
- Add Random StepChooser for debugging (#5866)
- Adjust timing of dense output checks (#5873)
- Add spins to BBH ID input file (#5868)
- Store slab-size change info in DataBox instead of inboxes (#5886)
- Generalize LTS communication handling (#5864)
- Do not serialize compute items of a DataBox (#5891)
- Move NeighborPackagedData into cpp files & allow volume tags in dg boundary terms (#5888)
- Observe KleinGordonPsi at future null infinity (#5885)
- Always enable time-dependent maps (#5878)
- Finish supporting volume tags in boundary terms (#5899)
- Add pretty-printer for Variables, VectorImpls, gsl::span, Tensor for GDB (#5879)
- Add ability to specify initial state for size control (#5889)
- Error if doing barycentric interpolation for FiniteDifference (#5897)
- Add option for monotonic AdamsMoulton dense output (#5900)
Bugfixes (2):
Build system (1):
- Fix pvpython support, specifically on mbot this is needed for the CLI (#5906)
Continuous integration & deployment (3):
- Fix workflow to deploy containers on release (#5876)
- Increase test timeout factor for clang-14 debug build (#5887)
- Fix workflow to deploy release container (#5908)
Contributors (8): @nilsdeppe, @nilsvu, @nikwit, @kidder, @wthrowe, @Sizheng-Ma, @isaaclegred, @knelli2
Release 2024.03.19
Upgrade instructions
From #5715 (Add exporter library):
The Python module Visualization.InterpolateToCoords
has moved to IO.Exporter.InterpolateToPoints
. It has a slightly different (easier) interface, is implemented in C++ now, and supports parallelization, which should make it considerably faster.
From #5725 (Update CaltechHpc environment files):
On CaltechHPC, the environment file caltech_hpc_gcc.sh
has been renamed to caltech_hpc_gcc_skylake.sh
.
There is also a new environment file
caltech_hpc_gcc_icelake.sh
From #5779 (Use multiple highest modes for Persson TCI and remove initial data TCI):
All input files for executables using DG-FD (subcell) should make following changes in SpatialDiscretization-DiscontinuousGalerkin group
- Remove
InitialData
group, since we are not using initial data TCI anymore. - Add
PerssonTci
group, to whichPerssonExponent
is moved as theExponent
option. - In the
PerssonTci
group, a new option namedNumHighestModes
is added. This enables users to control how many highest modes to be left in the filtered solution of which norm is computed in the Persson TCI. Use 1 by default since this is the configuration that we have used so far.
Below is an example.
Before:
Subcell:
RdmpDelta0: 1.0e-7
RdmpEpsilon: 1.0e-3
PerssonExponent: 4.0
InitialData:
RdmpDelta0: 1.0e-7
RdmpEpsilon: 1.0e-3
PerssonExponent: 4.0
After:
Subcell:
PerssonTci:
Exponent: 4.0
NumHighestModes: 1
RdmpDelta0: 1.0e-7
RdmpEpsilon: 1.0e-3
From #5803 (Enforce limits on refinement levels and resolution during AMR):
In input files, the you will need to specify a new sub-option to the Amr Policies that specifies the
Limits with sub-options RefinementLevel and NumGridPoints. The suggested value for these two options is Auto unless you want to limit refinement further.
From #5815 (Allow calling the TCI on the FD grid only every N steps, to wait M steps after rollback, and/or have K clear TCIs before going back to DG):
The TCI options now look like:
Subcell:
TroubledCellIndicator:
PerssonTci:
Exponent: 4.0
NumHighestModes: 1
RdmpTci:
Delta0: 1.0e-7
Epsilon: 1.0e-3
FdToDgTci:
NumberOfStepsBetweenTciCalls: 1
MinTciCallsAfterRollback: 1
MinimumClearTcis: 1
AlwaysUseSubcells: false
UseHalo: false
OnlyDgBlocksAndGroups: None
SubcellToDgReconstructionMethod: DimByDim
FiniteDifferenceDerivativeOrder: 2
Specifically, all the TCI-related options have been moved into a group called TroubledCellIndicator
. The RDMP TCI options are now also in their own group. A new FdToDgTci:
group controls when we try to go back to DG, e.g. every N steps, to wait M steps after rollback, or to have at least K clear TCIs before going back to DG. This is to allow reducing TCI overhead on FD and to allow additional smoothing by the FD solver before going back.
From #5817 (Add AMR to elliptic executables):
You'll have to add an Amr
section to elliptic input files, as well as a PhaseChangeAndTriggers
section to trigger AMR. See the input files in this PR for examples.
Merged pull-requests (109)
New features (1):
- Add exporter library (#5715)
CLI & Python bindings (4):
- Add CLI tool to plot volume data along a line, group plotting commands in CLI (#5749)
- Add domain rendering script (#5735)
- Add CLI to plot memory monitors (#5807)
- Add PlotSlice command (#5805)
General changes (74):
- Add solution of Einstein's equations for a generic gauge plane wave (#5712)
- Add RotScaleTrans Map and Tests (#5696)
- Add mbot as new machine (#5745)
- Small changes for elliptic AMR (#5736)
- Terminate parallel GMRES when it diverges (#5742)
- Fix oscillations in Heun2 IMEX dense output (#5734)
- Databox runtime retrieval (#5709)
- Limit initial time step to avoid control system deadlocks (#5732)
- Update CaltechHpc environment files (#5725)
- Python 12 fixes (#5744)
- Introduce AMR policies (#5765)
- Add uniform p-refinement criterion (#5754)
- Update TOV star test input file with more stable parameters. (#5753)
- Make Auto parsing failure print the Label (#5766)
- Create worldtube test library (#5774)
- Prevent NumGridPointsAndGridSpacing element dist when using GTS (#5769)
- Update cluster install docs (#5770)
- Monte carlo packets (#4089)
- Construct Klein-Gordon Cce data on the first hypersurface (#5752)
- Use multiple highest modes for Persson TCI and remove initial data TCI (#5779)
- Add an action for Klein-Gordon CCE worldtube data communication (#5717)
- Add TaggedTuple support to pypp (#5748)
- Switch to C++ 20 (partially) (#5747)
- Fix an unchaged filtering extent in PerssonTci (#5783)
- Increase max spectral basis functions from 12 to 20 (#5163)
- Add EvolvedPosition/Velocity Tags (#5775)
- Fix truncation error estimate for functions with symmetry (#5767)
- Allow random hp AMR for testing (#5781)
- Factor out linear elliptic solver algorithm (#5782)
- Enables AMR to be used in GH executables with one or two black holes (#5757)
- Add some elliptic AMR projectors (#5721)
- FD TCI call counters (#5792)
- Mc logical coordinates (#5771)
- Update ocean charm module for move to C++20 (#5806)
- Add rotation, expansion and translation maps to Sphere domain (#5758)
- Add
InitialPositionVelocity
tag (#5776) - Remove p-refinement from punctures AMR criterion (#5796)
- Re-initialize Schwarz subdomain before each solve (#5802)
- Enforce limits on refinement levels and resolution during AMR (#5803)
- Add error if RotNS file does not exist (#5804)
- Observe elastic stress (#5809)
- Add
UpdateAcceleration
mutator (#5777) - Replace Kerr-Schild with Spherical-Kerr-Schild for FishboneMoncriefDisk (#5800)
- Add Rk3Pareschi IMEX time stepper (#5760)
- Wrap RotatingStar to be usable in GhValenciaDivClean (#5790)
- Support a different elastic material in each block (#5737)
- Terminate parallel Newton-Raphson on error (#5813)
- Allow calling the TCI on the FD grid only every N steps, to wait M steps after rollback, and/or have K clear TCIs before going back to DG (#5815)
- Add InverseJacobianInertialToFluidCompute (#5811)
- Fix OptimizerHacks for clang 17 (#5823)
- Add some self-force option tags ([#5785](htt...
Release 2024.02.05
Upgrade instructions
From #5655 (Move raise_or_lower_index
and trace
to Tensor lib):
The functions raise_or_lower_index
and trace
are now declared in DataStructures/Tensor/EagerMath/
.
From #5656 (Simplify elliptic DG formulation):
In elliptic systems remove the auxiliary_fields
and auxiliary_fluxes
. Instead, formulate your fluxes in terms of the partial derivatives of the systems fields. See the FirstOrderSystem
protocol for details.
From #5691 (Add a radial expansion to the BBH ID pipeline):
For the spectre bbh generate-id
command, you must now also specify the radial expansion velocity with --radial-expansion-velocity/-a
.
From #5684 (Solve for psi-1 in XCTS system):
In XCTS input files replace ConformalFactor
and LapseTimesConformalFactor
with ConformalFactorMinusOne
and LapseTimesConformalFactorMinusOne
in analytic boundary conditions and error observations.
Merged pull-requests (62)
CLI & Python bindings (3):
- Add a radial expansion to the BBH ID pipeline (#5691)
- Add 'status' CLI formatter for elliptic executables (#5701)
- Add CLI to plot size control diagnostics (#5723)
General changes (47):
- Add a static single-producer single-consumer queue (#5659)
- Worldtube buffer updater for Klein-Gordon (#5646)
- Add Kennedy and Carpenter's IMEX time steppers (#5652)
- Move
raise_or_lower_index
andtrace
to Tensor lib (#5655) - Simplify elliptic DG formulation (#5656)
- Move frame transformations to Tensor lib, add function to transform flux tensors to logical frame (#5654)
- Add function for the spacetime derivative of goth(g) (#5648)
- Add serialization-versioning test utility (#5651)
- Convert Tags::TimeStepper to not be a base tag (#5657)
- Observe BBH individual horizons in distorted frame (#5675)
- Add IMEX SolveImplicitSector mutator (#5653)
- Switch elliptic DG to a primal formulation (#5667)
- Add truncate_* methods to ThreadsafeList (#5663)
- Support weak form in elliptic DG (#5679)
- Worldtube data manager for Klein-Gordon CCE (#5662)
- Add BondiSachs and deadlock analysis to SingleBH (#5680)
- Remove gamma1 from excision observations (#5665)
- Use a central list for reconstruction tags in G(H)RMHD (#5686)
- Simplify Riemann solver pypp testing (#5687)
- Combine time and spatial derivative in spacetime_deriv_of_goth_g into… (#5678)
- Remove 2nd order worldtube evolution (#5666)
- Add spacetime Christoffel symbols to Kerr-Schild spacetime (#5688)
- Update copyright year to 2024 (#5693)
- Boundary component for Klein-Gordon CCE (#5683)
- Remove control system Event (#5682)
- Automate BBH pipeline (#5685)
- Generalize
InertialParticlePosition
compute tag (#5677) - Solve for psi-1 in XCTS system (#5684)
- Change worldtube scheme to inertial frame (#5668)
- Add PolarMagnetizedFmDisk to list of initial data (#5700)
- Use jemalloc on Caltech HPC (#5698)
- Add function to create a spacetime tensor from time and spatial ones. (#5692)
- Add Klein-Gordon CCE evolution component, metavariable, and executable (#5697)
- Reimplement array_allocation_tags (#5702)
- Add geodesic coordinate acceleration function (#5681)
- Add SettleToConstantQuaternion (#5703)
- Optimize FixConservatives (#5633)
- Remove boost::rational from FractionUtilities test (#5707)
- Add IMEX actions (#5676)
- Modify check_with_random_values (#5710)
- Initialize Klein-Gordon CCE variables (#5704)
- Add IMEX ImplicitDenseOutput mutator (#5711)
- Dump smoothing timescale in size control (#5720)
- Instantiate inertial->distorted for strahlkorper_in_different_frame (#5718)
- Support h-refinement in Variables AMR projector, more minor AMR changes (#5716)
- Add puncture field for arbitrary geodesic orbits (#5689)
- Move test into anonymous namespace (#5733)
Documentation (2):
- Improve documentation of EvenlySpaced TimeSequence (#5708)
- Update documentation of Persson TCI (#5713)
Bugfixes (6):
- Remove duplicate entries in clang-format. (#5690)
- Update Catch module on Wheeler (#5695)
- Fix ordering of IncludeCategories in clang-format (#5699)
- Handle overflow in ContinuedFractionSummer (#5714)
- Small Tov documentation typos (#5719)
- Fix reading input files with empty metadata (#5728)
Build system (1):
- Fix compilation with clang 17 (#5726)
Continuous integration & deployment (3):
- Fix Spack post-release workflow (#5661)
- Increase a test timeout (#5694)
- Update Intel SDE used for Arch tests (#5706)
Contributors (12): @nilsdeppe, @Sizheng-Ma, @nilsvu, @wthrowe, @ncorsobh, @geoffrey4444, @knelli2, @nikwit, @kidder, @jyoo1042, @pajkosmi, @yoonso0-0
Release 2023.12.08
Upgrade instructions
From #5557 (Add option to output subdomain matrices in elliptic solver):
In input files for elliptic executable, change the option ExplicitInverse
to:
ExplicitInverse:
WriteMatrixToFile: None
You can set this option to a filename to output the subdomain matrices for debugging or analysis.
From #5562 (Add Wcns5z for ghmhd, add Enable options to LimitLorentz & FixConservatives):
Need to add
Enable: false # Only needed when not using Kastaun for recovery
(or true
) to FixConservatives
and LimitLorentzFactor
in input files.
From #5561 (Bump min Catch2 version to 3.4.0):
Building unit tests requires Catch2 v3.4.0 now. See the Catch2 docs for installation instructions (it's a standard CMake configure-build-install).
From #5542 (Clean up Sphere TimeDependentOptions):
To use hard coded time dependent maps with the Sphere domain creator, you no longer specify the following option
TimeDependentMaps:
...
SizeMap: # <-- Don't specify this
InitialValues: [...]
From #5573 (Enable p-refinement for ScalarWave executables):
ScalarWave input files need to have additional options, as well as now using global time-steppers instead of local time-steppers. (See the diff of tests/InputFiles/ScalarWave/PlaneWave1D.yaml
)
From #5583 (Allow timescale tuner to not decrease timescale):
If your executable has a Size control system, remove the DecreaseThreshold:
and DecreaseFactor:
options from the TimescaleTuner of the Size control systems. Note that you should keep these options for the SmootherTuner
option of Size control.
From #5608 (Support Gauss points in elliptic DG schemes):
In elliptic executables add the Discretization.DiscontinuousGalerkin.Quadrature
option. Set it to GaussLobatto
to keep the previous behavior.
From #5593 (Limit time step to prevent control-system deadlocks):
Executables with control systems and global time-stepping will now work with any time stepper, not just AdamsBashforth. When using a non-AdamsBashforth time stepper the step size will gradually decrease, so you should include the ChangeSlabSize event to increase it again.
From #5498 (Update GrMhd Analytic Boundary Conditions):
Gh-based initial data (which uses the WrappedGr wrapper class to add Gh) will require a wrapper GeneralizedHarmonic
in input files. For example:
TovStar:
would become
GeneralizedHarmonic(TovStar):
From #5641 (Add option for runtime element distribution):
Evolution and elliptic executables must now have a new option in the input file called
Parallelization:
ElementDistribution: NumGridPoints
An exception to this are the *CharacteristicExtract
executables. They do not need this new option.
From #5619 (Use wedge shape map transition in BCO domain):
For the BinaryCompactObject
domain creator, you must add the following two options to each of the shape map blocks
BinaryCompactObject:
...
TimeDependentMaps:
...
ShapeMapA:
...
TransitionEndsAtCube: true
ShapeMapB: #Same as A
From #5626 (Make GrMhd and GhMhd executables use runtime initial data. ):
All Initial Data will now be identified by InitialData
in the input file, rather than AnalyticSolution
, AnalyticData
, or InitialData
.
The EoS must be explicitly identified in the input file for all evolutions. To achieve "legacy" behavior, of using the EoS associated with the Initial data, specify
EquationOfState: FromInitialData
This will extract the EoS from the initial data and promote it to a 3-d EoS for evolution.
Merged pull-requests (89)
CLI & Python bindings (3):
- Add skeleton BBH pipeline (#5546)
- Add Render3D command with simple "clip" rendering (#5507)
- Add -t abbreviation to schedule cli (#5644)
General changes (70):
- Allow DenseTriggers mutable access to the DataBox (#5533)
- Add expiration_after method to FunctionOfTime (#5544)
- Remove unnecessary tags in ForceFree FD reconstructors (#5555)
- Add TCI options to FFE subcell and fix TCI criteria for TildeQ (#5552)
- Add 3D EoS Promotion (#5554)
- Radially falling floor EoS call (#5556)
- Add option to output subdomain matrices in elliptic solver (#5557)
- Add Wcns5z for ghmhd, add Enable options to LimitLorentz & FixConservatives (#5562)
- Add executable summarizing time stepper properties (#5559)
- Pass around neighbor meshes when determining AMR decisions (#5558)
- Add an analytic data PolarMagnetizedFmDisk (#5563)
- Explicitly state CCE ordering (#5567)
- Clean up Sphere TimeDependentOptions (#5542)
- Make GrMhd system compatible with 3D EoS (#5479)
- Allow events to mutate the DataBox (#5565)
- Remove ASSERTION_TEST and ERROR_TEST macros (#5572)
- Use smaller values in scalar wave char test (#5571)
- Allow multiple post interpolation callbacks (#5569)
- Make magnetic field configuration runtime choice (#5548)
- Enable p-refinement for ScalarWave executables (#5573)
- Revert "Use Catch2 for benchmarks" (#5582)
- Allow timescale tuner to not decrease timescale (#5583)
- Store control-system measurement times in the DataBox (#5566)
- fix ocean_gcc.sh (#5592)
- CCE dox and HDF5 error improvements (#5580)
- Add constraint energy normalization in GH (#5543)
- Add change_all_valences tensor metafunction (#5590)
- Add more extract_point overloads and add inverse (#5596)
- Observe more quantities in SolvePoisson (#5604)
- Move ProjectToBoundary from Evolution to DG (#5594)
- Use quadratic extrapolation for AHfinder guess (#5598)
- Create AnalyticSolution in elliptic boundary condition (#5603)
- Add transform for History (#5589)
- Add function for contracting the first N indices of two Tensors (#5602)
- Support domain deformations in elliptic solver (#5575)
- Improve floating-point behavior in wedge map (#5606)
- Support Gauss points in elliptic DG schemes (#5608)
- Add split_tuple function (#5613)
- Clarify debug prints in control system trigger (#5615)
- Add type Weyl Type D scalar and weyl electric to BBH executable (#5609)
- Add NeighborPackagedData to ForceFree subcell (#5568)
- Enable different upper and lower BCs for Brick. (#5611)
- C++20 compatibility (#5550)
- Add ErrorIfDataTooBig Event (#5614)
- Add the exact Wald solution to ForceFree system (#5527)
- Add compute tag for the second tim...