Skip to content

Commit b799bed

Browse files
Unify CIF parsing, category updates, and data handling (#108)
* Adds CIF parsing capabilities to Category and Parameter classes * Refines error logging using _log_name * Refactors for CIF parsing functionality * Enhances CIF parsing support in experiments: 1st step * Enhances CIF parsing in SampleModelFactory * Refactors CIF handling in SampleModelFactory and enhances DatablockItem with categories property * Enhances CIF handling in SampleModelFactory * Refactors ExperimentType initialization to use default values and updates experiment handling in factory methods * Refactors dependencies section in pixi.toml * More refactoring of old datastore towards new data * Refactors symmetry constraint methods in AtomSites and Cell classes for clarity and consistency * Refactors category update handling and updates CIF serialization methods * Refactors update methods and intruduces update_priority attribute * Refactors category update calls in CalculatorBase and Fitter classes for consistency * Refactors calculation methods and updates category handling in analysis and experiment modules * Refactors PdCwlData and PdDataBase classes for improved structure and clarity * Refactors category update handling in Project class and consolidates update logic for plotting methods * Refactors PdDataBase and PdCwlData classes to introduce d-spacing calculations and update methods for improved data handling * Refactors CIF serialization methods by removing unused datastore functions and simplifying experiment data handling * Adds Refln and ReflnData classes for single crystal diffraction data handling; removes obsolete ScDatastore class * Refactors data handling by replacing 'datastore' references with 'data' * Clean up code across multiple modules * Refactors Analysis class by removing unused calculator variable and simplifies fitting method; deletes obsolete datastore test files * Refactors add methods in various classes * Refactors LineSegment and ExcludedRegion classes to add 'id' parameter * Refactors one of the tutorials to fit new API * Refactors PolynomialTerm, LineSegment, and ExcludedRegion classes to add 'id' parameter * Add missing SPDX license headers * Refactor PolynomialTerm, LineSegment, and ExcludedRegion classes to set default values for parameters * Mark parameters as free if uncertainty is present in CIF deserialization * Update Biso values in lbco.cif to include uncertainty and remove unnecessary data * Add minimal example for Rietveld refinement using LBCO and HRPT data * Remove unnecessary blank line before showing project summary report * Refactor minimal example to streamline project and experiment definitions, removing unnecessary logging and aliases * Remove trailing whitespace from multiple files * Refactor joint_fit_experiments method call to use 'add' instead of 'add_from_args' * Refactor add method in Experiments and SampleModels to allow explicit sample/experiment input * Refactor Chebyshev and LineSegment models to include identifier descriptors and improve documentation * Refactor PdDataPoint classes to update point_id type and adjust mixin order * Refactor SampleModelFactory to introduce _create_minimal method for creating default models * Update tutorials * Add new data classes for powder diffraction and total scattering experiments * Temporary disable unit tests hook from pre-push checks * Add d_spacing property to PdDataBase for calculated d values * Refactor tutorials * Refactor format_value function to improve value formatting and precision handling * Refactor category_collection_to_cif function for improved readability and structure * Add analysis output for free parameters in project * Fix category_entry_name handling to ensure it defaults to an empty string * Update default values in ExperimentType to use enum values directly * Update functional tests following API changes * Update unit tests following new API * Refactor sample model and experiment addition methods * Enhance Chebyshev and LineSegment classes with improved background handling and id property * Refactor Chebyshev and LineSegment background tests to use mock parent data structure * Enhance Analysis and Fitter classes to update categories during fitting process * Refactor CategoryCollection to optimize child instance creation logic * Refactor test_fit_neutron_pd_cwl_hs to improve background data handling and enhance project setup * Refactor sample model addition in tutorials to use updated method * Fix fill_value in LineSegmentBackground interpolation to use correct y values * Update category handling in Fitter * Refactor time-of-flight to follow new API * More fixes of the functional tests * Refactor test_joint_fit * More refactoring in fitting tests * More refactoring of the tutorials to follow new API * Fix formatting * Update unit tests to follow new API * Refactor CIF string handling in Experiment and SampleModel factories * Refactor package structure by removing obsolete files and adding new data modules * Add '_pd_proc.intensity_norm' and '_pd_proc.intensity_norm_su' to CIF handler * Add integration tests for reading CIF files from Scipp * Rename functional tests to integration tests * Add SPDX license headers to test_scipp-cif.py * Extend tutorial section in docs * Refactor test for reading CIF files from Scipp * Bump deps * Pin pdffit2 to be <1.5.2 due to the issues or changed API in the latest versions * Add temporary workaround for pdffit2 installation in CI workflow * Update dependencies in pixi.toml and pyproject.toml for pdffit2 compatibility * Remove temporary workaround for pdffit2 installation in CI workflow * Add id-based data download API; update tutorials * Adopts download_data in tests; prunes local data * Excludes TOF regions in neutron PD fit test * Removes repo download util; updates index hash * Updates tutorial to new data download API * Adapts tests to index-based download_data * Uses returned data paths instead of hardcoded ones * Debugging (3089,) (3098,) (3089,) * Runs script tests serially (temporarily?) * More debugging * Runs tutorial scripts in isolated subprocesses * Streamlines tutorial tests in CI workflow * Justifies subprocess use in tests; adds noqa tags
1 parent 17ded39 commit b799bed

141 files changed

Lines changed: 14596 additions & 50948 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

β€Ž.github/workflows/coverage.yamlβ€Ž

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -86,8 +86,8 @@ jobs:
8686
verbose: true
8787
token: ${{ secrets.CODECOV_TOKEN }}
8888

89-
# Job 2: Run functional tests with coverage and upload to Codecov
90-
func-tests-coverage:
89+
# Job 2: Run integration tests with coverage and upload to Codecov
90+
integration-tests-coverage:
9191
runs-on: ubuntu-latest
9292

9393
steps:
@@ -108,23 +108,25 @@ jobs:
108108
shell: bash
109109
run: pixi run dev
110110

111-
- name: Run functional tests with coverage
112-
run: pixi run func-tests-coverage --cov-report=xml:coverage-func.xml
111+
- name: Run integration tests with coverage
112+
run:
113+
pixi run integration-tests-coverage
114+
--cov-report=xml:coverage-integration.xml
113115

114-
- name: Upload functional tests coverage to Codecov
116+
- name: Upload integration tests coverage to Codecov
115117
if: ${{ !cancelled() }}
116118
uses: codecov/codecov-action@v5
117119
with:
118-
name: func-tests-job
119-
flags: functional
120-
files: ./coverage-func.xml
120+
name: integration-tests-job
121+
flags: integration
122+
files: ./coverage-integration.xml
121123
fail_ci_if_error: true
122124
verbose: true
123125
token: ${{ secrets.CODECOV_TOKEN }}
124126

125127
# Job 4: Trigger dashboard build
126128
dashboard-build-trigger:
127-
needs: [docstring-coverage, unit-tests-coverage, func-tests-coverage] # depend on the previous jobs
129+
needs: [docstring-coverage, unit-tests-coverage, integration-tests-coverage] # depend on the previous jobs
128130

129131
runs-on: ubuntu-latest
130132

β€Ž.github/workflows/pypi-test.yamlβ€Ž

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,8 @@ jobs:
6161
- name: Run unit tests to verify the installation
6262
run: pixi run unit-tests
6363

64-
- name: Run functional tests to verify the installation
65-
run: pixi run func-tests
64+
- name: Run integration tests to verify the installation
65+
run: pixi run integration-tests
6666

6767
# Github token to avoid hitting the unauthenticated API rate limit
6868
- name: List and fetch the EasyDiffraction tutorials

β€Ž.github/workflows/test.yamlβ€Ž

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -56,9 +56,9 @@ jobs:
5656
pytest-marks: ${{ steps.set-mark.outputs.pytest_marks }}
5757

5858
steps:
59-
# Determine if functional tests should be run fully or only the fast ones
59+
# Determine if integration tests should be run fully or only the fast ones
6060
# (to save time on branches other than master and develop)
61-
- name: Set mark for functional tests
61+
- name: Set mark for integration tests
6262
id: set-mark
6363
run: |
6464
if [[ "${{ env.CI_BRANCH }}" == "master" || "${{ env.CI_BRANCH }}" == "develop" ]]; then
@@ -115,12 +115,13 @@ jobs:
115115
pixi run --environment $env unit-tests
116116
done
117117
118-
- name: Run functional tests ${{ needs.env-prepare.outputs.pytest-marks }}
118+
- name:
119+
Run integration tests ${{ needs.env-prepare.outputs.pytest-marks }}
119120
shell: bash
120121
run: |
121122
for env in ${{ env.PIXI_ENVS }}; do
122123
echo "πŸ”ΉπŸ”ΈπŸ”ΉπŸ”ΈπŸ”Ή Current env: $env πŸ”ΉπŸ”ΈπŸ”ΉπŸ”ΈπŸ”Ή"
123-
pixi run --environment $env func-tests "${{ needs.env-prepare.outputs.pytest-marks }}"
124+
pixi run --environment $env integration-tests "${{ needs.env-prepare.outputs.pytest-marks }}"
124125
done
125126
126127
# Delete all local tags when not on a tagged commit to force versioningit
@@ -226,12 +227,13 @@ jobs:
226227
pixi run --environment $env unit-tests
227228
done
228229
229-
- name: Run functional tests ${{ needs.env-prepare.outputs.pytest-marks }}
230+
- name:
231+
Run integration tests ${{ needs.env-prepare.outputs.pytest-marks }}
230232
shell: bash
231233
run: |
232234
for env in ${{ env.PIXI_ENVS }}; do
233235
echo "πŸ”ΉπŸ”ΈπŸ”ΉπŸ”ΈπŸ”Ή Current env: $env πŸ”ΉπŸ”ΈπŸ”ΉπŸ”ΈπŸ”Ή"
234-
pixi run --environment $env func-tests "${{ needs.env-prepare.outputs.pytest-marks }}"
236+
pixi run --environment $env integration-tests "${{ needs.env-prepare.outputs.pytest-marks }}"
235237
done
236238
237239
# Job 4: Trigger dashboard build

β€Ž.pre-commit-config.yamlβ€Ž

Lines changed: 30 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -11,33 +11,33 @@ repos:
1111
pass_filenames: false
1212
stages: [pre-commit]
1313

14-
- id: pixi-py-lint-check-staged
15-
name: pixi run py-lint-check-staged
16-
entry: pixi run py-lint-check-pre
17-
language: system
18-
pass_filenames: false
19-
stages: [pre-commit]
14+
#- id: pixi-py-lint-check-staged
15+
# name: pixi run py-lint-check-staged
16+
# entry: pixi run py-lint-check-pre
17+
# language: system
18+
# pass_filenames: false
19+
# stages: [pre-commit]
2020

21-
- id: pixi-py-format-check-staged
22-
name: pixi run py-format-check-staged
23-
entry: pixi run py-format-check-pre
24-
language: system
25-
pass_filenames: false
26-
stages: [pre-commit]
21+
#- id: pixi-py-format-check-staged
22+
# name: pixi run py-format-check-staged
23+
# entry: pixi run py-format-check-pre
24+
# language: system
25+
# pass_filenames: false
26+
# stages: [pre-commit]
2727

28-
- id: pixi-nonpy-format-check-modified
29-
name: pixi run nonpy-format-check-modified
30-
entry: pixi run nonpy-format-check-modified
31-
language: system
32-
pass_filenames: false
33-
stages: [pre-commit]
28+
#- id: pixi-nonpy-format-check-modified
29+
# name: pixi run nonpy-format-check-modified
30+
# entry: pixi run nonpy-format-check-modified
31+
# language: system
32+
# pass_filenames: false
33+
# stages: [pre-commit]
3434

35-
- id: pixi-docs-format-check
36-
name: pixi run docs-format-check
37-
entry: pixi run docs-format-check
38-
language: system
39-
pass_filenames: false
40-
stages: [pre-commit]
35+
#- id: pixi-docs-format-check
36+
# name: pixi run docs-format-check
37+
# entry: pixi run docs-format-check
38+
# language: system
39+
# pass_filenames: false
40+
# stages: [pre-commit]
4141

4242
# ----------------
4343
# Pre-push checks
@@ -49,9 +49,9 @@ repos:
4949
pass_filenames: false
5050
stages: [pre-push]
5151

52-
- id: pixi-unit-tests
53-
name: pixi run unit-tests
54-
entry: pixi run unit-tests
55-
language: system
56-
pass_filenames: false
57-
stages: [pre-push]
52+
#- id: pixi-unit-tests
53+
# name: pixi run unit-tests
54+
# entry: pixi run unit-tests
55+
# language: system
56+
# pass_filenames: false
57+
# stages: [pre-push]

β€ŽDEVELOPMENT.mdβ€Ž

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,9 +75,9 @@ This is an example of a workflow that describes the development process.
7575
```bash
7676
pixi run unit-tests
7777
```
78-
- Run functional tests
78+
- Run integration tests
7979
```bash
80-
pixi run func-tests
80+
pixi run integration-tests
8181
```
8282
- Test tutorials as python scripts
8383
```bash

β€Ždocs/architecture/package-structure-full.mdβ€Ž

Lines changed: 25 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,6 @@
4747
β”‚ β”œβ”€β”€ πŸ“„ __init__.py
4848
β”‚ β”œβ”€β”€ πŸ“„ analysis.py
4949
β”‚ β”‚ └── 🏷️ class Analysis
50-
β”‚ β”œβ”€β”€ πŸ“„ calculation.py
51-
β”‚ β”‚ └── 🏷️ class Calculator
5250
β”‚ └── πŸ“„ fitting.py
5351
β”‚ └── 🏷️ class Fitter
5452
β”œβ”€β”€ πŸ“ core
@@ -141,6 +139,24 @@
141139
β”‚ β”‚ β”‚ └── πŸ“„ line_segment.py
142140
β”‚ β”‚ β”‚ β”œβ”€β”€ 🏷️ class LineSegment
143141
β”‚ β”‚ β”‚ └── 🏷️ class LineSegmentBackground
142+
β”‚ β”‚ β”œβ”€β”€ πŸ“ data
143+
β”‚ β”‚ β”‚ β”œβ”€β”€ πŸ“„ bragg_pd.py
144+
β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ 🏷️ class PdDataPointBaseMixin
145+
β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ 🏷️ class PdCwlDataPointMixin
146+
β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ 🏷️ class PdTofDataPointMixin
147+
β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ 🏷️ class PdCwlDataPoint
148+
β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ 🏷️ class PdTofDataPoint
149+
β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ 🏷️ class PdDataBase
150+
β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ 🏷️ class PdCwlData
151+
β”‚ β”‚ β”‚ β”‚ └── 🏷️ class PdTofData
152+
β”‚ β”‚ β”‚ β”œβ”€β”€ πŸ“„ bragg_sc.py
153+
β”‚ β”‚ β”‚ β”‚ └── 🏷️ class Refln
154+
β”‚ β”‚ β”‚ β”œβ”€β”€ πŸ“„ factory.py
155+
β”‚ β”‚ β”‚ β”‚ └── 🏷️ class DataFactory
156+
β”‚ β”‚ β”‚ └── πŸ“„ total.py
157+
β”‚ β”‚ β”‚ β”œβ”€β”€ 🏷️ class TotalDataPoint
158+
β”‚ β”‚ β”‚ β”œβ”€β”€ 🏷️ class TotalDataBase
159+
β”‚ β”‚ β”‚ └── 🏷️ class TotalData
144160
β”‚ β”‚ β”œβ”€β”€ πŸ“ instrument
145161
β”‚ β”‚ β”‚ β”œβ”€β”€ πŸ“„ __init__.py
146162
β”‚ β”‚ β”‚ β”œβ”€β”€ πŸ“„ base.py
@@ -185,16 +201,6 @@
185201
β”‚ β”‚ └── πŸ“„ linked_phases.py
186202
β”‚ β”‚ β”œβ”€β”€ 🏷️ class LinkedPhase
187203
β”‚ β”‚ └── 🏷️ class LinkedPhases
188-
β”‚ β”œβ”€β”€ πŸ“ datastore
189-
β”‚ β”‚ β”œβ”€β”€ πŸ“„ __init__.py
190-
β”‚ β”‚ β”œβ”€β”€ πŸ“„ base.py
191-
β”‚ β”‚ β”‚ └── 🏷️ class DatastoreBase
192-
β”‚ β”‚ β”œβ”€β”€ πŸ“„ factory.py
193-
β”‚ β”‚ β”‚ └── 🏷️ class DatastoreFactory
194-
β”‚ β”‚ β”œβ”€β”€ πŸ“„ pd.py
195-
β”‚ β”‚ β”‚ └── 🏷️ class PdDatastore
196-
β”‚ β”‚ └── πŸ“„ sc.py
197-
β”‚ β”‚ └── 🏷️ class ScDatastore
198204
β”‚ β”œβ”€β”€ πŸ“ experiment
199205
β”‚ β”‚ β”œβ”€β”€ πŸ“„ __init__.py
200206
β”‚ β”‚ β”œβ”€β”€ πŸ“„ base.py
@@ -220,10 +226,13 @@
220226
β”‚ └── πŸ“„ experiments.py
221227
β”‚ └── 🏷️ class Experiments
222228
β”œβ”€β”€ πŸ“ io
223-
β”‚ └── πŸ“ cif
224-
β”‚ β”œβ”€β”€ πŸ“„ handler.py
225-
β”‚ β”‚ └── 🏷️ class CifHandler
226-
β”‚ └── πŸ“„ serialize.py
229+
β”‚ β”œβ”€β”€ πŸ“ cif
230+
β”‚ β”‚ β”œβ”€β”€ πŸ“„ __init__.py
231+
β”‚ β”‚ β”œβ”€β”€ πŸ“„ handler.py
232+
β”‚ β”‚ β”‚ └── 🏷️ class CifHandler
233+
β”‚ β”‚ β”œβ”€β”€ πŸ“„ parse.py
234+
β”‚ β”‚ └── πŸ“„ serialize.py
235+
β”‚ └── πŸ“„ __init__.py
227236
β”œβ”€β”€ πŸ“ project
228237
β”‚ β”œβ”€β”€ πŸ“„ __init__.py
229238
β”‚ β”œβ”€β”€ πŸ“„ project.py

β€Ždocs/architecture/package-structure-short.mdβ€Ž

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@
2828
β”‚ β”‚ └── πŸ“„ lmfit.py
2929
β”‚ β”œβ”€β”€ πŸ“„ __init__.py
3030
β”‚ β”œβ”€β”€ πŸ“„ analysis.py
31-
β”‚ β”œβ”€β”€ πŸ“„ calculation.py
3231
β”‚ └── πŸ“„ fitting.py
3332
β”œβ”€β”€ πŸ“ core
3433
β”‚ β”œβ”€β”€ πŸ“„ __init__.py
@@ -71,6 +70,11 @@
7170
β”‚ β”‚ β”‚ β”œβ”€β”€ πŸ“„ enums.py
7271
β”‚ β”‚ β”‚ β”œβ”€β”€ πŸ“„ factory.py
7372
β”‚ β”‚ β”‚ └── πŸ“„ line_segment.py
73+
β”‚ β”‚ β”œβ”€β”€ πŸ“ data
74+
β”‚ β”‚ β”‚ β”œβ”€β”€ πŸ“„ bragg_pd.py
75+
β”‚ β”‚ β”‚ β”œβ”€β”€ πŸ“„ bragg_sc.py
76+
β”‚ β”‚ β”‚ β”œβ”€β”€ πŸ“„ factory.py
77+
β”‚ β”‚ β”‚ └── πŸ“„ total.py
7478
β”‚ β”‚ β”œβ”€β”€ πŸ“ instrument
7579
β”‚ β”‚ β”‚ β”œβ”€β”€ πŸ“„ __init__.py
7680
β”‚ β”‚ β”‚ β”œβ”€β”€ πŸ“„ base.py
@@ -91,12 +95,6 @@
9195
β”‚ β”‚ β”œβ”€β”€ πŸ“„ excluded_regions.py
9296
β”‚ β”‚ β”œβ”€β”€ πŸ“„ experiment_type.py
9397
β”‚ β”‚ └── πŸ“„ linked_phases.py
94-
β”‚ β”œβ”€β”€ πŸ“ datastore
95-
β”‚ β”‚ β”œβ”€β”€ πŸ“„ __init__.py
96-
β”‚ β”‚ β”œβ”€β”€ πŸ“„ base.py
97-
β”‚ β”‚ β”œβ”€β”€ πŸ“„ factory.py
98-
β”‚ β”‚ β”œβ”€β”€ πŸ“„ pd.py
99-
β”‚ β”‚ └── πŸ“„ sc.py
10098
β”‚ β”œβ”€β”€ πŸ“ experiment
10199
β”‚ β”‚ β”œβ”€β”€ πŸ“„ __init__.py
102100
β”‚ β”‚ β”œβ”€β”€ πŸ“„ base.py
@@ -109,9 +107,12 @@
109107
β”‚ β”œβ”€β”€ πŸ“„ __init__.py
110108
β”‚ └── πŸ“„ experiments.py
111109
β”œβ”€β”€ πŸ“ io
112-
β”‚ └── πŸ“ cif
113-
β”‚ β”œβ”€β”€ πŸ“„ handler.py
114-
β”‚ └── πŸ“„ serialize.py
110+
β”‚ β”œβ”€β”€ πŸ“ cif
111+
β”‚ β”‚ β”œβ”€β”€ πŸ“„ __init__.py
112+
β”‚ β”‚ β”œβ”€β”€ πŸ“„ handler.py
113+
β”‚ β”‚ β”œβ”€β”€ πŸ“„ parse.py
114+
β”‚ β”‚ └── πŸ“„ serialize.py
115+
β”‚ └── πŸ“„ __init__.py
115116
β”œβ”€β”€ πŸ“ project
116117
β”‚ β”œβ”€β”€ πŸ“„ __init__.py
117118
β”‚ β”œβ”€β”€ πŸ“„ project.py

β€Ždocs/mkdocs.ymlβ€Ž

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,8 @@ nav:
6969
- Tutorials:
7070
- Tutorials: tutorials/index.md
7171
- Getting Started:
72-
- LBCO quick: tutorials/quick_single-fit_pd-neut-cwl_LBCO-HRPT.ipynb
72+
- LBCO quick CIF: tutorials/quick_from-cif_pd-neut-cwl_LBCO-HRPT.ipynb
73+
- LBCO quick code: tutorials/quick_from-code_pd-neut-cwl_LBCO-HRPT.ipynb
7374
- LBCO basic: tutorials/basic_single-fit_pd-neut-cwl_LBCO-HRPT.ipynb
7475
- PbSO4 advanced: tutorials/advanced_joint-fit_pd-neut-xray-cwl_PbSO4.ipynb
7576
- Standard Diffraction:

β€Ždocs/tutorials/index.mdβ€Ž

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,18 @@ The tutorials are organized into the following categories.
1717

1818
## Getting Started
1919

20-
- [LBCO `quick`](quick_single-fit_pd-neut-cwl_LBCO-HRPT.ipynb) – A minimal
20+
- [LBCO `quick` CIF](quick_from-cif_pd-neut-cwl_LBCO-HRPT.ipynb) – A minimal
2121
example intended as a quick reference for users already familiar with the
22-
EasyDiffraction API or who want to see an example refinement in code. This
23-
tutorial covers a Rietveld refinement of the La0.5Ba0.5CoO3 crystal structure
24-
using constant wavelength neutron powder diffraction data from HRPT at PSI.
22+
EasyDiffraction API or who want to see how Rietveld refinement of the
23+
La0.5Ba0.5CoO3 crystal structure can be performed when both the sample model
24+
and experiment are loaded from CIF files. Data collected from constant
25+
wavelength neutron powder diffraction at HRPT at PSI.
26+
- [LBCO `quick` `code`](quick_from-code_pd-neut-cwl_LBCO-HRPT.ipynb) – A minimal
27+
example intended as a quick reference for users already familiar with the
28+
EasyDiffraction API or who want to see an example refinement when both the
29+
sample model and experiment are defined directly in code. This tutorial covers
30+
a Rietveld refinement of the La0.5Ba0.5CoO3 crystal structure using constant
31+
wavelength neutron powder diffraction data from HRPT at PSI.
2532
- [LBCO `basic`](basic_single-fit_pd-neut-cwl_LBCO-HRPT.ipynb) – Demonstrates
2633
the use of the EasyDiffraction API in a simplified, user-friendly manner that
2734
closely follows the GUI workflow for a Rietveld refinement of the
@@ -39,6 +46,9 @@ The tutorials are organized into the following categories.
3946

4047
## Standard Diffraction
4148

49+
- [Co2SiO4 `pd-neut-cwl`](cryst-struct_pd-neut-cwl_HS-HRPT.ipynb) – Demonstrates
50+
a Rietveld refinement of the Co2SiO4 crystal structure using constant
51+
wavelength neutron powder diffraction data from D20 at ILL.
4252
- [HS `pd-neut-cwl`](cryst-struct_pd-neut-cwl_HS-HRPT.ipynb) – Demonstrates a
4353
Rietveld refinement of the HS crystal structure using constant wavelength
4454
neutron powder diffraction data from HRPT at PSI.

β€Žout.profβ€Ž

2.13 MB
Binary file not shown.

0 commit comments

Comments
Β (0)