Changelog#

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

Unreleased#

0.9.2 - 2023-08-23#

Added#

  • Donation links.

Fixed#

  • snek5000.find_configfile() removes call to deprecated function.

  • Explicit ValueError when no coordinates are defined and history points object’s load method is invoked.

  • Minor corrections in README.md and documentation and JOSS manuscript.

0.9.1 - 2023-05-01#

Added#

  • New command snek-make-nek to clean and rebuild Nek5000 tools

  • JOSS paper draft

Documentation

  • How to use adaptive time step

  • How to configure C and Fortran compilers

  • Document the new copier template

Changed#

  • Use remaining_clock_time by default

  • Replace isort and flake8 with ruff, upgrade hooks

0.9.0 - 2023-01-11#

Added#

Removed#

  • Functions deprecated in 0.8.0 (source_root, get_asset, get_root, get_configfile, _complete_params_from_par_file).

  • Subpackage snek5000.assets.

0.8.0 - 2022-12-06#

This is the first stable version and is the result of a huge work (more than 550 commits and 60 closed issues). To summarize, we work a lot on stability, on improving the API, the logging and the user experience, and on improving our documentation and tutorials. The following lists are a very incomplete lists of the additions, changes and deprecations.

Added#

Changed#

  • Mandatory environment variable NEK_SOURCE_ROOT.

  • params.oper.elem.staggered has a new default value auto, which sets staggered grid if a linear solver is used and a collocated one if some other solver is used. Explicitly setting params.oper.elem.staggered = True is required to maintain previous default behaviour.

  • snek5000.util.files.next_path() gets force_suffix and return_suffix parameters

  • snek5000.output.base.Output._save_info_solver_params_xml() updates .par and params_simul.xml file on loading for restart

  • Shorter output while executing genmap

  • Field files will be stored in sessions enabling restart with symlinking of restart files and avoids clobbering existing solution files

  • Support extension .usr.f to facilitate syntax highlighting and which would be copied as a .usr file upon snek5000.output.base.Output.copy()

  • The use of params.nek.general.user_params are replaced by a more powerful snek5000.params.Parameters._record_nek_user_params() method.

Deprecated#

Removed#

Fixed#

  • Detection of linear Nek5000 solvers

  • Append debug flags to config, even if CFLAGS and FFLAGS are missing

0.7.0b0 - 2021-09-16#

Added#

  • Ability to customize number of processes with snek5000.make.Make.exec()

  • Documentation on configuring snek5000 compilation and execution

Changed#

Removed#

  • Rule srun renamed as called run_fg

Fixed#

  • Allow name_solver to be different from the “package name” (thanks @paugier)

0.6.1b0 - 2021-05-18#

Changed#

  • update_snakemake_config() and append_debug_flags() has a new parameter to optionally suppress compiler warnings during debug.

  • Keyword arguments to pass optional template variables via write_... methods which render templates for .box, SIZE and makefile_usr.inc files.

Fixed#

  • Remove underflow from debug flags

0.6.0b0 - 2021-04-16#

Added#

Changed#

  • Much less boilerplate code for user code!

  • Updated pre-commit hooks for development

Deprecated#

  • Function snek5000.util.activate_paths()

Removed#

  • Unused Snakemake rules from the top project level

Fixed#

  • Support for 2D solvers and temp / scalar boundary conditions in Operators class.

  • Attribute sim.output.params points to params.output as in FluidSim

0.5.0b0 - 2021-01-18#

Added#

  • Nek parameter filter_modes for HPFRT and write_to_field_file

  • Function load_simul to load simulations from a directory.

Changed#

  • Depend on fluidsim-core instead of fluidsim

  • Parameters, entry points and magic implementation from fluidsim-core (#15)

  • Output class now conforms to fluidsim-core API. File params.xml renamed to params_simul.xml (#16)

0.4.1b1 - 2020-10-26#

Changed#

  • Rewrite README and docs for better onboarding

0.4.1b0 - 2020-10-26#

Fixed#

  • Support for Python 3.6.x

  • Support for FluidSim 0.3.3

  • Descriptive error messages when class Output cannot resolve resources

0.4.0b1 - 2020-07-15#

Added#

  • Parameters for specifying mesh origin and ratio

  • Coverage tests

Changed#

  • Support for Nek5000 v19

  • Cluster’s default project

Fixed#

  • Activate $PATH logic, added tests

  • No error raised by prepare_for_restart after unlock

  • Bug fixes while archiving: choosing paths of new tarball

0.3.1a0 - 2020-05-10#

Added#

  • More assets: templates, default snakemake config

Fixed#

  • Source root path expands ~ and environment variables

0.3.0a0 - 2020-05-09#

Added#

  • Sub-package assets and module output.base

  • Helper functions source_root and get_asset

Changed#

  • Separate framework from the code and rename it to snek5000

  • Documentation and readme to reflect the package

Removed#

  • ABL source code

0.2.2 - 2020-05-08#

Added#

  • Pre-commit: black, flake8, isort fixing and linting support

  • Jupyterlab and ipykernel configuration snakemake rules

  • Job management script - organize.py

  • New module: const

Changed#

  • Parameters for Maronga case

  • Compilation is now parallel

  • Two-step archival, tar and compress

Fixed#

  • Snakemake: gslib dependency before compiling

  • Snakemake: Tee output to log file

Removed#

  • Requirements files produced using pip-tools

0.2.1 - 2020-04-14#

Added#

  • Tar shell functions in activate script

  • Module snek5000.clusters for job submission

Changed#

  • Conda environment packages

  • Reduced pressure residual tolerance for divergence check

Fixed#

  • Bugfixes for simulation parameter loading, restart

  • Snakefile dependencies for running a simulation

0.2.0 - 2020-03-22#

Added#

  • KTH toolbox

  • Coriolis force

  • Job submission in cluster

  • More user_params

Changed#

  • Archives use zstd compression

  • user_params is a dictionary

Fixed#

  • Initial condition bug in setting velocities in useric

  • Cs - Cs**2 in eddy_visc

  • Assert exit code of snakemake results in tests

  • Subroutine set_forcing uses ux… instead of vx

0.1.1 - 2020-01-27#

Added#

  • Templates in abl.templates subpackage

  • Expand parameters and write methods in class Operators

  • Improved tests and documentation

  • Solver abl respects parameters and writes box and SIZE files.

Changed#

  • Snakecase for nek parameters

0.1.0 - 2020-01-23#

Added#

  • Uses fluidsim framework for creating a scripting layer

  • Package abl with a single module and an abl.Output class

  • New sub-packages and modules under snek5000: solvers, output, info, log, make, magic, operators

  • Testing with pytest, and CI on GitHub actions

  • Detailed documentation

  • Versioning with setuptools_scm

Changed#

  • Extra requirements [test] renamed to [tests]

  • Rename case files 3D_ABL -> abl and directory abl_nek5000 -> abl

  • Overall reorganization of modules and Snakemake + configuration files.

0.0.1 - 2020-01-17#

Added#

  • Scripting for managing run parameters snek5000.params

  • Python packaging

  • Sphinx + Doxygen + Breathe documentation