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
ValueErrorwhen no coordinates are defined and history points object’sloadmethod is invoked.Minor corrections in
README.mdand documentation and JOSS manuscript.
0.9.1 - 2023-05-01#
Added#
New command
snek-make-nekto 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_timeby 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_sizeinSIZE.j2template (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-loadandsnek-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_FLAGSin Snakemake configsnek5000.output.history_points.HistoryPointsfor Nek5000 history pointssnek5000.output.phys_fields.PhysFieldsnow fully functional withloadandget_varmethods 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.staggeredhas 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 = Trueis required to maintain previous default behaviour.snek5000.util.files.next_path()getsforce_suffixandreturn_suffixparameterssnek5000.output.base.Output._save_info_solver_params_xml()updates.parandparams_simul.xmlfile on loading for restartShorter output while executing
genmapField files will be stored in sessions enabling restart with symlinking of restart files and avoids clobbering existing solution files
Support extension
.usr.fto facilitate syntax highlighting and which would be copied as a.usrfile uponsnek5000.output.base.Output.copy()The use of
params.nek.general.user_paramsare 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
warningsparameter insnek5000.output.base.Output.update_snakemake_config()is deprecated! Useverbosity=0(now default) to disable warnings.
Removed#
Parameter
warningsinsnek5000.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
snek5000compilation and execution
Changed#
Use rich for logging
No need to wait for
<case>.ffile 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_timeis now a propertysnek5000.operators.Operators.max_order_time
Removed#
Rule
srunrenamed as calledrun_fg
Fixed#
Allow
name_solverto 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,SIZEandmakefile_usr.incfiles.
Fixed#
Remove
underflowfrom 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.smakewith 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.paramspoints toparams.outputas in FluidSim
0.5.0b0 - 2021-01-18#
Added#
Nek parameter
filter_modesfor HPFRT andwrite_to_field_fileFunction
load_simulto load simulations from a directory.
Changed#
Depend on
fluidsim-coreinstead offluidsimParameters, entry points and magic implementation from fluidsim-core (#15)
Output class now conforms to
fluidsim-coreAPI. Fileparams.xmlrenamed 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
$PATHlogic, added testsNo error raised by
prepare_for_restartafter 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
assetsand moduleoutput.baseHelper functions
source_rootandget_asset
Changed#
Separate framework from the code and rename it to
snek5000Documentation 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.pyNew 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.clustersfor 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
usericCs - Cs**2 in
eddy_viscAssert exit code of snakemake results in tests
Subroutine
set_forcinguses ux… instead of vx
0.1.1 - 2020-01-27#
Added#
Templates in
abl.templatessubpackageExpand parameters and write methods in class
OperatorsImproved tests and documentation
Solver
ablrespects parameters and writes box and SIZE files.
Changed#
Snakecase for
nekparameters
0.1.0 - 2020-01-23#
Added#
Uses
fluidsimframework for creating a scripting layerPackage
ablwith a single module and anabl.OutputclassNew sub-packages and modules under
snek5000:solvers, output, info, log, make, magic, operatorsTesting with
pytest, and CI on GitHub actionsDetailed documentation
Versioning with
setuptools_scm
Changed#
Extra requirements
[test]renamed to[tests]Rename case files
3D_ABL->abland directoryabl_nek5000->ablOverall reorganization of modules and Snakemake + configuration files.
0.0.1 - 2020-01-17#
Added#
Scripting for managing run parameters
snek5000.paramsPython packaging
Sphinx + Doxygen + Breathe documentation