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.
0.9.2 - 2023-08-23
- Donation links.
- {func}
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
- 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
- Use
remaining_clock_time
by default - Replace isort and flake8 with ruff, upgrade hooks
0.9.0 - 2023-01-11
- {mod}
snek5000.output.remaining_clock_time
. - {func}
snek5000.output.base.Output.post_init_create_additional_source_files
, {func}snek5000.resources.get_base_templates
and {func}snek5000.resources.get_base_template
. - {class}
snek5000.output.spatial_means.SpatialMeans
. - New block
user_size
inSIZE.j2
template (see {mod}snek5000.resources
).
- 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.
- Commands
snek-make
,snek-restart
,snek-info
,snek-ipy-load
andsnek-generate-config
. - 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 withload
andget_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
.
- 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.- {func}
snek5000.util.files.next_path
getsforce_suffix
andreturn_suffix
parameters - {meth}
snek5000.output.base.Output._save_info_solver_params_xml
updates.par
andparams_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.
- {func}
snek5000.params._complete_params_from_par_file
(renamed as {func}snek5000.params.complete_params_from_par_file
). - {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). - The
warnings
parameter in {meth}snek5000.output.base.Output.update_snakemake_config
is deprecated! Useverbosity=0
(now default) to disable warnings.
- Parameter
warnings
in {func}snek5000.util.smake.append_debug_flags
is replaced by a separate function {func}snek5000.util.smake.set_compiler_verbosity
.
- Detection of linear Nek5000 solvers
- Append debug flags to config, even if CFLAGS and FFLAGS are missing
0.7.0b0 - 2021-09-16
- Ability to customize number of processes with {meth}
snek5000.make.Make.exec
- Documentation on configuring
snek5000
compilation and execution
- 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
- Rule
srun
renamed as calledrun_fg
- Allow
name_solver
to be different from the "package name" (thanks @paugier)
0.6.1b0 - 2021-05-18
- {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
andmakefile_usr.inc
files.
- Remove
underflow
from debug flags
0.6.0b0 - 2021-04-16
- Tutorial and Snakemake workflows for packaging user code, see {ref}
packaging
- Module {mod}
snek5000.util.smake
with helper utilities to set env, flags etc.
- Much less boilerplate code for user code!
- Updated pre-commit hooks for development
- Function {func}
snek5000.util.activate_paths
- Unused Snakemake rules from the top project level
- 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
- Nek parameter
filter_modes
for HPFRT andwrite_to_field_file
- Function
load_simul
to load simulations from a directory.
- 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
- Rewrite README and docs for better onboarding
0.4.1b0 - 2020-10-26
- 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
- Parameters for specifying mesh origin and ratio
- Coverage tests
- Support for Nek5000 v19
- Cluster's default project
- 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
- More assets: templates, default snakemake config
- Source root path expands ~ and environment variables
0.3.0a0 - 2020-05-09
- Sub-package
assets
and moduleoutput.base
- Helper functions
source_root
andget_asset
- Separate framework from the code and rename it to
snek5000
- Documentation and readme to reflect the package
- ABL source code
0.2.2 - 2020-05-08
- Pre-commit: black, flake8, isort fixing and linting support
- Jupyterlab and ipykernel configuration snakemake rules
- Job management script -
organize.py
- New module: const
- Parameters for Maronga case
- Compilation is now parallel
- Two-step archival, tar and compress
- Snakemake: gslib dependency before compiling
- Snakemake: Tee output to log file
- Requirements files produced using pip-tools
0.2.1 - 2020-04-14
- Tar shell functions in activate script
- Module
snek5000.clusters
for job submission
- Conda environment packages
- Reduced pressure residual tolerance for divergence check
- Bugfixes for simulation parameter loading, restart
- Snakefile dependencies for running a simulation
0.2.0 - 2020-03-22
- KTH toolbox
- Coriolis force
- Job submission in cluster
- More user_params
- Archives use zstd compression
- user_params is a dictionary
- 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
- 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.
- Snakecase for
nek
parameters
0.1.0 - 2020-01-23
- Uses
fluidsim
framework for creating a scripting layer - Package
abl
with a single module and anabl.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
- 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
- Scripting for managing run parameters
snek5000.params
- Python packaging
- Sphinx + Doxygen + Breathe documentation