Skip to content

Latest commit

 

History

History
512 lines (397 loc) · 44 KB

CHANGELOG.md

File metadata and controls

512 lines (397 loc) · 44 KB

Changelog

The format is based on Keep a Changelog and this project (mostly) adheres to Calendar Versioning.

All major changes to the Athena++ private repository between each version/tag are summarized in this CHANGLEOG.md document. Each version has an Issues and Pull Requests section, whose subsections are automatically populated from the issue/PR labels. The list entries contain links to the private repository issue tracker #N id.

Additionally, the changes are manually summarized using the following categories:

  • Added: for brand new features or extended capabilities
  • Fixed/Changed: for bug fixes or modified behavior
  • Removed: for removed functionality

The automatically-generated content should be used for reference when writing these sections. At this time, both the private and public GitHub Release Notes are started by copy/pasting from these sections.

Full Changelog

v21.0 (2021-01-06)

Full Changelog

Removed

  • Multigrid solver and related regression tests (removed directly from v21.0-dev)

v21.0-dev (2021-01-06)

Full Changelog

Implemented enhancements:

  • Need more flexible task control in STS #270
  • Enable AMR/SMR and source terms with -sts #250
  • Robustness improvements to relativity #316 (c-white)
  • Change primitive velocities in SR #303 (c-white)
  • Update passive scalars to have user source terms and work with relativity #297 (c-white)

Fixed bugs:

  • Spurious waves emerging from corners using the intel 19.1 compiler and MPI? #340
  • EOS Riemann regression test fails #335
  • Unused and uninitialized variables with orbital advection #332
  • regression tests for diffusion do not work & failed #328
  • Reconstruction of passive scalars uses wrong array size #306
  • malloc error with gcc compiler, spherical polar coordinate and xorder=3 #304
  • RK3 integrator breaks conservation #300
  • Runtime error "pure virtual method called" with intel compiler #289
  • Test GR/SR compatibility with passive scalars #281
  • New Limitation of MeshBlock Size #343 (tomo-ono)
  • Move Poisson solve to after ptlist->DoTaskListOneStage() #309 (pdmullen)
  • Add support for NSCALARS > NWAVE #307 (msbc)
  • Fix logic in bvars_sts designation #305 (pdmullen)

Closed issues:

  • bugs in using std::min or std::max for single precision #326
  • Mismatch of the function argument in WeightedAve for FaceField #318

Merged pull requests:

  • Implemented the source term formula for gravitational acceleration #344 (tomidakn)
  • Enable STS in Shearing Box with Orbital Advection #342 (tomo-ono)
  • Logical location (long)is used to set array index (int) -- Jenkins passed! #341 (changgoo)
  • Fix lack of deallocating dynamic memory #338 (tomo-ono)
  • fix dependency in tasklist #337 (tomo-ono)
  • Increased thresholds for eos_riemann test #336 (msbc)
  • fix EMF flux correction in shearing box #334 (tomo-ono)
  • fix unused and uninitialized variables #333 (tomo-ono)
  • Fix conditionals in TimeIntegratorTaskList fns for compatibility with STS #331 (pdmullen)
  • Docstring Style Correction #330 (changgoo)
  • Correct the input block name in the turbulence regression test and make driving isotropic regardless of the box shape #329 (changgoo)
  • put cast in the min or max function #327 (tomo-ono)
  • Implement a New Discretization of the Gravitational Stress Tensor #325 (pdmullen)
  • Change in turbulence input style #324 (changgoo)
  • Fix Bug with Mesh Structure Output #322 (tomo-ono)
  • Orbital Advection & New Shearing Box #321 (tomo-ono)
  • Fix typo: bounday_flag.cpp to boundary_flag.cpp #320 (changgoo)
  • Fix mismatch between WeightedAve prototype and definition #319 (pdmullen)
  • Improve performance of turbulence driver #317 (changgoo)
  • Update to bug fix on fft pgen #315 (changgoo)
  • Fix typo in HLLC and bug in Hydrogen EOS #314 (msbc)
  • Bug fixes for FFT; New regression test #313 (changgoo)
  • Modifying the KH problem and a input file for MHD KH #312 (tomo-ono)

v19.0 (2019-08-06)

Full Changelog

Removed

  • Multigrid solver and related regression tests (removed directly from v19.0-dev)

v19.0-dev (2019-08-06)

Switched to using CalVer (Calendar Versioning) scheme from SemVer (Semantic Versioning). v1.1.1-dev was the previous tag and version.

Full Changelog

Implemented enhancements:

  • Extend user-defined history outputs beyond parallel summed quantities #237
  • Add test coverage for Roe Riemann solvers #231
  • Add "logging" module to all regression tests to replace calls to print() #203
  • Warn users about proper polar vs. polar_wedge boundary condition flag #196
  • Loading SMR data at native resolution #173
  • Create cleaner failure mode for incorrect input parameter file text formatting #168
  • Extend vis/python/uniform.py to 2D HDF5 files #164
  • (Non-Zero) Mean Density Must Be Set for FFT Self-Gravity with Periodic BC's #155
  • include input parameters in hdf5 output? #143
  • Extend TaskList to support more than 64 task IDs #286 (tomidakn)
  • Add timing to regression tests #284 (msbc)
  • Throw error when reading HDF5 files with ghost zones if their number hasn't been specified. #280 (msbc)
  • Add user ability to specify names of libraries when linking #277 (c-white)
  • Remove MeshBlock dependency of FFTDriver #276 (changgoo)
  • Move MGGravity from GravityDriver to MeshBlock #275 (tomidakn)
  • Add input option to output more timestep diagnostics #273 (felker)
  • Refactor MeshBlockTree to save memory footprint #262 (tomidakn)
  • Replace AthenaArray<T>::InitWithShallowCopy with C++ references #261 (felker)
  • Rewrite shearing box capabilities #260 (felker)
  • Remove do-nothing DeleteAthenaArray calls #258 (felker)
  • Refactor bvals/ and Mesh::AdaptiveMeshRefinement() #257 (felker)
  • Replace AthenaFFTComplex with std::complex<Real> #256 (felker)
  • Deduplicate 4x STS regression tests #252 (pdmullen)
  • Adds logging module to all regression tests to replace calls to print() #251 (msbc)
  • Global initialization of turbulence realization #241 (changgoo)
  • Enable FFT for an entirely refined mesh #240 (changgoo)
  • Optimize performance of SR/GR calculations #235 (beiwang2003)
  • Improve all enumerated types #234 (felker)
  • Add test coverage for MHD and Hydro Roe Riemann solvers #233 (msbc)
  • Replace holdovers from C with C++11 alternatives #219 (felker)
  • Update ShowConfig for general EOS #218 (msbc)
  • Extend line plotting to .athdf files #211 (c-white)
  • Make C++ exception handling optional; standardize more C++11 headers and namespace usage #190 (felker)
  • Extend Kelvin-Helmholtz problem generator #187 (felker)
  • Use C++ compiler front ends for main/documented "configure.py --cxx" options but support C front ends; add built-in support for Apple+LLVM with OpenMP workaround #186 (felker)

Fixed bugs:

  • athena_read.py silently fails when ghost zones are saved to file #279
  • MPI + continuous turbulence driving with OU process is broken #267
  • Invalid read in AMR #229
  • NaN'ing outputs may not be caught by some regression tests #223
  • Bug with permuting fft directions in athena_fft.cpp #217
  • 1D AMR not refining third component of magnetic field correctly #212
  • MPI/AMR segfaulting #199
  • RECV_* boundary buffer receive tasks are missing dependencies on matching INT_* integration tasks #198
  • Possible incorrect memory access in spherical_polar coordinates: private & public version #192
  • athena_read.athdf() handles ghost zones incorrectly #184
  • Possible race condition in OpenMP #183
  • SMR causes issues with cell sizes difference warning in spherical coordinates with user mesh generator #180
  • uniform.py now writes all 0s when overwriting a file #179
  • OpenMP is broken; add regression tests to prevent this in the future #175
  • Some regression tests never fail #174
  • Python reader fails for slices taken across multiple blocks #159
  • Python HDF5 reader no longer returns refinement levels #156
  • Is ApplyPrimitiveFloors() being called too often? #153
  • Fix bug when saving zero scalars to restart file #285 (msbc)
  • Fix bug when saving multiple scalars to restart file #283 (msbc)
  • Fix minor issues with Python HDF5 reader #278 (c-white)
  • Fix curvilinear reconstruction, add regression test scripts (passive scalars, MPI shearing box, etc.), and other QoL improvements #274 (felker)
  • Revert GR optimizations #272 (c-white)
  • Fix a NaN bug (#267) caused by the incorrect out-of-place FFT #268 (changgoo)
  • Fix bug in spherical plotting script #265 (c-white)
  • Fix shearing box + MPI #264 (felker)
  • Fix FFT permutation bug #238 (changgoo)
  • Improve NaN handling in Python scripts #224 (felker)
  • Fix fail criterion for diffusion/*_diffusion* tests #222 (pdmullen)
  • Fix typo in 1D prolongation of magnetic field #216 (c-white)
  • Fix general EOS bugs and add eos_test pgen #214 (msbc)
  • 1D MHD AMR fix #213 (c-white)
  • Correct energy bug in PrimitiveToConserved in general_hydro.cpp #208 (msbc)
  • Apply minor fixes to Python scripts #201 (c-white)
  • Fix memory access issue with spherical diffusion #195 (c-white)
  • Improve post-processing and plotting scripts #185 (c-white)
  • Fix minor OpenMP error and duplicate MPI regression test for OpenMP, hybrid MPI+OpenMP #178 (felker)
  • Fix and extend Python scripts for analysis of HDF5 files #167 (c-white)
  • Fix Python HDF5 reader's ability to return refinement levels #158 (msbc)
  • Eliminate redundant calls to ApplyPrimitiveFloors() #154 (felker)

Closed issues:

  • Add optional time/sts_nstage_out input parameter #249
  • Deduplicate 4x STS regression test scripts in diffusion/ #242
  • "register" keyword used in src/fft/plimpton/ files is deprecated and was removed in C++17 #230
  • Make athinput a file extension as opposed to a file prefix. #226
  • 1D MHD SMR fields wrong at refinement boundaries with more than 2 ghost zones #209
  • Add interface for operator splitting and super-time-stepping #172

Merged pull requests:

  • Add user-defined passive scalar floor option in input file #291 (munan)
  • Add MHD capabilities to the general EOS module #282 (msbc)
  • Add passive scalars #263 (felker)
  • Extend automatic and manual load balancing beyond AMR #259 (tomidakn)
  • Fix edge-case bug in typecast function. #255 (msbc)
  • Implement OU Process for driven turbulence and Helmholtz decomposition #244 (changgoo)
  • Remove "register" keyword from 2x .cpp files in plimpton/ #232 (felker)
  • Fix general EOS hydro function names and prepare for general EOS MHD extension #228 (msbc)
  • Add compatibility checks for polar, polar_wedge boundary conditions to class constructor #200 (felker)
  • Generalize the hydrodynamics equation of state capabilities for non-ideal gases #197 (msbc)
  • Revert to using 1D pencil arrays for performance #193 (tomidakn)
  • Update input params for diffusion regression problems #188 (pdmullen)
  • Integrate code coverage analysis into regression test framework and continuous integration #181 (felker)
  • Implement RKL1 Super-Time-Stepping #176 (pdmullen)
  • Add fourth-order hydrodynamics solver #157 (felker)
  • Add new script for plotting 2D slices #151 (c-white)
  • Add HDF5 reader and pgen for initializing from HDF5 #146 (c-white)

v1.1.1 (2018-07-31)

Full Changelog

Removed

  • Multigrid solver and related regression tests (removed directly from v1.1.1-dev)

v1.1.1-dev (2018-07-31)

Full Changelog

Added

  • Performance improvements for SR calculations
  • Pragmas and clauses from OpenMP 4.0 and 4.5 for SIMD-enabled functions inside vectorized loops (instead of depending on the compiler to inline the function calls)
  • LLF Riemann solver for Newtonian hydrodynamics
  • Rules for checking Python style of Athena++ scripts with flake8
  • Interactive plotting for spherical polar coordinates results
  • Several new input files and problem generators

Fixed/Changed

  • Re-enabled SIMD vectorization for Roe-type Riemann solvers and rewrote eigenmatrix calculations to improve performance
  • Improved readability of TimeIntegratorTaskList
  • Fixed spherical coordinates terms for non-ideal MHD
  • Fixed reflective symmetry preservation for hydrodynamic viscosity calculations
  • Eliminated small floating-point errors when analyzing uniform grid results using included Python HDF5 reader
  • Changed turbulence driving switches to avoid possible bug during initial cycle
  • Plugged MPI resource leaks in Multigrid

Issues and Pull Requests:

Fixed bugs:

  • Gravity boundary functions not set when enrolled #148
  • Viscosity terms break Rayleigh-Taylor symmetry #144
  • SIMD vectorization disabled for Roe-type Riemann solvers #126
  • Memory leak in jeans_3d.py test MPI run #115
  • athena_read.py athdf() results in small floating-point errors #111
  • Remove unused GravityBoundaryFunction_[] array from Mesh class #149 (felker)
  • Cleanup minor issues before v1.1.1 release; fix viscosity asymmetry #147 (felker)
  • Return exact floating-point values when reading HDF5 coordinates #145 (c-white)
  • Fixed spherical coordinates for non-ideal MHD #142 (tomidakn)
  • Added interactive spherical plotting: #139 (c-white)
  • Use #pragma omp declare simd for functions called in SIMD loops #138 (felker)
  • Plugged MPI resource leaks in Multigrid. #137 (tomidakn)
  • AMR Fix #133 (tomidakn)
  • Bug fix for initial turbulence driving #132 (changgoo)

Closed issues:

  • Python scripts don't comply with PEP 8 style; vis scripts need documentation #96

Merged pull requests:

  • Improve performance for all SR problems #140 (beiwang2003)
  • Redefine and initialize grav_mean_rho directly in Mesh class #136 (changgoo)
  • Upgrade MPICH and OpenMPI in Travis CI build environments #135 (felker)
  • Add Python style checker and fix existing violations #134 (felker)
  • Improve CHANGELOG, release process, and CI testing #131 (felker)

v1.1.0 (2018-05-23)

Full Changelog

Removed

  • Multigrid solver and related regression tests (removed directly from v1.1.0-dev)

v1.1.0-dev (2018-05-23)

Full Changelog

Added

  • Self-gravity
    • FFT
    • Multigrid
  • Shearing box
  • Viscosity, resistivity, and conduction
    • Anisotropic viscosity is not implemented, but it can be added as user-defined viscosity function. Can copy function's source code from Athena 4.2.
  • Piecewise parabolic method (PPM) with time/xorder=3 runtime option
    • Robust flooring of reconstructed states
    • Curvilinear and nonuniform mesh terms
  • Characteristic variable reconstruction (PLM and PPM) with time/xorder=2c or 3c runtime option
  • Redesign of time-integrator to support high-order schemes
  • Turbulence driving
  • Double precision floating-point HDF5 output
  • Software development tools (mostly) exclusive to private repository:
    • Continuous integration (Jenkins and Travis CI)
    • C++ style checker
    • Expanded regression test suite flexibility and code coverage
    • Code Reviews, Issue/PR categories, probot automated closing of stale Issues/PRs, protected branch status for master
    • Slack workspace, CONTRIBUTING.md guide, Issue and PR templates.

Fixed/Changed

  • Changed OpenMP setup to coarse threading over MeshBlock; thread-safe MPI now in use.
  • Performance optimizations: improved vectorization, decreased memory traffic, etc.
  • Fixed reflective symmetry preservation (exact to double precision for hydrodynamics)
  • Fixed all compiler warnings and ensured C++11 compliance

Issues and Pull Requests:

Implemented enhancements:

  • Pass MeshBlock to user defined diffusivity function #130 (jmshi)
  • Use native HDF5 byte order #109
  • Conflicting restart and input parameters for writing output #62
  • Add double precision option for HDF5 output #28
  • Improve vectorization for loops in PPM #121 (beiwang2003)
  • Improve symmetry-preservation of HLLD floating-point operations #120 (felker)
  • Fix restarted simulation calculation of next_time for writing outputs #116 (felker)
  • Support double precision floating-point HDF5 output #108 (felker)
  • Add templates for Issue and PR; creating draft of CONTRIBUTING.md #93 (felker)
  • Make athdf a class which will delay reading until data is requested #84 (msbc)
  • Improve TimeIntegratorTaskList performance #80 (felker)
  • Use AVX-512 registers for vectorized loops on Skylake; enable OpenMP 4.0 SIMD with newer GCC versions #77 (felker)
  • Require negative xrat for user-defined mesh generation #71 (felker)
  • Replace "#pragma simd" with "#pragma omp simd" for icc 18 #66 (felker)
  • Make athinput reader Python 3 friendly in athena_read.py #60 (msbc)
  • Add athinput reader to athena_read.py #59 (msbc)
  • Ensure Python 2 and 3 compatibility of regression test suite #48 (felker)
  • Improve Intel AVX2 vectorization of hydrodynamics routines #44 (felker)

Fixed bugs:

  • Regression tests are writing .pyc files #104
  • Need to address g++, clang++, icc compiler warnings #94
  • PPM on spherical grid causes segmentation fault #76
  • Summed outputs have significant errors #73
  • Multigrid gravity NGHOST > 2 causes artifacts #67
  • FFTBlock.norm_factor_ may be uninitialized #51
  • Regression test suite with MPI causes nonblocking IO write errors on macOS #47
  • UserWorkAfterLoop is called before final outputs #45
  • Restart regression test fails due to FFT input parameter parsing #42
  • Incorrect initialization of scopy_ used for AthenaArray deep copy #38
  • Need better default behavior when setting start_time #36
  • Fix SIMD vectorization and regression tests for diffusion module #127 (jmshi)
  • Use simple average when computing cell-centered B #122 (felker)
  • Fix floating-point asymmetry of AMR cell-centered prolong/restrict operators #114 (felker)
  • Fix asymmetry of Coordinates x1f for multiple MeshBlock grids #112 (felker)
  • Fix general asymmetry of x1f, dx1v Coordinates terms; ensure exact float64 symmetry of PPM stencils #98 (felker)
  • Implement various PPM fixes #79 (felker)
  • Fix to self-gravity FFT and MG Solve #72 (pdmullen)
  • Add missing space in hdf5_path string to fix bug #70 (msbc)
  • Fix self-gravity energy source term #63 (pdmullen)
  • Initialize FFTBlock::norm_factor_ to 1 #57 (msbc)
  • Improve stability of FFT gravity solver #40 (changgoo)
  • Reconstruction for energy shouldn't be done for the isothermal EOS. #37 (changgoo)

Closed issues:

  • C++ source code does not conform to Athena++ Style Guide #95
  • Wiki page on OpenMP parallelization is out of date #92
  • Require code reviews before merging pull requests #88
  • Create Slack workspace for Athena++ #61
  • Allow the regression test suite to accept platform-specific compiler and execution options #55
  • Regression test suite incompatible with Python 3 #46
  • Add optional runtime parameter for reducing/suppressing per-cycle summary info #39
  • Standardize sqrt() and cbrt() calls for C++11 compliance and portability #27

Merged pull requests:

  • Fix Bash error handling of C++ style checker #125 (felker)
  • Remove inverse h_coeff from Coordinates class #124 (jmshi)
  • Add diffusion physics capabilities #123 (jmshi)
  • Use default simdlen for a memory intensive loop in PLM #119 (beiwang2003)
  • Use loop fusion and define simdlen(SIMD_WIDTH) for PLM #118 (beiwang2003)
  • Add default implementations of Laplacian operators to Coordinates class #117 (felker)
  • Codify and fix C++11 standard compliance #113 (felker)
  • Improve HLLD vectorization #110 (beiwang2003)
  • Add Google C++ Style Guide linter and check with CI #107 (felker)
  • Fix main GCC compiler warnings; strictly test code changes for new warnings #105 (felker)
  • Use C++ style static_cast operator instead of C style type casting #101 (felker)
  • Add continuous integration with Travis CI and Jenkins #97 (felker)
  • Add Bash wrapper to join_vtk++ for many MeshBlocks, output steps #91 (felker)
  • Add CODEOWNERS file to new .github/ root dir #90 (felker)
  • Add ShearingBox component #89 (jmshi)
  • Improve floating-point precision consistency throughout code #82 (felker)
  • Add primitive variable flooring functions to the EquationOfState class #81 (felker)
  • Add MG and FFT convergence regression tests based on 3D linear Jeans instability #75 (alwinm)
  • Add cylindrical and spherical polar coordinates limiter terms to PPM #69 (felker)
  • Redesign the TimeIntegratorTask list to enable time integration methods with order, nsub_steps, nregisters > 2 #49 (felker)
  • Enable nonuniform reconstruction with Mignone PPM limiter #43 (felker)
  • Add ncycle_out optional input parameter #41 (felker)
  • Add FFT gravity solver #35 (changgoo)

v1.0.1 (2017-08-22)

Full Changelog

Added

  • Scripts and documentation for releasing from private to public repository

Fixed/Changed

  • Upgraded left and right reconstructed primitive state AthenaArray in Hydro class to 3D (from x1-sliced 1D arrays)
  • Riemann solvers now directly fill electric field arrays

Issues and Pull Requests:

Implemented enhancements:

  • Add code structure diagrams to Wiki #34

Fixed bugs:

  • Alfven wave test fails due to incorrect error thresholds #29
  • Cannot compile properly on tiger #8
  • Do not access de-allocated memory in SliceOutputData #32 (dradice)

v1.0.0-beta (2016-11-28)

Full Changelog

Added

  • BSD license

Fixed/Changed

  • Redesigned Coordinates class

Issues and Pull Requests:

Implemented enhancements:

  • ParameterInput should be generally accessible #20
  • Need OMP-ready scratch array for relativistic MHD Riemann solver #6
  • Small configure script enhancements #21 (jzuhone)

Fixed bugs:

  • Blast problem missing header needed to compile #25
  • MPI + HDF5 writer with ghost zone output causes segmentation fault #23
  • Compilation failure when using HDF5 without MPI #22
  • 1D Newtonian MHD broken with periodic boundary #16
  • Problem with fields at physical boundaries in 1D #15
  • Line missing in src/pgen/jet.cpp #12
  • Compilation error -- accessing invalid member of RegionSize #11

Closed issues:

  • Add boundary functions based on primitive variables #17
  • Need flux correction for source terms #9

v0.3.0 (2015-08-31)

Full Changelog

Added

Fixed/Changed

Issues and Pull Requests:

Fixed bugs:

  • Uninitialized variable root_level is used #10

v0.2.0 (2015-04-10)

Full Changelog

Added

Fixed/Changed

Issues and Pull Requests:

Fixed bugs:

  • Restart output problem due to next_time=0 #7

Closed issues:

  • Add MeshBlock boundary condition for MHD #4

v0.1.0 (2015-02-02)

Full Changelog

Added

Fixed/Changed

Issues and Pull Requests:

Fixed bugs:

  • Problem with boundary functions in 1D hydro shock tube #5

Closed issues:

  • Add C++ style document to wiki #1

* This Change Log was automatically generated by github_changelog_generator