Skip to content

Releases: sxs-collaboration/spectre

Release 2022.12.16

16 Dec 16:09
Compare
Choose a tag to compare

Upgrade instructions

From #4406 (Split boundary conditions out of Domain):

Boundary conditions have moved. They are not stored in the Domain anymore but separately in domain::Tags::ExternalBoundaryConditions in the global cache.

From #4455 (Build Python CLI with click, rich and shell completion, add clean-output as an example):

Added the Python dependencies click and rich. Update your Python environment with pip install -r support/Python/requirements.txt. Make sure you are working in a Python venv before installing packages. Alternatively, you can set BOOTSTRAP_PY_DEPS=ON in your CMake configuration to have CMake manage the Python dependencies automatically in the build directory.

From #4456 (clean up and rename Initialization tags):

  • Do not add ResourceInfo, AvoidGlobalProc0, or Singletons tags to tag lists.
  • If you have an input file, you need to specify a ResourceInfo option, and if the executable has Singletons, you must specify the Singletons sub-option. To keep prior behavior use:
ResourceInfo:
  AvoidGlobalProc0: false
  Singletons: Auto
  • If you have specified explicit options for a singleton, you will need to do so for all singletons.

From #4477 (Add GenerateXdmf.py to Python CLI):

Invoke spectre generate-xdmf -h to run the GenerateXdmf.py script.

From #4437 (Dump Interpolator volume data on failure):

If your executable uses the Interpolator parallel component, you'll need to add the following block to your input file:

Interpolator:
  DumpVolumeDataOnFailure: false

From #4475 (Add H5 extraction scripts to Python CLI):

  • Invoke spectre extract-input -h to run the ExtractInputSourceYamlFromH5.py script.
  • Invoke spectre extract-dat -h to run the ExtractDatFromH5.py script.

From #4508 (Add PlotDatFile.py to Python CLI and refactor):

Invoke spectre plot-dat -h to run the PlotDatFile.py script.

Merged pull-requests (60)

New features (2):

  • Build Python CLI with click, rich and shell completion, add clean-output as an example (#4455)
  • Add piecewise polytrope EoS (#4465)

General changes (50):

  • Initialize background metric variables when using runtime initial data (#4377)
  • Add DG time derivative to ForceFree system (#4435)
  • Update sphere domain creator (#4394)
  • Split boundary conditions out of Domain (#4406)
  • Multi-linear tabulated interpolation (#4243)
  • Optionally bootstrap missing Py dependencies (#4445)
  • Have SpECTRE control system act more like SpECs control system (#4254)
  • Make some error messages more verbose (#4452)
  • Add extra use case to UniformCylindricalSide (#4453)
  • Use ObserverInverseJacobian in GaugeAndDerivative tag (#4454)
  • Add SetPiFromGauge mutator to GH system (#4449)
  • clean up and rename Initialization tags (#4456)
  • Use runtime gauge condition in GH (#4450)
  • Add filters for FD, e.g. KO dissipation (#4443)
  • Add abstract base class for GRMHD initial magnetic fields (#4463)
  • Don't override functions of time in BBH (#4458)
  • Add poloidal initial magnetic field to GRMHD (#4476)
  • Factor out detail namespace in ComputeHorizonVolumeQuantities (#4320)
  • Amend publication policies and metadata (#4479)
  • Use Auto singleton info holder in singleton pack (#4470)
  • Add GenerateXdmf.py to Python CLI (#4477)
  • Reduce recomputations in damped harmonic (#4478)
  • Eliminate remaining redundant computation from damped harmonic (#4480)
  • Allow specifying which tags to reconstruct and support BCs in GH+GRMHD (#4425)
  • Enable Pybindings by default (#4459)
  • Allow sphere target to hold multiple spheres of different radii (#4460)
  • Loosen d_a H_b tolerance in GH DuDt (#4497)
  • Fix tags in GHMHD dirichlet analytic boundary condition (#4493)
  • Make constructor explicit in GH CP BC (#4499)
  • Factor GRMHD HydroFreeOutflow FD code into impl (#4502)
  • SetPiFromGauge for GH+GRMHD (#4495)
  • Ghmhd filter options (#4498)
  • Add missing newline to ExtractionRadius print in CCE (#4504)
  • Add subcell observer Jacobian tags (#4494)
  • Add GHMHD boundary condition ghost data (#4481)
  • FixedSpeedCubic: add stream operator. (#4490)
  • Add KO dissipation filter to GRMHD (#4500)
  • Add action to initialize DataBox items (#4486)
  • Add DirichletFreeOutflow to GHMHD (#4507)
  • Add NeighborPackagedData to GHMHD (#4506)
  • Cleanup gh execs and pass LTS bool in as template parameter (#4492)
  • Add support for Variables being passed to TimeDerivativeTerms (#4496)
  • Add CharmSimplifyTraces.py to Python CLI (#4511)
  • GHMHD pass variables to time derivative (#4503)
  • Dump Interpolator volume data on failure (#4437)
  • Add GHMHD fd time derivative (#4509)
  • Add GHMHD ConstraintPreservingFreeOutflow BC (#4512)
  • Add H5 extraction scripts to Python CLI (#4475)
  • Add PlotDatFile.py to Python CLI and refactor (#4508)
  • Make Enthalpy EoS improvements (#4483)

Bugfixes (8):

  • Installation dox: refer to new docker containers. (#4471)
  • Decouple metavariables and LTS in step chooser simple tags (#4466)
  • Fix bug in UpdateU (#4485)
  • Fix bugs in GRMHD NeighborPackagedData test (#4501)
  • Fix types in GHMHD reconstruction (#4505)
  • Interpolator only recognizes targets that use the Interpolator (#4451)
  • Update Test_FileSystem to pass on macOS (#4517)
  • Fix docs about GenerateXdmf (#4516)

Contributors (12): @yoonso0-0, @knelli2, @nilsvu, @ermost, @markscheel, @nilsdeppe, @kidder, @nikwit, @gsb76, @pajkosmi, @geoffrey4444, @isaaclegred

Release 2022.12.02

02 Dec 19:36
Compare
Choose a tag to compare

Upgrade instructions

From #4376 (Split IO libs):

Instead of linking with IO, check if you should link with H5 or Observer instead.

From #4373 (Streamline ElementVolumeData):

  • TensorData.*hpp (with TensorComponent and ElementVolumeData) has moved to IO/H5/.
  • The constructor of ElementVolumeData has changed. The order of arguments is now: element_name, components, extents, basis, quadrature. There's also a convenience constructor that takes an ElementId, components, and a mesh.

From #4413 (Remove unused template parameter for DgDomain initializer):

If you passed in two or more template parameters to evolution::dg::Initialization::Domain, eliminate the second one.

From #4417 (Databox creation cleanup):

If you use db::create_from, just use db::create

From #4412 (Remove Initialization::Action::RemoveOptionsAndTerminatePhase):

  • Remove type alias initialization_tags_to_keep
  • Change Initialization::Actions::RemoveOptionsAndTerminatePhase to Parallel::Actions::TerminatePhase>

From #4419 (Drop Python 2 support):

If you're using Python 2, stop doing that. Upgrade to Python 3.7+ and never look back.

From #4430 (Remove initial time databox tag):

Replace Initialization::Tags::InitialTime with ::Tags::Time

Merged pull-requests (73)

New features (1):

  • Core-collapse Supernova Profile Readin (#4350)

General changes (59):

  • Split IO libs (#4376)
  • Dump volume data from interpolator upon failure (#4280)
  • Make Test_FileSystem independent of working tree (#4368)
  • Add ForceFree to the ctest labels (#4384)
  • Raise SIGTRAP in Blaze when in debug mode (#4371)
  • Clean up StepChooser interface (#4372)
  • Streamline ElementVolumeData (#4373)
  • Support runtime initial data and boundary conditions in ScalarWave (#4336)
  • Add ObserveLineSegment callback (#4295)
  • Use ccache module on Wheeler (#4386)
  • Move functions into anonymous namespaces and similar (#4381)
  • Parse ElementId from string representation (#4380)
  • Make tests for ExtractDatFromH5 in build directory (#4392)
  • Cleanup code coverage and document it (#4385)
  • Add tags and fluxes to the ForceFree evolution system (#4344)
  • Write domain into H5 volume files (#4378)
  • Compute gauge constraint terms last in GH RHS (#4333)
  • Allow assigning a subset of tags to a Variables (#4332)
  • Add runtime initial data to GH (#4337)
  • Add XSIMD and Blaze interoperability (#4390)
  • Increase tolerance of HydroFreeOutflow test (#4389)
  • Add largest characteristic speed to FFE system (#4346)
  • Add periodic boundary condition to ForceFree system (#4400)
  • Don't print warning about cleanup phase in DistObj (#4411)
  • Add Psi4 to GeneralRelativity (#4317)
  • Prepare for serializing domains into output files (#4407)
  • Allow correcting only a subset of variables when rolling back (#4339)
  • Compute derivatives of spacetime variables in GH+GRMHD (#4327)
  • Remove unused template parameter for DgDomain initializer (#4413)
  • Damped harmonic cleanups, part 1 (#4410)
  • Add function half_pi_and_phi_two_normals (#4414)
  • Print error messages better during cleanup (#4402)
  • Initialize tuners properly for rotation (#4395)
  • Print walltime at phase change (#4423)
  • Compute source terms in the ForceFree evolution system (#4351)
  • Add largest char speed for GH+GRMHD (#4409)
  • Databox creation cleanup (#4417)
  • Remove Initialization::Action::RemoveOptionsAndTerminatePhase (#4412)
  • Use TimeAndPrevious tag for control sys IntrpTargetTags (#4396)
  • Make UniformRotation time dependence just Rotation (#4421)
  • Choose if control systems are active at runtime (#4416)
  • Drop Python 2 support (#4419)
  • Add compute tag for subcell mesh (#4431)
  • Store EOS in global cache (#4426)
  • Add some resource info into the GlobalCache (#4294)
  • New epsilon in ZeroCrossingPredictor test. (#4436)
  • Add analytic gauge condition to GH (#4405)
  • Remove initial time databox tag (#4430)
  • Add DirichletAnalytic boundary condition for GHMHD (#4427)
  • Remove db::remove (#4424)
  • Add boundary correction base class for ForceFree system (#4429)
  • Add function to print diagnostic info related to the domain (#4428)
  • Add UniformCylindricalSide. (#4247)
  • List Py dependencies in a requirements.txt file (#4432)
  • Add Shape TimeDependence to Creators (#4398)
  • Add UniformCylindricalFlatEndcap. (#4267)
  • GHMHD system class cleanup: use largest char speed and remove cyclic include (#4444)
  • Gauge observer tags (#4442)
  • Add dispatch function for gauge conditions (#4441)

Bugfixes (13):

  • Fix #4374 (#4375)
  • Fix ObserveLineSegment (#4388)
  • Avoid roundoff error in boost odeint in QuatFoT (#4391)
  • Don't dump volume data from the interpolator upon failure (#4404)
  • Fix GenerateXdmf for #4378 (#4403)
  • Ensure random_lapse is not too close to zero (#4401)
  • Fix exception-safety issues with DataBox and locks (#4420)
  • Fix output errors on subcell (#4418)
  • Fix issue with PY_DEV_MODE, consistently pass PYTHONPATH to unit tests (#4434)
  • Fix DistributedObject for tracing (#4439)
  • Fix depth when simplifying charm traces (#4446)
  • Increase a test timeout (#4448)
  • Add newline to InitializeJ print statement (#4447)

Contributors (12): @nilsvu, @knelli2, @wthrowe, @yoonso0-0, @nilsdeppe, @nikwit, @pajkosmi, @geoffrey4444, @AlexCarpenter46, @kidder, @markscheel, @gsb76

Release 2022.11.15

15 Nov 17:00
Compare
Choose a tag to compare

Upgrade instructions

From #4163 (Introduce electron fraction to GrMhd modules):

The electron fraction needed to be added to all tests, and interfaces involved GrMhd routines. This might affect existing codes calling any GrMhd function that is not included in the development branch.

From #4299 (Remove CCE dependency from Interpolation):

src/ParallelAlgorithms/Interpolation/Callbacks/SendGhWorldtubeData.hpp has been moved to src/Evolution/Systems/Cce/SendGhWorldtubeData.hpp

From #2690 (Remove redundant SPECTRE_MACOSX_MIN option):

If you're building on macOS, check if you are configuring CMake with the MACOSX_MIN option. If you do, replace it with the standard CMAKE_OSX_DEPLOYMENT_TARGET. You may also want to use this option if you are getting "built for newer macOS version than being linked" warnings.

From #4357 (Gh mesh velocity damping):

The generalized-harmonic time derivative and characteristic speeds now take additional parameters because of the newly introduced dependence on the mesh velocity.

Merged pull-requests (85)

New features (1):

  • Add minimal executable that finds apparent horizons in numeric volume data (#3819)

General changes (73):

  • Change tolerance in Test_PredictedZeroCrossing. (#4268)
  • Add structured bindings support to Variables (#4265)
  • Updating Cce input file to have higher LMax and finer time sampling (#4262)
  • Add orient functions for DataVectors (#4192)
  • Allow custom Metavariables in DG boundary condition tests (#4258)
  • Add positivity-preserving adaptive order reconstruction (#4167)
  • Add more documentation to YlmSpherepack. (#4264)
  • Add summation by parts FD derivative operators (#4207)
  • Compute trace Christoffel from GH vars better (#4259)
  • Add Shape control system (#4232)
  • Add GH Gauge base class and Harmonic derived class (#4256)
  • Add cell-centered FD derivatives (#4206)
  • Make db::const_item_type public, add observer tags for Jacobians and mesh velocity (#4273)
  • Add clangd cache to git ignore files (#4281)
  • Work towards eliding unnecessary DG-FD projects (#4178)
  • Add more overloads of to_different_frame (#4272)
  • Avoid unnecessarily communicating new slab sizes (#4279)
  • Add and update profiling documentation. (#4186)
  • Loosen tolerance on control sys shape test (#4289)
  • Increase timeout for product of sinusoid tests (#4292)
  • Have VectorImpl use static allocation for small sizes (#4274)
  • Combine sub libraries into GH (#4285)
  • Add 7th & 9th order FD reconstruction for PPAO (#4174)
  • Enable catch STL printing (#4296)
  • Clear GR solutions a bit (#4284)
  • Introduce electron fraction to GrMhd modules (#4163)
  • Remove deprecated std::binary_function (#4303)
  • Suppress g++12 warning about array bounds (#4304)
  • Add REaDT postprocessor to check functions of time (#4300)
  • Add Elias to contributors list (#4306)
  • Remove CCE dependency from Interpolation (#4299)
  • Ignore architecture flags on "aarch64" (#4307)
  • Don't use check_with_random_values for tensor transform tests (#4308)
  • Add fit_ylm_coeffs to StrahlkorperFunctions (#4145)
  • Update Beginner Tutorial docs (#4313)
  • Add missing documentations on electron fraction (#4309)
  • Start adding support for specifying the initial data in the input file (#4261)
  • Support yaml-cpp 0.7.0 (#4283)
  • Class template deduction for WrappedGr and ProductOfConditions, remove if in FD BCs (#4286)
  • Use pressure instead of TildeTau for PerssonTCI in GRMHD (#4314)
  • Add deduction guidelines for ElementMap (#4316)
  • Add damped harmonic class for runtime gauge condition (#4290)
  • Add more atmosphere treatments to TCI for GRMHD (#4315)
  • Make electron fraction cutoff and min value as an input file option (#4312)
  • Shrink finite difference stencil in test (#4321)
  • Rename outflow boundary condition (#4322)
  • Remove unphysical GH+GRMHD solutions again (#4324)
  • Equivalence for GRMHD+GH Riemann solvers, extract individual solvers in GH+GRMHD solver (#4329)
  • Compute the number of ghost cells in the FD derivatives routine (#4330)
  • Print output on failure in Burgers formaline test (#4331)
  • Use runtime initial data in ScalarAdvection and Burgers (#4325)
  • Fix map sizes in GH+GRMHD FD code (#4326)
  • Make GH solutions factory creatable (#4328)
  • Ignore substeps in PreventRapidIncrease (#4334)
  • Minor cleaning/improving of time-action tests (#4335)
  • Remove FIXMEs from AnalyticData and AnalyticSolutions (#4341)
  • Add tnsr::aI and fix GHMHD FD TCI (#4348)
  • Update conditions in TimescaleTuner (#4345)
  • Add phases for adaptive mesh refinement (#4338)
  • Use lapse and shift to compute the largest char speed in GRMHD (#4352)
  • Update documentation of Parallel::Phase (#4355)
  • Adaptive-stepping preparation cleanup of ErrorControl (#4347)
  • Remove newton_raphson root finder (#4349)
  • Add support for receiving DG volume data (#4288)
  • Elide DG->FD project when not needed (#4291)
  • Remove redundant SPECTRE_MACOSX_MIN option (#2690)
  • Elide copies and allocations (#4361)
  • Validate release name in specified timezone (#4363)
  • Gh mesh velocity damping (#4357)
  • Remove backtrace from a simple error message (#4359)
  • Add more observables to BBH (#4362)
  • Add error-based slab-size adjustment (#4358)
  • Use approx comparison in TciOnDgGrid (#4367)

Bugfixes (11):

  • Fix sign error in ErrorControl (#4270)
  • Fix CMake option for enablin...
Read more

Release 2022.10.04

04 Oct 18:03
Compare
Choose a tag to compare

Upgrade instructions

From #4255 (Make execution order of events deterministic):

The syntax for the EventsAndTriggers and EventsAndDenseTriggers input-file sections has changed. Each ?: entry should be changed from

  ? Trigger
  : - Event
    - PossibleOtherEvents

to

  - - Trigger
    - - Event
      - PossibleOtherEvents

This results in all event and trigger arguments indenting one additional level (typically two spaces).

Merged pull-requests (52)

General changes (45):

  • Various Adams-Bashforth reorganization (#4201)
  • Increase timeouts of expensive tests (#4203)
  • Add DG FreeOutflow boundary condition to GRMHD (#4196)
  • Add utility to extract all dat files from h5 file (#4199)
  • Allow TOV executables to use generic equations of state (#4111)
  • Add TimeAndPrevious tag (#4220)
  • Clean up some interpolation stuff for CCE (#4219)
  • Change default InitializeJ in input file for CharacteristicExtract (#4211)
  • ObserveCenters: use Euclidean area element. (#4218)
  • UniformCylindricalEndcap: more tests and improvement. (#4179)
  • Fix doc bugs in CurvedScalarWave's TimeDerivative (#4182)
  • Clarify Tutorial Instructions (#4224)
  • Make TCI status a simple tag with integer values (#4212)
  • Print more useful slurm info in wheeler submit script (#4226)
  • Assign integer values to TCI status in ValenciaDivClean subcell (#4213)
  • Only print phase control phase change if phase is actually different (#4229)
  • Revive clang build on Wheeler (#4230)
  • Print pretty wall time in ERROR and Informer (#4227)
  • Allow TimescaleTuner to be initialized with arbitary number of timescales (#4223)
  • Add Leo in Contributors, and umiss in Affiliations (#4228)
  • Add more docs about Tags::Time (#4202)
  • Update ocean to gnu 11, clang 13, smp charm 7 (#4234)
  • catch2 installation updated for apple silicon installation guide (#4162)
  • Add subcell boundary conditions to GRMHD (#3972)
  • Add Constant class inherited from DampingFunction class (#4115)
  • Put GR variables on right grid for FixToAtmosphere (#4237)
  • Add Pajkos to contributors list (#4242)
  • Make AlgorithmArray patch work with macOS 13 (#4238)
  • Support cleanup on termination (#4231)
  • Use angular ordering in Sphere intrp target (#4239)
  • Make receive_data an inline entry method (#4240)
  • Add spherical torus coordinate map (#4225)
  • Make spatial metric positive-definite in test (#4244)
  • fix a mistake in the CCE tutorial (#4248)
  • Add C and Fortran to cmake compile language (#4241)
  • Add TensorExpression support for std::complex and ComplexDataVector (#4216)
  • Treat deadlock/hangs in iterable actions as failed execution (#4236)
  • Fix a typo in the comment of GaugeUpdateInertialTimeDerivatives (#4250)
  • Remove Newton-Raphson from UniformCylindricalEndcap (#4246)
  • Make all TimeStepper methods add to their results (#4208)
  • Slightly improving test helper floating point error (#4253)
  • Tagged tuple structured bindings suppor (#4257)
  • Fix possible roundoff error in MC reconstructor (#4263)
  • Stop fixing atmosphere from blocking switch back to DG (#4252)
  • Remove GCC7 workaround from GRMHD subcell (#4260)

Bugfixes (7):

  • Check only actual #includes in file test (#4204)
  • Fix vector size bug in FreeOutflow boundary condition (#4214)
  • Fix the AnalyticTestCharacteristicExtract bug when inertial coordinates are evolved (#4221)
  • Add missing target link libraries to SetupPch.cmake (#4233)
  • Put missing sqrt function in DG FreeOutflow boundary condition (#4251)
  • Make execution order of events deterministic (#4255)
  • Fix bug causing events to be improperly rerun (#4266)

Contributors (14): @wthrowe, @nilsdeppe, @yoonso0-0, @knelli2, @isaaclegred, @duetosymmetry, @markscheel, @pajkosmi, @geoffrey4444, @HengruiPrinceton, @Sizheng-Ma, @MarloMo, @gsb76, @macedo22

Release 2022.09.02

02 Sep 22:06
Compare
Choose a tag to compare

Upgrade instructions

From #4130 (Unify iterable action return type):

For an iterable action, the following changes should be applied:

  • #include <optional>
  • #include "Parallel/AlgorithmExecution.hpp"
  • remove #include "Parallel/AlgorithmMetafunctions.hpp" if present
  • Declare the return type of the apply function of an iterable action to be Parallel::iterable_action_return_t
  • Replace the return statements of the iterable action in the following way:
    • If returning a one argument tuple of a DataBox, instead return {Parallel::AlgorithmExecution::Continue, std::nullopt};
    • If returning a two argument tuple of a DataBox and bool, instead return {Parallel::AlgorithmExecution::Continue, std::nullopt}; if the bool is false and return {Parallel::AlgorithmExecution::Pause, std::nullopt}; if the bool is true
    • If returning a two argument tuple of a DataBox and Parallel::AlgorithmExecution, instead return the Parallel::AlgorithmExecution follwed by std::nullopt
    • If returning a three argument tuple of a DataBox, Parallel::AlgorithmExecution, and size_t, just remove the first argument (i.e. the DataBox)

From #4108 (Cce data in separate file):

Cce output will now be written to the reductions file instead of to a volume data file.

From #4153 (Remove support for Charm v6.10.2):

upgrade the version of charm++ you are using to v7.0.0

From #4151 (Dynamical creation and destruction of array element chares):

If you create an array element on a specified chare, you may have to add the type of to the constructor call to disambiguate from the newly added constructor.

From #4164 (Replace spin_vector function with new version.):

  • spin_vector now takes different arguments than previously, and it has an additional template parameter.
  • DimensionfulSpinVectorCompute now takes different Tags, and has an additional template parameter.

Neither one of these functions were actually being used in any of the executables.

From #4165 (AH finder computes inertial AH coords, not inertial Strahlkorper.):

The full Inertial-frame Strahlkorper is no longer available after horizon finds. This is ok, because except for spin direction (see #4164) all observables are scalars should be computed in the frame that the Strahlkorper was found, which is more efficient and more straightforward.

From #4183 (Add new stages and images to the Dockerfile):

Once this is merged, rebase on the latest develop branch to use the new container for CI on your PR.

Merged pull-requests (54)

General changes (47):

  • Unify iterable action return type (#4130)
  • Add predicted_zero_crossing function generalized for Datavectors (#4004)
  • Add spectre h5 table reader (#4127)
  • UniformCylindricalEndcap: make clang-tidy happy. (#4142)
  • Fix new compilation errors on gcc 12 (#4140)
  • Add absolute cutoff to ScalarAdvection subcell TCI (#4141)
  • Cce data in separate file (#4108)
  • Add LinearRegression. (#4136)
  • Add size control logic and test. (#4097)
  • Add Beginners tutorial to SpECTRE (#4146)
  • Add actions for evaluating AMR criteria and updating AMR decisions based on neighbor decisions (#4134)
  • Add momentum density to scalar wave (#4122)
  • Change PredictedZeroCrossing algorithm. (#4137)
  • Add CombineH5 executable (#4129)
  • Remove support for Charm v6.10.2 (#4153)
  • Add python code to visualize Dat files (#4062)
  • Add ZeroCrossingPredictor (#4147)
  • Add Christoffel and ExtrinsicCurvatureFunctions to KerrSchild, Minkowski and SphericalKerrschild (#4148)
  • Replace CSW compute tags (#4149)
  • Assume frustum not invertible below lower bound (#4161)
  • Add clone methods to MathFunction (#4156)
  • Dynamical creation and destruction of array element chares (#4151)
  • Replace spin_vector function with new version. (#4164)
  • Add StrahlkorperCoordsInDifferentFrame. (#4158)
  • Add zero spin optimizations to KerrSchild (#4168)
  • Split dense trigger triggering and rescheduling (#4077)
  • Remove ScalarWaveGr (#4157)
  • Add clang build analysis tools to build optimization docs (#4160)
  • Remove quotes from python test names (#4169)
  • Add filtering to BBH exec for local or global time stepping (#4144)
  • Set SpherepackIterator by compact index (#4072)
  • Add CompOSE EOS table reader (#4087)
  • Add make_with_value implementation for Rational (#4175)
  • Add MP5 reconstruction to finite difference (#4064)
  • Add MP5 reconstructor to ValenciaDivClean system (#4066)
  • Add Andrea Ceja to Metadata (#4180)
  • Add new stages and images to the Dockerfile (#4183)
  • Correct name of subcell option struct in docs (#4190)
  • Add time dependence to CSW system (#4152)
  • Remove functions/tags for taking square roots (#4191)
  • Low-level performance improvements (#4187)
  • Disable HDF5 default initialize datasets (#4194)
  • Push new demo Docker image on PostRelease workflow (#4193)
  • Make RunEventsAndDenseTriggers more generic (#4177)
  • Upgrade docs stylesheets (#4188)
  • Add executable to convert CompOSE EOS table to SpECTRE table (#4176)
  • Skip TciAndSwitchToDg action for elements that just switched from DG to FD (#4198)

Bugfixes (7):

  • Fix formatting in post-release workflow (#4143)
  • Fix bug in test_copy_semantics where constructor instead of assignment operator is called (#4154)
  • Fix finding Python on macOS CI (#4170)
  • Fix a check in CubicScale. (#4173)
  • Conditionally resize LHS Tensors before RHS TensorExpression evaluation (#4159)
  • AH finder computes inertial AH coords, not inertial Strahlkorper. (#4165)
  • Don't die on non-real quadratic equation roots (#4189)

Contributors (13): @kidder, @MarloMo, @nilsdeppe, @markscheel, @wthrowe, @yoonso0-0, @nilsvu, @geoffrey4444, @knelli2, @acifajkya, @asaju7, @nikwit, @macedo22

Release 2022.08.01

01 Aug 15:12
Compare
Choose a tag to compare

Upgrade instructions

From #4118 (Use single DataBox type in DistributedObject and MockDistributedObject):

  • No longer use Actions::SetupDataBox in a phase action list. Setting up the DataBox is now handled by (Mock)DistributedObject
  • ActionTesting::get_databox should only have a single template parameter (the component)

From #4093 (Automatically embed input source YAML in H5 output):

When spectre executables output HDF5 data, the input-file options provided will be automatically embedded as an attribute named InputSource.yaml. Use the script src/Options/Python/ExtractInputSourceYAMLFromH5.py to extract the embedded source input into a YAML-formatted text file.

From #4128 (Find AH quantities in grid frame):

After this change, binary black hole evolutions will observe apparent horizon quantities in the grid frame instead of the inertial frame.

Merged pull-requests (14)

General changes (11):

  • Wrap SphericalKerrSchild solution for initial data solver (#4117)
  • Factor common code out of RK time steppers (#4112)
  • Use single DataBox type in DistributedObject and MockDistributedObject (#4118)
  • Add helper methods producing non-owning Variables (#4114)
  • Automatically embed input source YAML in H5 output (#4093)
  • Update dev container and Docker/VSCode install docs (#4119)
  • Add check for using removed DataBox item (#4123)
  • Container cleanups, remove GCC7&8, add env variables (#4121)
  • Cleanup some simple Actions (#4126)
  • Add docs for building on Apple Silicon (#3714)
  • Find AH quantities in grid frame (#4128)

Bugfixes (3):

  • Fix post-release workflow (#4120)
  • Fix GenerateXdmf for 2D non-surface output (#4125)
  • Update gfortran in cmake kit (#4131)

Contributors (7): @DavidWu421, @wthrowe, @kidder, @geoffrey4444, @nilsvu, @knelli2, @nilsdeppe

Release 2022.07.18

18 Jul 14:51
Compare
Choose a tag to compare

Upgrade instructions

From #4033 (Add a global enum class Phase):

If you have defined an enum class Phase in a metavariables, instead #include "Parallel/Phase.hpp" and replace the enum definition with using Phase = Parallel::Phase;

From #4046 (Use global phase to simplify some code):

  • In a PhaseAction, the first template parameter should be removed.
  • Also restrict phase names to those in Parallel::Phase

From #4044 (Interpolation without Interpolator ParallelComponent for time-dependent maps.):

No changes needed for the user, but anyone changing the interpolator code will see differences:

  • intrp::Vars::PointInfoTag now has a different type.
  • InterpolationTargetVarsFromElement and some of the functions in InterpolationTarget_detail now take different arguments.

From #4050 (Add ResourceInfo tags to DgElementArray and IntrpTarget):

If your executable has the DgElementArray parallel component, add in the following block to the input file

ResourceInfo:
  AvoidGlobalProc0: false

If your executable has at least one InterpolationTarget parallel component, add the following under the ResourceInfo block in the input file

  Singletons:
    TargetName:
      Proc: Auto
      Exclusive: false

From #4056 (Allow CCE singletons to be placed on specific cores):

If you have CCE in your executable, add the following block to your input file:

ResourceInfo:
  Singletons:
    CharacteristicEvolution:
      Proc: Auto
      Exclusive: false
    BoundaryComponentName:
      Proc: Auto
      Exclusive: false

where BoundaryComponentName is one of AnalyticWorldtubeBoundary, H5WorldtubeBoundary, or GhWorldtubeBoundary depending on what your boundary component is.

From #4023 (Remove CERROR, specialize error macros for compile time and runtime):

This requires updaying computing resources to use >= gcc-9 or >= clang-9

From #4055 (Finish transition to using Parallel::Phase):

  • Always use Parallel::Phase as the type of a phase
  • Do not specify a determine_next_phase member function for metavariables. Instead define the default_phase_order member variable

From #4086 (Consolidate generic parallel actions):

If you used any actions in the eliminated directories, you will need to update the appropriate include statement.
If you added any actions to those directories, move them into ParallelAlgorithms/Actions

From #4099 (Combine registration phases):

If you are using Parallel::Phase::RegisterWithObserver, instead use Parallel::Phase::Register

From #4107 (Turn on LTS in BBH):

If using the BBH executable, update the time stepping options to match those of the test input file.

Merged pull-requests (65)

New features (3):

  • Add a global enum class Phase (#4033)
  • Add support for Charm++ projections (#4053)
  • Add Translation control system (#3992)

General changes (54):

  • Update ci dox (#4020)
  • Use global phase to simplify some code (#4046)
  • Relax more HwenoImpl test tolerances (#4039)
  • Avoid dynamic allocations for single-point Variables data (#4035)
  • Silence unused-value warning in clang 14 (#4048)
  • Store element name in ElementVolumeData (#4042)
  • Simplify Overloader and remove make_overloader (#4045)
  • Change protocol helpers to normal metafunctions (#4049)
  • Explicitly use interpolator source vars in intrp framework (#4014)
  • Update Expanse build to use Charm 7 and Intel MPI (#3968)
  • Add to_basis&to_quad, cleanup IO test helpers (#4043)
  • Remove explicit exceptions from Python h5::File wrapper (#4041)
  • Add ResourceInfo tags to DgElementArray and IntrpTarget (#4050)
  • Increase timeout in RotScaleTrans test (#4065)
  • Remove buffer from Ccz4::upper_spatial_z4_constraint (#4059)
  • Fix Ccz4 temporary expression calculation (#4060)
  • Forward declare Ccz4 temporary tags (#4061)
  • Allow CCE singletons to be placed on specific cores (#4056)
  • Add fallback reconstructor types to finite difference (#4057)
  • Update domain in BBH ID input file (#3926)
  • Add get_data_by_element function to VolumeData (#4054)
  • Add to ParallelComponent section of Parallelization DevGuide (#4051)
  • Use smaller random values for sin argument (#4067)
  • Remove CERROR, specialize error macros for compile time and runtime (#4023)
  • Enable TensorExpressions to internally split up equations (#3842)
  • Finish transition to using Parallel::Phase (#4055)
  • Split up and organize H5 tests (#4068)
  • Enable Wcns5z reconstruction to use adaptive fallback (#4058)
  • Rename algorithm impl to distributed object (#4069)
  • Subcell TCI improvements, step 1 (#4012)
  • Hybrid EOS (#3481)
  • Shorten rotation control system test (#4074)
  • Increase GH constraints timeout (#4076)
  • Add Brill Lindquist analytic data (#4075)
  • Remove specific enthalpy (#4080)
  • Generalize control system test helper (#4071)
  • Add Expansion and Rotation control systems to BBH exec (#4016)
  • Add tags and initialization action for AMR flags (#3092)
  • Consolidate generic parallel actions (#4086)
  • Add TensorExpression support for assigning to doubles (#4079)
  • Support for reading single and double precision HDF5 volume data (#4084)
  • Add SphericalKerrSchild (#4073)
  • Add xsimd support (#4081)
  • Add temperature to equations of state (#4085)
  • Disallow antisymmetries in TensorExpressions (#4090)
  • Store number of indices in Tensor class (#4094)
  • Add dependencies for SphericalKerrSchild executable (#4092)
  • Add Noah Ring to metadata (#4101)
  • Run a checkpoint test in its own directory (#4098)
  • Add David Wu to Metadata (#4100)
  • Increase tolerance for Eos test helper (#4104)
  • Combine registration phases (#4099)
  • Turn on LTS in BBH (#4107)
  • Add build type to info at compile time (#4116)

Bugfixes (8):

Read more

Release 2022.06.14

14 Jun 22:42
Compare
Choose a tag to compare

Upgrade instructions

From #3940 (Add check for currently open H5 objects before insert/get):

When inserting or geting an object in an H5 file, you must close_current_object() before you can get/insert a new object.

From #3963 (Alter CCE interface managers for new changes to interpolation):

Any usage of the GhInterfaceManagers will likely need to be reworked to account for the new interfaces.

From #3969 (Add mock action to replace WriteReductionDataRow in testing framework):

If you want to test code that uses the WriteReductionDataRow action, follow the instructions in the Reduction Actions section of the ActionTesting documentation

From #3976 (Template parallel info functions on return type):

When using any parallel info functions (Parallel::my_node, etc...), you must specify the return type as a template parameter.

From #4001 (Consolidate lists of AH tags):

When making an InterpolationTargetTag for AH finding, use the type aliases defined in ApparentHorizons/HorizonAliases.hpp for the various lists of tags.

From #4015 (Add ability to place singletons on specific cores):

To be able to place a singleton on a specific core and specify that it should be exclusively on that core, add the Parallel::Tags::SingletonInfo tag to the initialization_tags of the singleton. To avoid placing singletons and Array-elements on the global zeroth core, add the Parallel::Tags::AvoidGlobalProc0 tag to the initialization_tags of any singleton or Array component in your executable.

From #4027 (Remove colons from control system measurement names):

If you have scripts that read out the names for the control system, they need to have the colons removed.

Merged pull-requests (72)

New features (10):

  • CCE Conformal factor initial data (#3450)
  • Add Expansion control system (#3883)
  • Add Charm++ version 7.0.0 support (#3942)
  • Add GenerateXdmf support for surface data (#3973)
  • Add MemoryMonitor component and actions (#3949)
  • Add Rotation control system (#3965)
  • Add non-owning variables (#3970)
  • Add WCNS-5Z reconstruction to finite difference (#3986)
  • Add WCNS-5Z + MC reconstruction to finite difference (#4011)
  • Add ability to place singletons on specific cores (#4015)

General changes (48):

  • Add instructions to dispatch releases (#3954)
  • Update affiliation (#3959)
  • Add SingletonInfoHolder (#3957)
  • Add outflow boundary condition to NewtonianEuler (#3814)
  • Add a single variables slicing for subcell (#3826)
  • Add function to get mutable cache proxy from GlobalCache (#3945)
  • Add parallel info to GlobalCache (#3951)
  • Compute logical coordinates of FD ghost zone (#3905)
  • Allow DgElementArray to ignore certain procs when placing elements (#3950)
  • Add SingletonPack (#3962)
  • Use IntelMPI on Frontera (#3912)
  • Add support for Anvil supercomputer (#3960)
  • Alter CCE interface managers for new changes to interpolation (#3963)
  • Factor out round robin array element assignment (#3971)
  • Document data ordering for root finder Jacobian (#3967)
  • Observe surface data (#3966)
  • Add mock action to replace WriteReductionDataRow in testing framework (#3969)
  • Add matplotlib to python on anvil (#3982)
  • Add ObserveCenters post horizon find callback (#3921)
  • Restrict to Catch2 v2.8:2 when building from spack (#3985)
  • Add Wedge Opening Angle (#3941)
  • CCE preliminaries for GH+CCE executable (#3977)
  • Ignore some warnings from GCC 11 (#3987)
  • Add ZeroCrossingPredictor function for std::vector<doubles> (#3952)
  • Replace tt::is_a with tt::is_a_lambda (#3995)
  • Add DataVector to LinearLeastSquares (#3955)
  • Add new entry menthod to GlobalCaches for memory monitor (#3975)
  • Allow Frustum to transition between Equiangular Maps (#3889)
  • Template parallel info functions on return type (#3976)
  • Speed up ScriObserveInterpolated test (#4003)
  • Ignore DataBox warning in gcc 11 (#3999)
  • Cleanup GH constraint tests & delete check output dirs (#4000)
  • Allow SpherepackIterator to convert offset to compact index (#4007)
  • Consolidate lists of AH tags (#4001)
  • Subcell TCI improvements, step 0 (#4002)
  • Add subcell boundary conditions to Burgers (#3746)
  • Add MonitorMemory event (#4009)
  • Modify component name function in control systems (#4006)
  • Add IsActive tag for control systems (#3983)
  • Add ResourceInfo for allocating singletons (#3980)
  • Add WCNS-5Z reconstruction to GRMHD (#3991)
  • Bump compiler versions & reduce number of clang builds (#4019)
  • Add Ability to Observe Ricci Scalar (#4018)
  • Add ASSERT for checking subcell volume extents and stencil width. (#4029)
  • Clean up includes of various Time/* files (#4028)
  • Clean up gsl_multiroot (#4025)
  • Update running and visualizing tutorial (#4032)
  • change to gcc-9 for code coverage (#4038)

Bugfixes (14):

  • Minor fixes for Burgers subcell (#3958)
  • Add check for currently open H5 objects before insert/get (#3940)
  • Fix constraint preserving boundary conditions (#3974)
  • Fix ObserveSurfaceData when center not origin (#3988)
  • Fix IgnoreFailedApparentHorizon (#3990)
  • Rename MC to Monotonised Central (#3989)
  • Fix missing templates for parallel infos (#4008)
  • Fix check forbidding removing from a DataBox a subitem of an immutable item (#3998)
  • Fix ci by adding cache clear (#4017)
  • Remove H5 file after AlgorithmGlobalCache is finished (#4026)
  • Handle late calls to InterpolatorReceiveVolumeData (#4010)
  • Disable FPE trapping when calling into python (#4031)
  • Remove colons from control system measurement names ([#4027](https...
Read more

Release 2022.05.05

05 May 06:19
Compare
Choose a tag to compare

Upgrade instructions

From #3939 (Add type trait for component type):

If you need to know what chare type a parallel component is, a Group, Nodegroup, Singleton, Array, use the Parallel::is_group_v<Component>, Parallel::is_nodegroup_v<Component>, Parallel::is_singleton_v<Component>, Parallel::is_array_v<Component> type traits, respectively.

From #3948 (Change TensorExpressions interface via changing namespaces):

  • Anywhere using TensorExpressions namespace should now use tenex
  • Anywhere using ti_a (tensor indices) should now use ti::a

From #3828 (InterpolateWithoutInterpComp: Use compute_vars_to_interpolate.):

InterpolateWithoutInterpComponent now uses compute_vars_to_interpolate instead of compute_items_on_source.

Merged pull-requests (34)

New features (1):

  • Add LinearLeastSquares solver (#3918)

General changes (23):

  • Simplify observer registration from interpolations (#3904)
  • Promote Options::name to pretty_type::name utility (#3909)
  • Changes needed to compile on my M1 MacBook Pro (#3895)
  • Simplify control system observations (#3920)
  • Add function to compute the size of an object (#3919)
  • Remove some unnecessary time stuff (#3925)
  • Remove repeated calculations in Ccz4::spatial_ricci_tensor (#3917)
  • Enable compiler flags for setting Blaze inlining settings (#3930)
  • Compute ADM quantities directly from XCTS variables (#3885)
  • Lint "mutable" keyword and clean up "noexcept" test (#3928)
  • Add protocols to interpolation framework (#3896)
  • Add the TimeDerivative for first order CCZ4 (#3759)
  • Split ApplyBoundaryCorrections action (#3938)
  • Enable output of Strahlkorper surface data (#3901)
  • Enable compile flags for toggling SpECTRE inlining (#3947)
  • Add type trait for component type (#3939)
  • Allow MockDistributedObject to be sized (#3946)
  • Add function to determine if element is zeroth element (#3943)
  • Change TensorExpressions interface via changing namespaces (#3948)
  • InterpolateWithoutInterpComp: Use compute_vars_to_interpolate. (#3828)
  • Add RicciScalar to GeneralRelativity (#3916)
  • add enthalpy-parametrized equation of state (#3892)
  • Add code review guide to avoid mutable variables (#3927)

Bugfixes (10):

  • Increase timeout of a test (#3908)
  • Make element_logical_coordinates deterministic (#3913)
  • Add a missing newline in error message (#3922)
  • Update GitHub checkout action to v3.0.1 (#3932)
  • Fix CI failure on develop (#3935)
  • Make StrahlkorperInDifferentFrame more robust (#3923)
  • Implement SpECTRE singleton as Charm++ single-element array (#3787)
  • Fix ComputeVarsToInterpolate protocol (#3944)
  • YlmSpherepack: Replace mutable non-dynamic storage (#3931)
  • Make YlmSpherepack threadsafe (#3934)

Contributors (11): @nilsvu, @knelli2, @kidder, @nilsdeppe, @wthrowe, @macedo22, @markscheel, @gsb76, @geoffrey4444, @AlexCarpenter46, @isaaclegred

Release 2022.04.04

04 Apr 16:08
Compare
Choose a tag to compare

Upgrade instructions

From #3766 (Stop computing errors inside ObserveFields, remove ObserveErrorNorms):

If you use ObserveErrorNorms, this is now replaced by ObserveNorms with specifying Error(variable). For example,

ObserveNorms:
  TensorsToObserve:
    - Name: Error(Psi)
      NormType: L2Norm
      Components: Sum
    - Name: Error(Phi)
      NormType: L2Norm
      Components: Sum
    - Name: Error(Pi)
      NormType: L2Norm
      Components: Sum

When writing executables, follow the example in EvolveScalarWave to see how to replace ObserveErrorNorms by ObserveNorms.

From #3832 (Delete thin wrappers around blaze::DynamicVector/Matrix):

If you used DenseVector/Matrix replace them with blaze::DynamicVector/Matrix. Use the includes DataStructures/Dynamic{Vector,Matrix}.hpp if you need support for serialization, make_with_value or option-creation, or include <blaze/math/Dynamic{Vector,Matrix}.h> directly if you don't need those features.

From #3817 (Use quaternion rotation map in BinaryCompactObject domain creator):

When specifying input options for the BinaryCompactObject domain creator, replace

RotationAboutZAxisMap:
  InitialRotationAngle: 1.0
  InitialAngularVelocity: -0.5

with

RotationMap:
  InitialAngularVelocity: [0.0, 0.0, -0.5]

Note: The initial rotation angle is now always assumed to be zero and cannot be specified by the user.

From #3876 (Consolidate mutation of global cache into single function):

To mutate a mutable global cache tag Tag, use Parallel::mutate<Tag, Functor>(cache, args...) where cache is a reference to the local GlobalCache. This works in both the testing framework and charm-aware situations.

From #3882 (Omit BBH domain cube-to-sphere transition):

If you use the BinaryCompactObject domain, try setting EnvelopingCube.Sphericity = 1 and OuterShell.InnerRadius = Auto. This configuration transitions from the two inner objects to the outer spherical shell in a single layer of blocks, which can greatly improve the effectiveness of grid points in the domain.

From #3902 (post_horizon_find_callbacks is now a tmpl::list.):

post_horizon_find_callback needs to be changed to post_horizon_find_callbacks, and is
a tmpl::list of structs instead of a single struct.

From #3838 (Change ASSERT and ERROR to throw an exception instead of aborting):

If you have an ASSERTION_TEST or ERROR_TEST as a separate SPECTRE_TEST_CASE, they should be combined with the standard SPECTRE_TEST_CASE by calling CHECK_THROWS_WITH (see the Catch documentation for usage)

Merged pull-requests (49)

New features (1):

  • Add L2IntegralNorm to ObserveNorms (#3878)

General changes (36):

  • Stop computing errors inside ObserveFields, remove ObserveErrorNorms (#3766)
  • Clean up elliptic observing a bit (#3848)
  • Use full namespace for tags in NewtonianEuler reconstructor codes (#3850)
  • Add PY_DEV_MODE CMake flag (#3849)
  • Toggle building docs on CI, remove unnecessary packages from container (#3847)
  • XCTS binary: superpose matter without Gaussian falloff (#3839)
  • Added the Constraint Energy to be Observable (#3855)
  • Reduce log level of docs notebook conversion (#3854)
  • Add ControlError protocol and tag (#3687)
  • Added Ability to Observe Constraint Energy to BBH (#3867)
  • Update brigand on Ocean (#3864)
  • Allow monopole and dipole in shape map (#3860)
  • Time stepper interface cleanup (#3851)
  • Add more parameters and functions to BinaryTrajectories (#3818)
  • Xcts solver: observe shift magnitude, min and max quantities (#3862)
  • Don't erase Wedge map type in DomainHelpers, make Shape map copyable (#3857)
  • Add Factory.hpp for equations of state (#3868)
  • Add XCTS Schwarzschild solution in more coords (#3853)
  • Add abutting directions to excision spheres (#3872)
  • Delete thin wrappers around blaze::DynamicVector/Matrix (#3832)
  • Make our registered names be consistent with Charm++'s (#3874)
  • Update FindApparentHorizon docs (#3881)
  • Make observing from singletons easier (#3873)
  • Use quaternion rotation map in BinaryCompactObject domain creator (#3817)
  • Consolidate mutation of global cache into single function (#3876)
  • Support factory-created solution in AH boundary conditions, prepare for SHK initial data (#3840)
  • Omit BBH domain cube-to-sphere transition (#3882)
  • Compute numerical deriv diagnostic in ExportCoords (#3863)
  • Switch to Intel MPI 2017.1 on Wheeler (#3890)
  • Add HarmonicSchwarzschild analytic solution (#3829)
  • Convert PhaseChange to new factory (#3888)
  • Add TOV solution in isotropic coords (#3685)
  • Wrap HarmonicSchwarzschild solution for initial data solver (#3893)
  • Move time-stepper implementations to cpp files (#3870)
  • post_horizon_find_callbacks is now a tmpl::list. (#3902)
  • Change ASSERT and ERROR to throw an exception instead of aborting (#3838)

Bugfixes (12):

  • Fix a minus sign in docs (#3856)
  • Fix GH Phi tag docs (#3865)
  • Fix a bug in shape map SphereTransition (#3859)
  • Fix docs of KerrHorizonConforming map, disambiguate spin, add test (#3858)
  • Fix math rendering in AdamsBashforthN (#3869)
  • Fix hard coded path in CaltechHPC submit script (#3871)
  • Fix core devs email address in PublicationPolicy.md (#3875)
  • Fix macOS CI build issue with Boost (#3879)
  • Allow ReadSpecPiecewisePolynomial to create QuaternionFunctionsOfTime (#3884)
  • Fix linking with GrSolutionsTestHelpers (#3897)
  • Fix OrientationMap for Mesh (#3894)
  • Fix test linking on macOS (#3906)

Contributors (11): @nilsdeppe, @nilsvu, @yoonso0-0, @AlexCarpenter46, @knelli2, @geoffrey4444, @wthrowe, @duetosymmetry, @macedo22, @markscheel, @kidder