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’sload
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 toolsJOSS 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 defaultReplace isort and flake8 with ruff, upgrade hooks
0.9.0 - 2023-01-11#
Added#
snek5000.output.base.Output.post_init_create_additional_source_files()
,snek5000.resources.get_base_templates()
andsnek5000.resources.get_base_template()
.New block
user_size
inSIZE.j2
template (seesnek5000.resources
).
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#
Commands
snek-make
,snek-restart
,snek-info
,snek-ipy-load
andsnek-generate-config
.Functions
snek5000.util.restart.load_for_restart()
,snek5000.params.load_params()
snek5000.output.base.Output.get_field_file()
to locate a field fileMandatory key
MPIEXEC_FLAGS
in Snakemake configsnek5000.output.history_points.HistoryPoints
for Nek5000 history pointssnek5000.output.phys_fields.PhysFields
now fully functional withload
andget_var
methods provided by classes undersnek5000.output.readers
.Support for number of processes detection in OAR clusters
snek5000.output.base.Output._set_info_solver_classes()
to customize Output child classesEnvironment variable
SNEK_UPDATE_CONFIG_ENV_SENSITIVE
,snek5000.output.base.Output.write_snakemake_config()
to help the user easily modify environment variables during Snakemake rule execution. See Overriding configuration in the launching script.
Changed#
Mandatory environment variable
NEK_SOURCE_ROOT
.params.oper.elem.staggered
has a new default valueauto
, which sets staggered grid if a linear solver is used and a collocated one if some other solver is used. Explicitly settingparams.oper.elem.staggered = True
is required to maintain previous default behaviour.snek5000.util.files.next_path()
getsforce_suffix
andreturn_suffix
parameterssnek5000.output.base.Output._save_info_solver_params_xml()
updates.par
andparams_simul.xml
file on loading for restartShorter 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 uponsnek5000.output.base.Output.copy()
The use of
params.nek.general.user_params
are replaced by a more powerfulsnek5000.params.Parameters._record_nek_user_params()
method.
Deprecated#
snek5000.params._complete_params_from_par_file()
(renamed assnek5000.params.complete_params_from_par_file()
).snek5000.util.restart.prepare_for_restart()
Passing rules as iterables to
snek5000.make.Make.exec()
. Pass positional parameters instead.snek5000.source_root()
(renamed assnek5000.get_nek_source_root()
).snek5000.output.base.Output.get_root()
(renamed assnek5000.output.base.Output.get_path_solver_package()
).snek5000.output.base.Output.get_configfile()
(use a string"config_simul.yml"
instead in user Snakefile).The
warnings
parameter insnek5000.output.base.Output.update_snakemake_config()
is deprecated! Useverbosity=0
(now default) to disable warnings.
Removed#
Parameter
warnings
insnek5000.util.smake.append_debug_flags()
is replaced by a separate functionsnek5000.util.smake.set_compiler_verbosity()
.
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#
Use rich for logging
No need to wait for
<case>.f
file which is deleted by new Nek5000 versionsnek5000.load()
alias forsnek5000.load_simul()
which also loads from current directory when no argument is passedFix
snek5000.solvers.base.InfoSolver._complete_params_with_default()
into a classmethod (thanks @paugier)params.oper.max.order_time
is now a propertysnek5000.operators.Operators.max_order_time
Removed#
Rule
srun
renamed as calledrun_fg
Fixed#
Allow
name_solver
to be different from the “package name” (thanks @paugier)
0.6.1b0 - 2021-05-18#
Changed#
update_snakemake_config()
andappend_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
andmakefile_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 Create your own Snek5000 solver, packaging your Nek5000 user source code
Module
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
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 toparams.output
as in FluidSim
0.5.0b0 - 2021-01-18#
Added#
Nek parameter
filter_modes
for HPFRT andwrite_to_field_file
Function
load_simul
to load simulations from a directory.
Changed#
Depend on
fluidsim-core
instead offluidsim
Parameters, entry points and magic implementation from fluidsim-core (#15)
Output class now conforms to
fluidsim-core
API. Fileparams.xml
renamed toparams_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 testsNo error raised by
prepare_for_restart
after unlockBug 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 moduleoutput.base
Helper functions
source_root
andget_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
subpackageExpand 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 layerPackage
abl
with a single module and anabl.Output
classNew sub-packages and modules under
snek5000
:solvers, output, info, log, make, magic, operators
Testing with
pytest
, and CI on GitHub actionsDetailed documentation
Versioning with
setuptools_scm
Changed#
Extra requirements
[test]
renamed to[tests]
Rename case files
3D_ABL
->abl
and directoryabl_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