Recent Releases of https://github.com/cans-world/cans

https://github.com/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 https://github.com/CaNS-World/CaNS/pull/150
  • Issue:147 Replace non-standard sentinel with CPP Macro by @lekzzA in https://github.com/CaNS-World/CaNS/pull/149
  • Fixed syntax errors in namelist. by @p-costa in https://github.com/CaNS-World/CaNS/pull/154
  • Revert "Fixed syntax errors in namelist." by @p-costa in https://github.com/CaNS-World/CaNS/pull/155
  • Enable error reporting for errors in namelists. by @p-costa in https://github.com/CaNS-World/CaNS/pull/153
  • *clean targets do not need dependencies file. by @p-costa in https://github.com/CaNS-World/CaNS/pull/152
  • Implemented simulation an arbritrary number of scalars. by @p-costa in https://github.com/CaNS-World/CaNS/pull/144
  • Parallel Cyclic Reduction - TDMA mode in the Poisson solver. by @p-costa in https://github.com/CaNS-World/CaNS/pull/160
  • Remove most CPP macros in favour of command-line arguments. by @p-costa in https://github.com/CaNS-World/CaNS/pull/161
  • Convert Fortran vector operations to loops. by @p-costa in https://github.com/CaNS-World/CaNS/pull/163
  • Write one checkpoint file per scalar field. by @p-costa in https://github.com/CaNS-World/CaNS/pull/162
  • Temporal boundary layer examples with implicit Z diffusion and Z aligned pencils. by @p-costa in https://github.com/CaNS-World/CaNS/pull/178
  • Correct boundary conditions for turbulent half channel example input file. by @p-costa in https://github.com/CaNS-World/CaNS/pull/180
  • Skip minor tests in the remote CI. by @p-costa in https://github.com/CaNS-World/CaNS/pull/181
  • Use dependabot for updating cuDecomp submodule. by @p-costa in https://github.com/CaNS-World/CaNS/pull/182
  • Typo fix in subroutine name. by @p-costa in https://github.com/CaNS-World/CaNS/pull/183
  • Include diezDecomp source as a GitHub submodule. by @p-costa in https://github.com/CaNS-World/CaNS/pull/184
  • Fix bug in wall-normal momentum flux term with implicit diffusion. by @p-costa in https://github.com/CaNS-World/CaNS/pull/185

Full Changelog: https://github.com/CaNS-World/CaNS/compare/v2.4.0...v3.1.0

- Fortran
Published by p-costa 6 months ago

https://github.com/cans-world/cans - 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 https://github.com/CaNS-World/CaNS/pull/150
  • Issue:147 Replace non-standard sentinel with CPP Macro by @lekzzA in https://github.com/CaNS-World/CaNS/pull/149
  • Fixed syntax errors in namelist. by @p-costa in https://github.com/CaNS-World/CaNS/pull/154
  • *clean targets do not need dependencies file. by @p-costa in https://github.com/CaNS-World/CaNS/pull/152
  • Implemented simulation an arbritrary number of scalars. by @p-costa in https://github.com/CaNS-World/CaNS/pull/144
  • Parallel Cyclic Reduction - TDMA mode in the Poisson solver. by @p-costa in https://github.com/CaNS-World/CaNS/pull/160
  • Remove most CPP macros in favour of command-line arguments. by @p-costa in https://github.com/CaNS-World/CaNS/pull/161
  • Convert Fortran vector operations to loops. by @p-costa in https://github.com/CaNS-World/CaNS/pull/163
  • Write one checkpoint file per scalar field. by @p-costa in https://github.com/CaNS-World/CaNS/pull/162
  • Tidying up for CaNS 3.0. by @p-costa in https://github.com/CaNS-World/CaNS/pull/165

New Contributors

  • @bahardy
  • @Rafael10Diez
  • @soaringxmc
  • @lekzzA
  • @gianlupo
  • @v1kko
  • @lohenry-escience

Full Changelog: https://github.com/CaNS-World/CaNS/compare/v2.4.0...v3.0.0

- Fortran
Published by p-costa 11 months ago

https://github.com/cans-world/cans - 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 (https://github.com/CaNS-World/CaNS/pull/136, https://github.com/CaNS-World/CaNS/pull/148)
  • Possibility to prescribe a fixed time step in the input file (https://github.com/CaNS-World/CaNS/pull/139)
  • Build approach changed slightly to avoid tracking files with git that are supposed to be edited (https://github.com/CaNS-World/CaNS/pull/138)
  • One can set iout?d to 0 in the input file for no output (https://github.com/CaNS-World/CaNS/pull/128)
  • Default Intel compiler changed from ifort to ifx (https://github.com/CaNS-World/CaNS/pull/146)

What's Changed

  • Updated cuDecomp submodule. by @p-costa in https://github.com/CaNS-World/CaNS/pull/118
  • Updated GH actions CI version. by @p-costa in https://github.com/CaNS-World/CaNS/pull/119
  • 3D Antuono vortex initial field. by @gianlupo in https://github.com/CaNS-World/CaNS/pull/123
  • Fixes possible race condition. by @p-costa in https://github.com/CaNS-World/CaNS/pull/124
  • Allow setting iout?d to 0 for no output. by @soaringxmc in https://github.com/CaNS-World/CaNS/pull/128
  • Remove masking of output of coarsened field. by @p-costa in https://github.com/CaNS-World/CaNS/pull/130
  • Fixed issue in .xmf file geneartor. by @p-costa in https://github.com/CaNS-World/CaNS/pull/131
  • Reorder initial conditions for consistency. by @p-costa in https://github.com/CaNS-World/CaNS/pull/134
  • Updated cuDecomp submodule. by @p-costa in https://github.com/CaNS-World/CaNS/pull/143
  • Use ifx with FCOMP=INTEL. by @p-costa in https://github.com/CaNS-World/CaNS/pull/146
  • Discern top and bottom boundaries in wall shear stress calculation. by @p-costa in https://github.com/CaNS-World/CaNS/pull/142
  • Added option to prescribe constant time step size. by @p-costa in https://github.com/CaNS-World/CaNS/pull/139
  • Account for special case of non-decompozed z directions. by @p-costa in https://github.com/CaNS-World/CaNS/pull/136
  • Compile to build/ directory and do not track config files. by @p-costa in https://github.com/CaNS-World/CaNS/pull/138
  • Fixed bug for z-pencils with z-implicit diffusion on CPUs. by @p-costa in https://github.com/CaNS-World/CaNS/pull/148

Full Changelog: https://github.com/CaNS-World/CaNS/compare/v2.3.4...v2.4.0

- Fortran
Published by p-costa about 1 year ago

https://github.com/cans-world/cans - v2.3.4

What's Changed

  • Add option of task-local checkpointing. by @p-costa in https://github.com/CaNS-World/CaNS/pull/110
  • Updated cuDecomp submodule. by @p-costa in https://github.com/CaNS-World/CaNS/pull/117

Full Changelog: https://github.com/CaNS-World/CaNS/compare/v2.3.2...v2.3.4

- Fortran
Published by p-costa almost 2 years ago

https://github.com/cans-world/cans - v2.3.2

What's Changed

  • Added neater format specifiers. by @p-costa in https://github.com/CaNS-World/CaNS/pull/101
  • Simplify grid binary file I/O. by @p-costa in https://github.com/CaNS-World/CaNS/pull/102
  • Fixed bug when changed the writting of the grid binary file. by @p-costa in https://github.com/CaNS-World/CaNS/pull/103
  • Fix duct output. by @p-costa in https://github.com/CaNS-World/CaNS/pull/104
  • Fix count in MPI_Allreduce statement. by @p-costa in https://github.com/CaNS-World/CaNS/pull/105
  • Add noise to tbl case by default. by @p-costa in https://github.com/CaNS-World/CaNS/pull/106

Full Changelog: https://github.com/CaNS-World/CaNS/compare/v2.3.1...v2.3.2

- Fortran
Published by p-costa about 2 years ago

https://github.com/cans-world/cans - v2.3.1

What's Changed

  • Fixed subroutine call in the scalar transport equation. by @p-costa in https://github.com/CaNS-World/CaNS/pull/92
  • Improved support for ifx compiler. by @p-costa in https://github.com/CaNS-World/CaNS/pull/93
  • Bump 2decomp submodule. by @p-costa in https://github.com/CaNS-World/CaNS/pull/94
  • Added some extra descriptions. by @p-costa in https://github.com/CaNS-World/CaNS/pull/95
  • Fix issue with namelist files. by @p-costa in https://github.com/CaNS-World/CaNS/pull/98

Full Changelog: https://github.com/CaNS-World/CaNS/compare/v2.3.0...v2.3.1

- Fortran
Published by p-costa over 2 years ago

https://github.com/cans-world/cans - 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.md for more details.

  • We also introduced a gtype input 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 https://github.com/CaNS-World/CaNS/pull/76
  • bump cudecomp submodule by @p-costa in https://github.com/CaNS-World/CaNS/pull/78
  • fixed initialization of matlab field array by @p-costa in https://github.com/CaNS-World/CaNS/pull/79
  • simplified OMP directives by @p-costa in https://github.com/CaNS-World/CaNS/pull/81
  • fixed normalization of iop initial condition by @p-costa in https://github.com/CaNS-World/CaNS/pull/82
  • minor change for consistency by @p-costa in https://github.com/CaNS-World/CaNS/pull/84
  • Allow for a non-default grid binary file. by @p-costa in https://github.com/CaNS-World/CaNS/pull/88
  • implemented and validated prescription of zero net acceleration by @p-costa in https://github.com/CaNS-World/CaNS/pull/67
  • hdf5 I/O backend by @p-costa in https://github.com/CaNS-World/CaNS/pull/87
  • Bump cudecomp submodule. by @p-costa in https://github.com/CaNS-World/CaNS/pull/89
  • Fixed OOB issue in out1d when averaging along x or y. by @p-costa in https://github.com/CaNS-World/CaNS/pull/90
  • More logical setup of the grid clustering by @p-costa in https://github.com/CaNS-World/CaNS/pull/85
  • Namelist for input files by @p-costa in https://github.com/CaNS-World/CaNS/pull/86

Full Changelog: https://github.com/CaNS-World/CaNS/compare/v2.2.2...v2.3.0

- Fortran
Published by p-costa over 2 years ago

https://github.com/cans-world/cans - 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 https://github.com/CaNS-World/CaNS/pull/62
  • fix computation of retau for pdc case by @p-costa in https://github.com/CaNS-World/CaNS/pull/64
  • Properly rescale initial velocity for iop case. by @p-costa in https://github.com/CaNS-World/CaNS/pull/65
  • Extend integration of wall shear stresses to the different options. by @p-costa in https://github.com/CaNS-World/CaNS/pull/66
  • temporary fix for field data I/O (for visualization, not checkpointing) on GPUs. by @p-costa in https://github.com/CaNS-World/CaNS/pull/68

Full Changelog: https://github.com/CaNS-World/CaNS/compare/v2.2.1...v2.2.2

- Fortran
Published by p-costa almost 3 years ago

https://github.com/cans-world/cans - 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 dims by @p-costa in https://github.com/CaNS-World/CaNS/pull/58
  • fixes potential OOB error when only one field is written by @p-costa in https://github.com/CaNS-World/CaNS/pull/59
  • missed updating src/dns.in after changing input file by @p-costa in https://github.com/CaNS-World/CaNS/pull/60

Full Changelog: https://github.com/CaNS-World/CaNS/compare/v2.2.0...v2.2.1

- Fortran
Published by p-costa about 3 years ago

https://github.com/cans-world/cans - 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 https://github.com/CaNS-World/CaNS/pull/48
  • Add symlink by @p-costa in https://github.com/CaNS-World/CaNS/pull/49
  • polishing python readers by @p-costa in https://github.com/CaNS-World/CaNS/pull/50
  • explicitly import functions from the cudafor module, not implicitly… by @p-costa in https://github.com/CaNS-World/CaNS/pull/51
  • added support for Intel ifx by @p-costa in https://github.com/CaNS-World/CaNS/pull/53
  • fixes bug in the GPU signal processing routines by @p-costa in https://github.com/CaNS-World/CaNS/pull/56
  • changed input files to take visci, the inverse viscosity by @p-costa in https://github.com/CaNS-World/CaNS/pull/54
  • explicitly add optional switch for asynchronous halo exchange on CPUs by @p-costa in https://github.com/CaNS-World/CaNS/pull/57

Full Changelog: https://github.com/CaNS-World/CaNS/compare/v2.1.1...v2.2.0

- Fortran
Published by p-costa about 3 years ago

https://github.com/cans-world/cans - v2.1.1

Summary

This release features very minor changes and catches up with changes in the external libraries.

What's Changed

  • Minor changes in the eigenvalues by @p-costa in https://github.com/CaNS-World/CaNS/pull/44
  • Bump 2decomp submodule by @p-costa in https://github.com/CaNS-World/CaNS/pull/45
  • Leaner sanity check by @p-costa in https://github.com/CaNS-World/CaNS/pull/46
  • Revert "ssh better for submodules than https" by @p-costa in https://github.com/CaNS-World/CaNS/pull/47

Full Changelog: https://github.com/CaNS-World/CaNS/compare/v2.1.0...v2.1.1

- Fortran
Published by p-costa over 3 years ago

https://github.com/cans-world/cans - v2.1.0

Summary

In this release, option SINGLE_PRECISION_POISSON has been removed. While solving the Poisson in lower precision equation yields excellent results for many benchmarks, most cases that benefit from this actually perform well when the whole calculation is performed in lower precision (see https://github.com/CaNS-World/CaNS/pull/42). Since this mode introduces significant complexity, it will be removed from the main branch for now in favor of a more readable code, a decision that can be reconsidered in the future. This option can still be explored in v2.0.1, and should be valuable for very high Reynolds numbers or other setups with extremely fine grids.

Changes

  • Revert mixed precision mode by @p-costa in https://github.com/CaNS-World/CaNS/pull/42

Full Changelog: https://github.com/CaNS-World/CaNS/compare/v2.0.1...v2.1.0

- Fortran
Published by p-costa over 3 years ago

https://github.com/cans-world/cans - v2.0.1

Summary

This release features minor changes, to tag the current status before a more relevant release.

Changes

  • Bump 2decomp by @p-costa in https://github.com/CaNS-World/CaNS/pull/31, https://github.com/CaNS-World/CaNS/pull/34, https://github.com/CaNS-World/CaNS/pull/35, https://github.com/CaNS-World/CaNS/pull/36
  • added subroutine chk_poisson by @p-costa in https://github.com/CaNS-World/CaNS/pull/32
  • acc_init should be called after setting the device by @p-costa in https://github.com/CaNS-World/CaNS/pull/33
  • Minor changes by @p-costa in https://github.com/CaNS-World/CaNS/pull/41

Full Changelog: https://github.com/CaNS-World/CaNS/compare/v2.0.0...v2.0.1

- Fortran
Published by p-costa over 3 years ago

https://github.com/cans-world/cans - v2.0

CaNS 2.0 is finally released! :tada:

This is the most significant revision of our toolkit so far.

Co-authored by Pedro Costa, Massimiliano Fatica, and Josh Romero.

Summary

This release marks the ending of a fresh porting effort for massively parallel simulations on modern architectures, from one to thousands of GPUs with a focus on performance while ensuring a flexible and sustainable implementation that is easy to extend for more complex physical problems. We used OpenACC directives to accelerate loops and for host/device data transfer, interoperated with NVIDIA's cuFFT and the new cuDecomp domain decomposition library.

cuDecomp is the heart of the multi-GPU implementation, ensuring the solver's performance by bringing a novel, hardware-adaptive parallelization of the transposes in the Poisson/Helmholtz solver, and of the halo-exchange operations.

Although quite performant, the implementation is also flexible, allowing for an easy change of solver profiles, such as X-aligned default pencils, which are optimal for a fully explicit time integration, or Z-aligned default pencils, which are optimal for a Z-implicit time integration for wall flows.

Finally, another noteworthy (optional) feature is CaNS' new mixed-precision mode, where the pressure Poisson equation is solved in lower precision. This mode makes a huge difference in performance for many-GPU calculations across multiple nodes.

In addition to these big-picture changes, there have been many impactful changes that make the solver more versatile and robust. All relevant changes are summarized below.

Changes:

  • GPU acceleration using OpenACC directives for loops and data movement, which is interfaced with CUDA whenever needed
  • Hardware-adaptive multi-GPU implementation using the cuDecomp library for transposes (seven possible communication backends) and halo exchanges (five possible communication backends), with different flavors of MPI, NCCL and NVSHMEM implementations
  • Lean memory footprint on GPUs, which can be made even leaner by exploiting cuDecomp's in-place transposes
  • Mixed-precision mode implemented on both CPUs and GPUs
  • Hybrid MPI-OpenMP parallelization is still supported on CPUs
  • Any default pencil orientation is supported, on both CPUs and GPUs
  • A fast-kernel mode is used by default to speed up the calculation of the prediction velocity, on both CPUs and GPUs
  • The 2DECOMP library is still used for the many-CPU parallelization of the Poisson solver, and some of the parallel data I/O
  • Build process made much simpler and more robust, with the dependencies determined automatically
  • Refactoring of the FFT-based Fourier, cosine, and sine transforms on GPUs, together with the Gauss elimination kernels, with improvements both in terms of speed and maintainability
  • Support for uneven decompositions and odd numbers along any direction; perhaps surprisingly, at times setups with odd numbers near the desired resolution may result in a more efficient FFT computation
  • External domain decomposition libraries, cuDecomp and 2DECOMP, loaded as Submodules
  • Many changes for improved performance and robustness, with a focus on minimizing the memory footprint and computation intensity while keeping the tool versatile

Acknowledgements

CaNS 2.0 has been tested in several GPU-accelerated systems such as Marconi 100, Meluxina, Perlmutter, Selene, Summit and Vega. We acknowledge the support from CoE RAISE, NERSC and EuroHPC, which enabled thorough testing of CaNS 2.0 in these state-of-the-art supercomputers.

- Fortran
Published by p-costa over 3 years ago

https://github.com/cans-world/cans - v1.3.1

Summary

This release features some simplifications of the OpenMP code and the removal of the nthreadsmax input parameter. It was first meant at fixing an issue concerning boundary conditions, but the implementation is actually correct.

Changes

  • removes necessary nthreadsmax input parameter (#28)
  • simplified OpenMP directives (#28)

Full Changelog: https://github.com/p-costa/CaNS/compare/v1.3.0...v1.3.1

- Fortran
Published by p-costa over 3 years ago

https://github.com/cans-world/cans - v1.3.0

Summary

This release features a mixed-precision mode where the Poisson equation can be solved using lower precision, which may be useful for certain setups.

Changes

  • Mixed precision mode by @p-costa in https://github.com/p-costa/CaNS/pull/26 after discussions w/ @maxcuda and @romerojosh. For more details on how to set it up, see the option SINGLE_PRECISION_POISSON under doc/INFO_COMPILING.md.

- Fortran
Published by p-costa over 3 years ago

https://github.com/cans-world/cans - v1.2.0

Summary

This release features a more robust and friendly build process (still using Make). It also features some restructuring of the documentation.

Changes:

  • better build process with a few pre-defined profiles and automatic dependency generation (requires gawk). See doc/INFO_COMPILING.md
  • 2DECOMP built as an external library
  • documentation files brought into the doc folder

(see https://github.com/p-costa/CaNS/pull/25)

Full Changelog: https://github.com/p-costa/CaNS/compare/v1.1.5...v1.2.0

- Fortran
Published by p-costa almost 4 years ago

https://github.com/cans-world/cans - v1.1.5

Summary

This is release features minor changes, adding a new checkpointing mode;

Changes:

  • new checkpointing mode was added to bound the number of checkpoints per run to a maximum, which can be set using a new parameter in the input file dns.in, named nsaves_max; please see src/INFO_INPUT.md for more details;

- Fortran
Published by p-costa almost 4 years ago

https://github.com/cans-world/cans - v1.1.4

Summary

This is release features minor changes, with performance improvements, and bugfixes;

Changes:

  • implicit Z diffusion made considerably more efficient. For optimal performance, the code needs to be built with -D_DECOMP_Z, as explained in README.md;
  • new example files and grid mapping functions have been added (thanks @GabrieleBoga for the temporal boundary layer setup! #22);
  • other minor bugfixes;

- Fortran
Published by p-costa almost 4 years ago

https://github.com/cans-world/cans - v1.1.3

Summary

This release has a main major feature. It implements the option for choosing implicit diffusion along only one of the domain directions - the third one (z), where the grid can be non-uniform. Hence, CaNS can be run now in (1) fully explicit mode; (2) implicit diffusion along all directions, and (3) implicit diffusion only along the z-direction, which comes in handy for very fine grids along only z. See Compilation, under README.md for how to activate this feature.

Changes:

  • Option for implicit diffusion only along z;
  • Minor changes in the Poisson solver to avoid scaling of the absolute pressure under certain combinations of BCs;
  • Added a two-dimensional Taylor-Green vortex case.

- Fortran
Published by p-costa about 4 years ago

https://github.com/cans-world/cans - v1.1.2

Summary

This release adds very minor features with respect to the previous major release v1.1.0. Just a more robust input sanity check, and a slightly larger flexibility of the domain and processor grids.

Changes:

  • A very robust check of the direct Helmholtz solver for cell- and face-centered variables has been enabled -- at the beginning of any calculation, the Poisson and, if implicit diffusion is used, the three additional Helmholtz equations with normal boundary conditions the cell faces are checked for random inputs under sanity.f90, if the code is built with the -D_DEBUG preprocessor flag;
  • dims(:) does not have to be divisible by 2 anymore;
  • possibility of using 1 grid point along a certain direction, rather than the previous minimum of 2;
  • fixes an input sanity check bug introduced in v1.1.1 (#19);
  • some nitpicking.

- Fortran
Published by p-costa about 4 years ago

https://github.com/cans-world/cans - v1.1.0

Summary

This release features significant improvements in terms of performance and scalability, but also enhances the code modularity and the implementation in general. There is no breaking of backward compatibility.

Changes:

  • x-aligned pencils are now used by default in the main branch, which results in improved speed and scalability;
  • support for uneven partitioning of the computational subdomains: the total number of grid points along one direction does not have to be divisible by the number of tasks;
  • simplified and unified the routines used for computing the prediction velocity with and without implicit diffusion;
  • improved the routines for imposing boundary conditions, and the MPI I/O checkpointing (based on those of SNaC);
  • support an arbitrary extent of boundary cells when imposing boundary conditions;
  • lots of polishing and minor improvements.

- Fortran
Published by p-costa over 4 years ago