Releases: CaNS-World/CaNS
v3.1.0
Summary
This release features two significant changes:
- A refactored CI infrastructure, designed by Louis Henry (@lohenry-escience). See #170.
- A port using hipfort and the diezDecomp library that enables runs on Cray-AMD supercomputers such as LUMI. The diezDecomp library and the remainder "LUMI porting" using HIP were a great effort undertaken in full by Rafael Diez (@Rafael10Diez). See #175.
Thank you for these contributions! Additionally, several minor changes related to performance, consistency, and style have been implemented.
What's Changed
- Fixed bug for z-pencils with z-implicit diffusion on CPUs. by @p-costa in #150
- Issue:147 Replace non-standard sentinel with CPP Macro by @lekzzA in #149
- Fixed syntax errors in namelist. by @p-costa in #154
- Revert "Fixed syntax errors in namelist." by @p-costa in #155
- Enable error reporting for errors in namelists. by @p-costa in #153
*cleantargets do not need dependencies file. by @p-costa in #152- Implemented simulation an arbritrary number of scalars. by @p-costa in #144
- Parallel Cyclic Reduction - TDMA mode in the Poisson solver. by @p-costa in #160
- Remove most CPP macros in favour of command-line arguments. by @p-costa in #161
- Convert Fortran vector operations to loops. by @p-costa in #163
- Write one checkpoint file per scalar field. by @p-costa in #162
- Temporal boundary layer examples with implicit Z diffusion and Z aligned pencils. by @p-costa in #178
- Correct boundary conditions for turbulent half channel example input file. by @p-costa in #180
- Skip minor tests in the remote CI. by @p-costa in #181
- Use dependabot for updating cuDecomp submodule. by @p-costa in #182
- Typo fix in subroutine name. by @p-costa in #183
- Include diezDecomp source as a GitHub submodule. by @p-costa in #184
- Fix bug in wall-normal momentum flux term with implicit diffusion. by @p-costa in #185
Full Changelog: v2.4.0...v3.1.0
v3.0.0
CaNS 3.0 is out! 🚀
This major release features significant new features and improvements. Most notably:
- CaNS can now solve the transport equation for an arbitrary number of scalars with versatile description of diffusion terms, thanks to Baptiste Hardy @bahardy (#144). This implementation also simplified the boilerplate code to set up the Poisson/Helmholtz equations in CaNS.
- A Parallel Cyclic Reduction -- TDMA (PCR-TDMA) mode for the Poisson/Helmholtz solver has been implemented, along with other Poisson solver improvements, thanks to Rafael Diez @Rafael10Diez. This resulted in significant speed-ups in many-GPU simulations at scale (#160).
- Most CPP macros have been removed in favor of command line arguments (#161). This makes it very easy to change domain decomposition and discretization modes without re-compiling the source.
- Many general improvements and extensions, including simplifications to the build workflow, usage of new features of the cuDecomp library, and writing a single file per scalar field for checkpointing.
What's Changed
- Fixed bug for z-pencils with z-implicit diffusion on CPUs. by @p-costa in #150
- Issue:147 Replace non-standard sentinel with CPP Macro by @lekzzA in #149
- Fixed syntax errors in namelist. by @p-costa in #154
*cleantargets do not need dependencies file. by @p-costa in #152- Implemented simulation an arbritrary number of scalars. by @p-costa in #144
- Parallel Cyclic Reduction - TDMA mode in the Poisson solver. by @p-costa in #160
- Remove most CPP macros in favour of command-line arguments. by @p-costa in #161
- Convert Fortran vector operations to loops. by @p-costa in #163
- Write one checkpoint file per scalar field. by @p-costa in #162
- Tidying up for CaNS 3.0. by @p-costa in #165
New Contributors
Full Changelog: v2.4.0...v3.0.0
v2.4.0
Summary
Among some improvements and bugfixes, these release features some significant changes:
- Implicit Z diffusion runs will perform very efficiently for XZ or YZ slab decompositions (#136, #148)
- Possibility to prescribe a fixed time step in the input file (#139)
- Build approach changed slightly to avoid tracking files with git that are supposed to be edited (#138)
- One can set
iout?dto 0 in the input file for no output (#128) - Default Intel compiler changed from
iforttoifx(#146)
What's Changed
- Updated cuDecomp submodule. by @p-costa in #118
- Updated GH actions CI version. by @p-costa in #119
- 3D Antuono vortex initial field. by @gianlupo in #123
- Fixes possible race condition. by @p-costa in #124
- Allow setting
iout?dto 0 for no output. by @soaringxmc in #128 - Remove masking of output of coarsened field. by @p-costa in #130
- Fixed issue in
.xmffile geneartor. by @p-costa in #131 - Reorder initial conditions for consistency. by @p-costa in #134
- Updated cuDecomp submodule. by @p-costa in #143
- Use
ifxwithFCOMP=INTEL. by @p-costa in #146 - Discern top and bottom boundaries in wall shear stress calculation. by @p-costa in #142
- Added option to prescribe constant time step size. by @p-costa in #139
- Account for special case of non-decompozed z directions. by @p-costa in #136
- Compile to
build/directory and do not track config files. by @p-costa in #138 - Fixed bug for z-pencils with z-implicit diffusion on CPUs. by @p-costa in #148
Full Changelog: v2.3.4...v2.4.0
v2.3.4
v2.3.2
What's Changed
- Added neater format specifiers. by @p-costa in #101
- Simplify grid binary file I/O. by @p-costa in #102
- Fixed bug when changed the writting of the grid binary file. by @p-costa in #103
- Fix duct output. by @p-costa in #104
- Fix count in
MPI_Allreducestatement. by @p-costa in #105 - Add noise to
tblcase by default. by @p-costa in #106
Full Changelog: v2.3.1...v2.3.2
v2.3.1
What's Changed
- Fixed subroutine call in the scalar transport equation. by @p-costa in #92
- Improved support for
ifxcompiler. by @p-costa in #93 - Bump 2decomp submodule. by @p-costa in #94
- Added some extra descriptions. by @p-costa in #95
- Fix issue with namelist files. by @p-costa in #98
Full Changelog: v2.3.0...v2.3.1
v2.3.0
Summary
This release features a few changes, some that break backward compatibility, more specifically:
-
We have changed the input file format, which is now based on Fortran namelists, see
docs/INFO_INPUT.mdfor more details. -
We also introduced a
gtypeinput parameter that sets the choice of grid mapping function (rather than being tied to the choice of the initial condition). -
Added more I/O flexibility (including an HDF5 backend).
What's Changed
- added more initial conditions to
initgrid. by @p-costa in #76 - bump cudecomp submodule by @p-costa in #78
- fixed initialization of matlab field array by @p-costa in #79
- simplified OMP directives by @p-costa in #81
- fixed normalization of
iopinitial condition by @p-costa in #82 - minor change for consistency by @p-costa in #84
- Allow for a non-default grid binary file. by @p-costa in #88
- implemented and validated prescription of zero net acceleration by @p-costa in #67
- hdf5 I/O backend by @p-costa in #87
- Bump cudecomp submodule. by @p-costa in #89
- Fixed OOB issue in
out1dwhen averaging alongxory. by @p-costa in #90 - More logical setup of the grid clustering by @p-costa in #85
- Namelist for input files by @p-costa in #86
Full Changelog: v2.2.2...v2.3.0
v2.2.2
Summary
This release features minor extensions that are not exercised at this moment, and a few minor bug fixes.
What's Changed
- added option for computing mean scalar fluxes by @p-costa in #62
- fix computation of retau for
pdccase by @p-costa in #64 - Properly rescale initial velocity for
iopcase. by @p-costa in #65 - Extend integration of wall shear stresses to the different options. by @p-costa in #66
- temporary fix for field data I/O (for visualization, not checkpointing) on GPUs. by @p-costa in #68
Full Changelog: v2.2.1...v2.2.2
v2.2.1
Summary
This release fixes some two minor bugs, notably that the default dns.in file under src/ was not updated following the change in the input file format introduced in #54, which has now been fixed in #60.
What's Changed
- update description of
dimsby @p-costa in #58 - fixes potential OOB error when only one field is written by @p-costa in #59
- missed updating
src/dns.inafter changing input file by @p-costa in #60
Full Changelog: v2.2.0...v2.2.1
v2.2.0
Summary
This release features a change in the input file dns.in, which was simplified to avoid a common source of confusion. Instead of prescribing uref, lref, and rey (reference velocity and length scales, and Reynolds number) to calculate the fluid viscosity as visc = uref*lref/rey, we directly prescribe the inverse of the viscosity, visci (visc = visci**(-1)), so all inputs are dimensional (see the updated docs/INFO_INPUT.md file). Note that visci has the same value as the flow Reynolds number for all files under examples, as uref and lref were always equal to 1. This change is backwards-incompatible - former input files should be updated from v2.2.0 onward!
In addition, this release features a minor bugfix, extensions and polishing as detailed below.
What's Changed
- updated GPU implementation of a single scalar by @p-costa in #48
- Add symlink by @p-costa in #49
- polishing python readers by @p-costa in #50
- explicitly import functions from the
cudaformodule, not implicitly… by @p-costa in #51 - added support for Intel
ifxby @p-costa in #53 - fixes bug in the GPU signal processing routines by @p-costa in #56
- changed input files to take
visci, the inverse viscosity by @p-costa in #54 - explicitly add optional switch for asynchronous halo exchange on CPUs by @p-costa in #57
Full Changelog: v2.1.1...v2.2.0