Skip to content

Releases: ImpedanCEI/IDDEFIX

IDDEFIX v0.2.0

26 Mar 14:49

Choose a tag to compare

IDDEFIX v0.2.0

This release introduces major enhancements to parameter uncertainties, improved user experience with better progress tracking, and significant infrastructure improvements including Numpy 2.x compatibility and automated PyPI deployment.

🚀 New Features

  • 🧩 Parameter Uncertainties

    • Added calculation of uncertainties for DE & minimization parameters (#22)
    • Added uncertainties to CMAES option (#23)
    • Modify display_resonator_parameters to include uncertainties if available
    • Add function to display a warning if any parameter is above certain user-defined threshold via uncertainty_warning
    • Added the flagged params mask with high uncertainties to self as flagged_params and used it to highlight in read the flagged values in the display_resonator_parameters table
  • 🧩 Progress Tracking & Verbosity

    • Improved Progress Bar to iteration based + showing convergence as % (#10)
    • Improve verbosity of CMAES output and termination algorithm
    • Extended progressbar to be compatible with CMAES, allowing to put verbose = false as default and only showing pbar
  • 🧩 Data Processing Enhancements

    • Add support for negative peaks
    • Added convolution and deconvolution functions with Gaussian bunch support
    • Select most convenient objective function depending on data type
    • Add Abs objective functions and facilitate selection of objective functions within framework.py (now supports str)

💗 Other Highlights

  • 🔁 Tests

    • Added integration tests for ~80% coverage
    • Pytest compatible tests for DE and neffint impedance/wake conversion
    • Improved deconvolution sensitivity tests with sigma and samples
    • Added wakis simulation data to test 002 to improve coverage (#9)
    • Fix CMAES tests and improve termination default parameters
    • Update CMAES convergence with tolfun kwarg to enforce convergence on actions run
    • Improved tests to handle Numpy 2.x compatibility
  • 📚 Documentation and Examples

    • Added notebook example on convolutions and deconvolutions (006)
    • New example 007 showcasing parameter uncertainties
    • Rerun example 007 to showcase new features
  • ⚙️ Build & Compatibility

    • Numpy 2.x compatibility improvements and applied Ruff formatting (#16)
    • Added tqdm as dependency (#21)
    • Added neffint as core dependency
    • Add workflow to publish wheels to PyPI on tag (#17)
    • Updated release scripts, now deploy based on GH action
    • Adopt and execute pre-commit (#25)
    • Move actions to workflows/
    • Add pymoo to setup.py for automatic testing

🐛 Bugfixes

  • Fixed fitting only one resonator error (#15)
  • Fixed deconvolution issues (improved docstrings, fixed bug in framework when checking for complex data)
  • Fixed Q value validation in smart bounds (removing resonances with inf Q values) (#6)
  • Fixed convolution and DE sigma to match with CST for the transitions case
  • Fixed use of type in if statement when passing a str
  • Fixed invalid notebook missing attachment
  • Minor fixes for test tolerance improvements due to larger overall noise

New Contributors

📝 Full changelog

74 commits 📚 Docs 🟢 Tests 🐛 Fixes 🎨 Style ✨ Features Other
% of Commits ~8% ~30% ~5% ~20% ~25% ~12%

Pull Request summary

  • 🐛 fix: removing resonances from smart bounds that have inf inf q values by @elenafuengar in #6
  • 💚 Add tests with Github actions with 80% coverage using real data and simulations data by @elenafuengar in #9
  • ⚡ feature: Improved Progress Bar: iteration based + showing convergence as % by @elenafuengar in #10
  • 🎨 improve verbosity of CMAES output and termination algorithm by @elenafuengar in #12
  • 💚 fix CMAES tests and improve termination default parameters by @elenafuengar in #13
  • 🐛 fixing fitting only one resonator error by @emacchia in #15
  • 🔧 Ruff formatting, numpy 2.x compatibility, nighly tests on python 3.10 to 3.14 by @elenafuengar in #16
  • 👷 Add workflow to publish wheels to PyPI on tag by @ekatralis in #17
  • ➕ added tqdm as dependency by @elenafuengar in #21
  • ✨ Add uncertainties to each resonator parameter fit via covariance matrix by @SebastienJoly in #22
  • ✨ Add uncertainties to CMAES option by @SebastienJoly in #23
  • ✨ Feature/display with uncertainties by @elenafuengar in #24
  • 🔧 Adopt and execute pre-commit by @elenafuengar in #25

Full Changelog: v0.1.0...v0.2.0

IDDEFIX v.0.1.4

27 Feb 09:55

Choose a tag to compare

What's Changed

  • ⚡ Improved Progress Bar: iteration based + showing convergence as % by @elenafuengar in #10
  • 🎨 improve verbosity of CMAES output and termination algorithm by @elenafuengar in #12
  • 💚 fix CMAES tests and improve termination default parameters by @elenafuengar in #13
  • 🐛 fixing fitting only one resonator error by @emacchia in #15
  • 🔧 Ruff formatting, numpy 2.x compatibility, nighly tests on python 3.10 to 3.14 by @elenafuengar in #16
  • 👷🏻 workflow to publish wheels to PyPI on tag by @ekatralis in #17

New Contributors

Full Changelog: v0.1.3...v0.1.4

v.0.1.3

26 Jan 18:36

Choose a tag to compare

IDDEFIX v0.1.3

Released on 2026-01-26

🚀 New Features

  • feature: improved progressbar to be iterations-based, with an estimation of convergence as post-fix on every iteration call
  • feature: include verbosity options to control the output in CMAES, and use the new progress-bar when verbose=False
  • feature: improve the termination method in CMAES, to be convergence based via fftol and xtol and not only iteration based

💗 Other Tag Highlights

  • 🔁 Nightly tests with GitHub Actions: now testing all IDDEFIX algorithms on synthetic data and real simulation data, using pytest fixtures
  • Improved docstrings on every user-exposed function

🐛 Bugfixes

  • fix: verbose problems in CMAES
  • error-handling: improve error message when pymoo is not correctly imported

👋👩‍💻 Contributors

📝 Full Changelog

Full Changelog: v0.1.2...v0.1.3

  • 💚 fix CMAES tests and improve termination default parameters (elenafuengar)
  • 2026-01-26 🎨 improve verbosity of CMAES output and termination algorithm (elenafuengar)
  • 2025-11-27 re-run examples with new progress bar (elenafuengar)
  • 2025-11-27 style: minor changes in progressbar (elenafuengar)
  • 2025-11-27 feature: add supoprt for negative peaks (elenafuengar)
  • 2025-11-25 (remote) fix: add pymoo to nightly test installation-to be removed after release (elenafuengar)
  • 2025-11-07 feature: improve progressbar for DE (iterations based with convergence metric to the side + extebded progressbar to be compatible with CMAES, allowing to put verbose = false as default and only showing pbar (elenafuengar)
  • 2025-11-07 (main) style: add nightly tests status badge (elenafuengar)
  • 2025-11-07 tests: cleanup of test 003 (elenafuengar)
  • 2025-11-07 test: update CMAES convergence with tolfun kwarg to enforce convergence on actions run (elenafuengar)
  • 2025-11-07 test: update CMAES convergence with tolfun kwarg to enforce convergence on actions run (elenafuengar)
  • 2025-11-07 test: update CMAES convergence with tolfun kwarg to enforce convergence on actions run (elenafuengar)
  • 2025-11-07 tests: fixing github actions errors (elenafuengar)
  • 2025-11-06 build: add pymoo to setup.py needed in the automatic testing (elenafuengar)
  • 2025-11-06 test: move actions to workflows/ (elenafuengar)
  • 2025-11-05 Merge pull request #9 from ImpedanCEI/fix-deconvolution (Elena de la Fuente García)
  • 2025-11-05 test: Addes wakis simulation data to test 002 to improve coverage and modified .gitignore to no track .png files inside examples (Antonia Huber)
  • 2025-11-05 test: add manual and nighlty github actions to pipeline (elenafuengar)
  • 2025-11-05 bugfix: use type in if statement when passing a str (elenafuengar)
  • 2025-11-05 test: added integration tests for 80% coverage. Smartbounds missing (elenafuengar)
  • 2025-11-04 (origin/fix-deconvolution, fix-deconvolution) test: pytest compatible test for DE and neffint impedance/wake conversion + deconvolution sensitivity test with sigma and samples (elenafuengar)
  • 2025-11-04 fix+feature: fix docstring for deconvolution, fix bug in framework when checking for complex data, add fun
    ction to retrieve bunch spectrum used for decvonvolution (elenafuengar)
  • 2025-10-31 build: bump version number (elenafuengar)
  • 2025-10-31 build: improve release template (elenafuengar)
  • 2025-10-31 build: improve release template (elenafuengar)
  • 2025-10-31 build: add release workflow and template (elenafuengar)

v0.1.2

31 Oct 17:11
5cee1dc

Choose a tag to compare

IDDEFIX v0.1.2

Released on 2025-10-31

🚀 New Features

  • feature: add Abs objective functions and facilitate selection of objective functions within framework.py → objective function now supports str
  • feature: select most convenient objective function depending on data type

💗 Other Tag Highlights

  • style: improve extrapolated plot using scienceplots in some example notebooks
  • build: improve release template
  • build: add release workflow and template

🐛 Bugfixes

  • fix: removing resonances from smart bounds that have inf inf q values (PR: #6 and Issue: #5)
  • fix: fix conv and DE sigma to match with CST for the transitions case
  • fix: undo the change in sigma formalism

👋👩‍💻 Contributors

📝 Full Changelog

v0.1.1...v0.1.2

git log v0.1.1...v0.1.2 --pretty=format:"* %ad %s (%an)" --date=short

  • 2025-10-31 build: improve release template (elenafuengar)
  • 2025-10-31 build: improve release template (elenafuengar)
  • 2025-10-31 build: add release workflow and template (elenafuengar)
  • 2025-10-31 (tag: v0.1.2) fix: removing resonances from smart bounds that have inf inf q values --> Merge pull request #6 from ImpedanCEI/fix-q-value (Elena de la Fuente García)
  • 2025-10-31 (origin/fix-q-value, fix-q-value) fix: removing resonances from smart bounds that have inf inf q values (elenafuengar)
  • 2025-10-30 feature: add Abs objective functions and facilitate selection of objective functions within framework.py --> objective function now supports str (elenafuengar)
  • 2025-10-20 feature: select most convenient objective function depending on data type (elenafuengar)
  • 2025-09-23 style: improve extrapolated plot using scienceplots (elenafuengar)
  • 2025-07-23 fix: fix conv and DE sigma to match with CST for the transitions case (elenafuengar)
  • 2025-07-22 build: update version (elenafuengar)
  • 2025-07-22 fix: undo the change in sigma formalism (elenafuengar)
  • 2025-07-22 style: revised 006 (elenafuengar)
  • 2025-07-22 build: update version (elenafuengar)

IDDEFIX v0.1.1

22 Jul 10:44

Choose a tag to compare

IDDEFIX v0.1.1

Coming soon!

🚀 New Features

  • Convolution and Deconvolution Utilities
    • compute_convolution(): perform wake potential convolution with a Gaussian bunch using different backends (numpy, scipy, scipy_fft).
    • compute_deconvolution(): estimate impedance from wake potential assuming a Gaussian charge distribution.
    • gaussian_bunch(): generate time-domain Gaussian profiles from RMS or standard deviation.
    • All functions now use standard deviation σ to match CST and physics convention.

💗 Other Tag Highlights

  • 📁 Examples:
    • Added notebook 006 demonstrating convolution and deconvolution techniques using CST data.
    • Improvements to docstrings for all new utility functions.

🐛 Bugfixes

  • Fixed notebook attachment error in example directory.
  • Switched all wake potential calculations to use standard deviation σ instead of RMS bunch length, improving consistency with CST Wakefield and Wakis

👋👩‍💻 New Contributors

  • No external contributors in this release.

📝Full changelog

  • 2025-07-22 (HEAD -> main, origin/main, origin/HEAD) refact: Use STD sigma instead of RMS bunch length in wake potential formulas to match CST and convolution/deconvolution methods (elenafuengar)
  • 2025-07-22 build: expose newly added functions (elenafuengar)
  • 2025-07-22 feature: finalized convolution func, added gaussian_bunch func (elenafuengar)
  • 2025-07-22 feature: added notebook example on convolutions and deconvolutions (elenafuengar)
  • 2025-07-21 feature: add convolution from scipy and numpy and missing docstrings (elenafuengar)
  • 2025-04-01 fix: invalid notebook missing attachment (elenafuengar)
  • 2025-04-01 Update README.md (Elena de la Fuente García)

IDDEFIX v0.1.0

28 Mar 10:01

Choose a tag to compare

IDDEFIX v0.1.0

🚀 New Features

  • Smart Bound Determination (SBD):

    • Method to_table() to display the estimated parameter bounds.
    • Custom scale factors for Rs, Q, and fres: Rs_bounds, Q_bounds, fres_bounds for init.
  • Utils:

    • Integration of neffint for non-equidistant Fourier transforms inside functions:
      • compute_neffint(): alternative to compute FFT.
      • compute_ineffint(): allows going from impedance to Wake potential, alternative to iFFT.
      • compute_deconvolution(): Allows going from wake potential to impedance using FFT(wake)/FFT(charge_distribution). Assumes charge distribution is a Gaussian with sigmaz specified by the user in [s].
    • File I/O:
      • read_txt(): reads ASCII .txt files into arrays or dicts.
      • save_txt(): exports x/y data to formatted .txt files.
  • Framework:

    • In run_minimization_algorithm(), the argument margin now supports a list of independent values for [Rs, Q, fres], allowing finer control over parameter variations during optimization.
    • Updated docstrings for EvolutionaryAlgorithm methods for better documentation and clarity.
    • Check if beam sigma parameter is not passed when using wake potential functions and print a warning
  • Solvers:

    • Implemented pymoo's CMA-ES algorithm (run_cmaes()) as an alternative global optimization solver.
    • Added run_pymoo_cmaes_solver() for CMA-ES optimization using pymoo, with support for custom population size, sigma, and stopping criteria.
    • Included an example integrating CMA-ES with previous optimization workflows.

💗 Other Tag Highlights

  • 🔁 Nightly tests with GitHub Actions:
    • 001 -> Compare neffint, FFT, and analytical methods.
  • 📁 Examples:
    • 004a: Fit directly the wake potential data with wake potential resonator formalism
    • 004b: Fit impedance from wake potential data using compute_deconvolution()
    • 005: Examples using pymoo's CMA-ES algorithm

🐛 Bugfixes

  • SBD: Method find() now updates parameterBounds in self.
  • Trimmed trailing whitespaces for improved code readability.

👋👩‍💻New Contributors

  • @babreufig - Implemented the CMA-ES algorithm using pymoo in #3

📝Full changelog

git log v0.0.2... --date=short --pretty=format:"* %ad %d %s (%aN)"

  • 2025-03-28 build: prepare for v0.1.0 release (elenafuengar)
  • 2025-03-27 style: add TODOs (elenafuengar)
  • 2025-03-27 docs: update release.md, prepare for v0.1.0 release (elenafuengar)
  • 2025-03-27 contribution: added two more examples to notebook (pull request #4 from babreufig/main) (Elena de la Fuente García)
  • 2025-03-26 Little timing comparison between CMAES and DE (Bernardo Abreu Figueiredo)
  • 2025-03-26 Added two more examples to notebook (Bernardo Abreu Figueiredo)
  • 2025-03-17 fix/feat: Check if sigma is not passed, and use the sigma value in self or default and print warning (elenafuengar)
  • 2025-03-17 feature: add functions to read and write to .txt files (elenafuengar)
  • 2025-03-16 build: include pymoo (optional) (elenafuengar)
  • 2025-03-16 docs: Update readme (elenafuengar)
  • 2025-03-16 fix: add OptimizationProblem class inside pymoo routine for import handling and clarity (elenafuengar)
  • 2025-03-16 docs: update release.md (elenafuengar)
  • 2025-03-16 docs: add docstring and error handling for pymoo imports (elenafuengar)
  • 2025-03-16 Merge pull request #3 from babreufig/main (Elena de la Fuente García)
  • 2025-03-12 Implemented CMA-ES and added one mixed example of previous notebooks (Bernardo Abreu Figueiredo)
  • 2025-03-12 Trimmed trailing whitespaces (Bernardo Abreu Figueiredo)
  • 2025-03-11 docs: update docstrings inside EvolutionaryAlgorithm methods (elenafuengar)
  • 2025-03-11 docs: update release.md (elenafuengar)
  • 2025-03-11 feature: allow different margins for Rs, Q and fres when running the minimization algorithm (elenafuengar)
  • 2025-03-10 docs: prepare for 0.1.0 release (elenafuengar)
  • 2025-03-10 docs: include call to new method SBD.to_table() (elenafuengar)
  • 2025-03-10 docs: add docstring (elenafuengar)
  • 2025-03-10 feature: add custom scaling factors for Rs, Q, fres in init (elenafuengar)
  • 2025-03-10 fix: find() method was not updating paramBounds in self (elenafuengar)
  • 2025-03-10 feature: add method to display parameter bounds as a table (elenafuengar)
  • 2025-02-28 style: adding wake with lines plot (elenafuengar)
  • 2025-02-24 fix: change/remove units (elenafuengar)
  • 2025-02-11 test: use iddefix new compute_neffint and compute_ineffint functions (elenafuengar)
  • 2025-02-11 feature: functions to compute fft and ifft using neffint (elenafuengar)
  • 2025-02-11 test: add adaptative frequency refining (elenafuengar)
  • 2025-02-11 docs: fix typo, update notebook list, new RTD version (elenafuengar)

Full Changelog: v0.0.2...v0.1.0