Skip to content

Latest commit

 

History

History
314 lines (223 loc) · 9.6 KB

CHANGELOG.md

File metadata and controls

314 lines (223 loc) · 9.6 KB

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.

(changelog/unreleased)=

Added

  • Functions {func}snek5000.util.restart.load_for_restart, {func}snek5000.params.load_params
  • {mod}snek5000.util.files
  • {meth}snek5000.output.base.Output.get_field_file to locate a field file
  • Mandatory key MPIEXEC_FLAGS in Snakemake config
  • {class}snek5000.output.history_points.HistoryPoints for {ref}Nek5000 history points <nek:features_his>
  • {class}snek5000.output.phys_fields.PhysFields now fully functional with load and get_var methods provided by classes under {mod}snek5000.output.readers.
  • Support for number of processes detection in OAR clusters
  • {meth}snek5000.output.base.Output._set_info_solver_classes to customize Output child classes
  • Environment variable SNEK_UPDATE_CONFIG_ENV_SENSITIVE, {meth}snek5000.output.base.Output.write_snakemake_config to help the user easily modify environment variables during Snakemake rule execution. See {ref}override_config.

Changed

  • 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.
  • {func}snek5000.util.files.next_path gets force_suffix and return_suffix parameters
  • {meth}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 {meth}snek5000.output.base.Output.copy
  • The use of params.nek.general.user_params are replaced by a more powerful {meth}snek5000.params.Parameters._record_nek_user_params method.

Deprecated

  • {func}snek5000.util.restart.prepare_for_restart
  • Passing rules as iterables to {meth}snek5000.make.Make.exec. Pass positional parameters instead.
  • {func}snek5000.source_root (renamed as {func}snek5000.get_nek_source_root).
  • {meth}snek5000.output.base.Output.get_root (renamed as {meth}snek5000.output.base.Output.get_path_solver_package).
  • {meth}snek5000.output.base.Output.get_configfile (use a string "config_simul.yml" instead in user Snakefile).

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 {meth}snek5000.make.Make.exec
  • Documentation on configuring snek5000 compilation and execution

Changed

  • Use rich for logging
  • No need to wait for <case>.f file which is deleted by new Nek5000 version
  • {func}snek5000.load alias for {func}snek5000.load_simul which also loads from current directory when no argument is passed
  • Fix {meth}snek5000.solvers.base.InfoSolver._complete_params_with_default into a classmethod (thanks @paugier)
  • params.oper.max.order_time is now a property {any}snek5000.operators.Operators.max_order_time

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

  • {meth}update_snakemake_config and {func}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

  • Tutorial and Snakemake workflows for packaging user code, see {ref}packaging
  • Module {mod}snek5000.util.smake with helper utilities to set env, flags etc.

Changed

  • Much less boilerplate code for user code!
  • Updated pre-commit hooks for development

Deprecated

  • Function {func}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