Skip to content

implemented fixes to the magnetism feature. #425, point 3. - #439

Merged
rozyczko merged 3 commits into
developfrom
425-magnetism
Oct 15, 2026
Merged

rozyczko merged 3 commits into
developfrom
425-magnetism

Conversation

@rozyczko

Copy link
Copy Markdown
Member

Documentation and User Guide Updates:

  • Added a new user guide page user-guide/magnetism.md detailing magnetism conventions, limitations, and new features such as Model.guide_field_angle, Model.applied_field, and MaterialMagnetic. The changelog summarizes all major changes related to magnetism, including new methods, parameters, and changes to ORSO model import/export.
  • Updated the main user guide index to reference the new magnetism page, clarify that only Refl1D supports magnetism, and document MaterialMagnetic as a new material type.

Tutorial Enhancements:

  • Significantly revised the advanced polarized fitting tutorial (polarized_fitting.ipynb) to:

    • Accurately describe spin-resolved SLDs as nuclear SLD plus/minus the magnetic SLD along the field, with clear explanations and references to the new magnetism guide.
    • Add a new section and example on fitting the magnetic moment in Bohr magnetons using MaterialMagnetic and rho_m_coupled.
    • Import MaterialMagnetic where relevant.
  • Updated the simulation tutorial (magnetism.ipynb) to:

    • Reference the new magnetism guide and clarify conventions.
    • Show usage of MaterialMagnetic and demonstrate coupling a layer’s magnetic SLD to the material’s moment.
    • Add explicit examples for setting the guide field and applied field in models, and plot their effects.

@rozyczko rozyczko added [scope] enhancement Adds/improves features (major.MINOR.patch) [priority] high Should be prioritized soon enhancement labels Oct 14, 2026
@codecov

codecov Bot commented Oct 14, 2026 •

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 97.90941% with 6 lines in your changes missing coverage. Please review.
✅ Project coverage is 95.69%. Comparing base (66adaf5) to head (ca93529).

Files with missing lines Patch % Lines
...try/sample/elements/materials/material_magnetic.py 91.07% 5 Missing ⚠️
...rc/easyreflectometry/calculators/refl1d/wrapper.py 85.71% 1 Missing ⚠️
Additional details and impacted files

Impacted file tree graph

@@             Coverage Diff             @@
##           develop     #439      +/-   ##
===========================================
+ Coverage    95.41%   95.69%   +0.28%     
===========================================
  Files           59       60       +1     
  Lines         7042     7294     +252     
===========================================
+ Hits          6719     6980     +261     
+ Misses         323      314       -9     
Flag Coverage Δ
integration 38.93% <29.96%> (-0.22%) ⬇️
unittests 95.69% <97.90%> (+0.28%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
...easyreflectometry/calculators/refl1d/calculator.py 100.00% <ø> (ø)
src/easyreflectometry/contrasts.py 100.00% <100.00%> (ø)
src/easyreflectometry/model/model.py 98.30% <100.00%> (+0.20%) ⬆️
src/easyreflectometry/orso_utils.py 96.04% <100.00%> (+1.64%) ⬆️
src/easyreflectometry/project.py 95.19% <100.00%> (+0.15%) ⬆️
src/easyreflectometry/sample/__init__.py 100.00% <100.00%> (ø)
.../easyreflectometry/sample/elements/layers/layer.py 97.72% <100.00%> (+1.57%) ⬆️
...etry/sample/elements/materials/material_density.py 99.18% <100.00%> (+0.03%) ⬆️
src/easyreflectometry/special/calculations.py 100.00% <100.00%> (ø)
...rc/easyreflectometry/calculators/refl1d/wrapper.py 97.57% <85.71%> (+0.03%) ⬆️
... and 1 more

... and 3 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@rozyczko
rozyczko merged commit 2920376 into develop Oct 15, 2026
53 checks passed
@rozyczko
rozyczko deleted the 425-magnetism branch October 15, 2026 09:59
rozyczko added a commit that referenced this pull request Oct 19, 2026
* Refl1d fix (#302)

* assure refl1d actually runs from the GUI

* don't fail on codecov upload

* Improved limits for certain parameters (#304)

* initial implementation

* set `disable` status on relevant sub/super-phase parameters

* fixed tests

* fixes after CR

* fixed tests

* Mighell transform (#303)

* initial implementation of the mighell algorithm for data with zero variances

* don't fail on codecov upload

* fixed chi2 reporting, added MD file with description

* unit test update

* added docs about Mighell

* updated easyscience branch, deleted script

* chi -> chi2

* use develop for core

* version bump. dependency fix for release.

* modified release version

* updated docs

* include plopp as a doc dependency

* Preparations for the release (#350) (#351)

* backmerge after 1.6.0 release

* Apply templates (#353)

* initial commit up to and including `pixi run check` step

* fixes

* updates to pyproject.toml

* remade __init__.py

* minor fix

* a few more fixes

* Apply templates with docstrings fixes

* Add missing favicon and update SVG assets

* moved docs for mkdocs

* make "pixi run mkdocs build" and "pixi run nonpy-format-check" work
together

* try using absolute paths for the wheel

* minor fixes

* refactor md file headers for docs

* minor CR changes

* linting

* code review fixes

* CR fixes

* proper globbing

* remove __version__

---------

Co-authored-by: Andrew Sazonov <andrew.sazonov@icloud.com>

* prettify the summary (#356)

* refactor printout formatter (#358)

* make PDF links clickable (#359)

* Move to EasyList (#360)

* initial commit

* PR review

* more tests

* Bayesian analysis (#352)

* initial commit with examples

* ruff format

* refactor core modifications to live in reflectometry lib only

* modified the notebook a bit

* refactored MCMC sampling to easyscience module

* added pass-through for cancellation and total number of calculations

* silly typo

* yet another linting

* moved the notebook to the correct location and fixed the formatting

* added more initial arguments to sample. Added unit tests

* prettify charts. Updated notebook

* fixed issue with the notebook

* move file fetch to reflectometry/data

* PR review fixes

* be careful with small chains

* ruff

* try to use explicit dtype for Ubuntu

* another attempt at fixing failing test

* better corner and distribution plots

* updates to the Bayesian API after changes to core

* use bayesian_extend

* minor fixes

* fix failing test

* test against develop, so we can merge the PR

* use mcmc_sample

* fixed tests

* minor notebook fix

* HTML Summary now shows plots with plotly (#363)

* Pointwise update (#362)

* initial commit with examples

* ruff format

* refactor core modifications to live in reflectometry lib only

* modified the notebook a bit

* refactored MCMC sampling to easyscience module

* added pass-through for cancellation and total number of calculations

* silly typo

* yet another linting

* moved the notebook to the correct location and fixed the formatting

* added more initial arguments to sample. Added unit tests

* prettify charts. Updated notebook

* fixed issue with the notebook

* move file fetch to reflectometry/data

* PR review fixes

* be careful with small chains

* ruff

* try to use explicit dtype for Ubuntu

* another attempt at fixing failing test

* better corner and distribution plots

* updated poitwise logic/notebook

* 381 apitest hygiene (#384)

* addressing #381

* minor docstring update

* fixes for summary printout #375 (#385)

* Core fixes (#383)

* moved to Sampler class from Core

* reparent branch

* fixed issue #367 (#382)

* fixed issue #367

* disable automatic parallelization for windows

* Changes after code review

* added test

* arviz fix

* try to fix prettier issues

* updated notebook

* linting

* fixing #370 (#388)

* reparent to develop

* Core fixes pointwise (#387)

* fixed pointwise treatment on file load

* more tests

* reparented easyscience, updated CHANGELOG

* codecov related fixes (#391)

* Codecov fixes 2 (#392)

* try to fix failing test

* another attempt

* Polarized channels (#393)

* initial version

* added magnetic SLD profile

* added magnetic parameters

* code review comments addressed

* code review fixes for Phase 2, added notebook

* PR code review comments

* fixed polarized file load issue

* enable magnetic layers

* new LayerMagnetism component

* ruff

* ruff on notebooks

* bind calculator to model for performance

* attempt at fixing package testing

* package tests only on master

* don't run ruff twice

* code review fixes

* added polarized fitting example/notebook

* fixed default sample generation

* improved wording in the magnetic fitting notebook

* move the most expensive test to integration

* dont show 0.0 for parameter errors where no fitting was done (#397)

* removed vestiges of BA (#394)

* Improved constraints + doc migration (#400)

* initial version

* added magnetic SLD profile

* added magnetic parameters

* ruff

* code review comments addressed

* code review fixes for Phase 2, added notebook

* ruff

* PR code review comments

* fixed polarized file load issue

* enable magnetic layers

* new LayerMagnetism component

* ruff

* ruff on notebooks

* bind calculator to model for performance

* attempt at fixing package testing

* package tests only on master

* don't run ruff twice

* code review fixes

* added polarized fitting example/notebook

* fixed default sample generation

* improved wording in the magnetic fitting notebook

* move the most expensive test to integration

* Improved constraints (#395)

* improved handling of constraints

* ruff

* wording

* additional cell in a notebook to showcase the new way of doing
constraints

* fixed notebook

* initial checkin

* .bounds -> min, max

* updates so the code is self-contained and doesn't depend on changes to
core

* Code review comments addressed

* Updated docs (#398)

* move everything to MKDocs
minor updates/fixes after code review

* ruff fix for notebook

* Fix broken conflict resolutions from develop merge

The merge of develop (2042778) left two files with damaged conflict
resolutions: magnetism.ipynb gained a corrupt hybrid cell (invalid
notebook JSON, duplicate cell id) and project.py gained a duplicated
copy of the spin-asymmetry method block with an orphaned method body.
Both files are restored to the branch-side version, which already
contained everything develop had for them.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* code review issues addressed

* removed explicit EasyCore constraints factory reliance

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>

* Orso improvements (#402)

* initial commit

* code review fixes

* more unit tests for orso functionality

* Enable SLD dependence on material data (#403)

* enable SLD dependence on material data

* extending methods for use in ERA

* code review issues addressed

* ruff

* make molecular weight a descriptor

* Improvements to the state tracking #401 (#405)

* Improvements to the state tracking #401

* PR issues addressed

* minor ruff NOQA

* reparent to develop of core and fixed the functionality

* minor material editor fix (#408)

* fix default elements (#410)

* 378 remove datastore (#409)

* Removed DataStore

* ruff on CHANGELOG

* ruff

* Added exception when file exists and overwrite=false (#411)

* fix the multi-column load #376 (#413)

* fix the multi-column load #376

* preparations for the release

* pixi update

* updated EasyScience dep

* pre-release doc fixes

* correct units for scattering lengths #377 (#419)

* correct units for scattering lengths #377

* improved help and tests

* reparent example files properly (#420)

* minor fixes required for the updated GUI (#422)

* minor fixes required for the updated GUI

* PR review fixes #1

* PR review fixes

* 281 volume fraction (#421)

* Added volume fraction profile calculation and display. #281

* fixed CHANGELOG

* variable resolution fitting (#424)

* variable resolution fitting, initial commit

* PR review fixes

* 426 fix wrong curve (#428)

* fixed unique_name reuse for uncollected models #426

* added missing test

* added fit configuration owner #427 (#429)

* added fit configuration owner #427

* PR review fixes

* 425 multiple contrasts (#432)

* Multiple contrasts implementation improved. #425 issue #2

* PR review fixes

* another round of reviews

* added docs and notebook for multiple contrasts

* added multiple contrast docs and notebook

* fixed docs

* added a convergence integration test. (#436)

* Variable resolution fitting fixes from #425 p.3 (#437)

* Variable resolution fitting fixes from #425 p.3

* code review fixes

* updated README.md (#438)

* updated README.md

* slight modifications of README

* implemented fixes to the magnetism feature. #425, point 3. (#439)

* implemented fixes to the magnetism feature. #425, point 3.

* code review fixes

* update versioning

---------

Co-authored-by: Piotr Rozyczko <piotr.rozyczko@gmail.com>
Co-authored-by: Andrew Sazonov <andrew.sazonov@icloud.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement [priority] high Should be prioritized soon [scope] enhancement Adds/improves features (major.MINOR.patch)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant