Skip to content

Releases: sxs-collaboration/spectre

Release 2021.12.06

06 Dec 20:00

Choose a tag to compare

Upgrade instructions

From #3598 (Bulged Frustums in BinaryCompactObject Domain):

The EnvelopingCube in the BinaryCompactObject Domain will now take a Sphericity parameter, which can be
set to any value between 0 and 1, inclusive. A value of 0 corresponds to an EnvelopingCube with a flat surface, and
a value of 1 corresponds to an EnvelopingCube with a spherical surface.

Merged pull-requests (56)

New features (3):

  • Add horizon finder into BBH executable (#3566)
  • Bulged Frustums in BinaryCompactObject Domain (#3598)
  • Support ObservationBox compute tags in ObserveFields and ObserveNorms (#3558)

General changes (47):

  • Remove Frame::Logical (#3569)
  • Add AOWeno(5,3) reconstruction scheme to advection subcell (#3619)
  • Interpolate Ah quantities to 2 frames if desired. (#3623)
  • Add GHGRMHD Prims after rollback (#3615)
  • GHGRMHD add FD directory and basic structure (#3628)
  • Small changes to help enable subcell for Newtonian Euler (#3632)
  • Add CCZ4 functions for lower and upper spatial Z4 constraint (#3622)
  • Add subcell time derivative to advection subcell (#3611)
  • Add NeighborPackagedData to advection subcell (#3591)
  • Add FunctionsOfTime base tag (#3639)
  • Remove inlining of TensorContract::get (#3645)
  • Add unlimited degree 2 and 4 FD reconstruction (#3629)
  • Add InitialData base class, namespace, and library (#3599)
  • Optimize elliptic solver (3): Sparse subdomain data (#3605)
  • Allow XDMF generation with partial output (#3642)
  • ValenciaDivClean primitive-recovery tweaks (#3641)
  • Derive advection solutions from the new ID base class (#3600)
  • Add deriv determinant spatial metric computation to KerrSchild (#3610)
  • More floating point changes to FixConservatives (#3653)
  • Add CCZ4 simple tag and function for gradient of the spatial Z4 constraint (#3633)
  • Add initial data TCI to Burgers subcell (#3649)
  • Update advection executables to use subcell (#3647)
  • Add test of MC.reconstruct_fd_neighbor for GRMHD (#3634)
  • Add docs to Burgers boundary condition classes (#3654)
  • Allow creation of FunctionsOfTime with control system info (#3644)
  • Use ObservationBox in events (#3557)
  • Add TCI on DG and FD grid to Burgers subcell (#3655)
  • Add PrimitiveGhostData to GH+GRMHD (#3636)
  • Add FixConservativesAndComputePrims to GH+GRMHD (#3638)
  • Add FD ghost data to Burgers subcell (#3659)
  • Remove a redundant operator in Grmhd ResizeAndComputePrims (#3665)
  • Add Tom's ORCiD (#3658)
  • Add CCZ4 function for the spatial ricci tensor (#3553)
  • Add CCZ4 function for ricci scalar plus divergence Z4 constraint (#3656)
  • Add ResizeAndComputePrimitives to GH+GRMHD (#3637)
  • Add FD flux compute to Burgers subcell (#3662)
  • Add reconstructor base class and option tag to Burgers subcell (#3663)
  • Use obs box in ScalarWave, switch ObserveVolumeIntegrals to obs box (#3664)
  • Add error in SetupLocalPythonEnvironment env if path doesn't exist (#3670)
  • Add publication policies (#3631)
  • Construct measurement timescales using control sys info (#3660)
  • Add temporary tags for repeated expressions in CCZ4 eqs (#3668)
  • Add MC reconstruction to Burgers (#3673)
  • Add NeighborPackagedData to Burgers subcell (#3674)
  • Make Ccz4::divergence_lapse take square of conformal factor as arg (#3681)
  • Add Frame::Distorted to Block (#3625)
  • Find Scotch library with CMake (#3571)

Bugfixes (6):

  • Upgrade Doxygen theme to v1.6.1 to fix issue on mobile (#3624)
  • Replace cache_contains_functions_of_time (#3635)
  • Remove duplicate inverse_spatial_metric tag (#3650)
  • Add back TensorExpression test that was accidentally removed (#3657)
  • Fix macOS arm64 linker errors (#3675)
  • Fix linking error for TOV executables (#3679)

Contributors (11): @kidder, @yoonso0-0, @markscheel, @nilsdeppe, @macedo22, @nilsleiffischer, @knelli2, @wthrowe, @gsb76, @nikwit, @geoffrey4444

Release 2021.11.01

01 Nov 15:54

Choose a tag to compare

Upgrade instructions

From #3570 (Support 1/r radial distribution in BBH domain outer shell):

  • When constructing a BinaryCompactObject domain from options, move the UseProjectiveMap option into the EnvelopingCube group. Furthermore, the options for the outer spherical shell have changed to support more radial distributions. If you had these options before:
    # Old
    EnvelopingCube:
      Radius: 55.
    UseProjectiveMap: True
    OuterSphere:
      Radius: 300.
      UseLogarithmicMap: False
    adjust them like this:
    # New
    EnvelopingCube:
      Radius: 55.
      UseProjectiveMap: True
    OuterShell:
      InnerRadius: Auto  # you can specify the first spherical radius explicitly now, or use the default
      OuterRadius: 300.
      RadialDistribution: Linear  # You can also set this to `Logarithmic` or `Inverse`

From #3583 (Add IndexPolarAxis Option to Shell Domain):

The Shell constructor has been changed such than an additional argument index_polar_axis (additional Option IndexPolarAxis) must be passed following the argument aspect_ratio (Option AspectRatio). The default value is set to 2 (the z axis).

From #3617 (Move YlmSpherepack to NumericalAlgorithms/SphericalHarmonics.):

YlmSpherepack is now in the library NumericalAlgorithms/SphericalHarmonics.

Merged pull-requests (40)

General changes (36):

  • Add ObservationBox (#3556)
  • Support 1/r radial distribution in BBH domain outer shell (#3570)
  • Make EquatorialCompression generic in polar axis. (#3572)
  • Add CCZ4 functions for contracted conformal spatial christoffel 2nd kind and its derivative (#3579)
  • Optimize elliptic solver (1): Avoid unnecessary random-access operations (#3574)
  • Add excision_sphere to Domain, changes to Shell (#3563)
  • Add control system singleton parallel component (#3551)
  • Add FD computeflux to advection subcell and fix initial TCI args order (#3575)
  • Add more instantiations of averager (#3550)
  • Rename control system action namespace (#3589)
  • Add control system trigger (#3548)
  • Add ExcisionSpheres to BinaryCompactObject Domain (#3581)
  • Make pup NOLINTs consistent (#3582)
  • Add IndexPolarAxis Option to Shell Domain (#3583)
  • Allow creation of multiple control systems from options (#3588)
  • Remove BlueWaters installation instructions. (#3595)
  • Update dox for INTERFACE, PUBLIC, PRIVATE libraries. (#3562)
  • Add DirichletMinkowski GH BC (#3473)
  • Optimize elliptic solver (2): Generalize equal_within_roundoff to Variables, skip an unnecessary subdomain-operator application (#3586)
  • Add comparison operator for Direction and ElementId (#3585)
  • Use latest version of codecov action (#3596)
  • Add MC reconstructor to advection subcell (#3546)
  • Add velocity field to FD cell and face tensor in advection subcell (#3578)
  • Change PerssonTCI implementation (#3604)
  • Use Direction/ElementId comparison operator (#3606)
  • Add control system measurement initialization (#3590)
  • Split up bulky tensor expression test into two test files (#3616)
  • ComputeHorizonVolumeQuantities documentation. (#3613)
  • Silence clang 13 unused-but-set warnings (#3618)
  • Add initial data TCI for GH+GRMHD system (#3526)
  • Add GH+GRMHD TCI for DG and FD grids (#3609)
  • Add CCZ4 function for trace-free part of extrinsic curvature, related tags (#3593)
  • Add Ricci Scalar compute tags to EvolveGeneralizedHarmonic.hpp (#3576)
  • Add simple post-Newtonian compact binary trajectories (#3608)
  • Add radial velocity to initial data solves (#3602)
  • Move YlmSpherepack to NumericalAlgorithms/SphericalHarmonics. (#3617)

Bugfixes (4):

  • Fix typo in gr::ricci_tensor equation documentation (#3577)
  • Fix floating point behavior and an initialization bug in FixConservatives (#3584)
  • StrahlkorperInDifferentFrame now works for center not at origin. (#3594)
  • Fix unused var error when profiling (#3630)

Contributors (11): @nilsdeppe, @nilsleiffischer, @gsb76, @macedo22, @knelli2, @yoonso0-0, @wthrowe, @markscheel, @geoffrey4444, @kidder, @MarloMo

Release 2021.10.04

04 Oct 14:59

Choose a tag to compare

Upgrade instructions

From #3475 (Add and observe XCTS constraint norms):

ObserveNorms now takes the observation value tag as first template parameter. Pass ::Tags::Time to get the same behavior as before.

From #3538 (Enforce tags for Variables are derived from db::SimpleTag):

Any tag used in the list of tags on which a Variables is templated must derive from db::SimpleTag

From #3552 (Move parallel interpolator to ParallelAlgorithms.):

All the parallel interpolation framework is now in ParallelAlgorithms instead of NumericalAlgorithms.

From #3559 (Change source frame of ElementMap from Logical to ElementLogical):

If you use Frame::Logical this will now need to be either Frame::BlockLogical or Frame::ElementLogical depending upon which of the two frames the map uses or tensor represents.

From #3507 (Add block names to BinaryCompactObject domain, support per-block refinement):

When constructing a BinaryCompactObject domain creator from options, delete the AdditionToRadialRefinementLevel options. They have been replaced by per-block support for the InitialRefinement and InitialGridPoints options.

  • If you used no additional radial refinement before, you can just delete the options:

    # New - uniform refinement
    DomainCreator:
      BinaryCompactObject:
        # ... (delete AdditionToRadialRefinementLevel options)
        InitialRefinement: 1
  • If you had this additional radial refinement configuration before:

    # Old - additional radial refinement
    DomainCreator:
      BinaryCompactObject:
        ObjectA:
          # ...
          AdditionToRadialRefinementLevel: 1
        # ...
        OuterSphere:
          # ...
          AdditionToRadialRefinementLevel: 2
        InitialRefinement: 1

    you can reproduce it now with these options:

    # New - additional radial refinement
    DomainCreator:
      BinaryCompactObject:
        # ...
        InitialRefinement:
          ObjectAShell:   [1, 1, 2]
          ObjectBShell:   [1, 1, 1]
          ObjectACube:    [1, 1, 1]
          ObjectBCube:    [1, 1, 1]
          EnvelopingCube: [1, 1, 1]
          CubedShell:     [1, 1, 1]
          OuterShell:     [1, 1, 3]

Refer to the help string of the BinaryCompactObject domain creator for details.

From #3568 (Remove noexcepts):

Remove all noexcept specifiers.

Merged pull-requests (59)

New features (1):

  • Add BBH executable (#3468)

General changes (51):

  • Add Bayliss-Turkel boundary conditions to CurvedScalarWave system (#3411)
  • Add block names to domain creators (#3457)
  • Print number of DataBox items on startup (#3476)
  • Add simple tags related to conformal metric and for CCZ4 auxiliary variables (#3502)
  • Add and observe XCTS constraint norms (#3475)
  • Compress docs upload on CI (#3496)
  • TCI for DG and FD grid for advection system (#3497)
  • Add StrahlkorperInDifferentFrame. (#3477)
  • Add CenterOfStar interpolation to magnetized TOV (#3508)
  • Add apparent-horizon boundary conditions to XCTS executable (#3491)
  • Restrict Variables subitems to Tags::Variables (#3248)
  • Add functions for updating FunctionsOfTime in GlobalCache (#3478)
  • Add modal to nodal pybindings (#3504)
  • Use linear interpolation for subcell (#3506)
  • Add GR function for spatial derivative of inverse spatial metric (#3509)
  • Rename BBH exec, clarify why it doesn't use GHBase (#3520)
  • Remove use of deprecated action in self-start test (#3523)
  • Update ocean doxygen to 1.9.1 (#3518)
  • Add CCZ4 functions for christoffel 2nd kind and conformal christoffel 2nd kind (#3517)
  • Remove initialization_tags in InitializeInterpolationTarget. (#3524)
  • Allow coveralls upload to fail on CI (#3529)
  • Support time indices for some TensorExpressions (#3470)
  • Add CCZ4 functions for the gradient of the gradient of the lapse and the divergence of the lapse (#3513)
  • Add CCZ4 function for derivivative conformal spatial christoffel second kind (#3516)
  • Compute Inertial Strahlkorper if Strahlkorper frame is not inertial. (#3485)
  • Add Daniel, Sizheng to DOI, Himanshu's ORCID (#3543)
  • Add TensorIndex m and instructions on how to add new TensorIndexs (#3535)
  • Add basic control system protocols and measuring (#3469)
  • Enforce tags for Variables are derived from db::SimpleTag (#3538)
  • Remove EquationOfStateType from NewtonianEuler::System (#3536)
  • Remove template from UpdateFunctionOfTime functions (#3537)
  • Print Charm++ startup time (#3527)
  • Add dense output to GRMHD subcell executable (#3540)
  • Add reconstructor base class to advection subcell (#3532)
  • Modify translation map (#3534)
  • Most remaining evolution cleanups from 2779 (#3533)
  • Add tutorial on events and triggers (#3505)
  • Move parallel interpolator to ParallelAlgorithms. (#3552)
  • Add ghost data routines to advection subcell (#3542)
  • Document elliptic systems (#3154)
  • Moving H5 test files (#2250)
  • Update installation docs (#3519)
  • Change source frame of ElementMap from Logical to ElementLogical (#3559)
  • Support time indices for TensorExpressions with addition, subtraction, and square roots of scalars (#3539)
  • Add block names to BinaryCompactObject domain, support per-block refinement (#3507)
  • Add ExcisionSphere to Domain/Structure and test (#3541)
  • Add ffmpeg as optional dependency (#3567)
  • Move member function defs out of AlgorithmImpl (#3564)
  • Switch documentation to more modern theme (#3412)
  • Remove noexcepts (#3568)
  • Support scalar division and unary minus for TensorExpressions (#3549)

Bugfixes (7):

  • Find yapf consistent with Python (#3490)
  • Fix LTS dense output at initial time (#3510)
  • Make doxygen installation correct in buildenv (#3515)
  • Increase test timeout for ASAN builds (#3521)
  • Build Doxygen with bugfixes in container (#3522)
  • Remove unneeded interp dependencies. (#3555)
  • Fix some includes and lib dependencies in Interpolation (#3560)

Contributors (12): @nikwit, @nilsleiffischer, @macedo22, @yoonso0-0, @markscheel, @nilsdeppe, @knelli2, @geoffrey4444, @wthrowe, @kidder, @isha1810, @gsb76

Release 2021.09.11

11 Sep 06:09

Choose a tag to compare

Upgrade instructions

From #3482 (Interpolate to center of star on subcell):

The interpolation target tags need interpolating_component to be templated on the metavariables

Merged pull-requests (15)

New features (1):

  • Support per-core reductions (#3464)

General changes (12):

  • Add StrahlkorperTags::PhysicalCenterCompute. (#3484)
  • Upgrade Doxygen in the container (#3483)
  • Add spherical harmonic initial data for CurvedScalarWave (#3416)
  • Add code to check if functions of time are ready (#3467)
  • Add LinkedMessageQueue (#3479)
  • Interpolate to center of star on subcell (#3482)
  • Add 3d time dependent rotation matrix (#3364)
  • Fix superluminal velocities in Kastaun recovery scheme (#3500)
  • Add virtual functions to FunctionOfTime base (#3499)
  • Add MeasurementTimescales Tag (#3495)
  • Add initial data TCI for advection system (#3494)
  • Add pybindings for mesh.slices() (#3503)

Bugfixes (2):

  • Add domain::Tags::JacobianCompute to docs (#3501)
  • Fix doc-coverage with Doxygen 1.9.1 (#3498)

Contributors (8): @markscheel, @nilsleiffischer, @nikwit, @wthrowe, @kidder, @knelli2, @nilsdeppe, @yoonso0-0

Release 2021.09.06

06 Sep 17:10

Choose a tag to compare

Upgrade instructions

From #3307 (Add FixedSpeedCubic to BinaryCompactObject):

When time dependence is enabled in the BinaryCompactObject domain, previously, the options for the ExpansionFactor included options to specify the two FunctionOfTimes used by the CubicScale map, e.g.

ExpansionMap:
  OuterBoundary: 25.0
  InitialExpansion: [1.0, 1.0]
  InitialExpansionVelocity: [-0.1, -0.01]
  FunctionOfTimeNames: ['ExpansionFactor', 'ExpansionFactorOuterBdry']

After this PR, instead specify one FunctionOfTime and the desired asymptotic velocity (and timescale for approaching that velocity) for the outer boundary, e.g.

ExpansionMap:
  OuterBoundary: 25.0
  InitialExpansion: 1.0
  InitialExpansionVelocity: -0.1
  FunctionOfTimeName: 'ExpansionFactor'
  AsymptoticVelocityOuterBoundary: -1.0e-6
  DecayTimescaleOuterBoundaryVelocity: 50.0

From #3421 (Specify temporal_id for interpolation in interpolation target tags):

Interpolation target tags must now specify a temporal_id. In almost all cases it should be using temporal_id = ::Tags::Time;.

From #3365 (Use Frame::BlockLogical as source frame for CoordinateMap in a Block):

  • DomainCreators will need to switch the source frame of their CoordinateMaps to use Frame::BlockLogical
  • If you use BlockLogicalCoordinates for interpolation, they will need to be defined in Frame::BlockLogical
  • If you create a CoordinateMap to construct a Block, it will need to use Frame::BlockLogical as the source frame

From #3330 (Logarithmic cylinder):

The Cylinder now allows to choose the distribution of grid points along the z-axis for each layer. To keep the behaviors the same as before for a single layer, specify DistributionInZ: [Linear].

From #3471 (Convert BoundaryCondition to factory map):

  • Instead of having a type alias of creatable_classes within the system-specific BoundaryCondition base classes, specify a type alias such as standard_boundary_conditions in the BoundaryConditions namespace of the system.
  • In evolution executables, add a tmpl::pair<SYSTEM::BoundaryConditions::BoundaryCondition, SYSTEM::BoundaryConditions::standard_boundary_conditions> to the factory_classes in the metavariables (where SYSTEM should be replaced by the appropriate namespace of the evolution system).
  • You don't need the system-specific BoundaryConditions::register_derived_with_charm function in charm_init_node_funcs anymore.

Merged pull-requests (68)

New features (3):

  • Events and dense triggers with local time stepping (#3355)
  • Switch GRMHD executable to support DG-subcell (#3427)
  • Add multigrid to elliptic executables (#3392)

General changes (49):

  • Ease code coverage target for random-value tests (#3403)
  • Small CMake cleanups (#3402)
  • Add TimeDependence to RotatedIntervals (#3389)
  • Add a note to Pybindings docs (#3415)
  • Document stable step sizes for different time steppers (#3406)
  • GRMHD subcell TCI check positivity of TildeD and TildeTau (#3410)
  • Add Newtonian Euler numerical characteristics (#3395)
  • Convert interpolation indexing to doubles (#3409)
  • Add FixedSpeedCubic to BinaryCompactObject (#3307)
  • Move index reordering higher up in TensorExpression syntax trees (#3387)
  • Add option to apply Persson TCI to GRMHD TildeB (#3418)
  • Add NeighborPackagedData to GRMHD (#3413)
  • Mixed GH+MHD boundary conditions (#3358)
  • Add shape map (#3017)
  • Allow adding dense triggers programmatically (#3429)
  • Specify temporal_id for interpolation in interpolation target tags (#3421)
  • Add MinusLaplacian subdomain preconditioner to speed up elliptic solves (#3378)
  • Pass more things to dense triggers' is_ready (#3433)
  • Use Frame::BlockLogical as source frame for CoordinateMap in a Block (#3365)
  • Add output operators for DataBox and AlgorithmImpl (#3401)
  • Update Gh Bjorhus BC to freeze VPlus if char speed becomes negative (#3370)
  • Add previous trigger time to dense triggers (#3445)
  • Avoid default-constructing all DataBox items twice (#3441)
  • Make a common H5 error message friendlier (#3439)
  • Add analytic data for a plane wave in Minkowski background (#3100)
  • Add load balancing notes to dev guide (#3426)
  • Logarithmic cylinder (#3330)
  • Enable running a gauge wave on a moving mesh (#3435)
  • Observe lapse, constraints in GH exec (#3462)
  • Support spatial spacetime indices for TensorExpressions::AddSub (#3420)
  • Add a flag to prevent factory creation of a class (#3444)
  • Add elliptic HasConverged trigger (#3452)
  • Update python on ocean (#3400)
  • Add Krivodonova and Kuzmin analytic solution to ScalarAdvection (#3386)
  • Add filtering to GH Exec (#3461)
  • Evaluate damping parameters in grid frame (#3460)
  • Make timescale tuner serializable and constructible from options. (#3425)
  • Make Averager serializable and constructible from options. (#3424)
  • Add Quaternion FunctionOfTime (#3327)
  • Subcell minor fixes (#3455)
  • Clarify simple-action failure message (#3474)
  • Make PiecewisePolynomial streamable (#3423)
  • Add range checking to Blaze vector access (#3458)
  • Add outflowing boundary conditions to CurvedScalarWave system (#3407)
  • Add Krivodonova and Kuzmin executable to ScalarAdvection (#3405)
  • Convert BoundaryCondition to factory map (#3471)
  • Add action to randomize elliptic initial guess (#3437)
  • Add orcid ID (Yoonsoo Kim) (#3488)
  • Add apparent-horizon boundary conditions (#2961)

Bugfixes (16):

  • Fix compilation error when the inertial coordinates are evolved in CCE (#3408)
  • Fix AH find (#3399)
  • Fix bounds for XCTS equation tests (#3404)
  • A few minor fixes (#3428)
  • Fix random roundoff cylindrical map errors (#3430)
  • Fix PiecewisePolynomial results at update times (#3432)
  • Fix InterpolationTarget docs (#3438)
  • Fix order of multigrid actions in XCTS executable (#3443)
  • Remove incorrect assertion in component mocking (#3449)
  • Increase an input file test timeout (#3463)
  • Fix typos in Poisson first order system documentation (#3466)
  • Move test functions into anonymous namespace ([#3472]...
Read more

Release 2021.08.02

02 Aug 16:27

Choose a tag to compare

Upgrade instructions

From #2805 (The transformation between the inertial coordinates and the Cauchy coordinates in CCE):

The feature is controlled by uses_inverse_coordinates of CCE metavariables.

From #3279 (Horizon finder in grid frame):

One must now specify compute_vars_to_interpolate instead of compute_items_on_source for interpolation that uses the Interpolator ParallelComponent.

Merged pull-requests (50)

New features (2):

  • Enable HDF5 compression (#3347)
  • Add multigrid solver (#3249)

General changes (44):

  • Subcell GRMHD MC reconstruction (#3319)
  • Add GRMHD prims after rollback mutator (#3328)
  • Factor out TensorIndex into own file (#3339)
  • BoundaryCondition class for GH (#3172)
  • Add the Apparent Horizon tags to EvolveGeneralizedHarmonicWithHorizon.hpp (#3315)
  • Use history order in dense output (#3353)
  • Add overload for GH f_constraint that includes the stress energy contribution (#3350)
  • Rename "new feature" label for release notes (#3344)
  • Make GRMHD conserved variable fixing faster and more robust in atmosphere (#3320)
  • Improve compiler error for bad tmpl::transform (#3356)
  • Remove DG boundary schemes code (#3274)
  • Make Options::Auto take type as label (#3348)
  • Add GRMHD FD time derivative computation (#3331)
  • Add error-based step chooser to executables (#3342)
  • Remove make_overloader from coord maps (#3361)
  • Convert MathFunction to use factory map (#3362)
  • Add EnergyDensity function and tags for the scalar wave system (#3343)
  • Cancel redundant builds on CI (#3351)
  • Add WENO limiter specialized to the NewtonianEuler system (#3359)
  • Revive caching on CI (#3366)
  • Don't cancel repeated CI runs on develop (#3371)
  • Add Schwarz smoothing to elliptic executables (#3271)
  • Move QuaternionHelpers definitions to source file (#3375)
  • Clarify installation docs (#3383)
  • Add ComputeHorizonVolumeQuantities. (#3261)
  • Add velocity field to ScalarAdvection (#3283)
  • Add environment files for expanse (#3324)
  • Factor out common TensorIndex transformation logic into own file (#3349)
  • Add 1D sinusoid solution to ScalarAdvection (#3357)
  • Installing Arpack in the containers (#3323)
  • Fix LibraryVersions.txt (#3369)
  • Port over upwind flux for curved scalar waves as a BoundaryCorrection (#3116)
  • Clean up a left-over file in Docker container (#3385)
  • Add ScalarAdvection executable for 1D sine wave (#3360)
  • Support skipping the preconditioner in elliptic solves (#3379)
  • Revive code coverage reports on CI (#3367)
  • Move stored deriv info to helper in PiecewisePolynomial (#3321)
  • Update FunctionOfTime docs (#3390)
  • Minor cleanups (#3388)
  • Add CREATE_GET_STATIC_MEMBER_VARIABLE_OR_DEFAULT (#3391)
  • Increase cache sizes on CI (#3396)
  • The transformation between the inertial coordinates and the Cauchy coordinates in CCE (#2805)
  • Add CITATION.cff file (#3397)
  • Horizon finder in grid frame (#3279)

Bugfixes (4):

  • Fix missing renames of GrMhd BlastWave (#3363)
  • Add a missing cache flag on CI (#3372)
  • Fix dimensionality bug in GenerateXdmf script (#3382)
  • Clean up ExportCoordinates reduction files (#3398)

Contributors (14): @nilsdeppe, @macedo22, @prayush, @MarloMo, @moxcodes, @nilsleiffischer, @kidder, @fmahebert, @wthrowe, @knelli2, @markscheel, @yoonso0-0, @GitHimanshuc, @Sizheng-Ma

Release 2021.07.08

08 Jul 23:58

Choose a tag to compare

Upgrade instructions

From #3164 (Horizon finder can now fail gracefully):

A type alias horizon_find_failure_callback must now be specified inside of each InterpolationTargetTag that also has a post_horizon_find_callback.

From #3226 (Fix Doxygen grouping):

Any incorrect doxygen grouping symbols (e.g. // @{) will have to be updated to the correct versions (e.g. /// @{).

From #3227 (Fix circular dependency for Parallel/PhaseControl):

Includes will need to be updated to Parallel/PhaseControlTags.hpp, and anything that uses the PhaseControl features likely needs to link the PhaseControl library.

From #3272 (Add phase bookmarks to Algorithm):

Conceivably, if you are designing a phase-control structure that involves returning to a previously visited phase, you may need to consider this change when designing the structure of the action list for the phase that is visited more than once. Most likely, it just relaxes the constraint of ExecutePhaseChange appearing last in the corresponding phase.

From #3304 (Add self-start procedure to CCE):

Any changes to the CCE initialization procedure involving the time step will likely need to be rethought in light of these changes.

Merged pull-requests (88)

New features (5):

  • Add ObserveNorms event to observe norms of any tensor in the DataBox (#3244)
  • Add PhaseControl for checkpointing after wallclock; add checkpointing documentation (#3263)
  • Add EventsAndDenseTriggers (#3221)
  • Allow writing volume data at single precision (#3239)
  • Gh plus mhd (#3219)

General changes (60):

  • Constraint-preserving boundary terms for VMinus (GH) (#3000)
  • Add GH+MHD BoundaryCondition (#3177)
  • Add GH GaugeWave executable (#3131)
  • Switch compute tags to simple tags for elliptic domain geometry (#3247)
  • Add explicit instantiation: Kastaun, NewmanHamlin, Palenzuela to PrimitiveFromConservative (#3252)
  • Improve limiter documentation (#3246)
  • Add new WriteCheckpoint phase (#3209)
  • Cce analytic test: Robinson-Trautman (#2610)
  • Stop storing old values in time-stepper history (#3253)
  • Improve atmosphere treatment (#3241)
  • Fix git info in InfoAtLink and simplify it (#3193)
  • Update GRMHD analytic data for use in WrappedGr (#3190)
  • Add TciOnFdGrid to ValenciaDivClean (#3257)
  • Add InitialDataTci to ValenciaDivClean (#3254)
  • Make ElementId support up to 2^24 blocks and 2^8 grid indices (#3240)
  • Horizon finder can now fail gracefully (#3164)
  • Add elliptic DG subdomain operator (#3127)
  • Subcell: Add NewtonianEuler AO-WENO(5,3) reconstruction (#3222)
  • Remove AddMeshVelocity*, ComputeVolumeSources, source terms and fluxes in cons init, boundary scheme support (#3232)
  • Generalize spec reader to nth order polynomials (#3200)
  • Fix Doxygen grouping (#3226)
  • Add ResizeAndComputePrimitives mutator to NewtonianEuler (#3224)
  • Subcell GRMHD: swap gr tags between DG and subcell grids (#3256)
  • Convert TimeSequence to use factory map (#3258)
  • Add PrimsAfterRollback mutator to NewtonianEuler (#3225)
  • Add functions to transform tensors to different frames. (#3147)
  • Subcell: NewtonianEuler mutators for computing ghost cell data (#3223)
  • Make supporting 50th order DG easier (#3264)
  • Subcell resize dt(vars) and link IO lib (#3265)
  • Add SphericalHarmonic basis (#3047)
  • Minor ElementId cleanup (#3282)
  • Add HLL boundary correction to GRMHD (#3262)
  • Add AddSimpleTags initialization action (#3286)
  • Subcell grmhd ghost data (#3287)
  • Make Options::Parser serializable (#3280)
  • Add FixedSpeedCubic FunctionOfTime (#3275)
  • Add GeneralizedHarmonic Outflow BC (#3288)
  • Factor out TensorExpression::evaluate rank 3 and 4 tests to own files (#3281)
  • Restore missing assignment in BjorhusImpl.cpp (#3303)
  • Add the IrreducibleMassTag to EvolveGeneralizedHarmonicWithHorizon.hpp (#3302)
  • Add ResizeAndComputePrimitives to ValenciaDivClean (#3289)
  • Clarify DataBox error for cases with incorrect member functions (#3312)
  • Add phase bookmarks to Algorithm (#3272)
  • Add subcell GrTagsForHydro (#3290)
  • Add SetVariablesNeededFixingToFalse initialization mutator (#3291)
  • Add FixConservativesAndComputePrims mutator to ValenciaDivClean (#3292)
  • Add compute fluxes helpers to GRMHD for subcell (#3293)
  • Add helper functions for boost quaternions (#3310)
  • Support generic spatial indices for spacetime indices in TensorExpressions except AddSub (#3269)
  • Add NewtonianEuler-specialized minmod limiter (#3267)
  • Convert DomainCreator to use factory map (#3295)
  • Leave moved-from Variables in a valid state (#3329)
  • Make the Krivodonova limiter copyable (#3332)
  • Add SphericalCompression TimeDependence (#3228)
  • Store elliptic internal and external face data in unified map (#3273)
  • Add self-start procedure to CCE (#3304)
  • Update spectre doi author list (#3333)
  • Add ValenciaDivClean Outflow BC (#3285)
  • Add local time-stepping for CCE (#3326)
  • Remove single-extent volume data in test (#3336)

Bugfixes (23):

  • Increase timeout for Schwarzschild input file test (#3251)
  • Fix CylindricalEndcap test (#3238)
  • Eliminate rare asynchronization bug in interpolator. (#3260)
  • Remove ANSI color strings so clang-format patch is valid (#3235)
  • Fix RicciScalarScalar Argument Tag (#3250)
  • Fix circular dependency for Parallel/PhaseControl (#3227)
  • Fix MagnetizedTovStar inheritance bug (#3268)
  • Work around a bug in gcc 7.3 ([#3259](https://github.com/sxs-collaboration/spectre/pull/...
Read more

Release 2021.06.08

08 Jun 16:24

Choose a tag to compare

Upgrade instructions

From #3074 (Find horizon for time-dependent maps.):

The Shell DomainCreator now takes a TimeDependence, and requires TimeDependence in the input file. Set it to None to add no time dependence.

From #3146 (Switch hydro and GH systems to new evolution scheme):

The following changes to Rel Euler, GRMHD, and GH input files are necessary:

  • Domain creator:
    • Remove IsPeriodic (depends on specific domain used)
    • Add BoundaryCondition (depends on specific domain used)
  • Add BoundaryCorrection to SpatialDiscretization
  • Remove NumericalFlux: part of input file

From #3167 (Add scotch dependency):

To use Scotch, follow a build procedure similar to that in the Caltech HPC environment file, and supply the -D USE_SCOTCH_LB=ON cmake flag.

From #3175 (Add Kastaun et al GRMHD primitive recovery scheme):

This is a new primitive recovery scheme.
To enable it in a GRMHD executable, add grmhd::ValenciaDivClean::KastaunEtAl to the ordered_list_of_primitive_recovery_schemes in the metavariables.

From #3150 (Add radial partitioning to Shell domain):

The option parsing arguments for Shell has changed. Example:
Old:

Shell:
   InnerRadius: 1.
   OuterRadius: 2.
   UseLogarithmicMap: false
   RadialBlockLayers: 2

New:

Shell:
    InnerRadius: 1.
    OuterRadius: 2.
    RadialPartitioning: [1.5]
    RadialDistribution: [Linear, Linear]

From #3212 (Ban {CHECK,REQUIRE}_THROWS):

Replace any uses of CHECK_THROWS and REQUIRE_THROWS with CHECK_THROWS_WITH and REQUIRE_THROWS_WITH

Merged pull-requests (82)

Major new features (3):

  • Switch hydro and GH systems to new evolution scheme (#3146)
  • Switch elliptic executables to new compact DG operator (#3113)
  • Add XCTS executable (#3162)

General changes (71):

  • Replace action is_ready with a Retry return result for apply (#3128)
  • Find horizon for time-dependent maps. (#3074)
  • Subcell: add ability reconstruct neighbor fluxes, AO-WENO(5,3) (#3124)
  • Add Z-curve based element distribution (#3056)
  • Add fluxes and characteristics to ScalarAdvection (#3143)
  • Subcell: add ObserveFields event (#3136)
  • Notify components of phase change before starting LB phase (#3145)
  • Subcell: Add action TciAndSwitchToDg (#3133)
  • Add GH+MHD TimeDerivativeTerms (#3134)
  • Add XCTS system and tests (#3107)
  • Switch M1Grey system to new evolution scheme (#3151)
  • Add a safe way to mutably access a DataBox item (#3152)
  • Subcell: add functions for the DG actions to call to support subcell (#3137)
  • Add actions for sending subcell reconstruction data (#3138)
  • Add action to take time step on FD grid (#3139)
  • Add GH+MHD BoundaryCorrection (#3153)
  • Subcell: tags LowerSpatialFourVelocity, OnSubcells, OnSubcellFaces, SubcellSolver option group (#3156)
  • Delete lots of old DG code, move remaining (#3158)
  • Patch charm files quietly (#3161)
  • Support subcell in Burgers HLL and Render1D (#3123)
  • Convert Trigger to use factory map (#3141)
  • Add overlaying to the option parser (#3058)
  • Subcell: Add function to correct packaged data for conservation (#3140)
  • Subcell: GRMHD FD directory, reconstructor base class, and registration function (#3159)
  • Support "massive" elliptic DG operator (#3148)
  • Subcell: Prep GRMHD, var fixers return bool, add subcell dir to GRMHD, return status in recovery (#3157)
  • Print contents of an uncaught exception. (#3170)
  • Add Kerr horizon conforming map (#3115)
  • Add scotch dependency (#3167)
  • Temporarily disable charm inlining (#3165)
  • Compile InfoAtLink.cpp with appropriate flags (#3103)
  • Add walltime output (#3106)
  • Convert DenseTrigger to use factory map (#3174)
  • Constraint-preserving boundary terms for VSpacetimeMetric (#2998)
  • Add periodic boundary condition to ScalarAdvection (#3178)
  • Include TensorExpression interface in Tensor.hpp and clean up TensorExpression includes (#2992)
  • Add DimensionfulSpinVectorTag and change RadiusCompute to type Scalar (#2965)
  • Add hard-coded time-dependent maps to BinaryCompactObject (#2837)
  • Add time derivative and volume terms to ScalarAdvection (#3149)
  • Convert StepChooser to use factory map (#3173)
  • Constraint-preserving boundary terms for VZero (GH) (#2999)
  • Add lld to docker image. (#3189)
  • Add Grmhd riemann problems analytic data (#3180)
  • Grmhd spherical blast wave analytic data (#3181)
  • GRMHD: add magnetized tov analytic data (#3186)
  • CylindricalBBH domain: Add outer radial refinement. (#3168)
  • Move Verbosity to IO/Logging (#3185)
  • Add Charm++ section reductions (#3144)
  • Subcell NewtEul: Add subcell directory and DgInitialDataTci mutator (#3176)
  • Add interpolation target for user-specified points (#3191)
  • Make alg::min_element and alg::max_element constexpr (#3194)
  • Convert Event to use factory map (#3196)
  • Subcell GRMHD: add VariablesNeededFixing tag and TCI options (#3197)
  • Add Kastaun et al GRMHD primitive recovery scheme (#3175)
  • Subcell: Add TciOnDgGrid mutator for NewtonianEuler (#3198)
  • Add ExportTimeDependentCoordinates3D (#3195)
  • Print an error message if memory allocation fails (#1485)
  • Improve GRMHD FixConservatives, remove seconds as unit of simulation time (#3201)
  • Add radial partitioning to Shell domain (#3150)
  • RunSingleTest: Print contents of uncaught exception. (#3205)
  • Print backtrace on floating point exception (#3207)
  • Add Rusanov boundary correction to ScalarAdvection (#3179)
  • Ban {CHECK,REQUIRE}_THROWS (#3212)
  • Make Symmetry doc match implementation and prohibit antisymmetries (#3202)
  • Subcell: NewtonianEuler MC reconstruction scheme in primitive variables (#3160)
  • Subcell: Add TciOnFdGrid mutator for NewtonianEuler ([#319...
Read more

Release 2021.05.03

03 May 18:11

Choose a tag to compare

Upgrade instructions

From #3048 (Rename projection functions for use in AMR, add docs):

  • Rename projection_matrix_mortar_to_element -> projection_matrix_child_to_parent and projection_matrix_element_to_mortar -> projection_matrix_parent_to_child. Make sure to check the order of their arguments.

From #3045 (Add load balancing):

Many yaml files must now include a PhaseChangeAndTriggers: block. If you do not wish to enter the load balancing phase, the block may be left empty.

From #2993 (Merge Wedge2D and Wedge3D maps):

  • If you're using Wedge2D or Wedge3D, rename them to Wedge<2> or Wedge<3>, respectively. Note that the constructor for Wedge<3> takes its argument in a slightly different order now because it was made consistent with Wedge<2>.

From #3065 (Doxygen-ignore cpp files):

  • You don't have to Doxygen-ignore problematic code in cpp files anymore using /// \cond-comments (though you may still have to do so in header files).
  • For Doxygen \snippets write // [snippet_name], not /// [snippet_name].

From #3046 (Add interpolator deregistration, Add load balancing to remaining executables):

Now all of the executables require input file .yamls to have a PhaseChangeAndTriggers entry

From #3080 (Support log and inverse radial distributions of grid points in Cylinder):

If you construct Wedges with the use_logarithmic_map option, change the boolean to domain::CoordinateMaps::Distribution::Logarithmic.

From #3084 (Move factory information to the metavariables):

The available factory-creatable types for some base classes (currently just StepController) are now specified in a factory_creation struct in the metavariables. See one of the standard executables for an example. More base classes will be converted to this new method over time.

Merged pull-requests (61)

Major new features (2):

  • Add load balancing (#3045)
  • Switch Burgers, ScalarWave, and NewtonianEuler to new evolution scheme (#3053)

General changes (47):

  • Utilites for spacetime quantities on 2-surfaces (#2997)
  • Clarify errors: CERROR breakpoint, backtrace addr2line support, DataBox clarification (#3052)
  • Rename projection functions for use in AMR, add docs (#3048)
  • Improve YlmSpherepack documentation (#3029)
  • Merge Wedge2D and Wedge3D maps (#2993)
  • Add option to output noninertial News (#3044)
  • Doxygen-ignore cpp files (#3065)
  • Use charm inline method instead of eliding charm (#3067)
  • Add interpolator deregistration, Add load balancing to remaining executables (#3046)
  • Improve EveryLB instructions (#3077)
  • Add needs_evolved_variables method to events (#3064)
  • Forbid cmake commands using literal library names (#3042)
  • Add higher-dim projection operators, child_size function for AMR (#3082)
  • Add DynamicBuffer (#3055)
  • Auto-publish releases on Zenodo (#3089)
  • Add boundary conditions for radiation transport system (#3090)
  • Add dense triggers (#2983)
  • Add comment explaining charm inline oddities (#3093)
  • Add XCTS system equations (#2667)
  • Add DG-subcell initialization action (#3069)
  • Make CSW::ComputeLargestCharSpeed a compute tag (#3099)
  • Template YlmSpherepack interpolation so it can use DataVectors and doubles (#2940)
  • Instantiate Fastflow and its dependents for Frame::Grid. (#3104)
  • Support parsing Charm++ 6.11 version file (#3079)
  • Add contributors and PR counts to release notes (#3088)
  • AddTemporalIdsToInterpolationTarget now works with time-dependent maps (#3005)
  • Add "compact" elliptic DG operator (#2912)
  • Add caltech HPC environment file (#2470)
  • KerrSchild analytic solution now works for different frames. (#3105)
  • Add HLLC boundary correction for NewtonianEuler system (#3063)
  • Add subcell action labels and select method action (#3108)
  • Add finite difference reconstruction schemes: minmod and MC (#3094)
  • Update parallelization docs on action types (#3112)
  • Add Kerr solution to XCTS equations (#3068)
  • CylindricalBinaryCompactObject domain (#3059)
  • Subcell init action cleanup (#3121)
  • Add script that can interpolate VolumeData in an h5 file (#2761)
  • Add binary data for the XCTS equations (#3057)
  • Add ScalarAdvection system skeleton and Tags (#3111)
  • Add dot product between std::arrays (#3114)
  • Adds time dependence to InterpolationTargetReceiveVars (#3073)
  • Subcell: Cartesian flux divergence, compute boundary terms (#3125)
  • Add DG-subcell TciAndRollback action (#3122)
  • Support log and inverse radial distributions of grid points in Cylinder (#3080)
  • Add valencia stress energy calculation (#3083)
  • Move factory information to the metavariables (#3084)
  • Add multigrid hierarchy functions (#3096)

Bugfixes (12):

  • Fix handling of base alias in simple tags (#3070)
  • Fix issue with link.h being unavailable on some platforms (#3081)
  • Loosen tolerance in GRMHD char test (#3075)
  • Loosen tolerance in RelativisticEuler cons2prim (#3072)
  • Allow non-static library for moduleLB (#3087)
  • Fix broken example executables (#3091)
  • Remove doxygen comments from DynamicBuffer.cpp (#3095)
  • Restore CI: Use a cmake variable in M1 system (#3097)
  • Remove use of env -S (#3098)
  • Fix Caltech HPC environment according to follow-up suggestions (#3120)
  • Change wheeler openmpi module down to openmpi/2.0.0 (#3109)
  • Enable cleanup on CCE input file tests (#3130)

Contributors (9): @prayush, @nilsdeppe, @nilsleiffischer, @nikwit, @moxcodes, @wthrowe, @fmahebert, @markscheel, @yoonso0-0

Release 2021.04.06

06 Apr 17:07

Choose a tag to compare

Upgrade instructions

From #2984 (Fix vector comparison):

Be sure to use == on Variables and vectors only where you actually mean strict (bitwise) equality. Otherwise, use CHECK...APPROX in tests.

From #2862 (Error stepper action reorder):

Be sure to update any local time-stepping action lists to match the control flow in the EvolveScalarWave.hpp in this PR.
Note that when using local time-stepping and not in self-start, the ComputeTimeDerivative action now performs the steps previously done by RecordTimeStepperData, UpdateU, and ChangeStepSize.
Those actions are still available for cases in which either local time-stepping is not used or ComputeTimeDerivative is not used.

From #3010 (Include factor of dimension in CFL calculation):

The SafetyFactor option to the Cfl step chooser has changed its meaning. To maintain the same behavior, multiply the value in the input file by the spatial dimension of the evolution.

From #3026 ((De)registration during serialization):

Any new registration structs should define the new perform_registration and perform_deregistration functions to conform to the interface expected by the DgElementArray pup.

From #3020 (Add error control step chooser):

Most executables should now add the simple and compute tags associated wtih the metavariables' step_choosers sometime during initialization.
The compute_largest_characteristic_speed alias of most Systems must now be a compute tag.

Merged pull-requests

General changes:

  • Clean up Algorithm iterable action implementation (#2960)
  • Clean up CMakeLists oddities (#2966)
  • Rename and add a few functions in MockRuntimeSystem. (#2974)
  • Add Inactive tag to Dg-subcell (#2959)
  • Add function to compute FD mesh from DG mesh (#2941)
  • Use multi-indices to compute LHS tensor from tensor expressions (#2968)
  • Add ability to specify ranges for random numbers in boundary corrections test helper (#2969)
  • ScalarWave ConstraintPreservingSphericalRadiation and Periodic boundary conditions (#2938)
  • Finish dense output for substep integrators (#2976)
  • Add TensorExpressions::evaluate overload that takes LHS Tensor as an argument (#2946)
  • Fix vector comparison (#2984)
  • Add Rusanov boundary correction for the relativistic Euler system (#2970)
  • Add function to reconstruct DG solution from subcells (#2958)
  • Add functions to compute interface projection operators (#2820)
  • Add SphericalCompression CoordMap (#2720)
  • Simplify code in DataBoxTag.hpp (#2929)
  • Instantiate volume_terms for CurvedScalarWave (#2972)
  • Add functions to compute Weyl char modes U8 (#2850)
  • Covariant derivative of extrinsic curvature (#2851)
  • Add action to reset Schwarz subdomain solver (#2949)
  • Export GCC_HOME in ocean_gcc.sh spectre_run_cmake (#3008)
  • Add HLL boundary correction for NewtonianEuler system (#2921)
  • Error stepper action reorder (#2862)
  • Add elliptic InitializeBackgroundFields action (#2948)
  • Support aggregate-initialization in option parsing (#3009)
  • Fix source frame in CoordinateMap tag, take coordinates tag as template parameter for MappedCoordinates (#3004)
  • Refactor minmod code (#3013)
  • Simplify input arguments for the two-index and F-constraints (#2528)
  • Factor out TensorExpression Product stress test into own own test file (#3012)
  • Include factor of dimension in CFL calculation (#3010)
  • Add interpolation of Gauss points to GL points for Bjorhus boundary conditions (#2975)
  • Add some logging to Schwarz solver reductions (#2907)
  • Remove unused TensorExpression tests from old implementation (#3006)
  • Subcell tags for the mesh, coordinates, and TCI status (#3003)
  • Add two-mesh relaxed DMP troubled cell indicator (#3001)
  • Add boundary conditions for RelativisticEuler (#3015)
  • Allow different boundary conditions on bases and mantle of cylinder (#2986)
  • Add CylindricalSide Map (#2386)
  • Add documentation to InterpolationTarget.hpp (#2943)
  • Add Persson troubled-cell indicator function (#2942)
  • Add infinity to the evolution comparators (#3007)
  • Add subcell options class and tag (#3002)
  • Add boundary conditions to ComputeTimeDerivative action (#2977)
  • Add phase change factory-creatable (#2990)
  • Combine excision and inner boundary condition options in binary domain creator (#2964)
  • Update Minerva env and add submit script (#2947)
  • Add Robin boundary conditions for Poisson system (#2951)
  • Add Flatness boundary conditions for XCTS (#2954)
  • Add Flatness solution for XCTS system (#2955)
  • Add using_subcell type trait (#3036)
  • Add visit and return phase change, and interface helpers (#2991)
  • (De)registration during serialization (#3026)
  • ObserveTimeStep Time Output (#2962)
  • CylindricalFlatEndcap map. (#2401)
  • Add Rusanov boundary correction for M1Grey system (#3033)
  • Update CMake policy (#3027)
  • Add elastic strain function, used for XCTS longitudinal shift (#3040)
  • Update OceanClang.sh submit script to preserve spectre environment during submission (#2860)
  • CylindricalFlatSide map. (#2405)
  • Add error control step chooser (#3020)
  • Add remaining XCTS variables to Schwarzschild solution (#3043)
  • Subcell add function to compute TCI status and compute tag (#3035)
  • Add tmpl::as_pack function (#3049)
  • Add method to compute the spatial Ricci tensor from GR and GH vars (#2529)
  • Subcell: add class to store neighbor data for reconstruction and RDMP TCI (#3038)
  • Support anisotropic and inhomogeneous refinement in Cylinder (#3021)
  • Add custom tolerance on boundary corrections conservation test (#3051)
  • Add grid index to ElementId (#3031)
  • Subcell: add relaxed discrete maximum principle TCI (#3039)
  • Subcell: tags DidRollback and caching Jacobians ([#3...
Read more