diff --git a/DEVELOPMENT.md b/DEVELOPMENT.md index 3a1e102..dd2bcd6 100644 --- a/DEVELOPMENT.md +++ b/DEVELOPMENT.md @@ -27,9 +27,8 @@ This is an example of a workflow that describes the development process. ```console python -m pip install --upgrade pip ``` -- Install easydiffraction from root with `dev` extras for development, - `charts` extras for Jupyter notebooks and `docs` extras for building - documentation +- Install easydiffraction from root with `dev` extras for development, `charts` + extras for Jupyter notebooks and `docs` extras for building documentation ```console pip install '.[dev,charts,docs]' ``` @@ -37,9 +36,12 @@ This is an example of a workflow that describes the development process. ```console ... ``` +- Check the validity of pyproject.toml + ```console + validate-pyproject pyproject.toml + ``` - Run Ruff - Python linter and code formatter (configuration is in - pyproject.toml)
- Linting (overwriting files) + pyproject.toml)
Linting (overwriting files) ```console ruff check . --fix ``` @@ -47,9 +49,8 @@ This is an example of a workflow that describes the development process. ```console ruff format . ``` -- Install and run Prettier - code formatter for Markdown, YAML, TOML, - etc. files (configuration in prettierrc.toml)
- Formatting (overwriting files) +- Install and run Prettier - code formatter for Markdown, YAML, TOML, etc. files + (configuration in prettierrc.toml)
Formatting (overwriting files) ```console npm install prettier prettier-plugin-toml --save-dev --save-exact npx prettier . --write --config=prettierrc.toml @@ -58,9 +59,8 @@ This is an example of a workflow that describes the development process. ```console pytest tests/ --color=yes -n auto ``` -- Clear all Jupyter notebooks output (Only those that were changed!). - Replace `examples/*.ipynb` with the path to the notebook(s) you want - to clear +- Clear all Jupyter notebooks output (Only those that were changed!). Replace + `examples/*.ipynb` with the path to the notebook(s) you want to clear ```console jupyter nbconvert --clear-output --inplace examples/*.ipynb ``` @@ -72,12 +72,12 @@ This is an example of a workflow that describes the development process. ```console pytest --nbmake examples/ --ignore-glob='examples/*emcee*' --nbmake-timeout=300 --color=yes -n=auto ``` -- Add extra files to build documentation (from `../assets-docs/` and +- Add extra files to build documentation (from `../assets-docs/` and `../assets-branding/` directories) ```console cp -R ../assets-docs/docs/assets/ docs/assets/ cp -R ../assets-docs/includes/ includes/ - cp -R ../assets-docs/overrides/ overrides/ + cp -R ../assets-docs/overrides/ overrides/ mkdir -p docs/assets/images/ cp ../assets-branding/EasyDiffraction/logos/edl-logo_dark.svg docs/assets/images/logo_dark.svg cp ../assets-branding/EasyDiffraction/logos/edl-logo_light.svg docs/assets/images/logo_light.svg @@ -89,14 +89,14 @@ This is an example of a workflow that describes the development process. cp ../assets-docs/mkdocs.yml mkdocs.yml echo "" >> mkdocs.yml cat docs/mkdocs.yml >> mkdocs.yml - ``` + ``` - Build documentation with MkDocs - static site generator ```console export JUPYTER_PLATFORM_DIRS=1 mkdocs serve ``` -- Test the documentation locally (built in the `site/` directory). E.g., - on macOS, open the site in the default browser via the terminal +- Test the documentation locally (built in the `site/` directory). E.g., on + macOS, open the site in the default browser via the terminal ```console open http://127.0.0.1:8000 ``` diff --git a/docs/analysis.md b/docs/analysis.md index a1e7c2e..1bca73a 100644 --- a/docs/analysis.md +++ b/docs/analysis.md @@ -1,14 +1,26 @@ # Analysis -This section contains information about the analysis of diffraction data in EasyDiffraction. +This section contains information about the analysis of diffraction data in +EasyDiffraction. ### Model-dependent analysis -There are two general approaches to the analysis of data: **model-dependent** and **model-independent**. In the following examples, we are going to focus on the former. However, the latter is worth briefly highlighting. +There are two general approaches to the analysis of data: **model-dependent** +and **model-independent**. In the following examples, we are going to focus on +the former. However, the latter is worth briefly highlighting. -A model-independent approach to analysis is where no assumptions are made about the system that is being studied and conclusions are drawn only from the data that has been observed. However, in many applications, it is desirable to include what we think we know about the system, and so model-dependent analysis is used. +A model-independent approach to analysis is where no assumptions are made about +the system that is being studied and conclusions are drawn only from the data +that has been observed. However, in many applications, it is desirable to +include what we think we know about the system, and so model-dependent analysis +is used. -Model-dependent analysis involves the development of a mathematical model that describes the model dataset that would be found for our system. This mathematical model usually has parameters that are linked to the physics and chemistry of our system. These parameters are varied to optimise the model, using an optimisation algorithm, with respect to the experimental data, i.e., to get the best agreement between the model data and the experimental data. +Model-dependent analysis involves the development of a mathematical model that +describes the model dataset that would be found for our system. This +mathematical model usually has parameters that are linked to the physics and +chemistry of our system. These parameters are varied to optimise the model, +using an optimisation algorithm, with respect to the experimental data, i.e., to +get the best agreement between the model data and the experimental data. Below is a diagram illustrating this process: @@ -26,20 +38,40 @@ flowchart LR d-- Threshold
reached -->e ``` -Model-dependent analysis is popular in the analysis of neutron scattering data, and we will use it in the following examples. +Model-dependent analysis is popular in the analysis of neutron scattering data, +and we will use it in the following examples. ## Calculation engines -EasyDiffraction is designed to be a flexible and extensible tool for calculating diffraction patterns. It can use different calculation engines to perform the calculations. +EasyDiffraction is designed to be a flexible and extensible tool for calculating +diffraction patterns. It can use different calculation engines to perform the +calculations. -We currently rely on [CrysPy](https://www.cryspy.fr) as a calculation engine. CrysPy is a Python library originally developed for analysing polarised neutron diffraction data. It is now evolving into a more general purpose library and covers powders and single crystals, nuclear and (commensurate) magnetic structures, unpolarised neutron and X-ray diffraction. +We currently rely on [CrysPy](https://www.cryspy.fr) as a calculation engine. +CrysPy is a Python library originally developed for analysing polarised neutron +diffraction data. It is now evolving into a more general purpose library and +covers powders and single crystals, nuclear and (commensurate) magnetic +structures, unpolarised neutron and X-ray diffraction. -Another calculation engine is [CrysFML](https://code.ill.fr/scientific-software/CrysFML2008). This library is a collection of Fortran modules for crystallographic computations. It is used in the software package [FullProf](https://www.ill.eu/sites/fullprof/), and we are currently working on its integration into EasyDiffraction. +Another calculation engine is +[CrysFML](https://code.ill.fr/scientific-software/CrysFML2008). This library is +a collection of Fortran modules for crystallographic computations. It is used in +the software package [FullProf](https://www.ill.eu/sites/fullprof/), and we are +currently working on its integration into EasyDiffraction. ## Minimisation engines -EasyDiffraction uses different third-party libraries to perform the model-dependent analysis. +EasyDiffraction uses different third-party libraries to perform the +model-dependent analysis. -Most of the examples in this section will use the [lmfit](https://lmfit.github.io/lmfit-py/) package, which provides a high-level interface to non-linear optimisation and curve fitting problems for Python. It is one of the tools that can be used to fit models to the experimental data. +Most of the examples in this section will use the +[lmfit](https://lmfit.github.io/lmfit-py/) package, which provides a high-level +interface to non-linear optimisation and curve fitting problems for Python. It +is one of the tools that can be used to fit models to the experimental data. -Another package that can be used for the same purpose is [bumps](https://bumps.readthedocs.io/en/latest/). In addition to traditional optimizers which search for the best minimum they can find in the search space, bumps provides Bayesian uncertainty analysis which explores all viable minima and finds confidence intervals on the parameters based on uncertainty in the measured values. +Another package that can be used for the same purpose is +[bumps](https://bumps.readthedocs.io/en/latest/). In addition to traditional +optimizers which search for the best minimum they can find in the search space, +bumps provides Bayesian uncertainty analysis which explores all viable minima +and finds confidence intervals on the parameters based on uncertainty in the +measured values. diff --git a/docs/dictionaries.md b/docs/dictionaries.md index 4399dfb..528c1c0 100644 --- a/docs/dictionaries.md +++ b/docs/dictionaries.md @@ -1,110 +1,158 @@ -[0]: # -[1]: https://www.iucr.org/resources/cif/dictionaries/browse/cif_core -[2]: https://www.iucr.org/resources/cif/dictionaries/browse/cif_pd -[3]: glossary.md - # Dictionaries -All parameter names used in EasyDiffraction are divided into several dictionaries given below. Each keyword in the dictionaries has one badge showing the corresponding type of dictionary, and can have one or more badges showing the type of experiment to which the keyword belongs. +All parameter names used in EasyDiffraction are divided into several +dictionaries given below. Each keyword in the dictionaries has one badge showing +the corresponding type of dictionary, and can have one or more badges showing +the type of experiment to which the keyword belongs. ## Crystallographic information file -EasyDiffraction input and output files use the simple, human-readable STAR/CIF data format, following the specifications of [International Union of Crystallography](https://www.iucr.org) (IUCr), wherever possible. +EasyDiffraction input and output files use the simple, human-readable STAR/CIF +data format, following the specifications of +[International Union of Crystallography](https://www.iucr.org) (IUCr), wherever +possible. ## Model dictionary This dictionary provides data names for describing model parameters. -[pd-neut-cwl][3]{:.label-experiment} [pd-neut-tof][3]{:.label-experiment} [sc-neut-cwl][3]{:.label-experiment} [pd-xray][3]{:.label-experiment} - -* [\_space_group](dictionaries/_space_group.md) [coreCIF][1]{:.label-cif} - * [\_space_group.name_H-M_alt](dictionaries/_space_group.md) [coreCIF][1]{:.label-cif} - * [\_space_group.IT_coordinate_system_code](dictionaries/_space_group.md) [coreCIF][1]{:.label-cif} -* [\_cell](dictionaries/_cell.md) [coreCIF][1]{:.label-cif} - * [\_cell.angle_alpha](dictionaries/_cell.md) [coreCIF][1]{:.label-cif} - * [\_cell.angle_beta](dictionaries/_cell.md) [coreCIF][1]{:.label-cif} - * [\_cell.angle_gamma](dictionaries/_cell.md) [coreCIF][1]{:.label-cif} - * [\_cell.length_a](dictionaries/_cell.md) [coreCIF][1]{:.label-cif} - * [\_cell.length_b](dictionaries/_cell.md) [coreCIF][1]{:.label-cif} - * [\_cell.length_c](dictionaries/_cell.md) [coreCIF][1]{:.label-cif} -* [\_atom_site](dictionaries/_atom_site.md) [coreCIF][1]{:.label-cif} - * [\_atom_site.label](dictionaries/_atom_site.md) [coreCIF][1]{:.label-cif} - * [\_atom_site.type_symbol](dictionaries/_atom_site.md) [coreCIF][1]{:.label-cif} - * [\_atom_site.fract_x](dictionaries/_atom_site.md) [coreCIF][1]{:.label-cif} - * [\_atom_site.fract_y](dictionaries/_atom_site.md) [coreCIF][1]{:.label-cif} - * [\_atom_site.fract_z](dictionaries/_atom_site.md) [coreCIF][1]{:.label-cif} - * [\_atom_site.occupancy](dictionaries/_atom_site.md) [coreCIF][1]{:.label-cif} - * [\_atom_site.ADP_type](dictionaries/_atom_site.md) [coreCIF][1]{:.label-cif} - * [\_atom_site.B_iso_or_equiv](dictionaries/_atom_site.md) [coreCIF][1]{:.label-cif} - * [\_atom_site.site_symmetry_multiplicity](dictionaries/_atom_site.md) [coreCIF][1]{:.label-cif} - * [\_atom_site.Wyckoff_symbol](dictionaries/_atom_site.md) [coreCIF][1]{:.label-cif} +[pd-neut-cwl][3]{:.label-experiment} [pd-neut-tof][3]{:.label-experiment} +[sc-neut-cwl][3]{:.label-experiment} [pd-xray][3]{:.label-experiment} + +- [\_space_group](dictionaries/_space_group.md) [coreCIF][1]{:.label-cif} + - [\_space_group.name_H-M_alt](dictionaries/_space_group.md) + [coreCIF][1]{:.label-cif} + - [\_space_group.IT_coordinate_system_code](dictionaries/_space_group.md) + [coreCIF][1]{:.label-cif} +- [\_cell](dictionaries/_cell.md) [coreCIF][1]{:.label-cif} + - [\_cell.angle_alpha](dictionaries/_cell.md) [coreCIF][1]{:.label-cif} + - [\_cell.angle_beta](dictionaries/_cell.md) [coreCIF][1]{:.label-cif} + - [\_cell.angle_gamma](dictionaries/_cell.md) [coreCIF][1]{:.label-cif} + - [\_cell.length_a](dictionaries/_cell.md) [coreCIF][1]{:.label-cif} + - [\_cell.length_b](dictionaries/_cell.md) [coreCIF][1]{:.label-cif} + - [\_cell.length_c](dictionaries/_cell.md) [coreCIF][1]{:.label-cif} +- [\_atom_site](dictionaries/_atom_site.md) [coreCIF][1]{:.label-cif} + - [\_atom_site.label](dictionaries/_atom_site.md) [coreCIF][1]{:.label-cif} + - [\_atom_site.type_symbol](dictionaries/_atom_site.md) + [coreCIF][1]{:.label-cif} + - [\_atom_site.fract_x](dictionaries/_atom_site.md) [coreCIF][1]{:.label-cif} + - [\_atom_site.fract_y](dictionaries/_atom_site.md) [coreCIF][1]{:.label-cif} + - [\_atom_site.fract_z](dictionaries/_atom_site.md) [coreCIF][1]{:.label-cif} + - [\_atom_site.occupancy](dictionaries/_atom_site.md) + [coreCIF][1]{:.label-cif} + - [\_atom_site.ADP_type](dictionaries/_atom_site.md) [coreCIF][1]{:.label-cif} + - [\_atom_site.B_iso_or_equiv](dictionaries/_atom_site.md) + [coreCIF][1]{:.label-cif} + - [\_atom_site.site_symmetry_multiplicity](dictionaries/_atom_site.md) + [coreCIF][1]{:.label-cif} + - [\_atom_site.Wyckoff_symbol](dictionaries/_atom_site.md) + [coreCIF][1]{:.label-cif} ## Experiment and instrument dictionary -This dictionary provides data names for describing experimental and instrumental parameters. - -[pd-neut-cwl][3]{:.label-experiment} [pd-neut-tof][3]{:.label-experiment} [sc-neut-cwl][3]{:.label-experiment} [pd-xray][3]{:.label-experiment} - -* [\_diffrn_radiation](dictionaries/_diffrn_radiation.md) [coreCIF][1]{:.label-cif} - * [\_diffrn_radiation.probe](dictionaries/_diffrn_radiation.md) [coreCIF][1]{:.label-cif} - -[pd-neut-cwl][3]{:.label-experiment} [sc-neut-cwl][3]{:.label-experiment} [pd-xray][3]{:.label-experiment} - -* [\_diffrn_radiation_wavelength](dictionaries/_diffrn_radiation_wavelength.md) [coreCIF][1]{:.label-cif} - * [\_diffrn_radiation_wavelength.wavelength](dictionaries/_diffrn_radiation_wavelength.md) [coreCIF][1]{:.label-cif} -* [\_pd_background](dictionaries/_pd_background.md) [pdCIF][2]{:.label-cif} - * [\_pd_background.line_segment_X](dictionaries/_pd_background.md) [pdCIF][2]{:.label-cif} - * [\_pd_background.line_segment_intensity](dictionaries/_pd_background.md) [pdCIF][2]{:.label-cif} - * [\_pd_background.X_coordinate](dictionaries/_pd_background.md) [pdCIF][2]{:.label-cif} -* [\_pd_phase_block](dictionaries/_pd_phase.md) [pdCIF][2]{:.label-cif} - * [\_pd_phase_block.id](dictionaries/_pd_phase.md) [pdCIF][2]{:.label-cif} - * [\_pd_phase_block.scale](dictionaries/_pd_phase.md) [customCIF][0]{:.label-cif} +This dictionary provides data names for describing experimental and instrumental +parameters. + +[pd-neut-cwl][3]{:.label-experiment} [pd-neut-tof][3]{:.label-experiment} +[sc-neut-cwl][3]{:.label-experiment} [pd-xray][3]{:.label-experiment} + +- [\_diffrn_radiation](dictionaries/_diffrn_radiation.md) + [coreCIF][1]{:.label-cif} + - [\_diffrn_radiation.probe](dictionaries/_diffrn_radiation.md) + [coreCIF][1]{:.label-cif} + +[pd-neut-cwl][3]{:.label-experiment} [sc-neut-cwl][3]{:.label-experiment} +[pd-xray][3]{:.label-experiment} + +- [\_diffrn_radiation_wavelength](dictionaries/_diffrn_radiation_wavelength.md) + [coreCIF][1]{:.label-cif} + - [\_diffrn_radiation_wavelength.wavelength](dictionaries/_diffrn_radiation_wavelength.md) + [coreCIF][1]{:.label-cif} +- [\_pd_background](dictionaries/_pd_background.md) [pdCIF][2]{:.label-cif} + - [\_pd_background.line_segment_X](dictionaries/_pd_background.md) + [pdCIF][2]{:.label-cif} + - [\_pd_background.line_segment_intensity](dictionaries/_pd_background.md) + [pdCIF][2]{:.label-cif} + - [\_pd_background.X_coordinate](dictionaries/_pd_background.md) + [pdCIF][2]{:.label-cif} +- [\_pd_phase_block](dictionaries/_pd_phase.md) [pdCIF][2]{:.label-cif} + - [\_pd_phase_block.id](dictionaries/_pd_phase.md) [pdCIF][2]{:.label-cif} + - [\_pd_phase_block.scale](dictionaries/_pd_phase.md) + [customCIF][0]{:.label-cif} [pd-neut-cwl][3]{:.label-experiment} -* [\_pd_calib](dictionaries/_pd_calib.md) [pdCIF][2]{:.label-cif} - * [\_pd_calib.2theta_offset](dictionaries/_pd_calib.md) [pdCIF][2]{:.label-cif} -* [\_pd_instr](dictionaries/_pd_instr.md) [pdCIF][2]{:.label-cif} - * [\_pd_instr.resolution_u](dictionaries/_pd_instr.md) [customCIF][0]{:.label-cif} - * [\_pd_instr.resolution_v](dictionaries/_pd_instr.md) [customCIF][0]{:.label-cif} - * [\_pd_instr.resolution_w](dictionaries/_pd_instr.md) [customCIF][0]{:.label-cif} - * [\_pd_instr.resolution_x](dictionaries/_pd_instr.md) [customCIF][0]{:.label-cif} - * [\_pd_instr.resolution_y](dictionaries/_pd_instr.md) [customCIF][0]{:.label-cif} - * [\_pd_instr.reflex_asymmetry_p1](dictionaries/_pd_instr.md) [customCIF][0]{:.label-cif} - * [\_pd_instr.reflex_asymmetry_p2](dictionaries/_pd_instr.md) [customCIF][0]{:.label-cif} - * [\_pd_instr.reflex_asymmetry_p3](dictionaries/_pd_instr.md) [customCIF][0]{:.label-cif} - * [\_pd_instr.reflex_asymmetry_p4](dictionaries/_pd_instr.md) [customCIF][0]{:.label-cif} -* [\_pd_meas](dictionaries/_pd_meas.md) [pdCIF][2]{:.label-cif} - * [\_pd_meas.2theta_scan](dictionaries/_pd_meas.md) [pdCIF][2]{:.label-cif} - * [\_pd_meas.intensity_total](dictionaries/_pd_meas.md) [pdCIF][2]{:.label-cif} - * [\_pd_meas.intensity_total_su](dictionaries/_pd_meas.md) [pdCIF][2]{:.label-cif} +- [\_pd_calib](dictionaries/_pd_calib.md) [pdCIF][2]{:.label-cif} + - [\_pd_calib.2theta_offset](dictionaries/_pd_calib.md) + [pdCIF][2]{:.label-cif} +- [\_pd_instr](dictionaries/_pd_instr.md) [pdCIF][2]{:.label-cif} + - [\_pd_instr.resolution_u](dictionaries/_pd_instr.md) + [customCIF][0]{:.label-cif} + - [\_pd_instr.resolution_v](dictionaries/_pd_instr.md) + [customCIF][0]{:.label-cif} + - [\_pd_instr.resolution_w](dictionaries/_pd_instr.md) + [customCIF][0]{:.label-cif} + - [\_pd_instr.resolution_x](dictionaries/_pd_instr.md) + [customCIF][0]{:.label-cif} + - [\_pd_instr.resolution_y](dictionaries/_pd_instr.md) + [customCIF][0]{:.label-cif} + - [\_pd_instr.reflex_asymmetry_p1](dictionaries/_pd_instr.md) + [customCIF][0]{:.label-cif} + - [\_pd_instr.reflex_asymmetry_p2](dictionaries/_pd_instr.md) + [customCIF][0]{:.label-cif} + - [\_pd_instr.reflex_asymmetry_p3](dictionaries/_pd_instr.md) + [customCIF][0]{:.label-cif} + - [\_pd_instr.reflex_asymmetry_p4](dictionaries/_pd_instr.md) + [customCIF][0]{:.label-cif} +- [\_pd_meas](dictionaries/_pd_meas.md) [pdCIF][2]{:.label-cif} + - [\_pd_meas.2theta_scan](dictionaries/_pd_meas.md) [pdCIF][2]{:.label-cif} + - [\_pd_meas.intensity_total](dictionaries/_pd_meas.md) + [pdCIF][2]{:.label-cif} + - [\_pd_meas.intensity_total_su](dictionaries/_pd_meas.md) + [pdCIF][2]{:.label-cif} [pd-neut-tof][3]{:.label-experiment} -* [\_pd_instr](dictionaries/_pd_instr.md) [pdCIF][2]{:.label-cif} - * [\_pd_instr.zero](dictionaries/_pd_instr.md) [customCIF][0]{:.label-cif} - * [\_pd_instr.dtt1](dictionaries/_pd_instr.md) [customCIF][0]{:.label-cif} - * [\_pd_instr.dtt2](dictionaries/_pd_instr.md) [customCIF][0]{:.label-cif} - * [\_pd_instr.2theta_bank](dictionaries/_pd_instr.md) [customCIF][0]{:.label-cif} - * [\_pd_instr.alpha0](dictionaries/_pd_instr.md) [customCIF][0]{:.label-cif} - * [\_pd_instr.alpha1](dictionaries/_pd_instr.md) [customCIF][0]{:.label-cif} - * [\_pd_instr.beta0](dictionaries/_pd_instr.md) [customCIF][0]{:.label-cif} - * [\_pd_instr.beta1](dictionaries/_pd_instr.md) [customCIF][0]{:.label-cif} - * [\_pd_instr.sigma0](dictionaries/_pd_instr.md) [customCIF][0]{:.label-cif} - * [\_pd_instr.sigma1](dictionaries/_pd_instr.md) [customCIF][0]{:.label-cif} - * [\_pd_instr.sigma2](dictionaries/_pd_instr.md) [customCIF][0]{:.label-cif} -* [\_pd_meas](dictionaries/_pd_meas.md) [pdCIF][2]{:.label-cif} - * [\_pd_meas.time_of_flight](dictionaries/_pd_meas.md) [pdCIF][2]{:.label-cif} - * [\_pd_meas.intensity_total](dictionaries/_pd_meas.md) [pdCIF][2]{:.label-cif} - * [\_pd_meas.intensity_total_su](dictionaries/_pd_meas.md) [pdCIF][2]{:.label-cif} +- [\_pd_instr](dictionaries/_pd_instr.md) [pdCIF][2]{:.label-cif} + - [\_pd_instr.zero](dictionaries/_pd_instr.md) [customCIF][0]{:.label-cif} + - [\_pd_instr.dtt1](dictionaries/_pd_instr.md) [customCIF][0]{:.label-cif} + - [\_pd_instr.dtt2](dictionaries/_pd_instr.md) [customCIF][0]{:.label-cif} + - [\_pd_instr.2theta_bank](dictionaries/_pd_instr.md) + [customCIF][0]{:.label-cif} + - [\_pd_instr.alpha0](dictionaries/_pd_instr.md) [customCIF][0]{:.label-cif} + - [\_pd_instr.alpha1](dictionaries/_pd_instr.md) [customCIF][0]{:.label-cif} + - [\_pd_instr.beta0](dictionaries/_pd_instr.md) [customCIF][0]{:.label-cif} + - [\_pd_instr.beta1](dictionaries/_pd_instr.md) [customCIF][0]{:.label-cif} + - [\_pd_instr.sigma0](dictionaries/_pd_instr.md) [customCIF][0]{:.label-cif} + - [\_pd_instr.sigma1](dictionaries/_pd_instr.md) [customCIF][0]{:.label-cif} + - [\_pd_instr.sigma2](dictionaries/_pd_instr.md) [customCIF][0]{:.label-cif} +- [\_pd_meas](dictionaries/_pd_meas.md) [pdCIF][2]{:.label-cif} + - [\_pd_meas.time_of_flight](dictionaries/_pd_meas.md) [pdCIF][2]{:.label-cif} + - [\_pd_meas.intensity_total](dictionaries/_pd_meas.md) + [pdCIF][2]{:.label-cif} + - [\_pd_meas.intensity_total_su](dictionaries/_pd_meas.md) + [pdCIF][2]{:.label-cif} [sc-neut-cwl][3]{:.label-experiment} -* [\_extinction](dictionaries/_extinction.md) [customCIF][0]{:.label-cif} - * [\_extinction.model](dictionaries/_extinction.md) [customCIF][0]{:.label-cif} - * [\_extinction.mosaicity](dictionaries/_extinction.md) [customCIF][0]{:.label-cif} - * [\_extinction.radius](dictionaries/_extinction.md) [customCIF][0]{:.label-cif} +- [\_extinction](dictionaries/_extinction.md) [customCIF][0]{:.label-cif} + + - [\_extinction.model](dictionaries/_extinction.md) + [customCIF][0]{:.label-cif} + - [\_extinction.mosaicity](dictionaries/_extinction.md) + [customCIF][0]{:.label-cif} + - [\_extinction.radius](dictionaries/_extinction.md) + [customCIF][0]{:.label-cif} -* [\_exptl_crystal](dictionaries/_exptl_crystal.md) [customCIF][0]{:.label-cif} - * [\_exptl_crystal.id](dictionaries/_exptl_crystal.md) [customCIF][0]{:.label-cif} - * [\_exptl_crystal.scale](dictionaries/_exptl_crystal.md) [customCIF][0]{:.label-cif} +- [\_exptl_crystal](dictionaries/_exptl_crystal.md) [customCIF][0]{:.label-cif} + - [\_exptl_crystal.id](dictionaries/_exptl_crystal.md) + [customCIF][0]{:.label-cif} + - [\_exptl_crystal.scale](dictionaries/_exptl_crystal.md) + [customCIF][0]{:.label-cif} + + +[0]: # +[1]: https://www.iucr.org/resources/cif/dictionaries/browse/cif_core +[2]: https://www.iucr.org/resources/cif/dictionaries/browse/cif_pd +[3]: glossary.md + diff --git a/docs/dictionaries/_atom_site.md b/docs/dictionaries/_atom_site.md index 2dae780..1a81a75 100644 --- a/docs/dictionaries/_atom_site.md +++ b/docs/dictionaries/_atom_site.md @@ -1,16 +1,17 @@ -[0]: # -[1]: https://www.iucr.org/resources/cif/dictionaries/browse/cif_core -[2]: https://www.iucr.org/resources/cif/dictionaries/browse/cif_pd - [coreCIF][1]{:.label-cif} # \_atom_site -Data items in this category record details about the atom sites in a crystal structure, such as the positional coordinates and atomic displacement parameters. Please see the [IUCr page](https://www.iucr.org/__data/iucr/cifdic_html/3/CORE_DIC/CATOM_SITE.html) for further details. +Data items in this category record details about the atom sites in a crystal +structure, such as the positional coordinates and atomic displacement +parameters. Please see the +[IUCr page](https://www.iucr.org/__data/iucr/cifdic_html/3/CORE_DIC/CATOM_SITE.html) +for further details. ## [\_atom_site.label](https://www.iucr.org/__data/iucr/cifdic_html/3/CORE_DIC/Iatom_site.label.html) -This is a unique identifier for a particular site in the asymmetric unit of the crystal unit cell. +This is a unique identifier for a particular site in the asymmetric unit of the +crystal unit cell. ## [\_atom_site.type_symbol](https://www.iucr.org/__data/iucr/cifdic_html/3/CORE_DIC/Iatom_site.type_symbol.html) @@ -20,9 +21,9 @@ A code to identify the atom specie(s) occupying this site. Atom-site coordinates as fractions of the [\_cell_length](_cell.md) values. -* [\_atom_site.fract_x](https://www.iucr.org/__data/iucr/cifdic_html/3/CORE_DIC/Iatom_site.fract_x.html) -* [\_atom_site.fract_y](https://www.iucr.org/__data/iucr/cifdic_html/3/CORE_DIC/Iatom_site.fract_y.html) -* [\_atom_site.fract_z](https://www.iucr.org/__data/iucr/cifdic_html/3/CORE_DIC/Iatom_site.fract_z.html) +- [\_atom_site.fract_x](https://www.iucr.org/__data/iucr/cifdic_html/3/CORE_DIC/Iatom_site.fract_x.html) +- [\_atom_site.fract_y](https://www.iucr.org/__data/iucr/cifdic_html/3/CORE_DIC/Iatom_site.fract_y.html) +- [\_atom_site.fract_z](https://www.iucr.org/__data/iucr/cifdic_html/3/CORE_DIC/Iatom_site.fract_z.html) ## [\_atom_site.occupancy](https://www.iucr.org/__data/iucr/cifdic_html/3/CORE_DIC/Iatom_site.occupancy.html) @@ -30,20 +31,32 @@ The fraction of the atom type present at this site. ## [\_atom_site.ADP_type](https://www.iucr.org/__data/iucr/cifdic_html/3/CORE_DIC/Iatom_site.adp_type.html) -Code for type of atomic displacement parameters used for the site. Currently only `Biso` (isotropic B) is supported. +Code for type of atomic displacement parameters used for the site. Currently +only `Biso` (isotropic B) is supported. ## [\_atom_site.B_iso_or_equiv](https://www.iucr.org/__data/iucr/cifdic_html/3/CORE_DIC/Iatom_site.B_iso_or_equiv.html) -Isotropic atomic displacement parameter, or equivalent isotropic atomic displacement parameter, in angstroms squared. +Isotropic atomic displacement parameter, or equivalent isotropic atomic +displacement parameter, in angstroms squared. ## [\_atom_site.site_symmetry_multiplicity](https://www.iucr.org/__data/iucr/cifdic_html/3/CORE_DIC/Iatom_site.site_symmetry_multiplicity.html) `optional parameter` -The number of different sites that are generated by the application of the space-group symmetry to the coordinates given for this site. It is equal to the multiplicity given for this Wyckoff site in International Tables for Crystallography Vol. A (2002). +The number of different sites that are generated by the application of the +space-group symmetry to the coordinates given for this site. It is equal to the +multiplicity given for this Wyckoff site in International Tables for +Crystallography Vol. A (2002). ## [\_atom_site.Wyckoff_symbol](https://www.iucr.org/__data/iucr/cifdic_html/3/CORE_DIC/Iatom_site.Wyckoff_symbol.html) `optional parameter` -The Wyckoff symbol (letter) as listed in the space-group tables of International Tables for Crystallography Vol. A. +The Wyckoff symbol (letter) as listed in the space-group tables of International +Tables for Crystallography Vol. A. + + +[0]: # +[1]: https://www.iucr.org/resources/cif/dictionaries/browse/cif_core +[2]: https://www.iucr.org/resources/cif/dictionaries/browse/cif_pd + diff --git a/docs/dictionaries/_cell.md b/docs/dictionaries/_cell.md index 61f0f58..5aeb12a 100644 --- a/docs/dictionaries/_cell.md +++ b/docs/dictionaries/_cell.md @@ -1,25 +1,30 @@ -[0]: # -[1]: https://www.iucr.org/resources/cif/dictionaries/browse/cif_core -[2]: https://www.iucr.org/resources/cif/dictionaries/browse/cif_pd - [coreCIF][1]{:.label-cif} # \_cell -Data items in this category record details about the crystallographic cell parameters and their measurement. Please see the [IUCr page](https://www.iucr.org/__data/iucr/cifdic_html/3/CORE_DIC/CCELL.html) for further details. +Data items in this category record details about the crystallographic cell +parameters and their measurement. Please see the +[IUCr page](https://www.iucr.org/__data/iucr/cifdic_html/3/CORE_DIC/CCELL.html) +for further details. ## \_cell.angle The angles between the bounding cell axes in degrees. -* [\_cell.angle_alpha](https://www.iucr.org/__data/iucr/cifdic_html/3/CORE_DIC/Icell.angle_alpha.html) -* [\_cell.angle_beta](https://www.iucr.org/__data/iucr/cifdic_html/3/CORE_DIC/Icell.angle_beta.html) -* [\_cell.angle_gamma](https://www.iucr.org/__data/iucr/cifdic_html/3/CORE_DIC/Icell.angle_gamma.html) +- [\_cell.angle_alpha](https://www.iucr.org/__data/iucr/cifdic_html/3/CORE_DIC/Icell.angle_alpha.html) +- [\_cell.angle_beta](https://www.iucr.org/__data/iucr/cifdic_html/3/CORE_DIC/Icell.angle_beta.html) +- [\_cell.angle_gamma](https://www.iucr.org/__data/iucr/cifdic_html/3/CORE_DIC/Icell.angle_gamma.html) ## \_cell.length The lengths of each cell axis in angstroms. -* [\_cell.length_a](https://www.iucr.org/__data/iucr/cifdic_html/3/CORE_DIC/Icell.length_a.html) -* [\_cell.length_b](https://www.iucr.org/__data/iucr/cifdic_html/3/CORE_DIC/Icell.length_b.html) -* [\_cell.length_c](https://www.iucr.org/__data/iucr/cifdic_html/3/CORE_DIC/Icell.length_c.html) +- [\_cell.length_a](https://www.iucr.org/__data/iucr/cifdic_html/3/CORE_DIC/Icell.length_a.html) +- [\_cell.length_b](https://www.iucr.org/__data/iucr/cifdic_html/3/CORE_DIC/Icell.length_b.html) +- [\_cell.length_c](https://www.iucr.org/__data/iucr/cifdic_html/3/CORE_DIC/Icell.length_c.html) + + +[0]: # +[1]: https://www.iucr.org/resources/cif/dictionaries/browse/cif_core +[2]: https://www.iucr.org/resources/cif/dictionaries/browse/cif_pd + diff --git a/docs/dictionaries/_diffrn_radiation.md b/docs/dictionaries/_diffrn_radiation.md index 9e3cd17..e3c0a7e 100644 --- a/docs/dictionaries/_diffrn_radiation.md +++ b/docs/dictionaries/_diffrn_radiation.md @@ -1,15 +1,21 @@ -[0]: # -[1]: https://www.iucr.org/resources/cif/dictionaries/browse/cif_core -[2]: https://www.iucr.org/resources/cif/dictionaries/browse/cif_pd - [coreCIF][1]{:.label-cif} # \_diffrn_radiation -Data items in this category describe the radiation used in measuring the diffraction intensities. Please see the [IUCr page](https://www.iucr.org/resources/cif/dictionaries/browse/cif_pd) for further details. +Data items in this category describe the radiation used in measuring the +diffraction intensities. Please see the +[IUCr page](https://www.iucr.org/resources/cif/dictionaries/browse/cif_pd) for +further details. ## [\_diffrn_radiation.probe](https://www.iucr.org/resources/cif/dictionaries/browse/cif_pd) -The nature of the radiation used (i.e. the name of the subatomic particle or the region of the electromagnetic spectrum). +The nature of the radiation used (i.e. the name of the subatomic particle or the +region of the electromagnetic spectrum). Supported values: `neutron` and `x-ray` + + +[0]: # +[1]: https://www.iucr.org/resources/cif/dictionaries/browse/cif_core +[2]: https://www.iucr.org/resources/cif/dictionaries/browse/cif_pd + diff --git a/docs/dictionaries/_diffrn_radiation_wavelength.md b/docs/dictionaries/_diffrn_radiation_wavelength.md index 4b31e01..4d20578 100644 --- a/docs/dictionaries/_diffrn_radiation_wavelength.md +++ b/docs/dictionaries/_diffrn_radiation_wavelength.md @@ -1,13 +1,18 @@ -[0]: # -[1]: https://www.iucr.org/resources/cif/dictionaries/browse/cif_core -[2]: https://www.iucr.org/resources/cif/dictionaries/browse/cif_pd - [coreCIF][1]{:.label-cif} # \_diffrn_radiation_wavelength -Data items in this category describe the wavelength of radiation used in diffraction measurements. Please see the [IUCr page](https://www.iucr.org/resources/cif/dictionaries/browse/cif_pd) for further details. +Data items in this category describe the wavelength of radiation used in +diffraction measurements. Please see the +[IUCr page](https://www.iucr.org/resources/cif/dictionaries/browse/cif_pd) for +further details. ## [\_diffrn_radiation_wavelength.wavelength](https://www.iucr.org/resources/cif/dictionaries/browse/cif_pd) Wavelength of the radiation used to measure the unit cell. + + +[0]: # +[1]: https://www.iucr.org/resources/cif/dictionaries/browse/cif_core +[2]: https://www.iucr.org/resources/cif/dictionaries/browse/cif_pd + diff --git a/docs/dictionaries/_exptl_crystal.md b/docs/dictionaries/_exptl_crystal.md index 9e79204..8d568b2 100644 --- a/docs/dictionaries/_exptl_crystal.md +++ b/docs/dictionaries/_exptl_crystal.md @@ -1,5 +1,7 @@ +[customCIF][0]{:.label-cif} + + [0]: # [1]: https://www.iucr.org/resources/cif/dictionaries/browse/cif_core [2]: https://www.iucr.org/resources/cif/dictionaries/browse/cif_pd - -[customCIF][0]{:.label-cif} + diff --git a/docs/dictionaries/_extinction.md b/docs/dictionaries/_extinction.md index 9e79204..8d568b2 100644 --- a/docs/dictionaries/_extinction.md +++ b/docs/dictionaries/_extinction.md @@ -1,5 +1,7 @@ +[customCIF][0]{:.label-cif} + + [0]: # [1]: https://www.iucr.org/resources/cif/dictionaries/browse/cif_core [2]: https://www.iucr.org/resources/cif/dictionaries/browse/cif_pd - -[customCIF][0]{:.label-cif} + diff --git a/docs/dictionaries/_pd_background.md b/docs/dictionaries/_pd_background.md index a28a296..8998547 100644 --- a/docs/dictionaries/_pd_background.md +++ b/docs/dictionaries/_pd_background.md @@ -1,23 +1,30 @@ -[0]: # -[1]: https://www.iucr.org/resources/cif/dictionaries/browse/cif_core -[2]: https://www.iucr.org/resources/cif/dictionaries/browse/cif_pd - [pdCIF][2]{:.label-cif} # \_pd_background -This category defines various background functions that could be used when calculating diffractograms. Please see the [IUCr page](https://www.iucr.org/resources/cif/dictionaries/browse/cif_pd) for further details. +This category defines various background functions that could be used when +calculating diffractograms. Please see the +[IUCr page](https://www.iucr.org/resources/cif/dictionaries/browse/cif_pd) for +further details. ## [\_pd_background.line_segment_X](https://www.iucr.org/resources/cif/dictionaries/browse/cif_pd) -List of X-coordinates used to create many straight-line segments representing the background in a calculated diffractogram. +List of X-coordinates used to create many straight-line segments representing +the background in a calculated diffractogram. Supported values: `2theta` and `time-of-flight` ## [\_pd_background.line_segment_intensity](https://www.iucr.org/resources/cif/dictionaries/browse/cif_pd) -List of intensities used to create many straight-line segments representing the background in a calculated diffractogram. +List of intensities used to create many straight-line segments representing the +background in a calculated diffractogram. ## [\_pd_background.X_coordinate](https://www.iucr.org/resources/cif/dictionaries/browse/cif_pd) The type of X-coordinate against which the pd_background values were calculated. + + +[0]: # +[1]: https://www.iucr.org/resources/cif/dictionaries/browse/cif_core +[2]: https://www.iucr.org/resources/cif/dictionaries/browse/cif_pd + diff --git a/docs/dictionaries/_pd_calib.md b/docs/dictionaries/_pd_calib.md index 46f34db..2b96a4c 100644 --- a/docs/dictionaries/_pd_calib.md +++ b/docs/dictionaries/_pd_calib.md @@ -1,13 +1,17 @@ -[0]: # -[1]: https://www.iucr.org/resources/cif/dictionaries/browse/cif_core -[2]: https://www.iucr.org/resources/cif/dictionaries/browse/cif_pd - [customCIF][0]{:.label-cif} # \_pd_calib -This section defines the parameters used for the calibration of the instrument, similar to this [IUCr section](https://www.iucr.org/resources/cif/dictionaries/browse/cif_pd). +This section defines the parameters used for the calibration of the instrument, +similar to this +[IUCr section](https://www.iucr.org/resources/cif/dictionaries/browse/cif_pd). ## [\_pd_calib.2theta_offset](https://www.iucr.org/resources/cif/dictionaries/browse/cif_pd) An offset angle (in degrees) used to calibrate 2θ. + + +[0]: # +[1]: https://www.iucr.org/resources/cif/dictionaries/browse/cif_core +[2]: https://www.iucr.org/resources/cif/dictionaries/browse/cif_pd + diff --git a/docs/dictionaries/_pd_instr.md b/docs/dictionaries/_pd_instr.md index ab34172..3975161 100644 --- a/docs/dictionaries/_pd_instr.md +++ b/docs/dictionaries/_pd_instr.md @@ -1,39 +1,45 @@ -[0]: # -[1]: https://www.iucr.org/resources/cif/dictionaries/browse/cif_core -[2]: https://www.iucr.org/resources/cif/dictionaries/browse/cif_pd - [customCIF][0]{:.label-cif} -# _pd_instr +# \_pd_instr -This section contains information relevant to the instrument used for the diffraction measurement, similar to this [IUCr section](https://www.iucr.org/resources/cif/dictionaries/browse/cif_pd). +This section contains information relevant to the instrument used for the +diffraction measurement, similar to this +[IUCr section](https://www.iucr.org/resources/cif/dictionaries/browse/cif_pd). ## [\_pd_instr.resolution](#) -In general, the profile of a Bragg reflection centred at the peak position can be approximated by mathematical convolution of contributions from the instrument, called the instrumental resolution function, and from the microstructure of the sample. Because many contributions to powder diffraction peaks have a nearly Gaussian or Lorentzian shape, the pseudo-Voigt function, is widely used to describe peak profiles in powder diffraction. +In general, the profile of a Bragg reflection centred at the peak position can +be approximated by mathematical convolution of contributions from the +instrument, called the instrumental resolution function, and from the +microstructure of the sample. Because many contributions to powder diffraction +peaks have a nearly Gaussian or Lorentzian shape, the pseudo-Voigt function, is +widely used to describe peak profiles in powder diffraction. -Half-width parameters (normally characterising the instrumental resolution function) as implemented in [CrysPy](https://cryspy.fr): +Half-width parameters (normally characterising the instrumental resolution +function) as implemented in [CrysPy](https://cryspy.fr): -* \_pd_instr.resolution_u -* \_pd_instr.resolution_v -* \_pd_instr.resolution_w +- \_pd_instr.resolution_u +- \_pd_instr.resolution_v +- \_pd_instr.resolution_w -Lorentzian isotropic microstrain parameter as implemented in [CrysPy](https://cryspy.fr): +Lorentzian isotropic microstrain parameter as implemented in +[CrysPy](https://cryspy.fr): -* \_pd_instr.resolution_x +- \_pd_instr.resolution_x -Lorentzian isotropic particle size parameteras implemented in [CrysPy](https://cryspy.fr): +Lorentzian isotropic particle size parameteras implemented in +[CrysPy](https://cryspy.fr): -* \_pd_instr.resolution_y +- \_pd_instr.resolution_y ## [\_pd_instr.reflex_asymmetry](#) Peak profile asymmetry parameters as implemented in [CrysPy](https://cryspy.fr). -* \_pd_instr.reflex_asymmetry_p1 -* \_pd_instr.reflex_asymmetry_p2 -* \_pd_instr.reflex_asymmetry_p3 -* \_pd_instr.reflex_asymmetry_p4 +- \_pd_instr.reflex_asymmetry_p1 +- \_pd_instr.reflex_asymmetry_p2 +- \_pd_instr.reflex_asymmetry_p3 +- \_pd_instr.reflex_asymmetry_p4 ## [\_pd_instr.2theta_bank](#) @@ -43,8 +49,8 @@ Time-of-flight parameters as implemented in [CrysPy](https://cryspy.fr). Time-of-flight parameters as implemented in [CrysPy](https://cryspy.fr). -* \_pd_instr.dtt1 -* \_pd_instr.dtt2 +- \_pd_instr.dtt1 +- \_pd_instr.dtt2 ## [\_pd_instr.zero](#) @@ -54,20 +60,26 @@ Time-of-flight parameters as implemented in [CrysPy](https://cryspy.fr). Time-of-flight parameters as implemented in [CrysPy](https://cryspy.fr). -* \_pd_instr.alpha0 -* \_pd_instr.alpha1 +- \_pd_instr.alpha0 +- \_pd_instr.alpha1 ## [\_pd_instr.beta](#) Time-of-flight parameters as implemented in [CrysPy](https://cryspy.fr). -* \_pd_instr.beta0 -* \_pd_instr.beta1 +- \_pd_instr.beta0 +- \_pd_instr.beta1 ## [\_pd_instr.sigma](#) Time-of-flight parameters as implemented in [CrysPy](https://cryspy.fr). -* \_pd_instr.sigma0 -* \_pd_instr.sigma1 -* \_pd_instr.sigma2 +- \_pd_instr.sigma0 +- \_pd_instr.sigma1 +- \_pd_instr.sigma2 + + +[0]: # +[1]: https://www.iucr.org/resources/cif/dictionaries/browse/cif_core +[2]: https://www.iucr.org/resources/cif/dictionaries/browse/cif_pd + diff --git a/docs/dictionaries/_pd_meas.md b/docs/dictionaries/_pd_meas.md index 90a0124..b294a96 100644 --- a/docs/dictionaries/_pd_meas.md +++ b/docs/dictionaries/_pd_meas.md @@ -1,16 +1,14 @@ -[0]: # -[1]: https://www.iucr.org/resources/cif/dictionaries/browse/cif_core -[2]: https://www.iucr.org/resources/cif/dictionaries/browse/cif_pd - [pdCIF][2]{:.label-cif} -# _pd_meas +# \_pd_meas -This section contains the measured diffractogram, similar to this [IUCr section](https://www.iucr.org/resources/cif/dictionaries/browse/cif_pd). +This section contains the measured diffractogram, similar to this +[IUCr section](https://www.iucr.org/resources/cif/dictionaries/browse/cif_pd). ## [\_pd_meas.2theta_scan](https://raw.githubusercontent.com/COMCIFS/Powder_Dictionary/master/cif_pow.dic) -2θ diffraction angle (in degrees) for intensity points measured in a scanning method. +2θ diffraction angle (in degrees) for intensity points measured in a scanning +method. ## [\_pd_meas.time-of-flight](https://raw.githubusercontent.com/COMCIFS/Powder_Dictionary/master/cif_pow.dic) @@ -23,3 +21,9 @@ Intensity recorded at each measurement point as a function of angle. ## [\_pd_meas.intensity_total_su](https://raw.githubusercontent.com/COMCIFS/Powder_Dictionary/master/cif_pow.dic) Standard uncertainty of \_pd_meas.2theta_scan. + + +[0]: # +[1]: https://www.iucr.org/resources/cif/dictionaries/browse/cif_core +[2]: https://www.iucr.org/resources/cif/dictionaries/browse/cif_pd + diff --git a/docs/dictionaries/_pd_phase.md b/docs/dictionaries/_pd_phase.md index 8bfcc77..df3f6d2 100644 --- a/docs/dictionaries/_pd_phase.md +++ b/docs/dictionaries/_pd_phase.md @@ -1,12 +1,11 @@ -[0]: # -[1]: https://www.iucr.org/resources/cif/dictionaries/browse/cif_core -[2]: https://www.iucr.org/resources/cif/dictionaries/browse/cif_pd - [pdCIF][2]{:.label-cif} # \_pd_phase_block -A table of phases relevant to the current data block. Each phase is identified by its data block identifier. Please see the [IUCr page](https://www.iucr.org/resources/cif/dictionaries/browse/cif_pd) for further details. +A table of phases relevant to the current data block. Each phase is identified +by its data block identifier. Please see the +[IUCr page](https://www.iucr.org/resources/cif/dictionaries/browse/cif_pd) for +further details. ## [\_pd_phase_block.id](https://www.iucr.org/resources/cif/dictionaries/browse/cif_pd) @@ -15,3 +14,9 @@ A block ID code identifying a block containing phase information. ## \_pd_phase_block.scale Phase scale. + + +[0]: # +[1]: https://www.iucr.org/resources/cif/dictionaries/browse/cif_core +[2]: https://www.iucr.org/resources/cif/dictionaries/browse/cif_pd + diff --git a/docs/dictionaries/_space_group.md b/docs/dictionaries/_space_group.md index 8b82f8b..883be10 100644 --- a/docs/dictionaries/_space_group.md +++ b/docs/dictionaries/_space_group.md @@ -1,17 +1,25 @@ -[0]: # -[1]: https://www.iucr.org/resources/cif/dictionaries/browse/cif_core -[2]: https://www.iucr.org/resources/cif/dictionaries/browse/cif_pd - [coreCIF][1]{:.label-cif} # \_space_group -Contains all the data items that refer to the space group as a whole. Please see the [IUCr page](https://www.iucr.org/__data/iucr/cifdic_html/3/CORE_DIC/CSPACE_GROUP.html) for further details. +Contains all the data items that refer to the space group as a whole. Please see +the +[IUCr page](https://www.iucr.org/__data/iucr/cifdic_html/3/CORE_DIC/CSPACE_GROUP.html) +for further details. ## [\_space_group.name_H-M_alt](https://www.iucr.org/__data/iucr/cifdic_html/3/CORE_DIC/Ispace_group.name_H-M_alt.html) -The international Hermann-Mauguin space-group symbol as defined in International Tables for Crystallography Volume A. It allows any Hermann-Mauguin symbol to be given. +The international Hermann-Mauguin space-group symbol as defined in International +Tables for Crystallography Volume A. It allows any Hermann-Mauguin symbol to be +given. ## [\_space_group.IT_coordinate_system_code](https://www.iucr.org/__data/iucr/cifdic_html/3/CORE_DIC/Ispace_group.IT_coordinate_system_code.html) -A qualifier taken from the enumeration list identifying which setting in International Tables for Crystallography Volume A (2002) (IT) is used. +A qualifier taken from the enumeration list identifying which setting in +International Tables for Crystallography Volume A (2002) (IT) is used. + + +[0]: # +[1]: https://www.iucr.org/resources/cif/dictionaries/browse/cif_core +[2]: https://www.iucr.org/resources/cif/dictionaries/browse/cif_pd + diff --git a/docs/easyscience.md b/docs/easyscience.md index 451be2b..d15a61b 100644 --- a/docs/easyscience.md +++ b/docs/easyscience.md @@ -1,13 +1,19 @@ # The EasyScience framework -EasyScience is a framework of software tools that can be used to build experimental data analysis packages. -For example, it has already been used in the development of [EasyDiffraction] and [EasyReflectometry]. Two more packages are about to be started: EasyImaging (Bragg edge imaging) and EasyDynamics (Quasielastic neutron scattering, QENS). +EasyScience is a framework of software tools that can be used to build +experimental data analysis packages. For example, it has already been used in +the development of [EasyDiffraction] and [EasyReflectometry]. Two more packages +are about to be started: EasyImaging (Bragg edge imaging) and EasyDynamics +(Quasielastic neutron scattering, QENS). -The framework consists of both front- and back-end elements, known as [EasyApp] and [EasyScience], respectively. -The front-end provides a shared library of graphical interface elements that can be used to build a graphical user interface. -The back-end offers a toolset to perform model-dependent analysis, including the ability to plug-in existing calculation engines. +The framework consists of both front- and back-end elements, known as [EasyApp] +and [EasyScience], respectively. The front-end provides a shared library of +graphical interface elements that can be used to build a graphical user +interface. The back-end offers a toolset to perform model-dependent analysis, +including the ability to plug-in existing calculation engines. -Below is a diagram illustrating the relationship between the modules of the EasyScience framework: +Below is a diagram illustrating the relationship between the modules of the +EasyScience framework: @@ -88,8 +94,9 @@ Below is a diagram illustrating the relationship between the modules of the Easy - + [EasyDiffraction]: https://easydiffraction.org [EasyReflectometry]: https://easyreflectometry.org [EasyApp]: https://github.com/easyscience/easyapp -[EasyScience]: https://github.com/easyscience/easyscience \ No newline at end of file +[EasyScience]: https://github.com/easyscience/easyscience + diff --git a/docs/experiment.md b/docs/experiment.md index 4316314..bbedf8e 100644 --- a/docs/experiment.md +++ b/docs/experiment.md @@ -1,15 +1,16 @@ -[3]: glossary.md - # Experiment -This section describes different types of experimental data which EasyDiffraction can handle. +This section describes different types of experimental data which +EasyDiffraction can handle. ## CIF-based description -The following examples show the CIF data blocks for different types of diffraction experiments supported in EasyDiffraction. +The following examples show the CIF data blocks for different types of +diffraction experiments supported in EasyDiffraction. ### [pd-neut-cwl][3]{:.label-experiment} +
 data_hrpt
@@ -69,9 +70,11 @@ loop_
 164.85  109  41.2
 
+ ### [pd-neut-tof][3]{:.label-experiment} +
 data_wish
@@ -136,9 +139,11 @@ loop_
 103417.6  277.666   73.837
 
+ ### [sc-neut-cwl][3]{:.label-experiment} +
 data_heidi
@@ -183,6 +188,7 @@ loop_
 12 12 10    14.4074   11.3800
 
+ ## Other supported data files @@ -206,6 +212,7 @@ Here are some examples: ### example1.xye +
 # 2theta  intensity    su
@@ -222,9 +229,11 @@ Here are some examples:
   164.85     109      41.2
 
+ ### example2.xy +
 # 2theta  intensity
@@ -241,9 +250,11 @@ Here are some examples:
   164.85     109  
 
+ ### example3.xy +
 10  167.3    
@@ -259,3 +270,8 @@ Here are some examples:
 164.85  109     
 
+ + + +[3]: glossary.md + diff --git a/docs/getting-started.md b/docs/getting-started.md index daff735..f9049bf 100644 --- a/docs/getting-started.md +++ b/docs/getting-started.md @@ -2,18 +2,24 @@ ## Requirements -The EasyDiffraction library is developed in Python, so Python must be installed on your system. The library is compatible with Python versions 3.9 through 3.12. +The EasyDiffraction library is developed in Python, so Python must be installed +on your system. The library is compatible with Python versions 3.9 through 3.12. ## Environment setup optional { #environment-setup data-toc-label="Environment setup" } -We recommend using a virtual environment – an isolated Python runtime where any packages you install or update are contained within that environment. If you encounter issues, you can simply delete and recreate the environment. Setting it up is straightforward: +We recommend using a virtual environment – an isolated Python runtime where any +packages you install or update are contained within that environment. If you +encounter issues, you can simply delete and recreate the environment. Setting it +up is straightforward: -* Create a new virtual environment with: -```console -python3 -m venv venv -``` +- Create a new virtual environment with: + ```console + python3 -m venv venv + ``` -* Activate the environment with: + + +- Activate the environment with: === ":material-apple: macOS" ```console @@ -28,9 +34,12 @@ python3 -m venv venv . venv/bin/activate ``` -Your terminal should now print `(venv)` before the prompt, which is how you know that you are inside the virtual environment that you just created. + + +Your terminal should now print `(venv)` before the prompt, which is how you know +that you are inside the virtual environment that you just created. -* Exit the environment with: +- Exit the environment with: ``` deactivate ``` @@ -39,80 +48,104 @@ Your terminal should now print `(venv)` before the prompt, which is how you know ### From PyPI recommended { #from-pypi data-toc-label="From PyPI" } -EasyDiffraction is published on the Python Package Index (PyPI) repository and can be installed with the package installer for Python (pip), ideally by using a [virtual environment](#environment-setup). +EasyDiffraction is published on the Python Package Index (PyPI) repository and +can be installed with the package installer for Python (pip), ideally by using a +[virtual environment](#environment-setup). + +We recommend installing the latest release of EasyDiffraction with the `charts` +extras, which include optional dependencies used for simplified visualization of +charts and tables. This can be especially useful for running the Jupyter +Notebook examples. To do so, use the following command: -We recommend installing the latest release of EasyDiffraction with the `charts` extras, which include optional dependencies used for simplified visualization of charts and tables. This can be especially useful for running the Jupyter Notebook examples. To do so, use the following command: ```console pip install 'easydiffraction[charts]' ``` -If only the core functionality is needed, the library can be installed simply with: +If only the core functionality is needed, the library can be installed simply +with: + ```console pip install easydiffraction ``` To install a specific version of EasyDiffraction, e.g. 0.1.3, use: + ```console pip install 'easydiffraction==0.1.3' ``` Upgrading to the latest version can be done with: + ```console pip install --upgrade --force-reinstall easydiffraction ``` To show the currently installed version, use: + ```console pip show easydiffraction ``` ### From GitHub -Installing an unreleased version is not recommended and should only be done for testing purposes. +Installing an unreleased version is not recommended and should only be done for +testing purposes. + +Here is an example of how to install EasyDiffraction directly from our GitHub +repository, e.g., from the `develop` branch: -Here is an example of how to install EasyDiffraction directly from our GitHub repository, e.g., from the `develop` branch: ```console pip install git+https://github.com/EasyScience/EasyDiffractionLib@develop ``` To do the same with extra dependencies, use: + ```console pip install 'easydiffraction[charts] @ git+https://github.com/EasyScience/EasyDiffractionLib@develop' ``` ## Examples -We have a collection of Jupyter Notebook examples that demonstrate how to use EasyDiffraction for various tasks. These examples are presented in the [How to use](how-to-use/index.md#how-to-use) section of the documentation as static HTML pages. +We have a collection of Jupyter Notebook examples that demonstrate how to use +EasyDiffraction for various tasks. These examples are presented in the +[How to use](how-to-use/index.md#how-to-use) section of the documentation as +static HTML pages. -You can also run these Jupyter Notebook examples yourself either locally or in Google Colab. +You can also run these Jupyter Notebook examples yourself either locally or in +Google Colab. -These Jupyter Notebook examples can be downloaded either one by one from the [How to use](how-to-use/index.md#how-to-use) section or all together as a zip archive from the [EasyDiffraction releases](https://github.com/EasyScience/EasyDiffractionLib/releases/latest). +These Jupyter Notebook examples can be downloaded either one by one from the +[How to use](how-to-use/index.md#how-to-use) section or all together as a zip +archive from the +[EasyDiffraction releases](https://github.com/EasyScience/EasyDiffractionLib/releases/latest). ### Run locally -To run the examples locally, you need to install Jupyter Notebook or JupyterLab. Here are the steps to take in the case of Jupyter Notebook: +To run the examples locally, you need to install Jupyter Notebook or JupyterLab. +Here are the steps to take in the case of Jupyter Notebook: -* Install Jupyter Notebook: +- Install Jupyter Notebook: ```console pip install notebook ``` -* Download EasyDiffraction examples from GitHub for the latest release, e.g., using curl: +- Download EasyDiffraction examples from GitHub for the latest release, e.g., + using curl: ```console curl --location --remote-name https://github.com/EasyScience/EasyDiffractionLib/releases/latest/download/examples.zip ``` -* Unzip the downloaded archive: +- Unzip the downloaded archive: ```console unzip examples.zip ``` -* Run Jupyter Notebook server in the `examples/` directory: +- Run Jupyter Notebook server in the `examples/` directory: ```console jupyter notebook examples/ ``` -* Open your web browser and go to: +- Open your web browser and go to: ```console http://localhost:8888/ ``` -* Select one of the `*.ipynb` files. +- Select one of the `*.ipynb` files. ### Via Google Colab @@ -120,6 +153,10 @@ To run the examples locally, you need to install Jupyter Notebook or JupyterLab. To run the examples in Google Colab, you need to have a Google account. -Google Colab is a free cloud service that allows you to run Jupyter Notebooks online, enabling you to run the examples without installing anything on your local machine. +Google Colab is a free cloud service that allows you to run Jupyter Notebooks +online, enabling you to run the examples without installing anything on your +local machine. -In the top right corner of each example, under the [How to use](how-to-use/index.md#how-to-use) section, you will find a button to open that example in Google Colab :google-colab: +In the top right corner of each example, under the +[How to use](how-to-use/index.md#how-to-use) section, you will find a button to +open that example in Google Colab :google-colab: diff --git a/docs/glossary.md b/docs/glossary.md index b0db79c..b324fc8 100644 --- a/docs/glossary.md +++ b/docs/glossary.md @@ -1,25 +1,34 @@ -[0]: # -[1]: https://www.iucr.org/resources/cif/dictionaries/browse/cif_core -[2]: https://www.iucr.org/resources/cif/dictionaries/browse/cif_pd - # Glossary -This page contains the most common abbreviations used in EasyDiffraction documentation. +This page contains the most common abbreviations used in EasyDiffraction +documentation. ## Dictionary type labels -* [coreCIF][1]{:.label-cif} Core CIF dictionary by the [IUCr](https://www.iucr.org). -* [pdCIF][2]{:.label-cif} Powder CIF dictionary by the [IUCr](https://www.iucr.org). -* [customCIF][0]{:.label-cif} Custom CIF dictionary by the EasyDiffraction developers. +- [coreCIF][1]{:.label-cif} Core CIF dictionary by the + [IUCr](https://www.iucr.org). +- [pdCIF][2]{:.label-cif} Powder CIF dictionary by the + [IUCr](https://www.iucr.org). +- [customCIF][0]{:.label-cif} Custom CIF dictionary by the EasyDiffraction + developers. ## Experiment type labels ### Neutron diffraction -* [pd-neut-cwl][0]{:.label-experiment} Powder neutron diffraction with constant wavelength. -* [pd-neut-tof][0]{:.label-experiment} Powder neutron diffraction with time-of-flight. -* [sc-neut-cwl][0]{:.label-experiment} Single crystal neutron diffraction with constant wavelength. +- [pd-neut-cwl][0]{:.label-experiment} Powder neutron diffraction with constant + wavelength. +- [pd-neut-tof][0]{:.label-experiment} Powder neutron diffraction with + time-of-flight. +- [sc-neut-cwl][0]{:.label-experiment} Single crystal neutron diffraction with + constant wavelength. ### X-ray diffraction -* [pd-xray][0]{:.label-experiment} Powder X-ray diffraction. +- [pd-xray][0]{:.label-experiment} Powder X-ray diffraction. + + +[0]: # +[1]: https://www.iucr.org/resources/cif/dictionaries/browse/cif_core +[2]: https://www.iucr.org/resources/cif/dictionaries/browse/cif_pd + diff --git a/docs/how-to-use/index.md b/docs/how-to-use/index.md index 513e611..8d691fa 100644 --- a/docs/how-to-use/index.md +++ b/docs/how-to-use/index.md @@ -1,8 +1,10 @@ # How to use -This section provides a collection of Jupyter Notebook examples that demonstrate how to use EasyDiffraction for various tasks. These examples are presented as static HTML pages. +This section provides a collection of Jupyter Notebook examples that demonstrate +how to use EasyDiffraction for various tasks. These examples are presented as +static HTML pages. -In the top right corner of each example, you will find +In the top right corner of each example, you will find -* a button to download the example as a Jupyter Notebook :material-download: -* a button to open that example in Google Colab :google-colab: +- a button to download the example as a Jupyter Notebook :material-download: +- a button to open that example in Google Colab :google-colab: diff --git a/docs/index.md b/docs/index.md index ee24990..bc4c426 100644 --- a/docs/index.md +++ b/docs/index.md @@ -2,18 +2,27 @@ ## About -EasyDiffraction is scientific software for calculating neutron powder diffraction patterns based on a structural model and refining its parameters against experimental data. +EasyDiffraction is scientific software for calculating neutron powder +diffraction patterns based on a structural model and refining its parameters +against experimental data. -EasyDiffraction is distributed as both a cross-platform desktop application and a Python library. +EasyDiffraction is distributed as both a cross-platform desktop application and +a Python library. -Here you can find instructions for using the EasyDiffraction Python library. Documentation for the EasyDiffraction graphical user interface can be found [elsewhere](https://docs.easydiffraction.org/app). +Here you can find instructions for using the EasyDiffraction Python library. +Documentation for the EasyDiffraction graphical user interface can be found +[elsewhere](https://docs.easydiffraction.org/app). -EasyDiffraction is part of the [EasyScience framework](https://easyscience.software), briefly described in the next section. +EasyDiffraction is part of the +[EasyScience framework](https://easyscience.software), briefly described in the +next section. ## License -EasyDiffraction is licensed under the [BSD 3-Clause License](https://raw.githubusercontent.com/EasyScience/EasyDiffractionLib/master/LICENSE). +EasyDiffraction is licensed under the +[BSD 3-Clause License](https://raw.githubusercontent.com/EasyScience/EasyDiffractionLib/master/LICENSE). ## Latest release -The latest release of EasyDiffraction Python library is [{{ vars.release_version }}](https://github.com/EasyScience/EasyDiffractionLib/releases/latest). +The latest release of EasyDiffraction Python library is +[{{ vars.release_version }}](https://github.com/EasyScience/EasyDiffractionLib/releases/latest). diff --git a/docs/model.md b/docs/model.md index fad000b..06f035a 100644 --- a/docs/model.md +++ b/docs/model.md @@ -1,5 +1,9 @@ # Model -EasyDiffraction allow you to load the crystallographic model in CIF format. The model is then used to calculate the diffraction pattern, which is compared to the experimental data. The model parameters can be refined to improve the agreement between the calculated and measured data. +EasyDiffraction allow you to load the crystallographic model in CIF format. The +model is then used to calculate the diffraction pattern, which is compared to +the experimental data. The model parameters can be refined to improve the +agreement between the calculated and measured data. -An example of the CIF-based model has been given in the [Project structure](project-structure.md) section. +An example of the CIF-based model has been given in the +[Project structure](project-structure.md) section. diff --git a/docs/project-structure.md b/docs/project-structure.md index 9628253..f1d3bf3 100644 --- a/docs/project-structure.md +++ b/docs/project-structure.md @@ -2,7 +2,10 @@ ## CIF-based project files -Example project structure for the constant wavelength powder neutron diffraction measurement is given below: +Example project structure for the constant wavelength powder neutron diffraction +measurement is given below: + +
@@ -19,10 +22,14 @@ Example project structure for the constant wavelength powder neutron diffraction
 
+ + Here is the content of the project files: ### project.cif + +
 data_La0.5Ba0.5CoO3
@@ -39,8 +46,12 @@ hrpt.cif
 
+ + ### models / lbco.cif + +
 data_lbco
@@ -71,8 +82,12 @@ O  O    0   0.5 0.5   1    Biso 1.4041
 
+ + ### experiments / hrpt.cif + +
 data_hrpt
@@ -132,3 +147,5 @@ loop_
 164.85  109  41.2
 
+ +