Tags

Tags give the ability to mark specific points in history as being important
  • v3.2.0

    Release: v3.2.0
    ## [3.2.0] - 2026-02-10
    
    ### Changed
    
    - Rename `NumpySolver` to `NumPySolver`
    - OpenCL kernels profiling with OpenCL events instead of timeit.
    - Update documentation with new profiling and efficiency results.
    
    ### Added
    
    - Add a `verbosity` parameter to control logging levels.
    - An option to compare performance between two CSV files with `llg3d.bench.efficiency`.
    
    ### Optimized
    
    - Major optimization of `OpenCLSolver._xyz_average` by implementing deferred data transfer.
      Results are accumulated in a GPU buffer and transferred to RAM in a single batch at
      the end of simulation, eliminating synchronization overhead at each step.
    - OpenCL kernels are now asynchronous for a great performance improvement
    - Removed unnecessary barrier/wait in `OpenCLSolver._compute_R_random` to allow better overlap.
  • v3.1.1

    Release: v3.1.1
    ## [3.1.1] - 2026-02-03
    
    ### Fixed
    
    - Missing run.npz file in postprocess documentation example (#15)
    - Missing image files in domain wall documentation example (#15)
    - Target the OpenCL runner in the CI pipeline to avoid missing OpenCL platforms (#17)
    
    ### Added
    
    - A `--fail-on-warning` flag to the sphinx-build command in the CI pipeline to catch documentation warnings.
    
    ### Remove
    
    - Remove `sphinx-last-updated-by-git` from documentation dependencies and configuration (#18)
  • v3.1.0

    Release: v3.1.0
    ## [3.1.0] - 2026-02-03
    
    ### Added
    
    - References to the GitLab repository in the documentation.
    
    ## Changed
    
    - Some reorganization of the documentation home page.
    - Postprocess documentation moved to module-level documentation.
    
    ### Removed
    
    - Remove nbsphinx from the documentation dependencies.
  • v3.0.0

    Release: v3.0.0
    ## [3.0.0] - 2026-02-03
    
    > Note: This is a major release with significant (and breaking) changes and improvements.
    
    ### Added
    
    - OpenCL solver: support cubic anisotropy.
    - an initilization option for domain walls (`--init dw`).
    - Post-processing package `src/llg3d/post/` for dumping info, extracting scalar values, and plotting.
    - Export x-profiles of magnetization (#11)
    - New benchmarking utility in `src/llg3d/benchmarks/`: support for repeats,
      mean/std calculation, CSV metadata and std columns, plotting functions,
      performance regression comparison.
    - Profiling support with internal profiler and cProfile (with MPI support).
    
    ### Changed
    
    - `RunParameters` is now used to load `run_params` objects and create the CLI parser.
    - Result files are now `npz` files containing `run_params` and results dicts (json serialization is dropped).
    - `solver` module renamed to `solvers`
    - Solvers are now described in data classes (e.g., `NumpySolver`, `MPISolver`, `OpenCLSolver`) instead of functions.
    - Solver classes inherit from `RunParameters` to access run parameters directly as attributes.
    - use `tqdm` for progress bar (better performance and compatibility)
    - Major test refactor and reorganization (`tests/solvers/*`, `tests/post/*`) for improved structure and coverage.
    - Internal renames and API tidying (examples: `self.g -> self.grid`, `self.e -> self.elem`, etc.).
    - Refactoring and improvements in post-processing modules (`src/llg3d/post/*`).
    
    #### Docs
    
    - Many documentation improvements (execution guide, SLURM instructions, performance and
      profiling pages) and new performance pages (`docs/source/performance/*`).
    
    #### Performance
    
    - OpenCL improvements: buffer preallocation, merge kernels for optimizations, new kernel for averaging,
    - NumPY and MPI optimizations: reduce temporary arrays, optimize laplacian computation.
    - Performance as been significantly improved for both NumPy, MPI and OpenCL solvers.
    
    #### CI / Tools / Misc
    
    - `uv` is now the preferred tool for installing deps, packaging and publishing to PyPI.
    - CI improvements (`.gitlab-ci.yml` fixes).
    - Updated utilities and scripts (`utils/temperatures/*`, `utils/slurm/*`, performance pages).
    
    ### Fixed
    
    - Multiple test fixes (tolerances, fixture scopes, conditional skips for MPI/OpenCL environments).
    - Bug fixes in solvers (MPI laplacian boundaries, dtypes issues, final `m1_average` computation (#8)).
    
    ### Removed
    
    - JAX solver is moved to `experimental/` and exclude from tests (to limit maintenance burden).
    - Cleanup of deprecated/unused code and modules.
    - Removed `bench_laplacian.ipynb` notebook.
    - Removed support for old json result files.
  • v2.0.1

    Release: v2.0.1
    ## [2.0.1] - 2025-08-22
    
    ### Added
    
    - Describe ruff configuration in pyproject.toml
    
    ### Changed
    
    - Better code style, especially for docstrings
    
    ### Fixed
    
    - Translate project description
  • v2.0.0

    Release: v2.0.0
    ## [2.0.0] - 2025-07-30
    
    ### Added
    
    - Add an input argument to set the random number generator seed
    - Add an OpenCL solver (#13)
    - Handle single precision (#12)
    - Add a JAX solver
    - Fix the seed from the CLI (#10)
    
    ### Changed
    
    - Major refactoring for better isolation
    - The sequential version of the solver is now in the solver.numpy module
    - The run dict is simplified
    - Use -- in CLI options
    - Use uv in the CI pipeline
    - The CI pipeline now uses a DinD runner
    
    ### Removed
    
    - References to old code in the documentation
  • v1.4.1

    Release: v1.4.1
    ### Fixed
    
    - Add git to Docker image
    - Fix issue with syntax highlighting in documentation
  • v1.4.0

    Release: v1.4.0
    ### Changed
    
    - Translate some code to English
    - Update acceleration.ipynb
    - Update AUTHORS with affiliations
  • v1.3.0

    Release: v1.3.0
    ### Changed
    
    - Translate the notebooks to English
    
    ### Added
    
    - Add bibliography to the documentation
    - `codemeta.json` for referencing in Software Heritage
    
    ### Fixed
    
    - Fix the documentation for the post-processing
  • v1.2.0

    e37560a7 · Bump to version 1.2.0 ·
    Release: v1.2.0
    ### Added
    
    - document pip install from pypi
  • v1.1.0

    Release: v1.1.0
    ### Added
    
    - CI: publish to pypi
  • v1.0.0

    Release: v1.0.0
    ### Added
    
    - export x-profiles of magnetization
    
    ### Changed
    
    - initialization is now external functions
    - Better CLI
    - Translate the code and the documentation to English
    - Reorganize post-processing