Skip to content

Releases: sxs-collaboration/spectre

Release 2021.08.02

02 Aug 16:27
Compare
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
Compare
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
Compare
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
Compare
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
Compare
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

Release 2021.03.09

09 Mar 19:16
Compare
Choose a tag to compare

Upgrade instructions

From #2797 (Basic build optimizations):

SetupDataBox now applies to the full phase-dependent action list, rather than just the phase in which it is used. Therefore it should now appear only once for an entire PDAL, and in most cases should appear at the start of the Initialization phase.

From #2815 (Add Parallel::Callback for use in MutableGlobalCache.):

The return type of GlobalCache::mutable_cache_item_is_ready is now std::unique_ptr<Parallel::Callback> instead of std::optional<CkCallback>.

From #2853 (Enable use of reference items in the DataBox):

  • Compute tags must return by reference (i.e. have a void function taking their return_type by gsl::not_null).
  • Anything referring to the old names of the type aliases in DataBox will need to use the new name.

From #2886 (Add H5 checking to input file tests):

PyYaml is now a dependency

From #2877 (Change python interface for opening h5 files in modes like readonly or readwrite):

When opening h5 files with python bindings, you now have to specify the opening mode, see https://docs.h5py.org/en/stable/high/file.html
The old version is equivalent to opening with a (append) mode.

From #2793 (Replace MockRuntimeSystem cache() function.):

ActionTesting::cache() now has a template parameter and an argument.

From #2693 (Time dependent triple gaussian):

This PR only modifies the generalized harmonic DampingFunction infrastructure. When using the test helper to test a DampingFunction, there is now a new required argument to the helper's check() function: a string naming which FunctionOfTime in the FunctionsOfTime passed to the call operator should be used. For time-independent DampingFunctions, this string can be anything, because time-independent damping functions should ignore the passed-in FunctionsOfTime entirely.

From #2899 (Rewrite DataBox implementation):

None, unless you were changing implementation details of DataBox, in which case you'll likely need to start over...

From #2794 (Rewrite ActionTesting::invoke_random_queued_action):

Usage of invoke_random_queued_action is slightly different, as it now uses the new function array_indices_with_queued_actions.

From #2904 (Add lock-retrieval 'local sync action', use to lock h5 access in CCE):

No need for thread-safe hdf5 for CCE runs anymore.

From #2937 (Add time and slab comparison triggers):

The PastTime trigger has been removed. It was equivalent to the new TimeCompares trigger with a Comparison of GreaterThan (or LessThan for backward-in-time evolutions).

Merged pull-requests

General changes:

  • Use system without boundary condition in 3d domain creator tests (#2840)
  • Various small time-related test improvements (#2790)
  • Upgrade cache action on CI (#2854)
  • Update Ocean to blaze 3.8 (#2835)
  • Make preconditioners the identity when skipped (#2788)
  • Add boundary condition support to RotatedIntervals (#2845)
  • Add boundary condition support to Rectangle domain creator (#2846)
  • Give the Schwarz subdomain operator the full power of the DataBox (#2832)
  • CylindricalEndcap Map (general version) (#2373)
  • Basic build optimizations (#2797)
  • Add Parallel::Callback for use in MutableGlobalCache. (#2815)
  • Add MaxRicciScalarTag to Tags.hpp (#2791)
  • Add elliptic AnalyticSolution boundary condition (#2843)
  • Add boundary conditions support to Shell domain creator (#2858)
  • Boundary conditions rotated rectangle and disk (#2847)
  • Enable use of reference items in the DataBox (#2853)
  • Add boundary condition support to Brick domain creator (#2864)
  • Add boundary condition support to RotatedBricks domain creator (#2865)
  • Add boundary condition support to FrustalCloak and an image of FrustalCloak to the dox (#2863)
  • Add boundary condition support to Sphere domain creator (#2859)
  • Add compute tag for elastic strain (#2833)
  • Add boundary condition support to Cylinder domain creator (#2861)
  • Add boundary condition support to AlignedLattice domain creator (#2866)
  • Creates new write path unit_test_build_path pointing to tests/unit in build directory (#2542)
  • Support multiplication of doubles and TensorExpressions (#2831)
  • Fix the function used to calculate the largest char speed for curved SWs (#2600)
  • Add H5 checking to input file tests (#2886)
  • Mock cores/nodes cleanup (#2872)
  • Add Shu-Osher shock tube and Sod explosion analytic data (#2839)
  • Convert from multi-index to storage index without canonicalization (#2855)
  • Support addition and subtraction of doubles with TensorExpressions (#2881)
  • Simplify periodic boundary conditions, and add None boundary condition (#2884)
  • Update Adams-Bashforth history at the start of steps (#2894)
  • Have elliptic systems specify their supported boundary conditions (#2885)
  • Generalize WENO limiters to handle Gauss points (#2857)
  • Remove Doxygen from TensorExpression Product cpp test file (#2895)
  • Make the elastic constitutive relation a reference tag (#2891)
  • Test_CylindricalEndcap: relax conditions of test. (#2882)
  • Support division of TensorExpressions by doubles (#2898)
  • Factory-create the elliptic background and initial guess, reduce number of elliptic executables (#2603)
  • Add longitudinal operator for XCTS equations (#2878)
  • Support printing messages on reductions (#2849)
  • Infrastructure tweaks to support error-measure based stepping (#2841)
  • Support square root of rank 0 TensorExpressions (#2900)
  • Change python interface for opening h5 files in modes like readonly or readwrite (#2877)
  • Add python bindings for get_dimension of VolumeData and pickling support for mesh (#2870)
  • Replace MockRuntimeSystem cache() function. (#2793)
  • Time dependent triple gaussian (#2693)
  • Factor ObserveFields work into a static member function (#2901)
  • Add local sync action (#2902)
  • Add MinRicciScalarTag to Tags.hpp (#2911)
  • Clean up Adams-Bashforth code (#2906)
  • Have elliptic systems specify tags for their fluxes (#2875)
  • Support Pypp random-tests for functions that mutate their result buffer (#2876)
  • Make XCTS Schwarzschild solution factory-creatable (#2880)
  • Fix CCE initialization for...
Read more

Release 2021.02.08

08 Feb 23:04
Compare
Choose a tag to compare

Upgrade instructions

From #2687 (Observe analytic solutions if available):

  • If you retrieved analytic solutions from the DataBox as ::Tags::Analytic<Tag>, update your code to retrieve ::Tags::AnalyticSolutionsBase instead. It currently always holds a Variables from which you can retrieve the analytic solution fields as ::Tags::Analytic<Tag> the same way you did before. In the future it may hold a std::optional<Variables> in cases where it is not clear at compile-time that analytic solutions are available.

From #2574 (Use Blaze 3.8 (exclusively) (again), and test architectures):

Upgrade the Blaze library to version 3.8.

From #2792 (Add mocked cores and nodes to ActionTesting):

  • In ActionTesting, if you are mocking a Group, Nodegroup, or Singleton component, these should now have chare_type set to MockGroupChare, MockNodeGroupChare, or MockSingletonChare instead of MockArrayChare. Note that MockArrayChare will sometimes work for these components for some tests, but not if ckLocal or ckLocalBranch is ever called on those components.
  • In ActionTesting, the new functions emplace_singleton_component, emplace_group_component, emplace_array_component, and emplace_nodegroup_component should be used instead of emplace_component. Note that emplace_component still works but will be removed in the future.
  • The functions in Utilities/System/ParallelInfo now have two versions: the low-level charm++ version (in the sys namespace) and a new version templated on the DistributedObject. The sys version should be used only for low-level things like AbortWithErrorMessage or the ParallelInfo executable where you know they will never be mocked; the templated version should be used everywhere else.

Merged pull-requests

General changes:

  • Add evolution boundary condition type and domain boundary condition base class (#2750)
  • Check that det(Jacobian) is positive in coordinate maps using discrete rotations (#2751)
  • Add quadrature to Mortars & DgDomain init, support Gauss pts and weak form in ComputeTimeDerivative (#2721)
  • Add elliptic utility to work with tags containing maps (#2733)
  • Fix slow vector tests gcc10 (#2730)
  • Re-arrange Blaze template expressions (#2728)
  • Add ApplyBoundaryCorrections action to go with ComputeTimeDerivative (#2722)
  • Print back trace from ERROR and ASSERT macros, add ERROR_NO_TRACE macro (#2766)
  • Finish removing uses of boost::optional (#2753)
  • Make TensorExpression abstract (#2771)
  • Add support for GR/non-flat metrics to ComputeTimeDerivative (#2772)
  • Add ChristodoulouMass compute tag (#2752)
  • Add test helper for elliptic first-order systems (#2675)
  • Observe analytic solutions if available (#2687)
  • Implement TensorExpression Product (#2716)
  • Remove TensorExpression multi-index get overloads (#2775)
  • Use unsorted generic indices in AddSub (#2776)
  • Add error measures to steppers (#2630)
  • Add TensorExpression test with multiple operations (#2777)
  • Cce analytic test exe prep, add option parsing for std::complex, add integer static cache range (#2608)
  • Upgrade docs deployment, enable on forks (#2739)
  • Generalize Minmod limiter to handle Gauss points (#2783)
  • Add boundary conditions to Block and Domain classes (#2770)
  • Add curved background support to boundary corrections test helpers (#2765)
  • Support factory-creating the Schwarz subdomain solver and add ExplicitInverse solver (#2664)
  • Add Boundary conditions test helpers (#2798)
  • Add Boundary corrections for Burgers (#2767)
  • Add Rusanov boundary correction to Newtonian Euler (#2768)
  • Derive elliptic solutions from base classes (#2698)
  • Orient std::vector on slices (#2800)
  • Add upwind penalty boundary correction for scalar wave (#2769)
  • Add time dependence to evolution observer input file test (#2789)
  • Prepare curved Poisson and Elasticity systems for use in XCTS equations (#2674)
  • Refactor ComputeTimeDerivative (#2799)
  • Add struct for marking DataBox tags for a reference item (#2807)
  • Clarify contributing guide: PRs don't need everyone's re-approval before merging (#2811)
  • Add python bindings for mesh and regular grid interpolant (#2734)
  • Improve action of Minmod limiter and TCI at external boundaries (#2795)
  • Update Blaze version requirements to 3.7 (#2816)
  • Documentation: threaded_action is an entry method. (#2802)
  • Prohibit serializing a non-owning vector (#2804)
  • Add Rusanov boundary correction for GRMHD, make lapse, shift, inv spatial metric temp tags (#2814)
  • Add trivial solution to Poisson and Elasticity systems (#2812)
  • Make TensorExpression member variables non-const (#2810)
  • Use Gauss points in test for ApplyMatrices (#2808)
  • Add tag traits for a reference tag (#2817)
  • Use Blaze 3.8 (exclusively) (again), and test architectures (#2574)
  • Compute elliptic sources in two steps (#2818)
  • Pypp: better error msg, better string support, factor normal vector boundary correction helper code (#2827)
  • Rename elliptic fluxes and sources computer type aliases (#2819)
  • Evolution: remove InterfaceTags, support unaligned meshes, stop copying fluxes (#2824)
  • Add variables for Neumann boundary conditions to elliptic solutions (#2828)
  • Add tags for elliptic DG (#2826)
  • Add getter for remote mortar data (#2823)
  • Add boundary condition support to Creators::Interval (#2803)
  • Handle reference tags in db::tag_name (#2836)
  • Add upwind penalty boundary correction to GH (#2813)
  • Add mocked cores and nodes to ActionTesting (#2792)
  • Add base class for elliptic boundary conditions (#2732)
  • Move penalty function for elliptic DG to its own file (#2821)
  • Loosen restrictions on divergence return buffer tags (#2822)

Bugfixes:

  • Update Wheeler env, LIBXSSM+Pybind11 (#2749)
  • Fix version name validation in release workflow (#2756)
  • Fix arguments not passed to Python executables (#2759)
  • Remove extra comma in python init files (#2764)
  • Fix protocol assert_conforms_to, relax NumericalFlux requirements for evolution DG transitio...
Read more

Release 2021.01.11

11 Jan 21:28
54336a2
Compare
Choose a tag to compare

Upgrade instructions

From #2672 (Make finding Python in build system more robust, update Docker container):

From #2737 (Require LIBXSMM 1.16.1):

Upgrade your local LIBXSMM installation to 1.16.1 or newer, or update to the latest container

From #2691 (Create low-level SystemUtilities lib to resolve cyclic dependency between ErrorHandling and Parallel):

  • If you are looking for ErrorHandling/ headers, you'll find them in Utilities/ErrorHandling/ now.
  • If you are looking for low-level headers like Parallel/Info.hpp, see if you find what you need in Utilities/System/.

Merged pull-requests

Major new features:

  • Add code development quick-start guide (#2465)
  • Add parallel Newton-Raphson nonlinear solver with line-search (#2564)
  • Add 1D data visualization tool (#1578)
  • Add interpolation option for ObserveFields (#2658)

General changes:

  • Improve/fix FixedHashMap & std::optional serialization (#2622)
  • Provide the (reconstructed) input from the parser (#2624)
  • Factor NewtonianEuler/ComputeItems.?pp into several files (#2617)
  • Support 'None' label for Options::Auto (#2626)
  • Add Schwarzschild solution to XCTS system in isotropic coords (#2490)
  • Move algorithms to src (#2616)
  • Add function to check conservation for new boundary corrections (#2589)
  • Functions and tags for computing normal vectors in general spacetimes (#2596)
  • Require catch 2.8, print more digits in catch output (#2638)
  • Allow running clang-tidy in parallel (#2493)
  • Remove TensorIndex type aliases (#2640)
  • Make mesh option-parsable (#2642)
  • Make DampingFunctions depend on FunctionsOfTime (#2643)
  • Update catch2 on ocean (#2651)
  • Add NumIterations convergence reason (#2627)
  • Optimize serial linear solvers and support factory-creation (#2629)
  • Refactor action testing (#2634)
  • Add script to compile release notes, update PR template and add tests (#2637)
  • Global cache serialization functions (#2613)
  • Pypp revamp (#2557)
  • Redesign spec FunctionOfTime importer to only read the H5 file once (#2559)
  • Add CMake options to make profiling easier (#2633)
  • Update Singularity Website links (#2657)
  • Remove suggested values from ObserveFields (#2661)
  • Distinguish option parser output from other output (#2662)
  • Allow disabling git hooks (#2663)
  • Make DampingFunctions return by not_null (#2665)
  • Python visualization scripts cleanup (#2671)
  • Add unit-tests target (#2670)
  • Add SpinFunctionTags to Tags.hpp (#2635)
  • Compute internal boundaries/faces in new DG dt action (#2621)
  • Support shared libs with python bindings, switch CI to mostly use shared libs (#2669)
  • Drop support for clang 6 and 7 (#2659)
  • Update ocean to cmake 3.18.5 (#2688)
  • Update wheeler environments (#2660)
  • Add automatic versioning (#2598)
  • Make finding Python in build system more robust, update Docker container (#2672)
  • Replace boost::optional -> std::optional in CoordinateMaps (#2685)
  • Add note for necessary jemalloc pre-load in documentation (#2704)
  • Add CMake option to remove unit-tests from test-executables (#2723)
  • Allow undefined symbols on Darwin for InfoAtLink (#2689)
  • Remove unneeded TensorExpression storage index maps (#2715)
  • Add documentation for how to run basic CCE (#2498)
  • Serialize algorithm (#2374)
  • Find newer versions of LIBXSMM and add clang-11 to CI (#2706)
  • Make std::variant option-parsable (#2656)
  • Add option alternatives (#2625)
  • Add sending new boundary corrections to ComputeTimeDerivative (#2702)
  • Require LIBXSMM 1.16.1 (#2737)
  • Remove boost::optional in moving mesh code (#2736)
  • Create low-level SystemUtilities lib to resolve cyclic dependency between ErrorHandling and Parallel (#2691)
  • Add DimensionfulSpinMagnitudeTag to Tags.hpp (#2713)
  • Fix move constructor and move assignment for NodeLock (#2699)
  • Add enum for elliptic boundary condition types (#2725)
  • Add logical partial derivative function for individual tensors (#2682)
  • Add computation of Jacobian, inverse Jacobian, and determinant of the Jacobian that satisfy the metric identities (#2683)
  • Prevent newer clang from producing FPEs (#2741)
  • Convert FunctionsOfTime to cache tag (#2614)
  • Update libxsmm on ocean to 1.16.1 (#2747)
  • Fix automatic versioning on protected branch, enable reviewing releases before they are dispatched (#2738)
  • Small code cleanups in coord maps (#2740)
  • Add python test function for boundary corrections (#2700)

Bugfixes:

  • Fix Boost header guard for versions 1.73.0+ (#2636)
  • Fix HalfSpaceMirror test timeouts (#2641)
  • Fix Boost version across CMake versions (#2649)
  • Fix typo in clang-tidy runs (#2648)
  • Fix typo in an error message (#2647)
  • Fetch upstream tags on forks to fix CI (#2666)
  • Ra...
Read more

Release 2020.12.07

07 Dec 22:09
839a7d1
Compare
Choose a tag to compare

Initial release