Skip to content

X-ray polarization optics and broader CrysFML engine support#211

Open
AndrewSazonov wants to merge 39 commits into
developfrom
cfl-api-2
Open

X-ray polarization optics and broader CrysFML engine support#211
AndrewSazonov wants to merge 39 commits into
developfrom
cfl-api-2

Conversation

@AndrewSazonov

Copy link
Copy Markdown
Member

Adds an X-ray Lorentz-polarization correction with configurable monochromator optics for constant-wavelength powder data.

Expands the CrysFML calculation engine so it handles constant-wavelength powder more fully — X-ray patterns, the Thompson-Cox-Hastings profile with Finger-Cox-Jephcoat asymmetry, and Kα₁/Kα₂ doublets — as an alternative to CrysPy.

Adds a new Features page giving an at-a-glance overview of what EasyDiffraction supports across the library, command line, and application (and how each capability maps to FullProf settings), and substantially expands the Verification section with new examples that cross-check results against FullProf (Bragg) and diffpy (pair distribution functions).

Relocate the calculator-independent absorption and polarization
corrections out of the calculators (engines) package into a sibling
analysis/corrections/ package, completing the import rename begun in
the review-fix commit. Add an accepted ADR recording the placement and
the shared apply(y, experiment) contract. No public API or behaviour
change.
Add a top "Refinement" note to every verification notebook stating what
is adjusted (scale, profile terms, or none) and flag known differences.
Align notebook and index names with the Features page, and clarify that
PDF references come from a direct diffpy.pdffit2 call (not FullProf) and
that the Kα1/Kα2 doublet is an EasyDiffraction-level implementation.

Give the Y2O3 isotropic-ADP example realistic Biso values (Y 0.30,
O 0.50) and regenerate its FullProf reference. Name the NCAF TOF page as
the Gaussian case (Lorentzian terms forced to zero). Remove stray
fort.77. Update the published Features matrix for current-branch state.
@AndrewSazonov AndrewSazonov added the [scope] enhancement Adds/improves features (major.MINOR.patch) label Jun 19, 2026
@codecov

codecov Bot commented Jun 19, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 90.30%. Comparing base (eec8ec8) to head (5eba19e).

Additional details and impacted files

Impacted file tree graph

@@             Coverage Diff             @@
##           develop     #211      +/-   ##
===========================================
- Coverage    90.38%   90.30%   -0.09%     
===========================================
  Files          284      284              
  Lines        24367    24540     +173     
  Branches      2860     2882      +22     
===========================================
+ Hits         22024    22160     +136     
- Misses        1742     1763      +21     
- Partials       601      617      +16     
Flag Coverage Δ
unittests 90.30% <ø> (-0.09%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.
see 9 files with indirect coverage changes

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

PdffitCalculator now sets pscale to 1.0 and the linked-structure
scale is applied in TotalData._update, so the refined PDF scale
parameters land at new values while fit quality is unchanged.
Update the three affected tutorial baselines (pdf-nacl-xrd,
pdf-si-nomad, joint-si-bragg-pdf).
Add per-engine status icons and inline verification/cross-ref
links, fix the section heading levels so the in-page table of
contents lists every section, and give the capability matrices a
uniform, compact column layout (equal narrow LIB/CLI/APP columns
via a scoped md_in_html wrapper). Link to the Features page from
the Introduction.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

[scope] enhancement Adds/improves features (major.MINOR.patch)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant