From d9b626a4aa35b132f243e34dce17940ba9a95d44 Mon Sep 17 00:00:00 2001 From: Andrew Sazonov Date: Fri, 8 Aug 2025 12:03:50 +0200 Subject: [PATCH 01/43] Removes branch selection when downloading data --- tutorials/quick_single-fit_pd-neut-cwl_LBCO-HRPT.py | 1 - 1 file changed, 1 deletion(-) diff --git a/tutorials/quick_single-fit_pd-neut-cwl_LBCO-HRPT.py b/tutorials/quick_single-fit_pd-neut-cwl_LBCO-HRPT.py index 3fabf28f..3263f817 100644 --- a/tutorials/quick_single-fit_pd-neut-cwl_LBCO-HRPT.py +++ b/tutorials/quick_single-fit_pd-neut-cwl_LBCO-HRPT.py @@ -55,7 +55,6 @@ # %% ed.download_from_repository('hrpt_lbco.xye', - branch='develop', destination='data') # %% From 894ea67125e9724bb58e188170db0382221f1180 Mon Sep 17 00:00:00 2001 From: Andrew Sazonov Date: Fri, 8 Aug 2025 12:04:34 +0200 Subject: [PATCH 02/43] Generates the notebooks from scripts --- ...ced_joint-fit_pd-neut-xray-cwl_PbSO4.ipynb | 682 +++++++ ...sic_single-fit_pd-neut-cwl_LBCO-HRPT.ipynb | 1816 +++++++++++++++++ .../cryst-struct_pd-neut-cwl_CoSiO4-D20.ipynb | 661 ++++++ .../cryst-struct_pd-neut-cwl_HS-HRPT.ipynb | 856 ++++++++ .../cryst-struct_pd-neut-tof_Si-SEPD.ipynb | 782 +++++++ ...ruct_pd-neut-tof_multidata_NCAF-WISH.ipynb | 714 +++++++ ...d-neut-tof_multiphase-LBCO-Si_McStas.ipynb | 688 +++++++ ...ool-2025_analysis-powder-diffraction.ipynb | 258 ++- tutorials/pdf_pd-neut-cwl_Ni.ipynb | 238 +++ tutorials/pdf_pd-neut-tof_Si-NOMAD.ipynb | 240 +++ tutorials/pdf_pd-xray_NaCl.ipynb | 285 +++ ...ick_single-fit_pd-neut-cwl_LBCO-HRPT.ipynb | 303 +++ 12 files changed, 7393 insertions(+), 130 deletions(-) create mode 100644 tutorials/advanced_joint-fit_pd-neut-xray-cwl_PbSO4.ipynb create mode 100644 tutorials/basic_single-fit_pd-neut-cwl_LBCO-HRPT.ipynb create mode 100644 tutorials/cryst-struct_pd-neut-cwl_CoSiO4-D20.ipynb create mode 100644 tutorials/cryst-struct_pd-neut-cwl_HS-HRPT.ipynb create mode 100644 tutorials/cryst-struct_pd-neut-tof_Si-SEPD.ipynb create mode 100644 tutorials/cryst-struct_pd-neut-tof_multidata_NCAF-WISH.ipynb create mode 100644 tutorials/cryst-struct_pd-neut-tof_multiphase-LBCO-Si_McStas.ipynb create mode 100644 tutorials/pdf_pd-neut-cwl_Ni.ipynb create mode 100644 tutorials/pdf_pd-neut-tof_Si-NOMAD.ipynb create mode 100644 tutorials/pdf_pd-xray_NaCl.ipynb create mode 100644 tutorials/quick_single-fit_pd-neut-cwl_LBCO-HRPT.ipynb diff --git a/tutorials/advanced_joint-fit_pd-neut-xray-cwl_PbSO4.ipynb b/tutorials/advanced_joint-fit_pd-neut-xray-cwl_PbSO4.ipynb new file mode 100644 index 00000000..1f74bb59 --- /dev/null +++ b/tutorials/advanced_joint-fit_pd-neut-xray-cwl_PbSO4.ipynb @@ -0,0 +1,682 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "78ed0b5f", + "metadata": {}, + "source": [ + "# Structure Refinement: PbSO4, NPD + XRD\n", + "\n", + "This example demonstrates a more advanced use of the EasyDiffraction library\n", + "by explicitly creating and configuring sample models and experiments\n", + "before adding them to a project. It could be more suitable for users who are\n", + "interested in creating custom workflows. This tutorial provides minimal\n", + "explanation and is intended for users already familiar with EasyDiffraction.\n", + "\n", + "The tutorial covers a Rietveld refinement of PbSO4 crystal structure based\n", + "on the joint fit of both X-ray and neutron diffraction data." + ] + }, + { + "cell_type": "markdown", + "id": "42b9f8f9", + "metadata": {}, + "source": [ + "## Import Library" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3814dea1", + "metadata": {}, + "outputs": [], + "source": [ + "from easydiffraction import (\n", + " Project,\n", + " SampleModel,\n", + " Experiment,\n", + " download_from_repository\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "4671188b", + "metadata": {}, + "source": [ + "## Define Sample Model\n", + "\n", + "This section shows how to add sample models and modify their parameters.\n", + "\n", + "#### Create Sample Model" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a5cef4aa", + "metadata": {}, + "outputs": [], + "source": [ + "model = SampleModel('pbso4')" + ] + }, + { + "cell_type": "markdown", + "id": "df992064", + "metadata": {}, + "source": [ + "#### Set Space Group" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "37e7dd9f", + "metadata": {}, + "outputs": [], + "source": [ + "model.space_group.name_h_m = 'P n m a'" + ] + }, + { + "cell_type": "markdown", + "id": "a858fe3a", + "metadata": {}, + "source": [ + "#### Set Unit Cell" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a8aa980d", + "metadata": {}, + "outputs": [], + "source": [ + "model.cell.length_a = 8.47\n", + "model.cell.length_b = 5.39\n", + "model.cell.length_c = 6.95" + ] + }, + { + "cell_type": "markdown", + "id": "ee792a56", + "metadata": {}, + "source": [ + "#### Set Atom Sites" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3a4d4da6", + "metadata": { + "lines_to_next_cell": 2 + }, + "outputs": [], + "source": [ + "model.atom_sites.add('Pb', 'Pb', 0.1876, 0.25, 0.167, b_iso=1.37)\n", + "model.atom_sites.add('S', 'S', 0.0654, 0.25, 0.684, b_iso=0.3777)\n", + "model.atom_sites.add('O1', 'O', 0.9082, 0.25, 0.5954, b_iso=1.9764)\n", + "model.atom_sites.add('O2', 'O', 0.1935, 0.25, 0.5432, b_iso=1.4456)\n", + "model.atom_sites.add('O3', 'O', 0.0811, 0.0272, 0.8086, b_iso=1.2822)" + ] + }, + { + "cell_type": "markdown", + "id": "0f71a8f7", + "metadata": {}, + "source": [ + "## Define Experiments\n", + "\n", + "This section shows how to add experiments, configure their parameters, and\n", + "link the sample models defined in the previous step.\n", + "\n", + "### Experiment 1: npd\n", + "\n", + "#### Download Data" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c159be48", + "metadata": {}, + "outputs": [], + "source": [ + "download_from_repository('d1a_pbso4.dat',\n", + " destination='data')" + ] + }, + { + "cell_type": "markdown", + "id": "1b65adc1", + "metadata": {}, + "source": [ + "#### Create Experiment" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "fc5b68f3", + "metadata": {}, + "outputs": [], + "source": [ + "expt1 = Experiment('npd',\n", + " radiation_probe='neutron',\n", + " data_path='data/d1a_pbso4.dat')" + ] + }, + { + "cell_type": "markdown", + "id": "c70ad5f9", + "metadata": {}, + "source": [ + "#### Set Instrument" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4746ebf7", + "metadata": {}, + "outputs": [], + "source": [ + "expt1.instrument.setup_wavelength = 1.91\n", + "expt1.instrument.calib_twotheta_offset = -0.1406" + ] + }, + { + "cell_type": "markdown", + "id": "6ea195d7", + "metadata": {}, + "source": [ + "#### Set Peak Profile" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "cd078023", + "metadata": {}, + "outputs": [], + "source": [ + "expt1.peak.broad_gauss_u = 0.139\n", + "expt1.peak.broad_gauss_v = -0.412\n", + "expt1.peak.broad_gauss_w = 0.386\n", + "expt1.peak.broad_lorentz_x = 0\n", + "expt1.peak.broad_lorentz_y = 0.088" + ] + }, + { + "cell_type": "markdown", + "id": "9bd1e949", + "metadata": {}, + "source": [ + "#### Set Background" + ] + }, + { + "cell_type": "markdown", + "id": "7cefbac7", + "metadata": {}, + "source": [ + "Select the background type." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b25be058", + "metadata": {}, + "outputs": [], + "source": [ + "expt1.background_type = 'line-segment'" + ] + }, + { + "cell_type": "markdown", + "id": "546a959b", + "metadata": {}, + "source": [ + "Add background points." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0873b743", + "metadata": {}, + "outputs": [], + "source": [ + "for x, y in [\n", + " (11.0, 206.1624),\n", + " (15.0, 194.75),\n", + " (20.0, 194.505),\n", + " (30.0, 188.4375),\n", + " (50.0, 207.7633),\n", + " (70.0, 201.7002),\n", + " (120.0, 244.4525),\n", + " (153.0, 226.0595),\n", + "]:\n", + " expt1.background.add(x, y)" + ] + }, + { + "cell_type": "markdown", + "id": "08ac815d", + "metadata": {}, + "source": [ + "#### Set Linked Phases" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5a863455", + "metadata": {}, + "outputs": [], + "source": [ + "expt1.linked_phases.add('pbso4', scale=1.5)" + ] + }, + { + "cell_type": "markdown", + "id": "6538f2da", + "metadata": {}, + "source": [ + "### Experiment 2: xrd\n", + "\n", + "#### Download Data" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "00a9960f", + "metadata": {}, + "outputs": [], + "source": [ + "download_from_repository('lab_pbso4.dat',\n", + " destination='data')" + ] + }, + { + "cell_type": "markdown", + "id": "6618ac0b", + "metadata": {}, + "source": [ + "#### Create Experiment" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b849eb00", + "metadata": {}, + "outputs": [], + "source": [ + "expt2 = Experiment('xrd',\n", + " radiation_probe='xray',\n", + " data_path='data/lab_pbso4.dat')" + ] + }, + { + "cell_type": "markdown", + "id": "974f38d7", + "metadata": {}, + "source": [ + "#### Set Instrument" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "65fd695e", + "metadata": {}, + "outputs": [], + "source": [ + "expt2.instrument.setup_wavelength = 1.540567\n", + "expt2.instrument.calib_twotheta_offset = -0.05181" + ] + }, + { + "cell_type": "markdown", + "id": "42e4e93c", + "metadata": {}, + "source": [ + "#### Set Peak Profile" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "fac1c716", + "metadata": {}, + "outputs": [], + "source": [ + "expt2.peak.broad_gauss_u = 0.304138\n", + "expt2.peak.broad_gauss_v = -0.112622\n", + "expt2.peak.broad_gauss_w = 0.021272\n", + "expt2.peak.broad_lorentz_x = 0\n", + "expt2.peak.broad_lorentz_y = 0.057691" + ] + }, + { + "cell_type": "markdown", + "id": "77fc66ba", + "metadata": {}, + "source": [ + "#### Set Background" + ] + }, + { + "cell_type": "markdown", + "id": "c8561b7a", + "metadata": {}, + "source": [ + "Select background type." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1c5bdf68", + "metadata": {}, + "outputs": [], + "source": [ + "expt2.background_type = 'chebyshev polynomial'" + ] + }, + { + "cell_type": "markdown", + "id": "529d6496", + "metadata": {}, + "source": [ + "Add background points." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "cb5a3e89", + "metadata": {}, + "outputs": [], + "source": [ + "for x, y in [\n", + " (0, 119.195),\n", + " (1, 6.221),\n", + " (2, -45.725),\n", + " (3, 8.119),\n", + " (4, 54.552),\n", + " (5, -20.661),\n", + "]:\n", + " expt2.background.add(x, y)" + ] + }, + { + "cell_type": "markdown", + "id": "efe1d751", + "metadata": {}, + "source": [ + "#### Set Linked Phases" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e85d1da8", + "metadata": {}, + "outputs": [], + "source": [ + "expt2.linked_phases.add('pbso4', scale=0.001)" + ] + }, + { + "cell_type": "markdown", + "id": "09b5e23f", + "metadata": {}, + "source": [ + "## Define Project\n", + "\n", + "The project object is used to manage sample models, experiments, and analysis.\n", + "\n", + "#### Create Project" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1405b2b8", + "metadata": {}, + "outputs": [], + "source": [ + "project = Project()" + ] + }, + { + "cell_type": "markdown", + "id": "85c69b0f", + "metadata": {}, + "source": [ + "#### Add Sample Model" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "972fa5a6", + "metadata": {}, + "outputs": [], + "source": [ + "project.sample_models.add(model)" + ] + }, + { + "cell_type": "markdown", + "id": "1be21a62", + "metadata": {}, + "source": [ + "#### Add Experiments" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f4b72b71", + "metadata": {}, + "outputs": [], + "source": [ + "project.experiments.add(expt1)\n", + "project.experiments.add(expt2)" + ] + }, + { + "cell_type": "markdown", + "id": "7c1ce267", + "metadata": {}, + "source": [ + "## Perform Analysis\n", + "\n", + "This section outlines the analysis process, including how to configure calculation and fitting engines.\n", + "\n", + "#### Set Calculator" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "bc58ca8a", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.current_calculator = 'cryspy'" + ] + }, + { + "cell_type": "markdown", + "id": "85c5bb9a", + "metadata": {}, + "source": [ + "#### Set Fit Mode" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "721482d9", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.fit_mode = 'joint'" + ] + }, + { + "cell_type": "markdown", + "id": "9af39d68", + "metadata": {}, + "source": [ + "#### Set Minimizer" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ea48dc6f", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.current_minimizer = 'lmfit (leastsq)'" + ] + }, + { + "cell_type": "markdown", + "id": "98a75bed", + "metadata": {}, + "source": [ + "#### Set Fitting Parameters\n", + "\n", + "Set sample model parameters to be optimized." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9b457c68", + "metadata": {}, + "outputs": [], + "source": [ + "model.cell.length_a.free = True\n", + "model.cell.length_b.free = True\n", + "model.cell.length_c.free = True" + ] + }, + { + "cell_type": "markdown", + "id": "d7ceb9f2", + "metadata": {}, + "source": [ + "Set experiment parameters to be optimized." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e4c2cbab", + "metadata": {}, + "outputs": [], + "source": [ + "expt1.linked_phases['pbso4'].scale.free = True\n", + "\n", + "expt1.instrument.calib_twotheta_offset.free = True\n", + "\n", + "expt1.peak.broad_gauss_u.free = True\n", + "expt1.peak.broad_gauss_v.free = True\n", + "expt1.peak.broad_gauss_w.free = True\n", + "expt1.peak.broad_lorentz_y.free = True" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f88002d6", + "metadata": {}, + "outputs": [], + "source": [ + "expt2.linked_phases['pbso4'].scale.free = True\n", + "\n", + "expt2.instrument.calib_twotheta_offset.free = True\n", + "\n", + "expt2.peak.broad_gauss_u.free = True\n", + "expt2.peak.broad_gauss_v.free = True\n", + "expt2.peak.broad_gauss_w.free = True\n", + "expt2.peak.broad_lorentz_y.free = True\n", + "\n", + "for term in expt2.background:\n", + " term.coef.free = True" + ] + }, + { + "cell_type": "markdown", + "id": "5485e159", + "metadata": {}, + "source": [ + "#### Perform Fit" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7a161ca9", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.fit()" + ] + }, + { + "cell_type": "markdown", + "id": "9fe17000", + "metadata": {}, + "source": [ + "#### Plot Measured vs Calculated" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0dd6b36c", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='npd',\n", + " x_min=35.5, x_max=38.3,\n", + " show_residual=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "02634d76", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='xrd',\n", + " x_min=29.0, x_max=30.4,\n", + " show_residual=True)" + ] + } + ], + "metadata": { + "jupytext": { + "cell_metadata_filter": "-all", + "main_language": "python", + "notebook_metadata_filter": "-all" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/tutorials/basic_single-fit_pd-neut-cwl_LBCO-HRPT.ipynb b/tutorials/basic_single-fit_pd-neut-cwl_LBCO-HRPT.ipynb new file mode 100644 index 00000000..0f8b30c1 --- /dev/null +++ b/tutorials/basic_single-fit_pd-neut-cwl_LBCO-HRPT.ipynb @@ -0,0 +1,1816 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "d93ba63a", + "metadata": {}, + "source": [ + "# Structure Refinement: LBCO, HRPT\n", + "\n", + "This example demonstrates how to use the EasyDiffraction API in a\n", + "simplified, user-friendly manner that closely follows the GUI workflow for a\n", + "Rietveld refinement of La0.5Ba0.5CoO3 crystal structure using constant\n", + "wavelength neutron powder diffraction data from HRPT at PSI.\n", + "\n", + "It is intended for users with minimal programming experience who want to\n", + "learn how to perform standard crystal structure fitting using diffraction\n", + "data. This script covers creating a project, adding sample models and\n", + "experiments, performing analysis, and refining parameters.\n", + "\n", + "Only a single import of `easydiffraction` is required, and all operations are\n", + "performed through high-level components of the `project` object, such as\n", + "`project.sample_models`, `project.experiments`, and `project.analysis`.\n", + "The `project` object is the main container for all information." + ] + }, + { + "cell_type": "markdown", + "id": "68a01a2d", + "metadata": {}, + "source": [ + "## Import Library" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "eb7ec758", + "metadata": {}, + "outputs": [], + "source": [ + "import easydiffraction as ed" + ] + }, + { + "cell_type": "markdown", + "id": "0db07ed2", + "metadata": {}, + "source": [ + "## Step 1: Create a Project\n", + "\n", + "This section explains how to create a project and define its metadata." + ] + }, + { + "cell_type": "markdown", + "id": "64772c41", + "metadata": {}, + "source": [ + "#### Create Project" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a2fb4882", + "metadata": {}, + "outputs": [], + "source": [ + "project = ed.Project(name='lbco_hrpt')" + ] + }, + { + "cell_type": "markdown", + "id": "3cdcd32d", + "metadata": {}, + "source": [ + "#### Set Project Metadata" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "49443d7a", + "metadata": {}, + "outputs": [], + "source": [ + "project.info.title = 'La0.5Ba0.5CoO3 at HRPT@PSI'\n", + "project.info.description = \"\"\"This project demonstrates a standard \n", + "refinement of La0.5Ba0.5CoO3, which crystallizes in a perovskite-type \n", + "structure, using neutron powder diffraction data collected in constant \n", + "wavelength mode at the HRPT diffractometer (PSI).\"\"\"" + ] + }, + { + "cell_type": "markdown", + "id": "00ee3351", + "metadata": {}, + "source": [ + "#### Show Project Metadata as CIF" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4c439152", + "metadata": {}, + "outputs": [], + "source": [ + "project.info.show_as_cif()" + ] + }, + { + "cell_type": "markdown", + "id": "3facfc79", + "metadata": {}, + "source": [ + "#### Save Project\n", + "\n", + "When saving the project for the first time, you need to specify the\n", + "directory path. In the example below, the project is saved to a\n", + "temporary location defined by the system." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "eb583ffd", + "metadata": {}, + "outputs": [], + "source": [ + "project.save_as(dir_path='lbco_hrpt', temporary=True)" + ] + }, + { + "cell_type": "markdown", + "id": "62aeb09e", + "metadata": {}, + "source": [ + "#### Set Up Data Plotter" + ] + }, + { + "cell_type": "markdown", + "id": "fb6f8361", + "metadata": {}, + "source": [ + "Show supported plotting engines." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "28dfd508", + "metadata": {}, + "outputs": [], + "source": [ + "project.plotter.show_supported_engines()" + ] + }, + { + "cell_type": "markdown", + "id": "b001b19f", + "metadata": {}, + "source": [ + "Show current plotting configuration." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ad4ee397", + "metadata": {}, + "outputs": [], + "source": [ + "project.plotter.show_config()" + ] + }, + { + "cell_type": "markdown", + "id": "eee87efc", + "metadata": {}, + "source": [ + "Set plotting engine." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1c75dbec", + "metadata": {}, + "outputs": [], + "source": [ + "project.plotter.engine = 'plotly'" + ] + }, + { + "cell_type": "markdown", + "id": "3e91387b", + "metadata": {}, + "source": [ + "## Step 2: Define Sample Model\n", + "\n", + "This section shows how to add sample models and modify their parameters." + ] + }, + { + "cell_type": "markdown", + "id": "781e637d", + "metadata": {}, + "source": [ + "#### Add Sample Model" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3b3b9a95", + "metadata": {}, + "outputs": [], + "source": [ + "project.sample_models.add(name='lbco')" + ] + }, + { + "cell_type": "markdown", + "id": "bfe8a28c", + "metadata": {}, + "source": [ + "#### Show Defined Sample Models\n", + "\n", + "Show the names of the models added. These names are used to access the\n", + "model using the syntax: `project.sample_models['model_name']`. All model\n", + "parameters can be accessed via the `project` object." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0286b8c9", + "metadata": {}, + "outputs": [], + "source": [ + "project.sample_models.show_names()" + ] + }, + { + "cell_type": "markdown", + "id": "588aca25", + "metadata": {}, + "source": [ + "#### Set Space Group\n", + "\n", + "Modify the default space group parameters." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8593fcb9", + "metadata": {}, + "outputs": [], + "source": [ + "project.sample_models['lbco'].space_group.name_h_m = 'P m -3 m'\n", + "project.sample_models['lbco'].space_group.it_coordinate_system_code = '1'" + ] + }, + { + "cell_type": "markdown", + "id": "2a865150", + "metadata": {}, + "source": [ + "#### Set Unit Cell\n", + "\n", + "Modify the default unit cell parameters." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "735d7e3d", + "metadata": {}, + "outputs": [], + "source": [ + "project.sample_models['lbco'].cell.length_a = 3.88" + ] + }, + { + "cell_type": "markdown", + "id": "4f2e8ee3", + "metadata": {}, + "source": [ + "#### Set Atom Sites\n", + "\n", + "Add atom sites to the sample model." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f15054ba", + "metadata": {}, + "outputs": [], + "source": [ + "project.sample_models['lbco'].atom_sites.add(label='La',\n", + " type_symbol='La',\n", + " fract_x=0,\n", + " fract_y=0,\n", + " fract_z=0,\n", + " wyckoff_letter='a',\n", + " b_iso=0.5,\n", + " occupancy=0.5)\n", + "project.sample_models['lbco'].atom_sites.add(label='Ba',\n", + " type_symbol='Ba',\n", + " fract_x=0,\n", + " fract_y=0,\n", + " fract_z=0,\n", + " wyckoff_letter='a',\n", + " b_iso=0.5,\n", + " occupancy=0.5)\n", + "project.sample_models['lbco'].atom_sites.add(label='Co',\n", + " type_symbol='Co',\n", + " fract_x=0.5,\n", + " fract_y=0.5,\n", + " fract_z=0.5,\n", + " wyckoff_letter='b',\n", + " b_iso=0.5)\n", + "project.sample_models['lbco'].atom_sites.add(label='O',\n", + " type_symbol='O',\n", + " fract_x=0,\n", + " fract_y=0.5,\n", + " fract_z=0.5,\n", + " wyckoff_letter='c',\n", + " b_iso=0.5)" + ] + }, + { + "cell_type": "markdown", + "id": "f160c72b", + "metadata": {}, + "source": [ + "#### Apply Symmetry Constraints" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4b388ef4", + "metadata": {}, + "outputs": [], + "source": [ + "project.sample_models['lbco'].apply_symmetry_constraints()" + ] + }, + { + "cell_type": "markdown", + "id": "d84dc44f", + "metadata": {}, + "source": [ + "#### Show Sample Model as CIF" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2d8e44f6", + "metadata": {}, + "outputs": [], + "source": [ + "project.sample_models['lbco'].show_as_cif()" + ] + }, + { + "cell_type": "markdown", + "id": "60b26f78", + "metadata": {}, + "source": [ + "#### Show Sample Model Structure" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9d48e3ec", + "metadata": {}, + "outputs": [], + "source": [ + "project.sample_models['lbco'].show_structure()" + ] + }, + { + "cell_type": "markdown", + "id": "896e9aa9", + "metadata": {}, + "source": [ + "#### Save Project State\n", + "\n", + "Save the project state after adding the sample model. This ensures\n", + "that all changes are stored and can be accessed later. The project\n", + "state is saved in the directory specified during project creation." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5ceea502", + "metadata": {}, + "outputs": [], + "source": [ + "project.save()" + ] + }, + { + "cell_type": "markdown", + "id": "ddb4958d", + "metadata": {}, + "source": [ + "## Step 3: Define Experiment\n", + "\n", + "This section shows how to add experiments, configure their parameters, and\n", + "link the sample models defined in the previous step." + ] + }, + { + "cell_type": "markdown", + "id": "1c9b9d63", + "metadata": {}, + "source": [ + "#### Download Measured Data\n", + "\n", + "Download the data file from the EasyDiffraction repository on GitHub." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8be002d1", + "metadata": {}, + "outputs": [], + "source": [ + "ed.download_from_repository('hrpt_lbco.xye',\n", + " destination='data')" + ] + }, + { + "cell_type": "markdown", + "id": "4bd1c50a", + "metadata": {}, + "source": [ + "#### Add Diffraction Experiment" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a99a9d19", + "metadata": {}, + "outputs": [], + "source": [ + "project.experiments.add(name='hrpt',\n", + " sample_form='powder',\n", + " beam_mode='constant wavelength',\n", + " radiation_probe='neutron',\n", + " data_path='data/hrpt_lbco.xye')" + ] + }, + { + "cell_type": "markdown", + "id": "5a0adca2", + "metadata": {}, + "source": [ + "#### Show Defined Experiments" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "87ddf3a8", + "metadata": {}, + "outputs": [], + "source": [ + "project.experiments.show_names()" + ] + }, + { + "cell_type": "markdown", + "id": "70df4231", + "metadata": {}, + "source": [ + "#### Show Measured Data" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2e96072f", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas(expt_name='hrpt')" + ] + }, + { + "cell_type": "markdown", + "id": "c614ccd5", + "metadata": {}, + "source": [ + "#### Set Instrument\n", + "\n", + "Modify the default instrument parameters." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7e33d36f", + "metadata": {}, + "outputs": [], + "source": [ + "project.experiments['hrpt'].instrument.setup_wavelength = 1.494\n", + "project.experiments['hrpt'].instrument.calib_twotheta_offset = 0.6" + ] + }, + { + "cell_type": "markdown", + "id": "59c1cb38", + "metadata": {}, + "source": [ + "#### Set Peak Profile\n", + "\n", + "Show supported peak profile types." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9860d120", + "metadata": {}, + "outputs": [], + "source": [ + "project.experiments['hrpt'].show_supported_peak_profile_types()" + ] + }, + { + "cell_type": "markdown", + "id": "14ca3456", + "metadata": {}, + "source": [ + "Show the current peak profile type." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e9188869", + "metadata": {}, + "outputs": [], + "source": [ + "project.experiments['hrpt'].show_current_peak_profile_type()" + ] + }, + { + "cell_type": "markdown", + "id": "9fc119e8", + "metadata": {}, + "source": [ + "Select the desired peak profile type." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6fa8c2fa", + "metadata": {}, + "outputs": [], + "source": [ + "project.experiments['hrpt'].peak_profile_type = 'pseudo-voigt'" + ] + }, + { + "cell_type": "markdown", + "id": "f3aaff0c", + "metadata": {}, + "source": [ + "Modify default peak profile parameters." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ae86545f", + "metadata": {}, + "outputs": [], + "source": [ + "project.experiments['hrpt'].peak.broad_gauss_u = 0.1\n", + "project.experiments['hrpt'].peak.broad_gauss_v = -0.1\n", + "project.experiments['hrpt'].peak.broad_gauss_w = 0.1\n", + "project.experiments['hrpt'].peak.broad_lorentz_x = 0\n", + "project.experiments['hrpt'].peak.broad_lorentz_y = 0.1" + ] + }, + { + "cell_type": "markdown", + "id": "e0a12fd6", + "metadata": {}, + "source": [ + "#### Set Background" + ] + }, + { + "cell_type": "markdown", + "id": "3505cc22", + "metadata": {}, + "source": [ + "Show supported background types." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "eda6eeaf", + "metadata": {}, + "outputs": [], + "source": [ + "project.experiments['hrpt'].show_supported_background_types()" + ] + }, + { + "cell_type": "markdown", + "id": "6679b4b9", + "metadata": {}, + "source": [ + "Show current background type." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e56ee57e", + "metadata": {}, + "outputs": [], + "source": [ + "project.experiments['hrpt'].show_current_background_type()" + ] + }, + { + "cell_type": "markdown", + "id": "3c71c0bb", + "metadata": {}, + "source": [ + "Select the desired background type." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5c4174e6", + "metadata": {}, + "outputs": [], + "source": [ + "project.experiments['hrpt'].background_type = 'line-segment'" + ] + }, + { + "cell_type": "markdown", + "id": "e0a15671", + "metadata": {}, + "source": [ + "Add background points." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "221611fc", + "metadata": {}, + "outputs": [], + "source": [ + "project.experiments['hrpt'].background.add(x=10, y=170)\n", + "project.experiments['hrpt'].background.add(x=30, y=170)\n", + "project.experiments['hrpt'].background.add(x=50, y=170)\n", + "project.experiments['hrpt'].background.add(x=110, y=170)\n", + "project.experiments['hrpt'].background.add(x=165, y=170)" + ] + }, + { + "cell_type": "markdown", + "id": "876c69c6", + "metadata": {}, + "source": [ + "Show current background points." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ad419c48", + "metadata": {}, + "outputs": [], + "source": [ + "project.experiments['hrpt'].background.show()" + ] + }, + { + "cell_type": "markdown", + "id": "1f40c255", + "metadata": {}, + "source": [ + "#### Set Linked Phases\n", + "\n", + "Link the sample model defined in the previous step to the experiment." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "53c26bef", + "metadata": {}, + "outputs": [], + "source": [ + "project.experiments['hrpt'].linked_phases.add(id='lbco', scale=10.0)" + ] + }, + { + "cell_type": "markdown", + "id": "13aa2b71", + "metadata": {}, + "source": [ + "#### Show Experiment as CIF" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ab18c493", + "metadata": {}, + "outputs": [], + "source": [ + "project.experiments['hrpt'].show_as_cif()" + ] + }, + { + "cell_type": "markdown", + "id": "9e2bce6c", + "metadata": {}, + "source": [ + "#### Save Project State" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "11fbb4ba", + "metadata": {}, + "outputs": [], + "source": [ + "project.save()" + ] + }, + { + "cell_type": "markdown", + "id": "3b483e61", + "metadata": {}, + "source": [ + "## Step 4: Perform Analysis\n", + "\n", + "This section explains the analysis process, including how to set up\n", + "calculation and fitting engines.\n", + "\n", + "#### Set Calculator\n", + "\n", + "Show supported calculation engines." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4d5d7858", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.show_supported_calculators()" + ] + }, + { + "cell_type": "markdown", + "id": "f70f89cf", + "metadata": {}, + "source": [ + "Show current calculation engine." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "079127ac", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.show_current_calculator()" + ] + }, + { + "cell_type": "markdown", + "id": "56696a86", + "metadata": {}, + "source": [ + "Select the desired calculation engine." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ac89daae", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.current_calculator = 'cryspy'" + ] + }, + { + "cell_type": "markdown", + "id": "4cdcf829", + "metadata": {}, + "source": [ + "#### Show Calculated Data" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a373b202", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_calc(expt_name='hrpt')" + ] + }, + { + "cell_type": "markdown", + "id": "73da2df0", + "metadata": {}, + "source": [ + "#### Plot Measured vs Calculated" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1a483207", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='hrpt',\n", + " show_residual=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7f7fc2d1", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='hrpt',\n", + " x_min=38, x_max=41,\n", + " show_residual=True)" + ] + }, + { + "cell_type": "markdown", + "id": "afad5972", + "metadata": {}, + "source": [ + "#### Show Parameters\n", + "\n", + "Show all parameters of the project." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "66e85223", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.show_all_params()" + ] + }, + { + "cell_type": "markdown", + "id": "cdf45d90", + "metadata": {}, + "source": [ + "Show all fittable parameters." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "aaf85462", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.show_fittable_params()" + ] + }, + { + "cell_type": "markdown", + "id": "62fc95bb", + "metadata": {}, + "source": [ + "Show only free parameters." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8a5208ba", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.show_free_params()" + ] + }, + { + "cell_type": "markdown", + "id": "f9b33179", + "metadata": {}, + "source": [ + "Show how to access parameters in the code." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "56dce385", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.how_to_access_parameters()" + ] + }, + { + "cell_type": "markdown", + "id": "f84670e7", + "metadata": {}, + "source": [ + "#### Set Fit Mode\n", + "\n", + "Show supported fit modes." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b8c86537", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.show_available_fit_modes()" + ] + }, + { + "cell_type": "markdown", + "id": "495ab0f7", + "metadata": {}, + "source": [ + "Show current fit mode." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4dbce6e6", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.show_current_fit_mode()" + ] + }, + { + "cell_type": "markdown", + "id": "36dcd524", + "metadata": {}, + "source": [ + "Select desired fit mode." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1b129153", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.fit_mode = 'single'" + ] + }, + { + "cell_type": "markdown", + "id": "15ed592c", + "metadata": {}, + "source": [ + "#### Set Minimizer\n", + "\n", + "Show supported fitting engines." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b93c069f", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.show_available_minimizers()" + ] + }, + { + "cell_type": "markdown", + "id": "9e9cac23", + "metadata": {}, + "source": [ + "Show current fitting engine." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7be3745e", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.show_current_minimizer()" + ] + }, + { + "cell_type": "markdown", + "id": "de5ba021", + "metadata": {}, + "source": [ + "Select desired fitting engine." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "14812c23", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.current_minimizer = 'lmfit (leastsq)'" + ] + }, + { + "cell_type": "markdown", + "id": "64cacdad", + "metadata": {}, + "source": [ + "### Perform Fit 1/5\n", + "\n", + "Set sample model parameters to be refined." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6daba1b6", + "metadata": {}, + "outputs": [], + "source": [ + "project.sample_models['lbco'].cell.length_a.free = True" + ] + }, + { + "cell_type": "markdown", + "id": "7183d718", + "metadata": {}, + "source": [ + "Set experiment parameters to be refined." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9fa3433d", + "metadata": {}, + "outputs": [], + "source": [ + "project.experiments['hrpt'].linked_phases['lbco'].scale.free = True\n", + "project.experiments['hrpt'].instrument.calib_twotheta_offset.free = True\n", + "project.experiments['hrpt'].background['10'].y.free = True\n", + "project.experiments['hrpt'].background['30'].y.free = True\n", + "project.experiments['hrpt'].background['50'].y.free = True\n", + "project.experiments['hrpt'].background['110'].y.free = True\n", + "project.experiments['hrpt'].background['165'].y.free = True" + ] + }, + { + "cell_type": "markdown", + "id": "d85c4e3f", + "metadata": {}, + "source": [ + "Show free parameters after selection." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "994f6f3b", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.show_free_params()" + ] + }, + { + "cell_type": "markdown", + "id": "6fb91c5a", + "metadata": {}, + "source": [ + "#### Run Fitting" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9237940e", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.fit()" + ] + }, + { + "cell_type": "markdown", + "id": "2ac09f82", + "metadata": {}, + "source": [ + "#### Plot Measured vs Calculated" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9e8f7e77", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='hrpt',\n", + " show_residual=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ca3957d6", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='hrpt',\n", + " x_min=38, x_max=41,\n", + " show_residual=True)" + ] + }, + { + "cell_type": "markdown", + "id": "d7b39c6c", + "metadata": {}, + "source": [ + "#### Save Project State" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "35e691a2", + "metadata": {}, + "outputs": [], + "source": [ + "project.save_as(dir_path='lbco_hrpt', temporary=True)" + ] + }, + { + "cell_type": "markdown", + "id": "3d0b7894", + "metadata": {}, + "source": [ + "### Perform Fit 2/5\n", + "\n", + "Set more parameters to be refined." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7e6b9cf8", + "metadata": {}, + "outputs": [], + "source": [ + "project.experiments['hrpt'].peak.broad_gauss_u.free = True\n", + "project.experiments['hrpt'].peak.broad_gauss_v.free = True\n", + "project.experiments['hrpt'].peak.broad_gauss_w.free = True\n", + "project.experiments['hrpt'].peak.broad_lorentz_y.free = True" + ] + }, + { + "cell_type": "markdown", + "id": "2e64f929", + "metadata": {}, + "source": [ + "Show free parameters after selection." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5bd71057", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.show_free_params()" + ] + }, + { + "cell_type": "markdown", + "id": "b6aa93b9", + "metadata": {}, + "source": [ + "#### Run Fitting" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5a426a0f", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.fit()" + ] + }, + { + "cell_type": "markdown", + "id": "2d2a965f", + "metadata": {}, + "source": [ + "#### Plot Measured vs Calculated" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ac05704e", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='hrpt',\n", + " show_residual=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5ee36fe3", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='hrpt',\n", + " x_min=38, x_max=41,\n", + " show_residual=True)" + ] + }, + { + "cell_type": "markdown", + "id": "f634e06c", + "metadata": {}, + "source": [ + "#### Save Project State" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b6ca8245", + "metadata": {}, + "outputs": [], + "source": [ + "project.save_as(dir_path='lbco_hrpt', temporary=True)" + ] + }, + { + "cell_type": "markdown", + "id": "9bfbe6cc", + "metadata": {}, + "source": [ + "### Perform Fit 3/5\n", + "\n", + "Set more parameters to be refined." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c34f6493", + "metadata": {}, + "outputs": [], + "source": [ + "project.sample_models['lbco'].atom_sites['La'].b_iso.free = True\n", + "project.sample_models['lbco'].atom_sites['Ba'].b_iso.free = True\n", + "project.sample_models['lbco'].atom_sites['Co'].b_iso.free = True\n", + "project.sample_models['lbco'].atom_sites['O'].b_iso.free = True" + ] + }, + { + "cell_type": "markdown", + "id": "530b4854", + "metadata": {}, + "source": [ + "Show free parameters after selection." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "06f033c1", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.show_free_params()" + ] + }, + { + "cell_type": "markdown", + "id": "9f2ed586", + "metadata": {}, + "source": [ + "#### Run Fitting" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c9f24374", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.fit()" + ] + }, + { + "cell_type": "markdown", + "id": "2cd3a3f5", + "metadata": {}, + "source": [ + "#### Plot Measured vs Calculated" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a3c8ab5c", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='hrpt',\n", + " show_residual=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "229dcd40", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='hrpt',\n", + " x_min=38, x_max=41,\n", + " show_residual=True)" + ] + }, + { + "cell_type": "markdown", + "id": "3b6ea990", + "metadata": {}, + "source": [ + "#### Save Project State" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "28911a4f", + "metadata": {}, + "outputs": [], + "source": [ + "project.save_as(dir_path='lbco_hrpt', temporary=True)" + ] + }, + { + "cell_type": "markdown", + "id": "25e47125", + "metadata": {}, + "source": [ + "### Perform Fit 4/5\n", + "\n", + "#### Set Constraints\n", + "\n", + "Set aliases for parameters." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "32554c35", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.aliases.add(\n", + " label='biso_La',\n", + " param_uid=project.sample_models['lbco'].atom_sites['La'].b_iso.uid\n", + ")\n", + "project.analysis.aliases.add(\n", + " label='biso_Ba',\n", + " param_uid=project.sample_models['lbco'].atom_sites['Ba'].b_iso.uid\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "ee564dc0", + "metadata": {}, + "source": [ + "Set constraints." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "cdeae972", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.constraints.add(\n", + " lhs_alias='biso_Ba',\n", + " rhs_expr='biso_La'\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "f5272e30", + "metadata": {}, + "source": [ + "Show defined constraints." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ccc33f51", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.show_constraints()" + ] + }, + { + "cell_type": "markdown", + "id": "d81d38a7", + "metadata": {}, + "source": [ + "Show free parameters before applying constraints." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "790ea5b2", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.show_free_params()" + ] + }, + { + "cell_type": "markdown", + "id": "14850ae0", + "metadata": {}, + "source": [ + "Apply constraints." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ed61071e", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.apply_constraints()" + ] + }, + { + "cell_type": "markdown", + "id": "1f7f1c2d", + "metadata": {}, + "source": [ + "Show free parameters after applying constraints." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2e5bb120", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.show_free_params()" + ] + }, + { + "cell_type": "markdown", + "id": "54fea34d", + "metadata": {}, + "source": [ + "#### Run Fitting" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "eb8dd8b3", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.fit()" + ] + }, + { + "cell_type": "markdown", + "id": "18b960d4", + "metadata": {}, + "source": [ + "#### Plot Measured vs Calculated" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8fdeed46", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='hrpt',\n", + " show_residual=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4bdf1e91", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='hrpt',\n", + " x_min=38, x_max=41,\n", + " show_residual=True)" + ] + }, + { + "cell_type": "markdown", + "id": "aa2bc6b8", + "metadata": {}, + "source": [ + "#### Save Project State" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "99c22d2c", + "metadata": {}, + "outputs": [], + "source": [ + "project.save_as(dir_path='lbco_hrpt', temporary=True)" + ] + }, + { + "cell_type": "markdown", + "id": "c568f0ee", + "metadata": {}, + "source": [ + "### Perform Fit 5/5\n", + "\n", + "#### Set Constraints\n", + "\n", + "Set more aliases for parameters." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "673ccdfe", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.aliases.add(\n", + " label='occ_La',\n", + " param_uid=project.sample_models['lbco'].atom_sites['La'].occupancy.uid\n", + ")\n", + "project.analysis.aliases.add(\n", + " label='occ_Ba',\n", + " param_uid=project.sample_models['lbco'].atom_sites['Ba'].occupancy.uid\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "ad8f4330", + "metadata": {}, + "source": [ + "Set more constraints." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d012fa44", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.constraints.add(\n", + " lhs_alias='occ_Ba',\n", + " rhs_expr='1 - occ_La'\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "32107d28", + "metadata": {}, + "source": [ + "Show defined constraints." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1ce256aa", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.show_constraints()" + ] + }, + { + "cell_type": "markdown", + "id": "d1016c11", + "metadata": {}, + "source": [ + "Apply constraints." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8c745364", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.apply_constraints()" + ] + }, + { + "cell_type": "markdown", + "id": "8287cd27", + "metadata": {}, + "source": [ + "Set sample model parameters to be refined." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1f0c82a2", + "metadata": {}, + "outputs": [], + "source": [ + "project.sample_models['lbco'].atom_sites['La'].occupancy.free = True" + ] + }, + { + "cell_type": "markdown", + "id": "5612fb49", + "metadata": {}, + "source": [ + "Show free parameters after selection." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c795f9e3", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.show_free_params()" + ] + }, + { + "cell_type": "markdown", + "id": "1f842b72", + "metadata": {}, + "source": [ + "#### Run Fitting" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9a69bac8", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.fit()" + ] + }, + { + "cell_type": "markdown", + "id": "451fdd05", + "metadata": {}, + "source": [ + "#### Plot Measured vs Calculated" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "fdc5051c", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='hrpt',\n", + " show_residual=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b6b89650", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='hrpt',\n", + " x_min=38, x_max=41,\n", + " show_residual=True)" + ] + }, + { + "cell_type": "markdown", + "id": "5c07d115", + "metadata": {}, + "source": [ + "#### Save Project State" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "88c429d6", + "metadata": {}, + "outputs": [], + "source": [ + "project.save_as(dir_path='lbco_hrpt', temporary=True)" + ] + }, + { + "cell_type": "markdown", + "id": "3d75f212", + "metadata": {}, + "source": [ + "## Step 5: Summary\n", + "\n", + "This final section shows how to review the results of the analysis." + ] + }, + { + "cell_type": "markdown", + "id": "6d3765e3", + "metadata": {}, + "source": [ + "#### Show Project Summary" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "bceb39fe", + "metadata": {}, + "outputs": [], + "source": [ + "project.summary.show_report()" + ] + } + ], + "metadata": { + "jupytext": { + "cell_metadata_filter": "-all", + "main_language": "python", + "notebook_metadata_filter": "-all" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/tutorials/cryst-struct_pd-neut-cwl_CoSiO4-D20.ipynb b/tutorials/cryst-struct_pd-neut-cwl_CoSiO4-D20.ipynb new file mode 100644 index 00000000..2b8702fa --- /dev/null +++ b/tutorials/cryst-struct_pd-neut-cwl_CoSiO4-D20.ipynb @@ -0,0 +1,661 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "49ad1511", + "metadata": {}, + "source": [ + "# Structure Refinement: Co2SiO4, D20\n", + "\n", + "This example demonstrates a Rietveld refinement of Co2SiO4 crystal structure\n", + "using constant wavelength neutron powder diffraction data from D20 at ILL." + ] + }, + { + "cell_type": "markdown", + "id": "359e8b86", + "metadata": {}, + "source": [ + "## Import Library" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2596c347", + "metadata": {}, + "outputs": [], + "source": [ + "from easydiffraction import (\n", + " Project,\n", + " SampleModel,\n", + " Experiment,\n", + " download_from_repository\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "26363052", + "metadata": {}, + "source": [ + "## Define Sample Model\n", + "\n", + "This section shows how to add sample models and modify their parameters.\n", + "\n", + "#### Create Sample Model" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "bb4678f3", + "metadata": {}, + "outputs": [], + "source": [ + "model = SampleModel('cosio')" + ] + }, + { + "cell_type": "markdown", + "id": "a723609c", + "metadata": {}, + "source": [ + "#### Set Space Group" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b63e59b2", + "metadata": {}, + "outputs": [], + "source": [ + "model.space_group.name_h_m = 'P n m a'\n", + "model.space_group.it_coordinate_system_code = 'abc'" + ] + }, + { + "cell_type": "markdown", + "id": "1a8ce362", + "metadata": {}, + "source": [ + "#### Set Unit Cell" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f680d4d1", + "metadata": {}, + "outputs": [], + "source": [ + "model.cell.length_a = 10.3\n", + "model.cell.length_b = 6.0\n", + "model.cell.length_c = 4.8" + ] + }, + { + "cell_type": "markdown", + "id": "89433f9e", + "metadata": {}, + "source": [ + "#### Set Atom Sites" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6acb6f35", + "metadata": {}, + "outputs": [], + "source": [ + "model.atom_sites.add('Co1', 'Co', 0, 0, 0, wyckoff_letter='a', b_iso=0.5)\n", + "model.atom_sites.add('Co2', 'Co', 0.279, 0.25, 0.985, wyckoff_letter='c', b_iso=0.5)\n", + "model.atom_sites.add('Si', 'Si', 0.094, 0.25, 0.429, wyckoff_letter='c', b_iso=0.5)\n", + "model.atom_sites.add('O1', 'O', 0.091, 0.25, 0.771, wyckoff_letter='c', b_iso=0.5)\n", + "model.atom_sites.add('O2', 'O', 0.448, 0.25, 0.217, wyckoff_letter='c', b_iso=0.5)\n", + "model.atom_sites.add('O3', 'O', 0.164, 0.032, 0.28, wyckoff_letter='d', b_iso=0.5)" + ] + }, + { + "cell_type": "markdown", + "id": "a9bdaa12", + "metadata": {}, + "source": [ + "#### Symmetry Constraints\n", + "\n", + "Show CIF output before applying symmetry constraints." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1ddd2fce", + "metadata": {}, + "outputs": [], + "source": [ + "model.show_as_cif()" + ] + }, + { + "cell_type": "markdown", + "id": "9a3292c5", + "metadata": {}, + "source": [ + "Apply symmetry constraints." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "99ed58d1", + "metadata": {}, + "outputs": [], + "source": [ + "model.apply_symmetry_constraints()" + ] + }, + { + "cell_type": "markdown", + "id": "c5a1ec38", + "metadata": {}, + "source": [ + "Show CIF output after applying symmetry constraints." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b481536d", + "metadata": {}, + "outputs": [], + "source": [ + "model.show_as_cif()" + ] + }, + { + "cell_type": "markdown", + "id": "603634d8", + "metadata": {}, + "source": [ + "## Define Experiment\n", + "\n", + "This section shows how to add experiments, configure their parameters, and\n", + "link the sample models defined in the previous step.\n", + "\n", + "#### Download Measured Data" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8b763fa5", + "metadata": {}, + "outputs": [], + "source": [ + "download_from_repository('co2sio4_d20.xye', destination='data')" + ] + }, + { + "cell_type": "markdown", + "id": "c81ca88b", + "metadata": {}, + "source": [ + "#### Create Experiment" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "407e5f06", + "metadata": {}, + "outputs": [], + "source": [ + "expt = Experiment('d20', data_path='data/co2sio4_d20.xye')" + ] + }, + { + "cell_type": "markdown", + "id": "36efaa76", + "metadata": {}, + "source": [ + "#### Set Instrument" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a5b266c4", + "metadata": {}, + "outputs": [], + "source": [ + "expt.instrument.setup_wavelength = 1.87\n", + "expt.instrument.calib_twotheta_offset = 0.1" + ] + }, + { + "cell_type": "markdown", + "id": "25ceb5f6", + "metadata": {}, + "source": [ + "#### Set Peak Profile" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "adb7b71d", + "metadata": {}, + "outputs": [], + "source": [ + "expt.peak.broad_gauss_u = 0.3\n", + "expt.peak.broad_gauss_v = -0.5\n", + "expt.peak.broad_gauss_w = 0.4" + ] + }, + { + "cell_type": "markdown", + "id": "371f8f76", + "metadata": {}, + "source": [ + "#### Set Background" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e08b153d", + "metadata": {}, + "outputs": [], + "source": [ + "expt.background.add(x=8, y=500)\n", + "expt.background.add(x=9, y=500)\n", + "expt.background.add(x=10, y=500)\n", + "expt.background.add(x=11, y=500)\n", + "expt.background.add(x=12, y=500)\n", + "expt.background.add(x=15, y=500)\n", + "expt.background.add(x=25, y=500)\n", + "expt.background.add(x=30, y=500)\n", + "expt.background.add(x=50, y=500)\n", + "expt.background.add(x=70, y=500)\n", + "expt.background.add(x=90, y=500)\n", + "expt.background.add(x=110, y=500)\n", + "expt.background.add(x=130, y=500)\n", + "expt.background.add(x=150, y=500)" + ] + }, + { + "cell_type": "markdown", + "id": "c42c6f4a", + "metadata": {}, + "source": [ + "#### Set Linked Phases" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2593a87d", + "metadata": {}, + "outputs": [], + "source": [ + "expt.linked_phases.add('cosio', scale=1.0)" + ] + }, + { + "cell_type": "markdown", + "id": "1b7daaa7", + "metadata": {}, + "source": [ + "## Define Project\n", + "\n", + "The project object is used to manage the sample model, experiment, and\n", + "analysis.\n", + "\n", + "#### Create Project" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ed5f7c36", + "metadata": {}, + "outputs": [], + "source": [ + "project = Project()" + ] + }, + { + "cell_type": "markdown", + "id": "3472f81a", + "metadata": {}, + "source": [ + "#### Set Plotting Engine" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3b8f5d55", + "metadata": {}, + "outputs": [], + "source": [ + "project.plotter.engine = 'plotly'" + ] + }, + { + "cell_type": "markdown", + "id": "80104f0c", + "metadata": {}, + "source": [ + "#### Add Sample Model" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e8aa7ff7", + "metadata": {}, + "outputs": [], + "source": [ + "project.sample_models.add(model)" + ] + }, + { + "cell_type": "markdown", + "id": "b83cc8d8", + "metadata": {}, + "source": [ + "#### Add Experiment" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "045a9cd4", + "metadata": {}, + "outputs": [], + "source": [ + "project.experiments.add(expt)" + ] + }, + { + "cell_type": "markdown", + "id": "b400609a", + "metadata": {}, + "source": [ + "## Perform Analysis\n", + "\n", + "This section shows the analysis process, including how to set up\n", + "calculation and fitting engines.\n", + "\n", + "#### Set Calculator" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9ef44749", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.current_calculator = 'cryspy'" + ] + }, + { + "cell_type": "markdown", + "id": "b649f407", + "metadata": {}, + "source": [ + "#### Set Minimizer" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5853ce9a", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.current_minimizer = 'lmfit (leastsq)'" + ] + }, + { + "cell_type": "markdown", + "id": "a35ad6dd", + "metadata": {}, + "source": [ + "#### Plot Measured vs Calculated" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3161ca58", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='d20', show_residual=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9bd9d1f9", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='d20', x_min=41, x_max=54, show_residual=True)" + ] + }, + { + "cell_type": "markdown", + "id": "29fc6d78", + "metadata": {}, + "source": [ + "#### Set Free Parameters" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "844c4683", + "metadata": {}, + "outputs": [], + "source": [ + "model.cell.length_a.free = True\n", + "model.cell.length_b.free = True\n", + "model.cell.length_c.free = True\n", + "\n", + "model.atom_sites['Co2'].fract_x.free = True\n", + "model.atom_sites['Co2'].fract_z.free = True\n", + "model.atom_sites['Si'].fract_x.free = True\n", + "model.atom_sites['Si'].fract_z.free = True\n", + "model.atom_sites['O1'].fract_x.free = True\n", + "model.atom_sites['O1'].fract_z.free = True\n", + "model.atom_sites['O2'].fract_x.free = True\n", + "model.atom_sites['O2'].fract_z.free = True\n", + "model.atom_sites['O3'].fract_x.free = True\n", + "model.atom_sites['O3'].fract_y.free = True\n", + "model.atom_sites['O3'].fract_z.free = True\n", + "\n", + "model.atom_sites['Co1'].b_iso.free = True\n", + "model.atom_sites['Co2'].b_iso.free = True\n", + "model.atom_sites['Si'].b_iso.free = True\n", + "model.atom_sites['O1'].b_iso.free = True\n", + "model.atom_sites['O2'].b_iso.free = True\n", + "model.atom_sites['O3'].b_iso.free = True" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "fc037da7", + "metadata": {}, + "outputs": [], + "source": [ + "expt.linked_phases['cosio'].scale.free = True\n", + "\n", + "expt.instrument.calib_twotheta_offset.free = True\n", + "\n", + "expt.peak.broad_gauss_u.free = True\n", + "expt.peak.broad_gauss_v.free = True\n", + "expt.peak.broad_gauss_w.free = True\n", + "expt.peak.broad_lorentz_y.free = True\n", + "\n", + "for point in expt.background:\n", + " point.y.free = True" + ] + }, + { + "cell_type": "markdown", + "id": "afa88948", + "metadata": {}, + "source": [ + "#### Set Constraints\n", + "\n", + "Set aliases for parameters." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7d0cb712", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.aliases.add(\n", + " label='biso_Co1',\n", + " param_uid=project.sample_models['cosio'].atom_sites['Co1'].b_iso.uid\n", + ")\n", + "project.analysis.aliases.add(\n", + " label='biso_Co2',\n", + " param_uid=project.sample_models['cosio'].atom_sites['Co2'].b_iso.uid\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "a7c31aa1", + "metadata": {}, + "source": [ + "Set constraints." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "806baedc", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.constraints.add(\n", + " lhs_alias='biso_Co2',\n", + " rhs_expr='biso_Co1'\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "3b26e3c5", + "metadata": {}, + "source": [ + "Apply constraints." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9bd24b01", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.apply_constraints()" + ] + }, + { + "cell_type": "markdown", + "id": "f2da849a", + "metadata": {}, + "source": [ + "#### Run Fitting" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "22748373", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.fit()" + ] + }, + { + "cell_type": "markdown", + "id": "9b07bceb", + "metadata": {}, + "source": [ + "#### Plot Measured vs Calculated" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "57f27ecf", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='d20', show_residual=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3af9f819", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='d20', x_min=41, x_max=54, show_residual=True)" + ] + }, + { + "cell_type": "markdown", + "id": "945fe884", + "metadata": {}, + "source": [ + "## Summary\n", + "\n", + "This final section shows how to review the results of the analysis." + ] + }, + { + "cell_type": "markdown", + "id": "9b37867b", + "metadata": {}, + "source": [ + "#### Show Project Summary" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3bd9a457", + "metadata": {}, + "outputs": [], + "source": [ + "project.summary.show_report()" + ] + } + ], + "metadata": { + "jupytext": { + "cell_metadata_filter": "-all", + "main_language": "python", + "notebook_metadata_filter": "-all" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/tutorials/cryst-struct_pd-neut-cwl_HS-HRPT.ipynb b/tutorials/cryst-struct_pd-neut-cwl_HS-HRPT.ipynb new file mode 100644 index 00000000..b21520e2 --- /dev/null +++ b/tutorials/cryst-struct_pd-neut-cwl_HS-HRPT.ipynb @@ -0,0 +1,856 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "7ac552ee", + "metadata": {}, + "source": [ + "# Structure Refinement: HS, HRPT\n", + "\n", + "This example demonstrates a Rietveld refinement of HS crystal structure\n", + "using constant wavelength neutron powder diffraction data from HRPT at PSI." + ] + }, + { + "cell_type": "markdown", + "id": "93d2b99a", + "metadata": {}, + "source": [ + "## Import Library" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9aa9cbf5", + "metadata": {}, + "outputs": [], + "source": [ + "from easydiffraction import (\n", + " Project,\n", + " SampleModel,\n", + " Experiment,\n", + " download_from_repository\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "75220cbb", + "metadata": {}, + "source": [ + "## Define Sample Model\n", + "\n", + "This section shows how to add sample models and modify their parameters.\n", + "\n", + "#### Create Sample Model" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b2af8fa8", + "metadata": {}, + "outputs": [], + "source": [ + "model = SampleModel('hs')" + ] + }, + { + "cell_type": "markdown", + "id": "6d887cbb", + "metadata": {}, + "source": [ + "#### Set Space Group" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d28d7e5a", + "metadata": {}, + "outputs": [], + "source": [ + "model.space_group.name_h_m = 'R -3 m'\n", + "model.space_group.it_coordinate_system_code = 'h'" + ] + }, + { + "cell_type": "markdown", + "id": "2ce20066", + "metadata": {}, + "source": [ + "#### Set Unit Cell" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "33961de8", + "metadata": {}, + "outputs": [], + "source": [ + "model.cell.length_a = 6.9\n", + "model.cell.length_c = 14.1" + ] + }, + { + "cell_type": "markdown", + "id": "982bb310", + "metadata": {}, + "source": [ + "#### Set Atom Sites" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6e8ed6d9", + "metadata": {}, + "outputs": [], + "source": [ + "model.atom_sites.add('Zn', 'Zn', 0, 0, 0.5, wyckoff_letter='b', b_iso=0.5)\n", + "model.atom_sites.add('Cu', 'Cu', 0.5, 0, 0, wyckoff_letter='e', b_iso=0.5)\n", + "model.atom_sites.add('O', 'O', 0.21, -0.21, 0.06, wyckoff_letter='h', b_iso=0.5)\n", + "model.atom_sites.add('Cl', 'Cl', 0, 0, 0.197, wyckoff_letter='c', b_iso=0.5)\n", + "model.atom_sites.add('H', '2H', 0.13, -0.13, 0.08, wyckoff_letter='h', b_iso=0.5)" + ] + }, + { + "cell_type": "markdown", + "id": "eb43260c", + "metadata": {}, + "source": [ + "#### Symmetry constraints\n", + "\n", + "Show CIF output before applying symmetry constraints." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8c410274", + "metadata": {}, + "outputs": [], + "source": [ + "model.show_as_cif()" + ] + }, + { + "cell_type": "markdown", + "id": "84a3fc4f", + "metadata": {}, + "source": [ + "Apply symmetry constraints." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b8b7d27b", + "metadata": {}, + "outputs": [], + "source": [ + "model.apply_symmetry_constraints()" + ] + }, + { + "cell_type": "markdown", + "id": "f0f3be9a", + "metadata": {}, + "source": [ + "Show CIF output after applying symmetry constraints." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7cc0eedd", + "metadata": {}, + "outputs": [], + "source": [ + "model.show_as_cif()" + ] + }, + { + "cell_type": "markdown", + "id": "cb3e2a99", + "metadata": {}, + "source": [ + "## Define Experiment\n", + "\n", + "This section shows how to add experiments, configure their parameters, and\n", + "link the sample models defined in the previous step.\n", + "\n", + "#### Download Measured Data" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "fe2f3b64", + "metadata": {}, + "outputs": [], + "source": [ + "download_from_repository('hrpt_hs.xye',\n", + " destination='data')" + ] + }, + { + "cell_type": "markdown", + "id": "c260cede", + "metadata": {}, + "source": [ + "#### Create Experiment" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6486875f", + "metadata": {}, + "outputs": [], + "source": [ + "expt = Experiment(name='hrpt',\n", + " data_path='data/hrpt_hs.xye')" + ] + }, + { + "cell_type": "markdown", + "id": "417600cf", + "metadata": {}, + "source": [ + "#### Set Instrument" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ee975fa6", + "metadata": {}, + "outputs": [], + "source": [ + "expt.instrument.setup_wavelength = 1.89\n", + "expt.instrument.calib_twotheta_offset = 0.0" + ] + }, + { + "cell_type": "markdown", + "id": "54a1f67c", + "metadata": {}, + "source": [ + "#### Set Peak Profile" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4a15686f", + "metadata": {}, + "outputs": [], + "source": [ + "expt.peak.broad_gauss_u = 0.1\n", + "expt.peak.broad_gauss_v = -0.2\n", + "expt.peak.broad_gauss_w = 0.2\n", + "expt.peak.broad_lorentz_x = 0.0\n", + "expt.peak.broad_lorentz_y = 0" + ] + }, + { + "cell_type": "markdown", + "id": "2342767d", + "metadata": {}, + "source": [ + "#### Set Background" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d5d8b7e3", + "metadata": {}, + "outputs": [], + "source": [ + "expt.background.add(x=4.4196, y=500)\n", + "expt.background.add(x=6.6207, y=500)\n", + "expt.background.add(x=10.4918, y=500)\n", + "expt.background.add(x=15.4634, y=500)\n", + "expt.background.add(x=45.6041, y=500)\n", + "expt.background.add(x=74.6844, y=500)\n", + "expt.background.add(x=103.4187, y=500)\n", + "expt.background.add(x=121.6311, y=500)\n", + "expt.background.add(x=159.4116, y=500)" + ] + }, + { + "cell_type": "markdown", + "id": "54d94bc9", + "metadata": {}, + "source": [ + "#### Set Linked Phases" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0ded3fad", + "metadata": {}, + "outputs": [], + "source": [ + "expt.linked_phases.add('hs', scale=0.5)" + ] + }, + { + "cell_type": "markdown", + "id": "201e87dc", + "metadata": {}, + "source": [ + "## Define Project\n", + "\n", + "The project object is used to manage the sample model, experiment, and\n", + "analysis.\n", + "\n", + "#### Create Project" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b1249be3", + "metadata": {}, + "outputs": [], + "source": [ + "project = Project()" + ] + }, + { + "cell_type": "markdown", + "id": "93b690d2", + "metadata": {}, + "source": [ + "#### Set Plotting Engine" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8d6e6b71", + "metadata": {}, + "outputs": [], + "source": [ + "project.plotter.engine = 'plotly'" + ] + }, + { + "cell_type": "markdown", + "id": "a4b97254", + "metadata": {}, + "source": [ + "#### Add Sample Model" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8c6fb44d", + "metadata": {}, + "outputs": [], + "source": [ + "project.sample_models.add(model)" + ] + }, + { + "cell_type": "markdown", + "id": "04e0bc26", + "metadata": {}, + "source": [ + "#### Add Experiment" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4a273e00", + "metadata": {}, + "outputs": [], + "source": [ + "project.experiments.add(expt)" + ] + }, + { + "cell_type": "markdown", + "id": "fde82071", + "metadata": {}, + "source": [ + "## Perform Analysis\n", + "\n", + "This section shows the analysis process, including how to set up\n", + "calculation and fitting engines.\n", + "\n", + "#### Set Calculator" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "14c3829f", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.current_calculator = 'cryspy'" + ] + }, + { + "cell_type": "markdown", + "id": "0309dbff", + "metadata": {}, + "source": [ + "#### Set Minimizer" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4298dcc4", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.current_minimizer = 'lmfit (leastsq)'" + ] + }, + { + "cell_type": "markdown", + "id": "87f4e2fb", + "metadata": {}, + "source": [ + "#### Plot Measured vs Calculated" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d33ef568", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='hrpt',\n", + " show_residual=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "69b57298", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='hrpt',\n", + " x_min=48, x_max=51,\n", + " show_residual=True)" + ] + }, + { + "cell_type": "markdown", + "id": "0360c5e6", + "metadata": {}, + "source": [ + "### Perform Fit 1/5\n", + "\n", + "Set parameters to be refined." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d4f31f4a", + "metadata": {}, + "outputs": [], + "source": [ + "model.cell.length_a.free = True\n", + "model.cell.length_c.free = True\n", + "\n", + "expt.linked_phases['hs'].scale.free = True\n", + "expt.instrument.calib_twotheta_offset.free = True" + ] + }, + { + "cell_type": "markdown", + "id": "459489fc", + "metadata": {}, + "source": [ + "Show free parameters after selection." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d97f6589", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.show_free_params()" + ] + }, + { + "cell_type": "markdown", + "id": "6f5b3387", + "metadata": {}, + "source": [ + "#### Run Fitting" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "00ec371b", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.fit()" + ] + }, + { + "cell_type": "markdown", + "id": "fccad330", + "metadata": {}, + "source": [ + "#### Plot Measured vs Calculated" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d5fd3e09", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='hrpt',\n", + " show_residual=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c2f174fd", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='hrpt',\n", + " x_min=48, x_max=51,\n", + " show_residual=True)" + ] + }, + { + "cell_type": "markdown", + "id": "87374fe5", + "metadata": {}, + "source": [ + "### Perform Fit 2/5\n", + "\n", + "Set more parameters to be refined." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "dae97ec9", + "metadata": {}, + "outputs": [], + "source": [ + "expt.peak.broad_gauss_u.free = True\n", + "expt.peak.broad_gauss_v.free = True\n", + "expt.peak.broad_gauss_w.free = True\n", + "expt.peak.broad_lorentz_x.free = True\n", + "\n", + "for point in expt.background:\n", + " point.y.free = True" + ] + }, + { + "cell_type": "markdown", + "id": "320ac5ec", + "metadata": {}, + "source": [ + "Show free parameters after selection." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "11c1572d", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.show_free_params()" + ] + }, + { + "cell_type": "markdown", + "id": "6503d199", + "metadata": {}, + "source": [ + "#### Run Fitting" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "26cfadc7", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.fit()" + ] + }, + { + "cell_type": "markdown", + "id": "922df05d", + "metadata": {}, + "source": [ + "#### Plot Measured vs Calculated" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "87fc99e2", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='hrpt',\n", + " show_residual=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "bcba4e0a", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='hrpt',\n", + " x_min=48, x_max=51,\n", + " show_residual=True)" + ] + }, + { + "cell_type": "markdown", + "id": "d68dafae", + "metadata": {}, + "source": [ + "### Perform Fit 3/5\n", + "\n", + "Set more parameters to be refined." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "45bbecd6", + "metadata": {}, + "outputs": [], + "source": [ + "model.atom_sites['O'].fract_x.free = True\n", + "model.atom_sites['O'].fract_z.free = True\n", + "model.atom_sites['Cl'].fract_z.free = True\n", + "model.atom_sites['H'].fract_x.free = True\n", + "model.atom_sites['H'].fract_z.free = True" + ] + }, + { + "cell_type": "markdown", + "id": "aa85ee4f", + "metadata": {}, + "source": [ + "Show free parameters after selection." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "baccf9c0", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.show_free_params()" + ] + }, + { + "cell_type": "markdown", + "id": "fb95f3fc", + "metadata": {}, + "source": [ + "#### Run Fitting" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a27076cb", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.fit()" + ] + }, + { + "cell_type": "markdown", + "id": "05a9055f", + "metadata": {}, + "source": [ + "#### Plot Measured vs Calculated" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "30ff004c", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='hrpt',\n", + " show_residual=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1df03bfc", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='hrpt',\n", + " x_min=48, x_max=51,\n", + " show_residual=True)" + ] + }, + { + "cell_type": "markdown", + "id": "5b3fef16", + "metadata": {}, + "source": [ + "### Perform Fit 4/5\n", + "\n", + "Set more parameters to be refined." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "19e1de60", + "metadata": {}, + "outputs": [], + "source": [ + "model.atom_sites['Zn'].b_iso.free = True\n", + "model.atom_sites['Cu'].b_iso.free = True\n", + "model.atom_sites['O'].b_iso.free = True\n", + "model.atom_sites['Cl'].b_iso.free = True\n", + "model.atom_sites['H'].b_iso.free = True" + ] + }, + { + "cell_type": "markdown", + "id": "6049d8e9", + "metadata": {}, + "source": [ + "Show free parameters after selection." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "bb03e976", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.show_free_params()" + ] + }, + { + "cell_type": "markdown", + "id": "8bf9bcf8", + "metadata": {}, + "source": [ + "#### Run Fitting" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f072b0bd", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.fit()" + ] + }, + { + "cell_type": "markdown", + "id": "d9b4ca3e", + "metadata": {}, + "source": [ + "#### Plot Measured vs Calculated" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "361b5f46", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='hrpt',\n", + " show_residual=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "aa22e15a", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='hrpt',\n", + " x_min=48, x_max=51,\n", + " show_residual=True)" + ] + }, + { + "cell_type": "markdown", + "id": "745a56d5", + "metadata": {}, + "source": [ + "## Summary\n", + "\n", + "This final section shows how to review the results of the analysis." + ] + }, + { + "cell_type": "markdown", + "id": "3814f689", + "metadata": {}, + "source": [ + "#### Show Project Summary" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "47a7f6d3", + "metadata": {}, + "outputs": [], + "source": [ + "project.summary.show_report()" + ] + } + ], + "metadata": { + "jupytext": { + "cell_metadata_filter": "-all", + "main_language": "python", + "notebook_metadata_filter": "-all" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/tutorials/cryst-struct_pd-neut-tof_Si-SEPD.ipynb b/tutorials/cryst-struct_pd-neut-tof_Si-SEPD.ipynb new file mode 100644 index 00000000..ba1d754c --- /dev/null +++ b/tutorials/cryst-struct_pd-neut-tof_Si-SEPD.ipynb @@ -0,0 +1,782 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "2780bc42", + "metadata": {}, + "source": [ + "# Structure Refinement: Si, SEPD\n", + "\n", + "This example demonstrates a Rietveld refinement of Si crystal structure using\n", + "time-of-flight neutron powder diffraction data from SEPD at Argonne." + ] + }, + { + "cell_type": "markdown", + "id": "a228268e", + "metadata": {}, + "source": [ + "## Import Library" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "021335e1", + "metadata": {}, + "outputs": [], + "source": [ + "from easydiffraction import (\n", + " Project,\n", + " SampleModel,\n", + " Experiment,\n", + " download_from_repository\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "6cbe0b11", + "metadata": {}, + "source": [ + "## Define Sample Model\n", + "\n", + "This section shows how to add sample models and modify their parameters.\n", + "\n", + "#### Create Sample Model" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f1a8ac7b", + "metadata": {}, + "outputs": [], + "source": [ + "model = SampleModel('si')" + ] + }, + { + "cell_type": "markdown", + "id": "1d388d6b", + "metadata": {}, + "source": [ + "#### Set Space Group" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "aeedd31a", + "metadata": {}, + "outputs": [], + "source": [ + "model.space_group.name_h_m = 'F d -3 m'\n", + "model.space_group.it_coordinate_system_code = '2'" + ] + }, + { + "cell_type": "markdown", + "id": "17e1910d", + "metadata": {}, + "source": [ + "#### Set Unit Cell" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9a427a24", + "metadata": {}, + "outputs": [], + "source": [ + "model.cell.length_a = 5.431" + ] + }, + { + "cell_type": "markdown", + "id": "d665b13d", + "metadata": {}, + "source": [ + "#### Set Atom Sites" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f05a565f", + "metadata": {}, + "outputs": [], + "source": [ + "model.atom_sites.add('Si', 'Si', 0.125, 0.125, 0.125, b_iso=0.5)" + ] + }, + { + "cell_type": "markdown", + "id": "ebc7cfca", + "metadata": {}, + "source": [ + "## Define Experiment\n", + "\n", + "This section shows how to add experiments, configure their parameters, and\n", + "link the sample models defined in the previous step.\n", + "\n", + "#### Download Measured Data" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b8b3f2ac", + "metadata": {}, + "outputs": [], + "source": [ + "download_from_repository('sepd_si.xye',\n", + " destination='data')" + ] + }, + { + "cell_type": "markdown", + "id": "b43cf16e", + "metadata": {}, + "source": [ + "#### Create Experiment" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9a5be163", + "metadata": {}, + "outputs": [], + "source": [ + "expt = Experiment('sepd',\n", + " beam_mode='time-of-flight',\n", + " data_path='data/sepd_si.xye')" + ] + }, + { + "cell_type": "markdown", + "id": "0671335b", + "metadata": {}, + "source": [ + "#### Set Instrument" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "bd4fa739", + "metadata": {}, + "outputs": [], + "source": [ + "expt.instrument.setup_twotheta_bank = 144.845\n", + "expt.instrument.calib_d_to_tof_offset = 0.0\n", + "expt.instrument.calib_d_to_tof_linear = 7476.91\n", + "expt.instrument.calib_d_to_tof_quad = -1.54" + ] + }, + { + "cell_type": "markdown", + "id": "aca665c6", + "metadata": {}, + "source": [ + "#### Set Peak Profile" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0b37d2a3", + "metadata": {}, + "outputs": [], + "source": [ + "expt.peak_profile_type = 'pseudo-voigt * ikeda-carpenter'\n", + "expt.peak.broad_gauss_sigma_0 = 3.0\n", + "expt.peak.broad_gauss_sigma_1 = 40.0\n", + "expt.peak.broad_gauss_sigma_2 = 2.0\n", + "expt.peak.broad_mix_beta_0 = 0.04221\n", + "expt.peak.broad_mix_beta_1 = 0.00946" + ] + }, + { + "cell_type": "markdown", + "id": "68623e8b", + "metadata": {}, + "source": [ + "#### Set Peak Asymmetry" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9ed14de8", + "metadata": {}, + "outputs": [], + "source": [ + "expt.peak.asym_alpha_0 = 0.0\n", + "expt.peak.asym_alpha_1 = 0.5971" + ] + }, + { + "cell_type": "markdown", + "id": "51f0b7d6", + "metadata": {}, + "source": [ + "#### Set Background" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a5b2cb4c", + "metadata": {}, + "outputs": [], + "source": [ + "expt.background_type = 'line-segment'\n", + "for x in range(0, 35000, 5000):\n", + " expt.background.add(x=x, y=200)" + ] + }, + { + "cell_type": "markdown", + "id": "e04e06f1", + "metadata": {}, + "source": [ + "#### Set Linked Phases" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c04e391b", + "metadata": {}, + "outputs": [], + "source": [ + "expt.linked_phases.add('si', scale=10.0)" + ] + }, + { + "cell_type": "markdown", + "id": "45821547", + "metadata": {}, + "source": [ + "## Define Project\n", + "\n", + "The project object is used to manage the sample model, experiment, and\n", + "analysis.\n", + "\n", + "#### Create Project" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4e12d271", + "metadata": {}, + "outputs": [], + "source": [ + "project = Project()" + ] + }, + { + "cell_type": "markdown", + "id": "cb8d90a4", + "metadata": {}, + "source": [ + "#### Set Plotting Engine" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d4cee128", + "metadata": {}, + "outputs": [], + "source": [ + "project.plotter.engine = 'plotly'" + ] + }, + { + "cell_type": "markdown", + "id": "da7574c3", + "metadata": {}, + "source": [ + "#### Add Sample Model" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0b49013d", + "metadata": {}, + "outputs": [], + "source": [ + "project.sample_models.add(model)" + ] + }, + { + "cell_type": "markdown", + "id": "6af9d6ea", + "metadata": {}, + "source": [ + "#### Add Experiment" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "749ed4fc", + "metadata": {}, + "outputs": [], + "source": [ + "project.experiments.add(expt)" + ] + }, + { + "cell_type": "markdown", + "id": "cfe2962d", + "metadata": {}, + "source": [ + "## Perform Analysis\n", + "\n", + "This section shows the analysis process, including how to set up\n", + "calculation and fitting engines.\n", + "\n", + "#### Set Calculator" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2cbadd65", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.current_calculator = 'cryspy'" + ] + }, + { + "cell_type": "markdown", + "id": "468a3d8f", + "metadata": {}, + "source": [ + "#### Set Minimizer" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7919526a", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.current_minimizer = 'lmfit (leastsq)'" + ] + }, + { + "cell_type": "markdown", + "id": "18e7ed31", + "metadata": {}, + "source": [ + "#### Plot Measured vs Calculated" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9163d2c4", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='sepd',\n", + " show_residual=True)\n", + "project.plot_meas_vs_calc(expt_name='sepd',\n", + " x_min=23200, x_max=23700,\n", + " show_residual=True)" + ] + }, + { + "cell_type": "markdown", + "id": "fdddb822", + "metadata": {}, + "source": [ + "### Perform Fit 1/5\n", + "\n", + "Set parameters to be refined." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4e38f983", + "metadata": {}, + "outputs": [], + "source": [ + "model.cell.length_a.free = True\n", + "\n", + "expt.linked_phases['si'].scale.free = True\n", + "expt.instrument.calib_d_to_tof_offset.free = True" + ] + }, + { + "cell_type": "markdown", + "id": "34d6f631", + "metadata": {}, + "source": [ + "Show free parameters after selection." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "fa0b7ecf", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.show_free_params()" + ] + }, + { + "cell_type": "markdown", + "id": "5d02df99", + "metadata": {}, + "source": [ + "#### Run Fitting" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c98e6c10", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.fit()" + ] + }, + { + "cell_type": "markdown", + "id": "8601fbcb", + "metadata": {}, + "source": [ + "#### Plot Measured vs Calculated" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7bc5f68d", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='sepd',\n", + " show_residual=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2ddfaf46", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='sepd',\n", + " x_min=23200, x_max=23700,\n", + " show_residual=True)" + ] + }, + { + "cell_type": "markdown", + "id": "0623f4e7", + "metadata": {}, + "source": [ + "### Perform Fit 2/5\n", + "\n", + "Set more parameters to be refined." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "fd54a137", + "metadata": {}, + "outputs": [], + "source": [ + "for point in expt.background:\n", + " point.y.free = True" + ] + }, + { + "cell_type": "markdown", + "id": "7bdf329b", + "metadata": {}, + "source": [ + "Show free parameters after selection." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d12881d5", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.show_free_params()" + ] + }, + { + "cell_type": "markdown", + "id": "f1f87945", + "metadata": {}, + "source": [ + "#### Run Fitting" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "099dfa9b", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.fit()" + ] + }, + { + "cell_type": "markdown", + "id": "47c2f591", + "metadata": {}, + "source": [ + "#### Plot Measured vs Calculated" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "44466af3", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='sepd',\n", + " show_residual=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c32535e2", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='sepd',\n", + " x_min=23200, x_max=23700,\n", + " show_residual=True)" + ] + }, + { + "cell_type": "markdown", + "id": "69e25d8d", + "metadata": {}, + "source": [ + "### Perform Fit 3/5\n", + "\n", + "Fix background points." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "498d0b29", + "metadata": {}, + "outputs": [], + "source": [ + "for point in expt.background:\n", + " point.y.free = False" + ] + }, + { + "cell_type": "markdown", + "id": "da725256", + "metadata": {}, + "source": [ + "Set more parameters to be refined." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "07f7ec3e", + "metadata": {}, + "outputs": [], + "source": [ + "expt.peak.broad_gauss_sigma_0.free = True\n", + "expt.peak.broad_gauss_sigma_1.free = True\n", + "expt.peak.broad_gauss_sigma_2.free = True" + ] + }, + { + "cell_type": "markdown", + "id": "ecaf589d", + "metadata": {}, + "source": [ + "Show free parameters after selection." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "11af3a5f", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.show_free_params()" + ] + }, + { + "cell_type": "markdown", + "id": "fb79bc95", + "metadata": {}, + "source": [ + "#### Run Fitting" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a3420461", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.fit()" + ] + }, + { + "cell_type": "markdown", + "id": "21e727dd", + "metadata": {}, + "source": [ + "#### Plot Measured vs Calculated" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a64c4ab5", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='sepd',\n", + " show_residual=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "daa0df8e", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='sepd',\n", + " x_min=23200, x_max=23700,\n", + " show_residual=True)" + ] + }, + { + "cell_type": "markdown", + "id": "33a2eb00", + "metadata": {}, + "source": [ + "### Perform Fit 4/5\n", + "\n", + "Set more parameters to be refined." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8f6fd490", + "metadata": {}, + "outputs": [], + "source": [ + "model.atom_sites['Si'].b_iso.free = True" + ] + }, + { + "cell_type": "markdown", + "id": "0688b6c1", + "metadata": {}, + "source": [ + "Show free parameters after selection." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8cc2ee9f", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.show_free_params()" + ] + }, + { + "cell_type": "markdown", + "id": "8341ada7", + "metadata": {}, + "source": [ + "#### Run Fitting" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ae0b720b", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.fit()" + ] + }, + { + "cell_type": "markdown", + "id": "53eb8498", + "metadata": {}, + "source": [ + "#### Plot Measured vs Calculated" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f1309d17", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='sepd',\n", + " show_residual=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6dd30569", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='sepd',\n", + " x_min=23200, x_max=23700,\n", + " show_residual=True)" + ] + } + ], + "metadata": { + "jupytext": { + "cell_metadata_filter": "-all", + "main_language": "python", + "notebook_metadata_filter": "-all" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/tutorials/cryst-struct_pd-neut-tof_multidata_NCAF-WISH.ipynb b/tutorials/cryst-struct_pd-neut-tof_multidata_NCAF-WISH.ipynb new file mode 100644 index 00000000..3841ec8f --- /dev/null +++ b/tutorials/cryst-struct_pd-neut-tof_multidata_NCAF-WISH.ipynb @@ -0,0 +1,714 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "4c21465f", + "metadata": {}, + "source": [ + "# Structure Refinement: NCAF, WISH\n", + "\n", + "This example demonstrates a Rietveld refinement of Na2Ca3Al2F14 crystal\n", + "structure using time-of-flight neutron powder diffraction data from WISH at\n", + "ISIS.\n", + "\n", + "Two datasets from detector banks 5+6 and 4+7 are used for joint fitting." + ] + }, + { + "cell_type": "markdown", + "id": "1e1d66df", + "metadata": {}, + "source": [ + "## Import Library" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ef688596", + "metadata": {}, + "outputs": [], + "source": [ + "from easydiffraction import (\n", + " Project,\n", + " SampleModel,\n", + " Experiment,\n", + " download_from_repository\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "342f14a3", + "metadata": {}, + "source": [ + "## Define Sample Model\n", + "\n", + "This section covers how to add sample models and modify their parameters.\n", + "\n", + "#### Create Sample Model" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3172b614", + "metadata": {}, + "outputs": [], + "source": [ + "model = SampleModel('ncaf')" + ] + }, + { + "cell_type": "markdown", + "id": "957860c3", + "metadata": {}, + "source": [ + "#### Set Space Group" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "71ab0af4", + "metadata": {}, + "outputs": [], + "source": [ + "model.space_group.name_h_m = 'I 21 3'\n", + "model.space_group.it_coordinate_system_code = '1'" + ] + }, + { + "cell_type": "markdown", + "id": "3ee5a033", + "metadata": {}, + "source": [ + "#### Set Unit Cell" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ead98c4a", + "metadata": {}, + "outputs": [], + "source": [ + "model.cell.length_a = 10.250256" + ] + }, + { + "cell_type": "markdown", + "id": "08f8b0ed", + "metadata": {}, + "source": [ + "#### Set Atom Sites" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3c829bcd", + "metadata": {}, + "outputs": [], + "source": [ + "model.atom_sites.add('Ca', 'Ca', 0.4665, 0.0, 0.25, wyckoff_letter=\"b\", b_iso=0.92)\n", + "model.atom_sites.add('Al', 'Al', 0.2520, 0.2520, 0.2520, wyckoff_letter=\"a\", b_iso=0.73)\n", + "model.atom_sites.add('Na', 'Na', 0.0852, 0.0852, 0.0852, wyckoff_letter=\"a\", b_iso=2.08)\n", + "model.atom_sites.add('F1', 'F', 0.1376, 0.3055, 0.1196, wyckoff_letter=\"c\", b_iso=0.90)\n", + "model.atom_sites.add('F2', 'F', 0.3623, 0.3631, 0.1870, wyckoff_letter=\"c\", b_iso=1.37)\n", + "model.atom_sites.add('F3', 'F', 0.4611, 0.4611, 0.4611, wyckoff_letter=\"a\", b_iso=0.88)" + ] + }, + { + "cell_type": "markdown", + "id": "34b52c84", + "metadata": {}, + "source": [ + "## Define Experiment\n", + "\n", + "This section shows how to add experiments, configure their parameters, and\n", + "link the sample models defined in the previous step.\n", + "\n", + "#### Download Measured Data" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a7668c51", + "metadata": {}, + "outputs": [], + "source": [ + "download_from_repository('wish_ncaf_5_6.xys', destination='data')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a2820861", + "metadata": {}, + "outputs": [], + "source": [ + "download_from_repository('wish_ncaf_4_7.xys', destination='data')" + ] + }, + { + "cell_type": "markdown", + "id": "a163f566", + "metadata": {}, + "source": [ + "#### Create Experiment" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1d11e99f", + "metadata": {}, + "outputs": [], + "source": [ + "expt56 = Experiment('wish_5_6', beam_mode='time-of-flight', data_path='data/wish_ncaf_5_6.xys')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "902d2b7a", + "metadata": {}, + "outputs": [], + "source": [ + "expt47 = Experiment('wish_4_7', beam_mode='time-of-flight', data_path='data/wish_ncaf_4_7.xys')" + ] + }, + { + "cell_type": "markdown", + "id": "851b9510", + "metadata": {}, + "source": [ + "#### Set Instrument" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4b9f5fb9", + "metadata": {}, + "outputs": [], + "source": [ + "expt56.instrument.setup_twotheta_bank = 152.827\n", + "expt56.instrument.calib_d_to_tof_offset = -13.0\n", + "expt56.instrument.calib_d_to_tof_linear = 20752.1\n", + "expt56.instrument.calib_d_to_tof_quad = -1.08308" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c91ad0bc", + "metadata": {}, + "outputs": [], + "source": [ + "expt47.instrument.setup_twotheta_bank = 121.660\n", + "expt47.instrument.calib_d_to_tof_offset = -15.0\n", + "expt47.instrument.calib_d_to_tof_linear = 18640.7\n", + "expt47.instrument.calib_d_to_tof_quad = -0.47488" + ] + }, + { + "cell_type": "markdown", + "id": "2ba398c9", + "metadata": {}, + "source": [ + "#### Set Peak Profile" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b6e26317", + "metadata": {}, + "outputs": [], + "source": [ + "expt56.peak.broad_gauss_sigma_0 = 0.0\n", + "expt56.peak.broad_gauss_sigma_1 = 0.0\n", + "expt56.peak.broad_gauss_sigma_2 = 15.0\n", + "expt56.peak.broad_mix_beta_0 = 0.01\n", + "expt56.peak.broad_mix_beta_1 = 0.01\n", + "expt56.peak.asym_alpha_0 = -0.01\n", + "expt56.peak.asym_alpha_1 = 0.10" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "30418c11", + "metadata": {}, + "outputs": [], + "source": [ + "expt47.peak.broad_gauss_sigma_0 = 0.0\n", + "expt47.peak.broad_gauss_sigma_1 = 30.0\n", + "expt47.peak.broad_gauss_sigma_2 = 20.0\n", + "expt47.peak.broad_mix_beta_0 = 0.01\n", + "expt47.peak.broad_mix_beta_1 = 0.01\n", + "expt47.peak.asym_alpha_0 = -0.01\n", + "expt47.peak.asym_alpha_1 = 0.10" + ] + }, + { + "cell_type": "markdown", + "id": "ae336090", + "metadata": {}, + "source": [ + "#### Set Background" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2de18a44", + "metadata": {}, + "outputs": [], + "source": [ + "expt56.background_type = 'line-segment'\n", + "for x, y in [\n", + " (9162, 465),\n", + " (11136, 593),\n", + " (13313, 497),\n", + " (14906, 546),\n", + " (16454, 533),\n", + " (17352, 496),\n", + " (18743, 428),\n", + " (20179, 452),\n", + " (21368, 397),\n", + " (22176, 468),\n", + " (22827, 477),\n", + " (24644, 380),\n", + " (26439, 381),\n", + " (28257, 378),\n", + " (31196, 343),\n", + " (34034, 328),\n", + " (37265, 310),\n", + " (41214, 323),\n", + " (44827, 283),\n", + " (49830, 273),\n", + " (52905, 257),\n", + " (58204, 260),\n", + " (62916, 261),\n", + " (70186, 262),\n", + " (74204, 262),\n", + " (82103, 268),\n", + " (91958, 268),\n", + " (102712, 262)\n", + "]:\n", + " expt56.background.add(x, y)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2f04cd12", + "metadata": {}, + "outputs": [], + "source": [ + "expt47.background_type = 'line-segment'\n", + "for x, y in [\n", + " (9090, 488),\n", + " (10672, 566),\n", + " (12287, 494),\n", + " (14037, 559),\n", + " (15451, 529),\n", + " (16764, 445),\n", + " (18076, 460),\n", + " (19456, 413),\n", + " (20466, 511),\n", + " (21880, 396),\n", + " (23798, 391),\n", + " (25447, 385),\n", + " (28073, 349),\n", + " (30058, 332),\n", + " (32583, 309),\n", + " (34804, 355),\n", + " (37160, 318),\n", + " (40324, 290),\n", + " (46895, 260),\n", + " (50631, 256),\n", + " (54602, 246),\n", + " (58439, 264),\n", + " (66520, 250),\n", + " (75002, 258),\n", + " (83649, 257),\n", + " (92770, 255),\n", + " (101524, 260)\n", + "]:\n", + " expt47.background.add(x, y)" + ] + }, + { + "cell_type": "markdown", + "id": "2c408ace", + "metadata": {}, + "source": [ + "#### Set Linked Phases" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f5b3dc3b", + "metadata": {}, + "outputs": [], + "source": [ + "expt56.linked_phases.add('ncaf', scale=1.0)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "948fa817", + "metadata": {}, + "outputs": [], + "source": [ + "expt47.linked_phases.add('ncaf', scale=2.0)" + ] + }, + { + "cell_type": "markdown", + "id": "130f81c8", + "metadata": {}, + "source": [ + "#### Set Excluded Regions" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e638d434", + "metadata": {}, + "outputs": [], + "source": [ + "expt56.excluded_regions.add(minimum=0, maximum=10010)\n", + "expt56.excluded_regions.add(minimum=100010, maximum=200000)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d5088355", + "metadata": {}, + "outputs": [], + "source": [ + "expt47.excluded_regions.add(minimum=0, maximum=10006)\n", + "expt47.excluded_regions.add(minimum=100004, maximum=200000)" + ] + }, + { + "cell_type": "markdown", + "id": "a217a7a4", + "metadata": {}, + "source": [ + "## Define Project\n", + "\n", + "The project object is used to manage the sample model, experiments, and\n", + "analysis\n", + "\n", + "#### Create Project" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f3b431c5", + "metadata": {}, + "outputs": [], + "source": [ + "project = Project()" + ] + }, + { + "cell_type": "markdown", + "id": "e8f3e6cb", + "metadata": {}, + "source": [ + "#### Set Plotting Engine" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b0442b28", + "metadata": {}, + "outputs": [], + "source": [ + "project.plotter.engine = 'plotly'" + ] + }, + { + "cell_type": "markdown", + "id": "e5790d5b", + "metadata": {}, + "source": [ + "#### Add Sample Model" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4d1c5111", + "metadata": {}, + "outputs": [], + "source": [ + "project.sample_models.add(model)" + ] + }, + { + "cell_type": "markdown", + "id": "4763dd3a", + "metadata": {}, + "source": [ + "#### Add Experiment" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8fb3e19a", + "metadata": {}, + "outputs": [], + "source": [ + "project.experiments.add(expt56)\n", + "project.experiments.add(expt47)" + ] + }, + { + "cell_type": "markdown", + "id": "727db24c", + "metadata": {}, + "source": [ + "## Perform Analysis\n", + "\n", + "This section shows the analysis process, including how to set up\n", + "calculation and fitting engines.\n", + "\n", + "#### Set Calculator" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9455d52a", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.current_calculator = 'cryspy'" + ] + }, + { + "cell_type": "markdown", + "id": "f3fe9465", + "metadata": {}, + "source": [ + "#### Set Minimizer" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d003e963", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.current_minimizer = 'lmfit (leastsq)'" + ] + }, + { + "cell_type": "markdown", + "id": "33d6527e", + "metadata": {}, + "source": [ + "#### Set Fit Mode" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2f31f067", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.fit_mode = 'joint'" + ] + }, + { + "cell_type": "markdown", + "id": "31cef763", + "metadata": {}, + "source": [ + "#### Set Free Parameters" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "86b6d96f", + "metadata": {}, + "outputs": [], + "source": [ + "model.atom_sites['Ca'].fract_x.free = True\n", + "model.atom_sites['Al'].fract_x.free = True\n", + "model.atom_sites['Na'].fract_x.free = True\n", + "model.atom_sites['F1'].fract_x.free = True\n", + "model.atom_sites['F1'].fract_y.free = True\n", + "model.atom_sites['F1'].fract_z.free = True\n", + "model.atom_sites['F2'].fract_x.free = True\n", + "model.atom_sites['F2'].fract_y.free = True\n", + "model.atom_sites['F2'].fract_z.free = True\n", + "model.atom_sites['F3'].fract_x.free = True\n", + "\n", + "model.atom_sites['Ca'].b_iso.free = True\n", + "model.atom_sites['Al'].b_iso.free = True\n", + "model.atom_sites['Na'].b_iso.free = True\n", + "model.atom_sites['F1'].b_iso.free = True\n", + "model.atom_sites['F2'].b_iso.free = True\n", + "model.atom_sites['F3'].b_iso.free = True" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8dd4324c", + "metadata": {}, + "outputs": [], + "source": [ + "expt56.linked_phases['ncaf'].scale.free = True\n", + "expt56.instrument.calib_d_to_tof_offset.free = True\n", + "expt56.instrument.calib_d_to_tof_linear.free = True\n", + "expt56.peak.broad_gauss_sigma_2.free = True\n", + "expt56.peak.broad_mix_beta_0.free = True\n", + "expt56.peak.broad_mix_beta_1.free = True\n", + "expt56.peak.asym_alpha_0.free = True\n", + "expt56.peak.asym_alpha_1.free = True\n", + "\n", + "expt47.linked_phases['ncaf'].scale.free = True\n", + "expt47.instrument.calib_d_to_tof_linear.free = True\n", + "expt47.instrument.calib_d_to_tof_offset.free = True\n", + "expt47.peak.broad_gauss_sigma_1.free = True\n", + "expt47.peak.broad_gauss_sigma_2.free = True\n", + "expt47.peak.broad_mix_beta_0.free = True\n", + "expt47.peak.broad_mix_beta_1.free = True\n", + "expt47.peak.asym_alpha_0.free = True\n", + "expt47.peak.asym_alpha_1.free = True" + ] + }, + { + "cell_type": "markdown", + "id": "c275693c", + "metadata": {}, + "source": [ + "#### Plot Measured vs Calculated" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "dceb12cc", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='wish_5_6', show_residual=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5aea15d4", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='wish_4_7', show_residual=True)" + ] + }, + { + "cell_type": "markdown", + "id": "a8b2a3d9", + "metadata": {}, + "source": [ + "#### Run Fitting" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d8e09a6f", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.fit()" + ] + }, + { + "cell_type": "markdown", + "id": "bdb4192f", + "metadata": {}, + "source": [ + "#### Plot Measured vs Calculated" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e0cdbcce", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='wish_5_6', show_residual=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "615f212a", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='wish_4_7', show_residual=True)" + ] + }, + { + "cell_type": "markdown", + "id": "f19f7020", + "metadata": {}, + "source": [ + "## Summary\n", + "\n", + "This final section shows how to review the results of the analysis." + ] + }, + { + "cell_type": "markdown", + "id": "7b312230", + "metadata": {}, + "source": [ + "#### Show Project Summary" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "722a6539", + "metadata": {}, + "outputs": [], + "source": [ + "project.summary.show_report()" + ] + } + ], + "metadata": { + "jupytext": { + "cell_metadata_filter": "-all", + "main_language": "python", + "notebook_metadata_filter": "-all" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/tutorials/cryst-struct_pd-neut-tof_multiphase-LBCO-Si_McStas.ipynb b/tutorials/cryst-struct_pd-neut-tof_multiphase-LBCO-Si_McStas.ipynb new file mode 100644 index 00000000..bd6e6743 --- /dev/null +++ b/tutorials/cryst-struct_pd-neut-tof_multiphase-LBCO-Si_McStas.ipynb @@ -0,0 +1,688 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "b93172ae", + "metadata": {}, + "source": [ + "# Structure Refinement: LBCO+Si, McStas\n", + "\n", + "This example demonstrates a Rietveld refinement of La0.5Ba0.5CoO3 crystal\n", + "structure with a small amount of Si phase using time-of-flight neutron powder\n", + "diffraction data simulated with McStas." + ] + }, + { + "cell_type": "markdown", + "id": "87ea7d5f", + "metadata": {}, + "source": [ + "## Import Library" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "124df35d", + "metadata": {}, + "outputs": [], + "source": [ + "from easydiffraction import (\n", + " Project,\n", + " SampleModel,\n", + " Experiment,\n", + " download_from_repository\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "0b12752d", + "metadata": {}, + "source": [ + "## Define Sample Models\n", + "\n", + "This section shows how to add sample models and modify their parameters.\n", + "\n", + "### Create Sample Model 1: LBCO" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d6f64aee", + "metadata": {}, + "outputs": [], + "source": [ + "model_1 = SampleModel('lbco')" + ] + }, + { + "cell_type": "markdown", + "id": "bf156fff", + "metadata": {}, + "source": [ + "#### Set Space Group" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "abdaaa51", + "metadata": {}, + "outputs": [], + "source": [ + "model_1.space_group.name_h_m = 'P m -3 m'\n", + "model_1.space_group.it_coordinate_system_code = '1'" + ] + }, + { + "cell_type": "markdown", + "id": "4b29fe90", + "metadata": {}, + "source": [ + "#### Set Unit Cell" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "bc42a211", + "metadata": {}, + "outputs": [], + "source": [ + "model_1.cell.length_a = 3.8909" + ] + }, + { + "cell_type": "markdown", + "id": "95860e82", + "metadata": {}, + "source": [ + "#### Set Atom Sites" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "205d8004", + "metadata": {}, + "outputs": [], + "source": [ + "model_1.atom_sites.add('La', 'La', 0, 0, 0, wyckoff_letter='a', b_iso=0.2, occupancy=0.5)\n", + "model_1.atom_sites.add('Ba', 'Ba', 0, 0, 0, wyckoff_letter='a', b_iso=0.2, occupancy=0.5)\n", + "model_1.atom_sites.add('Co', 'Co', 0.5, 0.5, 0.5, wyckoff_letter='b', b_iso=0.2567)\n", + "model_1.atom_sites.add('O', 'O', 0, 0.5, 0.5, wyckoff_letter='c', b_iso=1.4041)" + ] + }, + { + "cell_type": "markdown", + "id": "f6c3d66a", + "metadata": {}, + "source": [ + "### Create Sample Model 2: Si" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "646ebede", + "metadata": {}, + "outputs": [], + "source": [ + "model_2 = SampleModel('si')" + ] + }, + { + "cell_type": "markdown", + "id": "9a25f11c", + "metadata": {}, + "source": [ + "#### Set Space Group" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "007b40fb", + "metadata": {}, + "outputs": [], + "source": [ + "model_2.space_group.name_h_m = 'F d -3 m'\n", + "model_2.space_group.it_coordinate_system_code = '2'" + ] + }, + { + "cell_type": "markdown", + "id": "ee76cee5", + "metadata": {}, + "source": [ + "#### Set Unit Cell" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c88b9820", + "metadata": {}, + "outputs": [], + "source": [ + "model_2.cell.length_a = 5.43146" + ] + }, + { + "cell_type": "markdown", + "id": "7837b366", + "metadata": {}, + "source": [ + "#### Set Atom Sites" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f55f9732", + "metadata": {}, + "outputs": [], + "source": [ + "model_2.atom_sites.add('Si', 'Si', 0.0, 0.0, 0.0, wyckoff_letter='a', b_iso=0.0)" + ] + }, + { + "cell_type": "markdown", + "id": "85383c08", + "metadata": {}, + "source": [ + "## Define Experiment\n", + "\n", + "This section shows how to add experiments, configure their parameters, and\n", + "link the sample models defined in the previous step.\n", + "\n", + "#### Download Data" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4fdb8978", + "metadata": {}, + "outputs": [], + "source": [ + "download_from_repository('mcstas_lbco-si.xye',\n", + " destination='data')" + ] + }, + { + "cell_type": "markdown", + "id": "78453f40", + "metadata": {}, + "source": [ + "#### Create Experiment" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4f20cd2d", + "metadata": {}, + "outputs": [], + "source": [ + "experiment = Experiment('mcstas',\n", + " sample_form='powder',\n", + " beam_mode='time-of-flight',\n", + " radiation_probe='neutron',\n", + " scattering_type='bragg',\n", + " data_path='data/mcstas_lbco-si.xye')" + ] + }, + { + "cell_type": "markdown", + "id": "642b4d09", + "metadata": {}, + "source": [ + "#### Set Instrument" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2ceb61f8", + "metadata": {}, + "outputs": [], + "source": [ + "experiment.instrument.setup_twotheta_bank = 94.90931761529106\n", + "experiment.instrument.calib_d_to_tof_offset = 0.0\n", + "experiment.instrument.calib_d_to_tof_linear = 58724.76869981215\n", + "experiment.instrument.calib_d_to_tof_quad = -0.00001" + ] + }, + { + "cell_type": "markdown", + "id": "696683eb", + "metadata": {}, + "source": [ + "#### Set Peak Profile" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d36f24d3", + "metadata": {}, + "outputs": [], + "source": [ + "#experiment.peak_profile_type = 'pseudo-voigt * ikeda-carpenter'\n", + "experiment.peak.broad_gauss_sigma_0 = 45137\n", + "experiment.peak.broad_gauss_sigma_1 = -52394\n", + "experiment.peak.broad_gauss_sigma_2 = 22998\n", + "experiment.peak.broad_mix_beta_0 = 0.0055\n", + "experiment.peak.broad_mix_beta_1 = 0.0041\n", + "experiment.peak.asym_alpha_0 = 0\n", + "experiment.peak.asym_alpha_1 = 0.0097" + ] + }, + { + "cell_type": "markdown", + "id": "51c3001e", + "metadata": {}, + "source": [ + "#### Set Background" + ] + }, + { + "cell_type": "markdown", + "id": "1a2c709e", + "metadata": {}, + "source": [ + "Select the background type." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8088e4ca", + "metadata": {}, + "outputs": [], + "source": [ + "experiment.background_type = 'line-segment'" + ] + }, + { + "cell_type": "markdown", + "id": "c42060be", + "metadata": {}, + "source": [ + "Add background points." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b5b03cbe", + "metadata": {}, + "outputs": [], + "source": [ + "experiment.background.add(x=45000, y=0.2)\n", + "experiment.background.add(x=50000, y=0.2)\n", + "experiment.background.add(x=55000, y=0.2)\n", + "experiment.background.add(x=65000, y=0.2)\n", + "experiment.background.add(x=70000, y=0.2)\n", + "experiment.background.add(x=75000, y=0.2)\n", + "experiment.background.add(x=80000, y=0.2)\n", + "experiment.background.add(x=85000, y=0.2)\n", + "experiment.background.add(x=90000, y=0.2)\n", + "experiment.background.add(x=95000, y=0.2)\n", + "experiment.background.add(x=100000, y=0.2)\n", + "experiment.background.add(x=105000, y=0.2)\n", + "experiment.background.add(x=110000, y=0.2)" + ] + }, + { + "cell_type": "markdown", + "id": "b89f6c55", + "metadata": {}, + "source": [ + "#### Set Linked Phases" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7690770e", + "metadata": {}, + "outputs": [], + "source": [ + "experiment.linked_phases.add('lbco', scale=4.0)\n", + "experiment.linked_phases.add('si', scale=0.2)" + ] + }, + { + "cell_type": "markdown", + "id": "d46612ef", + "metadata": {}, + "source": [ + "## Define Project\n", + "\n", + "The project object is used to manage sample models, experiments, and analysis.\n", + "\n", + "#### Create Project" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "38b80e1d", + "metadata": {}, + "outputs": [], + "source": [ + "project = Project()" + ] + }, + { + "cell_type": "markdown", + "id": "920280cc", + "metadata": {}, + "source": [ + "#### Set Plotting Engine" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7a1ea200", + "metadata": {}, + "outputs": [], + "source": [ + "project.plotter.engine = 'plotly'" + ] + }, + { + "cell_type": "markdown", + "id": "da890010", + "metadata": {}, + "source": [ + "#### Add Sample Models" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b9e403c5", + "metadata": {}, + "outputs": [], + "source": [ + "project.sample_models.add(model_1)\n", + "project.sample_models.add(model_2)" + ] + }, + { + "cell_type": "markdown", + "id": "e1e53fba", + "metadata": {}, + "source": [ + "#### Show Sample Models" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "053422e8", + "metadata": {}, + "outputs": [], + "source": [ + "project.sample_models.show_names()" + ] + }, + { + "cell_type": "markdown", + "id": "7a3ff054", + "metadata": {}, + "source": [ + "#### Add Experiments" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6dad1082", + "metadata": {}, + "outputs": [], + "source": [ + "project.experiments.add(experiment)" + ] + }, + { + "cell_type": "markdown", + "id": "99def302", + "metadata": {}, + "source": [ + "#### Set Excluded Regions\n", + "\n", + "Show measured data as loaded from the file." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "44961a3f", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas(expt_name='mcstas')" + ] + }, + { + "cell_type": "markdown", + "id": "8ebdd683", + "metadata": {}, + "source": [ + "Add excluded regions." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8f82c4c4", + "metadata": {}, + "outputs": [], + "source": [ + "experiment.excluded_regions.add(minimum=0, maximum=40000)\n", + "experiment.excluded_regions.add(minimum=108000, maximum=200000)" + ] + }, + { + "cell_type": "markdown", + "id": "e9d78b39", + "metadata": {}, + "source": [ + "Show excluded regions." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "58fe9668", + "metadata": {}, + "outputs": [], + "source": [ + "experiment.excluded_regions.show()" + ] + }, + { + "cell_type": "markdown", + "id": "944dce4c", + "metadata": {}, + "source": [ + "Show measured data after adding excluded regions." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "47507dad", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas(expt_name='mcstas')" + ] + }, + { + "cell_type": "markdown", + "id": "2fb29192", + "metadata": {}, + "source": [ + "Show experiment as CIF." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f9514ff8", + "metadata": {}, + "outputs": [], + "source": [ + "project.experiments['mcstas'].show_as_cif()" + ] + }, + { + "cell_type": "markdown", + "id": "55dff3c7", + "metadata": {}, + "source": [ + "## Perform Analysis\n", + "\n", + "This section outlines the analysis process, including how to configure\n", + "calculation and fitting engines.\n", + "\n", + "#### Set Calculator" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ee832ff4", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.current_calculator = 'cryspy'" + ] + }, + { + "cell_type": "markdown", + "id": "16c0819b", + "metadata": {}, + "source": [ + "#### Set Minimizer" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d7c219f4", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.current_minimizer = 'lmfit (leastsq)'" + ] + }, + { + "cell_type": "markdown", + "id": "8a42680c", + "metadata": {}, + "source": [ + "#### Set Fitting Parameters\n", + "\n", + "Set sample model parameters to be optimized." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c173905d", + "metadata": {}, + "outputs": [], + "source": [ + "model_1.cell.length_a.free = True\n", + "model_1.atom_sites['Co'].b_iso.free = True\n", + "model_1.atom_sites['O'].b_iso.free = True\n", + "\n", + "model_2.cell.length_a.free = True" + ] + }, + { + "cell_type": "markdown", + "id": "e06b84ef", + "metadata": {}, + "source": [ + "Set experiment parameters to be optimized." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d8db1bc3", + "metadata": {}, + "outputs": [], + "source": [ + "experiment.linked_phases['lbco'].scale.free = True\n", + "experiment.linked_phases['si'].scale.free = True\n", + "\n", + "experiment.peak.broad_gauss_sigma_0.free = True\n", + "experiment.peak.broad_gauss_sigma_1.free = True\n", + "experiment.peak.broad_gauss_sigma_2.free = True\n", + "\n", + "experiment.peak.asym_alpha_1.free = True\n", + "experiment.peak.broad_mix_beta_0.free = True\n", + "experiment.peak.broad_mix_beta_1.free = True\n", + "\n", + "for point in experiment.background:\n", + " point.y.free = True" + ] + }, + { + "cell_type": "markdown", + "id": "284d4c5a", + "metadata": {}, + "source": [ + "#### Perform Fit" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "db080d7f", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.fit()" + ] + }, + { + "cell_type": "markdown", + "id": "bcafa998", + "metadata": {}, + "source": [ + "#### Plot Measured vs Calculated" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "be7579bd", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='mcstas')" + ] + } + ], + "metadata": { + "jupytext": { + "cell_metadata_filter": "-all", + "main_language": "python", + "notebook_metadata_filter": "-all" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/tutorials/dmsc-summer-school-2025_analysis-powder-diffraction.ipynb b/tutorials/dmsc-summer-school-2025_analysis-powder-diffraction.ipynb index c2e2bcc3..b74fbb0a 100644 --- a/tutorials/dmsc-summer-school-2025_analysis-powder-diffraction.ipynb +++ b/tutorials/dmsc-summer-school-2025_analysis-powder-diffraction.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "902e4d86", + "id": "731fe2c0", "metadata": {}, "source": [ "# Fitting Powder Diffraction data\n", @@ -31,7 +31,7 @@ { "cell_type": "code", "execution_count": null, - "id": "27d634f9", + "id": "9f6963c2", "metadata": {}, "outputs": [], "source": [ @@ -49,7 +49,7 @@ { "cell_type": "code", "execution_count": null, - "id": "39452a0a", + "id": "a4297ceb", "metadata": {}, "outputs": [], "source": [ @@ -58,7 +58,7 @@ }, { "cell_type": "markdown", - "id": "de7344ae", + "id": "40d65311", "metadata": {}, "source": [ "## 📘 Introduction: Simple Reference Fit – Si\n", @@ -86,7 +86,7 @@ { "cell_type": "code", "execution_count": null, - "id": "d4df77ab", + "id": "0cce74b0", "metadata": {}, "outputs": [], "source": [ @@ -95,7 +95,7 @@ }, { "cell_type": "markdown", - "id": "9c16f90a", + "id": "bb11e721", "metadata": {}, "source": [ "\n", @@ -108,7 +108,7 @@ { "cell_type": "code", "execution_count": null, - "id": "13f93ea5", + "id": "f1e46e26", "metadata": {}, "outputs": [], "source": [ @@ -118,7 +118,7 @@ }, { "cell_type": "markdown", - "id": "e49ee0be", + "id": "eaf9d25b", "metadata": {}, "source": [ "### 🔬 Create an Experiment\n", @@ -136,21 +136,20 @@ { "cell_type": "code", "execution_count": null, - "id": "a10e717b", + "id": "94ebeb18", "metadata": {}, "outputs": [], "source": [ "# To load the measured data from the EasyDiffraction repository, as\n", "# Google Colab does not have the data files needed for this tutorial.\n", "ed.download_from_repository('reduced_Si.xye',\n", - " branch='d-spacing',\n", " destination='data')" ] }, { "cell_type": "code", "execution_count": null, - "id": "72e414a2", + "id": "f4bc744b", "metadata": {}, "outputs": [], "source": [ @@ -160,7 +159,7 @@ { "cell_type": "code", "execution_count": null, - "id": "ca21bf10", + "id": "d729436d", "metadata": {}, "outputs": [], "source": [ @@ -175,7 +174,7 @@ }, { "cell_type": "markdown", - "id": "7e863800", + "id": "69f08bea", "metadata": {}, "source": [ "#### Inspect Measured Data\n", @@ -198,7 +197,7 @@ { "cell_type": "code", "execution_count": null, - "id": "6afc3669", + "id": "9471cfae", "metadata": {}, "outputs": [], "source": [ @@ -208,7 +207,7 @@ { "cell_type": "code", "execution_count": null, - "id": "e9799813", + "id": "8e8fc9b2", "metadata": {}, "outputs": [], "source": [ @@ -217,7 +216,7 @@ }, { "cell_type": "markdown", - "id": "6bc5c82b", + "id": "47783744", "metadata": {}, "source": [ "If you zoom in on the highest TOF peak (around 120,000 μs), you will notice\n", @@ -232,7 +231,7 @@ { "cell_type": "code", "execution_count": null, - "id": "20906b9f", + "id": "86fc982e", "metadata": {}, "outputs": [], "source": [ @@ -242,7 +241,7 @@ }, { "cell_type": "markdown", - "id": "b78e8f4f", + "id": "dcc0ee01", "metadata": {}, "source": [ "To visualize the effect of excluding the high TOF region, we can plot\n", @@ -253,7 +252,7 @@ { "cell_type": "code", "execution_count": null, - "id": "6ba0a364", + "id": "49e539da", "metadata": {}, "outputs": [], "source": [ @@ -262,7 +261,7 @@ }, { "cell_type": "markdown", - "id": "24c7b130", + "id": "600c43c1", "metadata": {}, "source": [ "#### Set Instrument Parameters\n", @@ -285,7 +284,7 @@ { "cell_type": "code", "execution_count": null, - "id": "c6eeee77", + "id": "bfe6ff00", "metadata": {}, "outputs": [], "source": [ @@ -299,7 +298,7 @@ }, { "cell_type": "markdown", - "id": "4650b60e", + "id": "f0d95f7e", "metadata": {}, "source": [ "Every parameters is an object, which has different attributes, such as\n", @@ -312,7 +311,7 @@ { "cell_type": "code", "execution_count": null, - "id": "34ce6882", + "id": "dccf7c6f", "metadata": {}, "outputs": [], "source": [ @@ -321,7 +320,7 @@ }, { "cell_type": "markdown", - "id": "bedc3ecb", + "id": "bd7395aa", "metadata": {}, "source": [ "The `value` attribute represents the current value of the parameter as a float.\n", @@ -335,7 +334,7 @@ { "cell_type": "code", "execution_count": null, - "id": "9f63737c", + "id": "2716491f", "metadata": {}, "outputs": [], "source": [ @@ -344,7 +343,7 @@ }, { "cell_type": "markdown", - "id": "e0efac03", + "id": "e3344b78", "metadata": {}, "source": [ "Note that to set the value of the parameter, you can simply assign a new value\n", @@ -353,7 +352,7 @@ }, { "cell_type": "markdown", - "id": "76654ebc", + "id": "2bc90707", "metadata": {}, "source": [ "#### Set Peak Profile Parameters\n", @@ -377,7 +376,7 @@ { "cell_type": "code", "execution_count": null, - "id": "c8186523", + "id": "c834906b", "metadata": {}, "outputs": [], "source": [ @@ -393,7 +392,7 @@ }, { "cell_type": "markdown", - "id": "29c73787", + "id": "9a32f7bb", "metadata": {}, "source": [ "#### Set Background\n", @@ -427,7 +426,7 @@ { "cell_type": "code", "execution_count": null, - "id": "9e44db58", + "id": "a2877517", "metadata": {}, "outputs": [], "source": [ @@ -443,7 +442,7 @@ }, { "cell_type": "markdown", - "id": "c2577d1e", + "id": "5aa86863", "metadata": {}, "source": [ "### 🧩 Create a Sample Model – Si\n", @@ -485,7 +484,7 @@ }, { "cell_type": "markdown", - "id": "9d516e9f", + "id": "75beb6ef", "metadata": {}, "source": [ "```\n", @@ -517,7 +516,7 @@ }, { "cell_type": "markdown", - "id": "0da19b61", + "id": "b9673b93", "metadata": {}, "source": [ "\n", @@ -531,7 +530,7 @@ { "cell_type": "code", "execution_count": null, - "id": "cfb3312b", + "id": "2e5208de", "metadata": {}, "outputs": [], "source": [ @@ -540,7 +539,7 @@ }, { "cell_type": "markdown", - "id": "34c913ef", + "id": "6ed38e53", "metadata": {}, "source": [ "#### Set Space Group" @@ -549,7 +548,7 @@ { "cell_type": "code", "execution_count": null, - "id": "015ba947", + "id": "039614e3", "metadata": {}, "outputs": [], "source": [ @@ -559,7 +558,7 @@ }, { "cell_type": "markdown", - "id": "d53cf8ce", + "id": "8d63e3b1", "metadata": {}, "source": [ "#### Set Lattice Parameters" @@ -568,7 +567,7 @@ { "cell_type": "code", "execution_count": null, - "id": "27761086", + "id": "d4a2a211", "metadata": {}, "outputs": [], "source": [ @@ -577,7 +576,7 @@ }, { "cell_type": "markdown", - "id": "e6065014", + "id": "3d126c09", "metadata": {}, "source": [ "#### Set Atom Sites" @@ -586,7 +585,7 @@ { "cell_type": "code", "execution_count": null, - "id": "119f9be6", + "id": "36438478", "metadata": {}, "outputs": [], "source": [ @@ -603,7 +602,7 @@ }, { "cell_type": "markdown", - "id": "eac3ad98", + "id": "279a018d", "metadata": {}, "source": [ "### 🔗 Assign Sample Model to Experiment\n", @@ -616,7 +615,7 @@ { "cell_type": "code", "execution_count": null, - "id": "3e3d07ef", + "id": "f0e9a9c1", "metadata": {}, "outputs": [], "source": [ @@ -625,7 +624,7 @@ }, { "cell_type": "markdown", - "id": "ab759622", + "id": "27607779", "metadata": {}, "source": [ "### 🚀 Analyze and Fit the Data\n", @@ -657,7 +656,7 @@ { "cell_type": "code", "execution_count": null, - "id": "65841d67", + "id": "0b7fb195", "metadata": {}, "outputs": [], "source": [ @@ -677,7 +676,7 @@ }, { "cell_type": "markdown", - "id": "26d062b7", + "id": "e4a531c3", "metadata": {}, "source": [ "#### Show Free Parameters\n", @@ -689,7 +688,7 @@ { "cell_type": "code", "execution_count": null, - "id": "2797d279", + "id": "9bada38e", "metadata": {}, "outputs": [], "source": [ @@ -698,7 +697,7 @@ }, { "cell_type": "markdown", - "id": "b2e021c6", + "id": "bd5478d1", "metadata": {}, "source": [ "#### Visualize Diffraction Patterns\n", @@ -714,7 +713,7 @@ { "cell_type": "code", "execution_count": null, - "id": "fb1db679", + "id": "3658c811", "metadata": {}, "outputs": [], "source": [ @@ -723,7 +722,7 @@ }, { "cell_type": "markdown", - "id": "ae971c1d", + "id": "b8654b10", "metadata": {}, "source": [ "#### Run Fitting\n", @@ -735,7 +734,7 @@ { "cell_type": "code", "execution_count": null, - "id": "5916a649", + "id": "e8816ac2", "metadata": {}, "outputs": [], "source": [ @@ -744,7 +743,7 @@ }, { "cell_type": "markdown", - "id": "4e198a2c", + "id": "cafb44a6", "metadata": {}, "source": [ "#### Check Fit Results\n", @@ -762,7 +761,7 @@ }, { "cell_type": "markdown", - "id": "fbd01da5", + "id": "e39f72be", "metadata": {}, "source": [ "#### Visualize Fit Results\n", @@ -776,7 +775,7 @@ { "cell_type": "code", "execution_count": null, - "id": "5d596863", + "id": "c3d96ef4", "metadata": {}, "outputs": [], "source": [ @@ -785,7 +784,7 @@ }, { "cell_type": "markdown", - "id": "fefbfd89", + "id": "5790ea81", "metadata": {}, "source": [ "#### TOF vs d-spacing\n", @@ -804,7 +803,7 @@ { "cell_type": "code", "execution_count": null, - "id": "b474d68e", + "id": "dfcc28e5", "metadata": {}, "outputs": [], "source": [ @@ -813,7 +812,7 @@ }, { "cell_type": "markdown", - "id": "119e0b7d", + "id": "8d71e3ac", "metadata": {}, "source": [ "As you can see, the calculated diffraction pattern now matches the measured\n", @@ -848,7 +847,7 @@ { "cell_type": "code", "execution_count": null, - "id": "1adef8dd", + "id": "ed160f8c", "metadata": {}, "outputs": [], "source": [ @@ -861,7 +860,7 @@ }, { "cell_type": "markdown", - "id": "3c5d72c6", + "id": "72738a50", "metadata": {}, "source": [ "### 🔬 Exercise 2: Define an Experiment\n", @@ -880,21 +879,20 @@ { "cell_type": "code", "execution_count": null, - "id": "4b0a255f", + "id": "1f17d585", "metadata": {}, "outputs": [], "source": [ "# To load the measured data from the EasyDiffraction repository, as\n", "# Google Colab does not have the data files needed for this tutorial.\n", "ed.download_from_repository('reduced_LBCO.xye',\n", - " branch='d-spacing',\n", " destination='data')" ] }, { "cell_type": "code", "execution_count": null, - "id": "97ffee5d", + "id": "8710d7f8", "metadata": {}, "outputs": [], "source": [ @@ -904,7 +902,7 @@ { "cell_type": "code", "execution_count": null, - "id": "4e46b573", + "id": "46e52cb6", "metadata": {}, "outputs": [], "source": [ @@ -919,7 +917,7 @@ }, { "cell_type": "markdown", - "id": "1ba9926f", + "id": "d4ec8b7e", "metadata": {}, "source": [ "#### Exercise 2.1: Inspect Measured Data\n", @@ -939,7 +937,7 @@ { "cell_type": "code", "execution_count": null, - "id": "12d28523", + "id": "477b5991", "metadata": {}, "outputs": [], "source": [ @@ -950,7 +948,7 @@ { "cell_type": "code", "execution_count": null, - "id": "41d33b71", + "id": "26f94f91", "metadata": {}, "outputs": [], "source": [ @@ -961,7 +959,7 @@ { "cell_type": "code", "execution_count": null, - "id": "12f7332c", + "id": "1bdfcd16", "metadata": {}, "outputs": [], "source": [ @@ -970,7 +968,7 @@ }, { "cell_type": "markdown", - "id": "f60fe31a", + "id": "86817647", "metadata": {}, "source": [ "#### Exercise 2.2: Set Instrument Parameters\n", @@ -986,7 +984,7 @@ { "cell_type": "code", "execution_count": null, - "id": "0602dcef", + "id": "52fc5af3", "metadata": {}, "outputs": [], "source": [ @@ -1000,7 +998,7 @@ }, { "cell_type": "markdown", - "id": "bd97c6df", + "id": "c0197cd3", "metadata": {}, "source": [ "#### Exercise 2.3: Set Peak Profile Parameters\n", @@ -1018,7 +1016,7 @@ { "cell_type": "code", "execution_count": null, - "id": "daec69f1", + "id": "be726ae3", "metadata": {}, "outputs": [], "source": [ @@ -1034,7 +1032,7 @@ }, { "cell_type": "markdown", - "id": "36c7b0b6", + "id": "34a8c3f0", "metadata": {}, "source": [ "#### Exercise 2.4: Set Background\n", @@ -1053,7 +1051,7 @@ { "cell_type": "code", "execution_count": null, - "id": "a850fe96", + "id": "3e7b7a27", "metadata": {}, "outputs": [], "source": [ @@ -1069,7 +1067,7 @@ }, { "cell_type": "markdown", - "id": "aee720ab", + "id": "7c6d4023", "metadata": {}, "source": [ "### 🧩 Exercise 3: Define a Sample Model – LBCO\n", @@ -1085,7 +1083,7 @@ }, { "cell_type": "markdown", - "id": "c357104b", + "id": "a67d23e7", "metadata": {}, "source": [ "```\n", @@ -1120,7 +1118,7 @@ }, { "cell_type": "markdown", - "id": "fe7f787a", + "id": "eea64c73", "metadata": {}, "source": [ "#### Exercise 3.1: Create Sample Model\n", @@ -1136,7 +1134,7 @@ { "cell_type": "code", "execution_count": null, - "id": "a081e43a", + "id": "ad27110f", "metadata": {}, "outputs": [], "source": [ @@ -1145,7 +1143,7 @@ }, { "cell_type": "markdown", - "id": "2aac3285", + "id": "ad7f9558", "metadata": {}, "source": [ "#### Exercise 3.2: Set Space Group\n", @@ -1160,7 +1158,7 @@ { "cell_type": "code", "execution_count": null, - "id": "39c8b8fa", + "id": "ae9f71b4", "metadata": {}, "outputs": [], "source": [ @@ -1170,7 +1168,7 @@ }, { "cell_type": "markdown", - "id": "b80d50d5", + "id": "3608b4f6", "metadata": {}, "source": [ "#### Exercise 3.3: Set Lattice Parameters\n", @@ -1185,7 +1183,7 @@ { "cell_type": "code", "execution_count": null, - "id": "87ff71a6", + "id": "2b886f81", "metadata": {}, "outputs": [], "source": [ @@ -1194,7 +1192,7 @@ }, { "cell_type": "markdown", - "id": "863eb3c0", + "id": "a0f44933", "metadata": {}, "source": [ "#### Exercise 3.4: Set Atom Sites\n", @@ -1211,7 +1209,7 @@ { "cell_type": "code", "execution_count": null, - "id": "87a280a6", + "id": "c3bc62cc", "metadata": {}, "outputs": [], "source": [ @@ -1257,7 +1255,7 @@ }, { "cell_type": "markdown", - "id": "b5562be3", + "id": "63d5d943", "metadata": {}, "source": [ "### 🔗 Exercise 4: Assign Sample Model to Experiment\n", @@ -1272,7 +1270,7 @@ { "cell_type": "code", "execution_count": null, - "id": "e73c1d5b", + "id": "1c343234", "metadata": {}, "outputs": [], "source": [ @@ -1281,7 +1279,7 @@ }, { "cell_type": "markdown", - "id": "f47971d2", + "id": "31801700", "metadata": {}, "source": [ "### 🚀 Exercise 5: Analyze and Fit the Data\n", @@ -1301,7 +1299,7 @@ { "cell_type": "code", "execution_count": null, - "id": "e66fa8cf", + "id": "992386bb", "metadata": {}, "outputs": [], "source": [ @@ -1313,7 +1311,7 @@ }, { "cell_type": "markdown", - "id": "8aab9cda", + "id": "92609423", "metadata": {}, "source": [ "#### Exercise 5.2: Run Fitting\n", @@ -1332,7 +1330,7 @@ { "cell_type": "code", "execution_count": null, - "id": "96d70a36", + "id": "32f49d46", "metadata": {}, "outputs": [], "source": [ @@ -1342,7 +1340,7 @@ { "cell_type": "code", "execution_count": null, - "id": "c10a0430", + "id": "1887bf6f", "metadata": {}, "outputs": [], "source": [ @@ -1351,7 +1349,7 @@ }, { "cell_type": "markdown", - "id": "21771dca", + "id": "5a0d5c93", "metadata": {}, "source": [ "#### Exercise 5.3: Find the Misfit in the Fit\n", @@ -1380,7 +1378,7 @@ { "cell_type": "code", "execution_count": null, - "id": "b5ecdfce", + "id": "08b72654", "metadata": {}, "outputs": [], "source": [ @@ -1389,7 +1387,7 @@ }, { "cell_type": "markdown", - "id": "1ff89ab5", + "id": "8dc9903a", "metadata": {}, "source": [ "#### Exercise 5.4: Refine the LBCO Lattice Parameter\n", @@ -1405,7 +1403,7 @@ { "cell_type": "code", "execution_count": null, - "id": "4842e297", + "id": "3afeda2d", "metadata": {}, "outputs": [], "source": [ @@ -1415,7 +1413,7 @@ { "cell_type": "code", "execution_count": null, - "id": "ff756f2e", + "id": "30ff4f74", "metadata": {}, "outputs": [], "source": [ @@ -1425,7 +1423,7 @@ { "cell_type": "code", "execution_count": null, - "id": "250674ea", + "id": "ec55b151", "metadata": {}, "outputs": [], "source": [ @@ -1434,7 +1432,7 @@ }, { "cell_type": "markdown", - "id": "a86bee0a", + "id": "41348232", "metadata": {}, "source": [ "One of the main goals of this study was to refine the lattice parameter of the LBCO phase. As shown in the updated fit results, the overall fit has improved significantly, even though the change in cell length is less than 1% of the initial value. This demonstrates how even a small adjustment to the lattice parameter can have a substantial impact on the quality of the fit." @@ -1442,7 +1440,7 @@ }, { "cell_type": "markdown", - "id": "39551f16", + "id": "6d4b37d2", "metadata": {}, "source": [ "#### Exercise 5.5: Visualize the Fit Results in d-spacing\n", @@ -1458,7 +1456,7 @@ { "cell_type": "code", "execution_count": null, - "id": "a55ad1c4", + "id": "5a94d042", "metadata": {}, "outputs": [], "source": [ @@ -1467,7 +1465,7 @@ }, { "cell_type": "markdown", - "id": "23d31ecc", + "id": "bc4d8c36", "metadata": {}, "source": [ "#### Exercise 5.6: Refine the Peak Profile Parameters\n", @@ -1486,7 +1484,7 @@ { "cell_type": "code", "execution_count": null, - "id": "8e54bf83", + "id": "600a3a67", "metadata": {}, "outputs": [], "source": [ @@ -1495,7 +1493,7 @@ }, { "cell_type": "markdown", - "id": "a2ef3e32", + "id": "e336b5a4", "metadata": {}, "source": [ "The peak profile parameters are determined based on both the instrument\n", @@ -1515,7 +1513,7 @@ { "cell_type": "code", "execution_count": null, - "id": "0db388ec", + "id": "b88d01fb", "metadata": {}, "outputs": [], "source": [ @@ -1531,7 +1529,7 @@ { "cell_type": "code", "execution_count": null, - "id": "8102bbe9", + "id": "6457c47a", "metadata": {}, "outputs": [], "source": [ @@ -1541,7 +1539,7 @@ { "cell_type": "code", "execution_count": null, - "id": "c8e16df1", + "id": "e83f8963", "metadata": {}, "outputs": [], "source": [ @@ -1550,7 +1548,7 @@ }, { "cell_type": "markdown", - "id": "8eba2fac", + "id": "b2dec321", "metadata": {}, "source": [ "#### Exercise 5.7: Find Undefined Features\n", @@ -1570,7 +1568,7 @@ { "cell_type": "code", "execution_count": null, - "id": "acb4ef20", + "id": "e82d544d", "metadata": {}, "outputs": [], "source": [ @@ -1579,7 +1577,7 @@ }, { "cell_type": "markdown", - "id": "640e35d9", + "id": "0f346cd7", "metadata": {}, "source": [ "#### Exercise 5.8: Identify the Cause of the Unexplained Peaks\n", @@ -1605,7 +1603,7 @@ }, { "cell_type": "markdown", - "id": "6cdbb630", + "id": "10ec40e9", "metadata": {}, "source": [ "#### Exercise 5.9: Identify the impurity phase\n", @@ -1627,7 +1625,7 @@ { "cell_type": "code", "execution_count": null, - "id": "052ef93f", + "id": "c1b73ea2", "metadata": {}, "outputs": [], "source": [ @@ -1637,7 +1635,7 @@ }, { "cell_type": "markdown", - "id": "c1e12324", + "id": "e988dd19", "metadata": {}, "source": [ "#### Exercise 5.10: Create a Second Sample Model – Si as Impurity\n", @@ -1655,7 +1653,7 @@ }, { "cell_type": "markdown", - "id": "9f1a3666", + "id": "e79ea35c", "metadata": {}, "source": [ "**Set Space Group**" @@ -1664,7 +1662,7 @@ { "cell_type": "code", "execution_count": null, - "id": "b971f115", + "id": "45c8f6e2", "metadata": {}, "outputs": [], "source": [ @@ -1674,7 +1672,7 @@ { "cell_type": "code", "execution_count": null, - "id": "b8442af8", + "id": "2eae8fec", "metadata": {}, "outputs": [], "source": [ @@ -1684,7 +1682,7 @@ }, { "cell_type": "markdown", - "id": "16d50271", + "id": "5c8f2e84", "metadata": {}, "source": [ "**Set Lattice Parameters**" @@ -1693,7 +1691,7 @@ { "cell_type": "code", "execution_count": null, - "id": "a47cb8e6", + "id": "849a0132", "metadata": {}, "outputs": [], "source": [ @@ -1702,7 +1700,7 @@ }, { "cell_type": "markdown", - "id": "41229e56", + "id": "f8d8b5cd", "metadata": {}, "source": [ "**Set Atom Sites**" @@ -1711,7 +1709,7 @@ { "cell_type": "code", "execution_count": null, - "id": "8b4ae4bf", + "id": "9984b3d8", "metadata": {}, "outputs": [], "source": [ @@ -1728,7 +1726,7 @@ }, { "cell_type": "markdown", - "id": "74b5370d", + "id": "8218a57d", "metadata": {}, "source": [ "**🔗 Assign Sample Model to Experiment**" @@ -1737,7 +1735,7 @@ { "cell_type": "code", "execution_count": null, - "id": "66970e6f", + "id": "f1153ceb", "metadata": {}, "outputs": [], "source": [ @@ -1746,7 +1744,7 @@ }, { "cell_type": "markdown", - "id": "365840c4", + "id": "3b561b61", "metadata": {}, "source": [ "#### Exercise 5.11: Refine the Scale of the Si Phase\n", @@ -1772,7 +1770,7 @@ { "cell_type": "code", "execution_count": null, - "id": "bada2fb4", + "id": "bc703e64", "metadata": {}, "outputs": [], "source": [ @@ -1781,7 +1779,7 @@ }, { "cell_type": "markdown", - "id": "ec0e0d50", + "id": "e9e82c0f", "metadata": {}, "source": [ "As you can see, the calculated pattern is now the sum of both phases,\n", @@ -1794,7 +1792,7 @@ { "cell_type": "code", "execution_count": null, - "id": "969cbfb1", + "id": "88a75519", "metadata": {}, "outputs": [], "source": [ @@ -1803,7 +1801,7 @@ }, { "cell_type": "markdown", - "id": "2db13c55", + "id": "f7759b37", "metadata": {}, "source": [ "**Run Fitting**\n", @@ -1814,7 +1812,7 @@ { "cell_type": "code", "execution_count": null, - "id": "ca1a63c5", + "id": "8a0b7fbf", "metadata": {}, "outputs": [], "source": [ @@ -1823,7 +1821,7 @@ }, { "cell_type": "markdown", - "id": "1b85eafb", + "id": "e2bd645b", "metadata": {}, "source": [ "**Visualize Fit Results**\n", @@ -1836,7 +1834,7 @@ { "cell_type": "code", "execution_count": null, - "id": "668f5c29", + "id": "b0d398af", "metadata": {}, "outputs": [], "source": [ @@ -1846,7 +1844,7 @@ { "cell_type": "code", "execution_count": null, - "id": "6f5f7afc", + "id": "e4dc5b8b", "metadata": {}, "outputs": [], "source": [ @@ -1855,7 +1853,7 @@ }, { "cell_type": "markdown", - "id": "a418ffa1", + "id": "51a54070", "metadata": {}, "source": [ "All previously unexplained peaks are now accounted for in the pattern, and the fit is improved.\n", @@ -1874,7 +1872,7 @@ }, { "cell_type": "markdown", - "id": "07275b55", + "id": "65e8470b", "metadata": {}, "source": [ "## 🎁 Bonus\n", diff --git a/tutorials/pdf_pd-neut-cwl_Ni.ipynb b/tutorials/pdf_pd-neut-cwl_Ni.ipynb new file mode 100644 index 00000000..093d0236 --- /dev/null +++ b/tutorials/pdf_pd-neut-cwl_Ni.ipynb @@ -0,0 +1,238 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "660ae07b", + "metadata": {}, + "source": [ + "# Pair Distribution Function: Ni, NPD\n", + "\n", + "This example demonstrates a pair distribution function (PDF) analysis of Ni,\n", + "based on data collected from a constant wavelength neutron powder diffraction\n", + "experiment.\n", + "\n", + "The dataset is taken from:\n", + "https://github.com/diffpy/cmi_exchange/blob/main/cmi_scripts/fitNiPDF" + ] + }, + { + "cell_type": "markdown", + "id": "808242e7", + "metadata": {}, + "source": [ + "## Import Library" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "adc34b39", + "metadata": {}, + "outputs": [], + "source": [ + "import easydiffraction as ed" + ] + }, + { + "cell_type": "markdown", + "id": "43d87a8f", + "metadata": {}, + "source": [ + "## Create Project" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6735664b", + "metadata": {}, + "outputs": [], + "source": [ + "project = ed.Project()" + ] + }, + { + "cell_type": "markdown", + "id": "f1f36efb", + "metadata": {}, + "source": [ + "## Set Plotting Engine" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "aeda2ae0", + "metadata": {}, + "outputs": [], + "source": [ + "project.plotter.engine = 'plotly'" + ] + }, + { + "cell_type": "markdown", + "id": "d9f46cad", + "metadata": {}, + "source": [ + "## Add Sample Model" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6ad3fa33", + "metadata": {}, + "outputs": [], + "source": [ + "project.sample_models.add(name='ni')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8c971e17", + "metadata": {}, + "outputs": [], + "source": [ + "project.sample_models['ni'].space_group.name_h_m = 'F m -3 m'\n", + "project.sample_models['ni'].space_group.it_coordinate_system_code = '1'\n", + "project.sample_models['ni'].cell.length_a = 3.52387\n", + "project.sample_models['ni'].atom_sites.add(label='Ni',\n", + " type_symbol='Ni',\n", + " fract_x=0.,\n", + " fract_y=0.,\n", + " fract_z=0.,\n", + " wyckoff_letter='a',\n", + " b_iso=0.5)" + ] + }, + { + "cell_type": "markdown", + "id": "27eb6d26", + "metadata": {}, + "source": [ + "## Add Experiment" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b3c6d8c3", + "metadata": {}, + "outputs": [], + "source": [ + "ed.download_from_repository('ni-q27r100-neutron_from-2.gr',\n", + " destination='data')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "19b37ecd", + "metadata": {}, + "outputs": [], + "source": [ + "project.experiments.add(name='pdf',\n", + " sample_form='powder',\n", + " beam_mode='constant wavelength',\n", + " radiation_probe='neutron',\n", + " scattering_type='total',\n", + " data_path = 'data/ni-q27r100-neutron_from-2.gr')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "52d1a3da", + "metadata": {}, + "outputs": [], + "source": [ + "project.experiments['pdf'].linked_phases.add(id='ni', scale=1.)\n", + "project.experiments['pdf'].peak.damp_q = 0\n", + "project.experiments['pdf'].peak.broad_q = 0.03\n", + "project.experiments['pdf'].peak.cutoff_q = 27.0\n", + "project.experiments['pdf'].peak.sharp_delta_1 = 0.0\n", + "project.experiments['pdf'].peak.sharp_delta_2 = 2.0\n", + "project.experiments['pdf'].peak.damp_particle_diameter = 0" + ] + }, + { + "cell_type": "markdown", + "id": "b58e975f", + "metadata": {}, + "source": [ + "## Select Fitting Parameters" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4a65e6d3", + "metadata": {}, + "outputs": [], + "source": [ + "project.sample_models['ni'].cell.length_a.free = True\n", + "project.sample_models['ni'].atom_sites['Ni'].b_iso.free = True" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b284d1b1", + "metadata": {}, + "outputs": [], + "source": [ + "project.experiments['pdf'].linked_phases['ni'].scale.free = True\n", + "project.experiments['pdf'].peak.broad_q.free = True\n", + "project.experiments['pdf'].peak.sharp_delta_2.free = True" + ] + }, + { + "cell_type": "markdown", + "id": "2482a8b4", + "metadata": {}, + "source": [ + "## Run Fitting" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4c12ff6b", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.current_calculator = 'pdffit'\n", + "project.analysis.fit()" + ] + }, + { + "cell_type": "markdown", + "id": "c6a032e8", + "metadata": {}, + "source": [ + "## Plot Measured vs Calculated" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "848a0e10", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='pdf',\n", + " show_residual=True)" + ] + } + ], + "metadata": { + "jupytext": { + "cell_metadata_filter": "-all", + "main_language": "python", + "notebook_metadata_filter": "-all" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/tutorials/pdf_pd-neut-tof_Si-NOMAD.ipynb b/tutorials/pdf_pd-neut-tof_Si-NOMAD.ipynb new file mode 100644 index 00000000..39c4e8b6 --- /dev/null +++ b/tutorials/pdf_pd-neut-tof_Si-NOMAD.ipynb @@ -0,0 +1,240 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "e5847958", + "metadata": {}, + "source": [ + "# Pair Distribution Function: Si, NPD\n", + "\n", + "This example demonstrates a pair distribution function (PDF) analysis of Si,\n", + "based on data collected from a time-of-flight neutron powder diffraction\n", + "experiment at NOMAD at SNS." + ] + }, + { + "cell_type": "markdown", + "id": "e50b32b8", + "metadata": {}, + "source": [ + "## Import Library" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "15a9f49f", + "metadata": {}, + "outputs": [], + "source": [ + "import easydiffraction as ed" + ] + }, + { + "cell_type": "markdown", + "id": "0fb7821b", + "metadata": {}, + "source": [ + "## Create Project" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "879862aa", + "metadata": {}, + "outputs": [], + "source": [ + "project = ed.Project()" + ] + }, + { + "cell_type": "markdown", + "id": "df8d3a11", + "metadata": {}, + "source": [ + "## Set Plotting Engine" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e763b484", + "metadata": {}, + "outputs": [], + "source": [ + "project.plotter.engine = 'plotly'\n", + "project.plotter.x_max = 40" + ] + }, + { + "cell_type": "markdown", + "id": "42f57011", + "metadata": {}, + "source": [ + "## Add Sample Model" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ff7c77cd", + "metadata": {}, + "outputs": [], + "source": [ + "project.sample_models.add(name='si')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "41a2edd6", + "metadata": {}, + "outputs": [], + "source": [ + "sample_model = project.sample_models['si']\n", + "sample_model.space_group.name_h_m.value = 'F d -3 m'\n", + "sample_model.space_group.it_coordinate_system_code = '1'\n", + "sample_model.cell.length_a = 5.43146\n", + "sample_model.atom_sites.add(label='Si',\n", + " type_symbol='Si',\n", + " fract_x=0,\n", + " fract_y=0,\n", + " fract_z=0,\n", + " wyckoff_letter='a',\n", + " b_iso=0.5)" + ] + }, + { + "cell_type": "markdown", + "id": "0b9afb30", + "metadata": {}, + "source": [ + "## Add Experiment" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "008ff02a", + "metadata": {}, + "outputs": [], + "source": [ + "ed.download_from_repository('NOM_9999_Si_640g_PAC_50_ff_ftfrgr_up-to-50.gr',\n", + " destination='data')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c62150dd", + "metadata": {}, + "outputs": [], + "source": [ + "project.experiments.add(name='nomad',\n", + " sample_form='powder',\n", + " beam_mode='time-of-flight',\n", + " radiation_probe='neutron',\n", + " scattering_type='total',\n", + " data_path = 'data/NOM_9999_Si_640g_PAC_50_ff_ftfrgr_up-to-50.gr')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3b954bf6", + "metadata": {}, + "outputs": [], + "source": [ + "experiment = project.experiments['nomad']\n", + "experiment.linked_phases.add(id='si', scale=1.)\n", + "experiment.peak.damp_q = 0.02\n", + "experiment.peak.broad_q = 0.03\n", + "experiment.peak.cutoff_q = 35.0\n", + "experiment.peak.sharp_delta_1 = 0.0\n", + "experiment.peak.sharp_delta_2 = 4.0\n", + "experiment.peak.damp_particle_diameter = 0" + ] + }, + { + "cell_type": "markdown", + "id": "86ecb87c", + "metadata": {}, + "source": [ + "## Select Fitting Parameters" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "617459b6", + "metadata": {}, + "outputs": [], + "source": [ + "project.sample_models['si'].cell.length_a.free = True\n", + "project.sample_models['si'].atom_sites['Si'].b_iso.free = True\n", + "experiment.linked_phases['si'].scale.free = True" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "46e757b9", + "metadata": {}, + "outputs": [], + "source": [ + "experiment.peak.damp_q.free = True\n", + "experiment.peak.broad_q.free = True\n", + "experiment.peak.sharp_delta_1.free = True\n", + "experiment.peak.sharp_delta_2.free = True" + ] + }, + { + "cell_type": "markdown", + "id": "45498cf9", + "metadata": {}, + "source": [ + "## Run Fitting" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a0feb463", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.current_calculator = 'pdffit'\n", + "project.analysis.fit()" + ] + }, + { + "cell_type": "markdown", + "id": "7464ea79", + "metadata": {}, + "source": [ + "## Plot Measured vs Calculated" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "08e3845b", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='nomad',\n", + " show_residual=False)" + ] + } + ], + "metadata": { + "jupytext": { + "cell_metadata_filter": "-all", + "main_language": "python", + "notebook_metadata_filter": "-all" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/tutorials/pdf_pd-xray_NaCl.ipynb b/tutorials/pdf_pd-xray_NaCl.ipynb new file mode 100644 index 00000000..58c55f5c --- /dev/null +++ b/tutorials/pdf_pd-xray_NaCl.ipynb @@ -0,0 +1,285 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "6b5c0d47", + "metadata": {}, + "source": [ + "# Pair Distribution Function: NaCl, XRD\n", + "\n", + "This example demonstrates a pair distribution function (PDF) analysis of\n", + "NaCl, based on data collected from an X-ray powder diffraction experiment.\n", + "\n", + "The dataset is taken from:\n", + "https://github.com/diffpy/add2019-diffpy-cmi/tree/master" + ] + }, + { + "cell_type": "markdown", + "id": "e92d3d55", + "metadata": {}, + "source": [ + "## Import Library" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "83b59289", + "metadata": {}, + "outputs": [], + "source": [ + "import easydiffraction as ed" + ] + }, + { + "cell_type": "markdown", + "id": "912f42db", + "metadata": {}, + "source": [ + "## Create Project" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f8ffc809", + "metadata": {}, + "outputs": [], + "source": [ + "project = ed.Project()" + ] + }, + { + "cell_type": "markdown", + "id": "4d19f5f1", + "metadata": {}, + "source": [ + "## Set Plotting Engine" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "bb938b29", + "metadata": {}, + "outputs": [], + "source": [ + "project.plotter.engine = 'plotly'\n", + "project.plotter.x_min = 2.0\n", + "project.plotter.x_max = 30.0" + ] + }, + { + "cell_type": "markdown", + "id": "e372b419", + "metadata": {}, + "source": [ + "## Add Sample Model" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ad1cb4c2", + "metadata": {}, + "outputs": [], + "source": [ + "project.sample_models.add(name='nacl')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3f43c465", + "metadata": {}, + "outputs": [], + "source": [ + "project.sample_models['nacl'].space_group.name_h_m = 'F m -3 m'\n", + "project.sample_models['nacl'].space_group.it_coordinate_system_code = '1'\n", + "project.sample_models['nacl'].cell.length_a = 5.62\n", + "project.sample_models['nacl'].atom_sites.add(label='Na',\n", + " type_symbol='Na',\n", + " fract_x=0,\n", + " fract_y=0,\n", + " fract_z=0,\n", + " wyckoff_letter='a',\n", + " b_iso=1.0)\n", + "project.sample_models['nacl'].atom_sites.add(label='Cl',\n", + " type_symbol='Cl',\n", + " fract_x=0.5,\n", + " fract_y=0.5,\n", + " fract_z=0.5,\n", + " wyckoff_letter='b',\n", + " b_iso=1.0)" + ] + }, + { + "cell_type": "markdown", + "id": "9be520b7", + "metadata": {}, + "source": [ + "## Add Experiment" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "cbb0de7c", + "metadata": {}, + "outputs": [], + "source": [ + "ed.download_from_repository('NaCl.gr',\n", + " destination='data')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a1035826", + "metadata": {}, + "outputs": [], + "source": [ + "project.experiments.add(name='xray_pdf',\n", + " sample_form='powder',\n", + " beam_mode='constant wavelength',\n", + " radiation_probe='xray',\n", + " scattering_type='total',\n", + " data_path = 'data/NaCl.gr')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b97ab539", + "metadata": {}, + "outputs": [], + "source": [ + "project.experiments['xray_pdf'].show_supported_peak_profile_types()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1a6ea129", + "metadata": {}, + "outputs": [], + "source": [ + "project.experiments['xray_pdf'].show_current_peak_profile_type()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c9b93dc2", + "metadata": {}, + "outputs": [], + "source": [ + "project.experiments['xray_pdf'].peak_profile_type = 'gaussian-damped-sinc'" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e82daf8d", + "metadata": {}, + "outputs": [], + "source": [ + "project.experiments['xray_pdf'].peak.damp_q = 0.03\n", + "project.experiments['xray_pdf'].peak.broad_q = 0\n", + "project.experiments['xray_pdf'].peak.cutoff_q = 21\n", + "project.experiments['xray_pdf'].peak.sharp_delta_1 = 0\n", + "project.experiments['xray_pdf'].peak.sharp_delta_2 = 5\n", + "project.experiments['xray_pdf'].peak.damp_particle_diameter = 0" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "593cbb36", + "metadata": {}, + "outputs": [], + "source": [ + "project.experiments['xray_pdf'].linked_phases.add(id='nacl', scale=0.5)" + ] + }, + { + "cell_type": "markdown", + "id": "91bbd38c", + "metadata": {}, + "source": [ + "## Select Fitting Parameters" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "689bb503", + "metadata": {}, + "outputs": [], + "source": [ + "project.sample_models['nacl'].cell.length_a.free = True\n", + "project.sample_models['nacl'].atom_sites['Na'].b_iso.free = True\n", + "project.sample_models['nacl'].atom_sites['Cl'].b_iso.free = True" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5d6c1d3d", + "metadata": {}, + "outputs": [], + "source": [ + "project.experiments['xray_pdf'].linked_phases['nacl'].scale.free = True\n", + "project.experiments['xray_pdf'].peak.damp_q.free = True\n", + "project.experiments['xray_pdf'].peak.sharp_delta_2.free = True" + ] + }, + { + "cell_type": "markdown", + "id": "ed9a6a07", + "metadata": {}, + "source": [ + "## Run Fitting" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a8985222", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.current_calculator = 'pdffit'\n", + "project.analysis.fit()" + ] + }, + { + "cell_type": "markdown", + "id": "52e668f0", + "metadata": {}, + "source": [ + "## Plot Measured vs Calculated" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7a757532", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='xray_pdf')" + ] + } + ], + "metadata": { + "jupytext": { + "cell_metadata_filter": "-all", + "main_language": "python", + "notebook_metadata_filter": "-all" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/tutorials/quick_single-fit_pd-neut-cwl_LBCO-HRPT.ipynb b/tutorials/quick_single-fit_pd-neut-cwl_LBCO-HRPT.ipynb new file mode 100644 index 00000000..1e05239b --- /dev/null +++ b/tutorials/quick_single-fit_pd-neut-cwl_LBCO-HRPT.ipynb @@ -0,0 +1,303 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "9bb2a2f5", + "metadata": {}, + "source": [ + "# Structure Refinement: LBCO, HRPT\n", + "\n", + "This minimalistic example is designed to be as compact as possible for a\n", + "Rietveld refinement of a crystal structure using constant-wavelength neutron\n", + "powder diffraction data for La0.5Ba0.5CoO3 from HRPT at PSI.\n", + "\n", + "It does not contain any advanced features or options, and includes no\n", + "comments or explanations—these can be found in the other tutorials.\n", + "Default values are used for all parameters if not specified. Only essential\n", + "and self-explanatory code is provided.\n", + "\n", + "The example is intended for users who are already familiar with the\n", + "EasyDiffraction library and want to quickly get started with a simple\n", + "refinement. It is also useful for those who want to see what a refinement\n", + "might look like in code. For a more detailed explanation of the code, please\n", + "refer to the other tutorials." + ] + }, + { + "cell_type": "markdown", + "id": "7f8961c6", + "metadata": {}, + "source": [ + "## Import Library" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a3358efe", + "metadata": {}, + "outputs": [], + "source": [ + "import easydiffraction as ed" + ] + }, + { + "cell_type": "markdown", + "id": "f1284474", + "metadata": {}, + "source": [ + "## Step 1: Define Project" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "582e0cf5", + "metadata": {}, + "outputs": [], + "source": [ + "project = ed.Project()" + ] + }, + { + "cell_type": "markdown", + "id": "9b3a6c01", + "metadata": {}, + "source": [ + "## Step 2: Define Sample Model" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1554aea1", + "metadata": {}, + "outputs": [], + "source": [ + "project.sample_models.add(name='lbco')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "346fc60e", + "metadata": {}, + "outputs": [], + "source": [ + "sample_model = project.sample_models['lbco']" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "64c3e5db", + "metadata": {}, + "outputs": [], + "source": [ + "sample_model.space_group.name_h_m = 'P m -3 m'\n", + "sample_model.space_group.it_coordinate_system_code = '1'" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d28712a4", + "metadata": {}, + "outputs": [], + "source": [ + "sample_model.cell.length_a = 3.88" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "37540484", + "metadata": {}, + "outputs": [], + "source": [ + "sample_model.atom_sites.add('La', 'La', 0, 0, 0, b_iso=0.5, occupancy=0.5)\n", + "sample_model.atom_sites.add('Ba', 'Ba', 0, 0, 0, b_iso=0.5, occupancy=0.5)\n", + "sample_model.atom_sites.add('Co', 'Co', 0.5, 0.5, 0.5, b_iso=0.5)\n", + "sample_model.atom_sites.add('O', 'O', 0, 0.5, 0.5, b_iso=0.5)" + ] + }, + { + "cell_type": "markdown", + "id": "19a00f11", + "metadata": {}, + "source": [ + "## Step 3: Define Experiment" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6922222b", + "metadata": {}, + "outputs": [], + "source": [ + "ed.download_from_repository('hrpt_lbco.xye',\n", + " destination='data')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "58baac4e", + "metadata": {}, + "outputs": [], + "source": [ + "project.experiments.add(name='hrpt',\n", + " sample_form='powder',\n", + " beam_mode='constant wavelength',\n", + " radiation_probe='neutron',\n", + " data_path='data/hrpt_lbco.xye')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1517e456", + "metadata": {}, + "outputs": [], + "source": [ + "experiment = project.experiments['hrpt']" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "47d30133", + "metadata": {}, + "outputs": [], + "source": [ + "experiment.instrument.setup_wavelength = 1.494\n", + "experiment.instrument.calib_twotheta_offset = 0.6" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ec1fd1d2", + "metadata": {}, + "outputs": [], + "source": [ + "experiment.peak.broad_gauss_u = 0.1\n", + "experiment.peak.broad_gauss_v = -0.1\n", + "experiment.peak.broad_gauss_w = 0.1\n", + "experiment.peak.broad_lorentz_y = 0.1" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2b3df2ee", + "metadata": {}, + "outputs": [], + "source": [ + "experiment.background.add(x=10, y=170)\n", + "experiment.background.add(x=30, y=170)\n", + "experiment.background.add(x=50, y=170)\n", + "experiment.background.add(x=110, y=170)\n", + "experiment.background.add(x=165, y=170)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "45886cb2", + "metadata": {}, + "outputs": [], + "source": [ + "experiment.excluded_regions.add(minimum=0, maximum=5)\n", + "experiment.excluded_regions.add(minimum=165, maximum=180)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7da72cff", + "metadata": {}, + "outputs": [], + "source": [ + "experiment.linked_phases.add(id='lbco', scale=10.0)" + ] + }, + { + "cell_type": "markdown", + "id": "0b0c3557", + "metadata": {}, + "source": [ + "## Step 4: Perform Analysis" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c70ec415", + "metadata": {}, + "outputs": [], + "source": [ + "sample_model.cell.length_a.free = True\n", + "\n", + "sample_model.atom_sites['La'].b_iso.free = True\n", + "sample_model.atom_sites['Ba'].b_iso.free = True\n", + "sample_model.atom_sites['Co'].b_iso.free = True\n", + "sample_model.atom_sites['O'].b_iso.free = True" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "727f375b", + "metadata": {}, + "outputs": [], + "source": [ + "experiment.instrument.calib_twotheta_offset.free = True\n", + "\n", + "experiment.peak.broad_gauss_u.free = True\n", + "experiment.peak.broad_gauss_v.free = True\n", + "experiment.peak.broad_gauss_w.free = True\n", + "experiment.peak.broad_lorentz_y.free = True\n", + "\n", + "experiment.background['10'].y.free = True\n", + "experiment.background['30'].y.free = True\n", + "experiment.background['50'].y.free = True\n", + "experiment.background['110'].y.free = True\n", + "experiment.background['165'].y.free = True\n", + "\n", + "experiment.linked_phases['lbco'].scale.free = True" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "861a32e5", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.fit()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7426c22d", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='hrpt',\n", + " show_residual=True)" + ] + } + ], + "metadata": { + "jupytext": { + "cell_metadata_filter": "-all", + "main_language": "python", + "notebook_metadata_filter": "-all" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} From b2cc8f8dc84d4efd6018c1dbb2710d13272ee930 Mon Sep 17 00:00:00 2001 From: Andrew Sazonov Date: Fri, 8 Aug 2025 12:23:20 +0200 Subject: [PATCH 03/43] Auto-rename all cell ids using nbstripout --- ...ced_joint-fit_pd-neut-xray-cwl_PbSO4.ipynb | 126 +++--- ...sic_single-fit_pd-neut-cwl_LBCO-HRPT.ipynb | 362 +++++++++--------- .../cryst-struct_pd-neut-cwl_CoSiO4-D20.ipynb | 122 +++--- .../cryst-struct_pd-neut-cwl_HS-HRPT.ipynb | 166 ++++---- .../cryst-struct_pd-neut-tof_Si-SEPD.ipynb | 154 ++++---- ...ruct_pd-neut-tof_multidata_NCAF-WISH.ipynb | 120 +++--- ...d-neut-tof_multiphase-LBCO-Si_McStas.ipynb | 132 +++---- ...ool-2025_analysis-powder-diffraction.ipynb | 256 ++++++------- tutorials/pdf_pd-neut-cwl_Ni.ipynb | 42 +- tutorials/pdf_pd-neut-tof_Si-NOMAD.ipynb | 42 +- tutorials/pdf_pd-xray_NaCl.ipynb | 50 +-- ...ick_single-fit_pd-neut-cwl_LBCO-HRPT.ipynb | 50 +-- 12 files changed, 811 insertions(+), 811 deletions(-) diff --git a/tutorials/advanced_joint-fit_pd-neut-xray-cwl_PbSO4.ipynb b/tutorials/advanced_joint-fit_pd-neut-xray-cwl_PbSO4.ipynb index 1f74bb59..eb6fe642 100644 --- a/tutorials/advanced_joint-fit_pd-neut-xray-cwl_PbSO4.ipynb +++ b/tutorials/advanced_joint-fit_pd-neut-xray-cwl_PbSO4.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "78ed0b5f", + "id": "0", "metadata": {}, "source": [ "# Structure Refinement: PbSO4, NPD + XRD\n", @@ -19,7 +19,7 @@ }, { "cell_type": "markdown", - "id": "42b9f8f9", + "id": "1", "metadata": {}, "source": [ "## Import Library" @@ -28,7 +28,7 @@ { "cell_type": "code", "execution_count": null, - "id": "3814dea1", + "id": "2", "metadata": {}, "outputs": [], "source": [ @@ -42,7 +42,7 @@ }, { "cell_type": "markdown", - "id": "4671188b", + "id": "3", "metadata": {}, "source": [ "## Define Sample Model\n", @@ -55,7 +55,7 @@ { "cell_type": "code", "execution_count": null, - "id": "a5cef4aa", + "id": "4", "metadata": {}, "outputs": [], "source": [ @@ -64,7 +64,7 @@ }, { "cell_type": "markdown", - "id": "df992064", + "id": "5", "metadata": {}, "source": [ "#### Set Space Group" @@ -73,7 +73,7 @@ { "cell_type": "code", "execution_count": null, - "id": "37e7dd9f", + "id": "6", "metadata": {}, "outputs": [], "source": [ @@ -82,7 +82,7 @@ }, { "cell_type": "markdown", - "id": "a858fe3a", + "id": "7", "metadata": {}, "source": [ "#### Set Unit Cell" @@ -91,7 +91,7 @@ { "cell_type": "code", "execution_count": null, - "id": "a8aa980d", + "id": "8", "metadata": {}, "outputs": [], "source": [ @@ -102,7 +102,7 @@ }, { "cell_type": "markdown", - "id": "ee792a56", + "id": "9", "metadata": {}, "source": [ "#### Set Atom Sites" @@ -111,7 +111,7 @@ { "cell_type": "code", "execution_count": null, - "id": "3a4d4da6", + "id": "10", "metadata": { "lines_to_next_cell": 2 }, @@ -126,7 +126,7 @@ }, { "cell_type": "markdown", - "id": "0f71a8f7", + "id": "11", "metadata": {}, "source": [ "## Define Experiments\n", @@ -142,7 +142,7 @@ { "cell_type": "code", "execution_count": null, - "id": "c159be48", + "id": "12", "metadata": {}, "outputs": [], "source": [ @@ -152,7 +152,7 @@ }, { "cell_type": "markdown", - "id": "1b65adc1", + "id": "13", "metadata": {}, "source": [ "#### Create Experiment" @@ -161,7 +161,7 @@ { "cell_type": "code", "execution_count": null, - "id": "fc5b68f3", + "id": "14", "metadata": {}, "outputs": [], "source": [ @@ -172,7 +172,7 @@ }, { "cell_type": "markdown", - "id": "c70ad5f9", + "id": "15", "metadata": {}, "source": [ "#### Set Instrument" @@ -181,7 +181,7 @@ { "cell_type": "code", "execution_count": null, - "id": "4746ebf7", + "id": "16", "metadata": {}, "outputs": [], "source": [ @@ -191,7 +191,7 @@ }, { "cell_type": "markdown", - "id": "6ea195d7", + "id": "17", "metadata": {}, "source": [ "#### Set Peak Profile" @@ -200,7 +200,7 @@ { "cell_type": "code", "execution_count": null, - "id": "cd078023", + "id": "18", "metadata": {}, "outputs": [], "source": [ @@ -213,7 +213,7 @@ }, { "cell_type": "markdown", - "id": "9bd1e949", + "id": "19", "metadata": {}, "source": [ "#### Set Background" @@ -221,7 +221,7 @@ }, { "cell_type": "markdown", - "id": "7cefbac7", + "id": "20", "metadata": {}, "source": [ "Select the background type." @@ -230,7 +230,7 @@ { "cell_type": "code", "execution_count": null, - "id": "b25be058", + "id": "21", "metadata": {}, "outputs": [], "source": [ @@ -239,7 +239,7 @@ }, { "cell_type": "markdown", - "id": "546a959b", + "id": "22", "metadata": {}, "source": [ "Add background points." @@ -248,7 +248,7 @@ { "cell_type": "code", "execution_count": null, - "id": "0873b743", + "id": "23", "metadata": {}, "outputs": [], "source": [ @@ -267,7 +267,7 @@ }, { "cell_type": "markdown", - "id": "08ac815d", + "id": "24", "metadata": {}, "source": [ "#### Set Linked Phases" @@ -276,7 +276,7 @@ { "cell_type": "code", "execution_count": null, - "id": "5a863455", + "id": "25", "metadata": {}, "outputs": [], "source": [ @@ -285,7 +285,7 @@ }, { "cell_type": "markdown", - "id": "6538f2da", + "id": "26", "metadata": {}, "source": [ "### Experiment 2: xrd\n", @@ -296,7 +296,7 @@ { "cell_type": "code", "execution_count": null, - "id": "00a9960f", + "id": "27", "metadata": {}, "outputs": [], "source": [ @@ -306,7 +306,7 @@ }, { "cell_type": "markdown", - "id": "6618ac0b", + "id": "28", "metadata": {}, "source": [ "#### Create Experiment" @@ -315,7 +315,7 @@ { "cell_type": "code", "execution_count": null, - "id": "b849eb00", + "id": "29", "metadata": {}, "outputs": [], "source": [ @@ -326,7 +326,7 @@ }, { "cell_type": "markdown", - "id": "974f38d7", + "id": "30", "metadata": {}, "source": [ "#### Set Instrument" @@ -335,7 +335,7 @@ { "cell_type": "code", "execution_count": null, - "id": "65fd695e", + "id": "31", "metadata": {}, "outputs": [], "source": [ @@ -345,7 +345,7 @@ }, { "cell_type": "markdown", - "id": "42e4e93c", + "id": "32", "metadata": {}, "source": [ "#### Set Peak Profile" @@ -354,7 +354,7 @@ { "cell_type": "code", "execution_count": null, - "id": "fac1c716", + "id": "33", "metadata": {}, "outputs": [], "source": [ @@ -367,7 +367,7 @@ }, { "cell_type": "markdown", - "id": "77fc66ba", + "id": "34", "metadata": {}, "source": [ "#### Set Background" @@ -375,7 +375,7 @@ }, { "cell_type": "markdown", - "id": "c8561b7a", + "id": "35", "metadata": {}, "source": [ "Select background type." @@ -384,7 +384,7 @@ { "cell_type": "code", "execution_count": null, - "id": "1c5bdf68", + "id": "36", "metadata": {}, "outputs": [], "source": [ @@ -393,7 +393,7 @@ }, { "cell_type": "markdown", - "id": "529d6496", + "id": "37", "metadata": {}, "source": [ "Add background points." @@ -402,7 +402,7 @@ { "cell_type": "code", "execution_count": null, - "id": "cb5a3e89", + "id": "38", "metadata": {}, "outputs": [], "source": [ @@ -419,7 +419,7 @@ }, { "cell_type": "markdown", - "id": "efe1d751", + "id": "39", "metadata": {}, "source": [ "#### Set Linked Phases" @@ -428,7 +428,7 @@ { "cell_type": "code", "execution_count": null, - "id": "e85d1da8", + "id": "40", "metadata": {}, "outputs": [], "source": [ @@ -437,7 +437,7 @@ }, { "cell_type": "markdown", - "id": "09b5e23f", + "id": "41", "metadata": {}, "source": [ "## Define Project\n", @@ -450,7 +450,7 @@ { "cell_type": "code", "execution_count": null, - "id": "1405b2b8", + "id": "42", "metadata": {}, "outputs": [], "source": [ @@ -459,7 +459,7 @@ }, { "cell_type": "markdown", - "id": "85c69b0f", + "id": "43", "metadata": {}, "source": [ "#### Add Sample Model" @@ -468,7 +468,7 @@ { "cell_type": "code", "execution_count": null, - "id": "972fa5a6", + "id": "44", "metadata": {}, "outputs": [], "source": [ @@ -477,7 +477,7 @@ }, { "cell_type": "markdown", - "id": "1be21a62", + "id": "45", "metadata": {}, "source": [ "#### Add Experiments" @@ -486,7 +486,7 @@ { "cell_type": "code", "execution_count": null, - "id": "f4b72b71", + "id": "46", "metadata": {}, "outputs": [], "source": [ @@ -496,7 +496,7 @@ }, { "cell_type": "markdown", - "id": "7c1ce267", + "id": "47", "metadata": {}, "source": [ "## Perform Analysis\n", @@ -509,7 +509,7 @@ { "cell_type": "code", "execution_count": null, - "id": "bc58ca8a", + "id": "48", "metadata": {}, "outputs": [], "source": [ @@ -518,7 +518,7 @@ }, { "cell_type": "markdown", - "id": "85c5bb9a", + "id": "49", "metadata": {}, "source": [ "#### Set Fit Mode" @@ -527,7 +527,7 @@ { "cell_type": "code", "execution_count": null, - "id": "721482d9", + "id": "50", "metadata": {}, "outputs": [], "source": [ @@ -536,7 +536,7 @@ }, { "cell_type": "markdown", - "id": "9af39d68", + "id": "51", "metadata": {}, "source": [ "#### Set Minimizer" @@ -545,7 +545,7 @@ { "cell_type": "code", "execution_count": null, - "id": "ea48dc6f", + "id": "52", "metadata": {}, "outputs": [], "source": [ @@ -554,7 +554,7 @@ }, { "cell_type": "markdown", - "id": "98a75bed", + "id": "53", "metadata": {}, "source": [ "#### Set Fitting Parameters\n", @@ -565,7 +565,7 @@ { "cell_type": "code", "execution_count": null, - "id": "9b457c68", + "id": "54", "metadata": {}, "outputs": [], "source": [ @@ -576,7 +576,7 @@ }, { "cell_type": "markdown", - "id": "d7ceb9f2", + "id": "55", "metadata": {}, "source": [ "Set experiment parameters to be optimized." @@ -585,7 +585,7 @@ { "cell_type": "code", "execution_count": null, - "id": "e4c2cbab", + "id": "56", "metadata": {}, "outputs": [], "source": [ @@ -602,7 +602,7 @@ { "cell_type": "code", "execution_count": null, - "id": "f88002d6", + "id": "57", "metadata": {}, "outputs": [], "source": [ @@ -621,7 +621,7 @@ }, { "cell_type": "markdown", - "id": "5485e159", + "id": "58", "metadata": {}, "source": [ "#### Perform Fit" @@ -630,7 +630,7 @@ { "cell_type": "code", "execution_count": null, - "id": "7a161ca9", + "id": "59", "metadata": {}, "outputs": [], "source": [ @@ -639,7 +639,7 @@ }, { "cell_type": "markdown", - "id": "9fe17000", + "id": "60", "metadata": {}, "source": [ "#### Plot Measured vs Calculated" @@ -648,7 +648,7 @@ { "cell_type": "code", "execution_count": null, - "id": "0dd6b36c", + "id": "61", "metadata": {}, "outputs": [], "source": [ @@ -660,7 +660,7 @@ { "cell_type": "code", "execution_count": null, - "id": "02634d76", + "id": "62", "metadata": {}, "outputs": [], "source": [ diff --git a/tutorials/basic_single-fit_pd-neut-cwl_LBCO-HRPT.ipynb b/tutorials/basic_single-fit_pd-neut-cwl_LBCO-HRPT.ipynb index 0f8b30c1..e66167c0 100644 --- a/tutorials/basic_single-fit_pd-neut-cwl_LBCO-HRPT.ipynb +++ b/tutorials/basic_single-fit_pd-neut-cwl_LBCO-HRPT.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "d93ba63a", + "id": "0", "metadata": {}, "source": [ "# Structure Refinement: LBCO, HRPT\n", @@ -25,7 +25,7 @@ }, { "cell_type": "markdown", - "id": "68a01a2d", + "id": "1", "metadata": {}, "source": [ "## Import Library" @@ -34,7 +34,7 @@ { "cell_type": "code", "execution_count": null, - "id": "eb7ec758", + "id": "2", "metadata": {}, "outputs": [], "source": [ @@ -43,7 +43,7 @@ }, { "cell_type": "markdown", - "id": "0db07ed2", + "id": "3", "metadata": {}, "source": [ "## Step 1: Create a Project\n", @@ -53,7 +53,7 @@ }, { "cell_type": "markdown", - "id": "64772c41", + "id": "4", "metadata": {}, "source": [ "#### Create Project" @@ -62,7 +62,7 @@ { "cell_type": "code", "execution_count": null, - "id": "a2fb4882", + "id": "5", "metadata": {}, "outputs": [], "source": [ @@ -71,7 +71,7 @@ }, { "cell_type": "markdown", - "id": "3cdcd32d", + "id": "6", "metadata": {}, "source": [ "#### Set Project Metadata" @@ -80,7 +80,7 @@ { "cell_type": "code", "execution_count": null, - "id": "49443d7a", + "id": "7", "metadata": {}, "outputs": [], "source": [ @@ -93,7 +93,7 @@ }, { "cell_type": "markdown", - "id": "00ee3351", + "id": "8", "metadata": {}, "source": [ "#### Show Project Metadata as CIF" @@ -102,7 +102,7 @@ { "cell_type": "code", "execution_count": null, - "id": "4c439152", + "id": "9", "metadata": {}, "outputs": [], "source": [ @@ -111,7 +111,7 @@ }, { "cell_type": "markdown", - "id": "3facfc79", + "id": "10", "metadata": {}, "source": [ "#### Save Project\n", @@ -124,7 +124,7 @@ { "cell_type": "code", "execution_count": null, - "id": "eb583ffd", + "id": "11", "metadata": {}, "outputs": [], "source": [ @@ -133,7 +133,7 @@ }, { "cell_type": "markdown", - "id": "62aeb09e", + "id": "12", "metadata": {}, "source": [ "#### Set Up Data Plotter" @@ -141,7 +141,7 @@ }, { "cell_type": "markdown", - "id": "fb6f8361", + "id": "13", "metadata": {}, "source": [ "Show supported plotting engines." @@ -150,7 +150,7 @@ { "cell_type": "code", "execution_count": null, - "id": "28dfd508", + "id": "14", "metadata": {}, "outputs": [], "source": [ @@ -159,7 +159,7 @@ }, { "cell_type": "markdown", - "id": "b001b19f", + "id": "15", "metadata": {}, "source": [ "Show current plotting configuration." @@ -168,7 +168,7 @@ { "cell_type": "code", "execution_count": null, - "id": "ad4ee397", + "id": "16", "metadata": {}, "outputs": [], "source": [ @@ -177,7 +177,7 @@ }, { "cell_type": "markdown", - "id": "eee87efc", + "id": "17", "metadata": {}, "source": [ "Set plotting engine." @@ -186,7 +186,7 @@ { "cell_type": "code", "execution_count": null, - "id": "1c75dbec", + "id": "18", "metadata": {}, "outputs": [], "source": [ @@ -195,7 +195,7 @@ }, { "cell_type": "markdown", - "id": "3e91387b", + "id": "19", "metadata": {}, "source": [ "## Step 2: Define Sample Model\n", @@ -205,7 +205,7 @@ }, { "cell_type": "markdown", - "id": "781e637d", + "id": "20", "metadata": {}, "source": [ "#### Add Sample Model" @@ -214,7 +214,7 @@ { "cell_type": "code", "execution_count": null, - "id": "3b3b9a95", + "id": "21", "metadata": {}, "outputs": [], "source": [ @@ -223,7 +223,7 @@ }, { "cell_type": "markdown", - "id": "bfe8a28c", + "id": "22", "metadata": {}, "source": [ "#### Show Defined Sample Models\n", @@ -236,7 +236,7 @@ { "cell_type": "code", "execution_count": null, - "id": "0286b8c9", + "id": "23", "metadata": {}, "outputs": [], "source": [ @@ -245,7 +245,7 @@ }, { "cell_type": "markdown", - "id": "588aca25", + "id": "24", "metadata": {}, "source": [ "#### Set Space Group\n", @@ -256,7 +256,7 @@ { "cell_type": "code", "execution_count": null, - "id": "8593fcb9", + "id": "25", "metadata": {}, "outputs": [], "source": [ @@ -266,7 +266,7 @@ }, { "cell_type": "markdown", - "id": "2a865150", + "id": "26", "metadata": {}, "source": [ "#### Set Unit Cell\n", @@ -277,7 +277,7 @@ { "cell_type": "code", "execution_count": null, - "id": "735d7e3d", + "id": "27", "metadata": {}, "outputs": [], "source": [ @@ -286,7 +286,7 @@ }, { "cell_type": "markdown", - "id": "4f2e8ee3", + "id": "28", "metadata": {}, "source": [ "#### Set Atom Sites\n", @@ -297,7 +297,7 @@ { "cell_type": "code", "execution_count": null, - "id": "f15054ba", + "id": "29", "metadata": {}, "outputs": [], "source": [ @@ -335,7 +335,7 @@ }, { "cell_type": "markdown", - "id": "f160c72b", + "id": "30", "metadata": {}, "source": [ "#### Apply Symmetry Constraints" @@ -344,7 +344,7 @@ { "cell_type": "code", "execution_count": null, - "id": "4b388ef4", + "id": "31", "metadata": {}, "outputs": [], "source": [ @@ -353,7 +353,7 @@ }, { "cell_type": "markdown", - "id": "d84dc44f", + "id": "32", "metadata": {}, "source": [ "#### Show Sample Model as CIF" @@ -362,7 +362,7 @@ { "cell_type": "code", "execution_count": null, - "id": "2d8e44f6", + "id": "33", "metadata": {}, "outputs": [], "source": [ @@ -371,7 +371,7 @@ }, { "cell_type": "markdown", - "id": "60b26f78", + "id": "34", "metadata": {}, "source": [ "#### Show Sample Model Structure" @@ -380,7 +380,7 @@ { "cell_type": "code", "execution_count": null, - "id": "9d48e3ec", + "id": "35", "metadata": {}, "outputs": [], "source": [ @@ -389,7 +389,7 @@ }, { "cell_type": "markdown", - "id": "896e9aa9", + "id": "36", "metadata": {}, "source": [ "#### Save Project State\n", @@ -402,7 +402,7 @@ { "cell_type": "code", "execution_count": null, - "id": "5ceea502", + "id": "37", "metadata": {}, "outputs": [], "source": [ @@ -411,7 +411,7 @@ }, { "cell_type": "markdown", - "id": "ddb4958d", + "id": "38", "metadata": {}, "source": [ "## Step 3: Define Experiment\n", @@ -422,7 +422,7 @@ }, { "cell_type": "markdown", - "id": "1c9b9d63", + "id": "39", "metadata": {}, "source": [ "#### Download Measured Data\n", @@ -433,7 +433,7 @@ { "cell_type": "code", "execution_count": null, - "id": "8be002d1", + "id": "40", "metadata": {}, "outputs": [], "source": [ @@ -443,7 +443,7 @@ }, { "cell_type": "markdown", - "id": "4bd1c50a", + "id": "41", "metadata": {}, "source": [ "#### Add Diffraction Experiment" @@ -452,7 +452,7 @@ { "cell_type": "code", "execution_count": null, - "id": "a99a9d19", + "id": "42", "metadata": {}, "outputs": [], "source": [ @@ -465,7 +465,7 @@ }, { "cell_type": "markdown", - "id": "5a0adca2", + "id": "43", "metadata": {}, "source": [ "#### Show Defined Experiments" @@ -474,7 +474,7 @@ { "cell_type": "code", "execution_count": null, - "id": "87ddf3a8", + "id": "44", "metadata": {}, "outputs": [], "source": [ @@ -483,7 +483,7 @@ }, { "cell_type": "markdown", - "id": "70df4231", + "id": "45", "metadata": {}, "source": [ "#### Show Measured Data" @@ -492,7 +492,7 @@ { "cell_type": "code", "execution_count": null, - "id": "2e96072f", + "id": "46", "metadata": {}, "outputs": [], "source": [ @@ -501,7 +501,7 @@ }, { "cell_type": "markdown", - "id": "c614ccd5", + "id": "47", "metadata": {}, "source": [ "#### Set Instrument\n", @@ -512,7 +512,7 @@ { "cell_type": "code", "execution_count": null, - "id": "7e33d36f", + "id": "48", "metadata": {}, "outputs": [], "source": [ @@ -522,7 +522,7 @@ }, { "cell_type": "markdown", - "id": "59c1cb38", + "id": "49", "metadata": {}, "source": [ "#### Set Peak Profile\n", @@ -533,7 +533,7 @@ { "cell_type": "code", "execution_count": null, - "id": "9860d120", + "id": "50", "metadata": {}, "outputs": [], "source": [ @@ -542,7 +542,7 @@ }, { "cell_type": "markdown", - "id": "14ca3456", + "id": "51", "metadata": {}, "source": [ "Show the current peak profile type." @@ -551,7 +551,7 @@ { "cell_type": "code", "execution_count": null, - "id": "e9188869", + "id": "52", "metadata": {}, "outputs": [], "source": [ @@ -560,7 +560,7 @@ }, { "cell_type": "markdown", - "id": "9fc119e8", + "id": "53", "metadata": {}, "source": [ "Select the desired peak profile type." @@ -569,7 +569,7 @@ { "cell_type": "code", "execution_count": null, - "id": "6fa8c2fa", + "id": "54", "metadata": {}, "outputs": [], "source": [ @@ -578,7 +578,7 @@ }, { "cell_type": "markdown", - "id": "f3aaff0c", + "id": "55", "metadata": {}, "source": [ "Modify default peak profile parameters." @@ -587,7 +587,7 @@ { "cell_type": "code", "execution_count": null, - "id": "ae86545f", + "id": "56", "metadata": {}, "outputs": [], "source": [ @@ -600,7 +600,7 @@ }, { "cell_type": "markdown", - "id": "e0a12fd6", + "id": "57", "metadata": {}, "source": [ "#### Set Background" @@ -608,7 +608,7 @@ }, { "cell_type": "markdown", - "id": "3505cc22", + "id": "58", "metadata": {}, "source": [ "Show supported background types." @@ -617,7 +617,7 @@ { "cell_type": "code", "execution_count": null, - "id": "eda6eeaf", + "id": "59", "metadata": {}, "outputs": [], "source": [ @@ -626,7 +626,7 @@ }, { "cell_type": "markdown", - "id": "6679b4b9", + "id": "60", "metadata": {}, "source": [ "Show current background type." @@ -635,7 +635,7 @@ { "cell_type": "code", "execution_count": null, - "id": "e56ee57e", + "id": "61", "metadata": {}, "outputs": [], "source": [ @@ -644,7 +644,7 @@ }, { "cell_type": "markdown", - "id": "3c71c0bb", + "id": "62", "metadata": {}, "source": [ "Select the desired background type." @@ -653,7 +653,7 @@ { "cell_type": "code", "execution_count": null, - "id": "5c4174e6", + "id": "63", "metadata": {}, "outputs": [], "source": [ @@ -662,7 +662,7 @@ }, { "cell_type": "markdown", - "id": "e0a15671", + "id": "64", "metadata": {}, "source": [ "Add background points." @@ -671,7 +671,7 @@ { "cell_type": "code", "execution_count": null, - "id": "221611fc", + "id": "65", "metadata": {}, "outputs": [], "source": [ @@ -684,7 +684,7 @@ }, { "cell_type": "markdown", - "id": "876c69c6", + "id": "66", "metadata": {}, "source": [ "Show current background points." @@ -693,7 +693,7 @@ { "cell_type": "code", "execution_count": null, - "id": "ad419c48", + "id": "67", "metadata": {}, "outputs": [], "source": [ @@ -702,7 +702,7 @@ }, { "cell_type": "markdown", - "id": "1f40c255", + "id": "68", "metadata": {}, "source": [ "#### Set Linked Phases\n", @@ -713,7 +713,7 @@ { "cell_type": "code", "execution_count": null, - "id": "53c26bef", + "id": "69", "metadata": {}, "outputs": [], "source": [ @@ -722,7 +722,7 @@ }, { "cell_type": "markdown", - "id": "13aa2b71", + "id": "70", "metadata": {}, "source": [ "#### Show Experiment as CIF" @@ -731,7 +731,7 @@ { "cell_type": "code", "execution_count": null, - "id": "ab18c493", + "id": "71", "metadata": {}, "outputs": [], "source": [ @@ -740,7 +740,7 @@ }, { "cell_type": "markdown", - "id": "9e2bce6c", + "id": "72", "metadata": {}, "source": [ "#### Save Project State" @@ -749,7 +749,7 @@ { "cell_type": "code", "execution_count": null, - "id": "11fbb4ba", + "id": "73", "metadata": {}, "outputs": [], "source": [ @@ -758,7 +758,7 @@ }, { "cell_type": "markdown", - "id": "3b483e61", + "id": "74", "metadata": {}, "source": [ "## Step 4: Perform Analysis\n", @@ -774,7 +774,7 @@ { "cell_type": "code", "execution_count": null, - "id": "4d5d7858", + "id": "75", "metadata": {}, "outputs": [], "source": [ @@ -783,7 +783,7 @@ }, { "cell_type": "markdown", - "id": "f70f89cf", + "id": "76", "metadata": {}, "source": [ "Show current calculation engine." @@ -792,7 +792,7 @@ { "cell_type": "code", "execution_count": null, - "id": "079127ac", + "id": "77", "metadata": {}, "outputs": [], "source": [ @@ -801,7 +801,7 @@ }, { "cell_type": "markdown", - "id": "56696a86", + "id": "78", "metadata": {}, "source": [ "Select the desired calculation engine." @@ -810,7 +810,7 @@ { "cell_type": "code", "execution_count": null, - "id": "ac89daae", + "id": "79", "metadata": {}, "outputs": [], "source": [ @@ -819,7 +819,7 @@ }, { "cell_type": "markdown", - "id": "4cdcf829", + "id": "80", "metadata": {}, "source": [ "#### Show Calculated Data" @@ -828,7 +828,7 @@ { "cell_type": "code", "execution_count": null, - "id": "a373b202", + "id": "81", "metadata": {}, "outputs": [], "source": [ @@ -837,7 +837,7 @@ }, { "cell_type": "markdown", - "id": "73da2df0", + "id": "82", "metadata": {}, "source": [ "#### Plot Measured vs Calculated" @@ -846,7 +846,7 @@ { "cell_type": "code", "execution_count": null, - "id": "1a483207", + "id": "83", "metadata": {}, "outputs": [], "source": [ @@ -857,7 +857,7 @@ { "cell_type": "code", "execution_count": null, - "id": "7f7fc2d1", + "id": "84", "metadata": {}, "outputs": [], "source": [ @@ -868,7 +868,7 @@ }, { "cell_type": "markdown", - "id": "afad5972", + "id": "85", "metadata": {}, "source": [ "#### Show Parameters\n", @@ -879,7 +879,7 @@ { "cell_type": "code", "execution_count": null, - "id": "66e85223", + "id": "86", "metadata": {}, "outputs": [], "source": [ @@ -888,7 +888,7 @@ }, { "cell_type": "markdown", - "id": "cdf45d90", + "id": "87", "metadata": {}, "source": [ "Show all fittable parameters." @@ -897,7 +897,7 @@ { "cell_type": "code", "execution_count": null, - "id": "aaf85462", + "id": "88", "metadata": {}, "outputs": [], "source": [ @@ -906,7 +906,7 @@ }, { "cell_type": "markdown", - "id": "62fc95bb", + "id": "89", "metadata": {}, "source": [ "Show only free parameters." @@ -915,7 +915,7 @@ { "cell_type": "code", "execution_count": null, - "id": "8a5208ba", + "id": "90", "metadata": {}, "outputs": [], "source": [ @@ -924,7 +924,7 @@ }, { "cell_type": "markdown", - "id": "f9b33179", + "id": "91", "metadata": {}, "source": [ "Show how to access parameters in the code." @@ -933,7 +933,7 @@ { "cell_type": "code", "execution_count": null, - "id": "56dce385", + "id": "92", "metadata": {}, "outputs": [], "source": [ @@ -942,7 +942,7 @@ }, { "cell_type": "markdown", - "id": "f84670e7", + "id": "93", "metadata": {}, "source": [ "#### Set Fit Mode\n", @@ -953,7 +953,7 @@ { "cell_type": "code", "execution_count": null, - "id": "b8c86537", + "id": "94", "metadata": {}, "outputs": [], "source": [ @@ -962,7 +962,7 @@ }, { "cell_type": "markdown", - "id": "495ab0f7", + "id": "95", "metadata": {}, "source": [ "Show current fit mode." @@ -971,7 +971,7 @@ { "cell_type": "code", "execution_count": null, - "id": "4dbce6e6", + "id": "96", "metadata": {}, "outputs": [], "source": [ @@ -980,7 +980,7 @@ }, { "cell_type": "markdown", - "id": "36dcd524", + "id": "97", "metadata": {}, "source": [ "Select desired fit mode." @@ -989,7 +989,7 @@ { "cell_type": "code", "execution_count": null, - "id": "1b129153", + "id": "98", "metadata": {}, "outputs": [], "source": [ @@ -998,7 +998,7 @@ }, { "cell_type": "markdown", - "id": "15ed592c", + "id": "99", "metadata": {}, "source": [ "#### Set Minimizer\n", @@ -1009,7 +1009,7 @@ { "cell_type": "code", "execution_count": null, - "id": "b93c069f", + "id": "100", "metadata": {}, "outputs": [], "source": [ @@ -1018,7 +1018,7 @@ }, { "cell_type": "markdown", - "id": "9e9cac23", + "id": "101", "metadata": {}, "source": [ "Show current fitting engine." @@ -1027,7 +1027,7 @@ { "cell_type": "code", "execution_count": null, - "id": "7be3745e", + "id": "102", "metadata": {}, "outputs": [], "source": [ @@ -1036,7 +1036,7 @@ }, { "cell_type": "markdown", - "id": "de5ba021", + "id": "103", "metadata": {}, "source": [ "Select desired fitting engine." @@ -1045,7 +1045,7 @@ { "cell_type": "code", "execution_count": null, - "id": "14812c23", + "id": "104", "metadata": {}, "outputs": [], "source": [ @@ -1054,7 +1054,7 @@ }, { "cell_type": "markdown", - "id": "64cacdad", + "id": "105", "metadata": {}, "source": [ "### Perform Fit 1/5\n", @@ -1065,7 +1065,7 @@ { "cell_type": "code", "execution_count": null, - "id": "6daba1b6", + "id": "106", "metadata": {}, "outputs": [], "source": [ @@ -1074,7 +1074,7 @@ }, { "cell_type": "markdown", - "id": "7183d718", + "id": "107", "metadata": {}, "source": [ "Set experiment parameters to be refined." @@ -1083,7 +1083,7 @@ { "cell_type": "code", "execution_count": null, - "id": "9fa3433d", + "id": "108", "metadata": {}, "outputs": [], "source": [ @@ -1098,7 +1098,7 @@ }, { "cell_type": "markdown", - "id": "d85c4e3f", + "id": "109", "metadata": {}, "source": [ "Show free parameters after selection." @@ -1107,7 +1107,7 @@ { "cell_type": "code", "execution_count": null, - "id": "994f6f3b", + "id": "110", "metadata": {}, "outputs": [], "source": [ @@ -1116,7 +1116,7 @@ }, { "cell_type": "markdown", - "id": "6fb91c5a", + "id": "111", "metadata": {}, "source": [ "#### Run Fitting" @@ -1125,7 +1125,7 @@ { "cell_type": "code", "execution_count": null, - "id": "9237940e", + "id": "112", "metadata": {}, "outputs": [], "source": [ @@ -1134,7 +1134,7 @@ }, { "cell_type": "markdown", - "id": "2ac09f82", + "id": "113", "metadata": {}, "source": [ "#### Plot Measured vs Calculated" @@ -1143,7 +1143,7 @@ { "cell_type": "code", "execution_count": null, - "id": "9e8f7e77", + "id": "114", "metadata": {}, "outputs": [], "source": [ @@ -1154,7 +1154,7 @@ { "cell_type": "code", "execution_count": null, - "id": "ca3957d6", + "id": "115", "metadata": {}, "outputs": [], "source": [ @@ -1165,7 +1165,7 @@ }, { "cell_type": "markdown", - "id": "d7b39c6c", + "id": "116", "metadata": {}, "source": [ "#### Save Project State" @@ -1174,7 +1174,7 @@ { "cell_type": "code", "execution_count": null, - "id": "35e691a2", + "id": "117", "metadata": {}, "outputs": [], "source": [ @@ -1183,7 +1183,7 @@ }, { "cell_type": "markdown", - "id": "3d0b7894", + "id": "118", "metadata": {}, "source": [ "### Perform Fit 2/5\n", @@ -1194,7 +1194,7 @@ { "cell_type": "code", "execution_count": null, - "id": "7e6b9cf8", + "id": "119", "metadata": {}, "outputs": [], "source": [ @@ -1206,7 +1206,7 @@ }, { "cell_type": "markdown", - "id": "2e64f929", + "id": "120", "metadata": {}, "source": [ "Show free parameters after selection." @@ -1215,7 +1215,7 @@ { "cell_type": "code", "execution_count": null, - "id": "5bd71057", + "id": "121", "metadata": {}, "outputs": [], "source": [ @@ -1224,7 +1224,7 @@ }, { "cell_type": "markdown", - "id": "b6aa93b9", + "id": "122", "metadata": {}, "source": [ "#### Run Fitting" @@ -1233,7 +1233,7 @@ { "cell_type": "code", "execution_count": null, - "id": "5a426a0f", + "id": "123", "metadata": {}, "outputs": [], "source": [ @@ -1242,7 +1242,7 @@ }, { "cell_type": "markdown", - "id": "2d2a965f", + "id": "124", "metadata": {}, "source": [ "#### Plot Measured vs Calculated" @@ -1251,7 +1251,7 @@ { "cell_type": "code", "execution_count": null, - "id": "ac05704e", + "id": "125", "metadata": {}, "outputs": [], "source": [ @@ -1262,7 +1262,7 @@ { "cell_type": "code", "execution_count": null, - "id": "5ee36fe3", + "id": "126", "metadata": {}, "outputs": [], "source": [ @@ -1273,7 +1273,7 @@ }, { "cell_type": "markdown", - "id": "f634e06c", + "id": "127", "metadata": {}, "source": [ "#### Save Project State" @@ -1282,7 +1282,7 @@ { "cell_type": "code", "execution_count": null, - "id": "b6ca8245", + "id": "128", "metadata": {}, "outputs": [], "source": [ @@ -1291,7 +1291,7 @@ }, { "cell_type": "markdown", - "id": "9bfbe6cc", + "id": "129", "metadata": {}, "source": [ "### Perform Fit 3/5\n", @@ -1302,7 +1302,7 @@ { "cell_type": "code", "execution_count": null, - "id": "c34f6493", + "id": "130", "metadata": {}, "outputs": [], "source": [ @@ -1314,7 +1314,7 @@ }, { "cell_type": "markdown", - "id": "530b4854", + "id": "131", "metadata": {}, "source": [ "Show free parameters after selection." @@ -1323,7 +1323,7 @@ { "cell_type": "code", "execution_count": null, - "id": "06f033c1", + "id": "132", "metadata": {}, "outputs": [], "source": [ @@ -1332,7 +1332,7 @@ }, { "cell_type": "markdown", - "id": "9f2ed586", + "id": "133", "metadata": {}, "source": [ "#### Run Fitting" @@ -1341,7 +1341,7 @@ { "cell_type": "code", "execution_count": null, - "id": "c9f24374", + "id": "134", "metadata": {}, "outputs": [], "source": [ @@ -1350,7 +1350,7 @@ }, { "cell_type": "markdown", - "id": "2cd3a3f5", + "id": "135", "metadata": {}, "source": [ "#### Plot Measured vs Calculated" @@ -1359,7 +1359,7 @@ { "cell_type": "code", "execution_count": null, - "id": "a3c8ab5c", + "id": "136", "metadata": {}, "outputs": [], "source": [ @@ -1370,7 +1370,7 @@ { "cell_type": "code", "execution_count": null, - "id": "229dcd40", + "id": "137", "metadata": {}, "outputs": [], "source": [ @@ -1381,7 +1381,7 @@ }, { "cell_type": "markdown", - "id": "3b6ea990", + "id": "138", "metadata": {}, "source": [ "#### Save Project State" @@ -1390,7 +1390,7 @@ { "cell_type": "code", "execution_count": null, - "id": "28911a4f", + "id": "139", "metadata": {}, "outputs": [], "source": [ @@ -1399,7 +1399,7 @@ }, { "cell_type": "markdown", - "id": "25e47125", + "id": "140", "metadata": {}, "source": [ "### Perform Fit 4/5\n", @@ -1412,7 +1412,7 @@ { "cell_type": "code", "execution_count": null, - "id": "32554c35", + "id": "141", "metadata": {}, "outputs": [], "source": [ @@ -1428,7 +1428,7 @@ }, { "cell_type": "markdown", - "id": "ee564dc0", + "id": "142", "metadata": {}, "source": [ "Set constraints." @@ -1437,7 +1437,7 @@ { "cell_type": "code", "execution_count": null, - "id": "cdeae972", + "id": "143", "metadata": {}, "outputs": [], "source": [ @@ -1449,7 +1449,7 @@ }, { "cell_type": "markdown", - "id": "f5272e30", + "id": "144", "metadata": {}, "source": [ "Show defined constraints." @@ -1458,7 +1458,7 @@ { "cell_type": "code", "execution_count": null, - "id": "ccc33f51", + "id": "145", "metadata": {}, "outputs": [], "source": [ @@ -1467,7 +1467,7 @@ }, { "cell_type": "markdown", - "id": "d81d38a7", + "id": "146", "metadata": {}, "source": [ "Show free parameters before applying constraints." @@ -1476,7 +1476,7 @@ { "cell_type": "code", "execution_count": null, - "id": "790ea5b2", + "id": "147", "metadata": {}, "outputs": [], "source": [ @@ -1485,7 +1485,7 @@ }, { "cell_type": "markdown", - "id": "14850ae0", + "id": "148", "metadata": {}, "source": [ "Apply constraints." @@ -1494,7 +1494,7 @@ { "cell_type": "code", "execution_count": null, - "id": "ed61071e", + "id": "149", "metadata": {}, "outputs": [], "source": [ @@ -1503,7 +1503,7 @@ }, { "cell_type": "markdown", - "id": "1f7f1c2d", + "id": "150", "metadata": {}, "source": [ "Show free parameters after applying constraints." @@ -1512,7 +1512,7 @@ { "cell_type": "code", "execution_count": null, - "id": "2e5bb120", + "id": "151", "metadata": {}, "outputs": [], "source": [ @@ -1521,7 +1521,7 @@ }, { "cell_type": "markdown", - "id": "54fea34d", + "id": "152", "metadata": {}, "source": [ "#### Run Fitting" @@ -1530,7 +1530,7 @@ { "cell_type": "code", "execution_count": null, - "id": "eb8dd8b3", + "id": "153", "metadata": {}, "outputs": [], "source": [ @@ -1539,7 +1539,7 @@ }, { "cell_type": "markdown", - "id": "18b960d4", + "id": "154", "metadata": {}, "source": [ "#### Plot Measured vs Calculated" @@ -1548,7 +1548,7 @@ { "cell_type": "code", "execution_count": null, - "id": "8fdeed46", + "id": "155", "metadata": {}, "outputs": [], "source": [ @@ -1559,7 +1559,7 @@ { "cell_type": "code", "execution_count": null, - "id": "4bdf1e91", + "id": "156", "metadata": {}, "outputs": [], "source": [ @@ -1570,7 +1570,7 @@ }, { "cell_type": "markdown", - "id": "aa2bc6b8", + "id": "157", "metadata": {}, "source": [ "#### Save Project State" @@ -1579,7 +1579,7 @@ { "cell_type": "code", "execution_count": null, - "id": "99c22d2c", + "id": "158", "metadata": {}, "outputs": [], "source": [ @@ -1588,7 +1588,7 @@ }, { "cell_type": "markdown", - "id": "c568f0ee", + "id": "159", "metadata": {}, "source": [ "### Perform Fit 5/5\n", @@ -1601,7 +1601,7 @@ { "cell_type": "code", "execution_count": null, - "id": "673ccdfe", + "id": "160", "metadata": {}, "outputs": [], "source": [ @@ -1617,7 +1617,7 @@ }, { "cell_type": "markdown", - "id": "ad8f4330", + "id": "161", "metadata": {}, "source": [ "Set more constraints." @@ -1626,7 +1626,7 @@ { "cell_type": "code", "execution_count": null, - "id": "d012fa44", + "id": "162", "metadata": {}, "outputs": [], "source": [ @@ -1638,7 +1638,7 @@ }, { "cell_type": "markdown", - "id": "32107d28", + "id": "163", "metadata": {}, "source": [ "Show defined constraints." @@ -1647,7 +1647,7 @@ { "cell_type": "code", "execution_count": null, - "id": "1ce256aa", + "id": "164", "metadata": {}, "outputs": [], "source": [ @@ -1656,7 +1656,7 @@ }, { "cell_type": "markdown", - "id": "d1016c11", + "id": "165", "metadata": {}, "source": [ "Apply constraints." @@ -1665,7 +1665,7 @@ { "cell_type": "code", "execution_count": null, - "id": "8c745364", + "id": "166", "metadata": {}, "outputs": [], "source": [ @@ -1674,7 +1674,7 @@ }, { "cell_type": "markdown", - "id": "8287cd27", + "id": "167", "metadata": {}, "source": [ "Set sample model parameters to be refined." @@ -1683,7 +1683,7 @@ { "cell_type": "code", "execution_count": null, - "id": "1f0c82a2", + "id": "168", "metadata": {}, "outputs": [], "source": [ @@ -1692,7 +1692,7 @@ }, { "cell_type": "markdown", - "id": "5612fb49", + "id": "169", "metadata": {}, "source": [ "Show free parameters after selection." @@ -1701,7 +1701,7 @@ { "cell_type": "code", "execution_count": null, - "id": "c795f9e3", + "id": "170", "metadata": {}, "outputs": [], "source": [ @@ -1710,7 +1710,7 @@ }, { "cell_type": "markdown", - "id": "1f842b72", + "id": "171", "metadata": {}, "source": [ "#### Run Fitting" @@ -1719,7 +1719,7 @@ { "cell_type": "code", "execution_count": null, - "id": "9a69bac8", + "id": "172", "metadata": {}, "outputs": [], "source": [ @@ -1728,7 +1728,7 @@ }, { "cell_type": "markdown", - "id": "451fdd05", + "id": "173", "metadata": {}, "source": [ "#### Plot Measured vs Calculated" @@ -1737,7 +1737,7 @@ { "cell_type": "code", "execution_count": null, - "id": "fdc5051c", + "id": "174", "metadata": {}, "outputs": [], "source": [ @@ -1748,7 +1748,7 @@ { "cell_type": "code", "execution_count": null, - "id": "b6b89650", + "id": "175", "metadata": {}, "outputs": [], "source": [ @@ -1759,7 +1759,7 @@ }, { "cell_type": "markdown", - "id": "5c07d115", + "id": "176", "metadata": {}, "source": [ "#### Save Project State" @@ -1768,7 +1768,7 @@ { "cell_type": "code", "execution_count": null, - "id": "88c429d6", + "id": "177", "metadata": {}, "outputs": [], "source": [ @@ -1777,7 +1777,7 @@ }, { "cell_type": "markdown", - "id": "3d75f212", + "id": "178", "metadata": {}, "source": [ "## Step 5: Summary\n", @@ -1787,7 +1787,7 @@ }, { "cell_type": "markdown", - "id": "6d3765e3", + "id": "179", "metadata": {}, "source": [ "#### Show Project Summary" @@ -1796,7 +1796,7 @@ { "cell_type": "code", "execution_count": null, - "id": "bceb39fe", + "id": "180", "metadata": {}, "outputs": [], "source": [ diff --git a/tutorials/cryst-struct_pd-neut-cwl_CoSiO4-D20.ipynb b/tutorials/cryst-struct_pd-neut-cwl_CoSiO4-D20.ipynb index 2b8702fa..62ee022c 100644 --- a/tutorials/cryst-struct_pd-neut-cwl_CoSiO4-D20.ipynb +++ b/tutorials/cryst-struct_pd-neut-cwl_CoSiO4-D20.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "49ad1511", + "id": "0", "metadata": {}, "source": [ "# Structure Refinement: Co2SiO4, D20\n", @@ -13,7 +13,7 @@ }, { "cell_type": "markdown", - "id": "359e8b86", + "id": "1", "metadata": {}, "source": [ "## Import Library" @@ -22,7 +22,7 @@ { "cell_type": "code", "execution_count": null, - "id": "2596c347", + "id": "2", "metadata": {}, "outputs": [], "source": [ @@ -36,7 +36,7 @@ }, { "cell_type": "markdown", - "id": "26363052", + "id": "3", "metadata": {}, "source": [ "## Define Sample Model\n", @@ -49,7 +49,7 @@ { "cell_type": "code", "execution_count": null, - "id": "bb4678f3", + "id": "4", "metadata": {}, "outputs": [], "source": [ @@ -58,7 +58,7 @@ }, { "cell_type": "markdown", - "id": "a723609c", + "id": "5", "metadata": {}, "source": [ "#### Set Space Group" @@ -67,7 +67,7 @@ { "cell_type": "code", "execution_count": null, - "id": "b63e59b2", + "id": "6", "metadata": {}, "outputs": [], "source": [ @@ -77,7 +77,7 @@ }, { "cell_type": "markdown", - "id": "1a8ce362", + "id": "7", "metadata": {}, "source": [ "#### Set Unit Cell" @@ -86,7 +86,7 @@ { "cell_type": "code", "execution_count": null, - "id": "f680d4d1", + "id": "8", "metadata": {}, "outputs": [], "source": [ @@ -97,7 +97,7 @@ }, { "cell_type": "markdown", - "id": "89433f9e", + "id": "9", "metadata": {}, "source": [ "#### Set Atom Sites" @@ -106,7 +106,7 @@ { "cell_type": "code", "execution_count": null, - "id": "6acb6f35", + "id": "10", "metadata": {}, "outputs": [], "source": [ @@ -120,7 +120,7 @@ }, { "cell_type": "markdown", - "id": "a9bdaa12", + "id": "11", "metadata": {}, "source": [ "#### Symmetry Constraints\n", @@ -131,7 +131,7 @@ { "cell_type": "code", "execution_count": null, - "id": "1ddd2fce", + "id": "12", "metadata": {}, "outputs": [], "source": [ @@ -140,7 +140,7 @@ }, { "cell_type": "markdown", - "id": "9a3292c5", + "id": "13", "metadata": {}, "source": [ "Apply symmetry constraints." @@ -149,7 +149,7 @@ { "cell_type": "code", "execution_count": null, - "id": "99ed58d1", + "id": "14", "metadata": {}, "outputs": [], "source": [ @@ -158,7 +158,7 @@ }, { "cell_type": "markdown", - "id": "c5a1ec38", + "id": "15", "metadata": {}, "source": [ "Show CIF output after applying symmetry constraints." @@ -167,7 +167,7 @@ { "cell_type": "code", "execution_count": null, - "id": "b481536d", + "id": "16", "metadata": {}, "outputs": [], "source": [ @@ -176,7 +176,7 @@ }, { "cell_type": "markdown", - "id": "603634d8", + "id": "17", "metadata": {}, "source": [ "## Define Experiment\n", @@ -190,7 +190,7 @@ { "cell_type": "code", "execution_count": null, - "id": "8b763fa5", + "id": "18", "metadata": {}, "outputs": [], "source": [ @@ -199,7 +199,7 @@ }, { "cell_type": "markdown", - "id": "c81ca88b", + "id": "19", "metadata": {}, "source": [ "#### Create Experiment" @@ -208,7 +208,7 @@ { "cell_type": "code", "execution_count": null, - "id": "407e5f06", + "id": "20", "metadata": {}, "outputs": [], "source": [ @@ -217,7 +217,7 @@ }, { "cell_type": "markdown", - "id": "36efaa76", + "id": "21", "metadata": {}, "source": [ "#### Set Instrument" @@ -226,7 +226,7 @@ { "cell_type": "code", "execution_count": null, - "id": "a5b266c4", + "id": "22", "metadata": {}, "outputs": [], "source": [ @@ -236,7 +236,7 @@ }, { "cell_type": "markdown", - "id": "25ceb5f6", + "id": "23", "metadata": {}, "source": [ "#### Set Peak Profile" @@ -245,7 +245,7 @@ { "cell_type": "code", "execution_count": null, - "id": "adb7b71d", + "id": "24", "metadata": {}, "outputs": [], "source": [ @@ -256,7 +256,7 @@ }, { "cell_type": "markdown", - "id": "371f8f76", + "id": "25", "metadata": {}, "source": [ "#### Set Background" @@ -265,7 +265,7 @@ { "cell_type": "code", "execution_count": null, - "id": "e08b153d", + "id": "26", "metadata": {}, "outputs": [], "source": [ @@ -287,7 +287,7 @@ }, { "cell_type": "markdown", - "id": "c42c6f4a", + "id": "27", "metadata": {}, "source": [ "#### Set Linked Phases" @@ -296,7 +296,7 @@ { "cell_type": "code", "execution_count": null, - "id": "2593a87d", + "id": "28", "metadata": {}, "outputs": [], "source": [ @@ -305,7 +305,7 @@ }, { "cell_type": "markdown", - "id": "1b7daaa7", + "id": "29", "metadata": {}, "source": [ "## Define Project\n", @@ -319,7 +319,7 @@ { "cell_type": "code", "execution_count": null, - "id": "ed5f7c36", + "id": "30", "metadata": {}, "outputs": [], "source": [ @@ -328,7 +328,7 @@ }, { "cell_type": "markdown", - "id": "3472f81a", + "id": "31", "metadata": {}, "source": [ "#### Set Plotting Engine" @@ -337,7 +337,7 @@ { "cell_type": "code", "execution_count": null, - "id": "3b8f5d55", + "id": "32", "metadata": {}, "outputs": [], "source": [ @@ -346,7 +346,7 @@ }, { "cell_type": "markdown", - "id": "80104f0c", + "id": "33", "metadata": {}, "source": [ "#### Add Sample Model" @@ -355,7 +355,7 @@ { "cell_type": "code", "execution_count": null, - "id": "e8aa7ff7", + "id": "34", "metadata": {}, "outputs": [], "source": [ @@ -364,7 +364,7 @@ }, { "cell_type": "markdown", - "id": "b83cc8d8", + "id": "35", "metadata": {}, "source": [ "#### Add Experiment" @@ -373,7 +373,7 @@ { "cell_type": "code", "execution_count": null, - "id": "045a9cd4", + "id": "36", "metadata": {}, "outputs": [], "source": [ @@ -382,7 +382,7 @@ }, { "cell_type": "markdown", - "id": "b400609a", + "id": "37", "metadata": {}, "source": [ "## Perform Analysis\n", @@ -396,7 +396,7 @@ { "cell_type": "code", "execution_count": null, - "id": "9ef44749", + "id": "38", "metadata": {}, "outputs": [], "source": [ @@ -405,7 +405,7 @@ }, { "cell_type": "markdown", - "id": "b649f407", + "id": "39", "metadata": {}, "source": [ "#### Set Minimizer" @@ -414,7 +414,7 @@ { "cell_type": "code", "execution_count": null, - "id": "5853ce9a", + "id": "40", "metadata": {}, "outputs": [], "source": [ @@ -423,7 +423,7 @@ }, { "cell_type": "markdown", - "id": "a35ad6dd", + "id": "41", "metadata": {}, "source": [ "#### Plot Measured vs Calculated" @@ -432,7 +432,7 @@ { "cell_type": "code", "execution_count": null, - "id": "3161ca58", + "id": "42", "metadata": {}, "outputs": [], "source": [ @@ -442,7 +442,7 @@ { "cell_type": "code", "execution_count": null, - "id": "9bd9d1f9", + "id": "43", "metadata": {}, "outputs": [], "source": [ @@ -451,7 +451,7 @@ }, { "cell_type": "markdown", - "id": "29fc6d78", + "id": "44", "metadata": {}, "source": [ "#### Set Free Parameters" @@ -460,7 +460,7 @@ { "cell_type": "code", "execution_count": null, - "id": "844c4683", + "id": "45", "metadata": {}, "outputs": [], "source": [ @@ -491,7 +491,7 @@ { "cell_type": "code", "execution_count": null, - "id": "fc037da7", + "id": "46", "metadata": {}, "outputs": [], "source": [ @@ -510,7 +510,7 @@ }, { "cell_type": "markdown", - "id": "afa88948", + "id": "47", "metadata": {}, "source": [ "#### Set Constraints\n", @@ -521,7 +521,7 @@ { "cell_type": "code", "execution_count": null, - "id": "7d0cb712", + "id": "48", "metadata": {}, "outputs": [], "source": [ @@ -537,7 +537,7 @@ }, { "cell_type": "markdown", - "id": "a7c31aa1", + "id": "49", "metadata": {}, "source": [ "Set constraints." @@ -546,7 +546,7 @@ { "cell_type": "code", "execution_count": null, - "id": "806baedc", + "id": "50", "metadata": {}, "outputs": [], "source": [ @@ -558,7 +558,7 @@ }, { "cell_type": "markdown", - "id": "3b26e3c5", + "id": "51", "metadata": {}, "source": [ "Apply constraints." @@ -567,7 +567,7 @@ { "cell_type": "code", "execution_count": null, - "id": "9bd24b01", + "id": "52", "metadata": {}, "outputs": [], "source": [ @@ -576,7 +576,7 @@ }, { "cell_type": "markdown", - "id": "f2da849a", + "id": "53", "metadata": {}, "source": [ "#### Run Fitting" @@ -585,7 +585,7 @@ { "cell_type": "code", "execution_count": null, - "id": "22748373", + "id": "54", "metadata": {}, "outputs": [], "source": [ @@ -594,7 +594,7 @@ }, { "cell_type": "markdown", - "id": "9b07bceb", + "id": "55", "metadata": {}, "source": [ "#### Plot Measured vs Calculated" @@ -603,7 +603,7 @@ { "cell_type": "code", "execution_count": null, - "id": "57f27ecf", + "id": "56", "metadata": {}, "outputs": [], "source": [ @@ -613,7 +613,7 @@ { "cell_type": "code", "execution_count": null, - "id": "3af9f819", + "id": "57", "metadata": {}, "outputs": [], "source": [ @@ -622,7 +622,7 @@ }, { "cell_type": "markdown", - "id": "945fe884", + "id": "58", "metadata": {}, "source": [ "## Summary\n", @@ -632,7 +632,7 @@ }, { "cell_type": "markdown", - "id": "9b37867b", + "id": "59", "metadata": {}, "source": [ "#### Show Project Summary" @@ -641,7 +641,7 @@ { "cell_type": "code", "execution_count": null, - "id": "3bd9a457", + "id": "60", "metadata": {}, "outputs": [], "source": [ diff --git a/tutorials/cryst-struct_pd-neut-cwl_HS-HRPT.ipynb b/tutorials/cryst-struct_pd-neut-cwl_HS-HRPT.ipynb index b21520e2..892fc0ec 100644 --- a/tutorials/cryst-struct_pd-neut-cwl_HS-HRPT.ipynb +++ b/tutorials/cryst-struct_pd-neut-cwl_HS-HRPT.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "7ac552ee", + "id": "0", "metadata": {}, "source": [ "# Structure Refinement: HS, HRPT\n", @@ -13,7 +13,7 @@ }, { "cell_type": "markdown", - "id": "93d2b99a", + "id": "1", "metadata": {}, "source": [ "## Import Library" @@ -22,7 +22,7 @@ { "cell_type": "code", "execution_count": null, - "id": "9aa9cbf5", + "id": "2", "metadata": {}, "outputs": [], "source": [ @@ -36,7 +36,7 @@ }, { "cell_type": "markdown", - "id": "75220cbb", + "id": "3", "metadata": {}, "source": [ "## Define Sample Model\n", @@ -49,7 +49,7 @@ { "cell_type": "code", "execution_count": null, - "id": "b2af8fa8", + "id": "4", "metadata": {}, "outputs": [], "source": [ @@ -58,7 +58,7 @@ }, { "cell_type": "markdown", - "id": "6d887cbb", + "id": "5", "metadata": {}, "source": [ "#### Set Space Group" @@ -67,7 +67,7 @@ { "cell_type": "code", "execution_count": null, - "id": "d28d7e5a", + "id": "6", "metadata": {}, "outputs": [], "source": [ @@ -77,7 +77,7 @@ }, { "cell_type": "markdown", - "id": "2ce20066", + "id": "7", "metadata": {}, "source": [ "#### Set Unit Cell" @@ -86,7 +86,7 @@ { "cell_type": "code", "execution_count": null, - "id": "33961de8", + "id": "8", "metadata": {}, "outputs": [], "source": [ @@ -96,7 +96,7 @@ }, { "cell_type": "markdown", - "id": "982bb310", + "id": "9", "metadata": {}, "source": [ "#### Set Atom Sites" @@ -105,7 +105,7 @@ { "cell_type": "code", "execution_count": null, - "id": "6e8ed6d9", + "id": "10", "metadata": {}, "outputs": [], "source": [ @@ -118,7 +118,7 @@ }, { "cell_type": "markdown", - "id": "eb43260c", + "id": "11", "metadata": {}, "source": [ "#### Symmetry constraints\n", @@ -129,7 +129,7 @@ { "cell_type": "code", "execution_count": null, - "id": "8c410274", + "id": "12", "metadata": {}, "outputs": [], "source": [ @@ -138,7 +138,7 @@ }, { "cell_type": "markdown", - "id": "84a3fc4f", + "id": "13", "metadata": {}, "source": [ "Apply symmetry constraints." @@ -147,7 +147,7 @@ { "cell_type": "code", "execution_count": null, - "id": "b8b7d27b", + "id": "14", "metadata": {}, "outputs": [], "source": [ @@ -156,7 +156,7 @@ }, { "cell_type": "markdown", - "id": "f0f3be9a", + "id": "15", "metadata": {}, "source": [ "Show CIF output after applying symmetry constraints." @@ -165,7 +165,7 @@ { "cell_type": "code", "execution_count": null, - "id": "7cc0eedd", + "id": "16", "metadata": {}, "outputs": [], "source": [ @@ -174,7 +174,7 @@ }, { "cell_type": "markdown", - "id": "cb3e2a99", + "id": "17", "metadata": {}, "source": [ "## Define Experiment\n", @@ -188,7 +188,7 @@ { "cell_type": "code", "execution_count": null, - "id": "fe2f3b64", + "id": "18", "metadata": {}, "outputs": [], "source": [ @@ -198,7 +198,7 @@ }, { "cell_type": "markdown", - "id": "c260cede", + "id": "19", "metadata": {}, "source": [ "#### Create Experiment" @@ -207,7 +207,7 @@ { "cell_type": "code", "execution_count": null, - "id": "6486875f", + "id": "20", "metadata": {}, "outputs": [], "source": [ @@ -217,7 +217,7 @@ }, { "cell_type": "markdown", - "id": "417600cf", + "id": "21", "metadata": {}, "source": [ "#### Set Instrument" @@ -226,7 +226,7 @@ { "cell_type": "code", "execution_count": null, - "id": "ee975fa6", + "id": "22", "metadata": {}, "outputs": [], "source": [ @@ -236,7 +236,7 @@ }, { "cell_type": "markdown", - "id": "54a1f67c", + "id": "23", "metadata": {}, "source": [ "#### Set Peak Profile" @@ -245,7 +245,7 @@ { "cell_type": "code", "execution_count": null, - "id": "4a15686f", + "id": "24", "metadata": {}, "outputs": [], "source": [ @@ -258,7 +258,7 @@ }, { "cell_type": "markdown", - "id": "2342767d", + "id": "25", "metadata": {}, "source": [ "#### Set Background" @@ -267,7 +267,7 @@ { "cell_type": "code", "execution_count": null, - "id": "d5d8b7e3", + "id": "26", "metadata": {}, "outputs": [], "source": [ @@ -284,7 +284,7 @@ }, { "cell_type": "markdown", - "id": "54d94bc9", + "id": "27", "metadata": {}, "source": [ "#### Set Linked Phases" @@ -293,7 +293,7 @@ { "cell_type": "code", "execution_count": null, - "id": "0ded3fad", + "id": "28", "metadata": {}, "outputs": [], "source": [ @@ -302,7 +302,7 @@ }, { "cell_type": "markdown", - "id": "201e87dc", + "id": "29", "metadata": {}, "source": [ "## Define Project\n", @@ -316,7 +316,7 @@ { "cell_type": "code", "execution_count": null, - "id": "b1249be3", + "id": "30", "metadata": {}, "outputs": [], "source": [ @@ -325,7 +325,7 @@ }, { "cell_type": "markdown", - "id": "93b690d2", + "id": "31", "metadata": {}, "source": [ "#### Set Plotting Engine" @@ -334,7 +334,7 @@ { "cell_type": "code", "execution_count": null, - "id": "8d6e6b71", + "id": "32", "metadata": {}, "outputs": [], "source": [ @@ -343,7 +343,7 @@ }, { "cell_type": "markdown", - "id": "a4b97254", + "id": "33", "metadata": {}, "source": [ "#### Add Sample Model" @@ -352,7 +352,7 @@ { "cell_type": "code", "execution_count": null, - "id": "8c6fb44d", + "id": "34", "metadata": {}, "outputs": [], "source": [ @@ -361,7 +361,7 @@ }, { "cell_type": "markdown", - "id": "04e0bc26", + "id": "35", "metadata": {}, "source": [ "#### Add Experiment" @@ -370,7 +370,7 @@ { "cell_type": "code", "execution_count": null, - "id": "4a273e00", + "id": "36", "metadata": {}, "outputs": [], "source": [ @@ -379,7 +379,7 @@ }, { "cell_type": "markdown", - "id": "fde82071", + "id": "37", "metadata": {}, "source": [ "## Perform Analysis\n", @@ -393,7 +393,7 @@ { "cell_type": "code", "execution_count": null, - "id": "14c3829f", + "id": "38", "metadata": {}, "outputs": [], "source": [ @@ -402,7 +402,7 @@ }, { "cell_type": "markdown", - "id": "0309dbff", + "id": "39", "metadata": {}, "source": [ "#### Set Minimizer" @@ -411,7 +411,7 @@ { "cell_type": "code", "execution_count": null, - "id": "4298dcc4", + "id": "40", "metadata": {}, "outputs": [], "source": [ @@ -420,7 +420,7 @@ }, { "cell_type": "markdown", - "id": "87f4e2fb", + "id": "41", "metadata": {}, "source": [ "#### Plot Measured vs Calculated" @@ -429,7 +429,7 @@ { "cell_type": "code", "execution_count": null, - "id": "d33ef568", + "id": "42", "metadata": {}, "outputs": [], "source": [ @@ -440,7 +440,7 @@ { "cell_type": "code", "execution_count": null, - "id": "69b57298", + "id": "43", "metadata": {}, "outputs": [], "source": [ @@ -451,7 +451,7 @@ }, { "cell_type": "markdown", - "id": "0360c5e6", + "id": "44", "metadata": {}, "source": [ "### Perform Fit 1/5\n", @@ -462,7 +462,7 @@ { "cell_type": "code", "execution_count": null, - "id": "d4f31f4a", + "id": "45", "metadata": {}, "outputs": [], "source": [ @@ -475,7 +475,7 @@ }, { "cell_type": "markdown", - "id": "459489fc", + "id": "46", "metadata": {}, "source": [ "Show free parameters after selection." @@ -484,7 +484,7 @@ { "cell_type": "code", "execution_count": null, - "id": "d97f6589", + "id": "47", "metadata": {}, "outputs": [], "source": [ @@ -493,7 +493,7 @@ }, { "cell_type": "markdown", - "id": "6f5b3387", + "id": "48", "metadata": {}, "source": [ "#### Run Fitting" @@ -502,7 +502,7 @@ { "cell_type": "code", "execution_count": null, - "id": "00ec371b", + "id": "49", "metadata": {}, "outputs": [], "source": [ @@ -511,7 +511,7 @@ }, { "cell_type": "markdown", - "id": "fccad330", + "id": "50", "metadata": {}, "source": [ "#### Plot Measured vs Calculated" @@ -520,7 +520,7 @@ { "cell_type": "code", "execution_count": null, - "id": "d5fd3e09", + "id": "51", "metadata": {}, "outputs": [], "source": [ @@ -531,7 +531,7 @@ { "cell_type": "code", "execution_count": null, - "id": "c2f174fd", + "id": "52", "metadata": {}, "outputs": [], "source": [ @@ -542,7 +542,7 @@ }, { "cell_type": "markdown", - "id": "87374fe5", + "id": "53", "metadata": {}, "source": [ "### Perform Fit 2/5\n", @@ -553,7 +553,7 @@ { "cell_type": "code", "execution_count": null, - "id": "dae97ec9", + "id": "54", "metadata": {}, "outputs": [], "source": [ @@ -568,7 +568,7 @@ }, { "cell_type": "markdown", - "id": "320ac5ec", + "id": "55", "metadata": {}, "source": [ "Show free parameters after selection." @@ -577,7 +577,7 @@ { "cell_type": "code", "execution_count": null, - "id": "11c1572d", + "id": "56", "metadata": {}, "outputs": [], "source": [ @@ -586,7 +586,7 @@ }, { "cell_type": "markdown", - "id": "6503d199", + "id": "57", "metadata": {}, "source": [ "#### Run Fitting" @@ -595,7 +595,7 @@ { "cell_type": "code", "execution_count": null, - "id": "26cfadc7", + "id": "58", "metadata": {}, "outputs": [], "source": [ @@ -604,7 +604,7 @@ }, { "cell_type": "markdown", - "id": "922df05d", + "id": "59", "metadata": {}, "source": [ "#### Plot Measured vs Calculated" @@ -613,7 +613,7 @@ { "cell_type": "code", "execution_count": null, - "id": "87fc99e2", + "id": "60", "metadata": {}, "outputs": [], "source": [ @@ -624,7 +624,7 @@ { "cell_type": "code", "execution_count": null, - "id": "bcba4e0a", + "id": "61", "metadata": {}, "outputs": [], "source": [ @@ -635,7 +635,7 @@ }, { "cell_type": "markdown", - "id": "d68dafae", + "id": "62", "metadata": {}, "source": [ "### Perform Fit 3/5\n", @@ -646,7 +646,7 @@ { "cell_type": "code", "execution_count": null, - "id": "45bbecd6", + "id": "63", "metadata": {}, "outputs": [], "source": [ @@ -659,7 +659,7 @@ }, { "cell_type": "markdown", - "id": "aa85ee4f", + "id": "64", "metadata": {}, "source": [ "Show free parameters after selection." @@ -668,7 +668,7 @@ { "cell_type": "code", "execution_count": null, - "id": "baccf9c0", + "id": "65", "metadata": {}, "outputs": [], "source": [ @@ -677,7 +677,7 @@ }, { "cell_type": "markdown", - "id": "fb95f3fc", + "id": "66", "metadata": {}, "source": [ "#### Run Fitting" @@ -686,7 +686,7 @@ { "cell_type": "code", "execution_count": null, - "id": "a27076cb", + "id": "67", "metadata": {}, "outputs": [], "source": [ @@ -695,7 +695,7 @@ }, { "cell_type": "markdown", - "id": "05a9055f", + "id": "68", "metadata": {}, "source": [ "#### Plot Measured vs Calculated" @@ -704,7 +704,7 @@ { "cell_type": "code", "execution_count": null, - "id": "30ff004c", + "id": "69", "metadata": {}, "outputs": [], "source": [ @@ -715,7 +715,7 @@ { "cell_type": "code", "execution_count": null, - "id": "1df03bfc", + "id": "70", "metadata": {}, "outputs": [], "source": [ @@ -726,7 +726,7 @@ }, { "cell_type": "markdown", - "id": "5b3fef16", + "id": "71", "metadata": {}, "source": [ "### Perform Fit 4/5\n", @@ -737,7 +737,7 @@ { "cell_type": "code", "execution_count": null, - "id": "19e1de60", + "id": "72", "metadata": {}, "outputs": [], "source": [ @@ -750,7 +750,7 @@ }, { "cell_type": "markdown", - "id": "6049d8e9", + "id": "73", "metadata": {}, "source": [ "Show free parameters after selection." @@ -759,7 +759,7 @@ { "cell_type": "code", "execution_count": null, - "id": "bb03e976", + "id": "74", "metadata": {}, "outputs": [], "source": [ @@ -768,7 +768,7 @@ }, { "cell_type": "markdown", - "id": "8bf9bcf8", + "id": "75", "metadata": {}, "source": [ "#### Run Fitting" @@ -777,7 +777,7 @@ { "cell_type": "code", "execution_count": null, - "id": "f072b0bd", + "id": "76", "metadata": {}, "outputs": [], "source": [ @@ -786,7 +786,7 @@ }, { "cell_type": "markdown", - "id": "d9b4ca3e", + "id": "77", "metadata": {}, "source": [ "#### Plot Measured vs Calculated" @@ -795,7 +795,7 @@ { "cell_type": "code", "execution_count": null, - "id": "361b5f46", + "id": "78", "metadata": {}, "outputs": [], "source": [ @@ -806,7 +806,7 @@ { "cell_type": "code", "execution_count": null, - "id": "aa22e15a", + "id": "79", "metadata": {}, "outputs": [], "source": [ @@ -817,7 +817,7 @@ }, { "cell_type": "markdown", - "id": "745a56d5", + "id": "80", "metadata": {}, "source": [ "## Summary\n", @@ -827,7 +827,7 @@ }, { "cell_type": "markdown", - "id": "3814f689", + "id": "81", "metadata": {}, "source": [ "#### Show Project Summary" @@ -836,7 +836,7 @@ { "cell_type": "code", "execution_count": null, - "id": "47a7f6d3", + "id": "82", "metadata": {}, "outputs": [], "source": [ diff --git a/tutorials/cryst-struct_pd-neut-tof_Si-SEPD.ipynb b/tutorials/cryst-struct_pd-neut-tof_Si-SEPD.ipynb index ba1d754c..f1b60c3e 100644 --- a/tutorials/cryst-struct_pd-neut-tof_Si-SEPD.ipynb +++ b/tutorials/cryst-struct_pd-neut-tof_Si-SEPD.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "2780bc42", + "id": "0", "metadata": {}, "source": [ "# Structure Refinement: Si, SEPD\n", @@ -13,7 +13,7 @@ }, { "cell_type": "markdown", - "id": "a228268e", + "id": "1", "metadata": {}, "source": [ "## Import Library" @@ -22,7 +22,7 @@ { "cell_type": "code", "execution_count": null, - "id": "021335e1", + "id": "2", "metadata": {}, "outputs": [], "source": [ @@ -36,7 +36,7 @@ }, { "cell_type": "markdown", - "id": "6cbe0b11", + "id": "3", "metadata": {}, "source": [ "## Define Sample Model\n", @@ -49,7 +49,7 @@ { "cell_type": "code", "execution_count": null, - "id": "f1a8ac7b", + "id": "4", "metadata": {}, "outputs": [], "source": [ @@ -58,7 +58,7 @@ }, { "cell_type": "markdown", - "id": "1d388d6b", + "id": "5", "metadata": {}, "source": [ "#### Set Space Group" @@ -67,7 +67,7 @@ { "cell_type": "code", "execution_count": null, - "id": "aeedd31a", + "id": "6", "metadata": {}, "outputs": [], "source": [ @@ -77,7 +77,7 @@ }, { "cell_type": "markdown", - "id": "17e1910d", + "id": "7", "metadata": {}, "source": [ "#### Set Unit Cell" @@ -86,7 +86,7 @@ { "cell_type": "code", "execution_count": null, - "id": "9a427a24", + "id": "8", "metadata": {}, "outputs": [], "source": [ @@ -95,7 +95,7 @@ }, { "cell_type": "markdown", - "id": "d665b13d", + "id": "9", "metadata": {}, "source": [ "#### Set Atom Sites" @@ -104,7 +104,7 @@ { "cell_type": "code", "execution_count": null, - "id": "f05a565f", + "id": "10", "metadata": {}, "outputs": [], "source": [ @@ -113,7 +113,7 @@ }, { "cell_type": "markdown", - "id": "ebc7cfca", + "id": "11", "metadata": {}, "source": [ "## Define Experiment\n", @@ -127,7 +127,7 @@ { "cell_type": "code", "execution_count": null, - "id": "b8b3f2ac", + "id": "12", "metadata": {}, "outputs": [], "source": [ @@ -137,7 +137,7 @@ }, { "cell_type": "markdown", - "id": "b43cf16e", + "id": "13", "metadata": {}, "source": [ "#### Create Experiment" @@ -146,7 +146,7 @@ { "cell_type": "code", "execution_count": null, - "id": "9a5be163", + "id": "14", "metadata": {}, "outputs": [], "source": [ @@ -157,7 +157,7 @@ }, { "cell_type": "markdown", - "id": "0671335b", + "id": "15", "metadata": {}, "source": [ "#### Set Instrument" @@ -166,7 +166,7 @@ { "cell_type": "code", "execution_count": null, - "id": "bd4fa739", + "id": "16", "metadata": {}, "outputs": [], "source": [ @@ -178,7 +178,7 @@ }, { "cell_type": "markdown", - "id": "aca665c6", + "id": "17", "metadata": {}, "source": [ "#### Set Peak Profile" @@ -187,7 +187,7 @@ { "cell_type": "code", "execution_count": null, - "id": "0b37d2a3", + "id": "18", "metadata": {}, "outputs": [], "source": [ @@ -201,7 +201,7 @@ }, { "cell_type": "markdown", - "id": "68623e8b", + "id": "19", "metadata": {}, "source": [ "#### Set Peak Asymmetry" @@ -210,7 +210,7 @@ { "cell_type": "code", "execution_count": null, - "id": "9ed14de8", + "id": "20", "metadata": {}, "outputs": [], "source": [ @@ -220,7 +220,7 @@ }, { "cell_type": "markdown", - "id": "51f0b7d6", + "id": "21", "metadata": {}, "source": [ "#### Set Background" @@ -229,7 +229,7 @@ { "cell_type": "code", "execution_count": null, - "id": "a5b2cb4c", + "id": "22", "metadata": {}, "outputs": [], "source": [ @@ -240,7 +240,7 @@ }, { "cell_type": "markdown", - "id": "e04e06f1", + "id": "23", "metadata": {}, "source": [ "#### Set Linked Phases" @@ -249,7 +249,7 @@ { "cell_type": "code", "execution_count": null, - "id": "c04e391b", + "id": "24", "metadata": {}, "outputs": [], "source": [ @@ -258,7 +258,7 @@ }, { "cell_type": "markdown", - "id": "45821547", + "id": "25", "metadata": {}, "source": [ "## Define Project\n", @@ -272,7 +272,7 @@ { "cell_type": "code", "execution_count": null, - "id": "4e12d271", + "id": "26", "metadata": {}, "outputs": [], "source": [ @@ -281,7 +281,7 @@ }, { "cell_type": "markdown", - "id": "cb8d90a4", + "id": "27", "metadata": {}, "source": [ "#### Set Plotting Engine" @@ -290,7 +290,7 @@ { "cell_type": "code", "execution_count": null, - "id": "d4cee128", + "id": "28", "metadata": {}, "outputs": [], "source": [ @@ -299,7 +299,7 @@ }, { "cell_type": "markdown", - "id": "da7574c3", + "id": "29", "metadata": {}, "source": [ "#### Add Sample Model" @@ -308,7 +308,7 @@ { "cell_type": "code", "execution_count": null, - "id": "0b49013d", + "id": "30", "metadata": {}, "outputs": [], "source": [ @@ -317,7 +317,7 @@ }, { "cell_type": "markdown", - "id": "6af9d6ea", + "id": "31", "metadata": {}, "source": [ "#### Add Experiment" @@ -326,7 +326,7 @@ { "cell_type": "code", "execution_count": null, - "id": "749ed4fc", + "id": "32", "metadata": {}, "outputs": [], "source": [ @@ -335,7 +335,7 @@ }, { "cell_type": "markdown", - "id": "cfe2962d", + "id": "33", "metadata": {}, "source": [ "## Perform Analysis\n", @@ -349,7 +349,7 @@ { "cell_type": "code", "execution_count": null, - "id": "2cbadd65", + "id": "34", "metadata": {}, "outputs": [], "source": [ @@ -358,7 +358,7 @@ }, { "cell_type": "markdown", - "id": "468a3d8f", + "id": "35", "metadata": {}, "source": [ "#### Set Minimizer" @@ -367,7 +367,7 @@ { "cell_type": "code", "execution_count": null, - "id": "7919526a", + "id": "36", "metadata": {}, "outputs": [], "source": [ @@ -376,7 +376,7 @@ }, { "cell_type": "markdown", - "id": "18e7ed31", + "id": "37", "metadata": {}, "source": [ "#### Plot Measured vs Calculated" @@ -385,7 +385,7 @@ { "cell_type": "code", "execution_count": null, - "id": "9163d2c4", + "id": "38", "metadata": {}, "outputs": [], "source": [ @@ -398,7 +398,7 @@ }, { "cell_type": "markdown", - "id": "fdddb822", + "id": "39", "metadata": {}, "source": [ "### Perform Fit 1/5\n", @@ -409,7 +409,7 @@ { "cell_type": "code", "execution_count": null, - "id": "4e38f983", + "id": "40", "metadata": {}, "outputs": [], "source": [ @@ -421,7 +421,7 @@ }, { "cell_type": "markdown", - "id": "34d6f631", + "id": "41", "metadata": {}, "source": [ "Show free parameters after selection." @@ -430,7 +430,7 @@ { "cell_type": "code", "execution_count": null, - "id": "fa0b7ecf", + "id": "42", "metadata": {}, "outputs": [], "source": [ @@ -439,7 +439,7 @@ }, { "cell_type": "markdown", - "id": "5d02df99", + "id": "43", "metadata": {}, "source": [ "#### Run Fitting" @@ -448,7 +448,7 @@ { "cell_type": "code", "execution_count": null, - "id": "c98e6c10", + "id": "44", "metadata": {}, "outputs": [], "source": [ @@ -457,7 +457,7 @@ }, { "cell_type": "markdown", - "id": "8601fbcb", + "id": "45", "metadata": {}, "source": [ "#### Plot Measured vs Calculated" @@ -466,7 +466,7 @@ { "cell_type": "code", "execution_count": null, - "id": "7bc5f68d", + "id": "46", "metadata": {}, "outputs": [], "source": [ @@ -477,7 +477,7 @@ { "cell_type": "code", "execution_count": null, - "id": "2ddfaf46", + "id": "47", "metadata": {}, "outputs": [], "source": [ @@ -488,7 +488,7 @@ }, { "cell_type": "markdown", - "id": "0623f4e7", + "id": "48", "metadata": {}, "source": [ "### Perform Fit 2/5\n", @@ -499,7 +499,7 @@ { "cell_type": "code", "execution_count": null, - "id": "fd54a137", + "id": "49", "metadata": {}, "outputs": [], "source": [ @@ -509,7 +509,7 @@ }, { "cell_type": "markdown", - "id": "7bdf329b", + "id": "50", "metadata": {}, "source": [ "Show free parameters after selection." @@ -518,7 +518,7 @@ { "cell_type": "code", "execution_count": null, - "id": "d12881d5", + "id": "51", "metadata": {}, "outputs": [], "source": [ @@ -527,7 +527,7 @@ }, { "cell_type": "markdown", - "id": "f1f87945", + "id": "52", "metadata": {}, "source": [ "#### Run Fitting" @@ -536,7 +536,7 @@ { "cell_type": "code", "execution_count": null, - "id": "099dfa9b", + "id": "53", "metadata": {}, "outputs": [], "source": [ @@ -545,7 +545,7 @@ }, { "cell_type": "markdown", - "id": "47c2f591", + "id": "54", "metadata": {}, "source": [ "#### Plot Measured vs Calculated" @@ -554,7 +554,7 @@ { "cell_type": "code", "execution_count": null, - "id": "44466af3", + "id": "55", "metadata": {}, "outputs": [], "source": [ @@ -565,7 +565,7 @@ { "cell_type": "code", "execution_count": null, - "id": "c32535e2", + "id": "56", "metadata": {}, "outputs": [], "source": [ @@ -576,7 +576,7 @@ }, { "cell_type": "markdown", - "id": "69e25d8d", + "id": "57", "metadata": {}, "source": [ "### Perform Fit 3/5\n", @@ -587,7 +587,7 @@ { "cell_type": "code", "execution_count": null, - "id": "498d0b29", + "id": "58", "metadata": {}, "outputs": [], "source": [ @@ -597,7 +597,7 @@ }, { "cell_type": "markdown", - "id": "da725256", + "id": "59", "metadata": {}, "source": [ "Set more parameters to be refined." @@ -606,7 +606,7 @@ { "cell_type": "code", "execution_count": null, - "id": "07f7ec3e", + "id": "60", "metadata": {}, "outputs": [], "source": [ @@ -617,7 +617,7 @@ }, { "cell_type": "markdown", - "id": "ecaf589d", + "id": "61", "metadata": {}, "source": [ "Show free parameters after selection." @@ -626,7 +626,7 @@ { "cell_type": "code", "execution_count": null, - "id": "11af3a5f", + "id": "62", "metadata": {}, "outputs": [], "source": [ @@ -635,7 +635,7 @@ }, { "cell_type": "markdown", - "id": "fb79bc95", + "id": "63", "metadata": {}, "source": [ "#### Run Fitting" @@ -644,7 +644,7 @@ { "cell_type": "code", "execution_count": null, - "id": "a3420461", + "id": "64", "metadata": {}, "outputs": [], "source": [ @@ -653,7 +653,7 @@ }, { "cell_type": "markdown", - "id": "21e727dd", + "id": "65", "metadata": {}, "source": [ "#### Plot Measured vs Calculated" @@ -662,7 +662,7 @@ { "cell_type": "code", "execution_count": null, - "id": "a64c4ab5", + "id": "66", "metadata": {}, "outputs": [], "source": [ @@ -673,7 +673,7 @@ { "cell_type": "code", "execution_count": null, - "id": "daa0df8e", + "id": "67", "metadata": {}, "outputs": [], "source": [ @@ -684,7 +684,7 @@ }, { "cell_type": "markdown", - "id": "33a2eb00", + "id": "68", "metadata": {}, "source": [ "### Perform Fit 4/5\n", @@ -695,7 +695,7 @@ { "cell_type": "code", "execution_count": null, - "id": "8f6fd490", + "id": "69", "metadata": {}, "outputs": [], "source": [ @@ -704,7 +704,7 @@ }, { "cell_type": "markdown", - "id": "0688b6c1", + "id": "70", "metadata": {}, "source": [ "Show free parameters after selection." @@ -713,7 +713,7 @@ { "cell_type": "code", "execution_count": null, - "id": "8cc2ee9f", + "id": "71", "metadata": {}, "outputs": [], "source": [ @@ -722,7 +722,7 @@ }, { "cell_type": "markdown", - "id": "8341ada7", + "id": "72", "metadata": {}, "source": [ "#### Run Fitting" @@ -731,7 +731,7 @@ { "cell_type": "code", "execution_count": null, - "id": "ae0b720b", + "id": "73", "metadata": {}, "outputs": [], "source": [ @@ -740,7 +740,7 @@ }, { "cell_type": "markdown", - "id": "53eb8498", + "id": "74", "metadata": {}, "source": [ "#### Plot Measured vs Calculated" @@ -749,7 +749,7 @@ { "cell_type": "code", "execution_count": null, - "id": "f1309d17", + "id": "75", "metadata": {}, "outputs": [], "source": [ @@ -760,7 +760,7 @@ { "cell_type": "code", "execution_count": null, - "id": "6dd30569", + "id": "76", "metadata": {}, "outputs": [], "source": [ diff --git a/tutorials/cryst-struct_pd-neut-tof_multidata_NCAF-WISH.ipynb b/tutorials/cryst-struct_pd-neut-tof_multidata_NCAF-WISH.ipynb index 3841ec8f..5eebed87 100644 --- a/tutorials/cryst-struct_pd-neut-tof_multidata_NCAF-WISH.ipynb +++ b/tutorials/cryst-struct_pd-neut-tof_multidata_NCAF-WISH.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "4c21465f", + "id": "0", "metadata": {}, "source": [ "# Structure Refinement: NCAF, WISH\n", @@ -16,7 +16,7 @@ }, { "cell_type": "markdown", - "id": "1e1d66df", + "id": "1", "metadata": {}, "source": [ "## Import Library" @@ -25,7 +25,7 @@ { "cell_type": "code", "execution_count": null, - "id": "ef688596", + "id": "2", "metadata": {}, "outputs": [], "source": [ @@ -39,7 +39,7 @@ }, { "cell_type": "markdown", - "id": "342f14a3", + "id": "3", "metadata": {}, "source": [ "## Define Sample Model\n", @@ -52,7 +52,7 @@ { "cell_type": "code", "execution_count": null, - "id": "3172b614", + "id": "4", "metadata": {}, "outputs": [], "source": [ @@ -61,7 +61,7 @@ }, { "cell_type": "markdown", - "id": "957860c3", + "id": "5", "metadata": {}, "source": [ "#### Set Space Group" @@ -70,7 +70,7 @@ { "cell_type": "code", "execution_count": null, - "id": "71ab0af4", + "id": "6", "metadata": {}, "outputs": [], "source": [ @@ -80,7 +80,7 @@ }, { "cell_type": "markdown", - "id": "3ee5a033", + "id": "7", "metadata": {}, "source": [ "#### Set Unit Cell" @@ -89,7 +89,7 @@ { "cell_type": "code", "execution_count": null, - "id": "ead98c4a", + "id": "8", "metadata": {}, "outputs": [], "source": [ @@ -98,7 +98,7 @@ }, { "cell_type": "markdown", - "id": "08f8b0ed", + "id": "9", "metadata": {}, "source": [ "#### Set Atom Sites" @@ -107,7 +107,7 @@ { "cell_type": "code", "execution_count": null, - "id": "3c829bcd", + "id": "10", "metadata": {}, "outputs": [], "source": [ @@ -121,7 +121,7 @@ }, { "cell_type": "markdown", - "id": "34b52c84", + "id": "11", "metadata": {}, "source": [ "## Define Experiment\n", @@ -135,7 +135,7 @@ { "cell_type": "code", "execution_count": null, - "id": "a7668c51", + "id": "12", "metadata": {}, "outputs": [], "source": [ @@ -145,7 +145,7 @@ { "cell_type": "code", "execution_count": null, - "id": "a2820861", + "id": "13", "metadata": {}, "outputs": [], "source": [ @@ -154,7 +154,7 @@ }, { "cell_type": "markdown", - "id": "a163f566", + "id": "14", "metadata": {}, "source": [ "#### Create Experiment" @@ -163,7 +163,7 @@ { "cell_type": "code", "execution_count": null, - "id": "1d11e99f", + "id": "15", "metadata": {}, "outputs": [], "source": [ @@ -173,7 +173,7 @@ { "cell_type": "code", "execution_count": null, - "id": "902d2b7a", + "id": "16", "metadata": {}, "outputs": [], "source": [ @@ -182,7 +182,7 @@ }, { "cell_type": "markdown", - "id": "851b9510", + "id": "17", "metadata": {}, "source": [ "#### Set Instrument" @@ -191,7 +191,7 @@ { "cell_type": "code", "execution_count": null, - "id": "4b9f5fb9", + "id": "18", "metadata": {}, "outputs": [], "source": [ @@ -204,7 +204,7 @@ { "cell_type": "code", "execution_count": null, - "id": "c91ad0bc", + "id": "19", "metadata": {}, "outputs": [], "source": [ @@ -216,7 +216,7 @@ }, { "cell_type": "markdown", - "id": "2ba398c9", + "id": "20", "metadata": {}, "source": [ "#### Set Peak Profile" @@ -225,7 +225,7 @@ { "cell_type": "code", "execution_count": null, - "id": "b6e26317", + "id": "21", "metadata": {}, "outputs": [], "source": [ @@ -241,7 +241,7 @@ { "cell_type": "code", "execution_count": null, - "id": "30418c11", + "id": "22", "metadata": {}, "outputs": [], "source": [ @@ -256,7 +256,7 @@ }, { "cell_type": "markdown", - "id": "ae336090", + "id": "23", "metadata": {}, "source": [ "#### Set Background" @@ -265,7 +265,7 @@ { "cell_type": "code", "execution_count": null, - "id": "2de18a44", + "id": "24", "metadata": {}, "outputs": [], "source": [ @@ -306,7 +306,7 @@ { "cell_type": "code", "execution_count": null, - "id": "2f04cd12", + "id": "25", "metadata": {}, "outputs": [], "source": [ @@ -345,7 +345,7 @@ }, { "cell_type": "markdown", - "id": "2c408ace", + "id": "26", "metadata": {}, "source": [ "#### Set Linked Phases" @@ -354,7 +354,7 @@ { "cell_type": "code", "execution_count": null, - "id": "f5b3dc3b", + "id": "27", "metadata": {}, "outputs": [], "source": [ @@ -364,7 +364,7 @@ { "cell_type": "code", "execution_count": null, - "id": "948fa817", + "id": "28", "metadata": {}, "outputs": [], "source": [ @@ -373,7 +373,7 @@ }, { "cell_type": "markdown", - "id": "130f81c8", + "id": "29", "metadata": {}, "source": [ "#### Set Excluded Regions" @@ -382,7 +382,7 @@ { "cell_type": "code", "execution_count": null, - "id": "e638d434", + "id": "30", "metadata": {}, "outputs": [], "source": [ @@ -393,7 +393,7 @@ { "cell_type": "code", "execution_count": null, - "id": "d5088355", + "id": "31", "metadata": {}, "outputs": [], "source": [ @@ -403,7 +403,7 @@ }, { "cell_type": "markdown", - "id": "a217a7a4", + "id": "32", "metadata": {}, "source": [ "## Define Project\n", @@ -417,7 +417,7 @@ { "cell_type": "code", "execution_count": null, - "id": "f3b431c5", + "id": "33", "metadata": {}, "outputs": [], "source": [ @@ -426,7 +426,7 @@ }, { "cell_type": "markdown", - "id": "e8f3e6cb", + "id": "34", "metadata": {}, "source": [ "#### Set Plotting Engine" @@ -435,7 +435,7 @@ { "cell_type": "code", "execution_count": null, - "id": "b0442b28", + "id": "35", "metadata": {}, "outputs": [], "source": [ @@ -444,7 +444,7 @@ }, { "cell_type": "markdown", - "id": "e5790d5b", + "id": "36", "metadata": {}, "source": [ "#### Add Sample Model" @@ -453,7 +453,7 @@ { "cell_type": "code", "execution_count": null, - "id": "4d1c5111", + "id": "37", "metadata": {}, "outputs": [], "source": [ @@ -462,7 +462,7 @@ }, { "cell_type": "markdown", - "id": "4763dd3a", + "id": "38", "metadata": {}, "source": [ "#### Add Experiment" @@ -471,7 +471,7 @@ { "cell_type": "code", "execution_count": null, - "id": "8fb3e19a", + "id": "39", "metadata": {}, "outputs": [], "source": [ @@ -481,7 +481,7 @@ }, { "cell_type": "markdown", - "id": "727db24c", + "id": "40", "metadata": {}, "source": [ "## Perform Analysis\n", @@ -495,7 +495,7 @@ { "cell_type": "code", "execution_count": null, - "id": "9455d52a", + "id": "41", "metadata": {}, "outputs": [], "source": [ @@ -504,7 +504,7 @@ }, { "cell_type": "markdown", - "id": "f3fe9465", + "id": "42", "metadata": {}, "source": [ "#### Set Minimizer" @@ -513,7 +513,7 @@ { "cell_type": "code", "execution_count": null, - "id": "d003e963", + "id": "43", "metadata": {}, "outputs": [], "source": [ @@ -522,7 +522,7 @@ }, { "cell_type": "markdown", - "id": "33d6527e", + "id": "44", "metadata": {}, "source": [ "#### Set Fit Mode" @@ -531,7 +531,7 @@ { "cell_type": "code", "execution_count": null, - "id": "2f31f067", + "id": "45", "metadata": {}, "outputs": [], "source": [ @@ -540,7 +540,7 @@ }, { "cell_type": "markdown", - "id": "31cef763", + "id": "46", "metadata": {}, "source": [ "#### Set Free Parameters" @@ -549,7 +549,7 @@ { "cell_type": "code", "execution_count": null, - "id": "86b6d96f", + "id": "47", "metadata": {}, "outputs": [], "source": [ @@ -575,7 +575,7 @@ { "cell_type": "code", "execution_count": null, - "id": "8dd4324c", + "id": "48", "metadata": {}, "outputs": [], "source": [ @@ -601,7 +601,7 @@ }, { "cell_type": "markdown", - "id": "c275693c", + "id": "49", "metadata": {}, "source": [ "#### Plot Measured vs Calculated" @@ -610,7 +610,7 @@ { "cell_type": "code", "execution_count": null, - "id": "dceb12cc", + "id": "50", "metadata": {}, "outputs": [], "source": [ @@ -620,7 +620,7 @@ { "cell_type": "code", "execution_count": null, - "id": "5aea15d4", + "id": "51", "metadata": {}, "outputs": [], "source": [ @@ -629,7 +629,7 @@ }, { "cell_type": "markdown", - "id": "a8b2a3d9", + "id": "52", "metadata": {}, "source": [ "#### Run Fitting" @@ -638,7 +638,7 @@ { "cell_type": "code", "execution_count": null, - "id": "d8e09a6f", + "id": "53", "metadata": {}, "outputs": [], "source": [ @@ -647,7 +647,7 @@ }, { "cell_type": "markdown", - "id": "bdb4192f", + "id": "54", "metadata": {}, "source": [ "#### Plot Measured vs Calculated" @@ -656,7 +656,7 @@ { "cell_type": "code", "execution_count": null, - "id": "e0cdbcce", + "id": "55", "metadata": {}, "outputs": [], "source": [ @@ -666,7 +666,7 @@ { "cell_type": "code", "execution_count": null, - "id": "615f212a", + "id": "56", "metadata": {}, "outputs": [], "source": [ @@ -675,7 +675,7 @@ }, { "cell_type": "markdown", - "id": "f19f7020", + "id": "57", "metadata": {}, "source": [ "## Summary\n", @@ -685,7 +685,7 @@ }, { "cell_type": "markdown", - "id": "7b312230", + "id": "58", "metadata": {}, "source": [ "#### Show Project Summary" @@ -694,7 +694,7 @@ { "cell_type": "code", "execution_count": null, - "id": "722a6539", + "id": "59", "metadata": {}, "outputs": [], "source": [ diff --git a/tutorials/cryst-struct_pd-neut-tof_multiphase-LBCO-Si_McStas.ipynb b/tutorials/cryst-struct_pd-neut-tof_multiphase-LBCO-Si_McStas.ipynb index bd6e6743..fd09eb27 100644 --- a/tutorials/cryst-struct_pd-neut-tof_multiphase-LBCO-Si_McStas.ipynb +++ b/tutorials/cryst-struct_pd-neut-tof_multiphase-LBCO-Si_McStas.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "b93172ae", + "id": "0", "metadata": {}, "source": [ "# Structure Refinement: LBCO+Si, McStas\n", @@ -14,7 +14,7 @@ }, { "cell_type": "markdown", - "id": "87ea7d5f", + "id": "1", "metadata": {}, "source": [ "## Import Library" @@ -23,7 +23,7 @@ { "cell_type": "code", "execution_count": null, - "id": "124df35d", + "id": "2", "metadata": {}, "outputs": [], "source": [ @@ -37,7 +37,7 @@ }, { "cell_type": "markdown", - "id": "0b12752d", + "id": "3", "metadata": {}, "source": [ "## Define Sample Models\n", @@ -50,7 +50,7 @@ { "cell_type": "code", "execution_count": null, - "id": "d6f64aee", + "id": "4", "metadata": {}, "outputs": [], "source": [ @@ -59,7 +59,7 @@ }, { "cell_type": "markdown", - "id": "bf156fff", + "id": "5", "metadata": {}, "source": [ "#### Set Space Group" @@ -68,7 +68,7 @@ { "cell_type": "code", "execution_count": null, - "id": "abdaaa51", + "id": "6", "metadata": {}, "outputs": [], "source": [ @@ -78,7 +78,7 @@ }, { "cell_type": "markdown", - "id": "4b29fe90", + "id": "7", "metadata": {}, "source": [ "#### Set Unit Cell" @@ -87,7 +87,7 @@ { "cell_type": "code", "execution_count": null, - "id": "bc42a211", + "id": "8", "metadata": {}, "outputs": [], "source": [ @@ -96,7 +96,7 @@ }, { "cell_type": "markdown", - "id": "95860e82", + "id": "9", "metadata": {}, "source": [ "#### Set Atom Sites" @@ -105,7 +105,7 @@ { "cell_type": "code", "execution_count": null, - "id": "205d8004", + "id": "10", "metadata": {}, "outputs": [], "source": [ @@ -117,7 +117,7 @@ }, { "cell_type": "markdown", - "id": "f6c3d66a", + "id": "11", "metadata": {}, "source": [ "### Create Sample Model 2: Si" @@ -126,7 +126,7 @@ { "cell_type": "code", "execution_count": null, - "id": "646ebede", + "id": "12", "metadata": {}, "outputs": [], "source": [ @@ -135,7 +135,7 @@ }, { "cell_type": "markdown", - "id": "9a25f11c", + "id": "13", "metadata": {}, "source": [ "#### Set Space Group" @@ -144,7 +144,7 @@ { "cell_type": "code", "execution_count": null, - "id": "007b40fb", + "id": "14", "metadata": {}, "outputs": [], "source": [ @@ -154,7 +154,7 @@ }, { "cell_type": "markdown", - "id": "ee76cee5", + "id": "15", "metadata": {}, "source": [ "#### Set Unit Cell" @@ -163,7 +163,7 @@ { "cell_type": "code", "execution_count": null, - "id": "c88b9820", + "id": "16", "metadata": {}, "outputs": [], "source": [ @@ -172,7 +172,7 @@ }, { "cell_type": "markdown", - "id": "7837b366", + "id": "17", "metadata": {}, "source": [ "#### Set Atom Sites" @@ -181,7 +181,7 @@ { "cell_type": "code", "execution_count": null, - "id": "f55f9732", + "id": "18", "metadata": {}, "outputs": [], "source": [ @@ -190,7 +190,7 @@ }, { "cell_type": "markdown", - "id": "85383c08", + "id": "19", "metadata": {}, "source": [ "## Define Experiment\n", @@ -204,7 +204,7 @@ { "cell_type": "code", "execution_count": null, - "id": "4fdb8978", + "id": "20", "metadata": {}, "outputs": [], "source": [ @@ -214,7 +214,7 @@ }, { "cell_type": "markdown", - "id": "78453f40", + "id": "21", "metadata": {}, "source": [ "#### Create Experiment" @@ -223,7 +223,7 @@ { "cell_type": "code", "execution_count": null, - "id": "4f20cd2d", + "id": "22", "metadata": {}, "outputs": [], "source": [ @@ -237,7 +237,7 @@ }, { "cell_type": "markdown", - "id": "642b4d09", + "id": "23", "metadata": {}, "source": [ "#### Set Instrument" @@ -246,7 +246,7 @@ { "cell_type": "code", "execution_count": null, - "id": "2ceb61f8", + "id": "24", "metadata": {}, "outputs": [], "source": [ @@ -258,7 +258,7 @@ }, { "cell_type": "markdown", - "id": "696683eb", + "id": "25", "metadata": {}, "source": [ "#### Set Peak Profile" @@ -267,7 +267,7 @@ { "cell_type": "code", "execution_count": null, - "id": "d36f24d3", + "id": "26", "metadata": {}, "outputs": [], "source": [ @@ -283,7 +283,7 @@ }, { "cell_type": "markdown", - "id": "51c3001e", + "id": "27", "metadata": {}, "source": [ "#### Set Background" @@ -291,7 +291,7 @@ }, { "cell_type": "markdown", - "id": "1a2c709e", + "id": "28", "metadata": {}, "source": [ "Select the background type." @@ -300,7 +300,7 @@ { "cell_type": "code", "execution_count": null, - "id": "8088e4ca", + "id": "29", "metadata": {}, "outputs": [], "source": [ @@ -309,7 +309,7 @@ }, { "cell_type": "markdown", - "id": "c42060be", + "id": "30", "metadata": {}, "source": [ "Add background points." @@ -318,7 +318,7 @@ { "cell_type": "code", "execution_count": null, - "id": "b5b03cbe", + "id": "31", "metadata": {}, "outputs": [], "source": [ @@ -339,7 +339,7 @@ }, { "cell_type": "markdown", - "id": "b89f6c55", + "id": "32", "metadata": {}, "source": [ "#### Set Linked Phases" @@ -348,7 +348,7 @@ { "cell_type": "code", "execution_count": null, - "id": "7690770e", + "id": "33", "metadata": {}, "outputs": [], "source": [ @@ -358,7 +358,7 @@ }, { "cell_type": "markdown", - "id": "d46612ef", + "id": "34", "metadata": {}, "source": [ "## Define Project\n", @@ -371,7 +371,7 @@ { "cell_type": "code", "execution_count": null, - "id": "38b80e1d", + "id": "35", "metadata": {}, "outputs": [], "source": [ @@ -380,7 +380,7 @@ }, { "cell_type": "markdown", - "id": "920280cc", + "id": "36", "metadata": {}, "source": [ "#### Set Plotting Engine" @@ -389,7 +389,7 @@ { "cell_type": "code", "execution_count": null, - "id": "7a1ea200", + "id": "37", "metadata": {}, "outputs": [], "source": [ @@ -398,7 +398,7 @@ }, { "cell_type": "markdown", - "id": "da890010", + "id": "38", "metadata": {}, "source": [ "#### Add Sample Models" @@ -407,7 +407,7 @@ { "cell_type": "code", "execution_count": null, - "id": "b9e403c5", + "id": "39", "metadata": {}, "outputs": [], "source": [ @@ -417,7 +417,7 @@ }, { "cell_type": "markdown", - "id": "e1e53fba", + "id": "40", "metadata": {}, "source": [ "#### Show Sample Models" @@ -426,7 +426,7 @@ { "cell_type": "code", "execution_count": null, - "id": "053422e8", + "id": "41", "metadata": {}, "outputs": [], "source": [ @@ -435,7 +435,7 @@ }, { "cell_type": "markdown", - "id": "7a3ff054", + "id": "42", "metadata": {}, "source": [ "#### Add Experiments" @@ -444,7 +444,7 @@ { "cell_type": "code", "execution_count": null, - "id": "6dad1082", + "id": "43", "metadata": {}, "outputs": [], "source": [ @@ -453,7 +453,7 @@ }, { "cell_type": "markdown", - "id": "99def302", + "id": "44", "metadata": {}, "source": [ "#### Set Excluded Regions\n", @@ -464,7 +464,7 @@ { "cell_type": "code", "execution_count": null, - "id": "44961a3f", + "id": "45", "metadata": {}, "outputs": [], "source": [ @@ -473,7 +473,7 @@ }, { "cell_type": "markdown", - "id": "8ebdd683", + "id": "46", "metadata": {}, "source": [ "Add excluded regions." @@ -482,7 +482,7 @@ { "cell_type": "code", "execution_count": null, - "id": "8f82c4c4", + "id": "47", "metadata": {}, "outputs": [], "source": [ @@ -492,7 +492,7 @@ }, { "cell_type": "markdown", - "id": "e9d78b39", + "id": "48", "metadata": {}, "source": [ "Show excluded regions." @@ -501,7 +501,7 @@ { "cell_type": "code", "execution_count": null, - "id": "58fe9668", + "id": "49", "metadata": {}, "outputs": [], "source": [ @@ -510,7 +510,7 @@ }, { "cell_type": "markdown", - "id": "944dce4c", + "id": "50", "metadata": {}, "source": [ "Show measured data after adding excluded regions." @@ -519,7 +519,7 @@ { "cell_type": "code", "execution_count": null, - "id": "47507dad", + "id": "51", "metadata": {}, "outputs": [], "source": [ @@ -528,7 +528,7 @@ }, { "cell_type": "markdown", - "id": "2fb29192", + "id": "52", "metadata": {}, "source": [ "Show experiment as CIF." @@ -537,7 +537,7 @@ { "cell_type": "code", "execution_count": null, - "id": "f9514ff8", + "id": "53", "metadata": {}, "outputs": [], "source": [ @@ -546,7 +546,7 @@ }, { "cell_type": "markdown", - "id": "55dff3c7", + "id": "54", "metadata": {}, "source": [ "## Perform Analysis\n", @@ -560,7 +560,7 @@ { "cell_type": "code", "execution_count": null, - "id": "ee832ff4", + "id": "55", "metadata": {}, "outputs": [], "source": [ @@ -569,7 +569,7 @@ }, { "cell_type": "markdown", - "id": "16c0819b", + "id": "56", "metadata": {}, "source": [ "#### Set Minimizer" @@ -578,7 +578,7 @@ { "cell_type": "code", "execution_count": null, - "id": "d7c219f4", + "id": "57", "metadata": {}, "outputs": [], "source": [ @@ -587,7 +587,7 @@ }, { "cell_type": "markdown", - "id": "8a42680c", + "id": "58", "metadata": {}, "source": [ "#### Set Fitting Parameters\n", @@ -598,7 +598,7 @@ { "cell_type": "code", "execution_count": null, - "id": "c173905d", + "id": "59", "metadata": {}, "outputs": [], "source": [ @@ -611,7 +611,7 @@ }, { "cell_type": "markdown", - "id": "e06b84ef", + "id": "60", "metadata": {}, "source": [ "Set experiment parameters to be optimized." @@ -620,7 +620,7 @@ { "cell_type": "code", "execution_count": null, - "id": "d8db1bc3", + "id": "61", "metadata": {}, "outputs": [], "source": [ @@ -641,7 +641,7 @@ }, { "cell_type": "markdown", - "id": "284d4c5a", + "id": "62", "metadata": {}, "source": [ "#### Perform Fit" @@ -650,7 +650,7 @@ { "cell_type": "code", "execution_count": null, - "id": "db080d7f", + "id": "63", "metadata": {}, "outputs": [], "source": [ @@ -659,7 +659,7 @@ }, { "cell_type": "markdown", - "id": "bcafa998", + "id": "64", "metadata": {}, "source": [ "#### Plot Measured vs Calculated" @@ -668,7 +668,7 @@ { "cell_type": "code", "execution_count": null, - "id": "be7579bd", + "id": "65", "metadata": {}, "outputs": [], "source": [ diff --git a/tutorials/dmsc-summer-school-2025_analysis-powder-diffraction.ipynb b/tutorials/dmsc-summer-school-2025_analysis-powder-diffraction.ipynb index b74fbb0a..7b79519a 100644 --- a/tutorials/dmsc-summer-school-2025_analysis-powder-diffraction.ipynb +++ b/tutorials/dmsc-summer-school-2025_analysis-powder-diffraction.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "731fe2c0", + "id": "0", "metadata": {}, "source": [ "# Fitting Powder Diffraction data\n", @@ -31,7 +31,7 @@ { "cell_type": "code", "execution_count": null, - "id": "9f6963c2", + "id": "1", "metadata": {}, "outputs": [], "source": [ @@ -49,7 +49,7 @@ { "cell_type": "code", "execution_count": null, - "id": "a4297ceb", + "id": "2", "metadata": {}, "outputs": [], "source": [ @@ -58,7 +58,7 @@ }, { "cell_type": "markdown", - "id": "40d65311", + "id": "3", "metadata": {}, "source": [ "## 📘 Introduction: Simple Reference Fit – Si\n", @@ -86,7 +86,7 @@ { "cell_type": "code", "execution_count": null, - "id": "0cce74b0", + "id": "4", "metadata": {}, "outputs": [], "source": [ @@ -95,7 +95,7 @@ }, { "cell_type": "markdown", - "id": "bb11e721", + "id": "5", "metadata": {}, "source": [ "\n", @@ -108,7 +108,7 @@ { "cell_type": "code", "execution_count": null, - "id": "f1e46e26", + "id": "6", "metadata": {}, "outputs": [], "source": [ @@ -118,7 +118,7 @@ }, { "cell_type": "markdown", - "id": "eaf9d25b", + "id": "7", "metadata": {}, "source": [ "### 🔬 Create an Experiment\n", @@ -136,7 +136,7 @@ { "cell_type": "code", "execution_count": null, - "id": "94ebeb18", + "id": "8", "metadata": {}, "outputs": [], "source": [ @@ -149,7 +149,7 @@ { "cell_type": "code", "execution_count": null, - "id": "f4bc744b", + "id": "9", "metadata": {}, "outputs": [], "source": [ @@ -159,7 +159,7 @@ { "cell_type": "code", "execution_count": null, - "id": "d729436d", + "id": "10", "metadata": {}, "outputs": [], "source": [ @@ -174,7 +174,7 @@ }, { "cell_type": "markdown", - "id": "69f08bea", + "id": "11", "metadata": {}, "source": [ "#### Inspect Measured Data\n", @@ -197,7 +197,7 @@ { "cell_type": "code", "execution_count": null, - "id": "9471cfae", + "id": "12", "metadata": {}, "outputs": [], "source": [ @@ -207,7 +207,7 @@ { "cell_type": "code", "execution_count": null, - "id": "8e8fc9b2", + "id": "13", "metadata": {}, "outputs": [], "source": [ @@ -216,7 +216,7 @@ }, { "cell_type": "markdown", - "id": "47783744", + "id": "14", "metadata": {}, "source": [ "If you zoom in on the highest TOF peak (around 120,000 μs), you will notice\n", @@ -231,7 +231,7 @@ { "cell_type": "code", "execution_count": null, - "id": "86fc982e", + "id": "15", "metadata": {}, "outputs": [], "source": [ @@ -241,7 +241,7 @@ }, { "cell_type": "markdown", - "id": "dcc0ee01", + "id": "16", "metadata": {}, "source": [ "To visualize the effect of excluding the high TOF region, we can plot\n", @@ -252,7 +252,7 @@ { "cell_type": "code", "execution_count": null, - "id": "49e539da", + "id": "17", "metadata": {}, "outputs": [], "source": [ @@ -261,7 +261,7 @@ }, { "cell_type": "markdown", - "id": "600c43c1", + "id": "18", "metadata": {}, "source": [ "#### Set Instrument Parameters\n", @@ -284,7 +284,7 @@ { "cell_type": "code", "execution_count": null, - "id": "bfe6ff00", + "id": "19", "metadata": {}, "outputs": [], "source": [ @@ -298,7 +298,7 @@ }, { "cell_type": "markdown", - "id": "f0d95f7e", + "id": "20", "metadata": {}, "source": [ "Every parameters is an object, which has different attributes, such as\n", @@ -311,7 +311,7 @@ { "cell_type": "code", "execution_count": null, - "id": "dccf7c6f", + "id": "21", "metadata": {}, "outputs": [], "source": [ @@ -320,7 +320,7 @@ }, { "cell_type": "markdown", - "id": "bd7395aa", + "id": "22", "metadata": {}, "source": [ "The `value` attribute represents the current value of the parameter as a float.\n", @@ -334,7 +334,7 @@ { "cell_type": "code", "execution_count": null, - "id": "2716491f", + "id": "23", "metadata": {}, "outputs": [], "source": [ @@ -343,7 +343,7 @@ }, { "cell_type": "markdown", - "id": "e3344b78", + "id": "24", "metadata": {}, "source": [ "Note that to set the value of the parameter, you can simply assign a new value\n", @@ -352,7 +352,7 @@ }, { "cell_type": "markdown", - "id": "2bc90707", + "id": "25", "metadata": {}, "source": [ "#### Set Peak Profile Parameters\n", @@ -376,7 +376,7 @@ { "cell_type": "code", "execution_count": null, - "id": "c834906b", + "id": "26", "metadata": {}, "outputs": [], "source": [ @@ -392,7 +392,7 @@ }, { "cell_type": "markdown", - "id": "9a32f7bb", + "id": "27", "metadata": {}, "source": [ "#### Set Background\n", @@ -426,7 +426,7 @@ { "cell_type": "code", "execution_count": null, - "id": "a2877517", + "id": "28", "metadata": {}, "outputs": [], "source": [ @@ -442,7 +442,7 @@ }, { "cell_type": "markdown", - "id": "5aa86863", + "id": "29", "metadata": {}, "source": [ "### 🧩 Create a Sample Model – Si\n", @@ -484,7 +484,7 @@ }, { "cell_type": "markdown", - "id": "75beb6ef", + "id": "30", "metadata": {}, "source": [ "```\n", @@ -516,7 +516,7 @@ }, { "cell_type": "markdown", - "id": "b9673b93", + "id": "31", "metadata": {}, "source": [ "\n", @@ -530,7 +530,7 @@ { "cell_type": "code", "execution_count": null, - "id": "2e5208de", + "id": "32", "metadata": {}, "outputs": [], "source": [ @@ -539,7 +539,7 @@ }, { "cell_type": "markdown", - "id": "6ed38e53", + "id": "33", "metadata": {}, "source": [ "#### Set Space Group" @@ -548,7 +548,7 @@ { "cell_type": "code", "execution_count": null, - "id": "039614e3", + "id": "34", "metadata": {}, "outputs": [], "source": [ @@ -558,7 +558,7 @@ }, { "cell_type": "markdown", - "id": "8d63e3b1", + "id": "35", "metadata": {}, "source": [ "#### Set Lattice Parameters" @@ -567,7 +567,7 @@ { "cell_type": "code", "execution_count": null, - "id": "d4a2a211", + "id": "36", "metadata": {}, "outputs": [], "source": [ @@ -576,7 +576,7 @@ }, { "cell_type": "markdown", - "id": "3d126c09", + "id": "37", "metadata": {}, "source": [ "#### Set Atom Sites" @@ -585,7 +585,7 @@ { "cell_type": "code", "execution_count": null, - "id": "36438478", + "id": "38", "metadata": {}, "outputs": [], "source": [ @@ -602,7 +602,7 @@ }, { "cell_type": "markdown", - "id": "279a018d", + "id": "39", "metadata": {}, "source": [ "### 🔗 Assign Sample Model to Experiment\n", @@ -615,7 +615,7 @@ { "cell_type": "code", "execution_count": null, - "id": "f0e9a9c1", + "id": "40", "metadata": {}, "outputs": [], "source": [ @@ -624,7 +624,7 @@ }, { "cell_type": "markdown", - "id": "27607779", + "id": "41", "metadata": {}, "source": [ "### 🚀 Analyze and Fit the Data\n", @@ -656,7 +656,7 @@ { "cell_type": "code", "execution_count": null, - "id": "0b7fb195", + "id": "42", "metadata": {}, "outputs": [], "source": [ @@ -676,7 +676,7 @@ }, { "cell_type": "markdown", - "id": "e4a531c3", + "id": "43", "metadata": {}, "source": [ "#### Show Free Parameters\n", @@ -688,7 +688,7 @@ { "cell_type": "code", "execution_count": null, - "id": "9bada38e", + "id": "44", "metadata": {}, "outputs": [], "source": [ @@ -697,7 +697,7 @@ }, { "cell_type": "markdown", - "id": "bd5478d1", + "id": "45", "metadata": {}, "source": [ "#### Visualize Diffraction Patterns\n", @@ -713,7 +713,7 @@ { "cell_type": "code", "execution_count": null, - "id": "3658c811", + "id": "46", "metadata": {}, "outputs": [], "source": [ @@ -722,7 +722,7 @@ }, { "cell_type": "markdown", - "id": "b8654b10", + "id": "47", "metadata": {}, "source": [ "#### Run Fitting\n", @@ -734,7 +734,7 @@ { "cell_type": "code", "execution_count": null, - "id": "e8816ac2", + "id": "48", "metadata": {}, "outputs": [], "source": [ @@ -743,7 +743,7 @@ }, { "cell_type": "markdown", - "id": "cafb44a6", + "id": "49", "metadata": {}, "source": [ "#### Check Fit Results\n", @@ -761,7 +761,7 @@ }, { "cell_type": "markdown", - "id": "e39f72be", + "id": "50", "metadata": {}, "source": [ "#### Visualize Fit Results\n", @@ -775,7 +775,7 @@ { "cell_type": "code", "execution_count": null, - "id": "c3d96ef4", + "id": "51", "metadata": {}, "outputs": [], "source": [ @@ -784,7 +784,7 @@ }, { "cell_type": "markdown", - "id": "5790ea81", + "id": "52", "metadata": {}, "source": [ "#### TOF vs d-spacing\n", @@ -803,7 +803,7 @@ { "cell_type": "code", "execution_count": null, - "id": "dfcc28e5", + "id": "53", "metadata": {}, "outputs": [], "source": [ @@ -812,7 +812,7 @@ }, { "cell_type": "markdown", - "id": "8d71e3ac", + "id": "54", "metadata": {}, "source": [ "As you can see, the calculated diffraction pattern now matches the measured\n", @@ -847,7 +847,7 @@ { "cell_type": "code", "execution_count": null, - "id": "ed160f8c", + "id": "55", "metadata": {}, "outputs": [], "source": [ @@ -860,7 +860,7 @@ }, { "cell_type": "markdown", - "id": "72738a50", + "id": "56", "metadata": {}, "source": [ "### 🔬 Exercise 2: Define an Experiment\n", @@ -879,7 +879,7 @@ { "cell_type": "code", "execution_count": null, - "id": "1f17d585", + "id": "57", "metadata": {}, "outputs": [], "source": [ @@ -892,7 +892,7 @@ { "cell_type": "code", "execution_count": null, - "id": "8710d7f8", + "id": "58", "metadata": {}, "outputs": [], "source": [ @@ -902,7 +902,7 @@ { "cell_type": "code", "execution_count": null, - "id": "46e52cb6", + "id": "59", "metadata": {}, "outputs": [], "source": [ @@ -917,7 +917,7 @@ }, { "cell_type": "markdown", - "id": "d4ec8b7e", + "id": "60", "metadata": {}, "source": [ "#### Exercise 2.1: Inspect Measured Data\n", @@ -937,7 +937,7 @@ { "cell_type": "code", "execution_count": null, - "id": "477b5991", + "id": "61", "metadata": {}, "outputs": [], "source": [ @@ -948,7 +948,7 @@ { "cell_type": "code", "execution_count": null, - "id": "26f94f91", + "id": "62", "metadata": {}, "outputs": [], "source": [ @@ -959,7 +959,7 @@ { "cell_type": "code", "execution_count": null, - "id": "1bdfcd16", + "id": "63", "metadata": {}, "outputs": [], "source": [ @@ -968,7 +968,7 @@ }, { "cell_type": "markdown", - "id": "86817647", + "id": "64", "metadata": {}, "source": [ "#### Exercise 2.2: Set Instrument Parameters\n", @@ -984,7 +984,7 @@ { "cell_type": "code", "execution_count": null, - "id": "52fc5af3", + "id": "65", "metadata": {}, "outputs": [], "source": [ @@ -998,7 +998,7 @@ }, { "cell_type": "markdown", - "id": "c0197cd3", + "id": "66", "metadata": {}, "source": [ "#### Exercise 2.3: Set Peak Profile Parameters\n", @@ -1016,7 +1016,7 @@ { "cell_type": "code", "execution_count": null, - "id": "be726ae3", + "id": "67", "metadata": {}, "outputs": [], "source": [ @@ -1032,7 +1032,7 @@ }, { "cell_type": "markdown", - "id": "34a8c3f0", + "id": "68", "metadata": {}, "source": [ "#### Exercise 2.4: Set Background\n", @@ -1051,7 +1051,7 @@ { "cell_type": "code", "execution_count": null, - "id": "3e7b7a27", + "id": "69", "metadata": {}, "outputs": [], "source": [ @@ -1067,7 +1067,7 @@ }, { "cell_type": "markdown", - "id": "7c6d4023", + "id": "70", "metadata": {}, "source": [ "### 🧩 Exercise 3: Define a Sample Model – LBCO\n", @@ -1083,7 +1083,7 @@ }, { "cell_type": "markdown", - "id": "a67d23e7", + "id": "71", "metadata": {}, "source": [ "```\n", @@ -1118,7 +1118,7 @@ }, { "cell_type": "markdown", - "id": "eea64c73", + "id": "72", "metadata": {}, "source": [ "#### Exercise 3.1: Create Sample Model\n", @@ -1134,7 +1134,7 @@ { "cell_type": "code", "execution_count": null, - "id": "ad27110f", + "id": "73", "metadata": {}, "outputs": [], "source": [ @@ -1143,7 +1143,7 @@ }, { "cell_type": "markdown", - "id": "ad7f9558", + "id": "74", "metadata": {}, "source": [ "#### Exercise 3.2: Set Space Group\n", @@ -1158,7 +1158,7 @@ { "cell_type": "code", "execution_count": null, - "id": "ae9f71b4", + "id": "75", "metadata": {}, "outputs": [], "source": [ @@ -1168,7 +1168,7 @@ }, { "cell_type": "markdown", - "id": "3608b4f6", + "id": "76", "metadata": {}, "source": [ "#### Exercise 3.3: Set Lattice Parameters\n", @@ -1183,7 +1183,7 @@ { "cell_type": "code", "execution_count": null, - "id": "2b886f81", + "id": "77", "metadata": {}, "outputs": [], "source": [ @@ -1192,7 +1192,7 @@ }, { "cell_type": "markdown", - "id": "a0f44933", + "id": "78", "metadata": {}, "source": [ "#### Exercise 3.4: Set Atom Sites\n", @@ -1209,7 +1209,7 @@ { "cell_type": "code", "execution_count": null, - "id": "c3bc62cc", + "id": "79", "metadata": {}, "outputs": [], "source": [ @@ -1255,7 +1255,7 @@ }, { "cell_type": "markdown", - "id": "63d5d943", + "id": "80", "metadata": {}, "source": [ "### 🔗 Exercise 4: Assign Sample Model to Experiment\n", @@ -1270,7 +1270,7 @@ { "cell_type": "code", "execution_count": null, - "id": "1c343234", + "id": "81", "metadata": {}, "outputs": [], "source": [ @@ -1279,7 +1279,7 @@ }, { "cell_type": "markdown", - "id": "31801700", + "id": "82", "metadata": {}, "source": [ "### 🚀 Exercise 5: Analyze and Fit the Data\n", @@ -1299,7 +1299,7 @@ { "cell_type": "code", "execution_count": null, - "id": "992386bb", + "id": "83", "metadata": {}, "outputs": [], "source": [ @@ -1311,7 +1311,7 @@ }, { "cell_type": "markdown", - "id": "92609423", + "id": "84", "metadata": {}, "source": [ "#### Exercise 5.2: Run Fitting\n", @@ -1330,7 +1330,7 @@ { "cell_type": "code", "execution_count": null, - "id": "32f49d46", + "id": "85", "metadata": {}, "outputs": [], "source": [ @@ -1340,7 +1340,7 @@ { "cell_type": "code", "execution_count": null, - "id": "1887bf6f", + "id": "86", "metadata": {}, "outputs": [], "source": [ @@ -1349,7 +1349,7 @@ }, { "cell_type": "markdown", - "id": "5a0d5c93", + "id": "87", "metadata": {}, "source": [ "#### Exercise 5.3: Find the Misfit in the Fit\n", @@ -1378,7 +1378,7 @@ { "cell_type": "code", "execution_count": null, - "id": "08b72654", + "id": "88", "metadata": {}, "outputs": [], "source": [ @@ -1387,7 +1387,7 @@ }, { "cell_type": "markdown", - "id": "8dc9903a", + "id": "89", "metadata": {}, "source": [ "#### Exercise 5.4: Refine the LBCO Lattice Parameter\n", @@ -1403,7 +1403,7 @@ { "cell_type": "code", "execution_count": null, - "id": "3afeda2d", + "id": "90", "metadata": {}, "outputs": [], "source": [ @@ -1413,7 +1413,7 @@ { "cell_type": "code", "execution_count": null, - "id": "30ff4f74", + "id": "91", "metadata": {}, "outputs": [], "source": [ @@ -1423,7 +1423,7 @@ { "cell_type": "code", "execution_count": null, - "id": "ec55b151", + "id": "92", "metadata": {}, "outputs": [], "source": [ @@ -1432,7 +1432,7 @@ }, { "cell_type": "markdown", - "id": "41348232", + "id": "93", "metadata": {}, "source": [ "One of the main goals of this study was to refine the lattice parameter of the LBCO phase. As shown in the updated fit results, the overall fit has improved significantly, even though the change in cell length is less than 1% of the initial value. This demonstrates how even a small adjustment to the lattice parameter can have a substantial impact on the quality of the fit." @@ -1440,7 +1440,7 @@ }, { "cell_type": "markdown", - "id": "6d4b37d2", + "id": "94", "metadata": {}, "source": [ "#### Exercise 5.5: Visualize the Fit Results in d-spacing\n", @@ -1456,7 +1456,7 @@ { "cell_type": "code", "execution_count": null, - "id": "5a94d042", + "id": "95", "metadata": {}, "outputs": [], "source": [ @@ -1465,7 +1465,7 @@ }, { "cell_type": "markdown", - "id": "bc4d8c36", + "id": "96", "metadata": {}, "source": [ "#### Exercise 5.6: Refine the Peak Profile Parameters\n", @@ -1484,7 +1484,7 @@ { "cell_type": "code", "execution_count": null, - "id": "600a3a67", + "id": "97", "metadata": {}, "outputs": [], "source": [ @@ -1493,7 +1493,7 @@ }, { "cell_type": "markdown", - "id": "e336b5a4", + "id": "98", "metadata": {}, "source": [ "The peak profile parameters are determined based on both the instrument\n", @@ -1513,7 +1513,7 @@ { "cell_type": "code", "execution_count": null, - "id": "b88d01fb", + "id": "99", "metadata": {}, "outputs": [], "source": [ @@ -1529,7 +1529,7 @@ { "cell_type": "code", "execution_count": null, - "id": "6457c47a", + "id": "100", "metadata": {}, "outputs": [], "source": [ @@ -1539,7 +1539,7 @@ { "cell_type": "code", "execution_count": null, - "id": "e83f8963", + "id": "101", "metadata": {}, "outputs": [], "source": [ @@ -1548,7 +1548,7 @@ }, { "cell_type": "markdown", - "id": "b2dec321", + "id": "102", "metadata": {}, "source": [ "#### Exercise 5.7: Find Undefined Features\n", @@ -1568,7 +1568,7 @@ { "cell_type": "code", "execution_count": null, - "id": "e82d544d", + "id": "103", "metadata": {}, "outputs": [], "source": [ @@ -1577,7 +1577,7 @@ }, { "cell_type": "markdown", - "id": "0f346cd7", + "id": "104", "metadata": {}, "source": [ "#### Exercise 5.8: Identify the Cause of the Unexplained Peaks\n", @@ -1603,7 +1603,7 @@ }, { "cell_type": "markdown", - "id": "10ec40e9", + "id": "105", "metadata": {}, "source": [ "#### Exercise 5.9: Identify the impurity phase\n", @@ -1625,7 +1625,7 @@ { "cell_type": "code", "execution_count": null, - "id": "c1b73ea2", + "id": "106", "metadata": {}, "outputs": [], "source": [ @@ -1635,7 +1635,7 @@ }, { "cell_type": "markdown", - "id": "e988dd19", + "id": "107", "metadata": {}, "source": [ "#### Exercise 5.10: Create a Second Sample Model – Si as Impurity\n", @@ -1653,7 +1653,7 @@ }, { "cell_type": "markdown", - "id": "e79ea35c", + "id": "108", "metadata": {}, "source": [ "**Set Space Group**" @@ -1662,7 +1662,7 @@ { "cell_type": "code", "execution_count": null, - "id": "45c8f6e2", + "id": "109", "metadata": {}, "outputs": [], "source": [ @@ -1672,7 +1672,7 @@ { "cell_type": "code", "execution_count": null, - "id": "2eae8fec", + "id": "110", "metadata": {}, "outputs": [], "source": [ @@ -1682,7 +1682,7 @@ }, { "cell_type": "markdown", - "id": "5c8f2e84", + "id": "111", "metadata": {}, "source": [ "**Set Lattice Parameters**" @@ -1691,7 +1691,7 @@ { "cell_type": "code", "execution_count": null, - "id": "849a0132", + "id": "112", "metadata": {}, "outputs": [], "source": [ @@ -1700,7 +1700,7 @@ }, { "cell_type": "markdown", - "id": "f8d8b5cd", + "id": "113", "metadata": {}, "source": [ "**Set Atom Sites**" @@ -1709,7 +1709,7 @@ { "cell_type": "code", "execution_count": null, - "id": "9984b3d8", + "id": "114", "metadata": {}, "outputs": [], "source": [ @@ -1726,7 +1726,7 @@ }, { "cell_type": "markdown", - "id": "8218a57d", + "id": "115", "metadata": {}, "source": [ "**🔗 Assign Sample Model to Experiment**" @@ -1735,7 +1735,7 @@ { "cell_type": "code", "execution_count": null, - "id": "f1153ceb", + "id": "116", "metadata": {}, "outputs": [], "source": [ @@ -1744,7 +1744,7 @@ }, { "cell_type": "markdown", - "id": "3b561b61", + "id": "117", "metadata": {}, "source": [ "#### Exercise 5.11: Refine the Scale of the Si Phase\n", @@ -1770,7 +1770,7 @@ { "cell_type": "code", "execution_count": null, - "id": "bc703e64", + "id": "118", "metadata": {}, "outputs": [], "source": [ @@ -1779,7 +1779,7 @@ }, { "cell_type": "markdown", - "id": "e9e82c0f", + "id": "119", "metadata": {}, "source": [ "As you can see, the calculated pattern is now the sum of both phases,\n", @@ -1792,7 +1792,7 @@ { "cell_type": "code", "execution_count": null, - "id": "88a75519", + "id": "120", "metadata": {}, "outputs": [], "source": [ @@ -1801,7 +1801,7 @@ }, { "cell_type": "markdown", - "id": "f7759b37", + "id": "121", "metadata": {}, "source": [ "**Run Fitting**\n", @@ -1812,7 +1812,7 @@ { "cell_type": "code", "execution_count": null, - "id": "8a0b7fbf", + "id": "122", "metadata": {}, "outputs": [], "source": [ @@ -1821,7 +1821,7 @@ }, { "cell_type": "markdown", - "id": "e2bd645b", + "id": "123", "metadata": {}, "source": [ "**Visualize Fit Results**\n", @@ -1834,7 +1834,7 @@ { "cell_type": "code", "execution_count": null, - "id": "b0d398af", + "id": "124", "metadata": {}, "outputs": [], "source": [ @@ -1844,7 +1844,7 @@ { "cell_type": "code", "execution_count": null, - "id": "e4dc5b8b", + "id": "125", "metadata": {}, "outputs": [], "source": [ @@ -1853,7 +1853,7 @@ }, { "cell_type": "markdown", - "id": "51a54070", + "id": "126", "metadata": {}, "source": [ "All previously unexplained peaks are now accounted for in the pattern, and the fit is improved.\n", @@ -1872,7 +1872,7 @@ }, { "cell_type": "markdown", - "id": "65e8470b", + "id": "127", "metadata": {}, "source": [ "## 🎁 Bonus\n", diff --git a/tutorials/pdf_pd-neut-cwl_Ni.ipynb b/tutorials/pdf_pd-neut-cwl_Ni.ipynb index 093d0236..bb3d206a 100644 --- a/tutorials/pdf_pd-neut-cwl_Ni.ipynb +++ b/tutorials/pdf_pd-neut-cwl_Ni.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "660ae07b", + "id": "0", "metadata": {}, "source": [ "# Pair Distribution Function: Ni, NPD\n", @@ -17,7 +17,7 @@ }, { "cell_type": "markdown", - "id": "808242e7", + "id": "1", "metadata": {}, "source": [ "## Import Library" @@ -26,7 +26,7 @@ { "cell_type": "code", "execution_count": null, - "id": "adc34b39", + "id": "2", "metadata": {}, "outputs": [], "source": [ @@ -35,7 +35,7 @@ }, { "cell_type": "markdown", - "id": "43d87a8f", + "id": "3", "metadata": {}, "source": [ "## Create Project" @@ -44,7 +44,7 @@ { "cell_type": "code", "execution_count": null, - "id": "6735664b", + "id": "4", "metadata": {}, "outputs": [], "source": [ @@ -53,7 +53,7 @@ }, { "cell_type": "markdown", - "id": "f1f36efb", + "id": "5", "metadata": {}, "source": [ "## Set Plotting Engine" @@ -62,7 +62,7 @@ { "cell_type": "code", "execution_count": null, - "id": "aeda2ae0", + "id": "6", "metadata": {}, "outputs": [], "source": [ @@ -71,7 +71,7 @@ }, { "cell_type": "markdown", - "id": "d9f46cad", + "id": "7", "metadata": {}, "source": [ "## Add Sample Model" @@ -80,7 +80,7 @@ { "cell_type": "code", "execution_count": null, - "id": "6ad3fa33", + "id": "8", "metadata": {}, "outputs": [], "source": [ @@ -90,7 +90,7 @@ { "cell_type": "code", "execution_count": null, - "id": "8c971e17", + "id": "9", "metadata": {}, "outputs": [], "source": [ @@ -108,7 +108,7 @@ }, { "cell_type": "markdown", - "id": "27eb6d26", + "id": "10", "metadata": {}, "source": [ "## Add Experiment" @@ -117,7 +117,7 @@ { "cell_type": "code", "execution_count": null, - "id": "b3c6d8c3", + "id": "11", "metadata": {}, "outputs": [], "source": [ @@ -128,7 +128,7 @@ { "cell_type": "code", "execution_count": null, - "id": "19b37ecd", + "id": "12", "metadata": {}, "outputs": [], "source": [ @@ -143,7 +143,7 @@ { "cell_type": "code", "execution_count": null, - "id": "52d1a3da", + "id": "13", "metadata": {}, "outputs": [], "source": [ @@ -158,7 +158,7 @@ }, { "cell_type": "markdown", - "id": "b58e975f", + "id": "14", "metadata": {}, "source": [ "## Select Fitting Parameters" @@ -167,7 +167,7 @@ { "cell_type": "code", "execution_count": null, - "id": "4a65e6d3", + "id": "15", "metadata": {}, "outputs": [], "source": [ @@ -178,7 +178,7 @@ { "cell_type": "code", "execution_count": null, - "id": "b284d1b1", + "id": "16", "metadata": {}, "outputs": [], "source": [ @@ -189,7 +189,7 @@ }, { "cell_type": "markdown", - "id": "2482a8b4", + "id": "17", "metadata": {}, "source": [ "## Run Fitting" @@ -198,7 +198,7 @@ { "cell_type": "code", "execution_count": null, - "id": "4c12ff6b", + "id": "18", "metadata": {}, "outputs": [], "source": [ @@ -208,7 +208,7 @@ }, { "cell_type": "markdown", - "id": "c6a032e8", + "id": "19", "metadata": {}, "source": [ "## Plot Measured vs Calculated" @@ -217,7 +217,7 @@ { "cell_type": "code", "execution_count": null, - "id": "848a0e10", + "id": "20", "metadata": {}, "outputs": [], "source": [ diff --git a/tutorials/pdf_pd-neut-tof_Si-NOMAD.ipynb b/tutorials/pdf_pd-neut-tof_Si-NOMAD.ipynb index 39c4e8b6..d0c6123f 100644 --- a/tutorials/pdf_pd-neut-tof_Si-NOMAD.ipynb +++ b/tutorials/pdf_pd-neut-tof_Si-NOMAD.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "e5847958", + "id": "0", "metadata": {}, "source": [ "# Pair Distribution Function: Si, NPD\n", @@ -14,7 +14,7 @@ }, { "cell_type": "markdown", - "id": "e50b32b8", + "id": "1", "metadata": {}, "source": [ "## Import Library" @@ -23,7 +23,7 @@ { "cell_type": "code", "execution_count": null, - "id": "15a9f49f", + "id": "2", "metadata": {}, "outputs": [], "source": [ @@ -32,7 +32,7 @@ }, { "cell_type": "markdown", - "id": "0fb7821b", + "id": "3", "metadata": {}, "source": [ "## Create Project" @@ -41,7 +41,7 @@ { "cell_type": "code", "execution_count": null, - "id": "879862aa", + "id": "4", "metadata": {}, "outputs": [], "source": [ @@ -50,7 +50,7 @@ }, { "cell_type": "markdown", - "id": "df8d3a11", + "id": "5", "metadata": {}, "source": [ "## Set Plotting Engine" @@ -59,7 +59,7 @@ { "cell_type": "code", "execution_count": null, - "id": "e763b484", + "id": "6", "metadata": {}, "outputs": [], "source": [ @@ -69,7 +69,7 @@ }, { "cell_type": "markdown", - "id": "42f57011", + "id": "7", "metadata": {}, "source": [ "## Add Sample Model" @@ -78,7 +78,7 @@ { "cell_type": "code", "execution_count": null, - "id": "ff7c77cd", + "id": "8", "metadata": {}, "outputs": [], "source": [ @@ -88,7 +88,7 @@ { "cell_type": "code", "execution_count": null, - "id": "41a2edd6", + "id": "9", "metadata": {}, "outputs": [], "source": [ @@ -107,7 +107,7 @@ }, { "cell_type": "markdown", - "id": "0b9afb30", + "id": "10", "metadata": {}, "source": [ "## Add Experiment" @@ -116,7 +116,7 @@ { "cell_type": "code", "execution_count": null, - "id": "008ff02a", + "id": "11", "metadata": {}, "outputs": [], "source": [ @@ -127,7 +127,7 @@ { "cell_type": "code", "execution_count": null, - "id": "c62150dd", + "id": "12", "metadata": {}, "outputs": [], "source": [ @@ -142,7 +142,7 @@ { "cell_type": "code", "execution_count": null, - "id": "3b954bf6", + "id": "13", "metadata": {}, "outputs": [], "source": [ @@ -158,7 +158,7 @@ }, { "cell_type": "markdown", - "id": "86ecb87c", + "id": "14", "metadata": {}, "source": [ "## Select Fitting Parameters" @@ -167,7 +167,7 @@ { "cell_type": "code", "execution_count": null, - "id": "617459b6", + "id": "15", "metadata": {}, "outputs": [], "source": [ @@ -179,7 +179,7 @@ { "cell_type": "code", "execution_count": null, - "id": "46e757b9", + "id": "16", "metadata": {}, "outputs": [], "source": [ @@ -191,7 +191,7 @@ }, { "cell_type": "markdown", - "id": "45498cf9", + "id": "17", "metadata": {}, "source": [ "## Run Fitting" @@ -200,7 +200,7 @@ { "cell_type": "code", "execution_count": null, - "id": "a0feb463", + "id": "18", "metadata": {}, "outputs": [], "source": [ @@ -210,7 +210,7 @@ }, { "cell_type": "markdown", - "id": "7464ea79", + "id": "19", "metadata": {}, "source": [ "## Plot Measured vs Calculated" @@ -219,7 +219,7 @@ { "cell_type": "code", "execution_count": null, - "id": "08e3845b", + "id": "20", "metadata": {}, "outputs": [], "source": [ diff --git a/tutorials/pdf_pd-xray_NaCl.ipynb b/tutorials/pdf_pd-xray_NaCl.ipynb index 58c55f5c..4ef15229 100644 --- a/tutorials/pdf_pd-xray_NaCl.ipynb +++ b/tutorials/pdf_pd-xray_NaCl.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "6b5c0d47", + "id": "0", "metadata": {}, "source": [ "# Pair Distribution Function: NaCl, XRD\n", @@ -16,7 +16,7 @@ }, { "cell_type": "markdown", - "id": "e92d3d55", + "id": "1", "metadata": {}, "source": [ "## Import Library" @@ -25,7 +25,7 @@ { "cell_type": "code", "execution_count": null, - "id": "83b59289", + "id": "2", "metadata": {}, "outputs": [], "source": [ @@ -34,7 +34,7 @@ }, { "cell_type": "markdown", - "id": "912f42db", + "id": "3", "metadata": {}, "source": [ "## Create Project" @@ -43,7 +43,7 @@ { "cell_type": "code", "execution_count": null, - "id": "f8ffc809", + "id": "4", "metadata": {}, "outputs": [], "source": [ @@ -52,7 +52,7 @@ }, { "cell_type": "markdown", - "id": "4d19f5f1", + "id": "5", "metadata": {}, "source": [ "## Set Plotting Engine" @@ -61,7 +61,7 @@ { "cell_type": "code", "execution_count": null, - "id": "bb938b29", + "id": "6", "metadata": {}, "outputs": [], "source": [ @@ -72,7 +72,7 @@ }, { "cell_type": "markdown", - "id": "e372b419", + "id": "7", "metadata": {}, "source": [ "## Add Sample Model" @@ -81,7 +81,7 @@ { "cell_type": "code", "execution_count": null, - "id": "ad1cb4c2", + "id": "8", "metadata": {}, "outputs": [], "source": [ @@ -91,7 +91,7 @@ { "cell_type": "code", "execution_count": null, - "id": "3f43c465", + "id": "9", "metadata": {}, "outputs": [], "source": [ @@ -116,7 +116,7 @@ }, { "cell_type": "markdown", - "id": "9be520b7", + "id": "10", "metadata": {}, "source": [ "## Add Experiment" @@ -125,7 +125,7 @@ { "cell_type": "code", "execution_count": null, - "id": "cbb0de7c", + "id": "11", "metadata": {}, "outputs": [], "source": [ @@ -136,7 +136,7 @@ { "cell_type": "code", "execution_count": null, - "id": "a1035826", + "id": "12", "metadata": {}, "outputs": [], "source": [ @@ -151,7 +151,7 @@ { "cell_type": "code", "execution_count": null, - "id": "b97ab539", + "id": "13", "metadata": {}, "outputs": [], "source": [ @@ -161,7 +161,7 @@ { "cell_type": "code", "execution_count": null, - "id": "1a6ea129", + "id": "14", "metadata": {}, "outputs": [], "source": [ @@ -171,7 +171,7 @@ { "cell_type": "code", "execution_count": null, - "id": "c9b93dc2", + "id": "15", "metadata": {}, "outputs": [], "source": [ @@ -181,7 +181,7 @@ { "cell_type": "code", "execution_count": null, - "id": "e82daf8d", + "id": "16", "metadata": {}, "outputs": [], "source": [ @@ -196,7 +196,7 @@ { "cell_type": "code", "execution_count": null, - "id": "593cbb36", + "id": "17", "metadata": {}, "outputs": [], "source": [ @@ -205,7 +205,7 @@ }, { "cell_type": "markdown", - "id": "91bbd38c", + "id": "18", "metadata": {}, "source": [ "## Select Fitting Parameters" @@ -214,7 +214,7 @@ { "cell_type": "code", "execution_count": null, - "id": "689bb503", + "id": "19", "metadata": {}, "outputs": [], "source": [ @@ -226,7 +226,7 @@ { "cell_type": "code", "execution_count": null, - "id": "5d6c1d3d", + "id": "20", "metadata": {}, "outputs": [], "source": [ @@ -237,7 +237,7 @@ }, { "cell_type": "markdown", - "id": "ed9a6a07", + "id": "21", "metadata": {}, "source": [ "## Run Fitting" @@ -246,7 +246,7 @@ { "cell_type": "code", "execution_count": null, - "id": "a8985222", + "id": "22", "metadata": {}, "outputs": [], "source": [ @@ -256,7 +256,7 @@ }, { "cell_type": "markdown", - "id": "52e668f0", + "id": "23", "metadata": {}, "source": [ "## Plot Measured vs Calculated" @@ -265,7 +265,7 @@ { "cell_type": "code", "execution_count": null, - "id": "7a757532", + "id": "24", "metadata": {}, "outputs": [], "source": [ diff --git a/tutorials/quick_single-fit_pd-neut-cwl_LBCO-HRPT.ipynb b/tutorials/quick_single-fit_pd-neut-cwl_LBCO-HRPT.ipynb index 1e05239b..4cb4e19c 100644 --- a/tutorials/quick_single-fit_pd-neut-cwl_LBCO-HRPT.ipynb +++ b/tutorials/quick_single-fit_pd-neut-cwl_LBCO-HRPT.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "9bb2a2f5", + "id": "0", "metadata": {}, "source": [ "# Structure Refinement: LBCO, HRPT\n", @@ -25,7 +25,7 @@ }, { "cell_type": "markdown", - "id": "7f8961c6", + "id": "1", "metadata": {}, "source": [ "## Import Library" @@ -34,7 +34,7 @@ { "cell_type": "code", "execution_count": null, - "id": "a3358efe", + "id": "2", "metadata": {}, "outputs": [], "source": [ @@ -43,7 +43,7 @@ }, { "cell_type": "markdown", - "id": "f1284474", + "id": "3", "metadata": {}, "source": [ "## Step 1: Define Project" @@ -52,7 +52,7 @@ { "cell_type": "code", "execution_count": null, - "id": "582e0cf5", + "id": "4", "metadata": {}, "outputs": [], "source": [ @@ -61,7 +61,7 @@ }, { "cell_type": "markdown", - "id": "9b3a6c01", + "id": "5", "metadata": {}, "source": [ "## Step 2: Define Sample Model" @@ -70,7 +70,7 @@ { "cell_type": "code", "execution_count": null, - "id": "1554aea1", + "id": "6", "metadata": {}, "outputs": [], "source": [ @@ -80,7 +80,7 @@ { "cell_type": "code", "execution_count": null, - "id": "346fc60e", + "id": "7", "metadata": {}, "outputs": [], "source": [ @@ -90,7 +90,7 @@ { "cell_type": "code", "execution_count": null, - "id": "64c3e5db", + "id": "8", "metadata": {}, "outputs": [], "source": [ @@ -101,7 +101,7 @@ { "cell_type": "code", "execution_count": null, - "id": "d28712a4", + "id": "9", "metadata": {}, "outputs": [], "source": [ @@ -111,7 +111,7 @@ { "cell_type": "code", "execution_count": null, - "id": "37540484", + "id": "10", "metadata": {}, "outputs": [], "source": [ @@ -123,7 +123,7 @@ }, { "cell_type": "markdown", - "id": "19a00f11", + "id": "11", "metadata": {}, "source": [ "## Step 3: Define Experiment" @@ -132,7 +132,7 @@ { "cell_type": "code", "execution_count": null, - "id": "6922222b", + "id": "12", "metadata": {}, "outputs": [], "source": [ @@ -143,7 +143,7 @@ { "cell_type": "code", "execution_count": null, - "id": "58baac4e", + "id": "13", "metadata": {}, "outputs": [], "source": [ @@ -157,7 +157,7 @@ { "cell_type": "code", "execution_count": null, - "id": "1517e456", + "id": "14", "metadata": {}, "outputs": [], "source": [ @@ -167,7 +167,7 @@ { "cell_type": "code", "execution_count": null, - "id": "47d30133", + "id": "15", "metadata": {}, "outputs": [], "source": [ @@ -178,7 +178,7 @@ { "cell_type": "code", "execution_count": null, - "id": "ec1fd1d2", + "id": "16", "metadata": {}, "outputs": [], "source": [ @@ -191,7 +191,7 @@ { "cell_type": "code", "execution_count": null, - "id": "2b3df2ee", + "id": "17", "metadata": {}, "outputs": [], "source": [ @@ -205,7 +205,7 @@ { "cell_type": "code", "execution_count": null, - "id": "45886cb2", + "id": "18", "metadata": {}, "outputs": [], "source": [ @@ -216,7 +216,7 @@ { "cell_type": "code", "execution_count": null, - "id": "7da72cff", + "id": "19", "metadata": {}, "outputs": [], "source": [ @@ -225,7 +225,7 @@ }, { "cell_type": "markdown", - "id": "0b0c3557", + "id": "20", "metadata": {}, "source": [ "## Step 4: Perform Analysis" @@ -234,7 +234,7 @@ { "cell_type": "code", "execution_count": null, - "id": "c70ec415", + "id": "21", "metadata": {}, "outputs": [], "source": [ @@ -249,7 +249,7 @@ { "cell_type": "code", "execution_count": null, - "id": "727f375b", + "id": "22", "metadata": {}, "outputs": [], "source": [ @@ -272,7 +272,7 @@ { "cell_type": "code", "execution_count": null, - "id": "861a32e5", + "id": "23", "metadata": {}, "outputs": [], "source": [ @@ -282,7 +282,7 @@ { "cell_type": "code", "execution_count": null, - "id": "7426c22d", + "id": "24", "metadata": {}, "outputs": [], "source": [ From 14980297747bf5d0754ed1fb13b917eaccc7cef6 Mon Sep 17 00:00:00 2001 From: Andrew Sazonov Date: Fri, 8 Aug 2025 12:23:50 +0200 Subject: [PATCH 04/43] Update project version to 0.6.0 and adjust dependencies --- pyproject.toml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 40c0c8a6..002ddff6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ [project] name = 'easydiffraction' -version = '0.5.0' +version = '0.6.0' description = 'Diffraction data analysis' authors = [{ name = 'EasyDiffraction contributors' }] readme = 'README.md' @@ -16,13 +16,12 @@ classifiers = [ 'Operating System :: OS Independent', 'Programming Language :: Python :: 3 :: Only', 'Programming Language :: Python :: 3', - "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", ] -requires-python = '>=3.9,<=3.13' +requires-python = '>3.9,<3.14' dependencies = [ 'colorama', 'tabulate', @@ -53,6 +52,7 @@ dependencies = [ 'pytest', 'pytest-xdist', 'nbmake', + 'nbstripout', 'mkdocs', 'mkdocs-material', From 5bbefa2f90b2b70d1009e44da710542d9f6242be Mon Sep 17 00:00:00 2001 From: Andrew Sazonov Date: Fri, 8 Aug 2025 12:23:58 +0200 Subject: [PATCH 05/43] Renames GitHub workflows for clarity --- .../{building-deploying-docs.yml => build-docs.yml} | 8 ++++---- .github/workflows/{testing-code.yaml => test-code.yaml} | 4 ++-- ...ing-tutorials-colab.yaml => test-tutorials-colab.yaml} | 0 .../{testing-tutorials.yaml => test-tutorials.yaml} | 8 +++++--- 4 files changed, 11 insertions(+), 9 deletions(-) rename .github/workflows/{building-deploying-docs.yml => build-docs.yml} (98%) rename .github/workflows/{testing-code.yaml => test-code.yaml} (98%) rename .github/workflows/{testing-tutorials-colab.yaml => test-tutorials-colab.yaml} (100%) rename .github/workflows/{testing-tutorials.yaml => test-tutorials.yaml} (91%) diff --git a/.github/workflows/building-deploying-docs.yml b/.github/workflows/build-docs.yml similarity index 98% rename from .github/workflows/building-deploying-docs.yml rename to .github/workflows/build-docs.yml index 95231927..15976d61 100644 --- a/.github/workflows/building-deploying-docs.yml +++ b/.github/workflows/build-docs.yml @@ -1,4 +1,4 @@ -name: Building and deploying docs +name: Build and deploy docs on: # Trigger the workflow on push @@ -18,7 +18,7 @@ env: jobs: # Job 1: Build the static files for the documentation site - building-docs: + build-docs: runs-on: macos-14 # Use macOS to switch to dark mode for Plotly charts steps: @@ -160,8 +160,8 @@ jobs: compression-level: 0 # Job 2: Deploy the static files - deploying-docs: - needs: building-docs # previous job 'build-docs' need to be finished first + deploy-docs: + needs: build-docs # previous job 'build-docs' need to be finished first # Grant GITHUB_TOKEN the permissions required to make a Pages deployment permissions: diff --git a/.github/workflows/testing-code.yaml b/.github/workflows/test-code.yaml similarity index 98% rename from .github/workflows/testing-code.yaml rename to .github/workflows/test-code.yaml index fa9a1859..8ae788aa 100644 --- a/.github/workflows/testing-code.yaml +++ b/.github/workflows/test-code.yaml @@ -1,4 +1,4 @@ -name: Testing code +name: Test code on: # Trigger the workflow on push @@ -29,7 +29,7 @@ env: CI_BRANCH: ${{ github.head_ref || github.ref_name }} jobs: - testing-code: + test-code: strategy: fail-fast: false diff --git a/.github/workflows/testing-tutorials-colab.yaml b/.github/workflows/test-tutorials-colab.yaml similarity index 100% rename from .github/workflows/testing-tutorials-colab.yaml rename to .github/workflows/test-tutorials-colab.yaml diff --git a/.github/workflows/testing-tutorials.yaml b/.github/workflows/test-tutorials.yaml similarity index 91% rename from .github/workflows/testing-tutorials.yaml rename to .github/workflows/test-tutorials.yaml index 65a50f3d..177783df 100644 --- a/.github/workflows/testing-tutorials.yaml +++ b/.github/workflows/test-tutorials.yaml @@ -1,4 +1,4 @@ -name: Testing tutorials +name: Test tutorials on: # Trigger the workflow on a schedule (every day at midnight) @@ -20,7 +20,7 @@ env: CI_BRANCH: ${{ github.head_ref || github.ref_name }} jobs: - testing-tutorials: + test-tutorials: strategy: fail-fast: false @@ -59,6 +59,7 @@ jobs: # Check if tutorials as Jupyter Notebooks run without errors # Convert all Python scripts in the folder tutorials/ to Jupyter Notebooks + # Strip output from Jupyter Notebooks and rename cell ids # Run all Jupyter Notebooks in the folder tutorials/ in parallel # -n=auto: run as many in parallel as you have cores (auto mode) # --nbmake-timeout=300: set timeout to 300 seconds @@ -66,5 +67,6 @@ jobs: shell: bash run: | export PYTHONPATH="$(pwd)/src${PYTHONPATH:+:$PYTHONPATH}" - jupytext tutorials/*.py --to ipynb + jupytext tutorials/*.py --from py:percent --to ipynb + nbstripout tutorials/*.ipynb python -m pytest --nbmake tutorials/ --nbmake-timeout=300 --color=yes -n=auto From c7cb84a83b115fb9ad1b3f0211e905fd80136967 Mon Sep 17 00:00:00 2001 From: Andrew Sazonov Date: Fri, 8 Aug 2025 12:24:44 +0200 Subject: [PATCH 06/43] Adds workflow to delete old GitHub Actions runs --- .github/workflows/delete-old-runs.yml | 80 +++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 .github/workflows/delete-old-runs.yml diff --git a/.github/workflows/delete-old-runs.yml b/.github/workflows/delete-old-runs.yml new file mode 100644 index 00000000..bd8bc407 --- /dev/null +++ b/.github/workflows/delete-old-runs.yml @@ -0,0 +1,80 @@ +# This workflow will delete old workflow runs based on the input +# parameters. +# https://github.com/Mattraks/delete-workflow-runs + +name: Delete old workflow runs + +on: + # Run monthly, at 00:00 on the 1st day of month. + schedule: + - cron: '0 0 1 * *' + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + inputs: + days: + description: 'Number of days.' + required: true + default: 30 + minimum_runs: + description: 'The minimum runs to keep for each workflow.' + required: true + default: 6 + delete_workflow_pattern: + description: + 'The name or filename of the workflow. if not set then it will target + all workflows.' + required: false + delete_workflow_by_state_pattern: + description: + 'Remove workflow by state: active, deleted, disabled_fork, + disabled_inactivity, disabled_manually' + required: true + default: 'All' + type: choice + options: + - 'All' + - active + - deleted + - disabled_inactivity + - disabled_manually + delete_run_by_conclusion_pattern: + description: + 'Remove workflow by conclusion: action_required, cancelled, failure, + skipped, success' + required: true + default: 'All' + type: choice + options: + - 'All' + - action_required + - cancelled + - failure + - skipped + - success + dry_run: + description: 'Only log actions, do not perform any delete operations.' + required: false + +jobs: + del-runs: + runs-on: ubuntu-latest + + permissions: + actions: write + + steps: + - name: Delete workflow runs + uses: Mattraks/delete-workflow-runs@v2 + with: + token: ${{ github.token }} + repository: ${{ github.repository }} + retain_days: ${{ github.event.inputs.days }} + keep_minimum_runs: ${{ github.event.inputs.minimum_runs }} + delete_workflow_pattern: + ${{ github.event.inputs.delete_workflow_pattern }} + delete_workflow_by_state_pattern: + ${{ github.event.inputs.delete_workflow_by_state_pattern }} + delete_run_by_conclusion_pattern: + ${{ github.event.inputs.delete_run_by_conclusion_pattern }} + dry_run: ${{ github.event.inputs.dry_run }} From 4a3354a0ada0e81d1e027d12b5bf627129310af7 Mon Sep 17 00:00:00 2001 From: Andrew Sazonov Date: Fri, 8 Aug 2025 12:41:14 +0200 Subject: [PATCH 07/43] Add GitHub actions for automated release drafting --- .github/release-drafter.yml | 34 ++++++++++++++++++++++ .github/workflows/update-release-draft.yml | 22 ++++++++++++++ 2 files changed, 56 insertions(+) create mode 100644 .github/release-drafter.yml create mode 100644 .github/workflows/update-release-draft.yml diff --git a/.github/release-drafter.yml b/.github/release-drafter.yml new file mode 100644 index 00000000..922ddcbf --- /dev/null +++ b/.github/release-drafter.yml @@ -0,0 +1,34 @@ +# This file is used to configure the Release Drafter GitHub Action +# https://github.com/marketplace/actions/release-drafter + +name-template: 'easydiffraction $RESOLVED_VERSION' +tag-template: 'v$RESOLVED_VERSION' +categories: + - title: 'Added' + labels: # Labels to use to categorize a pull request as a feature + - '[scope] significant' + - '[scope] enhancement' + - '[scope] documentation' + - title: 'Fixed' + labels: # Labels to use to categorize a pull request as a bug fix + - '[scope] bug' + - title: 'Changed' + labels: # Labels to use to categorize a pull request as a maintenance task + - '[scope] maintenance' +change-template: '- $TITLE (#$NUMBER)' +change-title-escapes: '\<*_&' # You can add # and @ to disable mentions, and add ` to disable code blocks. +version-resolver: + major: + labels: + - '[scope] significant' + minor: + labels: + - '[scope] enhancement' + patch: + labels: + - '[scope] bug' + - '[scope] maintenance' + - '[scope] documentation' + default: patch +template: | + $CHANGES diff --git a/.github/workflows/update-release-draft.yml b/.github/workflows/update-release-draft.yml new file mode 100644 index 00000000..16bc924a --- /dev/null +++ b/.github/workflows/update-release-draft.yml @@ -0,0 +1,22 @@ +# Drafts your next Release notes as pull requests are merged into +# default branch + +name: Update release draft + +on: + # Runs on pushes targeting the default branch + push: + branches: [master] + +jobs: + update-release-draft: + runs-on: ubuntu-latest + + steps: + - uses: release-drafter/release-drafter@v6 + id: create-release + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Check-out repository + uses: actions/checkout@v4 From e0bac2c71da58ac0c0edf53de077ba7678526e59 Mon Sep 17 00:00:00 2001 From: Andrew Sazonov Date: Fri, 8 Aug 2025 12:48:37 +0200 Subject: [PATCH 08/43] Add workflow to perform security scanning --- .github/workflows/scan-security.yml | 40 +++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 .github/workflows/scan-security.yml diff --git a/.github/workflows/scan-security.yml b/.github/workflows/scan-security.yml new file mode 100644 index 00000000..7815a510 --- /dev/null +++ b/.github/workflows/scan-security.yml @@ -0,0 +1,40 @@ +# Integrates a collection of open source static analysis tools with +# GitHub code scanning. +# https://github.com/github/ossar-action + +name: Scan security (static analysis) + +on: + # Runs on pull requests + pull_request: + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +jobs: + scan-security-ossar: + # OSSAR runs on windows-latest. + # ubuntu-latest and macos-latest support coming soon + runs-on: windows-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + # We must fetch at least the immediate parents so that if this is + # a pull request then we can checkout the head. + fetch-depth: 2 + + # If this run was triggered by a pull request event, then checkout + # the head of the pull request instead of the merge commit. + - run: git checkout HEAD^2 + if: ${{ github.event_name == 'pull_request' }} + + - name: Run open source static analysis tools + uses: github/ossar-action@main + id: ossar + + - name: Upload results to Security tab + uses: github/codeql-action/upload-sarif@v3 + with: + sarif_file: ${{ steps.ossar.outputs.sarifFile }} From 4b9586e1231c2eb80de99fb2628592321f989ff2 Mon Sep 17 00:00:00 2001 From: Andrew Sazonov Date: Fri, 8 Aug 2025 12:55:19 +0200 Subject: [PATCH 09/43] Add workflow to enforce PR label verification --- .github/workflows/verify-pr-labels.yml | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 .github/workflows/verify-pr-labels.yml diff --git a/.github/workflows/verify-pr-labels.yml b/.github/workflows/verify-pr-labels.yml new file mode 100644 index 00000000..f103a114 --- /dev/null +++ b/.github/workflows/verify-pr-labels.yml @@ -0,0 +1,22 @@ +# Verifies if a pull request has at least one label from a set of valid +# labels before it can be merged. + +name: Verify PR labels + +on: + # Runs on pull requests to a repository + pull_request_target: + types: [opened, labeled, unlabeled, synchronize] + +jobs: + verify-pr-labels: + runs-on: ubuntu-latest + + steps: + - name: Verify PR labels + uses: jesusvasquez333/verify-pr-label-action@v1.4.0 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + valid-labels: '[scope] bug, [scope] documentation, [scope] enhancement, [scope] maintenance, [scope] significant' + pull-request-number: ${{ github.event.pull_request.number }} + disable-reviews: false From 88d194505aab90a50ae2a4374dbc3ffe5536f661 Mon Sep 17 00:00:00 2001 From: Andrew Sazonov Date: Fri, 8 Aug 2025 12:57:51 +0200 Subject: [PATCH 10/43] Add GitHub Actions workflow for PyPI publishing --- .github/workflows/publish-pypi.yml | 42 +++++++++++++++++++++ .github/workflows/test-code.yaml | 2 +- .github/workflows/test-tutorials-colab.yaml | 2 +- 3 files changed, 44 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/publish-pypi.yml diff --git a/.github/workflows/publish-pypi.yml b/.github/workflows/publish-pypi.yml new file mode 100644 index 00000000..3d2d9d14 --- /dev/null +++ b/.github/workflows/publish-pypi.yml @@ -0,0 +1,42 @@ +# Builds a Python package and publish it to PyPI when a new tag is +# created. + +name: Publish to PyPI + +on: + # Runs on creating a new tag starting with 'v', e.g. 'v1.0.3' + push: + tags: + - 'v*' + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +jobs: + pypi-publish: + runs-on: ubuntu-latest + + steps: + - name: Check-out repository + uses: actions/checkout@v4 + with: + fetch-depth: '0' # full history with tags to get the version number by versioningit + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: '3.12' + + - name: Upgrade package installer for Python + run: pip install --upgrade pip + + - name: Install Python dependencies + run: pip install '.[dev]' + + - name: Create Python package + run: python -m build + + - name: Publish distribution 📦 to PyPI + uses: pypa/gh-action-pypi-publish@release/v1 + with: + password: ${{ secrets.PYPI_PASSWORD }} diff --git a/.github/workflows/test-code.yaml b/.github/workflows/test-code.yaml index 8ae788aa..77088c94 100644 --- a/.github/workflows/test-code.yaml +++ b/.github/workflows/test-code.yaml @@ -6,7 +6,7 @@ on: # Every branch branches: - '**' - # But do not run this workflow on creating a new tag starting with 'v', e.g. 'v1.0.3' (see pypi-publish.yml) + # But do not run this workflow on creating a new tag starting with 'v', e.g. 'v1.0.3' (see publish-pypi.yml) tags-ignore: - 'v*' # Trigger the workflow on pull request diff --git a/.github/workflows/test-tutorials-colab.yaml b/.github/workflows/test-tutorials-colab.yaml index 51db7eda..728760e8 100644 --- a/.github/workflows/test-tutorials-colab.yaml +++ b/.github/workflows/test-tutorials-colab.yaml @@ -6,7 +6,7 @@ on: # # Every branch # branches: # - '**' - # # But do not run this workflow on creating a new tag starting with 'v', e.g. 'v1.0.3' (see pypi-publish.yml) + # # But do not run this workflow on creating a new tag starting with 'v', e.g. 'v1.0.3' (see publish-pypi.yml) # tags-ignore: # - 'v*' # Trigger the workflow on pull request From 3e9a2d2fa5e2a671eb7d36d3577379737f70831b Mon Sep 17 00:00:00 2001 From: Andrew Sazonov Date: Fri, 8 Aug 2025 13:31:49 +0200 Subject: [PATCH 11/43] Enhances project configuration in pyproject.toml --- pyproject.toml | 165 +++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 131 insertions(+), 34 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 002ddff6..8aeb2b60 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ [project] name = 'easydiffraction' -version = '0.6.0' +dynamic = ['version'] # Use versioningit to manage the version description = 'Diffraction data analysis' authors = [{ name = 'EasyDiffraction contributors' }] readme = 'README.md' @@ -21,47 +21,61 @@ classifiers = [ "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", ] -requires-python = '>3.9,<3.14' +requires-python = '>=3.10,<=3.13' dependencies = [ - 'colorama', - 'tabulate', - 'varname', - 'pandas', + 'colorama', # Color terminal output + 'tabulate', # Pretty-print tabular data for terminal output + 'asciichartpy', # ASCII charts for terminal output - 'asciichartpy', - 'plotly<6.1.0', - 'darkdetect', + 'pooch', # Data downloader - 'pooch', + 'varname', # Variable name introspection - 'scipy', + 'asteval', # An expression evaluator for Python - 'lmfit', - 'bumps', - 'dfo-ls', + 'scipy', # Scientific computing library + 'sympy', # Symbolic mathematics library - 'gemmi', - 'sympy', + 'lmfit', # Non-linear optimization and curve fitting + 'bumps', # Non-linear optimization and curve fitting + 'dfo-ls', # Non-linear optimization and curve fitting - 'cryspy', - 'diffpy.utils', - 'diffpy.pdffit2', + 'gemmi', # Crystallography library - 'asteval', - - 'pytest', - 'pytest-xdist', - 'nbmake', - 'nbstripout', + 'cryspy', # Calculations of diffraction patterns + 'diffpy.pdffit2', # Calculations of Pair Distribution Function (PDF) + 'diffpy.utils', # Utilities for PDF calculations +] - 'mkdocs', - 'mkdocs-material', - 'mkdocs-autorefs<1.3.0', - 'mkdocs-jupyter', - 'mkdocs-plugin-inline-svg', - 'mkdocs-markdownextradata-plugin', - 'mkdocstrings-python', - 'pyyaml' +[project.optional-dependencies] +dev = [ + 'build', # Building the package + 'jinja2', # Templating + 'nbmake', # Building notebooks + 'nbstripout', # Strip output from notebooks + 'nbqa', # Linting and formatting notebooks + 'pytest', # Testing + 'pytest-cov', # Test coverage + 'pytest-xdist', # Enable parallel testing + 'ruff', # Linting and formatting code + 'validate-pyproject[all]', # Validate pyproject.toml + 'versioningit', # Automatic versioning from git tags +] +charts = [ + 'darkdetect', # Detecting dark mode + 'pandas', # Displaying tables in juptyer notebooks + 'plotly<6.1.0', # Interactive plots. 0.6.0 => Empty charts in Jupyter notebooks ... + 'py3Dmol', # Visualisation of crystal structures +] +docs = [ + 'mkdocs', # Static site generator + 'mkdocs-material', # Documentation framework on top of MkDocs + 'mkdocs-autorefs<1.3.0', # MkDocs: Auto-references support. 1.3.0 => DeprecationWarning: Setting a fallback anchor function is deprecated and ... + 'mkdocs-jupyter', # MkDocs: Jupyter notebook support + 'mkdocs-plugin-inline-svg', # MkDocs: Inline SVG support + 'mkdocs-markdownextradata-plugin', # MkDocs: Markdown extra data support, such as global variables + 'mkdocstrings-python', # MkDocs: Python docstring support + 'pyyaml', # YAML parser ] [project.urls] @@ -82,7 +96,7 @@ tracker = 'https://github.com/easyscience/diffraction-lib/issues' [build-system] build-backend = 'hatchling.build' -requires = ['hatchling'] +requires = ['hatchling', 'versioningit'] ############################# # Configuration for hatchling @@ -93,3 +107,86 @@ packages = ['src/easydiffraction'] [tool.hatch.metadata] allow-direct-references = true + +[tool.hatch.version] +source = 'versioningit' # Use versioningit to manage the version + +################################ +# Configuration for versioningit +################################ + +# Versioningit generates versions from git tags, so we don't need to +# either specify them statically in pyproject.toml or save them in the +# source code. + +[tool.versioningit.format] +distance = '{base_version}.post{distance}' # example: 1.2.3.post42 +dirty = '{base_version}' # example: 1.2.3 +distance-dirty = '{base_version}.post{distance}' # example: 1.2.3.post42 + +[tool.versioningit.vcs] +method = 'git' +match = ['v*'] +default-tag = 'v999.0.0' + +######################## +# Configuration for ruff +######################## + +# 'ruff' -- Python linter and code formatter +# https://docs.astral.sh/ruff/rules/ + +[tool.ruff] +exclude = ['examples', 'examples_old', 'tests_old'] +indent-width = 4 +line-length = 127 + +[tool.ruff.format] +docstring-code-format = true # Whether to format code snippets in docstrings +indent-style = 'space' # PEP 8 recommends using spaces over tabs +line-ending = 'lf' # Line endings will be converted to \n +quote-style = 'single' # But double quotes in docstrings (PEP 8, PEP 257) + +[tool.ruff.lint] +select = [ + 'E', # General PEP 8 style errors + 'E9', # Runtime errors (e.g., syntax errors, undefined names) + 'F', # Pyflakes-specific checks (e.g., unused variables, imports) + 'F63', # Issues related to invalid escape sequences in strings + 'F7', # Type-related errors (e.g., mismatched argument types, unsupported operations) + 'F82', # Import-related errors (e.g., unresolved imports, reimported modules) + 'I', # Import sorting issues (e.g., unsorted imports) + 'S', # Security-related issues (e.g., use of insecure functions or libraries) + 'W', # General PEP 8 warnings (e.g., lines too long, trailing whitespace) +] + +[tool.ruff.lint.isort] +force-single-line = true + +[tool.ruff.lint.per-file-ignores] +# allow asserts in test files +'*test_*.py' = ['S101'] + +#[tool.ruff.lint.pycodestyle] +#max-line-length = 88 # https://peps.python.org/pep-0008/#maximum-line-length +#max-doc-length = 72 # https://peps.python.org/pep-0008/#maximum-line-length + +############################ +# Configuration for prettier +############################ + +# 'prettier' -- Code formatter +# https://prettier.io/ + +[tool.prettier] +endOfLine = 'lf' # change line endings to LF +printWidth = 80 # wrap Markdown files at 80 characters +proseWrap = 'always' # change wrapping in Markdown files +semi = false # remove semicolons +singleQuote = true # use single quotes instead of double quotes +tabWidth = 2 # change tab width to 2 spaces +useTabs = false # use spaces instead of tabs + +plugins = [ + 'prettier-plugin-toml', # use the TOML plugin +] From 79f5c28cbe8e7f10d1a2608edf510f2be2848769 Mon Sep 17 00:00:00 2001 From: Andrew Sazonov Date: Fri, 8 Aug 2025 13:35:24 +0200 Subject: [PATCH 12/43] Applies ruff linting --- src/easydiffraction/__init__.py | 36 +++++------- src/easydiffraction/analysis/analysis.py | 47 ++++++++-------- src/easydiffraction/analysis/calculation.py | 16 ++++-- .../analysis/calculators/calculator_base.py | 10 +++- .../calculators/calculator_crysfml.py | 12 ++-- .../analysis/calculators/calculator_cryspy.py | 12 ++-- .../calculators/calculator_factory.py | 16 ++++-- .../analysis/calculators/calculator_pdffit.py | 3 +- .../analysis/collections/aliases.py | 8 +-- .../analysis/collections/constraints.py | 8 +-- .../collections/joint_fit_experiments.py | 8 +-- src/easydiffraction/analysis/minimization.py | 24 +++++--- .../minimizers/fitting_progress_tracker.py | 20 +++---- .../analysis/minimizers/minimizer_base.py | 28 ++++++---- .../analysis/minimizers/minimizer_dfols.py | 8 ++- .../analysis/minimizers/minimizer_factory.py | 12 ++-- .../analysis/minimizers/minimizer_lmfit.py | 6 +- .../analysis/reliability_factors.py | 12 ++-- src/easydiffraction/core/objects.py | 22 ++++---- src/easydiffraction/core/singletons.py | 8 ++- .../crystallography/crystallography.py | 28 +++++----- .../experiments/collections/background.py | 27 +++++---- .../experiments/collections/datastore.py | 5 +- .../collections/excluded_regions.py | 15 +++-- .../experiments/collections/linked_phases.py | 10 ++-- .../experiments/components/experiment_type.py | 6 +- .../experiments/components/instrument.py | 13 ++--- .../experiments/components/peak.py | 16 ++---- src/easydiffraction/experiments/experiment.py | 56 ++++++++----------- .../experiments/experiments.py | 13 ++--- .../plotting/plotters/plotter_ascii.py | 9 ++- .../plotting/plotters/plotter_base.py | 10 ++-- .../plotting/plotters/plotter_plotly.py | 18 ++---- src/easydiffraction/plotting/plotting.py | 18 +++--- src/easydiffraction/project.py | 24 ++++---- .../sample_models/collections/atom_sites.py | 10 ++-- .../sample_models/components/cell.py | 8 +-- .../sample_models/components/space_group.py | 6 +- .../sample_models/sample_model.py | 10 ++-- .../sample_models/sample_models.py | 22 ++++---- src/easydiffraction/summary.py | 6 +- src/easydiffraction/utils/decorators.py | 2 +- src/easydiffraction/utils/formatting.py | 5 +- src/easydiffraction/utils/utils.py | 15 +++-- .../test_pair-distribution-function.py | 1 + ..._powder-diffraction_constant-wavelength.py | 11 ++-- .../test_powder-diffraction_joint-fit.py | 11 ++-- .../test_powder-diffraction_multiphase.py | 11 ++-- .../test_powder-diffraction_time-of-flight.py | 11 ++-- .../calculators/test_calculator_base.py | 9 ++- .../calculators/test_calculator_cryspy.py | 7 ++- .../calculators/test_calculator_factory.py | 14 ++--- .../collections/test_joint_fit_experiment.py | 3 +- .../test_fitting_progress_tracker.py | 11 ++-- .../minimizers/test_minimizer_base.py | 10 +++- .../minimizers/test_minimizer_dfols.py | 7 ++- .../minimizers/test_minimizer_factory.py | 6 +- .../minimizers/test_minimizer_lmfit.py | 8 ++- tests/unit_tests/analysis/test_analysis.py | 5 +- .../unit_tests/analysis/test_minimization.py | 7 ++- .../analysis/test_reliability_factors.py | 20 +++---- tests/unit_tests/core/test_objects.py | 7 ++- tests/unit_tests/core/test_singletons.py | 12 ++-- .../collections/test_background.py | 19 +++---- .../experiments/collections/test_datastore.py | 18 +++--- .../collections/test_linked_phases.py | 18 +++--- .../components/test_experiment_type.py | 5 +- .../experiments/components/test_instrument.py | 11 ++-- .../experiments/components/test_peak.py | 29 +++++----- .../unit_tests/experiments/test_experiment.py | 30 +++++----- .../experiments/test_experiments.py | 6 +- .../collections/test_atom_sites.py | 4 +- .../sample_models/components/test_cell.py | 1 - .../components/test_space_group.py | 1 - .../sample_models/test_sample_models.py | 8 ++- tests/unit_tests/test_project.py | 15 ++--- .../unit_tests/test_symmetry_lookup_table.py | 6 +- tools/create_mkdocs-yml.py | 13 ++++- ...truct_pd-neut-tof_multiphase-BSFTO-HRPT.py | 9 +-- ...ced_joint-fit_pd-neut-xray-cwl_PbSO4.ipynb | 10 ++-- ...vanced_joint-fit_pd-neut-xray-cwl_PbSO4.py | 10 ++-- .../cryst-struct_pd-neut-cwl_CoSiO4-D20.ipynb | 10 ++-- .../cryst-struct_pd-neut-cwl_CoSiO4-D20.py | 10 ++-- .../cryst-struct_pd-neut-cwl_HS-HRPT.ipynb | 10 ++-- tutorials/cryst-struct_pd-neut-cwl_HS-HRPT.py | 12 ++-- .../cryst-struct_pd-neut-tof_Si-SEPD.ipynb | 10 ++-- tutorials/cryst-struct_pd-neut-tof_Si-SEPD.py | 10 ++-- ...ruct_pd-neut-tof_multidata_NCAF-WISH.ipynb | 10 ++-- ...-struct_pd-neut-tof_multidata_NCAF-WISH.py | 10 ++-- ...d-neut-tof_multiphase-LBCO-Si_McStas.ipynb | 10 ++-- ...t_pd-neut-tof_multiphase-LBCO-Si_McStas.py | 10 ++-- 91 files changed, 577 insertions(+), 577 deletions(-) diff --git a/src/easydiffraction/__init__.py b/src/easydiffraction/__init__.py index 04330631..9887a6b6 100644 --- a/src/easydiffraction/__init__.py +++ b/src/easydiffraction/__init__.py @@ -1,33 +1,27 @@ -# Project management -from easydiffraction.project import ( - Project, - ProjectInfo -) - -# Sample model -from easydiffraction.sample_models.sample_model import SampleModel -from easydiffraction.sample_models.sample_models import SampleModels +# Analysis +from easydiffraction.analysis.analysis import Analysis # Experiments from easydiffraction.experiments.experiment import Experiment from easydiffraction.experiments.experiments import Experiments -# Analysis -from easydiffraction.analysis.analysis import Analysis +# Project management +from easydiffraction.project import Project +from easydiffraction.project import ProjectInfo + +# Sample model +from easydiffraction.sample_models.sample_model import SampleModel +from easydiffraction.sample_models.sample_models import SampleModels # Summary from easydiffraction.summary import Summary # Utils -from easydiffraction.utils.utils import ( - download_from_repository, - get_value_from_xye_header -) -from easydiffraction.utils.formatting import ( - chapter, - section, - paragraph -) +from easydiffraction.utils.formatting import chapter +from easydiffraction.utils.formatting import paragraph +from easydiffraction.utils.formatting import section +from easydiffraction.utils.utils import download_from_repository +from easydiffraction.utils.utils import get_value_from_xye_header # Expose the public API __all__ = [ @@ -44,4 +38,4 @@ "paragraph", "download_from_repository", "get_value_from_xye_header" -] \ No newline at end of file +] diff --git a/src/easydiffraction/analysis/analysis.py b/src/easydiffraction/analysis/analysis.py index 9b623808..fb6fe264 100644 --- a/src/easydiffraction/analysis/analysis.py +++ b/src/easydiffraction/analysis/analysis.py @@ -1,26 +1,23 @@ -import pandas as pd +from typing import List +from typing import Optional +from typing import Union + import numpy as np -from typing import List, Optional, Union - -from easydiffraction.utils.utils import ( - render_cif, - render_table -) -from easydiffraction.utils.formatting import ( - paragraph, - warning -) -from easydiffraction.core.objects import ( - Descriptor, - Parameter -) +import pandas as pd + +from easydiffraction.core.objects import Descriptor +from easydiffraction.core.objects import Parameter from easydiffraction.core.singletons import ConstraintsHandler from easydiffraction.experiments.experiments import Experiments +from easydiffraction.utils.formatting import paragraph +from easydiffraction.utils.formatting import warning +from easydiffraction.utils.utils import render_cif +from easydiffraction.utils.utils import render_table +from .calculators.calculator_factory import CalculatorFactory from .collections.aliases import Aliases from .collections.constraints import Constraints from .collections.joint_fit_experiments import JointFitExperiments -from .calculators.calculator_factory import CalculatorFactory from .minimization import DiffractionMinimizer from .minimizers.minimizer_factory import MinimizerFactory @@ -83,7 +80,7 @@ def show_all_params(self) -> None: experiments_params = self.project.experiments.get_all_params() if not sample_models_params and not experiments_params: - print(warning(f"No parameters found.")) + print(warning("No parameters found.")) return columns_headers = ['datablock', @@ -122,7 +119,7 @@ def show_fittable_params(self) -> None: experiments_params = self.project.experiments.get_fittable_params() if not sample_models_params and not experiments_params: - print(warning(f"No fittable parameters found.")) + print(warning("No fittable parameters found.")) return columns_headers = ['datablock', @@ -166,7 +163,7 @@ def show_free_params(self) -> None: free_params = sample_models_params + experiments_params if not free_params: - print(warning(f"No free parameters found.")) + print(warning("No free parameters found.")) return columns_headers = ['datablock', @@ -204,7 +201,7 @@ def how_to_access_parameters(self) -> None: 'experiments': experiments_params} if not params: - print(warning(f"No parameters found.")) + print(warning("No parameters found.")) return columns_headers = ['datablock', @@ -280,7 +277,7 @@ def current_minimizer(self) -> Optional[str]: @current_minimizer.setter def current_minimizer(self, selection: str) -> None: self.fitter = DiffractionMinimizer(selection) - print(paragraph(f"Current minimizer changed to")) + print(paragraph("Current minimizer changed to")) print(self.current_minimizer) @property @@ -348,7 +345,7 @@ def show_constraints(self) -> None: constraints_dict = self.constraints._items if not self.constraints._items: - print(warning(f"No constraints defined.")) + print(warning("No constraints defined.")) return rows = [] @@ -364,14 +361,14 @@ def show_constraints(self) -> None: alignments = ['left', 'left', 'left'] rows = [[row[header] for header in headers] for row in rows] - print(paragraph(f"User defined constraints")) + print(paragraph("User defined constraints")) render_table(columns_headers=headers, columns_alignment=alignments, columns_data=rows) def apply_constraints(self): if not self.constraints._items: - print(warning(f"No constraints defined.")) + print(warning("No constraints defined.")) return self.constraints_handler.set_aliases(self.aliases) @@ -438,5 +435,5 @@ def as_cif(self): def show_as_cif(self) -> None: cif_text: str = self.as_cif() - paragraph_title: str = paragraph(f"Analysis 🧮 info as cif") + paragraph_title: str = paragraph("Analysis 🧮 info as cif") render_cif(cif_text, paragraph_title) diff --git a/src/easydiffraction/analysis/calculation.py b/src/easydiffraction/analysis/calculation.py index 8a024cf6..215c6872 100644 --- a/src/easydiffraction/analysis/calculation.py +++ b/src/easydiffraction/analysis/calculation.py @@ -1,9 +1,15 @@ -from typing import Any, Optional, List +from typing import Any +from typing import List +from typing import Optional + import numpy as np -from .calculators.calculator_factory import CalculatorFactory -from easydiffraction.sample_models.sample_models import SampleModels -from easydiffraction.experiments.experiments import Experiments + from easydiffraction.experiments.experiment import Experiment +from easydiffraction.experiments.experiments import Experiments +from easydiffraction.sample_models.sample_models import SampleModels + +from .calculators.calculator_factory import CalculatorFactory + class DiffractionCalculator: """ @@ -59,4 +65,4 @@ def calculate_pattern(self, Returns: Diffraction pattern calculated by the backend calculator. """ - return self._calculator.calculate_pattern(sample_models, experiment) \ No newline at end of file + return self._calculator.calculate_pattern(sample_models, experiment) diff --git a/src/easydiffraction/analysis/calculators/calculator_base.py b/src/easydiffraction/analysis/calculators/calculator_base.py index c65e935b..a0ce3e31 100644 --- a/src/easydiffraction/analysis/calculators/calculator_base.py +++ b/src/easydiffraction/analysis/calculators/calculator_base.py @@ -1,11 +1,15 @@ +from abc import ABC +from abc import abstractmethod +from typing import Any +from typing import List + import numpy as np -from abc import ABC, abstractmethod -from typing import List, Any from easydiffraction.core.singletons import ConstraintsHandler +from easydiffraction.experiments.experiment import Experiment from easydiffraction.sample_models.sample_model import SampleModel from easydiffraction.sample_models.sample_models import SampleModels -from easydiffraction.experiments.experiment import Experiment + class CalculatorBase(ABC): """ diff --git a/src/easydiffraction/analysis/calculators/calculator_crysfml.py b/src/easydiffraction/analysis/calculators/calculator_crysfml.py index 8ca91b7a..3a6d78fb 100644 --- a/src/easydiffraction/analysis/calculators/calculator_crysfml.py +++ b/src/easydiffraction/analysis/calculators/calculator_crysfml.py @@ -1,10 +1,14 @@ +from typing import Any +from typing import Dict +from typing import List +from typing import Union + import numpy as np -from typing import Any, Dict, List, Union -from easydiffraction.sample_models.sample_models import SampleModels -from easydiffraction.sample_models.sample_models import SampleModel from easydiffraction.experiments.experiment import Experiment from easydiffraction.experiments.experiments import Experiments +from easydiffraction.sample_models.sample_models import SampleModel +from easydiffraction.sample_models.sample_models import SampleModels from .calculator_base import CalculatorBase @@ -63,7 +67,7 @@ def _calculate_single_model_pattern( _, y = cfml_py_utilities.cw_powder_pattern_from_dict(crysfml_dict) y = self._adjust_pattern_length(y, len(experiment.datastore.pattern.x)) except KeyError: - print(f"[CrysfmlCalculator] Error: No calculated data") + print("[CrysfmlCalculator] Error: No calculated data") y = [] return y diff --git a/src/easydiffraction/analysis/calculators/calculator_cryspy.py b/src/easydiffraction/analysis/calculators/calculator_cryspy.py index fe6f0fa2..b55969fe 100644 --- a/src/easydiffraction/analysis/calculators/calculator_cryspy.py +++ b/src/easydiffraction/analysis/calculators/calculator_cryspy.py @@ -1,18 +1,22 @@ import contextlib import copy import io +from typing import Any +from typing import Dict +from typing import List +from typing import Union + import numpy as np -from typing import Any, Dict, List, Union -from easydiffraction.sample_models.sample_model import SampleModel from easydiffraction.experiments.experiment import Experiment +from easydiffraction.sample_models.sample_model import SampleModel from .calculator_base import CalculatorBase try: import cryspy - from cryspy.procedure_rhochi.rhochi_by_dictionary import rhochi_calc_chi_sq_by_dictionary from cryspy.H_functions_global.function_1_cryspy_objects import str_to_globaln + from cryspy.procedure_rhochi.rhochi_by_dictionary import rhochi_calc_chi_sq_by_dictionary print("✅ 'cryspy' calculation engine is successfully imported.") except ImportError: print("⚠️ 'cryspy' module not found. This calculation engine will not be available.") @@ -314,7 +318,7 @@ def _convert_experiment_to_cryspy_cif( } cif_lines.append("") if expt_type.beam_mode.value == "time-of-flight": - cif_lines.append(f"_tof_profile_peak_shape Gauss") + cif_lines.append("_tof_profile_peak_shape Gauss") for local_attr_name, engine_key_name in peak_mapping.items(): if hasattr(peak, local_attr_name): attr_value = getattr(peak, local_attr_name).value diff --git a/src/easydiffraction/analysis/calculators/calculator_factory.py b/src/easydiffraction/analysis/calculators/calculator_factory.py index cb990505..7f10d3a5 100644 --- a/src/easydiffraction/analysis/calculators/calculator_factory.py +++ b/src/easydiffraction/analysis/calculators/calculator_factory.py @@ -1,14 +1,18 @@ -from typing import Dict, Type, List, Optional, Union, Any +from typing import Any +from typing import Dict +from typing import List +from typing import Optional +from typing import Type +from typing import Union +from easydiffraction.utils.formatting import error +from easydiffraction.utils.formatting import paragraph from easydiffraction.utils.utils import render_table -from easydiffraction.utils.formatting import ( - paragraph, - error -) + +from .calculator_base import CalculatorBase from .calculator_crysfml import CrysfmlCalculator from .calculator_cryspy import CryspyCalculator from .calculator_pdffit import PdffitCalculator -from .calculator_base import CalculatorBase class CalculatorFactory: diff --git a/src/easydiffraction/analysis/calculators/calculator_pdffit.py b/src/easydiffraction/analysis/calculators/calculator_pdffit.py index cbddd011..112849a0 100644 --- a/src/easydiffraction/analysis/calculators/calculator_pdffit.py +++ b/src/easydiffraction/analysis/calculators/calculator_pdffit.py @@ -1,9 +1,10 @@ import os import re + import numpy as np -from easydiffraction.sample_models.sample_model import SampleModel from easydiffraction.experiments.experiment import Experiment +from easydiffraction.sample_models.sample_model import SampleModel from .calculator_base import CalculatorBase diff --git a/src/easydiffraction/analysis/collections/aliases.py b/src/easydiffraction/analysis/collections/aliases.py index c9c44b48..bedac803 100644 --- a/src/easydiffraction/analysis/collections/aliases.py +++ b/src/easydiffraction/analysis/collections/aliases.py @@ -1,10 +1,8 @@ from typing import Type -from easydiffraction.core.objects import ( - Descriptor, - Component, - Collection -) +from easydiffraction.core.objects import Collection +from easydiffraction.core.objects import Component +from easydiffraction.core.objects import Descriptor class Alias(Component): diff --git a/src/easydiffraction/analysis/collections/constraints.py b/src/easydiffraction/analysis/collections/constraints.py index a876e55d..30d1158c 100644 --- a/src/easydiffraction/analysis/collections/constraints.py +++ b/src/easydiffraction/analysis/collections/constraints.py @@ -1,10 +1,8 @@ from typing import Type -from easydiffraction.core.objects import ( - Descriptor, - Component, - Collection -) +from easydiffraction.core.objects import Collection +from easydiffraction.core.objects import Component +from easydiffraction.core.objects import Descriptor class Constraint(Component): diff --git a/src/easydiffraction/analysis/collections/joint_fit_experiments.py b/src/easydiffraction/analysis/collections/joint_fit_experiments.py index e8c62fb3..41592cf2 100644 --- a/src/easydiffraction/analysis/collections/joint_fit_experiments.py +++ b/src/easydiffraction/analysis/collections/joint_fit_experiments.py @@ -1,10 +1,8 @@ from typing import Type -from easydiffraction.core.objects import ( - Descriptor, - Component, - Collection -) +from easydiffraction.core.objects import Collection +from easydiffraction.core.objects import Component +from easydiffraction.core.objects import Descriptor class JointFitExperiment(Component): diff --git a/src/easydiffraction/analysis/minimization.py b/src/easydiffraction/analysis/minimization.py index 6e112946..4b523689 100644 --- a/src/easydiffraction/analysis/minimization.py +++ b/src/easydiffraction/analysis/minimization.py @@ -1,13 +1,19 @@ -from typing import Any, Optional, List, Callable, Dict -from .minimizers.minimizer_factory import MinimizerFactory -from .minimizers.minimizer_base import FitResults -from ..analysis.reliability_factors import get_reliability_inputs +from typing import Any +from typing import Callable +from typing import Dict +from typing import List +from typing import Optional + import numpy as np -from easydiffraction.sample_models.sample_models import SampleModels -from easydiffraction.experiments.experiments import Experiments -from easydiffraction.core.objects import Parameter from easydiffraction.analysis.calculators.calculator_base import CalculatorBase +from easydiffraction.core.objects import Parameter +from easydiffraction.experiments.experiments import Experiments +from easydiffraction.sample_models.sample_models import SampleModels + +from ..analysis.reliability_factors import get_reliability_inputs +from .minimizers.minimizer_base import FitResults +from .minimizers.minimizer_factory import MinimizerFactory class DiffractionMinimizer: @@ -140,9 +146,9 @@ def _residual_function(self, # We should obtain the same reduced chi_squared when a single dataset is split into # two parts and fit together. If weights sum to one, then reduced chi_squared # will be half as large as expected. - _weights *= num_expts / np.sum(_weights) + _weights *= num_expts / np.sum(_weights) residuals: List[float] = [] - + for (expt_id, experiment), weight in zip(experiments._items.items(), _weights): # Calculate the difference between measured and calculated patterns diff --git a/src/easydiffraction/analysis/minimizers/fitting_progress_tracker.py b/src/easydiffraction/analysis/minimizers/fitting_progress_tracker.py index 8931fa5e..25d68faf 100644 --- a/src/easydiffraction/analysis/minimizers/fitting_progress_tracker.py +++ b/src/easydiffraction/analysis/minimizers/fitting_progress_tracker.py @@ -1,22 +1,20 @@ -import numpy as np import time -from typing import List, Optional +from typing import List +from typing import Optional + +import numpy as np try: - from IPython.display import ( - display, - HTML, - DisplayHandle - ) + from IPython.display import HTML + from IPython.display import DisplayHandle + from IPython.display import display except ImportError: display = None clear_output = None -from easydiffraction.utils.utils import ( - is_notebook, - render_table -) from easydiffraction.analysis.reliability_factors import calculate_reduced_chi_square +from easydiffraction.utils.utils import is_notebook +from easydiffraction.utils.utils import render_table SIGNIFICANT_CHANGE_THRESHOLD = 0.01 # 1% threshold FIXED_WIDTH = 17 diff --git a/src/easydiffraction/analysis/minimizers/minimizer_base.py b/src/easydiffraction/analysis/minimizers/minimizer_base.py index dbe564ee..daa59748 100644 --- a/src/easydiffraction/analysis/minimizers/minimizer_base.py +++ b/src/easydiffraction/analysis/minimizers/minimizer_base.py @@ -1,17 +1,21 @@ +from abc import ABC +from abc import abstractmethod +from typing import Any +from typing import Callable +from typing import Dict +from typing import List +from typing import Optional + import numpy as np -from abc import ABC, abstractmethod -from typing import Any, Callable, Dict, List, Optional, Union - -from ..reliability_factors import ( - calculate_r_factor, - calculate_r_factor_squared, - calculate_weighted_r_factor, - calculate_rb_factor -) -from .fitting_progress_tracker import FittingProgressTracker -from easydiffraction.utils.utils import render_table from easydiffraction.utils.formatting import paragraph +from easydiffraction.utils.utils import render_table + +from ..reliability_factors import calculate_r_factor +from ..reliability_factors import calculate_r_factor_squared +from ..reliability_factors import calculate_rb_factor +from ..reliability_factors import calculate_weighted_r_factor +from .fitting_progress_tracker import FittingProgressTracker class FitResults: @@ -71,7 +75,7 @@ def display_results(self, print(f"📏 Weighted R-factor (wR): {wr:.2f}%") if br is not None: print(f"📏 Bragg R-factor (BR): {br:.2f}%") - print(f"📈 Fitted parameters:") + print("📈 Fitted parameters:") headers = ["datablock", "category", diff --git a/src/easydiffraction/analysis/minimizers/minimizer_dfols.py b/src/easydiffraction/analysis/minimizers/minimizer_dfols.py index 0fcd0fb4..5f5fdec7 100644 --- a/src/easydiffraction/analysis/minimizers/minimizer_dfols.py +++ b/src/easydiffraction/analysis/minimizers/minimizer_dfols.py @@ -1,7 +1,11 @@ +from typing import Any +from typing import Dict +from typing import List + import numpy as np from dfols import solve + from .minimizer_base import MinimizerBase -from typing import Any, Dict, List DEFAULT_MAX_ITERATIONS = 1000 @@ -62,4 +66,4 @@ def _check_success(self, raw_result: Any) -> bool: Returns: True if the optimization was successful, False otherwise. """ - return raw_result.flag == raw_result.EXIT_SUCCESS \ No newline at end of file + return raw_result.flag == raw_result.EXIT_SUCCESS diff --git a/src/easydiffraction/analysis/minimizers/minimizer_factory.py b/src/easydiffraction/analysis/minimizers/minimizer_factory.py index 2d0000eb..22f5b662 100644 --- a/src/easydiffraction/analysis/minimizers/minimizer_factory.py +++ b/src/easydiffraction/analysis/minimizers/minimizer_factory.py @@ -1,11 +1,15 @@ -from typing import List, Type, Optional, Dict, Any +from typing import Any +from typing import Dict +from typing import List +from typing import Optional +from typing import Type -from easydiffraction.utils.utils import render_table from easydiffraction.utils.formatting import paragraph +from easydiffraction.utils.utils import render_table -from .minimizer_lmfit import LmfitMinimizer -from .minimizer_dfols import DfolsMinimizer from .minimizer_base import MinimizerBase +from .minimizer_dfols import DfolsMinimizer +from .minimizer_lmfit import LmfitMinimizer class MinimizerFactory: diff --git a/src/easydiffraction/analysis/minimizers/minimizer_lmfit.py b/src/easydiffraction/analysis/minimizers/minimizer_lmfit.py index c3b5f241..df33ad57 100644 --- a/src/easydiffraction/analysis/minimizers/minimizer_lmfit.py +++ b/src/easydiffraction/analysis/minimizers/minimizer_lmfit.py @@ -1,6 +1,10 @@ +from typing import Any +from typing import Dict +from typing import List + import lmfit + from .minimizer_base import MinimizerBase -from typing import Any, Dict, List DEFAULT_METHOD = 'leastsq' DEFAULT_MAX_ITERATIONS = 1000 diff --git a/src/easydiffraction/analysis/reliability_factors.py b/src/easydiffraction/analysis/reliability_factors.py index ba719348..8540d64b 100644 --- a/src/easydiffraction/analysis/reliability_factors.py +++ b/src/easydiffraction/analysis/reliability_factors.py @@ -1,8 +1,12 @@ +from typing import Optional +from typing import Tuple + import numpy as np -from typing import Tuple, Optional -from easydiffraction.sample_models.sample_models import SampleModels -from easydiffraction.experiments.experiments import Experiments + from easydiffraction.analysis.calculators.calculator_base import CalculatorBase +from easydiffraction.experiments.experiments import Experiments +from easydiffraction.sample_models.sample_models import SampleModels + def calculate_r_factor(y_obs: np.ndarray, y_calc: np.ndarray) -> float: @@ -140,4 +144,4 @@ def get_reliability_inputs(sample_models: SampleModels, np.array(y_obs_all), np.array(y_calc_all), np.array(y_err_all) if y_err_all else None - ) \ No newline at end of file + ) diff --git a/src/easydiffraction/core/objects.py b/src/easydiffraction/core/objects.py index b3d5d100..b03393a9 100644 --- a/src/easydiffraction/core/objects.py +++ b/src/easydiffraction/core/objects.py @@ -1,16 +1,18 @@ import random import string -from abc import ( - ABC, - abstractmethod -) -from typing import Any, Dict, List, Optional, Union, Iterator, TypeVar +from abc import ABC +from abc import abstractmethod +from typing import Any +from typing import Dict +from typing import Iterator +from typing import List +from typing import Optional +from typing import TypeVar +from typing import Union from easydiffraction.core.singletons import UidMapHandler -from easydiffraction.utils.formatting import ( - warning, - error -) +from easydiffraction.utils.formatting import error +from easydiffraction.utils.formatting import warning T = TypeVar('T') @@ -448,7 +450,7 @@ def as_cif(self) -> str: values.append(value) # Header is added only for the first item if idx == 0: - lines.append(f"loop_") + lines.append("loop_") header = "\n".join(keys) lines.append(header) line = ' '.join(values) diff --git a/src/easydiffraction/core/singletons.py b/src/easydiffraction/core/singletons.py index fcfa5483..99fdb72a 100644 --- a/src/easydiffraction/core/singletons.py +++ b/src/easydiffraction/core/singletons.py @@ -1,4 +1,10 @@ -from typing import Dict, List, Tuple, Any, TypeVar, Type, Optional +from typing import Any +from typing import Dict +from typing import List +from typing import Tuple +from typing import Type +from typing import TypeVar + from asteval import Interpreter T = TypeVar('T', bound='BaseSingleton') diff --git a/src/easydiffraction/crystallography/crystallography.py b/src/easydiffraction/crystallography/crystallography.py index 85369b12..32d55789 100644 --- a/src/easydiffraction/crystallography/crystallography.py +++ b/src/easydiffraction/crystallography/crystallography.py @@ -1,17 +1,15 @@ -from typing import Dict, List, Optional, Any -from sympy import ( - symbols, - sympify, - simplify, - Symbol, - Expr -) - -from cryspy.A_functions_base.function_2_space_group import ( - get_crystal_system_by_it_number, - get_it_number_by_name_hm_short, - get_symop_pcentr_multiplicity_letter_site_symmetry_coords_xyz_2 -) +from typing import Any +from typing import Dict +from typing import List + +from cryspy.A_functions_base.function_2_space_group import get_crystal_system_by_it_number +from cryspy.A_functions_base.function_2_space_group import get_it_number_by_name_hm_short +from sympy import Expr +from sympy import Symbol +from sympy import simplify +from sympy import symbols +from sympy import sympify + from easydiffraction.crystallography.space_group_lookup_table import SPACE_GROUP_LOOKUP_DICT @@ -111,7 +109,7 @@ def apply_atom_site_symmetry_constraints(atom_site: Dict[str, Any], space_group_entry = SPACE_GROUP_LOOKUP_DICT[(it_number, it_coordinate_system_code)] wyckoff_positions = space_group_entry["Wyckoff_positions"][wyckoff_letter] coords_xyz = wyckoff_positions["coords_xyz"] - + first_position = coords_xyz[0] components = first_position.strip("()").split(",") parsed_exprs: List[Expr] = [sympify(comp.strip()) for comp in components] diff --git a/src/easydiffraction/experiments/collections/background.py b/src/easydiffraction/experiments/collections/background.py index 66541dd9..240c9481 100644 --- a/src/easydiffraction/experiments/collections/background.py +++ b/src/easydiffraction/experiments/collections/background.py @@ -1,22 +1,21 @@ -import numpy as np - from abc import abstractmethod -from typing import Dict, List, Type, Union +from typing import Dict +from typing import List +from typing import Type +from typing import Union + +import numpy as np from numpy.polynomial.chebyshev import chebval from scipy.interpolate import interp1d -from easydiffraction.utils.utils import render_table -from easydiffraction.utils.formatting import ( - paragraph, - warning -) -from easydiffraction.core.objects import ( - Parameter, - Descriptor, - Component, - Collection -) from easydiffraction.core.constants import DEFAULT_BACKGROUND_TYPE +from easydiffraction.core.objects import Collection +from easydiffraction.core.objects import Component +from easydiffraction.core.objects import Descriptor +from easydiffraction.core.objects import Parameter +from easydiffraction.utils.formatting import paragraph +from easydiffraction.utils.formatting import warning +from easydiffraction.utils.utils import render_table # TODO: rename to LineSegment diff --git a/src/easydiffraction/experiments/collections/datastore.py b/src/easydiffraction/experiments/collections/datastore.py index eb10656c..28a0b701 100644 --- a/src/easydiffraction/experiments/collections/datastore.py +++ b/src/easydiffraction/experiments/collections/datastore.py @@ -1,7 +1,10 @@ from __future__ import annotations + from typing import Optional + import numpy as np + class Pattern: """ Base pattern class for both powder and single crystal experiments. @@ -112,4 +115,4 @@ def create(sample_form: str, experiment: Experiment) -> Datastore: Returns: A new Datastore instance appropriate for the sample form. """ - return Datastore(sample_form, experiment) \ No newline at end of file + return Datastore(sample_form, experiment) diff --git a/src/easydiffraction/experiments/collections/excluded_regions.py b/src/easydiffraction/experiments/collections/excluded_regions.py index 47a28e04..41fa0791 100644 --- a/src/easydiffraction/experiments/collections/excluded_regions.py +++ b/src/easydiffraction/experiments/collections/excluded_regions.py @@ -1,13 +1,12 @@ -from typing import List, Type +from typing import List +from typing import Type -from easydiffraction.utils.utils import render_table +from easydiffraction.core.objects import Collection +from easydiffraction.core.objects import Component +from easydiffraction.core.objects import Descriptor +from easydiffraction.core.objects import Parameter from easydiffraction.utils.formatting import paragraph -from easydiffraction.core.objects import ( - Parameter, - Descriptor, - Component, - Collection -) +from easydiffraction.utils.utils import render_table class ExcludedRegion(Component): diff --git a/src/easydiffraction/experiments/collections/linked_phases.py b/src/easydiffraction/experiments/collections/linked_phases.py index 1cda0217..b0333789 100644 --- a/src/easydiffraction/experiments/collections/linked_phases.py +++ b/src/easydiffraction/experiments/collections/linked_phases.py @@ -1,11 +1,9 @@ from typing import Type -from easydiffraction.core.objects import ( - Parameter, - Descriptor, - Component, - Collection -) +from easydiffraction.core.objects import Collection +from easydiffraction.core.objects import Component +from easydiffraction.core.objects import Descriptor +from easydiffraction.core.objects import Parameter class LinkedPhase(Component): diff --git a/src/easydiffraction/experiments/components/experiment_type.py b/src/easydiffraction/experiments/components/experiment_type.py index 1b3aabdb..2db47f2d 100644 --- a/src/easydiffraction/experiments/components/experiment_type.py +++ b/src/easydiffraction/experiments/components/experiment_type.py @@ -1,7 +1,5 @@ -from easydiffraction.core.objects import ( - Descriptor, - Component -) +from easydiffraction.core.objects import Component +from easydiffraction.core.objects import Descriptor class ExperimentType(Component): diff --git a/src/easydiffraction/experiments/components/instrument.py b/src/easydiffraction/experiments/components/instrument.py index 855863cd..64c55998 100644 --- a/src/easydiffraction/experiments/components/instrument.py +++ b/src/easydiffraction/experiments/components/instrument.py @@ -1,11 +1,8 @@ -from easydiffraction.core.objects import ( - Parameter, - Component -) -from easydiffraction.core.constants import ( - DEFAULT_SCATTERING_TYPE, - DEFAULT_BEAM_MODE -) +from easydiffraction.core.constants import DEFAULT_BEAM_MODE +from easydiffraction.core.constants import DEFAULT_SCATTERING_TYPE +from easydiffraction.core.objects import Component +from easydiffraction.core.objects import Parameter + class InstrumentBase(Component): @property diff --git a/src/easydiffraction/experiments/components/peak.py b/src/easydiffraction/experiments/components/peak.py index 44eb3f4c..df74dff5 100644 --- a/src/easydiffraction/experiments/components/peak.py +++ b/src/easydiffraction/experiments/components/peak.py @@ -1,13 +1,9 @@ -from easydiffraction.core.objects import ( - Parameter, - Component -) -from easydiffraction.core.constants import ( - DEFAULT_SCATTERING_TYPE, - DEFAULT_BEAM_MODE, - DEFAULT_PEAK_PROFILE_TYPE -) -from typing import Dict, Type, Optional + +from easydiffraction.core.constants import DEFAULT_BEAM_MODE +from easydiffraction.core.constants import DEFAULT_PEAK_PROFILE_TYPE +from easydiffraction.core.constants import DEFAULT_SCATTERING_TYPE +from easydiffraction.core.objects import Component +from easydiffraction.core.objects import Parameter # --- Mixins --- diff --git a/src/easydiffraction/experiments/experiment.py b/src/easydiffraction/experiments/experiment.py index 9ec902da..2e8f6d44 100644 --- a/src/easydiffraction/experiments/experiment.py +++ b/src/easydiffraction/experiments/experiment.py @@ -1,37 +1,29 @@ -import numpy as np -import tabulate -from typing import List, Optional - from abc import abstractmethod +from typing import List +from typing import Optional -from easydiffraction.utils.utils import ( - render_cif, - render_table -) -from easydiffraction.utils.decorators import enforce_type -from easydiffraction.experiments.components.experiment_type import ExperimentType -from easydiffraction.experiments.components.instrument import ( - InstrumentBase, - InstrumentFactory -) -from easydiffraction.experiments.components.peak import PeakFactory +import numpy as np -from easydiffraction.experiments.collections.linked_phases import LinkedPhases +from easydiffraction.core.constants import DEFAULT_BACKGROUND_TYPE +from easydiffraction.core.constants import DEFAULT_BEAM_MODE +from easydiffraction.core.constants import DEFAULT_PEAK_PROFILE_TYPE +from easydiffraction.core.constants import DEFAULT_RADIATION_PROBE +from easydiffraction.core.constants import DEFAULT_SAMPLE_FORM +from easydiffraction.core.constants import DEFAULT_SCATTERING_TYPE +from easydiffraction.core.objects import Datablock from easydiffraction.experiments.collections.background import BackgroundFactory -from easydiffraction.experiments.collections.excluded_regions import ExcludedRegions from easydiffraction.experiments.collections.datastore import DatastoreFactory - -from easydiffraction.utils.formatting import paragraph, warning - -from easydiffraction.core.objects import Datablock -from easydiffraction.core.constants import ( - DEFAULT_SAMPLE_FORM, - DEFAULT_BEAM_MODE, - DEFAULT_RADIATION_PROBE, - DEFAULT_PEAK_PROFILE_TYPE, - DEFAULT_BACKGROUND_TYPE, - DEFAULT_SCATTERING_TYPE -) +from easydiffraction.experiments.collections.excluded_regions import ExcludedRegions +from easydiffraction.experiments.collections.linked_phases import LinkedPhases +from easydiffraction.experiments.components.experiment_type import ExperimentType +from easydiffraction.experiments.components.instrument import InstrumentBase +from easydiffraction.experiments.components.instrument import InstrumentFactory +from easydiffraction.experiments.components.peak import PeakFactory +from easydiffraction.utils.decorators import enforce_type +from easydiffraction.utils.formatting import paragraph +from easydiffraction.utils.formatting import warning +from easydiffraction.utils.utils import render_cif +from easydiffraction.utils.utils import render_table class InstrumentMixin: @@ -208,7 +200,7 @@ def peak_profile_type(self, new_type: str): supported_types = list(PeakFactory._supported[self.type.scattering_type.value][self.type.beam_mode.value].keys()) print(warning(f"Unsupported peak profile '{new_type}'")) print(f'Supported peak profiles: {supported_types}') - print(f"For more information, use 'show_supported_peak_profile_types()'") + print("For more information, use 'show_supported_peak_profile_types()'") return self.peak = PeakFactory.create( scattering_type=self.type.scattering_type.value, @@ -324,7 +316,7 @@ def background_type(self, new_type): supported_types = list(BackgroundFactory._supported.keys()) print(warning(f"Unknown background type '{new_type}'")) print(f'Supported background types: {supported_types}') - print(f"For more information, use 'show_supported_background_types()'") + print("For more information, use 'show_supported_background_types()'") return self.background = BackgroundFactory.create(new_type) self._background_type = new_type @@ -471,4 +463,4 @@ def Experiment(name: str, ) if data_path: experiment._load_ascii_data_to_experiment(data_path) - return experiment \ No newline at end of file + return experiment diff --git a/src/easydiffraction/experiments/experiments.py b/src/easydiffraction/experiments/experiments.py index da072afe..1e949454 100644 --- a/src/easydiffraction/experiments/experiments.py +++ b/src/easydiffraction/experiments/experiments.py @@ -1,12 +1,11 @@ import os.path -from typing import Optional, Union, Dict, List +from typing import Dict +from typing import List -from easydiffraction.utils.decorators import enforce_type from easydiffraction.core.objects import Collection -from easydiffraction.experiments.experiment import ( - BaseExperiment, - ExperimentFactory -) +from easydiffraction.experiments.experiment import BaseExperiment +from easydiffraction.experiments.experiment import ExperimentFactory +from easydiffraction.utils.decorators import enforce_type from easydiffraction.utils.formatting import paragraph @@ -63,7 +62,7 @@ def _add_prebuilt_experiment(self, experiment: BaseExperiment): self._experiments[experiment.name] = experiment def _add_from_cif_path(self, cif_path: str) -> None: - print(f"Loading Experiment from CIF path...") + print("Loading Experiment from CIF path...") raise NotImplementedError("CIF loading not implemented.") def _add_from_cif_string(self, cif_str: str) -> None: diff --git a/src/easydiffraction/plotting/plotters/plotter_ascii.py b/src/easydiffraction/plotting/plotters/plotter_ascii.py index 5c98fc68..05b85aac 100644 --- a/src/easydiffraction/plotting/plotters/plotter_ascii.py +++ b/src/easydiffraction/plotting/plotters/plotter_ascii.py @@ -1,11 +1,10 @@ import asciichartpy from easydiffraction.utils.formatting import paragraph -from .plotter_base import ( - PlotterBase, - SERIES_CONFIG, - DEFAULT_HEIGHT, -) + +from .plotter_base import DEFAULT_HEIGHT +from .plotter_base import SERIES_CONFIG +from .plotter_base import PlotterBase DEFAULT_COLORS = { 'meas': asciichartpy.blue, diff --git a/src/easydiffraction/plotting/plotters/plotter_base.py b/src/easydiffraction/plotting/plotters/plotter_base.py index f1a229ef..032e703d 100644 --- a/src/easydiffraction/plotting/plotters/plotter_base.py +++ b/src/easydiffraction/plotting/plotters/plotter_base.py @@ -1,10 +1,10 @@ +from abc import ABC +from abc import abstractmethod + import numpy as np -from abc import ABC, abstractmethod -from easydiffraction.utils.utils import ( - is_notebook, - is_pycharm -) +from easydiffraction.utils.utils import is_notebook +from easydiffraction.utils.utils import is_pycharm DEFAULT_ENGINE = 'plotly' if is_notebook() or is_pycharm() else 'asciichartpy' DEFAULT_HEIGHT = 9 diff --git a/src/easydiffraction/plotting/plotters/plotter_plotly.py b/src/easydiffraction/plotting/plotters/plotter_plotly.py index a7712b22..23f96425 100644 --- a/src/easydiffraction/plotting/plotters/plotter_plotly.py +++ b/src/easydiffraction/plotting/plotters/plotter_plotly.py @@ -3,23 +3,17 @@ import plotly.io as pio try: - from IPython.display import ( - display, - HTML - ) + from IPython.display import HTML + from IPython.display import display except ImportError: display = None HTML = None -from easydiffraction.utils.utils import ( - is_notebook, - is_pycharm -) +from easydiffraction.utils.utils import is_notebook +from easydiffraction.utils.utils import is_pycharm -from .plotter_base import ( - PlotterBase, - SERIES_CONFIG -) +from .plotter_base import SERIES_CONFIG +from .plotter_base import PlotterBase DEFAULT_COLORS = { 'meas': 'rgb(31, 119, 180)', diff --git a/src/easydiffraction/plotting/plotting.py b/src/easydiffraction/plotting/plotting.py index f262b64c..27dc1eb1 100644 --- a/src/easydiffraction/plotting/plotting.py +++ b/src/easydiffraction/plotting/plotting.py @@ -1,17 +1,13 @@ from easydiffraction.core.constants import DEFAULT_AXES_LABELS -from easydiffraction.utils.formatting import ( - paragraph, - error -) -from easydiffraction.utils.utils import render_table -from easydiffraction.plotting.plotters.plotter_base import ( - DEFAULT_HEIGHT, - DEFAULT_ENGINE, - DEFAULT_MIN, - DEFAULT_MAX -) from easydiffraction.plotting.plotters.plotter_ascii import AsciiPlotter +from easydiffraction.plotting.plotters.plotter_base import DEFAULT_ENGINE +from easydiffraction.plotting.plotters.plotter_base import DEFAULT_HEIGHT +from easydiffraction.plotting.plotters.plotter_base import DEFAULT_MAX +from easydiffraction.plotting.plotters.plotter_base import DEFAULT_MIN from easydiffraction.plotting.plotters.plotter_plotly import PlotlyPlotter +from easydiffraction.utils.formatting import error +from easydiffraction.utils.formatting import paragraph +from easydiffraction.utils.utils import render_table class Plotter(): diff --git a/src/easydiffraction/project.py b/src/easydiffraction/project.py index 1ec7ae14..b631bc3e 100644 --- a/src/easydiffraction/project.py +++ b/src/easydiffraction/project.py @@ -1,25 +1,21 @@ -import os import datetime +import os import tempfile from textwrap import wrap +from typing import List from varname import varname -from typing import List -from easydiffraction.utils.utils import ( - render_cif, - tof_to_d, - twotheta_to_d -) -from easydiffraction.utils.formatting import ( - paragraph, - error -) -from easydiffraction.sample_models.sample_models import SampleModels -from easydiffraction.experiments.experiments import Experiments from easydiffraction.analysis.analysis import Analysis -from easydiffraction.summary import Summary +from easydiffraction.experiments.experiments import Experiments from easydiffraction.plotting.plotting import Plotter +from easydiffraction.sample_models.sample_models import SampleModels +from easydiffraction.summary import Summary +from easydiffraction.utils.formatting import error +from easydiffraction.utils.formatting import paragraph +from easydiffraction.utils.utils import render_cif +from easydiffraction.utils.utils import tof_to_d +from easydiffraction.utils.utils import twotheta_to_d class ProjectInfo: diff --git a/src/easydiffraction/sample_models/collections/atom_sites.py b/src/easydiffraction/sample_models/collections/atom_sites.py index 5bea6540..210e7cc4 100644 --- a/src/easydiffraction/sample_models/collections/atom_sites.py +++ b/src/easydiffraction/sample_models/collections/atom_sites.py @@ -1,9 +1,7 @@ -from easydiffraction.core.objects import ( - Descriptor, - Parameter, - Component, - Collection -) +from easydiffraction.core.objects import Collection +from easydiffraction.core.objects import Component +from easydiffraction.core.objects import Descriptor +from easydiffraction.core.objects import Parameter class AtomSite(Component): diff --git a/src/easydiffraction/sample_models/components/cell.py b/src/easydiffraction/sample_models/components/cell.py index e4998894..8749bfa4 100644 --- a/src/easydiffraction/sample_models/components/cell.py +++ b/src/easydiffraction/sample_models/components/cell.py @@ -1,9 +1,7 @@ -from typing import Optional -from easydiffraction.core.objects import ( - Parameter, - Component -) +from easydiffraction.core.objects import Component +from easydiffraction.core.objects import Parameter + class Cell(Component): """ diff --git a/src/easydiffraction/sample_models/components/space_group.py b/src/easydiffraction/sample_models/components/space_group.py index ff69f38a..7b705993 100644 --- a/src/easydiffraction/sample_models/components/space_group.py +++ b/src/easydiffraction/sample_models/components/space_group.py @@ -1,9 +1,7 @@ from typing import Optional -from easydiffraction.core.objects import ( - Descriptor, - Component -) +from easydiffraction.core.objects import Component +from easydiffraction.core.objects import Descriptor class SpaceGroup(Component): diff --git a/src/easydiffraction/sample_models/sample_model.py b/src/easydiffraction/sample_models/sample_model.py index 2115cdbf..d5e48624 100644 --- a/src/easydiffraction/sample_models/sample_model.py +++ b/src/easydiffraction/sample_models/sample_model.py @@ -1,11 +1,11 @@ -from easydiffraction.utils.decorators import enforce_type -from easydiffraction.utils.formatting import paragraph -from easydiffraction.utils.utils import render_cif from easydiffraction.core.objects import Datablock from easydiffraction.crystallography import crystallography as ecr -from easydiffraction.sample_models.components.space_group import SpaceGroup -from easydiffraction.sample_models.components.cell import Cell from easydiffraction.sample_models.collections.atom_sites import AtomSites +from easydiffraction.sample_models.components.cell import Cell +from easydiffraction.sample_models.components.space_group import SpaceGroup +from easydiffraction.utils.decorators import enforce_type +from easydiffraction.utils.formatting import paragraph +from easydiffraction.utils.utils import render_cif class SampleModel(Datablock): diff --git a/src/easydiffraction/sample_models/sample_models.py b/src/easydiffraction/sample_models/sample_models.py index ce3bcb97..95376ae9 100644 --- a/src/easydiffraction/sample_models/sample_models.py +++ b/src/easydiffraction/sample_models/sample_models.py @@ -1,10 +1,10 @@ -from typing import Dict, List, Optional +from typing import List +from typing import Optional -from easydiffraction.utils.decorators import enforce_type from easydiffraction.core.objects import Collection from easydiffraction.sample_models.sample_model import SampleModel +from easydiffraction.utils.decorators import enforce_type from easydiffraction.utils.formatting import paragraph -from easydiffraction.sample_models.sample_model import SampleModel class SampleModels(Collection): @@ -20,10 +20,10 @@ def __init__(self) -> None: super().__init__() # Initialize Collection self._models = self._items # Alias for legacy support - def add(self, - model: Optional[SampleModel] = None, - name: Optional[str] = None, - cif_path: Optional[str] = None, + def add(self, + model: Optional[SampleModel] = None, + name: Optional[str] = None, + cif_path: Optional[str] = None, cif_str: Optional[str] = None) -> None: """ Add a new sample model to the collection. @@ -96,9 +96,9 @@ def _add_prebuilt_sample_model(self, sample_model: SampleModel) -> None: """ self._models[sample_model.name] = sample_model - def _create_and_add_sample_model(self, - name: Optional[str] = None, - cif_path: Optional[str] = None, + def _create_and_add_sample_model(self, + name: Optional[str] = None, + cif_path: Optional[str] = None, cif_str: Optional[str] = None) -> None: """ Create a SampleModel instance and add it to the collection. @@ -120,4 +120,4 @@ def _create_and_add_sample_model(self, else: raise ValueError("You must provide a name, cif_path, or cif_str.") - self._models[model.name] = model \ No newline at end of file + self._models[model.name] = model diff --git a/src/easydiffraction/summary.py b/src/easydiffraction/summary.py index 609dd3ee..6e04ef6a 100644 --- a/src/easydiffraction/summary.py +++ b/src/easydiffraction/summary.py @@ -1,10 +1,8 @@ from textwrap import wrap from typing import List -from easydiffraction.utils.formatting import ( - paragraph, - section -) +from easydiffraction.utils.formatting import paragraph +from easydiffraction.utils.formatting import section from easydiffraction.utils.utils import render_table diff --git a/src/easydiffraction/utils/decorators.py b/src/easydiffraction/utils/decorators.py index 283c9730..3c044f00 100644 --- a/src/easydiffraction/utils/decorators.py +++ b/src/easydiffraction/utils/decorators.py @@ -20,4 +20,4 @@ def wrapper(self, value): raise TypeError(f"Expected {expected_type.__name__}, got {type(value).__name__}.") return func(self, value) - return wrapper \ No newline at end of file + return wrapper diff --git a/src/easydiffraction/utils/formatting.py b/src/easydiffraction/utils/formatting.py index c4d0235c..b0b437d8 100644 --- a/src/easydiffraction/utils/formatting.py +++ b/src/easydiffraction/utils/formatting.py @@ -1,4 +1,5 @@ -from colorama import Fore, Style +from colorama import Fore +from colorama import Style WIDTH = 100 SYMBOL = "═" @@ -41,4 +42,4 @@ def warning(title: str) -> str: def info(title: str) -> str: """Formats an info message with cyan text.""" - return f"\nℹ️ {Fore.LIGHTCYAN_EX}Info{Style.RESET_ALL}\n{title}" \ No newline at end of file + return f"\nℹ️ {Fore.LIGHTCYAN_EX}Info{Style.RESET_ALL}\n{title}" diff --git a/src/easydiffraction/utils/utils.py b/src/easydiffraction/utils/utils.py index b02405f2..ddea6c7a 100644 --- a/src/easydiffraction/utils/utils.py +++ b/src/easydiffraction/utils/utils.py @@ -2,20 +2,19 @@ General utilities and helpers for easydiffraction. """ +import os +import re +from typing import List + import numpy as np import pandas as pd import pooch -import re -import os from tabulate import tabulate -from typing import List, Optional try: import IPython - from IPython.display import ( - display, - HTML - ) + from IPython.display import HTML + from IPython.display import display except ImportError: IPython = None @@ -325,4 +324,4 @@ def get_value_from_xye_header(file_path, key): if match: return float(match.group(1)) else: - raise ValueError(f"{key} not found in the header.") \ No newline at end of file + raise ValueError(f"{key} not found in the header.") diff --git a/tests/functional_tests/fitting/test_pair-distribution-function.py b/tests/functional_tests/fitting/test_pair-distribution-function.py index 2643133c..c2fd7a78 100644 --- a/tests/functional_tests/fitting/test_pair-distribution-function.py +++ b/tests/functional_tests/fitting/test_pair-distribution-function.py @@ -1,5 +1,6 @@ import os import tempfile + from numpy.testing import assert_almost_equal import easydiffraction as ed diff --git a/tests/functional_tests/fitting/test_powder-diffraction_constant-wavelength.py b/tests/functional_tests/fitting/test_powder-diffraction_constant-wavelength.py index 0c699dc2..794edc5d 100644 --- a/tests/functional_tests/fitting/test_powder-diffraction_constant-wavelength.py +++ b/tests/functional_tests/fitting/test_powder-diffraction_constant-wavelength.py @@ -1,13 +1,12 @@ import os import tempfile + from numpy.testing import assert_almost_equal -from easydiffraction import ( - Project, - SampleModel, - Experiment, - download_from_repository -) +from easydiffraction import Experiment +from easydiffraction import Project +from easydiffraction import SampleModel +from easydiffraction import download_from_repository TEMP_DIR = tempfile.gettempdir() diff --git a/tests/functional_tests/fitting/test_powder-diffraction_joint-fit.py b/tests/functional_tests/fitting/test_powder-diffraction_joint-fit.py index 9b9f3469..dc04e66d 100644 --- a/tests/functional_tests/fitting/test_powder-diffraction_joint-fit.py +++ b/tests/functional_tests/fitting/test_powder-diffraction_joint-fit.py @@ -1,13 +1,12 @@ import os import tempfile + from numpy.testing import assert_almost_equal -from easydiffraction import ( - Project, - SampleModel, - Experiment, - download_from_repository -) +from easydiffraction import Experiment +from easydiffraction import Project +from easydiffraction import SampleModel +from easydiffraction import download_from_repository TEMP_DIR = tempfile.gettempdir() diff --git a/tests/functional_tests/fitting/test_powder-diffraction_multiphase.py b/tests/functional_tests/fitting/test_powder-diffraction_multiphase.py index e790794e..81ce4688 100644 --- a/tests/functional_tests/fitting/test_powder-diffraction_multiphase.py +++ b/tests/functional_tests/fitting/test_powder-diffraction_multiphase.py @@ -1,13 +1,12 @@ import os import tempfile + from numpy.testing import assert_almost_equal -from easydiffraction import ( - Project, - SampleModel, - Experiment, - download_from_repository -) +from easydiffraction import Experiment +from easydiffraction import Project +from easydiffraction import SampleModel +from easydiffraction import download_from_repository TEMP_DIR = tempfile.gettempdir() diff --git a/tests/functional_tests/fitting/test_powder-diffraction_time-of-flight.py b/tests/functional_tests/fitting/test_powder-diffraction_time-of-flight.py index f3ac7a4e..8a3feb22 100644 --- a/tests/functional_tests/fitting/test_powder-diffraction_time-of-flight.py +++ b/tests/functional_tests/fitting/test_powder-diffraction_time-of-flight.py @@ -1,13 +1,12 @@ import os import tempfile + from numpy.testing import assert_almost_equal -from easydiffraction import ( - Project, - SampleModel, - Experiment, - download_from_repository -) +from easydiffraction import Experiment +from easydiffraction import Project +from easydiffraction import SampleModel +from easydiffraction import download_from_repository TEMP_DIR = tempfile.gettempdir() diff --git a/tests/unit_tests/analysis/calculators/test_calculator_base.py b/tests/unit_tests/analysis/calculators/test_calculator_base.py index 003c688a..db645b42 100644 --- a/tests/unit_tests/analysis/calculators/test_calculator_base.py +++ b/tests/unit_tests/analysis/calculators/test_calculator_base.py @@ -1,6 +1,9 @@ -import pytest +from unittest.mock import MagicMock +from unittest.mock import patch + import numpy as np -from unittest.mock import MagicMock, patch +import pytest + from easydiffraction.analysis.calculators.calculator_base import CalculatorBase @@ -76,4 +79,4 @@ def test_calculate_structure_factors(mock_sample_models, mock_experiment): result = calculator.calculate_structure_factors(mock_sample_models, mock_experiment) # Assertions - assert np.allclose(result, np.array([1., 2., 3.])) \ No newline at end of file + assert np.allclose(result, np.array([1., 2., 3.])) diff --git a/tests/unit_tests/analysis/calculators/test_calculator_cryspy.py b/tests/unit_tests/analysis/calculators/test_calculator_cryspy.py index f5f16333..94ffe53c 100644 --- a/tests/unit_tests/analysis/calculators/test_calculator_cryspy.py +++ b/tests/unit_tests/analysis/calculators/test_calculator_cryspy.py @@ -1,6 +1,9 @@ -import pytest +from unittest.mock import MagicMock +from unittest.mock import patch + import numpy as np -from unittest.mock import MagicMock, patch +import pytest + from easydiffraction.analysis.calculators.calculator_cryspy import CryspyCalculator diff --git a/tests/unit_tests/analysis/calculators/test_calculator_factory.py b/tests/unit_tests/analysis/calculators/test_calculator_factory.py index 60a97b9a..27b7f733 100644 --- a/tests/unit_tests/analysis/calculators/test_calculator_factory.py +++ b/tests/unit_tests/analysis/calculators/test_calculator_factory.py @@ -1,13 +1,13 @@ +from unittest.mock import patch + import pytest -from unittest.mock import MagicMock, patch -from easydiffraction.analysis.calculators.calculator_factory import CalculatorFactory + from easydiffraction.analysis.calculators.calculator_crysfml import CrysfmlCalculator from easydiffraction.analysis.calculators.calculator_cryspy import CryspyCalculator +from easydiffraction.analysis.calculators.calculator_factory import CalculatorFactory from easydiffraction.analysis.calculators.calculator_pdffit import PdffitCalculator -from easydiffraction.utils.formatting import ( - paragraph, - error -) +from easydiffraction.utils.formatting import paragraph + @pytest.fixture def mock_calculators(): @@ -78,4 +78,4 @@ class MockCalculator: # Assertions assert 'mock_calculator' in CalculatorFactory._potential_calculators assert supported['mock_calculator']['description'] == 'Mock calculator for testing' - assert supported['mock_calculator']['class'] == MockCalculator \ No newline at end of file + assert supported['mock_calculator']['class'] == MockCalculator diff --git a/tests/unit_tests/analysis/collections/test_joint_fit_experiment.py b/tests/unit_tests/analysis/collections/test_joint_fit_experiment.py index bb58917a..47d57de1 100644 --- a/tests/unit_tests/analysis/collections/test_joint_fit_experiment.py +++ b/tests/unit_tests/analysis/collections/test_joint_fit_experiment.py @@ -1,4 +1,3 @@ -import pytest from easydiffraction.analysis.collections.joint_fit_experiments import JointFitExperiment # filepath: src/easydiffraction/analysis/collections/test_joint_fit_experiments.py @@ -20,4 +19,4 @@ def test_joint_fit_experiment_properties(): expt = JointFitExperiment(id="exp2", weight=2.0) assert expt.cif_category_key == "joint_fit_experiment" assert expt.category_key == "joint_fit_experiment" - assert expt._entry_id == "exp2" \ No newline at end of file + assert expt._entry_id == "exp2" diff --git a/tests/unit_tests/analysis/minimizers/test_fitting_progress_tracker.py b/tests/unit_tests/analysis/minimizers/test_fitting_progress_tracker.py index 90d29b23..e1ee8d2f 100644 --- a/tests/unit_tests/analysis/minimizers/test_fitting_progress_tracker.py +++ b/tests/unit_tests/analysis/minimizers/test_fitting_progress_tracker.py @@ -1,7 +1,10 @@ -import pytest +from unittest.mock import patch + import numpy as np -from unittest.mock import patch, MagicMock -from easydiffraction.analysis.minimizers.fitting_progress_tracker import format_cell, FittingProgressTracker +import pytest + +from easydiffraction.analysis.minimizers.fitting_progress_tracker import FittingProgressTracker +from easydiffraction.analysis.minimizers.fitting_progress_tracker import format_cell def test_format_cell(): @@ -92,4 +95,4 @@ def test_stop_timer(tracker): with patch("time.perf_counter", side_effect=[100.0, 105.0]): tracker.start_timer() tracker.stop_timer() - assert tracker._fitting_time == 5.0 \ No newline at end of file + assert tracker._fitting_time == 5.0 diff --git a/tests/unit_tests/analysis/minimizers/test_minimizer_base.py b/tests/unit_tests/analysis/minimizers/test_minimizer_base.py index 60f13818..c638b242 100644 --- a/tests/unit_tests/analysis/minimizers/test_minimizer_base.py +++ b/tests/unit_tests/analysis/minimizers/test_minimizer_base.py @@ -1,6 +1,10 @@ +from unittest.mock import MagicMock +from unittest.mock import patch + import pytest -from unittest.mock import MagicMock, patch -from easydiffraction.analysis.minimizers.minimizer_base import MinimizerBase, FitResults + +from easydiffraction.analysis.minimizers.minimizer_base import FitResults +from easydiffraction.analysis.minimizers.minimizer_base import MinimizerBase # Mock subclass of MinimizerBase to test its methods @@ -113,4 +117,4 @@ def test_create_objective_function(mock_minimizer): mock_objective.assert_called_once_with( {"param1": 1.0}, parameters, sample_models, experiments, calculator ) - assert residuals == [1.0, 2.0, 3.0] \ No newline at end of file + assert residuals == [1.0, 2.0, 3.0] diff --git a/tests/unit_tests/analysis/minimizers/test_minimizer_dfols.py b/tests/unit_tests/analysis/minimizers/test_minimizer_dfols.py index 8cc43fa3..e141a5e7 100644 --- a/tests/unit_tests/analysis/minimizers/test_minimizer_dfols.py +++ b/tests/unit_tests/analysis/minimizers/test_minimizer_dfols.py @@ -1,6 +1,9 @@ -import pytest +from unittest.mock import MagicMock +from unittest.mock import patch + import numpy as np -from unittest.mock import MagicMock, patch +import pytest + from easydiffraction.analysis.minimizers.minimizer_dfols import DfolsMinimizer diff --git a/tests/unit_tests/analysis/minimizers/test_minimizer_factory.py b/tests/unit_tests/analysis/minimizers/test_minimizer_factory.py index 7d7ac5fa..3ed5518e 100644 --- a/tests/unit_tests/analysis/minimizers/test_minimizer_factory.py +++ b/tests/unit_tests/analysis/minimizers/test_minimizer_factory.py @@ -1,8 +1,10 @@ +from unittest.mock import patch + import pytest -from unittest.mock import patch, MagicMock + +from easydiffraction.analysis.minimizers.minimizer_dfols import DfolsMinimizer from easydiffraction.analysis.minimizers.minimizer_factory import MinimizerFactory from easydiffraction.analysis.minimizers.minimizer_lmfit import LmfitMinimizer -from easydiffraction.analysis.minimizers.minimizer_dfols import DfolsMinimizer def test_list_available_minimizers(): diff --git a/tests/unit_tests/analysis/minimizers/test_minimizer_lmfit.py b/tests/unit_tests/analysis/minimizers/test_minimizer_lmfit.py index e8a62f80..3abf3563 100644 --- a/tests/unit_tests/analysis/minimizers/test_minimizer_lmfit.py +++ b/tests/unit_tests/analysis/minimizers/test_minimizer_lmfit.py @@ -1,8 +1,10 @@ -import pytest -from unittest.mock import MagicMock, patch -from easydiffraction.analysis.minimizers.minimizer_lmfit import LmfitMinimizer +from unittest.mock import MagicMock +from unittest.mock import patch + import lmfit +import pytest +from easydiffraction.analysis.minimizers.minimizer_lmfit import LmfitMinimizer from easydiffraction.core.objects import Parameter diff --git a/tests/unit_tests/analysis/test_analysis.py b/tests/unit_tests/analysis/test_analysis.py index a216d2cd..6696c50a 100644 --- a/tests/unit_tests/analysis/test_analysis.py +++ b/tests/unit_tests/analysis/test_analysis.py @@ -1,5 +1,8 @@ +from unittest.mock import MagicMock +from unittest.mock import patch + import pytest -from unittest.mock import MagicMock, patch + from easydiffraction.analysis.analysis import Analysis diff --git a/tests/unit_tests/analysis/test_minimization.py b/tests/unit_tests/analysis/test_minimization.py index 461322b2..3bd17ac3 100644 --- a/tests/unit_tests/analysis/test_minimization.py +++ b/tests/unit_tests/analysis/test_minimization.py @@ -1,6 +1,9 @@ -import pytest +from unittest.mock import MagicMock +from unittest.mock import patch + import numpy as np -from unittest.mock import MagicMock, patch +import pytest + from easydiffraction.analysis.minimization import DiffractionMinimizer diff --git a/tests/unit_tests/analysis/test_reliability_factors.py b/tests/unit_tests/analysis/test_reliability_factors.py index 2fde2cef..bd47726c 100644 --- a/tests/unit_tests/analysis/test_reliability_factors.py +++ b/tests/unit_tests/analysis/test_reliability_factors.py @@ -1,15 +1,13 @@ -import pytest -import numpy as np from unittest.mock import Mock -from easydiffraction.analysis.reliability_factors import ( - calculate_r_factor, - calculate_weighted_r_factor, - calculate_rb_factor, - calculate_r_factor_squared, - calculate_reduced_chi_square, - get_reliability_inputs, -) +import numpy as np + +from easydiffraction.analysis.reliability_factors import calculate_r_factor +from easydiffraction.analysis.reliability_factors import calculate_r_factor_squared +from easydiffraction.analysis.reliability_factors import calculate_rb_factor +from easydiffraction.analysis.reliability_factors import calculate_reduced_chi_square +from easydiffraction.analysis.reliability_factors import calculate_weighted_r_factor +from easydiffraction.analysis.reliability_factors import get_reliability_inputs def test_calculate_r_factor(): @@ -107,4 +105,4 @@ def test_get_reliability_inputs(): # Assertions np.testing.assert_array_equal(y_obs, [10.0, 20.0, 30.0]) np.testing.assert_array_equal(y_calc, [9.0, 19.0, 29.0]) - np.testing.assert_array_equal(y_err, [1.0, 1.0, 1.0]) \ No newline at end of file + np.testing.assert_array_equal(y_err, [1.0, 1.0, 1.0]) diff --git a/tests/unit_tests/core/test_objects.py b/tests/unit_tests/core/test_objects.py index dde347f4..c8756683 100644 --- a/tests/unit_tests/core/test_objects.py +++ b/tests/unit_tests/core/test_objects.py @@ -1,5 +1,8 @@ -import pytest -from easydiffraction.core.objects import Descriptor, Parameter, Component, Collection, Datablock +from easydiffraction.core.objects import Collection +from easydiffraction.core.objects import Component +from easydiffraction.core.objects import Datablock +from easydiffraction.core.objects import Descriptor +from easydiffraction.core.objects import Parameter # filepath: src/easydiffraction/core/test_objects.py diff --git a/tests/unit_tests/core/test_singletons.py b/tests/unit_tests/core/test_singletons.py index 0fcf5cf8..f6fed329 100644 --- a/tests/unit_tests/core/test_singletons.py +++ b/tests/unit_tests/core/test_singletons.py @@ -1,11 +1,11 @@ -import pytest from unittest.mock import MagicMock + +import pytest + from easydiffraction.core.objects import Parameter -from easydiffraction.core.singletons import ( - BaseSingleton, - UidMapHandler, - ConstraintsHandler -) +from easydiffraction.core.singletons import BaseSingleton +from easydiffraction.core.singletons import ConstraintsHandler +from easydiffraction.core.singletons import UidMapHandler @pytest.fixture diff --git a/tests/unit_tests/experiments/collections/test_background.py b/tests/unit_tests/experiments/collections/test_background.py index 3436fd7e..6d0ad1b1 100644 --- a/tests/unit_tests/experiments/collections/test_background.py +++ b/tests/unit_tests/experiments/collections/test_background.py @@ -1,14 +1,13 @@ -import pytest +from unittest.mock import patch + import numpy as np -from unittest.mock import patch, MagicMock +import pytest -from easydiffraction.experiments.collections.background import ( - Point, - PolynomialTerm, - LineSegmentBackground, - ChebyshevPolynomialBackground, - BackgroundFactory, -) +from easydiffraction.experiments.collections.background import BackgroundFactory +from easydiffraction.experiments.collections.background import ChebyshevPolynomialBackground +from easydiffraction.experiments.collections.background import LineSegmentBackground +from easydiffraction.experiments.collections.background import Point +from easydiffraction.experiments.collections.background import PolynomialTerm def test_point_initialization(): @@ -80,7 +79,7 @@ def test_chebyshev_polynomial_background_calculate_no_terms(): y_data = background.calculate(x_data) assert np.array_equal(y_data, np.zeros_like(x_data)) assert("No background points found. Setting background to zero." in str(mock_print.call_args.args[0])) - + def test_chebyshev_polynomial_background_show(capsys): background = ChebyshevPolynomialBackground() background.add(order=0, coef=1.0) diff --git a/tests/unit_tests/experiments/collections/test_datastore.py b/tests/unit_tests/experiments/collections/test_datastore.py index c4aa4651..c18dbb12 100644 --- a/tests/unit_tests/experiments/collections/test_datastore.py +++ b/tests/unit_tests/experiments/collections/test_datastore.py @@ -1,13 +1,13 @@ -import pytest +from unittest.mock import MagicMock +from unittest.mock import patch + import numpy as np -from unittest.mock import MagicMock, patch - -from easydiffraction.experiments.collections.datastore import ( - Pattern, - PowderPattern, - Datastore, - DatastoreFactory, -) +import pytest + +from easydiffraction.experiments.collections.datastore import Datastore +from easydiffraction.experiments.collections.datastore import DatastoreFactory +from easydiffraction.experiments.collections.datastore import Pattern +from easydiffraction.experiments.collections.datastore import PowderPattern def test_pattern_initialization(): diff --git a/tests/unit_tests/experiments/collections/test_linked_phases.py b/tests/unit_tests/experiments/collections/test_linked_phases.py index c4aa4651..c18dbb12 100644 --- a/tests/unit_tests/experiments/collections/test_linked_phases.py +++ b/tests/unit_tests/experiments/collections/test_linked_phases.py @@ -1,13 +1,13 @@ -import pytest +from unittest.mock import MagicMock +from unittest.mock import patch + import numpy as np -from unittest.mock import MagicMock, patch - -from easydiffraction.experiments.collections.datastore import ( - Pattern, - PowderPattern, - Datastore, - DatastoreFactory, -) +import pytest + +from easydiffraction.experiments.collections.datastore import Datastore +from easydiffraction.experiments.collections.datastore import DatastoreFactory +from easydiffraction.experiments.collections.datastore import Pattern +from easydiffraction.experiments.collections.datastore import PowderPattern def test_pattern_initialization(): diff --git a/tests/unit_tests/experiments/components/test_experiment_type.py b/tests/unit_tests/experiments/components/test_experiment_type.py index eb334dca..9f92a8b2 100644 --- a/tests/unit_tests/experiments/components/test_experiment_type.py +++ b/tests/unit_tests/experiments/components/test_experiment_type.py @@ -1,6 +1,5 @@ -import pytest -from easydiffraction.experiments.components.experiment_type import ExperimentType from easydiffraction.core.objects import Descriptor +from easydiffraction.experiments.components.experiment_type import ExperimentType def test_experiment_type_initialization(): @@ -43,7 +42,7 @@ def test_experiment_type_properties(): def no_test_experiment_type_locking_attributes(): - # hmm this doesn't work as expected. + # TODO: hmm this doesn't work as expected. experiment_type = ExperimentType( sample_form="powder", beam_mode="CW", diff --git a/tests/unit_tests/experiments/components/test_instrument.py b/tests/unit_tests/experiments/components/test_instrument.py index a8118694..b0637a35 100644 --- a/tests/unit_tests/experiments/components/test_instrument.py +++ b/tests/unit_tests/experiments/components/test_instrument.py @@ -1,11 +1,10 @@ import pytest -from easydiffraction.experiments.components.instrument import ( - InstrumentBase, - ConstantWavelengthInstrument, - TimeOfFlightInstrument, - InstrumentFactory, -) + from easydiffraction.core.objects import Parameter +from easydiffraction.experiments.components.instrument import ConstantWavelengthInstrument +from easydiffraction.experiments.components.instrument import InstrumentBase +from easydiffraction.experiments.components.instrument import InstrumentFactory +from easydiffraction.experiments.components.instrument import TimeOfFlightInstrument def test_instrument_base_properties(): diff --git a/tests/unit_tests/experiments/components/test_peak.py b/tests/unit_tests/experiments/components/test_peak.py index db717279..eb9d722f 100644 --- a/tests/unit_tests/experiments/components/test_peak.py +++ b/tests/unit_tests/experiments/components/test_peak.py @@ -1,20 +1,19 @@ import pytest -from easydiffraction.experiments.components.peak import ( - ConstantWavelengthBroadeningMixin, - TimeOfFlightBroadeningMixin, - EmpiricalAsymmetryMixin, - FcjAsymmetryMixin, - IkedaCarpenterAsymmetryMixin, - PeakBase, - ConstantWavelengthPseudoVoigt, - ConstantWavelengthSplitPseudoVoigt, - ConstantWavelengthThompsonCoxHastings, - TimeOfFlightPseudoVoigt, - TimeOfFlightPseudoVoigtIkedaCarpenter, - TimeOfFlightPseudoVoigtBackToBackExponential, - PeakFactory, -) + from easydiffraction.core.objects import Parameter +from easydiffraction.experiments.components.peak import ConstantWavelengthBroadeningMixin +from easydiffraction.experiments.components.peak import ConstantWavelengthPseudoVoigt +from easydiffraction.experiments.components.peak import ConstantWavelengthSplitPseudoVoigt +from easydiffraction.experiments.components.peak import ConstantWavelengthThompsonCoxHastings +from easydiffraction.experiments.components.peak import EmpiricalAsymmetryMixin +from easydiffraction.experiments.components.peak import FcjAsymmetryMixin +from easydiffraction.experiments.components.peak import IkedaCarpenterAsymmetryMixin +from easydiffraction.experiments.components.peak import PeakBase +from easydiffraction.experiments.components.peak import PeakFactory +from easydiffraction.experiments.components.peak import TimeOfFlightBroadeningMixin +from easydiffraction.experiments.components.peak import TimeOfFlightPseudoVoigt +from easydiffraction.experiments.components.peak import TimeOfFlightPseudoVoigtBackToBackExponential +from easydiffraction.experiments.components.peak import TimeOfFlightPseudoVoigtIkedaCarpenter # --- Tests for Mixins --- diff --git a/tests/unit_tests/experiments/test_experiment.py b/tests/unit_tests/experiments/test_experiment.py index 93276782..450dd27b 100644 --- a/tests/unit_tests/experiments/test_experiment.py +++ b/tests/unit_tests/experiments/test_experiment.py @@ -1,21 +1,19 @@ -import pytest +from unittest.mock import MagicMock +from unittest.mock import patch + import numpy as np -from unittest.mock import MagicMock, patch - -from easydiffraction.experiments.experiment import ( - BaseExperiment, - PowderExperiment, - SingleCrystalExperiment, - ExperimentFactory, - Experiment, -) +import pytest + +from easydiffraction.core.constants import DEFAULT_BEAM_MODE +from easydiffraction.core.constants import DEFAULT_RADIATION_PROBE +from easydiffraction.core.constants import DEFAULT_SAMPLE_FORM +from easydiffraction.core.constants import DEFAULT_SCATTERING_TYPE from easydiffraction.experiments.components.experiment_type import ExperimentType -from easydiffraction.core.constants import ( - DEFAULT_SAMPLE_FORM, - DEFAULT_BEAM_MODE, - DEFAULT_RADIATION_PROBE, - DEFAULT_SCATTERING_TYPE -) +from easydiffraction.experiments.experiment import BaseExperiment +from easydiffraction.experiments.experiment import Experiment +from easydiffraction.experiments.experiment import ExperimentFactory +from easydiffraction.experiments.experiment import PowderExperiment +from easydiffraction.experiments.experiment import SingleCrystalExperiment @pytest.fixture diff --git a/tests/unit_tests/experiments/test_experiments.py b/tests/unit_tests/experiments/test_experiments.py index 547786b8..76398617 100644 --- a/tests/unit_tests/experiments/test_experiments.py +++ b/tests/unit_tests/experiments/test_experiments.py @@ -1,8 +1,10 @@ +from unittest.mock import MagicMock +from unittest.mock import patch + import pytest -from unittest.mock import MagicMock, patch +from easydiffraction.experiments.experiment import BaseExperiment from easydiffraction.experiments.experiments import Experiments -from easydiffraction.experiments.experiment import BaseExperiment, ExperimentFactory class ConcreteBaseExperiment(BaseExperiment): diff --git a/tests/unit_tests/sample_models/collections/test_atom_sites.py b/tests/unit_tests/sample_models/collections/test_atom_sites.py index efeff44f..070206c7 100644 --- a/tests/unit_tests/sample_models/collections/test_atom_sites.py +++ b/tests/unit_tests/sample_models/collections/test_atom_sites.py @@ -1,5 +1,7 @@ import pytest -from easydiffraction.sample_models.collections.atom_sites import AtomSite, AtomSites + +from easydiffraction.sample_models.collections.atom_sites import AtomSite +from easydiffraction.sample_models.collections.atom_sites import AtomSites def test_atom_site_initialization(): diff --git a/tests/unit_tests/sample_models/components/test_cell.py b/tests/unit_tests/sample_models/components/test_cell.py index 7f9eaa52..d28f8f15 100644 --- a/tests/unit_tests/sample_models/components/test_cell.py +++ b/tests/unit_tests/sample_models/components/test_cell.py @@ -1,4 +1,3 @@ -import pytest from easydiffraction.sample_models.components.cell import Cell diff --git a/tests/unit_tests/sample_models/components/test_space_group.py b/tests/unit_tests/sample_models/components/test_space_group.py index e4e55fa8..c9ac2d77 100644 --- a/tests/unit_tests/sample_models/components/test_space_group.py +++ b/tests/unit_tests/sample_models/components/test_space_group.py @@ -1,4 +1,3 @@ -import pytest from easydiffraction.sample_models.components.space_group import SpaceGroup diff --git a/tests/unit_tests/sample_models/test_sample_models.py b/tests/unit_tests/sample_models/test_sample_models.py index 8027c5c7..6c56f29a 100644 --- a/tests/unit_tests/sample_models/test_sample_models.py +++ b/tests/unit_tests/sample_models/test_sample_models.py @@ -1,6 +1,10 @@ +from unittest.mock import MagicMock +from unittest.mock import patch + import pytest -from unittest.mock import patch, MagicMock -from easydiffraction.sample_models.sample_models import SampleModel, SampleModels + +from easydiffraction.sample_models.sample_models import SampleModel +from easydiffraction.sample_models.sample_models import SampleModels @pytest.fixture diff --git a/tests/unit_tests/test_project.py b/tests/unit_tests/test_project.py index 3c3b3217..9c43068a 100644 --- a/tests/unit_tests/test_project.py +++ b/tests/unit_tests/test_project.py @@ -1,15 +1,16 @@ -import pytest -import os import datetime +import os import time -from unittest.mock import MagicMock, patch -from easydiffraction.project import Project, ProjectInfo -from easydiffraction.sample_models.sample_models import SampleModels -from easydiffraction.experiments.experiments import Experiments +from unittest.mock import MagicMock +from unittest.mock import patch + from easydiffraction.analysis.analysis import Analysis +from easydiffraction.experiments.experiments import Experiments +from easydiffraction.project import Project +from easydiffraction.project import ProjectInfo +from easydiffraction.sample_models.sample_models import SampleModels from easydiffraction.summary import Summary - # ------------------------------------------ # Tests for ProjectInfo # ------------------------------------------ diff --git a/tests/unit_tests/test_symmetry_lookup_table.py b/tests/unit_tests/test_symmetry_lookup_table.py index 2a0df9e3..d9e83b04 100644 --- a/tests/unit_tests/test_symmetry_lookup_table.py +++ b/tests/unit_tests/test_symmetry_lookup_table.py @@ -1,5 +1,5 @@ -import pytest import numpy as np +import pytest from easydiffraction.crystallography.space_group_lookup_table import SPACE_GROUP_LOOKUP_DICT @@ -13,7 +13,7 @@ def test_lookup_table_consistency(): @pytest.mark.parametrize("key, expected", [ - ((62, "cab"), + ((62, "cab"), { "IT_number": 62, "setting": 2, @@ -100,7 +100,7 @@ def test_space_group_lookup_table_yields_expected(key, expected): assert expected[sub_key] == entry[sub_key] # Then check Wyckoff - wyckoff_entry = entry["Wyckoff_positions"] + wyckoff_entry = entry["Wyckoff_positions"] wyckoff_expected = expected["Wyckoff_positions"] for site in wyckoff_expected.keys(): assert site in wyckoff_expected.keys() diff --git a/tools/create_mkdocs-yml.py b/tools/create_mkdocs-yml.py index 616974c3..8e26a89e 100644 --- a/tools/create_mkdocs-yml.py +++ b/tools/create_mkdocs-yml.py @@ -1,13 +1,20 @@ import os import re +from typing import Any +from typing import Dict +from typing import List + import yaml -from typing import Any, Dict, List + +# --------------- +# Special imports +# --------------- # Needed to parse !!python/name:material.extensions.emoji.twemoji -import material.extensions.emoji +import material.extensions.emoji # noqa: F401 # isort: skip # Needed to parse !!python/name:pymdownx.superfences.fence_code_format -import pymdownx.superfences +import pymdownx.superfences # noqa: F401 # isort: skip def load_yaml_with_env_variables(file_path: str) -> Dict[str, Any]: diff --git a/tutorials-drafts/cryst-struct_pd-neut-tof_multiphase-BSFTO-HRPT.py b/tutorials-drafts/cryst-struct_pd-neut-tof_multiphase-BSFTO-HRPT.py index e93aaffc..098e049c 100644 --- a/tutorials-drafts/cryst-struct_pd-neut-tof_multiphase-BSFTO-HRPT.py +++ b/tutorials-drafts/cryst-struct_pd-neut-tof_multiphase-BSFTO-HRPT.py @@ -8,12 +8,9 @@ # ## Import Library # %% -from easydiffraction import ( - Project, - SampleModel, - Experiment, - download_from_repository -) +from easydiffraction import Experiment +from easydiffraction import Project +from easydiffraction import SampleModel # %% [markdown] # ## Define Sample Models diff --git a/tutorials/advanced_joint-fit_pd-neut-xray-cwl_PbSO4.ipynb b/tutorials/advanced_joint-fit_pd-neut-xray-cwl_PbSO4.ipynb index eb6fe642..ab039757 100644 --- a/tutorials/advanced_joint-fit_pd-neut-xray-cwl_PbSO4.ipynb +++ b/tutorials/advanced_joint-fit_pd-neut-xray-cwl_PbSO4.ipynb @@ -32,12 +32,10 @@ "metadata": {}, "outputs": [], "source": [ - "from easydiffraction import (\n", - " Project,\n", - " SampleModel,\n", - " Experiment,\n", - " download_from_repository\n", - ")" + "from easydiffraction import Experiment\n", + "from easydiffraction import Project\n", + "from easydiffraction import SampleModel\n", + "from easydiffraction import download_from_repository" ] }, { diff --git a/tutorials/advanced_joint-fit_pd-neut-xray-cwl_PbSO4.py b/tutorials/advanced_joint-fit_pd-neut-xray-cwl_PbSO4.py index 375d2fcc..d171ca41 100644 --- a/tutorials/advanced_joint-fit_pd-neut-xray-cwl_PbSO4.py +++ b/tutorials/advanced_joint-fit_pd-neut-xray-cwl_PbSO4.py @@ -14,12 +14,10 @@ # ## Import Library # %% -from easydiffraction import ( - Project, - SampleModel, - Experiment, - download_from_repository -) +from easydiffraction import Experiment +from easydiffraction import Project +from easydiffraction import SampleModel +from easydiffraction import download_from_repository # %% [markdown] # ## Define Sample Model diff --git a/tutorials/cryst-struct_pd-neut-cwl_CoSiO4-D20.ipynb b/tutorials/cryst-struct_pd-neut-cwl_CoSiO4-D20.ipynb index 62ee022c..48c0e820 100644 --- a/tutorials/cryst-struct_pd-neut-cwl_CoSiO4-D20.ipynb +++ b/tutorials/cryst-struct_pd-neut-cwl_CoSiO4-D20.ipynb @@ -26,12 +26,10 @@ "metadata": {}, "outputs": [], "source": [ - "from easydiffraction import (\n", - " Project,\n", - " SampleModel,\n", - " Experiment,\n", - " download_from_repository\n", - ")" + "from easydiffraction import Experiment\n", + "from easydiffraction import Project\n", + "from easydiffraction import SampleModel\n", + "from easydiffraction import download_from_repository" ] }, { diff --git a/tutorials/cryst-struct_pd-neut-cwl_CoSiO4-D20.py b/tutorials/cryst-struct_pd-neut-cwl_CoSiO4-D20.py index 3f121be9..ea844c24 100644 --- a/tutorials/cryst-struct_pd-neut-cwl_CoSiO4-D20.py +++ b/tutorials/cryst-struct_pd-neut-cwl_CoSiO4-D20.py @@ -8,12 +8,10 @@ # ## Import Library # %% -from easydiffraction import ( - Project, - SampleModel, - Experiment, - download_from_repository -) +from easydiffraction import Experiment +from easydiffraction import Project +from easydiffraction import SampleModel +from easydiffraction import download_from_repository # %% [markdown] # ## Define Sample Model diff --git a/tutorials/cryst-struct_pd-neut-cwl_HS-HRPT.ipynb b/tutorials/cryst-struct_pd-neut-cwl_HS-HRPT.ipynb index 892fc0ec..caa78b19 100644 --- a/tutorials/cryst-struct_pd-neut-cwl_HS-HRPT.ipynb +++ b/tutorials/cryst-struct_pd-neut-cwl_HS-HRPT.ipynb @@ -26,12 +26,10 @@ "metadata": {}, "outputs": [], "source": [ - "from easydiffraction import (\n", - " Project,\n", - " SampleModel,\n", - " Experiment,\n", - " download_from_repository\n", - ")" + "from easydiffraction import Experiment\n", + "from easydiffraction import Project\n", + "from easydiffraction import SampleModel\n", + "from easydiffraction import download_from_repository" ] }, { diff --git a/tutorials/cryst-struct_pd-neut-cwl_HS-HRPT.py b/tutorials/cryst-struct_pd-neut-cwl_HS-HRPT.py index 61f7275b..088d5f97 100644 --- a/tutorials/cryst-struct_pd-neut-cwl_HS-HRPT.py +++ b/tutorials/cryst-struct_pd-neut-cwl_HS-HRPT.py @@ -8,12 +8,10 @@ # ## Import Library # %% -from easydiffraction import ( - Project, - SampleModel, - Experiment, - download_from_repository -) +from easydiffraction import Experiment +from easydiffraction import Project +from easydiffraction import SampleModel +from easydiffraction import download_from_repository # %% [markdown] # ## Define Sample Model @@ -338,4 +336,4 @@ # #### Show Project Summary # %% -project.summary.show_report() \ No newline at end of file +project.summary.show_report() diff --git a/tutorials/cryst-struct_pd-neut-tof_Si-SEPD.ipynb b/tutorials/cryst-struct_pd-neut-tof_Si-SEPD.ipynb index f1b60c3e..6290670d 100644 --- a/tutorials/cryst-struct_pd-neut-tof_Si-SEPD.ipynb +++ b/tutorials/cryst-struct_pd-neut-tof_Si-SEPD.ipynb @@ -26,12 +26,10 @@ "metadata": {}, "outputs": [], "source": [ - "from easydiffraction import (\n", - " Project,\n", - " SampleModel,\n", - " Experiment,\n", - " download_from_repository\n", - ")" + "from easydiffraction import Experiment\n", + "from easydiffraction import Project\n", + "from easydiffraction import SampleModel\n", + "from easydiffraction import download_from_repository" ] }, { diff --git a/tutorials/cryst-struct_pd-neut-tof_Si-SEPD.py b/tutorials/cryst-struct_pd-neut-tof_Si-SEPD.py index d97876dc..40fd5f38 100644 --- a/tutorials/cryst-struct_pd-neut-tof_Si-SEPD.py +++ b/tutorials/cryst-struct_pd-neut-tof_Si-SEPD.py @@ -8,12 +8,10 @@ # ## Import Library # %% -from easydiffraction import ( - Project, - SampleModel, - Experiment, - download_from_repository -) +from easydiffraction import Experiment +from easydiffraction import Project +from easydiffraction import SampleModel +from easydiffraction import download_from_repository # %% [markdown] # ## Define Sample Model diff --git a/tutorials/cryst-struct_pd-neut-tof_multidata_NCAF-WISH.ipynb b/tutorials/cryst-struct_pd-neut-tof_multidata_NCAF-WISH.ipynb index 5eebed87..80a0349a 100644 --- a/tutorials/cryst-struct_pd-neut-tof_multidata_NCAF-WISH.ipynb +++ b/tutorials/cryst-struct_pd-neut-tof_multidata_NCAF-WISH.ipynb @@ -29,12 +29,10 @@ "metadata": {}, "outputs": [], "source": [ - "from easydiffraction import (\n", - " Project,\n", - " SampleModel,\n", - " Experiment,\n", - " download_from_repository\n", - ")" + "from easydiffraction import Experiment\n", + "from easydiffraction import Project\n", + "from easydiffraction import SampleModel\n", + "from easydiffraction import download_from_repository" ] }, { diff --git a/tutorials/cryst-struct_pd-neut-tof_multidata_NCAF-WISH.py b/tutorials/cryst-struct_pd-neut-tof_multidata_NCAF-WISH.py index d0221244..35710689 100644 --- a/tutorials/cryst-struct_pd-neut-tof_multidata_NCAF-WISH.py +++ b/tutorials/cryst-struct_pd-neut-tof_multidata_NCAF-WISH.py @@ -11,12 +11,10 @@ # ## Import Library # %% -from easydiffraction import ( - Project, - SampleModel, - Experiment, - download_from_repository -) +from easydiffraction import Experiment +from easydiffraction import Project +from easydiffraction import SampleModel +from easydiffraction import download_from_repository # %% [markdown] # ## Define Sample Model diff --git a/tutorials/cryst-struct_pd-neut-tof_multiphase-LBCO-Si_McStas.ipynb b/tutorials/cryst-struct_pd-neut-tof_multiphase-LBCO-Si_McStas.ipynb index fd09eb27..75ac3553 100644 --- a/tutorials/cryst-struct_pd-neut-tof_multiphase-LBCO-Si_McStas.ipynb +++ b/tutorials/cryst-struct_pd-neut-tof_multiphase-LBCO-Si_McStas.ipynb @@ -27,12 +27,10 @@ "metadata": {}, "outputs": [], "source": [ - "from easydiffraction import (\n", - " Project,\n", - " SampleModel,\n", - " Experiment,\n", - " download_from_repository\n", - ")" + "from easydiffraction import Experiment\n", + "from easydiffraction import Project\n", + "from easydiffraction import SampleModel\n", + "from easydiffraction import download_from_repository" ] }, { diff --git a/tutorials/cryst-struct_pd-neut-tof_multiphase-LBCO-Si_McStas.py b/tutorials/cryst-struct_pd-neut-tof_multiphase-LBCO-Si_McStas.py index e3194813..59f07256 100644 --- a/tutorials/cryst-struct_pd-neut-tof_multiphase-LBCO-Si_McStas.py +++ b/tutorials/cryst-struct_pd-neut-tof_multiphase-LBCO-Si_McStas.py @@ -9,12 +9,10 @@ # ## Import Library # %% -from easydiffraction import ( - Project, - SampleModel, - Experiment, - download_from_repository -) +from easydiffraction import Experiment +from easydiffraction import Project +from easydiffraction import SampleModel +from easydiffraction import download_from_repository # %% [markdown] # ## Define Sample Models From 3a46e5c9a58dc6fc80732df767666fa0269833a7 Mon Sep 17 00:00:00 2001 From: Andrew Sazonov Date: Fri, 8 Aug 2025 13:55:42 +0200 Subject: [PATCH 13/43] Apply ruff linting with --unsafe-fixes --- src/easydiffraction/analysis/minimization.py | 18 +++++++------- .../analysis/reliability_factors.py | 24 +++++++++---------- .../crystallography/crystallography.py | 8 +++---- .../experiments/collections/datastore.py | 4 ++-- .../sample_models/sample_models.py | 16 ++++++------- src/easydiffraction/summary.py | 2 +- tests/unit_tests/test_project.py | 8 +++---- ...sic_single-fit_pd-neut-cwl_LBCO-HRPT.ipynb | 6 ++--- .../basic_single-fit_pd-neut-cwl_LBCO-HRPT.py | 6 ++--- 9 files changed, 46 insertions(+), 46 deletions(-) diff --git a/src/easydiffraction/analysis/minimization.py b/src/easydiffraction/analysis/minimization.py index 4b523689..5c16e723 100644 --- a/src/easydiffraction/analysis/minimization.py +++ b/src/easydiffraction/analysis/minimization.py @@ -1,5 +1,4 @@ from typing import Any -from typing import Callable from typing import Dict from typing import List from typing import Optional @@ -51,14 +50,15 @@ def fit(self, for param in params: param.start_value = param.value - objective_function: Callable[[Dict[str, Any]], np.ndarray] = lambda engine_params: self._residual_function( - engine_params=engine_params, - parameters=params, - sample_models=sample_models, - experiments=experiments, - calculator=calculator, - weights=weights, - ) + def objective_function(engine_params: Dict[str, Any]) -> np.ndarray: + return self._residual_function( + engine_params=engine_params, + parameters=params, + sample_models=sample_models, + experiments=experiments, + calculator=calculator, + weights=weights, + ) # Perform fitting self.results = self.minimizer.fit(params, objective_function) diff --git a/src/easydiffraction/analysis/reliability_factors.py b/src/easydiffraction/analysis/reliability_factors.py index 8540d64b..42b2bf5b 100644 --- a/src/easydiffraction/analysis/reliability_factors.py +++ b/src/easydiffraction/analysis/reliability_factors.py @@ -12,11 +12,11 @@ def calculate_r_factor(y_obs: np.ndarray, y_calc: np.ndarray) -> float: """ Calculate the R-factor (reliability factor) between observed and calculated data. - + Args: y_obs: Observed data points. y_calc: Calculated data points. - + Returns: R-factor value. """ @@ -32,12 +32,12 @@ def calculate_weighted_r_factor(y_obs: np.ndarray, weights: np.ndarray) -> float: """ Calculate the weighted R-factor between observed and calculated data. - + Args: y_obs: Observed data points. y_calc: Calculated data points. weights: Weights for each data point. - + Returns: Weighted R-factor value. """ @@ -53,11 +53,11 @@ def calculate_rb_factor(y_obs: np.ndarray, y_calc: np.ndarray) -> float: """ Calculate the Bragg R-factor between observed and calculated data. - + Args: y_obs: Observed data points. y_calc: Calculated data points. - + Returns: Bragg R-factor value. """ @@ -72,11 +72,11 @@ def calculate_r_factor_squared(y_obs: np.ndarray, y_calc: np.ndarray) -> float: """ Calculate the R-factor squared between observed and calculated data. - + Args: y_obs: Observed data points. y_calc: Calculated data points. - + Returns: R-factor squared value. """ @@ -91,11 +91,11 @@ def calculate_reduced_chi_square(residuals: np.ndarray, num_parameters: int) -> float: """ Calculate the reduced chi-square statistic. - + Args: residuals: Residuals between observed and calculated data. num_parameters: Number of free parameters used in the model. - + Returns: Reduced chi-square value. """ @@ -114,12 +114,12 @@ def get_reliability_inputs(sample_models: SampleModels, calculator: CalculatorBase) -> Tuple[np.ndarray, np.ndarray, Optional[np.ndarray]]: """ Collect observed and calculated data points for reliability calculations. - + Args: sample_models: Collection of sample models. experiments: Collection of experiments. calculator: The calculator to use for pattern generation. - + Returns: Tuple containing arrays of (observed values, calculated values, error values) """ diff --git a/src/easydiffraction/crystallography/crystallography.py b/src/easydiffraction/crystallography/crystallography.py index 32d55789..090aa8b7 100644 --- a/src/easydiffraction/crystallography/crystallography.py +++ b/src/easydiffraction/crystallography/crystallography.py @@ -17,11 +17,11 @@ def apply_cell_symmetry_constraints(cell: Dict[str, float], name_hm: str) -> Dict[str, float]: """ Apply symmetry constraints to unit cell parameters based on space group. - + Args: cell: Dictionary containing lattice parameters. name_hm: Hermann-Mauguin symbol of the space group. - + Returns: The cell dictionary with applied symmetry constraints. """ @@ -84,13 +84,13 @@ def apply_atom_site_symmetry_constraints(atom_site: Dict[str, Any], wyckoff_letter: str) -> Dict[str, Any]: """ Apply symmetry constraints to atomic coordinates based on site symmetry. - + Args: atom_site: Dictionary containing atom position data. name_hm: Hermann-Mauguin symbol of the space group. coord_code: Coordinate system code. wyckoff_letter: Wyckoff position letter. - + Returns: The atom_site dictionary with applied symmetry constraints. """ diff --git a/src/easydiffraction/experiments/collections/datastore.py b/src/easydiffraction/experiments/collections/datastore.py index 28a0b701..0977cfdb 100644 --- a/src/easydiffraction/experiments/collections/datastore.py +++ b/src/easydiffraction/experiments/collections/datastore.py @@ -107,11 +107,11 @@ class DatastoreFactory: def create(sample_form: str, experiment: Experiment) -> Datastore: """ Create a datastore object depending on the sample form. - + Args: sample_form: The form of the sample ("powder" or "single_crystal"). experiment: The experiment object. - + Returns: A new Datastore instance appropriate for the sample form. """ diff --git a/src/easydiffraction/sample_models/sample_models.py b/src/easydiffraction/sample_models/sample_models.py index 95376ae9..5e4e3a78 100644 --- a/src/easydiffraction/sample_models/sample_models.py +++ b/src/easydiffraction/sample_models/sample_models.py @@ -28,7 +28,7 @@ def add(self, """ Add a new sample model to the collection. Dispatches based on input type: pre-built model or parameters for new creation. - + Args: model: An existing SampleModel instance. name: Name for a new model if created from scratch. @@ -43,7 +43,7 @@ def add(self, def remove(self, name: str) -> None: """ Remove a sample model by its ID. - + Args: name: ID of the model to remove. """ @@ -53,7 +53,7 @@ def remove(self, name: str) -> None: def get_ids(self) -> List[str]: """ Return a list of all model IDs in the collection. - + Returns: List of model IDs. """ @@ -77,7 +77,7 @@ def show_params(self) -> None: def as_cif(self) -> str: """ Export all sample models to CIF format. - + Returns: CIF string representation of all sample models. """ @@ -87,10 +87,10 @@ def as_cif(self) -> str: def _add_prebuilt_sample_model(self, sample_model: SampleModel) -> None: """ Add a pre-built SampleModel instance. - + Args: model: The SampleModel instance to add. - + Raises: TypeError: If model is not a SampleModel instance. """ @@ -102,12 +102,12 @@ def _create_and_add_sample_model(self, cif_str: Optional[str] = None) -> None: """ Create a SampleModel instance and add it to the collection. - + Args: name: Name for the new model. cif_path: Path to a CIF file. cif_str: CIF content as string. - + Raises: ValueError: If neither name, cif_path, nor cif_str is provided. """ diff --git a/src/easydiffraction/summary.py b/src/easydiffraction/summary.py index 6e04ef6a..6f41738f 100644 --- a/src/easydiffraction/summary.py +++ b/src/easydiffraction/summary.py @@ -9,7 +9,7 @@ class Summary: """ Generates reports and exports results from the project. - + This class collects and presents all relevant information about the fitted model, experiments, and analysis results. """ diff --git a/tests/unit_tests/test_project.py b/tests/unit_tests/test_project.py index 9c43068a..7fe6578b 100644 --- a/tests/unit_tests/test_project.py +++ b/tests/unit_tests/test_project.py @@ -87,10 +87,10 @@ def test_project_info_show_as_cif(mock_print): # ------------------------------------------ def test_project_initialization(): - with patch("easydiffraction.sample_models.sample_models.SampleModels") as MockSampleModels, \ - patch("easydiffraction.experiments.experiments.Experiments") as MockExperiments, \ - patch("easydiffraction.analysis.analysis.Analysis") as MockAnalysis, \ - patch("easydiffraction.summary.Summary") as MockSummary: + with patch("easydiffraction.sample_models.sample_models.SampleModels"), \ + patch("easydiffraction.experiments.experiments.Experiments"), \ + patch("easydiffraction.analysis.analysis.Analysis"), \ + patch("easydiffraction.summary.Summary"): project = Project() # Directly assign the instance to a variable # Assertions diff --git a/tutorials/basic_single-fit_pd-neut-cwl_LBCO-HRPT.ipynb b/tutorials/basic_single-fit_pd-neut-cwl_LBCO-HRPT.ipynb index e66167c0..a5ab68dc 100644 --- a/tutorials/basic_single-fit_pd-neut-cwl_LBCO-HRPT.ipynb +++ b/tutorials/basic_single-fit_pd-neut-cwl_LBCO-HRPT.ipynb @@ -85,9 +85,9 @@ "outputs": [], "source": [ "project.info.title = 'La0.5Ba0.5CoO3 at HRPT@PSI'\n", - "project.info.description = \"\"\"This project demonstrates a standard \n", - "refinement of La0.5Ba0.5CoO3, which crystallizes in a perovskite-type \n", - "structure, using neutron powder diffraction data collected in constant \n", + "project.info.description = \"\"\"This project demonstrates a standard\n", + "refinement of La0.5Ba0.5CoO3, which crystallizes in a perovskite-type\n", + "structure, using neutron powder diffraction data collected in constant\n", "wavelength mode at the HRPT diffractometer (PSI).\"\"\"" ] }, diff --git a/tutorials/basic_single-fit_pd-neut-cwl_LBCO-HRPT.py b/tutorials/basic_single-fit_pd-neut-cwl_LBCO-HRPT.py index 2c9708c0..60f76234 100644 --- a/tutorials/basic_single-fit_pd-neut-cwl_LBCO-HRPT.py +++ b/tutorials/basic_single-fit_pd-neut-cwl_LBCO-HRPT.py @@ -38,9 +38,9 @@ # %% project.info.title = 'La0.5Ba0.5CoO3 at HRPT@PSI' -project.info.description = """This project demonstrates a standard -refinement of La0.5Ba0.5CoO3, which crystallizes in a perovskite-type -structure, using neutron powder diffraction data collected in constant +project.info.description = """This project demonstrates a standard +refinement of La0.5Ba0.5CoO3, which crystallizes in a perovskite-type +structure, using neutron powder diffraction data collected in constant wavelength mode at the HRPT diffractometer (PSI).""" # %% [markdown] From ae4f73dc7474606c8892447786ac3ef0b71a59cd Mon Sep 17 00:00:00 2001 From: Andrew Sazonov Date: Fri, 8 Aug 2025 14:04:20 +0200 Subject: [PATCH 14/43] Fixes dependency installation --- .github/workflows/build-docs.yml | 2 +- .github/workflows/test-code.yaml | 2 +- .github/workflows/test-tutorials.yaml | 2 +- README.md | 2 +- pyproject.toml | 12 ++++++------ 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/build-docs.yml b/.github/workflows/build-docs.yml index 15976d61..b3bede34 100644 --- a/.github/workflows/build-docs.yml +++ b/.github/workflows/build-docs.yml @@ -65,7 +65,7 @@ jobs: # Install EasyDiffraction Library to run Jupyter notebooks # Install with the 'charts' and 'docs' extras - name: Install EasyDiffraction Library and its dependencies - run: python -m pip install . + run: python -m pip install . '[dev,docs,visualization]' # Clone assets extra from: # - easyscience/assets-docs diff --git a/.github/workflows/test-code.yaml b/.github/workflows/test-code.yaml index 77088c94..fc7a2d13 100644 --- a/.github/workflows/test-code.yaml +++ b/.github/workflows/test-code.yaml @@ -67,7 +67,7 @@ jobs: - name: Install Python dependencies shell: bash - run: python -m pip install . + run: python -m pip install . '[dev,docs,visualization]' - name: Run Python unit tests shell: bash diff --git a/.github/workflows/test-tutorials.yaml b/.github/workflows/test-tutorials.yaml index 177783df..2ba8e73a 100644 --- a/.github/workflows/test-tutorials.yaml +++ b/.github/workflows/test-tutorials.yaml @@ -45,7 +45,7 @@ jobs: - name: Install Python dependencies shell: bash - run: python -m pip install . + run: python -m pip install . '[dev,docs,visualization]' # Check if tutorials as python scripts run without errors # Run all Python scripts in the folder tutorials/ in parallel diff --git a/README.md b/README.md index ec17cbad..1fcdf060 100644 --- a/README.md +++ b/README.md @@ -30,7 +30,7 @@ Development playground for the new EasyDiffraction API. - Install dependencies: ```bash pip install --upgrade pip - pip install . + pip python -m pip install . '[visualization]' ``` - Install pycrysfml (pyenv python 3.12, macOS 14, Apple Silicon): ```bash diff --git a/pyproject.toml b/pyproject.toml index 8aeb2b60..d0c68eb4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -61,12 +61,6 @@ dev = [ 'validate-pyproject[all]', # Validate pyproject.toml 'versioningit', # Automatic versioning from git tags ] -charts = [ - 'darkdetect', # Detecting dark mode - 'pandas', # Displaying tables in juptyer notebooks - 'plotly<6.1.0', # Interactive plots. 0.6.0 => Empty charts in Jupyter notebooks ... - 'py3Dmol', # Visualisation of crystal structures -] docs = [ 'mkdocs', # Static site generator 'mkdocs-material', # Documentation framework on top of MkDocs @@ -77,6 +71,12 @@ docs = [ 'mkdocstrings-python', # MkDocs: Python docstring support 'pyyaml', # YAML parser ] +visualization = [ + 'darkdetect', # Detecting dark mode + 'pandas', # Displaying tables in juptyer notebooks + 'plotly<6.1.0', # Interactive plots. 0.6.0 => Empty charts in Jupyter notebooks ... + 'py3Dmol', # Visualisation of crystal structures +] [project.urls] homepage = 'https://easydiffraction.org' From bbe312b64ae68ba47a5d196ff402e9e0c75467dd Mon Sep 17 00:00:00 2001 From: Andrew Sazonov Date: Fri, 8 Aug 2025 14:15:48 +0200 Subject: [PATCH 15/43] Fixes install command spacing in workflows --- .github/workflows/build-docs.yml | 2 +- .github/workflows/test-code.yaml | 2 +- .github/workflows/test-tutorials.yaml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build-docs.yml b/.github/workflows/build-docs.yml index b3bede34..0a705361 100644 --- a/.github/workflows/build-docs.yml +++ b/.github/workflows/build-docs.yml @@ -65,7 +65,7 @@ jobs: # Install EasyDiffraction Library to run Jupyter notebooks # Install with the 'charts' and 'docs' extras - name: Install EasyDiffraction Library and its dependencies - run: python -m pip install . '[dev,docs,visualization]' + run: python -m pip install .'[dev,docs,visualization]' # Clone assets extra from: # - easyscience/assets-docs diff --git a/.github/workflows/test-code.yaml b/.github/workflows/test-code.yaml index fc7a2d13..a39ddf53 100644 --- a/.github/workflows/test-code.yaml +++ b/.github/workflows/test-code.yaml @@ -67,7 +67,7 @@ jobs: - name: Install Python dependencies shell: bash - run: python -m pip install . '[dev,docs,visualization]' + run: python -m pip install .'[dev,docs,visualization]' - name: Run Python unit tests shell: bash diff --git a/.github/workflows/test-tutorials.yaml b/.github/workflows/test-tutorials.yaml index 2ba8e73a..f53bcc0f 100644 --- a/.github/workflows/test-tutorials.yaml +++ b/.github/workflows/test-tutorials.yaml @@ -45,7 +45,7 @@ jobs: - name: Install Python dependencies shell: bash - run: python -m pip install . '[dev,docs,visualization]' + run: python -m pip install .'[dev,docs,visualization]' # Check if tutorials as python scripts run without errors # Run all Python scripts in the folder tutorials/ in parallel From 2bd15369bf1add866b86a8892767fa43f47d83f5 Mon Sep 17 00:00:00 2001 From: Andrew Sazonov Date: Fri, 8 Aug 2025 14:15:54 +0200 Subject: [PATCH 16/43] Adds YAPF for code formatting and updates Ruff config --- pyproject.toml | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index d0c68eb4..70b230a0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -58,6 +58,7 @@ dev = [ 'pytest-cov', # Test coverage 'pytest-xdist', # Enable parallel testing 'ruff', # Linting and formatting code + 'yapf', # Formatting code (extra) 'validate-pyproject[all]', # Validate pyproject.toml 'versioningit', # Automatic versioning from git tags ] @@ -137,16 +138,10 @@ default-tag = 'v999.0.0' # https://docs.astral.sh/ruff/rules/ [tool.ruff] -exclude = ['examples', 'examples_old', 'tests_old'] +exclude = ['tutorials-drafts'] indent-width = 4 line-length = 127 -[tool.ruff.format] -docstring-code-format = true # Whether to format code snippets in docstrings -indent-style = 'space' # PEP 8 recommends using spaces over tabs -line-ending = 'lf' # Line endings will be converted to \n -quote-style = 'single' # But double quotes in docstrings (PEP 8, PEP 257) - [tool.ruff.lint] select = [ 'E', # General PEP 8 style errors @@ -171,6 +166,22 @@ force-single-line = true #max-line-length = 88 # https://peps.python.org/pep-0008/#maximum-line-length #max-doc-length = 72 # https://peps.python.org/pep-0008/#maximum-line-length +[tool.ruff.format] +docstring-code-format = true # Whether to format code snippets in docstrings +indent-style = 'space' # PEP 8 recommends using spaces over tabs +line-ending = 'lf' # Line endings will be converted to \n +quote-style = 'single' # But double quotes in docstrings (PEP 8, PEP 257) + +######################## +# Configuration for yapf +######################### + +# 'yapf' -- Python code formatter +# https://github.com/google/yapf + +[tool.yapf] +split_all_comma_separated_values = true # Split all comma-separated values into separate lines + ############################ # Configuration for prettier ############################ From 29eb1567d94ed10bdbccf258b089369cc138c022 Mon Sep 17 00:00:00 2001 From: Andrew Sazonov Date: Fri, 8 Aug 2025 14:26:11 +0200 Subject: [PATCH 17/43] Applies ruff formatting --- src/easydiffraction/__init__.py | 26 +- src/easydiffraction/analysis/analysis.py | 306 +- src/easydiffraction/analysis/calculation.py | 16 +- .../analysis/calculators/calculator_base.py | 30 +- .../calculators/calculator_crysfml.py | 107 +- .../analysis/calculators/calculator_cryspy.py | 205 +- .../calculators/calculator_factory.py | 47 +- .../analysis/calculators/calculator_pdffit.py | 34 +- .../analysis/collections/aliases.py | 19 +- .../analysis/collections/constraints.py | 18 +- .../collections/joint_fit_experiments.py | 19 +- src/easydiffraction/analysis/minimization.py | 93 +- .../minimizers/fitting_progress_tracker.py | 81 +- .../analysis/minimizers/minimizer_base.py | 226 +- .../analysis/minimizers/minimizer_dfols.py | 18 +- .../analysis/minimizers/minimizer_factory.py | 34 +- .../analysis/minimizers/minimizer_lmfit.py | 67 +- .../analysis/reliability_factors.py | 48 +- src/easydiffraction/core/constants.py | 28 +- src/easydiffraction/core/objects.py | 146 +- src/easydiffraction/core/singletons.py | 1 + .../crystallography/crystallography.py | 108 +- .../space_group_lookup_table.py | 47191 ++++------------ .../experiments/collections/background.py | 74 +- .../experiments/collections/datastore.py | 23 +- .../collections/excluded_regions.py | 36 +- .../experiments/collections/linked_phases.py | 19 +- .../experiments/components/experiment_type.py | 42 +- .../experiments/components/instrument.py | 102 +- .../experiments/components/peak.py | 329 +- src/easydiffraction/experiments/experiment.py | 231 +- .../experiments/experiments.py | 50 +- .../plotting/plotters/plotter_ascii.py | 32 +- .../plotting/plotters/plotter_base.py | 25 +- .../plotting/plotters/plotter_plotly.py | 51 +- src/easydiffraction/plotting/plotting.py | 191 +- src/easydiffraction/project.py | 171 +- .../sample_models/collections/atom_sites.py | 68 +- .../sample_models/components/cell.py | 58 +- .../sample_models/components/space_group.py | 21 +- .../sample_models/sample_model.py | 66 +- .../sample_models/sample_models.py | 28 +- src/easydiffraction/summary.py | 142 +- src/easydiffraction/utils/decorators.py | 6 +- src/easydiffraction/utils/formatting.py | 25 +- src/easydiffraction/utils/utils.py | 100 +- .../test_pair-distribution-function.py | 102 +- ..._powder-diffraction_constant-wavelength.py | 53 +- .../test_powder-diffraction_joint-fit.py | 42 +- .../test_powder-diffraction_multiphase.py | 4 +- .../test_powder-diffraction_time-of-flight.py | 22 +- .../calculators/test_calculator_base.py | 24 +- .../calculators/test_calculator_cryspy.py | 58 +- .../calculators/test_calculator_factory.py | 22 +- .../collections/test_joint_fit_experiment.py | 20 +- .../test_fitting_progress_tracker.py | 40 +- .../minimizers/test_minimizer_base.py | 54 +- .../minimizers/test_minimizer_dfols.py | 15 +- .../minimizers/test_minimizer_factory.py | 20 +- .../minimizers/test_minimizer_lmfit.py | 32 +- tests/unit_tests/analysis/test_analysis.py | 91 +- .../unit_tests/analysis/test_minimization.py | 43 +- .../analysis/test_reliability_factors.py | 4 +- tests/unit_tests/core/test_objects.py | 49 +- tests/unit_tests/core/test_singletons.py | 20 +- .../collections/test_background.py | 34 +- .../experiments/collections/test_datastore.py | 58 +- .../collections/test_linked_phases.py | 58 +- .../components/test_experiment_type.py | 45 +- .../experiments/components/test_instrument.py | 59 +- .../experiments/components/test_peak.py | 10 +- .../unit_tests/experiments/test_experiment.py | 54 +- .../experiments/test_experiments.py | 48 +- .../collections/test_atom_sites.py | 72 +- .../sample_models/components/test_cell.py | 17 +- .../components/test_space_group.py | 18 +- .../sample_models/test_sample_models.py | 28 +- tests/unit_tests/test_project.py | 133 +- .../unit_tests/test_symmetry_lookup_table.py | 174 +- tools/create_mkdocs-yml.py | 38 +- ...ced_joint-fit_pd-neut-xray-cwl_PbSO4.ipynb | 22 +- ...vanced_joint-fit_pd-neut-xray-cwl_PbSO4.py | 22 +- ...sic_single-fit_pd-neut-cwl_LBCO-HRPT.ipynb | 146 +- .../basic_single-fit_pd-neut-cwl_LBCO-HRPT.py | 146 +- .../cryst-struct_pd-neut-cwl_CoSiO4-D20.ipynb | 6 +- .../cryst-struct_pd-neut-cwl_CoSiO4-D20.py | 6 +- .../cryst-struct_pd-neut-cwl_HS-HRPT.ipynb | 41 +- tutorials/cryst-struct_pd-neut-cwl_HS-HRPT.py | 41 +- .../cryst-struct_pd-neut-tof_Si-SEPD.ipynb | 42 +- tutorials/cryst-struct_pd-neut-tof_Si-SEPD.py | 42 +- ...ruct_pd-neut-tof_multidata_NCAF-WISH.ipynb | 16 +- ...-struct_pd-neut-tof_multidata_NCAF-WISH.py | 16 +- ...d-neut-tof_multiphase-LBCO-Si_McStas.ipynb | 71 +- ...t_pd-neut-tof_multiphase-LBCO-Si_McStas.py | 71 +- ...ool-2025_analysis-powder-diffraction.ipynb | 294 +- ...school-2025_analysis-powder-diffraction.py | 294 +- tutorials/pdf_pd-neut-cwl_Ni.ipynb | 32 +- tutorials/pdf_pd-neut-cwl_Ni.py | 32 +- tutorials/pdf_pd-neut-tof_Si-NOMAD.ipynb | 30 +- tutorials/pdf_pd-neut-tof_Si-NOMAD.py | 30 +- tutorials/pdf_pd-xray_NaCl.ipynb | 37 +- tutorials/pdf_pd-xray_NaCl.py | 37 +- ...ick_single-fit_pd-neut-cwl_LBCO-HRPT.ipynb | 18 +- .../quick_single-fit_pd-neut-cwl_LBCO-HRPT.py | 18 +- 104 files changed, 14526 insertions(+), 39303 deletions(-) diff --git a/src/easydiffraction/__init__.py b/src/easydiffraction/__init__.py index 9887a6b6..bcf6d09c 100644 --- a/src/easydiffraction/__init__.py +++ b/src/easydiffraction/__init__.py @@ -25,17 +25,17 @@ # Expose the public API __all__ = [ - "Project", - "ProjectInfo", - "SampleModel", - "SampleModels", - "Experiment", - "Experiments", - "Analysis", - "Summary", - "chapter", - "section", - "paragraph", - "download_from_repository", - "get_value_from_xye_header" + 'Project', + 'ProjectInfo', + 'SampleModel', + 'SampleModels', + 'Experiment', + 'Experiments', + 'Analysis', + 'Summary', + 'chapter', + 'section', + 'paragraph', + 'download_from_repository', + 'get_value_from_xye_header', ] diff --git a/src/easydiffraction/analysis/analysis.py b/src/easydiffraction/analysis/analysis.py index fb6fe264..f0979d30 100644 --- a/src/easydiffraction/analysis/analysis.py +++ b/src/easydiffraction/analysis/analysis.py @@ -35,7 +35,10 @@ def __init__(self, project) -> None: self._fit_mode: str = 'single' self.fitter = DiffractionMinimizer('lmfit (leastsq)') - def _get_params_as_dataframe(self, params: List[Union[Descriptor, Parameter]]) -> pd.DataFrame: + def _get_params_as_dataframe( + self, + params: List[Union[Descriptor, Parameter]], + ) -> pd.DataFrame: """ Convert a list of parameters to a DataFrame. @@ -56,7 +59,7 @@ def _get_params_as_dataframe(self, params: List[Union[Descriptor, Parameter]]) - 'parameter': param.name, 'value': param.value, 'units': param.units, - 'fittable': False + 'fittable': False, } param_attrs = {} if isinstance(param, Parameter): @@ -65,8 +68,8 @@ def _get_params_as_dataframe(self, params: List[Union[Descriptor, Parameter]]) - 'free': param.free, 'min': param.min, 'max': param.max, - 'uncertainty': f"{param.uncertainty:.4f}" if param.uncertainty else "", - 'value': f"{param.value:.4f}", + 'uncertainty': f'{param.uncertainty:.4f}' if param.uncertainty else '', + 'value': f'{param.value:.4f}', 'units': param.units, } row = common_attrs | param_attrs @@ -80,82 +83,98 @@ def show_all_params(self) -> None: experiments_params = self.project.experiments.get_all_params() if not sample_models_params and not experiments_params: - print(warning("No parameters found.")) + print(warning('No parameters found.')) return - columns_headers = ['datablock', - 'category', - 'entry', - 'parameter', - 'value', - 'fittable'] - columns_alignment = ["left", - "left", - "left", - "left", - "right", - "left"] + columns_headers = [ + 'datablock', + 'category', + 'entry', + 'parameter', + 'value', + 'fittable', + ] + columns_alignment = [ + 'left', + 'left', + 'left', + 'left', + 'right', + 'left', + ] sample_models_dataframe = self._get_params_as_dataframe(sample_models_params) sample_models_dataframe = sample_models_dataframe[columns_headers] - print(paragraph("All parameters for all sample models (🧩 data blocks)")) - render_table(columns_headers=columns_headers, - columns_alignment=columns_alignment, - columns_data=sample_models_dataframe, - show_index=True) + print(paragraph('All parameters for all sample models (🧩 data blocks)')) + render_table( + columns_headers=columns_headers, + columns_alignment=columns_alignment, + columns_data=sample_models_dataframe, + show_index=True, + ) experiments_dataframe = self._get_params_as_dataframe(experiments_params) experiments_dataframe = experiments_dataframe[columns_headers] - print(paragraph("All parameters for all experiments (🔬 data blocks)")) - render_table(columns_headers=columns_headers, - columns_alignment=columns_alignment, - columns_data=experiments_dataframe, - show_index=True) + print(paragraph('All parameters for all experiments (🔬 data blocks)')) + render_table( + columns_headers=columns_headers, + columns_alignment=columns_alignment, + columns_data=experiments_dataframe, + show_index=True, + ) def show_fittable_params(self) -> None: sample_models_params = self.project.sample_models.get_fittable_params() experiments_params = self.project.experiments.get_fittable_params() if not sample_models_params and not experiments_params: - print(warning("No fittable parameters found.")) + print(warning('No fittable parameters found.')) return - columns_headers = ['datablock', - 'category', - 'entry', - 'parameter', - 'value', - 'uncertainty', - 'units', - 'free'] - columns_alignment = ["left", - "left", - "left", - "left", - "right", - "right", - "left", - "left"] + columns_headers = [ + 'datablock', + 'category', + 'entry', + 'parameter', + 'value', + 'uncertainty', + 'units', + 'free', + ] + columns_alignment = [ + 'left', + 'left', + 'left', + 'left', + 'right', + 'right', + 'left', + 'left', + ] sample_models_dataframe = self._get_params_as_dataframe(sample_models_params) sample_models_dataframe = sample_models_dataframe[columns_headers] - print(paragraph("Fittable parameters for all sample models (🧩 data blocks)")) - render_table(columns_headers=columns_headers, - columns_alignment=columns_alignment, - columns_data=sample_models_dataframe, - show_index=True) + print(paragraph('Fittable parameters for all sample models (🧩 data blocks)')) + render_table( + columns_headers=columns_headers, + columns_alignment=columns_alignment, + columns_data=sample_models_dataframe, + show_index=True, + ) experiments_dataframe = self._get_params_as_dataframe(experiments_params) experiments_dataframe = experiments_dataframe[columns_headers] - print(paragraph("Fittable parameters for all experiments (🔬 data blocks)")) - render_table(columns_headers=columns_headers, - columns_alignment=columns_alignment, - columns_data=experiments_dataframe, - show_index=True) + print(paragraph('Fittable parameters for all experiments (🔬 data blocks)')) + render_table( + columns_headers=columns_headers, + columns_alignment=columns_alignment, + columns_data=experiments_dataframe, + show_index=True, + ) def show_free_params(self) -> None: sample_models_params = self.project.sample_models.get_free_params() @@ -163,55 +182,66 @@ def show_free_params(self) -> None: free_params = sample_models_params + experiments_params if not free_params: - print(warning("No free parameters found.")) + print(warning('No free parameters found.')) return - columns_headers = ['datablock', - 'category', - 'entry', - 'parameter', - 'value', - 'uncertainty', - 'min', - 'max', - 'units'] - columns_alignment = ["left", - "left", - "left", - "left", - "right", - "right", - "right", - "right", - "left"] + columns_headers = [ + 'datablock', + 'category', + 'entry', + 'parameter', + 'value', + 'uncertainty', + 'min', + 'max', + 'units', + ] + columns_alignment = [ + 'left', + 'left', + 'left', + 'left', + 'right', + 'right', + 'right', + 'right', + 'left', + ] dataframe = self._get_params_as_dataframe(free_params) dataframe = dataframe[columns_headers] - print(paragraph("Free parameters for both sample models (🧩 data blocks) and experiments (🔬 data blocks)")) - render_table(columns_headers=columns_headers, - columns_alignment=columns_alignment, - columns_data=dataframe, - show_index=True) + print(paragraph('Free parameters for both sample models (🧩 data blocks) and experiments (🔬 data blocks)')) + render_table( + columns_headers=columns_headers, columns_alignment=columns_alignment, columns_data=dataframe, show_index=True + ) def how_to_access_parameters(self) -> None: sample_models_params = self.project.sample_models.get_all_params() experiments_params = self.project.experiments.get_all_params() - params = {'sample_models': sample_models_params, - 'experiments': experiments_params} + params = {'sample_models': sample_models_params, 'experiments': experiments_params} if not params: - print(warning("No parameters found.")) + print(warning('No parameters found.')) return - columns_headers = ['datablock', - 'category', - 'entry', - 'parameter', - 'How to Access in Python Code', - 'Unique Identifier for CIF Constraints'] + columns_headers = [ + 'datablock', + 'category', + 'entry', + 'parameter', + 'How to Access in Python Code', + 'Unique Identifier for CIF Constraints', + ] - columns_alignment = ['left', 'left', 'left', 'left', 'left', 'left'] + columns_alignment = [ + 'left', + 'left', + 'left', + 'left', + 'left', + 'left', + ] columns_data = [] project_varname = self.project._varname @@ -225,23 +255,17 @@ def how_to_access_parameters(self) -> None: code_variable = f"{project_varname}.{datablock_type}['{datablock_id}'].{category_key}" if entry_id: code_variable += f"['{entry_id}']" - code_variable += f".{param_key}" + code_variable += f'.{param_key}' cif_uid = param._generate_human_readable_unique_id() - columns_data.append([datablock_id, - category_key, - entry_id, - param_key, - code_variable, - cif_uid]) - - print(paragraph("How to access parameters")) - render_table(columns_headers=columns_headers, - columns_alignment=columns_alignment, - columns_data=columns_data, - show_index=True) + columns_data.append([datablock_id, category_key, entry_id, param_key, code_variable, cif_uid]) + + print(paragraph('How to access parameters')) + render_table( + columns_headers=columns_headers, columns_alignment=columns_alignment, columns_data=columns_data, show_index=True + ) def show_current_calculator(self) -> None: - print(paragraph("Current calculator")) + print(paragraph('Current calculator')) print(self.current_calculator) @staticmethod @@ -259,11 +283,11 @@ def current_calculator(self, calculator_name: str) -> None: return self.calculator = calculator self._calculator_key = calculator_name - print(paragraph("Current calculator changed to")) + print(paragraph('Current calculator changed to')) print(self.current_calculator) def show_current_minimizer(self) -> None: - print(paragraph("Current minimizer")) + print(paragraph('Current minimizer')) print(self.current_minimizer) @staticmethod @@ -277,7 +301,7 @@ def current_minimizer(self) -> Optional[str]: @current_minimizer.setter def current_minimizer(self, selection: str) -> None: self.fitter = DiffractionMinimizer(selection) - print(paragraph("Current minimizer changed to")) + print(paragraph('Current minimizer changed to')) print(self.current_minimizer) @property @@ -295,35 +319,34 @@ def fit_mode(self, strategy: str) -> None: self.joint_fit_experiments = JointFitExperiments() for id in self.project.experiments.ids: self.joint_fit_experiments.add(id, weight=0.5) - print(paragraph("Current fit mode changed to")) + print(paragraph('Current fit mode changed to')) print(self._fit_mode) def show_available_fit_modes(self) -> None: strategies = [ { - "Strategy": "single", - "Description": "Independent fitting of each experiment; no shared parameters"}, + 'Strategy': 'single', + 'Description': 'Independent fitting of each experiment; no shared parameters', + }, { - "Strategy": "joint", - "Description": "Simultaneous fitting of all experiments; some parameters are shared" + 'Strategy': 'joint', + 'Description': 'Simultaneous fitting of all experiments; some parameters are shared', }, ] - columns_headers = ["Strategy", "Description"] - columns_alignment = ["left", "left"] + columns_headers = ['Strategy', 'Description'] + columns_alignment = ['left', 'left'] columns_data = [] for item in strategies: - strategy = item["Strategy"] - description = item["Description"] + strategy = item['Strategy'] + description = item['Description'] columns_data.append([strategy, description]) - print(paragraph("Available fit modes")) - render_table(columns_headers=columns_headers, - columns_alignment=columns_alignment, - columns_data=columns_data) + print(paragraph('Available fit modes')) + render_table(columns_headers=columns_headers, columns_alignment=columns_alignment, columns_data=columns_data) def show_current_fit_mode(self) -> None: - print(paragraph("Current fit mode")) + print(paragraph('Current fit mode')) print(self.fit_mode) def calculate_pattern(self, expt_name: str) -> Optional[np.ndarray]: @@ -345,7 +368,7 @@ def show_constraints(self) -> None: constraints_dict = self.constraints._items if not self.constraints._items: - print(warning("No constraints defined.")) + print(warning('No constraints defined.')) return rows = [] @@ -353,7 +376,7 @@ def show_constraints(self) -> None: row = { 'lhs_alias': constraint.lhs_alias.value, 'rhs_expr': constraint.rhs_expr.value, - 'full expression': f'{constraint.lhs_alias.value} = {constraint.rhs_expr.value}' + 'full expression': f'{constraint.lhs_alias.value} = {constraint.rhs_expr.value}', } rows.append(row) @@ -361,14 +384,12 @@ def show_constraints(self) -> None: alignments = ['left', 'left', 'left'] rows = [[row[header] for header in headers] for row in rows] - print(paragraph("User defined constraints")) - render_table(columns_headers=headers, - columns_alignment=alignments, - columns_data=rows) + print(paragraph('User defined constraints')) + render_table(columns_headers=headers, columns_alignment=alignments, columns_data=rows) def apply_constraints(self): if not self.constraints._items: - print(warning("No constraints defined.")) + print(warning('No constraints defined.')) return self.constraints_handler.set_aliases(self.aliases) @@ -378,17 +399,17 @@ def apply_constraints(self): def fit(self): sample_models = self.project.sample_models if not sample_models: - print("No sample models found in the project. Cannot run fit.") + print('No sample models found in the project. Cannot run fit.') return experiments = self.project.experiments if not experiments: - print("No experiments found in the project. Cannot run fit.") + print('No experiments found in the project. Cannot run fit.') return calculator = self.calculator if not calculator: - print("No calculator is set. Cannot run fit.") + print('No calculator is set. Cannot run fit.') return # Run the fitting process @@ -396,44 +417,39 @@ def fit(self): if self.fit_mode == 'joint': print(paragraph(f"Using all experiments 🔬 {experiment_ids} for '{self.fit_mode}' fitting")) - self.fitter.fit(sample_models, - experiments, - calculator, - weights=self.joint_fit_experiments) + self.fitter.fit(sample_models, experiments, calculator, weights=self.joint_fit_experiments) elif self.fit_mode == 'single': for expt_name in experiments.ids: print(paragraph(f"Using experiment 🔬 '{expt_name}' for '{self.fit_mode}' fitting")) experiment = experiments[expt_name] dummy_experiments = Experiments() # TODO: Find a better name dummy_experiments.add(experiment) - self.fitter.fit(sample_models, - dummy_experiments, - calculator) + self.fitter.fit(sample_models, dummy_experiments, calculator) else: - raise NotImplementedError(f"Fit mode {self.fit_mode} not implemented yet.") + raise NotImplementedError(f'Fit mode {self.fit_mode} not implemented yet.') # After fitting, get the results self.fit_results = self.fitter.results def as_cif(self): current_minimizer = self.current_minimizer - if " " in current_minimizer: + if ' ' in current_minimizer: current_minimizer = f'"{current_minimizer}"' lines = [] - lines.append(f"_analysis.calculator_engine {self.current_calculator}") - lines.append(f"_analysis.fitting_engine {current_minimizer}") - lines.append(f"_analysis.fit_mode {self.fit_mode}") + lines.append(f'_analysis.calculator_engine {self.current_calculator}') + lines.append(f'_analysis.fitting_engine {current_minimizer}') + lines.append(f'_analysis.fit_mode {self.fit_mode}') - lines.append("") + lines.append('') lines.append(self.aliases.as_cif()) - lines.append("") + lines.append('') lines.append(self.constraints.as_cif()) - return "\n".join(lines) + return '\n'.join(lines) def show_as_cif(self) -> None: cif_text: str = self.as_cif() - paragraph_title: str = paragraph("Analysis 🧮 info as cif") + paragraph_title: str = paragraph('Analysis 🧮 info as cif') render_cif(cif_text, paragraph_title) diff --git a/src/easydiffraction/analysis/calculation.py b/src/easydiffraction/analysis/calculation.py index 215c6872..37477f6f 100644 --- a/src/easydiffraction/analysis/calculation.py +++ b/src/easydiffraction/analysis/calculation.py @@ -37,9 +37,11 @@ def set_calculator(self, engine: str) -> None: """ self._calculator = self.calculator_factory.create_calculator(engine) - def calculate_structure_factors(self, - sample_models: SampleModels, - experiments: Experiments) -> Optional[List[Any]]: + def calculate_structure_factors( + self, + sample_models: SampleModels, + experiments: Experiments, + ) -> Optional[List[Any]]: """ Calculate HKL intensities (structure factors) for sample models and experiments. @@ -52,9 +54,11 @@ def calculate_structure_factors(self, """ return self._calculator.calculate_structure_factors(sample_models, experiments) - def calculate_pattern(self, - sample_models: SampleModels, - experiment: Experiment) -> np.ndarray: + def calculate_pattern( + self, + sample_models: SampleModels, + experiment: Experiment, + ) -> np.ndarray: """ Calculate diffraction pattern based on sample models and experiment. diff --git a/src/easydiffraction/analysis/calculators/calculator_base.py b/src/easydiffraction/analysis/calculators/calculator_base.py index a0ce3e31..45d24f9d 100644 --- a/src/easydiffraction/analysis/calculators/calculator_base.py +++ b/src/easydiffraction/analysis/calculators/calculator_base.py @@ -28,9 +28,9 @@ def engine_imported(self) -> bool: @abstractmethod def calculate_structure_factors( - self, - sample_model: SampleModel, - experiment: Experiment + self, + sample_model: SampleModel, + experiment: Experiment, ) -> None: """ Calculate structure factors for a single sample model and experiment. @@ -38,10 +38,10 @@ def calculate_structure_factors( pass def calculate_pattern( - self, - sample_models: SampleModels, - experiment: Experiment, - called_by_minimizer: bool = False + self, + sample_models: SampleModels, + experiment: Experiment, + called_by_minimizer: bool = False, ) -> np.ndarray: """ Calculate the diffraction pattern for multiple sample models and a single experiment. @@ -76,7 +76,7 @@ def calculate_pattern( sample_model_y_calc = self._calculate_single_model_pattern( sample_model, experiment, - called_by_minimizer=called_by_minimizer + called_by_minimizer=called_by_minimizer, ) sample_model_y_calc_scaled = sample_model_scale * sample_model_y_calc @@ -96,10 +96,10 @@ def calculate_pattern( @abstractmethod def _calculate_single_model_pattern( - self, - sample_model: SampleModels, - experiment: Experiment, - called_by_minimizer: bool + self, + sample_model: SampleModels, + experiment: Experiment, + called_by_minimizer: bool, ) -> np.ndarray: """ Calculate the diffraction pattern for a single sample model and experiment. @@ -115,9 +115,9 @@ def _calculate_single_model_pattern( pass def _get_valid_linked_phases( - self, - sample_models: SampleModels, - experiment: Experiment + self, + sample_models: SampleModels, + experiment: Experiment, ) -> List[Any]: """ Get valid linked phases from the experiment. diff --git a/src/easydiffraction/analysis/calculators/calculator_crysfml.py b/src/easydiffraction/analysis/calculators/calculator_crysfml.py index 3a6d78fb..18abdb0e 100644 --- a/src/easydiffraction/analysis/calculators/calculator_crysfml.py +++ b/src/easydiffraction/analysis/calculators/calculator_crysfml.py @@ -14,6 +14,7 @@ try: from pycrysfml import cfml_py_utilities + print("✅ 'pycrysfml' calculation engine is successfully imported.") except ImportError: print("⚠️ 'pycrysfml' module not found. This calculation engine will not be available.") @@ -29,12 +30,12 @@ class CrysfmlCalculator(CalculatorBase): @property def name(self) -> str: - return "crysfml" + return 'crysfml' def calculate_structure_factors( - self, - sample_models: SampleModels, - experiments: Experiments + self, + sample_models: SampleModels, + experiments: Experiments, ) -> None: """ Call Crysfml to calculate structure factors. @@ -43,13 +44,13 @@ def calculate_structure_factors( sample_models: The sample models to calculate structure factors for. experiments: The experiments associated with the sample models. """ - raise NotImplementedError("HKL calculation is not implemented for CrysfmlCalculator.") + raise NotImplementedError('HKL calculation is not implemented for CrysfmlCalculator.') def _calculate_single_model_pattern( self, sample_model: SampleModels, experiment: Experiment, - called_by_minimizer: bool = False + called_by_minimizer: bool = False, ) -> Union[np.ndarray, List[float]]: """ Calculates the diffraction pattern using Crysfml for the given sample model and experiment. @@ -67,14 +68,14 @@ def _calculate_single_model_pattern( _, y = cfml_py_utilities.cw_powder_pattern_from_dict(crysfml_dict) y = self._adjust_pattern_length(y, len(experiment.datastore.pattern.x)) except KeyError: - print("[CrysfmlCalculator] Error: No calculated data") + print('[CrysfmlCalculator] Error: No calculated data') y = [] return y def _adjust_pattern_length( - self, - pattern: List[float], - target_length: int + self, + pattern: List[float], + target_length: int, ) -> List[float]: """ Adjusts the length of the pattern to match the target length. @@ -92,9 +93,9 @@ def _adjust_pattern_length( return pattern def _crysfml_dict( - self, - sample_model: SampleModels, - experiment: Experiment + self, + sample_model: SampleModels, + experiment: Experiment, ) -> Dict[str, Union[Experiment, SampleModel]]: """ Converts the sample model and experiment into a dictionary format for Crysfml. @@ -109,13 +110,13 @@ def _crysfml_dict( sample_model_dict = self._convert_sample_model_to_dict(sample_model) experiment_dict = self._convert_experiment_to_dict(experiment) return { - "phases": [sample_model_dict], - "experiments": [experiment_dict] + 'phases': [sample_model_dict], + 'experiments': [experiment_dict], } def _convert_sample_model_to_dict( - self, - sample_model: SampleModel + self, + sample_model: SampleModel, ) -> Dict[str, Any]: """ Converts a sample model into a dictionary format. @@ -128,35 +129,35 @@ def _convert_sample_model_to_dict( """ sample_model_dict = { sample_model.name: { - "_space_group_name_H-M_alt": sample_model.space_group.name_h_m.value, - "_cell_length_a": sample_model.cell.length_a.value, - "_cell_length_b": sample_model.cell.length_b.value, - "_cell_length_c": sample_model.cell.length_c.value, - "_cell_angle_alpha": sample_model.cell.angle_alpha.value, - "_cell_angle_beta": sample_model.cell.angle_beta.value, - "_cell_angle_gamma": sample_model.cell.angle_gamma.value, - "_atom_site": [] + '_space_group_name_H-M_alt': sample_model.space_group.name_h_m.value, + '_cell_length_a': sample_model.cell.length_a.value, + '_cell_length_b': sample_model.cell.length_b.value, + '_cell_length_c': sample_model.cell.length_c.value, + '_cell_angle_alpha': sample_model.cell.angle_alpha.value, + '_cell_angle_beta': sample_model.cell.angle_beta.value, + '_cell_angle_gamma': sample_model.cell.angle_gamma.value, + '_atom_site': [], } } for atom in sample_model.atom_sites: atom_site = { - "_label": atom.label.value, - "_type_symbol": atom.type_symbol.value, - "_fract_x": atom.fract_x.value, - "_fract_y": atom.fract_y.value, - "_fract_z": atom.fract_z.value, - "_occupancy": atom.occupancy.value, - "_adp_type": "Biso", # Assuming Biso for simplicity - "_B_iso_or_equiv": atom.b_iso.value + '_label': atom.label.value, + '_type_symbol': atom.type_symbol.value, + '_fract_x': atom.fract_x.value, + '_fract_y': atom.fract_y.value, + '_fract_z': atom.fract_z.value, + '_occupancy': atom.occupancy.value, + '_adp_type': 'Biso', # Assuming Biso for simplicity + '_B_iso_or_equiv': atom.b_iso.value, } - sample_model_dict[sample_model.name]["_atom_site"].append(atom_site) + sample_model_dict[sample_model.name]['_atom_site'].append(atom_site) return sample_model_dict def _convert_experiment_to_dict( - self, - experiment: Experiment + self, + experiment: Experiment, ) -> Dict[str, Any]: """ Converts an experiment into a dictionary format. @@ -167,29 +168,29 @@ def _convert_experiment_to_dict( Returns: A dictionary representation of the experiment. """ - expt_type = getattr(experiment, "type", None) - instrument = getattr(experiment, "instrument", None) - peak = getattr(experiment, "peak", None) + expt_type = getattr(experiment, 'type', None) + instrument = getattr(experiment, 'instrument', None) + peak = getattr(experiment, 'peak', None) x_data = experiment.datastore.pattern.x twotheta_min = float(x_data.min()) twotheta_max = float(x_data.max()) exp_dict = { - "NPD": { - "_diffrn_radiation_probe": expt_type.radiation_probe.value if expt_type else "neutron", - "_diffrn_radiation_wavelength": instrument.setup_wavelength.value if instrument else 1.0, - "_pd_instr_resolution_u": peak.broad_gauss_u.value if peak else 0.0, - "_pd_instr_resolution_v": peak.broad_gauss_v.value if peak else 0.0, - "_pd_instr_resolution_w": peak.broad_gauss_w.value if peak else 0.0, - "_pd_instr_resolution_x": peak.broad_lorentz_x.value if peak else 0.0, - "_pd_instr_resolution_y": peak.broad_lorentz_y.value if peak else 0.0, - #"_pd_instr_reflex_s_l": peak_asymm.s_l.value if peak_asymm else 0.0, - #"_pd_instr_reflex_d_l": peak_asymm.d_l.value if peak_asymm else 0.0, - "_pd_meas_2theta_offset": instrument.calib_twotheta_offset.value if instrument else 0.0, - "_pd_meas_2theta_range_min": twotheta_min, - "_pd_meas_2theta_range_max": twotheta_max, - "_pd_meas_2theta_range_inc": (twotheta_max - twotheta_min) / len(x_data) + 'NPD': { + '_diffrn_radiation_probe': expt_type.radiation_probe.value if expt_type else 'neutron', + '_diffrn_radiation_wavelength': instrument.setup_wavelength.value if instrument else 1.0, + '_pd_instr_resolution_u': peak.broad_gauss_u.value if peak else 0.0, + '_pd_instr_resolution_v': peak.broad_gauss_v.value if peak else 0.0, + '_pd_instr_resolution_w': peak.broad_gauss_w.value if peak else 0.0, + '_pd_instr_resolution_x': peak.broad_lorentz_x.value if peak else 0.0, + '_pd_instr_resolution_y': peak.broad_lorentz_y.value if peak else 0.0, + # "_pd_instr_reflex_s_l": peak_asymm.s_l.value if peak_asymm else 0.0, + # "_pd_instr_reflex_d_l": peak_asymm.d_l.value if peak_asymm else 0.0, + '_pd_meas_2theta_offset': instrument.calib_twotheta_offset.value if instrument else 0.0, + '_pd_meas_2theta_range_min': twotheta_min, + '_pd_meas_2theta_range_max': twotheta_max, + '_pd_meas_2theta_range_inc': (twotheta_max - twotheta_min) / len(x_data), } } diff --git a/src/easydiffraction/analysis/calculators/calculator_cryspy.py b/src/easydiffraction/analysis/calculators/calculator_cryspy.py index b55969fe..ea8e15f9 100644 --- a/src/easydiffraction/analysis/calculators/calculator_cryspy.py +++ b/src/easydiffraction/analysis/calculators/calculator_cryspy.py @@ -17,6 +17,7 @@ import cryspy from cryspy.H_functions_global.function_1_cryspy_objects import str_to_globaln from cryspy.procedure_rhochi.rhochi_by_dictionary import rhochi_calc_chi_sq_by_dictionary + print("✅ 'cryspy' calculation engine is successfully imported.") except ImportError: print("⚠️ 'cryspy' module not found. This calculation engine will not be available.") @@ -33,16 +34,16 @@ class CryspyCalculator(CalculatorBase): @property def name(self) -> str: - return "cryspy" + return 'cryspy' def __init__(self) -> None: super().__init__() self._cryspy_dicts: Dict[str, Dict[str, Any]] = {} def calculate_structure_factors( - self, - sample_model: SampleModel, - experiment: Experiment + self, + sample_model: SampleModel, + experiment: Experiment, ) -> None: """ Raises a NotImplementedError as HKL calculation is not implemented. @@ -51,13 +52,13 @@ def calculate_structure_factors( sample_model: The sample model to calculate structure factors for. experiment: The experiment associated with the sample models. """ - raise NotImplementedError("HKL calculation is not implemented for CryspyCalculator.") + raise NotImplementedError('HKL calculation is not implemented for CryspyCalculator.') def _calculate_single_model_pattern( self, sample_model: SampleModel, experiment: Experiment, - called_by_minimizer: bool = False + called_by_minimizer: bool = False, ) -> Union[np.ndarray, List[float]]: """ Calculates the diffraction pattern using Cryspy for the given sample model and experiment. @@ -75,7 +76,7 @@ def _calculate_single_model_pattern( Returns: The calculated diffraction pattern as a NumPy array or a list of floats. """ - combined_name = f"{sample_model.name}_{experiment.name}" + combined_name = f'{sample_model.name}_{experiment.name}' if called_by_minimizer: if self._cryspy_dicts and combined_name in self._cryspy_dicts: @@ -102,18 +103,15 @@ def _calculate_single_model_pattern( cryspy_dict, dict_in_out=cryspy_in_out_dict, flag_use_precalculated_data=False, - flag_calc_analytical_derivatives=False + flag_calc_analytical_derivatives=False, ) - prefixes = { - "constant wavelength": "pd", - "time-of-flight": "tof" - } + prefixes = {'constant wavelength': 'pd', 'time-of-flight': 'tof'} beam_mode = experiment.type.beam_mode.value if beam_mode in prefixes.keys(): - cryspy_block_name = f"{prefixes[beam_mode]}_{experiment.name}" + cryspy_block_name = f'{prefixes[beam_mode]}_{experiment.name}' else: - print(f"[CryspyCalculator] Error: Unknown beam mode {experiment.type.beam_mode.value}") + print(f'[CryspyCalculator] Error: Unknown beam mode {experiment.type.beam_mode.value}') return [] try: @@ -121,15 +119,15 @@ def _calculate_single_model_pattern( signal_minus = cryspy_in_out_dict[cryspy_block_name]['signal_minus'] y_calc = signal_plus + signal_minus except KeyError: - print(f"[CryspyCalculator] Error: No calculated data for {cryspy_block_name}") + print(f'[CryspyCalculator] Error: No calculated data for {cryspy_block_name}') return [] return y_calc def _recreate_cryspy_dict( - self, - sample_model: SampleModel, - experiment: Experiment + self, + sample_model: SampleModel, + experiment: Experiment, ) -> Dict[str, Any]: """ Recreates the Cryspy dictionary for the given sample model and experiment. @@ -141,7 +139,7 @@ def _recreate_cryspy_dict( Returns: The updated Cryspy dictionary. """ - combined_name = f"{sample_model.name}_{experiment.name}" + combined_name = f'{sample_model.name}_{experiment.name}' cryspy_dict = copy.deepcopy(self._cryspy_dicts[combined_name]) cryspy_model_id = f'crystal_{sample_model.name}' @@ -213,9 +211,9 @@ def _recreate_cryspy_dict( return cryspy_dict def _recreate_cryspy_obj( - self, - sample_model: SampleModel, - experiment: Experiment + self, + sample_model: SampleModel, + experiment: Experiment, ) -> Any: """ Recreates the Cryspy object for the given sample model and experiment. @@ -236,7 +234,8 @@ def _recreate_cryspy_obj( # Add single experiment to cryspy_obj cryspy_experiment_cif = self._convert_experiment_to_cryspy_cif( experiment, - linked_phase=sample_model) + linked_phase=sample_model, + ) cryspy_experiment_obj = str_to_globaln(cryspy_experiment_cif) cryspy_obj.add_items(cryspy_experiment_obj.items) @@ -244,8 +243,8 @@ def _recreate_cryspy_obj( return cryspy_obj def _convert_sample_model_to_cryspy_cif( - self, - sample_model: SampleModel + self, + sample_model: SampleModel, ) -> str: """ Converts a sample model to a Cryspy CIF string. @@ -259,9 +258,9 @@ def _convert_sample_model_to_cryspy_cif( return sample_model.as_cif() def _convert_experiment_to_cryspy_cif( - self, - experiment: Experiment, - linked_phase: Any + self, + experiment: Experiment, + linked_phase: Any, ) -> str: """ Converts an experiment to a Cryspy CIF string. @@ -273,107 +272,107 @@ def _convert_experiment_to_cryspy_cif( Returns: The Cryspy CIF string representation of the experiment. """ - expt_type = getattr(experiment, "type", None) - instrument = getattr(experiment, "instrument", None) - peak = getattr(experiment, "peak", None) + expt_type = getattr(experiment, 'type', None) + instrument = getattr(experiment, 'instrument', None) + peak = getattr(experiment, 'peak', None) - cif_lines = [f"data_{experiment.name}"] + cif_lines = [f'data_{experiment.name}'] if expt_type is not None: - cif_lines.append("") + cif_lines.append('') radiation_probe = expt_type.radiation_probe.value - radiation_probe = radiation_probe.replace("neutron", "neutrons") - radiation_probe = radiation_probe.replace("xray", "X-rays") - cif_lines.append(f"_setup_radiation {radiation_probe}") + radiation_probe = radiation_probe.replace('neutron', 'neutrons') + radiation_probe = radiation_probe.replace('xray', 'X-rays') + cif_lines.append(f'_setup_radiation {radiation_probe}') if instrument: instrument_mapping = { - "setup_wavelength": "_setup_wavelength", - "calib_twotheta_offset": "_setup_offset_2theta", - "setup_twotheta_bank": "_tof_parameters_2theta_bank", - "calib_d_to_tof_offset": "_tof_parameters_Zero", - "calib_d_to_tof_linear": "_tof_parameters_Dtt1", - "calib_d_to_tof_quad": "_tof_parameters_dtt2", + 'setup_wavelength': '_setup_wavelength', + 'calib_twotheta_offset': '_setup_offset_2theta', + 'setup_twotheta_bank': '_tof_parameters_2theta_bank', + 'calib_d_to_tof_offset': '_tof_parameters_Zero', + 'calib_d_to_tof_linear': '_tof_parameters_Dtt1', + 'calib_d_to_tof_quad': '_tof_parameters_dtt2', } - cif_lines.append("") + cif_lines.append('') for local_attr_name, engine_key_name in instrument_mapping.items(): if hasattr(instrument, local_attr_name): attr_value = getattr(instrument, local_attr_name).value - cif_lines.append(f"{engine_key_name} {attr_value}") + cif_lines.append(f'{engine_key_name} {attr_value}') if peak: peak_mapping = { - "broad_gauss_u": "_pd_instr_resolution_U", - "broad_gauss_v": "_pd_instr_resolution_V", - "broad_gauss_w": "_pd_instr_resolution_W", - "broad_lorentz_x": "_pd_instr_resolution_X", - "broad_lorentz_y": "_pd_instr_resolution_Y", - "broad_gauss_sigma_0": "_tof_profile_sigma0", - "broad_gauss_sigma_1": "_tof_profile_sigma1", - "broad_gauss_sigma_2": "_tof_profile_sigma2", - "broad_mix_beta_0": "_tof_profile_beta0", - "broad_mix_beta_1": "_tof_profile_beta1", - "asym_alpha_0": "_tof_profile_alpha0", - "asym_alpha_1": "_tof_profile_alpha1", + 'broad_gauss_u': '_pd_instr_resolution_U', + 'broad_gauss_v': '_pd_instr_resolution_V', + 'broad_gauss_w': '_pd_instr_resolution_W', + 'broad_lorentz_x': '_pd_instr_resolution_X', + 'broad_lorentz_y': '_pd_instr_resolution_Y', + 'broad_gauss_sigma_0': '_tof_profile_sigma0', + 'broad_gauss_sigma_1': '_tof_profile_sigma1', + 'broad_gauss_sigma_2': '_tof_profile_sigma2', + 'broad_mix_beta_0': '_tof_profile_beta0', + 'broad_mix_beta_1': '_tof_profile_beta1', + 'asym_alpha_0': '_tof_profile_alpha0', + 'asym_alpha_1': '_tof_profile_alpha1', } - cif_lines.append("") - if expt_type.beam_mode.value == "time-of-flight": - cif_lines.append("_tof_profile_peak_shape Gauss") + cif_lines.append('') + if expt_type.beam_mode.value == 'time-of-flight': + cif_lines.append('_tof_profile_peak_shape Gauss') for local_attr_name, engine_key_name in peak_mapping.items(): if hasattr(peak, local_attr_name): attr_value = getattr(peak, local_attr_name).value - cif_lines.append(f"{engine_key_name} {attr_value}") + cif_lines.append(f'{engine_key_name} {attr_value}') x_data = experiment.datastore.pattern.x twotheta_min = float(x_data.min()) twotheta_max = float(x_data.max()) - cif_lines.append("") - if expt_type.beam_mode.value == "constant wavelength": - cif_lines.append(f"_range_2theta_min {twotheta_min}") - cif_lines.append(f"_range_2theta_max {twotheta_max}") - elif expt_type.beam_mode.value == "time-of-flight": - cif_lines.append(f"_range_time_min {twotheta_min}") - cif_lines.append(f"_range_time_max {twotheta_max}") - - cif_lines.append("") - cif_lines.append("loop_") - cif_lines.append("_phase_label") - cif_lines.append("_phase_scale") - cif_lines.append(f"{linked_phase.name} 1.0") - - if expt_type.beam_mode.value == "constant wavelength": - cif_lines.append("") - cif_lines.append("loop_") - cif_lines.append("_pd_background_2theta") - cif_lines.append("_pd_background_intensity") - cif_lines.append(f"{twotheta_min} 0.0") - cif_lines.append(f"{twotheta_max} 0.0") - elif expt_type.beam_mode.value == "time-of-flight": - cif_lines.append("") - cif_lines.append("loop_") - cif_lines.append("_tof_backgroundpoint_time") - cif_lines.append("_tof_backgroundpoint_intensity") - cif_lines.append(f"{twotheta_min} 0.0") - cif_lines.append(f"{twotheta_max} 0.0") - - if expt_type.beam_mode.value == "constant wavelength": - cif_lines.append("") - cif_lines.append("loop_") - cif_lines.append("_pd_meas_2theta") - cif_lines.append("_pd_meas_intensity") - cif_lines.append("_pd_meas_intensity_sigma") - elif expt_type.beam_mode.value == "time-of-flight": - cif_lines.append("") - cif_lines.append("loop_") - cif_lines.append("_tof_meas_time") - cif_lines.append("_tof_meas_intensity") - cif_lines.append("_tof_meas_intensity_sigma") + cif_lines.append('') + if expt_type.beam_mode.value == 'constant wavelength': + cif_lines.append(f'_range_2theta_min {twotheta_min}') + cif_lines.append(f'_range_2theta_max {twotheta_max}') + elif expt_type.beam_mode.value == 'time-of-flight': + cif_lines.append(f'_range_time_min {twotheta_min}') + cif_lines.append(f'_range_time_max {twotheta_max}') + + cif_lines.append('') + cif_lines.append('loop_') + cif_lines.append('_phase_label') + cif_lines.append('_phase_scale') + cif_lines.append(f'{linked_phase.name} 1.0') + + if expt_type.beam_mode.value == 'constant wavelength': + cif_lines.append('') + cif_lines.append('loop_') + cif_lines.append('_pd_background_2theta') + cif_lines.append('_pd_background_intensity') + cif_lines.append(f'{twotheta_min} 0.0') + cif_lines.append(f'{twotheta_max} 0.0') + elif expt_type.beam_mode.value == 'time-of-flight': + cif_lines.append('') + cif_lines.append('loop_') + cif_lines.append('_tof_backgroundpoint_time') + cif_lines.append('_tof_backgroundpoint_intensity') + cif_lines.append(f'{twotheta_min} 0.0') + cif_lines.append(f'{twotheta_max} 0.0') + + if expt_type.beam_mode.value == 'constant wavelength': + cif_lines.append('') + cif_lines.append('loop_') + cif_lines.append('_pd_meas_2theta') + cif_lines.append('_pd_meas_intensity') + cif_lines.append('_pd_meas_intensity_sigma') + elif expt_type.beam_mode.value == 'time-of-flight': + cif_lines.append('') + cif_lines.append('loop_') + cif_lines.append('_tof_meas_time') + cif_lines.append('_tof_meas_intensity') + cif_lines.append('_tof_meas_intensity_sigma') y_data = experiment.datastore.pattern.meas sy_data = experiment.datastore.pattern.meas_su for x_val, y_val, sy_val in zip(x_data, y_data, sy_data): - cif_lines.append(f" {x_val:.5f} {y_val:.5f} {sy_val:.5f}") + cif_lines.append(f' {x_val:.5f} {y_val:.5f} {sy_val:.5f}') - cryspy_experiment_cif = "\n".join(cif_lines) + cryspy_experiment_cif = '\n'.join(cif_lines) return cryspy_experiment_cif diff --git a/src/easydiffraction/analysis/calculators/calculator_factory.py b/src/easydiffraction/analysis/calculators/calculator_factory.py index 7f10d3a5..5907dc43 100644 --- a/src/easydiffraction/analysis/calculators/calculator_factory.py +++ b/src/easydiffraction/analysis/calculators/calculator_factory.py @@ -19,16 +19,16 @@ class CalculatorFactory: _potential_calculators: Dict[str, Dict[str, Union[str, Type[CalculatorBase]]]] = { 'crysfml': { 'description': 'CrysFML library for crystallographic calculations', - 'class': CrysfmlCalculator + 'class': CrysfmlCalculator, }, 'cryspy': { 'description': 'CrysPy library for crystallographic calculations', - 'class': CryspyCalculator + 'class': CryspyCalculator, }, 'pdffit': { 'description': 'PDFfit2 library for pair distribution function calculations', 'class': PdffitCalculator, - } + }, } @classmethod @@ -45,23 +45,22 @@ def list_supported_calculators(cls) -> List[str]: @classmethod def show_supported_calculators(cls) -> None: - columns_headers: List[str] = ["Calculator", "Description"] - columns_alignment = ["left", "left"] + columns_headers: List[str] = ['Calculator', 'Description'] + columns_alignment = ['left', 'left'] columns_data: List[List[str]] = [] for name, config in cls._supported_calculators().items(): description: str = config.get('description', 'No description provided.') columns_data.append([name, description]) - print(paragraph("Supported calculators")) - render_table(columns_headers=columns_headers, - columns_alignment=columns_alignment, - columns_data=columns_data) + print(paragraph('Supported calculators')) + render_table( + columns_headers=columns_headers, + columns_alignment=columns_alignment, + columns_data=columns_data, + ) @classmethod - def create_calculator( - cls, - calculator_name: str - ) -> Optional[CalculatorBase]: + def create_calculator(cls, calculator_name: str) -> Optional[CalculatorBase]: config = cls._supported_calculators().get(calculator_name) if not config: print(error(f"Unknown calculator '{calculator_name}'")) @@ -72,27 +71,27 @@ def create_calculator( @classmethod def register_calculator( - cls, - calculator_type: str, - calculator_cls: Type[CalculatorBase], - description: str = 'No description provided.' + cls, + calculator_type: str, + calculator_cls: Type[CalculatorBase], + description: str = 'No description provided.', ) -> None: cls._potential_calculators[calculator_type] = { 'class': calculator_cls, - 'description': description + 'description': description, } @classmethod def register_minimizer( - cls, - name: str, - minimizer_cls: Type[Any], - method: Optional[str] = None, - description: str = 'No description provided.' + cls, + name: str, + minimizer_cls: Type[Any], + method: Optional[str] = None, + description: str = 'No description provided.', ) -> None: cls._available_minimizers[name] = { 'engine': name, 'method': method, 'description': description, - 'class': minimizer_cls + 'class': minimizer_cls, } diff --git a/src/easydiffraction/analysis/calculators/calculator_pdffit.py b/src/easydiffraction/analysis/calculators/calculator_pdffit.py index 112849a0..0b8ea342 100644 --- a/src/easydiffraction/analysis/calculators/calculator_pdffit.py +++ b/src/easydiffraction/analysis/calculators/calculator_pdffit.py @@ -12,7 +12,8 @@ from diffpy.pdffit2 import PdfFit as pdffit from diffpy.pdffit2 import redirect_stdout from diffpy.structure.parsers.p_cif import P_cif as pdffit_cif_parser - redirect_stdout(open(os.path.devnull, 'w')) # silence the C++ engine output + + redirect_stdout(open(os.path.devnull, 'w')) # silence the C++ engine output print("✅ 'pdffit' calculation engine is successfully imported.") except ImportError: print("⚠️ 'pdffit' module not found. This calculation engine will not be available.") @@ -28,18 +29,19 @@ class PdffitCalculator(CalculatorBase): @property def name(self): - return "pdffit" + return 'pdffit' def calculate_structure_factors(self, sample_models, experiments): # PDF doesn't compute HKL but we keep interface consistent - print("[pdffit] Calculating HKLs (not applicable)...") + print('[pdffit] Calculating HKLs (not applicable)...') return [] - def _calculate_single_model_pattern(self, - sample_model: SampleModel, - experiment: Experiment, - called_by_minimizer: bool = False): - + def _calculate_single_model_pattern( + self, + sample_model: SampleModel, + experiment: Experiment, + called_by_minimizer: bool = False, + ): # Create PDF calculator object calculator = pdffit() @@ -53,8 +55,8 @@ def _calculate_single_model_pattern(self, # convert to version 1 of CIF format # this means: replace all dots with underscores for # cases where the dot is surrounded by letters on both sides. - pattern = r"(?<=[a-zA-Z])\.(?=[a-zA-Z])" - cif_string_v1 = re.sub(pattern, "_", cif_string_v2) + pattern = r'(?<=[a-zA-Z])\.(?=[a-zA-Z])' + cif_string_v1 = re.sub(pattern, '_', cif_string_v2) # Create the PDFit structure structure = pdffit_cif_parser().parse(cif_string_v1) @@ -79,11 +81,13 @@ def _calculate_single_model_pattern(self, y_noise = list(np.zeros_like(pattern.x)) # Assign the data to the PDFfit calculator - calculator.read_data_lists(stype=experiment.type.radiation_probe.value[0].upper(), - qmax=experiment.peak.cutoff_q.value, - qdamp=experiment.peak.damp_q.value, - r_data=x, - Gr_data=y_noise) + calculator.read_data_lists( + stype=experiment.type.radiation_probe.value[0].upper(), + qmax=experiment.peak.cutoff_q.value, + qdamp=experiment.peak.damp_q.value, + r_data=x, + Gr_data=y_noise, + ) # qbroad must be set after read_data_lists calculator.setvar('qbroad', experiment.peak.broad_q.value) diff --git a/src/easydiffraction/analysis/collections/aliases.py b/src/easydiffraction/analysis/collections/aliases.py index bedac803..3d3b2ce3 100644 --- a/src/easydiffraction/analysis/collections/aliases.py +++ b/src/easydiffraction/analysis/collections/aliases.py @@ -8,26 +8,24 @@ class Alias(Component): @property def category_key(self) -> str: - return "alias" + return 'alias' @property def cif_category_key(self) -> str: - return "alias" + return 'alias' - def __init__(self, - label: str, - param_uid: str) -> None: + def __init__(self, label: str, param_uid: str) -> None: super().__init__() self.label: Descriptor = Descriptor( value=label, - name="label", - cif_name="label" + name='label', + cif_name='label', ) self.param_uid: Descriptor = Descriptor( value=param_uid, - name="param_uid", - cif_name="param_uid" + name='param_uid', + cif_name='param_uid', ) # Select which of the input parameters is used for the @@ -42,9 +40,8 @@ def __init__(self, class Aliases(Collection): @property def _type(self) -> str: - return "category" # datablock or category + return 'category' # datablock or category @property def _child_class(self) -> Type[Alias]: return Alias - diff --git a/src/easydiffraction/analysis/collections/constraints.py b/src/easydiffraction/analysis/collections/constraints.py index 30d1158c..ca3f4118 100644 --- a/src/easydiffraction/analysis/collections/constraints.py +++ b/src/easydiffraction/analysis/collections/constraints.py @@ -8,26 +8,24 @@ class Constraint(Component): @property def category_key(self) -> str: - return "constraint" + return 'constraint' @property def cif_category_key(self) -> str: - return "constraint" + return 'constraint' - def __init__(self, - lhs_alias: str, - rhs_expr: str) -> None: + def __init__(self, lhs_alias: str, rhs_expr: str) -> None: super().__init__() self.lhs_alias: Descriptor = Descriptor( value=lhs_alias, - name="lhs_alias", - cif_name="lhs_alias" + name='lhs_alias', + cif_name='lhs_alias', ) self.rhs_expr: Descriptor = Descriptor( value=rhs_expr, - name="rhs_expr", - cif_name="rhs_expr" + name='rhs_expr', + cif_name='rhs_expr', ) # Select which of the input parameters is used for the @@ -42,7 +40,7 @@ def __init__(self, class Constraints(Collection): @property def _type(self) -> str: - return "category" # datablock or category + return 'category' # datablock or category @property def _child_class(self) -> Type[Constraint]: diff --git a/src/easydiffraction/analysis/collections/joint_fit_experiments.py b/src/easydiffraction/analysis/collections/joint_fit_experiments.py index 41592cf2..11627f22 100644 --- a/src/easydiffraction/analysis/collections/joint_fit_experiments.py +++ b/src/easydiffraction/analysis/collections/joint_fit_experiments.py @@ -8,26 +8,24 @@ class JointFitExperiment(Component): @property def category_key(self) -> str: - return "joint_fit_experiment" + return 'joint_fit_experiment' @property def cif_category_key(self) -> str: - return "joint_fit_experiment" + return 'joint_fit_experiment' - def __init__(self, - id: str, - weight: float) -> None: + def __init__(self, id: str, weight: float) -> None: super().__init__() self.id: Descriptor = Descriptor( value=id, - name="id", - cif_name="id" + name='id', + cif_name='id', ) self.weight: Descriptor = Descriptor( value=weight, - name="weight", - cif_name="weight" + name='weight', + cif_name='weight', ) # Select which of the input parameters is used for the @@ -44,9 +42,10 @@ class JointFitExperiments(Collection): Collection manager for experiments that are fitted together in a `joint` fit. """ + @property def _type(self) -> str: - return "category" # datablock or category + return 'category' # datablock or category @property def _child_class(self) -> Type[JointFitExperiment]: diff --git a/src/easydiffraction/analysis/minimization.py b/src/easydiffraction/analysis/minimization.py index 5c16e723..116414d7 100644 --- a/src/easydiffraction/analysis/minimization.py +++ b/src/easydiffraction/analysis/minimization.py @@ -26,11 +26,13 @@ def __init__(self, selection: str = 'lmfit (leastsq)') -> None: self.minimizer = MinimizerFactory.create_minimizer(selection) self.results: Optional[FitResults] = None - def fit(self, - sample_models: SampleModels, - experiments: Experiments, - calculator: Any, - weights: Optional[np.array] = None) -> None: + def fit( + self, + sample_models: SampleModels, + experiments: Experiments, + calculator: Any, + weights: Optional[np.array] = None, + ) -> None: """ Run the fitting process. @@ -44,7 +46,7 @@ def fit(self, params = sample_models.get_free_params() + experiments.get_free_params() if not params: - print("⚠️ No parameters selected for fitting.") + print('⚠️ No parameters selected for fitting.') return None for param in params: @@ -52,13 +54,13 @@ def fit(self, def objective_function(engine_params: Dict[str, Any]) -> np.ndarray: return self._residual_function( - engine_params=engine_params, - parameters=params, - sample_models=sample_models, - experiments=experiments, - calculator=calculator, - weights=weights, - ) + engine_params=engine_params, + parameters=params, + sample_models=sample_models, + experiments=experiments, + calculator=calculator, + weights=weights, + ) # Perform fitting self.results = self.minimizer.fit(params, objective_function) @@ -66,10 +68,12 @@ def objective_function(engine_params: Dict[str, Any]) -> np.ndarray: # Post-fit processing self._process_fit_results(sample_models, experiments, calculator) - def _process_fit_results(self, - sample_models: SampleModels, - experiments: Experiments, - calculator: CalculatorBase) -> None: + def _process_fit_results( + self, + sample_models: SampleModels, + experiments: Experiments, + calculator: CalculatorBase, + ) -> None: """ Collect reliability inputs and display results after fitting. @@ -78,21 +82,29 @@ def _process_fit_results(self, experiments: Collection of experiments. calculator: The calculator used for pattern generation. """ - y_obs, y_calc, y_err = get_reliability_inputs(sample_models, experiments, calculator) + y_obs, y_calc, y_err = get_reliability_inputs( + sample_models, + experiments, + calculator, + ) # Placeholder for future f_obs / f_calc retrieval f_obs, f_calc = None, None if self.results: - self.results.display_results(y_obs=y_obs, - y_calc=y_calc, - y_err=y_err, - f_obs=f_obs, - f_calc=f_calc) - - def _collect_free_parameters(self, - sample_models: SampleModels, - experiments: Experiments) -> List[Parameter]: + self.results.display_results( + y_obs=y_obs, + y_calc=y_calc, + y_err=y_err, + f_obs=f_obs, + f_calc=f_calc, + ) + + def _collect_free_parameters( + self, + sample_models: SampleModels, + experiments: Experiments, + ) -> List[Parameter]: """ Collect free parameters from sample models and experiments. @@ -106,13 +118,15 @@ def _collect_free_parameters(self, free_params: List[Parameter] = sample_models.get_free_params() + experiments.get_free_params() return free_params - def _residual_function(self, - engine_params: Dict[str, Any], - parameters: List[Parameter], - sample_models: SampleModels, - experiments: Experiments, - calculator: CalculatorBase, - weights: Optional[np.array] = None) -> np.ndarray: + def _residual_function( + self, + engine_params: Dict[str, Any], + parameters: List[Parameter], + sample_models: SampleModels, + experiments: Experiments, + calculator: CalculatorBase, + weights: Optional[np.array] = None, + ) -> np.ndarray: """ Residual function computes the difference between measured and calculated patterns. It updates the parameter values according to the optimizer-provided engine_params. @@ -150,14 +164,15 @@ def _residual_function(self, residuals: List[float] = [] for (expt_id, experiment), weight in zip(experiments._items.items(), _weights): - # Calculate the difference between measured and calculated patterns - y_calc: np.ndarray = calculator.calculate_pattern(sample_models, - experiment, - called_by_minimizer=True) + y_calc: np.ndarray = calculator.calculate_pattern( + sample_models, + experiment, + called_by_minimizer=True, + ) y_meas: np.ndarray = experiment.datastore.pattern.meas y_meas_su: np.ndarray = experiment.datastore.pattern.meas_su - diff = ((y_meas - y_calc) / y_meas_su) + diff = (y_meas - y_calc) / y_meas_su # Residuals are squared before going into reduced chi-squared diff *= np.sqrt(weight) diff --git a/src/easydiffraction/analysis/minimizers/fitting_progress_tracker.py b/src/easydiffraction/analysis/minimizers/fitting_progress_tracker.py index 25d68faf..0e43be93 100644 --- a/src/easydiffraction/analysis/minimizers/fitting_progress_tracker.py +++ b/src/easydiffraction/analysis/minimizers/fitting_progress_tracker.py @@ -18,19 +18,21 @@ SIGNIFICANT_CHANGE_THRESHOLD = 0.01 # 1% threshold FIXED_WIDTH = 17 -DEFAULT_HEADERS = ["iteration", "χ²", "improvement [%]"] -DEFAULT_ALIGNMENTS = ["center", "center", "center"] +DEFAULT_HEADERS = ['iteration', 'χ²', 'improvement [%]'] +DEFAULT_ALIGNMENTS = ['center', 'center', 'center'] -def format_cell(cell: str, - width: int = FIXED_WIDTH, - align: str = "center") -> str: +def format_cell( + cell: str, + width: int = FIXED_WIDTH, + align: str = 'center', +) -> str: cell_str = str(cell) - if align == "center": + if align == 'center': return cell_str.center(width) - elif align == "left": + elif align == 'left': return cell_str.ljust(width) - elif align == "right": + elif align == 'right': return cell_str.rjust(width) else: return cell_str @@ -62,9 +64,11 @@ def reset(self) -> None: self._best_iteration = None self._fitting_time = None - def track(self, - residuals: np.ndarray, - parameters: List[float]) -> np.ndarray: + def track( + self, + residuals: np.ndarray, + parameters: List[float], + ) -> np.ndarray: """ Track chi-square progress during the optimization process. @@ -89,8 +93,8 @@ def track(self, row = [ str(self._iteration), - f"{reduced_chi2:.2f}", - "" + f'{reduced_chi2:.2f}', + '', ] # Improvement check @@ -99,8 +103,8 @@ def track(self, row = [ str(self._iteration), - f"{reduced_chi2:.2f}", - f"{change_percent:.1f}% ↓" + f'{reduced_chi2:.2f}', + f'{change_percent:.1f}% ↓', ] self._previous_chi2 = reduced_chi2 @@ -145,7 +149,7 @@ def stop_timer(self) -> None: def start_tracking(self, minimizer_name: str) -> None: print(f"🚀 Starting fit process with '{minimizer_name}'...") - print("📈 Goodness-of-fit (reduced χ²) change:") + print('📈 Goodness-of-fit (reduced χ²) change:') if is_notebook() and display is not None: # Reset the DataFrame rows @@ -155,23 +159,25 @@ def start_tracking(self, minimizer_name: str) -> None: self._display_handle = DisplayHandle() # Create placeholder for display - self._display_handle.display(HTML("")) + self._display_handle.display(HTML('')) # Show empty table with headers - render_table(columns_data=self._df_rows, - columns_alignment=DEFAULT_ALIGNMENTS, - columns_headers=DEFAULT_HEADERS, - display_handle=self._display_handle) + render_table( + columns_data=self._df_rows, + columns_alignment=DEFAULT_ALIGNMENTS, + columns_headers=DEFAULT_HEADERS, + display_handle=self._display_handle, + ) else: # Top border - print("╒" + "╤".join(["═" * FIXED_WIDTH for _ in DEFAULT_HEADERS]) + "╕") + print('╒' + '╤'.join(['═' * FIXED_WIDTH for _ in DEFAULT_HEADERS]) + '╕') # Header row (all centered) - header_row = "│" + "│".join([format_cell(h, align="center") for h in DEFAULT_HEADERS]) + "│" + header_row = '│' + '│'.join([format_cell(h, align='center') for h in DEFAULT_HEADERS]) + '│' print(header_row) # Separator - print("╞" + "╪".join(["═" * FIXED_WIDTH for _ in DEFAULT_HEADERS]) + "╡") + print('╞' + '╪'.join(['═' * FIXED_WIDTH for _ in DEFAULT_HEADERS]) + '╡') def add_tracking_info(self, row: List[str]) -> None: if is_notebook() and display is not None: @@ -179,16 +185,17 @@ def add_tracking_info(self, row: List[str]) -> None: self._df_rows.append(row) # Show fully updated table - render_table(columns_data=self._df_rows, - columns_alignment=DEFAULT_ALIGNMENTS, - columns_headers=DEFAULT_HEADERS, - display_handle=self._display_handle) + render_table( + columns_data=self._df_rows, + columns_alignment=DEFAULT_ALIGNMENTS, + columns_headers=DEFAULT_HEADERS, + display_handle=self._display_handle, + ) else: # Alignments for each column - formatted_row = "│" + "│".join([ - format_cell(cell, align=DEFAULT_ALIGNMENTS[i]) - for i, cell in enumerate(row) - ]) + "│" + formatted_row = ( + '│' + '│'.join([format_cell(cell, align=DEFAULT_ALIGNMENTS[i]) for i, cell in enumerate(row)]) + '│' + ) # Print the new row print(formatted_row) @@ -197,16 +204,16 @@ def finish_tracking(self) -> None: # Add last iteration as last row row: List[str] = [ str(self._last_iteration), - f"{self._last_chi2:.2f}" if self._last_chi2 is not None else "", - "" + f'{self._last_chi2:.2f}' if self._last_chi2 is not None else '', + '', ] self.add_tracking_info(row) # Bottom border for terminal only if not is_notebook() or display is None: # Bottom border for terminal only - print("╘" + "╧".join(["═" * FIXED_WIDTH for _ in range(len(row))]) + "╛") + print('╘' + '╧'.join(['═' * FIXED_WIDTH for _ in range(len(row))]) + '╛') # Print best result - print(f"🏆 Best goodness-of-fit (reduced χ²) is {self._best_chi2:.2f} at iteration {self._best_iteration}") - print("✅ Fitting complete.") + print(f'🏆 Best goodness-of-fit (reduced χ²) is {self._best_chi2:.2f} at iteration {self._best_iteration}') + print('✅ Fitting complete.') diff --git a/src/easydiffraction/analysis/minimizers/minimizer_base.py b/src/easydiffraction/analysis/minimizers/minimizer_base.py index daa59748..e88c4e32 100644 --- a/src/easydiffraction/analysis/minimizers/minimizer_base.py +++ b/src/easydiffraction/analysis/minimizers/minimizer_base.py @@ -19,17 +19,19 @@ class FitResults: - def __init__(self, - success: bool = False, - parameters: Optional[List[Any]] = None, - chi_square: Optional[float] = None, - reduced_chi_square: Optional[float] = None, - message: str = '', - iterations: int = 0, - engine_result: Optional[Any] = None, - starting_parameters: Optional[List[Any]] = None, - fitting_time: Optional[float] = None, - **kwargs: Any) -> None: + def __init__( + self, + success: bool = False, + parameters: Optional[List[Any]] = None, + chi_square: Optional[float] = None, + reduced_chi_square: Optional[float] = None, + message: str = '', + iterations: int = 0, + engine_result: Optional[Any] = None, + starting_parameters: Optional[List[Any]] = None, + fitting_time: Optional[float] = None, + **kwargs: Any, + ) -> None: self.success: bool = success self.parameters: List[Any] = parameters if parameters is not None else [] self.chi_square: Optional[float] = chi_square @@ -47,13 +49,15 @@ def __init__(self, for key, value in kwargs.items(): setattr(self, key, value) - def display_results(self, - y_obs: Optional[List[float]] = None, - y_calc: Optional[List[float]] = None, - y_err: Optional[List[float]] = None, - f_obs: Optional[List[float]] = None, - f_calc: Optional[List[float]] = None) -> None: - status_icon = "✅" if self.success else "❌" + def display_results( + self, + y_obs: Optional[List[float]] = None, + y_calc: Optional[List[float]] = None, + y_err: Optional[List[float]] = None, + f_obs: Optional[List[float]] = None, + f_calc: Optional[List[float]] = None, + ) -> None: + status_icon = '✅' if self.success else '❌' rf = rf2 = wr = br = None if y_obs is not None and y_calc is not None: rf = calculate_r_factor(y_obs, y_calc) * 100 @@ -63,38 +67,42 @@ def display_results(self, if f_obs is not None and f_calc is not None: br = calculate_rb_factor(f_obs, f_calc) * 100 - print(paragraph("Fit results")) - print(f"{status_icon} Success: {self.success}") - print(f"⏱️ Fitting time: {self.fitting_time:.2f} seconds") - print(f"📏 Goodness-of-fit (reduced χ²): {self.reduced_chi_square:.2f}") + print(paragraph('Fit results')) + print(f'{status_icon} Success: {self.success}') + print(f'⏱️ Fitting time: {self.fitting_time:.2f} seconds') + print(f'📏 Goodness-of-fit (reduced χ²): {self.reduced_chi_square:.2f}') if rf is not None: - print(f"📏 R-factor (Rf): {rf:.2f}%") + print(f'📏 R-factor (Rf): {rf:.2f}%') if rf2 is not None: - print(f"📏 R-factor squared (Rf²): {rf2:.2f}%") + print(f'📏 R-factor squared (Rf²): {rf2:.2f}%') if wr is not None: - print(f"📏 Weighted R-factor (wR): {wr:.2f}%") + print(f'📏 Weighted R-factor (wR): {wr:.2f}%') if br is not None: - print(f"📏 Bragg R-factor (BR): {br:.2f}%") - print("📈 Fitted parameters:") - - headers = ["datablock", - "category", - "entry", - "parameter", - "start", - "fitted", - "uncertainty", - "units", - "change"] - alignments = ["left", - "left", - "left", - "left", - "right", - "right", - "right", - "left", - "right"] + print(f'📏 Bragg R-factor (BR): {br:.2f}%') + print('📈 Fitted parameters:') + + headers = [ + 'datablock', + 'category', + 'entry', + 'parameter', + 'start', + 'fitted', + 'uncertainty', + 'units', + 'change', + ] + alignments = [ + 'left', + 'left', + 'left', + 'left', + 'right', + 'right', + 'right', + 'left', + 'right', + ] rows = [] for param in self.parameters: @@ -102,32 +110,28 @@ def display_results(self, category_key = getattr(param, 'category_key', 'N/A') collection_entry_id = getattr(param, 'collection_entry_id', 'N/A') name = getattr(param, 'name', 'N/A') - start = f"{getattr(param, 'start_value', 'N/A'):.4f}" if param.start_value is not None else "N/A" - fitted = f"{param.value:.4f}" if param.value is not None else "N/A" - uncertainty = f"{param.uncertainty:.4f}" if param.uncertainty is not None else "N/A" + start = f'{getattr(param, "start_value", "N/A"):.4f}' if param.start_value is not None else 'N/A' + fitted = f'{param.value:.4f}' if param.value is not None else 'N/A' + uncertainty = f'{param.uncertainty:.4f}' if param.uncertainty is not None else 'N/A' units = getattr(param, 'units', 'N/A') if param.start_value and param.value: change = ((param.value - param.start_value) / param.start_value) * 100 - arrow = "↑" if change > 0 else "↓" - relative_change = f"{abs(change):.2f} % {arrow}" + arrow = '↑' if change > 0 else '↓' + relative_change = f'{abs(change):.2f} % {arrow}' else: - relative_change = "N/A" + relative_change = 'N/A' - rows.append([datablock_id, - category_key, - collection_entry_id, - name, - start, - fitted, - uncertainty, - units, - relative_change]) + rows.append( + [datablock_id, category_key, collection_entry_id, name, start, fitted, uncertainty, units, relative_change] + ) - render_table(columns_headers=headers, - columns_alignment=alignments, - columns_data=rows, - show_index=True) + render_table( + columns_headers=headers, + columns_alignment=alignments, + columns_data=rows, + show_index=True, + ) class MinimizerBase(ABC): @@ -135,10 +139,13 @@ class MinimizerBase(ABC): Abstract base class for minimizer implementations. Provides shared logic and structure for concrete minimizers. """ - def __init__(self, - name: Optional[str] = None, - method: Optional[str] = None, - max_iterations: Optional[int] = None) -> None: + + def __init__( + self, + name: Optional[str] = None, + method: Optional[str] = None, + max_iterations: Optional[int] = None, + ) -> None: self.name: Optional[str] = name self.method: Optional[str] = method self.max_iterations: Optional[int] = max_iterations @@ -167,20 +174,26 @@ def _prepare_solver_args(self, parameters: List[Any]) -> Dict[str, Any]: pass @abstractmethod - def _run_solver(self, - objective_function: Callable[..., Any], - engine_parameters: Dict[str, Any]) -> Any: + def _run_solver( + self, + objective_function: Callable[..., Any], + engine_parameters: Dict[str, Any], + ) -> Any: pass @abstractmethod - def _sync_result_to_parameters(self, - raw_result: Any, - parameters: List[Any]) -> None: + def _sync_result_to_parameters( + self, + raw_result: Any, + parameters: List[Any], + ) -> None: pass - def _finalize_fit(self, - parameters: List[Any], - raw_result: Any) -> FitResults: + def _finalize_fit( + self, + parameters: List[Any], + raw_result: Any, + ) -> FitResults: self._sync_result_to_parameters(parameters, raw_result) success = self._check_success(raw_result) self.result = FitResults( @@ -189,7 +202,7 @@ def _finalize_fit(self, reduced_chi_square=self.tracker.best_chi2, engine_result=raw_result, starting_parameters=parameters, - fitting_time=self.tracker.fitting_time + fitting_time=self.tracker.fitting_time, ) return self.result @@ -201,12 +214,14 @@ def _check_success(self, raw_result: Any) -> bool: """ pass - def fit(self, - parameters: List[Any], - objective_function: Callable[..., Any]) -> FitResults: - minimizer_name = self.name or "Unnamed Minimizer" + def fit( + self, + parameters: List[Any], + objective_function: Callable[..., Any], + ) -> FitResults: + minimizer_name = self.name or 'Unnamed Minimizer' if self.method is not None: - minimizer_name += f" ({self.method})" + minimizer_name += f' ({self.method})' self._start_tracking(minimizer_name) @@ -219,28 +234,33 @@ def fit(self, return result - def _objective_function(self, - engine_params: Dict[str, Any], - parameters: List[Any], - sample_models: Any, - experiments: Any, - calculator: Any) -> np.ndarray: - return self._compute_residuals(engine_params, - parameters, - sample_models, - experiments, - calculator) - - def _create_objective_function(self, - parameters: List[Any], - sample_models: Any, - experiments: Any, - calculator: Any) -> Callable[[Dict[str, Any]], np.ndarray]: - return lambda engine_params: self._objective_function( + def _objective_function( + self, + engine_params: Dict[str, Any], + parameters: List[Any], + sample_models: Any, + experiments: Any, + calculator: Any, + ) -> np.ndarray: + return self._compute_residuals( engine_params, parameters, sample_models, experiments, - calculator + calculator, ) + def _create_objective_function( + self, + parameters: List[Any], + sample_models: Any, + experiments: Any, + calculator: Any, + ) -> Callable[[Dict[str, Any]], np.ndarray]: + return lambda engine_params: self._objective_function( + engine_params, + parameters, + sample_models, + experiments, + calculator, + ) diff --git a/src/easydiffraction/analysis/minimizers/minimizer_dfols.py b/src/easydiffraction/analysis/minimizers/minimizer_dfols.py index 5f5fdec7..ab033071 100644 --- a/src/easydiffraction/analysis/minimizers/minimizer_dfols.py +++ b/src/easydiffraction/analysis/minimizers/minimizer_dfols.py @@ -15,7 +15,12 @@ class DfolsMinimizer(MinimizerBase): Minimizer using the DFO-LS package (Derivative-Free Optimization for Least-Squares). """ - def __init__(self, name: str = 'dfols', max_iterations: int = DEFAULT_MAX_ITERATIONS, **kwargs: Any) -> None: + def __init__( + self, + name: str = 'dfols', + max_iterations: int = DEFAULT_MAX_ITERATIONS, + **kwargs: Any, + ) -> None: super().__init__(name=name, method=None, max_iterations=max_iterations) def _prepare_solver_args(self, parameters: List[Any]) -> Dict[str, Any]: @@ -32,12 +37,13 @@ def _prepare_solver_args(self, parameters: List[Any]) -> Dict[str, Any]: def _run_solver(self, objective_function: Any, **kwargs: Any) -> Any: x0 = kwargs.get('x0') bounds = kwargs.get('bounds') - return solve(objective_function, - x0=x0, - bounds=bounds, - maxfun=self.max_iterations) + return solve(objective_function, x0=x0, bounds=bounds, maxfun=self.max_iterations) - def _sync_result_to_parameters(self, parameters: List[Any], raw_result: Any) -> None: + def _sync_result_to_parameters( + self, + parameters: List[Any], + raw_result: Any, + ) -> None: """ Synchronizes the result from the solver to the parameters. diff --git a/src/easydiffraction/analysis/minimizers/minimizer_factory.py b/src/easydiffraction/analysis/minimizers/minimizer_factory.py index 22f5b662..a8d821ef 100644 --- a/src/easydiffraction/analysis/minimizers/minimizer_factory.py +++ b/src/easydiffraction/analysis/minimizers/minimizer_factory.py @@ -18,26 +18,26 @@ class MinimizerFactory: 'engine': 'lmfit', 'method': 'leastsq', 'description': 'LMFIT library using the default Levenberg-Marquardt least squares method', - 'class': LmfitMinimizer + 'class': LmfitMinimizer, }, 'lmfit (leastsq)': { 'engine': 'lmfit', 'method': 'leastsq', 'description': 'LMFIT library with Levenberg-Marquardt least squares method', - 'class': LmfitMinimizer + 'class': LmfitMinimizer, }, 'lmfit (least_squares)': { 'engine': 'lmfit', 'method': 'least_squares', 'description': 'LMFIT library with SciPy’s trust region reflective algorithm', - 'class': LmfitMinimizer + 'class': LmfitMinimizer, }, 'dfols': { 'engine': 'dfols', 'method': None, 'description': 'DFO-LS library for derivative-free least-squares optimization', - 'class': DfolsMinimizer - } + 'class': DfolsMinimizer, + }, } @classmethod @@ -55,17 +55,19 @@ def show_available_minimizers(cls) -> None: """ Display a table of available minimizers and their descriptions. """ - columns_headers: List[str] = ["Minimizer", "Description"] - columns_alignment = ["left", "left"] + columns_headers: List[str] = ['Minimizer', 'Description'] + columns_alignment = ['left', 'left'] columns_data: List[List[str]] = [] for name, config in cls._available_minimizers.items(): description: str = config.get('description', 'No description provided.') columns_data.append([name, description]) - print(paragraph("Supported minimizers")) - render_table(columns_headers=columns_headers, - columns_alignment=columns_alignment, - columns_data=columns_data) + print(paragraph('Supported minimizers')) + render_table( + columns_headers=columns_headers, + columns_alignment=columns_alignment, + columns_data=columns_data, + ) @classmethod def create_minimizer(cls, selection: str) -> MinimizerBase: @@ -95,7 +97,13 @@ def create_minimizer(cls, selection: str) -> MinimizerBase: return minimizer_class(**kwargs) @classmethod - def register_minimizer(cls, name: str, minimizer_cls: Type[MinimizerBase], method: Optional[str] = None, description: str = 'No description provided.') -> None: + def register_minimizer( + cls, + name: str, + minimizer_cls: Type[MinimizerBase], + method: Optional[str] = None, + description: str = 'No description provided.', + ) -> None: """ Register a new minimizer. @@ -109,5 +117,5 @@ def register_minimizer(cls, name: str, minimizer_cls: Type[MinimizerBase], metho 'engine': name, 'method': method, 'description': description, - 'class': minimizer_cls + 'class': minimizer_cls, } diff --git a/src/easydiffraction/analysis/minimizers/minimizer_lmfit.py b/src/easydiffraction/analysis/minimizers/minimizer_lmfit.py index df33ad57..1fb4d339 100644 --- a/src/easydiffraction/analysis/minimizers/minimizer_lmfit.py +++ b/src/easydiffraction/analysis/minimizers/minimizer_lmfit.py @@ -15,15 +15,22 @@ class LmfitMinimizer(MinimizerBase): Minimizer using the lmfit package. """ - def __init__(self, - name: str = 'lmfit', - method: str = DEFAULT_METHOD, - max_iterations: int = DEFAULT_MAX_ITERATIONS) -> None: - super().__init__(name=name, - method=method, - max_iterations=max_iterations) - - def _prepare_solver_args(self, parameters: List[Any]) -> Dict[str, Any]: + def __init__( + self, + name: str = 'lmfit', + method: str = DEFAULT_METHOD, + max_iterations: int = DEFAULT_MAX_ITERATIONS, + ) -> None: + super().__init__( + name=name, + method=method, + max_iterations=max_iterations, + ) + + def _prepare_solver_args( + self, + parameters: List[Any], + ) -> Dict[str, Any]: """ Prepares the solver arguments for the lmfit minimizer. @@ -40,13 +47,11 @@ def _prepare_solver_args(self, parameters: List[Any]) -> Dict[str, Any]: value=param.value, vary=param.free, min=param.min, - max=param.max + max=param.max, ) return {'engine_parameters': engine_parameters} - def _run_solver(self, - objective_function: Any, - **kwargs: Any) -> Any: + def _run_solver(self, objective_function: Any, **kwargs: Any) -> Any: """ Runs the lmfit solver. @@ -59,15 +64,19 @@ def _run_solver(self, """ engine_parameters = kwargs.get('engine_parameters') - return lmfit.minimize(objective_function, - params=engine_parameters, - method=self.method, - nan_policy='propagate', - max_nfev=self.max_iterations) - - def _sync_result_to_parameters(self, - parameters: List[Any], - raw_result: Any) -> None: + return lmfit.minimize( + objective_function, + params=engine_parameters, + method=self.method, + nan_policy='propagate', + max_nfev=self.max_iterations, + ) + + def _sync_result_to_parameters( + self, + parameters: List[Any], + raw_result: Any, + ) -> None: """ Synchronizes the result from the solver to the parameters. @@ -98,12 +107,14 @@ def _check_success(self, raw_result: Any) -> bool: """ return getattr(raw_result, 'success', False) - def _iteration_callback(self, - params: lmfit.Parameters, - iter: int, - resid: Any, - *args: Any, - **kwargs: Any) -> None: + def _iteration_callback( + self, + params: lmfit.Parameters, + iter: int, + resid: Any, + *args: Any, + **kwargs: Any, + ) -> None: """ Callback function for each iteration of the minimizer. diff --git a/src/easydiffraction/analysis/reliability_factors.py b/src/easydiffraction/analysis/reliability_factors.py index 42b2bf5b..b6b2f8c8 100644 --- a/src/easydiffraction/analysis/reliability_factors.py +++ b/src/easydiffraction/analysis/reliability_factors.py @@ -8,8 +8,10 @@ from easydiffraction.sample_models.sample_models import SampleModels -def calculate_r_factor(y_obs: np.ndarray, - y_calc: np.ndarray) -> float: +def calculate_r_factor( + y_obs: np.ndarray, + y_calc: np.ndarray, +) -> float: """ Calculate the R-factor (reliability factor) between observed and calculated data. @@ -27,9 +29,11 @@ def calculate_r_factor(y_obs: np.ndarray, return numerator / denominator if denominator != 0 else np.nan -def calculate_weighted_r_factor(y_obs: np.ndarray, - y_calc: np.ndarray, - weights: np.ndarray) -> float: +def calculate_weighted_r_factor( + y_obs: np.ndarray, + y_calc: np.ndarray, + weights: np.ndarray, +) -> float: """ Calculate the weighted R-factor between observed and calculated data. @@ -45,12 +49,14 @@ def calculate_weighted_r_factor(y_obs: np.ndarray, y_calc = np.asarray(y_calc) weights = np.asarray(weights) numerator = np.sum(weights * (y_obs - y_calc) ** 2) - denominator = np.sum(weights * y_obs ** 2) + denominator = np.sum(weights * y_obs**2) return np.sqrt(numerator / denominator) if denominator != 0 else np.nan -def calculate_rb_factor(y_obs: np.ndarray, - y_calc: np.ndarray) -> float: +def calculate_rb_factor( + y_obs: np.ndarray, + y_calc: np.ndarray, +) -> float: """ Calculate the Bragg R-factor between observed and calculated data. @@ -68,8 +74,10 @@ def calculate_rb_factor(y_obs: np.ndarray, return numerator / denominator if denominator != 0 else np.nan -def calculate_r_factor_squared(y_obs: np.ndarray, - y_calc: np.ndarray) -> float: +def calculate_r_factor_squared( + y_obs: np.ndarray, + y_calc: np.ndarray, +) -> float: """ Calculate the R-factor squared between observed and calculated data. @@ -83,12 +91,14 @@ def calculate_r_factor_squared(y_obs: np.ndarray, y_obs = np.asarray(y_obs) y_calc = np.asarray(y_calc) numerator = np.sum((y_obs - y_calc) ** 2) - denominator = np.sum(y_obs ** 2) + denominator = np.sum(y_obs**2) return np.sqrt(numerator / denominator) if denominator != 0 else np.nan -def calculate_reduced_chi_square(residuals: np.ndarray, - num_parameters: int) -> float: +def calculate_reduced_chi_square( + residuals: np.ndarray, + num_parameters: int, +) -> float: """ Calculate the reduced chi-square statistic. @@ -100,7 +110,7 @@ def calculate_reduced_chi_square(residuals: np.ndarray, Reduced chi-square value. """ residuals = np.asarray(residuals) - chi_square = np.sum(residuals ** 2) + chi_square = np.sum(residuals**2) n_points = len(residuals) dof = n_points - num_parameters if dof > 0: @@ -109,9 +119,11 @@ def calculate_reduced_chi_square(residuals: np.ndarray, return np.nan -def get_reliability_inputs(sample_models: SampleModels, - experiments: Experiments, - calculator: CalculatorBase) -> Tuple[np.ndarray, np.ndarray, Optional[np.ndarray]]: +def get_reliability_inputs( + sample_models: SampleModels, + experiments: Experiments, + calculator: CalculatorBase, +) -> Tuple[np.ndarray, np.ndarray, Optional[np.ndarray]]: """ Collect observed and calculated data points for reliability calculations. @@ -143,5 +155,5 @@ def get_reliability_inputs(sample_models: SampleModels, return ( np.array(y_obs_all), np.array(y_calc_all), - np.array(y_err_all) if y_err_all else None + np.array(y_err_all) if y_err_all else None, ) diff --git a/src/easydiffraction/core/constants.py b/src/easydiffraction/core/constants.py index b999affa..71bc003d 100644 --- a/src/easydiffraction/core/constants.py +++ b/src/easydiffraction/core/constants.py @@ -1,27 +1,27 @@ # TODO: Change to use enum for these constants -DEFAULT_SAMPLE_FORM = "powder" -DEFAULT_BEAM_MODE = "constant wavelength" -DEFAULT_RADIATION_PROBE = "neutron" -DEFAULT_BACKGROUND_TYPE = "line-segment" -DEFAULT_SCATTERING_TYPE = "bragg" +DEFAULT_SAMPLE_FORM = 'powder' +DEFAULT_BEAM_MODE = 'constant wavelength' +DEFAULT_RADIATION_PROBE = 'neutron' +DEFAULT_BACKGROUND_TYPE = 'line-segment' +DEFAULT_SCATTERING_TYPE = 'bragg' DEFAULT_PEAK_PROFILE_TYPE = { - "bragg": { - "constant wavelength": "pseudo-voigt", - "time-of-flight": "pseudo-voigt * ikeda-carpenter" + 'bragg': { + 'constant wavelength': 'pseudo-voigt', + 'time-of-flight': 'pseudo-voigt * ikeda-carpenter', + }, + 'total': { + 'constant wavelength': 'gaussian-damped-sinc', + 'time-of-flight': 'gaussian-damped-sinc', }, - "total": { - "constant wavelength": "gaussian-damped-sinc", - "time-of-flight": "gaussian-damped-sinc" - } } DEFAULT_AXES_LABELS = { 'bragg': { - 'constant wavelength' : ['2θ (degree)', 'Intensity (arb. units)'], + 'constant wavelength': ['2θ (degree)', 'Intensity (arb. units)'], 'time-of-flight': ['TOF (µs)', 'Intensity (arb. units)'], 'd-spacing': ['d (Å)', 'Intensity (arb. units)'], }, 'total': { - 'constant wavelength' : ['r (Å)', 'G(r) (Å)'], + 'constant wavelength': ['r (Å)', 'G(r) (Å)'], 'time-of-flight': ['r (Å)', 'G(r) (Å)'], }, } diff --git a/src/easydiffraction/core/objects.py b/src/easydiffraction/core/objects.py index b03393a9..fbccd35f 100644 --- a/src/easydiffraction/core/objects.py +++ b/src/easydiffraction/core/objects.py @@ -16,25 +16,26 @@ T = TypeVar('T') + class Descriptor: """ Base class for descriptors (non-refinable attributes). """ - def __init__(self, - value: Any, # Value of the parameter - name: str, # ED parameter name (to access it in the code) - cif_name: str, # CIF parameter name (to show it in the CIF) - pretty_name: Optional[str] = None, # Pretty name (to show it in the table) - datablock_id: Optional[str] = None, # Parent datablock name - category_key: Optional[str] = None, # ED parent category name - cif_category_key: Optional[str] = None, # CIF parent category name - collection_entry_id: Optional[str] = None, # Parent collection entry id - units: Optional[str] = None, # Units of the parameter - description: Optional[str] = None, # Description of the parameter - editable: bool = True # If false, the parameter can never be edited. It is calculated automatically - ) -> None: - + def __init__( + self, + value: Any, # Value of the parameter + name: str, # ED parameter name (to access it in the code) + cif_name: str, # CIF parameter name (to show it in the CIF) + pretty_name: Optional[str] = None, # Pretty name (to show it in the table) + datablock_id: Optional[str] = None, # Parent datablock name + category_key: Optional[str] = None, # ED parent category name + cif_category_key: Optional[str] = None, # CIF parent category name + collection_entry_id: Optional[str] = None, # Parent collection entry id + units: Optional[str] = None, # Units of the parameter + description: Optional[str] = None, # Description of the parameter + editable: bool = True, # If false, the parameter can never be edited. It is calculated automatically + ) -> None: self._value = value self.name: str = name self.cif_name: str = cif_name @@ -53,15 +54,15 @@ def __init__(self, def __str__(self): # Base value string - value_str = f"{self.__class__.__name__}: {self.uid} = {self.value}" + value_str = f'{self.__class__.__name__}: {self.uid} = {self.value}' # Append ± uncertainty if it exists and is nonzero - if hasattr(self, "uncertainty") and getattr(self, "uncertainty") != 0.0: - value_str += f" ± {self.uncertainty}" + if hasattr(self, 'uncertainty') and getattr(self, 'uncertainty') != 0.0: + value_str += f' ± {self.uncertainty}' # Append units if available if self.units: - value_str += f" {self.units}" + value_str += f' {self.units}' return value_str @@ -90,12 +91,12 @@ def _generate_human_readable_unique_id(self): # This need to be called after the parameter is created and all its # attributes are set. if self.datablock_id: - uid = f"{self.datablock_id}.{self.cif_category_key}" + uid = f'{self.datablock_id}.{self.cif_category_key}' else: - uid = f"{self.cif_category_key}" + uid = f'{self.cif_category_key}' if self.collection_entry_id: - uid += f".{self.collection_entry_id}" - uid += f".{self.cif_name}" + uid += f'.{self.collection_entry_id}' + uid += f'.{self.cif_name}' return uid @property @@ -133,7 +134,7 @@ def uid(self, new_uid): @property def minimizer_uid(self): - return self.uid.replace(".", "__") + return self.uid.replace('.', '__') @property def value(self) -> Any: @@ -144,8 +145,7 @@ def value(self, new_value: Any) -> None: if self._editable: self._value = new_value else: - print(warning(f"The parameter '{self.cif_name}' it is calculated " - f"automatically and cannot be changed manually.")) + print(warning(f"The parameter '{self.cif_name}' it is calculated automatically and cannot be changed manually.")) @property def description(self) -> Optional[str]: @@ -161,35 +161,38 @@ class Parameter(Descriptor): A parameter with a value, uncertainty, units, and CIF representation. """ - def __init__(self, - value: Any, - name: str, - cif_name: str, - pretty_name: Optional[str] = None, - datablock_id: Optional[str] = None, # Parent datablock name - category_key: Optional[str] = None, - cif_category_key: Optional[str] = None, - collection_entry_id: Optional[str] = None, - units: Optional[str] = None, - description: Optional[str] = None, - editable: bool = True, - uncertainty: float = 0.0, - free: bool = False, - constrained: bool = False, - min_value: Optional[float] = None, - max_value: Optional[float] = None, - ) -> None: - super().__init__(value, - name, - cif_name, - pretty_name, - datablock_id, - category_key, - cif_category_key, - collection_entry_id, - units, - description, - editable) + def __init__( + self, + value: Any, + name: str, + cif_name: str, + pretty_name: Optional[str] = None, + datablock_id: Optional[str] = None, # Parent datablock name + category_key: Optional[str] = None, + cif_category_key: Optional[str] = None, + collection_entry_id: Optional[str] = None, + units: Optional[str] = None, + description: Optional[str] = None, + editable: bool = True, + uncertainty: float = 0.0, + free: bool = False, + constrained: bool = False, + min_value: Optional[float] = None, + max_value: Optional[float] = None, + ) -> None: + super().__init__( + value, + name, + cif_name, + pretty_name, + datablock_id, + category_key, + cif_category_key, + collection_entry_id, + units, + description, + editable, + ) self.uncertainty: float = uncertainty # Standard uncertainty or estimated standard deviation self.free: bool = free # If the parameter is free to be fitted during the optimization self.constrained: bool = constrained # If symmetry constrains the parameter during the optimization @@ -237,7 +240,7 @@ def __getattr__(self, name: str) -> Any: attr = self.__dict__.get(name, None) if isinstance(attr, (Descriptor, Parameter)): return attr.value - raise AttributeError(f"{name} not found in {self}") + raise AttributeError(f'{name} not found in {self}') def __setattr__(self, name: str, value: Any) -> None: """ @@ -245,7 +248,7 @@ def __setattr__(self, name: str, value: Any) -> None: If the attribute 'name' does not exist, add it. If the attribute 'name' exists and is a Parameter or Descriptor, set its value. """ - if hasattr(self, "_locked") and self._locked: + if hasattr(self, '_locked') and self._locked: if not hasattr(self, name): print(error(f"Cannot add new parameter '{name}'")) return @@ -320,7 +323,7 @@ def as_dict(self) -> Dict[str, Any]: def as_cif(self) -> str: if not self.cif_category_key: - raise ValueError("cif_category_key must be defined in the derived class.") + raise ValueError('cif_category_key must be defined in the derived class.') lines = [] @@ -332,19 +335,19 @@ def as_cif(self) -> str: if not isinstance(attr_obj, (Descriptor, Parameter)): continue - key = f"_{self.cif_category_key}.{attr_obj.cif_name}" + key = f'_{self.cif_category_key}.{attr_obj.cif_name}' value = attr_obj.value if value is None: continue - if isinstance(value, str) and " " in value: + if isinstance(value, str) and ' ' in value: value = f'"{value}"' - line = f"{key} {value}" + line = f'{key} {value}' lines.append(line) - return "\n".join(lines) + return '\n'.join(lines) class Collection(ABC): @@ -352,6 +355,7 @@ class Collection(ABC): Base class for collections like AtomSites, LinkedPhases, SampleModels, Experiments, etc. """ + @property @abstractmethod def _child_class(self): @@ -384,14 +388,14 @@ def add(self, *args, **kwargs): Component. """ if self._child_class is None: - raise ValueError("Child class is not defined.") + raise ValueError('Child class is not defined.') child_obj = self._child_class(*args, **kwargs) child_obj.datablock_id = self.datablock_id # Setting the datablock_id to update its child parameters child_obj.entry_id = child_obj.entry_id # Forcing the entry_id to be reset to update its child parameters self._items[child_obj._entry_id] = child_obj # Call on_item_added if it exists, i.e. defined in the derived class - if hasattr(self, "on_item_added"): + if hasattr(self, 'on_item_added'): self.on_item_added(child_obj) def get_all_params(self): @@ -414,7 +418,7 @@ def get_all_params(self): for param in component.get_all_params(): params.append(param) else: - raise TypeError(f"Expected a Component or Datablock, got {type(item)}") + raise TypeError(f'Expected a Component or Datablock, got {type(item)}') return params def get_fittable_params(self) -> List[Parameter]: @@ -435,7 +439,7 @@ def get_free_params(self) -> List[Parameter]: def as_cif(self) -> str: lines = [] - if self._type == "category": + if self._type == 'category': for idx, item in enumerate(self._items.values()): params = item.as_dict() category_key = item.cif_category_key @@ -445,23 +449,24 @@ def as_cif(self) -> str: values = [] for value in params.values(): value = f'{value}' - if " " in value: + if ' ' in value: value = f'"{value}"' values.append(value) # Header is added only for the first item if idx == 0: - lines.append("loop_") - header = "\n".join(keys) + lines.append('loop_') + header = '\n'.join(keys) lines.append(header) line = ' '.join(values) lines.append(line) - return "\n".join(lines) + return '\n'.join(lines) class Datablock(ABC): """ Base class for Sample Model and Experiment data blocks. """ + # TODO: Consider unifying with class Component? def __init__(self): @@ -486,8 +491,7 @@ def items(self): if attr_name.startswith('_'): continue attr_obj = getattr(self, attr_name) - if isinstance(attr_obj, (Component, - Collection)): + if isinstance(attr_obj, (Component, Collection)): attr_objs.append(attr_obj) return attr_objs diff --git a/src/easydiffraction/core/singletons.py b/src/easydiffraction/core/singletons.py index 99fdb72a..a0f81515 100644 --- a/src/easydiffraction/core/singletons.py +++ b/src/easydiffraction/core/singletons.py @@ -9,6 +9,7 @@ T = TypeVar('T', bound='BaseSingleton') + class BaseSingleton: """Base class to implement Singleton pattern. diff --git a/src/easydiffraction/crystallography/crystallography.py b/src/easydiffraction/crystallography/crystallography.py index 090aa8b7..9aab0477 100644 --- a/src/easydiffraction/crystallography/crystallography.py +++ b/src/easydiffraction/crystallography/crystallography.py @@ -13,8 +13,10 @@ from easydiffraction.crystallography.space_group_lookup_table import SPACE_GROUP_LOOKUP_DICT -def apply_cell_symmetry_constraints(cell: Dict[str, float], - name_hm: str) -> Dict[str, float]: +def apply_cell_symmetry_constraints( + cell: Dict[str, float], + name_hm: str, +) -> Dict[str, float]: """ Apply symmetry constraints to unit cell parameters based on space group. @@ -37,51 +39,53 @@ def apply_cell_symmetry_constraints(cell: Dict[str, float], print(error_msg) return cell - if crystal_system == "cubic": - a = cell["lattice_a"] - cell["lattice_b"] = a - cell["lattice_c"] = a - cell["angle_alpha"] = 90 - cell["angle_beta"] = 90 - cell["angle_gamma"] = 90 - - elif crystal_system == "tetragonal": - a = cell["lattice_a"] - cell["lattice_b"] = a - cell["angle_alpha"] = 90 - cell["angle_beta"] = 90 - cell["angle_gamma"] = 90 - - elif crystal_system == "orthorhombic": - cell["angle_alpha"] = 90 - cell["angle_beta"] = 90 - cell["angle_gamma"] = 90 - - elif crystal_system in {"hexagonal", "trigonal"}: - a = cell["lattice_a"] - cell["lattice_b"] = a - cell["angle_alpha"] = 90 - cell["angle_beta"] = 90 - cell["angle_gamma"] = 120 - - elif crystal_system == "monoclinic": - cell["angle_alpha"] = 90 - cell["angle_gamma"] = 90 - - elif crystal_system == "triclinic": + if crystal_system == 'cubic': + a = cell['lattice_a'] + cell['lattice_b'] = a + cell['lattice_c'] = a + cell['angle_alpha'] = 90 + cell['angle_beta'] = 90 + cell['angle_gamma'] = 90 + + elif crystal_system == 'tetragonal': + a = cell['lattice_a'] + cell['lattice_b'] = a + cell['angle_alpha'] = 90 + cell['angle_beta'] = 90 + cell['angle_gamma'] = 90 + + elif crystal_system == 'orthorhombic': + cell['angle_alpha'] = 90 + cell['angle_beta'] = 90 + cell['angle_gamma'] = 90 + + elif crystal_system in {'hexagonal', 'trigonal'}: + a = cell['lattice_a'] + cell['lattice_b'] = a + cell['angle_alpha'] = 90 + cell['angle_beta'] = 90 + cell['angle_gamma'] = 120 + + elif crystal_system == 'monoclinic': + cell['angle_alpha'] = 90 + cell['angle_gamma'] = 90 + + elif crystal_system == 'triclinic': pass # No constraints to apply else: - error_msg = f"Unknown or unsupported crystal system: {crystal_system}" + error_msg = f'Unknown or unsupported crystal system: {crystal_system}' print(error_msg) return cell -def apply_atom_site_symmetry_constraints(atom_site: Dict[str, Any], - name_hm: str, - coord_code: int, - wyckoff_letter: str) -> Dict[str, Any]: +def apply_atom_site_symmetry_constraints( + atom_site: Dict[str, Any], + name_hm: str, + coord_code: int, + wyckoff_letter: str, +) -> Dict[str, Any]: """ Apply symmetry constraints to atomic coordinates based on site symmetry. @@ -102,30 +106,26 @@ def apply_atom_site_symmetry_constraints(atom_site: Dict[str, Any], it_coordinate_system_code = coord_code if it_coordinate_system_code is None: - error_msg = "IT_coordinate_system_code is not set" + error_msg = 'IT_coordinate_system_code is not set' print(error_msg) return atom_site space_group_entry = SPACE_GROUP_LOOKUP_DICT[(it_number, it_coordinate_system_code)] - wyckoff_positions = space_group_entry["Wyckoff_positions"][wyckoff_letter] - coords_xyz = wyckoff_positions["coords_xyz"] + wyckoff_positions = space_group_entry['Wyckoff_positions'][wyckoff_letter] + coords_xyz = wyckoff_positions['coords_xyz'] first_position = coords_xyz[0] - components = first_position.strip("()").split(",") + components = first_position.strip('()').split(',') parsed_exprs: List[Expr] = [sympify(comp.strip()) for comp in components] - x_val: Expr = sympify(atom_site["fract_x"]) - y_val: Expr = sympify(atom_site["fract_y"]) - z_val: Expr = sympify(atom_site["fract_z"]) + x_val: Expr = sympify(atom_site['fract_x']) + y_val: Expr = sympify(atom_site['fract_y']) + z_val: Expr = sympify(atom_site['fract_z']) - substitutions: Dict[str, Expr] = { - "x": x_val, - "y": y_val, - "z": z_val - } + substitutions: Dict[str, Expr] = {'x': x_val, 'y': y_val, 'z': z_val} - axes: tuple[str, ...] = ("x", "y", "z") - x, y, z = symbols("x y z") + axes: tuple[str, ...] = ('x', 'y', 'z') + x, y, z = symbols('x y z') symbols_xyz: tuple[Symbol, ...] = (x, y, z) for i, axis in enumerate(axes): @@ -135,6 +135,6 @@ def apply_atom_site_symmetry_constraints(atom_site: Dict[str, Any], if not is_free: evaluated = parsed_exprs[i].subs(substitutions) simplified = simplify(evaluated) - atom_site[f"fract_{axis}"] = float(simplified) + atom_site[f'fract_{axis}'] = float(simplified) return atom_site diff --git a/src/easydiffraction/crystallography/space_group_lookup_table.py b/src/easydiffraction/crystallography/space_group_lookup_table.py index 565207ca..d41102d1 100644 --- a/src/easydiffraction/crystallography/space_group_lookup_table.py +++ b/src/easydiffraction/crystallography/space_group_lookup_table.py @@ -6,14 +6,8 @@ 'name_H-M_alt': 'P 1 1 1', 'crystal_system': 'triclinic', 'Wyckoff_positions': { - 'a': { - 'multiplicity': 1, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)' - ] - } - } + 'a': {'multiplicity': 1, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)']}, + }, }, (2, None): { 'IT_number': 2, @@ -22,71 +16,16 @@ 'name_H-M_alt': 'P 1 1 1', 'crystal_system': 'triclinic', 'Wyckoff_positions': { - 'i': { - 'multiplicity': 2, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,-z)' - ] - }, - 'h': { - 'multiplicity': 1, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/2,1/2,1/2)' - ] - }, - 'g': { - 'multiplicity': 1, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,1/2,1/2)' - ] - }, - 'f': { - 'multiplicity': 1, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/2,0,1/2)' - ] - }, - 'e': { - 'multiplicity': 1, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/2,1/2,0)' - ] - }, - 'd': { - 'multiplicity': 1, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/2,0,0)' - ] - }, - 'c': { - 'multiplicity': 1, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,1/2,0)' - ] - }, - 'b': { - 'multiplicity': 1, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,1/2)' - ] - }, - 'a': { - 'multiplicity': 1, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'i': {'multiplicity': 2, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(-x,-y,-z)']}, + 'h': {'multiplicity': 1, 'site_symmetry': '-1', 'coords_xyz': ['(1/2,1/2,1/2)']}, + 'g': {'multiplicity': 1, 'site_symmetry': '-1', 'coords_xyz': ['(0,1/2,1/2)']}, + 'f': {'multiplicity': 1, 'site_symmetry': '-1', 'coords_xyz': ['(1/2,0,1/2)']}, + 'e': {'multiplicity': 1, 'site_symmetry': '-1', 'coords_xyz': ['(1/2,1/2,0)']}, + 'd': {'multiplicity': 1, 'site_symmetry': '-1', 'coords_xyz': ['(1/2,0,0)']}, + 'c': {'multiplicity': 1, 'site_symmetry': '-1', 'coords_xyz': ['(0,1/2,0)']}, + 'b': {'multiplicity': 1, 'site_symmetry': '-1', 'coords_xyz': ['(0,0,1/2)']}, + 'a': {'multiplicity': 1, 'site_symmetry': '-1', 'coords_xyz': ['(0,0,0)']}, + }, }, (3, 'b1'): { 'IT_number': 3, @@ -95,43 +34,12 @@ 'name_H-M_alt': 'P 1 2 1', 'crystal_system': 'monoclinic', 'Wyckoff_positions': { - 'e': { - 'multiplicity': 2, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y,-z)' - ] - }, - 'd': { - 'multiplicity': 1, - 'site_symmetry': '2', - 'coords_xyz': [ - '(1/2,y,1/2)' - ] - }, - 'c': { - 'multiplicity': 1, - 'site_symmetry': '2', - 'coords_xyz': [ - '(1/2,y,0)' - ] - }, - 'b': { - 'multiplicity': 1, - 'site_symmetry': '2', - 'coords_xyz': [ - '(0,y,1/2)' - ] - }, - 'a': { - 'multiplicity': 1, - 'site_symmetry': '2', - 'coords_xyz': [ - '(0,y,0)' - ] - } - } + 'e': {'multiplicity': 2, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(-x,y,-z)']}, + 'd': {'multiplicity': 1, 'site_symmetry': '2', 'coords_xyz': ['(1/2,y,1/2)']}, + 'c': {'multiplicity': 1, 'site_symmetry': '2', 'coords_xyz': ['(1/2,y,0)']}, + 'b': {'multiplicity': 1, 'site_symmetry': '2', 'coords_xyz': ['(0,y,1/2)']}, + 'a': {'multiplicity': 1, 'site_symmetry': '2', 'coords_xyz': ['(0,y,0)']}, + }, }, (3, '-b1'): { 'IT_number': 3, @@ -140,43 +48,12 @@ 'name_H-M_alt': 'P 1 2 1', 'crystal_system': 'monoclinic', 'Wyckoff_positions': { - 'e': { - 'multiplicity': 2, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y,-z)' - ] - }, - 'd': { - 'multiplicity': 1, - 'site_symmetry': '2', - 'coords_xyz': [ - '(-1/2,y,1/2)' - ] - }, - 'c': { - 'multiplicity': 1, - 'site_symmetry': '2', - 'coords_xyz': [ - '(0,y,1/2)' - ] - }, - 'b': { - 'multiplicity': 1, - 'site_symmetry': '2', - 'coords_xyz': [ - '(-1/2,y,0)' - ] - }, - 'a': { - 'multiplicity': 1, - 'site_symmetry': '2', - 'coords_xyz': [ - '(0,y,0)' - ] - } - } + 'e': {'multiplicity': 2, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(-x,y,-z)']}, + 'd': {'multiplicity': 1, 'site_symmetry': '2', 'coords_xyz': ['(-1/2,y,1/2)']}, + 'c': {'multiplicity': 1, 'site_symmetry': '2', 'coords_xyz': ['(0,y,1/2)']}, + 'b': {'multiplicity': 1, 'site_symmetry': '2', 'coords_xyz': ['(-1/2,y,0)']}, + 'a': {'multiplicity': 1, 'site_symmetry': '2', 'coords_xyz': ['(0,y,0)']}, + }, }, (3, 'c1'): { 'IT_number': 3, @@ -185,43 +62,12 @@ 'name_H-M_alt': 'P 1 1 2', 'crystal_system': 'monoclinic', 'Wyckoff_positions': { - 'e': { - 'multiplicity': 2, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z)' - ] - }, - 'd': { - 'multiplicity': 1, - 'site_symmetry': '2', - 'coords_xyz': [ - '(1/2,1/2,z)' - ] - }, - 'c': { - 'multiplicity': 1, - 'site_symmetry': '2', - 'coords_xyz': [ - '(0,1/2,z)' - ] - }, - 'b': { - 'multiplicity': 1, - 'site_symmetry': '2', - 'coords_xyz': [ - '(1/2,0,z)' - ] - }, - 'a': { - 'multiplicity': 1, - 'site_symmetry': '2', - 'coords_xyz': [ - '(0,0,z)' - ] - } - } + 'e': {'multiplicity': 2, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(-x,-y,z)']}, + 'd': {'multiplicity': 1, 'site_symmetry': '2', 'coords_xyz': ['(1/2,1/2,z)']}, + 'c': {'multiplicity': 1, 'site_symmetry': '2', 'coords_xyz': ['(0,1/2,z)']}, + 'b': {'multiplicity': 1, 'site_symmetry': '2', 'coords_xyz': ['(1/2,0,z)']}, + 'a': {'multiplicity': 1, 'site_symmetry': '2', 'coords_xyz': ['(0,0,z)']}, + }, }, (3, '-c1'): { 'IT_number': 3, @@ -230,43 +76,12 @@ 'name_H-M_alt': 'P 1 1 2', 'crystal_system': 'monoclinic', 'Wyckoff_positions': { - 'e': { - 'multiplicity': 2, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z)' - ] - }, - 'd': { - 'multiplicity': 1, - 'site_symmetry': '2', - 'coords_xyz': [ - '(1/2,-1/2,z)' - ] - }, - 'c': { - 'multiplicity': 1, - 'site_symmetry': '2', - 'coords_xyz': [ - '(1/2,0,z)' - ] - }, - 'b': { - 'multiplicity': 1, - 'site_symmetry': '2', - 'coords_xyz': [ - '(0,-1/2,z)' - ] - }, - 'a': { - 'multiplicity': 1, - 'site_symmetry': '2', - 'coords_xyz': [ - '(0,0,z)' - ] - } - } + 'e': {'multiplicity': 2, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(-x,-y,z)']}, + 'd': {'multiplicity': 1, 'site_symmetry': '2', 'coords_xyz': ['(1/2,-1/2,z)']}, + 'c': {'multiplicity': 1, 'site_symmetry': '2', 'coords_xyz': ['(1/2,0,z)']}, + 'b': {'multiplicity': 1, 'site_symmetry': '2', 'coords_xyz': ['(0,-1/2,z)']}, + 'a': {'multiplicity': 1, 'site_symmetry': '2', 'coords_xyz': ['(0,0,z)']}, + }, }, (3, 'a1'): { 'IT_number': 3, @@ -275,43 +90,12 @@ 'name_H-M_alt': 'P 2 1 1', 'crystal_system': 'monoclinic', 'Wyckoff_positions': { - 'e': { - 'multiplicity': 2, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,-y,-z)' - ] - }, - 'd': { - 'multiplicity': 1, - 'site_symmetry': '2', - 'coords_xyz': [ - '(x,1/2,1/2)' - ] - }, - 'c': { - 'multiplicity': 1, - 'site_symmetry': '2', - 'coords_xyz': [ - '(x,0,1/2)' - ] - }, - 'b': { - 'multiplicity': 1, - 'site_symmetry': '2', - 'coords_xyz': [ - '(x,1/2,0)' - ] - }, - 'a': { - 'multiplicity': 1, - 'site_symmetry': '2', - 'coords_xyz': [ - '(x,0,0)' - ] - } - } + 'e': {'multiplicity': 2, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(x,-y,-z)']}, + 'd': {'multiplicity': 1, 'site_symmetry': '2', 'coords_xyz': ['(x,1/2,1/2)']}, + 'c': {'multiplicity': 1, 'site_symmetry': '2', 'coords_xyz': ['(x,0,1/2)']}, + 'b': {'multiplicity': 1, 'site_symmetry': '2', 'coords_xyz': ['(x,1/2,0)']}, + 'a': {'multiplicity': 1, 'site_symmetry': '2', 'coords_xyz': ['(x,0,0)']}, + }, }, (3, '-a1'): { 'IT_number': 3, @@ -320,43 +104,12 @@ 'name_H-M_alt': 'P 2 1 1', 'crystal_system': 'monoclinic', 'Wyckoff_positions': { - 'e': { - 'multiplicity': 2, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,-y,-z)' - ] - }, - 'd': { - 'multiplicity': 1, - 'site_symmetry': '2', - 'coords_xyz': [ - '(x,1/2,-1/2)' - ] - }, - 'c': { - 'multiplicity': 1, - 'site_symmetry': '2', - 'coords_xyz': [ - '(x,1/2,0)' - ] - }, - 'b': { - 'multiplicity': 1, - 'site_symmetry': '2', - 'coords_xyz': [ - '(x,0,-1/2)' - ] - }, - 'a': { - 'multiplicity': 1, - 'site_symmetry': '2', - 'coords_xyz': [ - '(x,0,0)' - ] - } - } + 'e': {'multiplicity': 2, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(x,-y,-z)']}, + 'd': {'multiplicity': 1, 'site_symmetry': '2', 'coords_xyz': ['(x,1/2,-1/2)']}, + 'c': {'multiplicity': 1, 'site_symmetry': '2', 'coords_xyz': ['(x,1/2,0)']}, + 'b': {'multiplicity': 1, 'site_symmetry': '2', 'coords_xyz': ['(x,0,-1/2)']}, + 'a': {'multiplicity': 1, 'site_symmetry': '2', 'coords_xyz': ['(x,0,0)']}, + }, }, (4, 'b1'): { 'IT_number': 4, @@ -364,16 +117,7 @@ 'IT_coordinate_system_code': 'b1', 'name_H-M_alt': 'P 1 21 1', 'crystal_system': 'monoclinic', - 'Wyckoff_positions': { - 'a': { - 'multiplicity': 2, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y+1/2,-z)' - ] - } - } + 'Wyckoff_positions': {'a': {'multiplicity': 2, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(-x,y+1/2,-z)']}}, }, (4, '-b1'): { 'IT_number': 4, @@ -381,16 +125,7 @@ 'IT_coordinate_system_code': '-b1', 'name_H-M_alt': 'P 1 21 1', 'crystal_system': 'monoclinic', - 'Wyckoff_positions': { - 'a': { - 'multiplicity': 2, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y+1/2,-z)' - ] - } - } + 'Wyckoff_positions': {'a': {'multiplicity': 2, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(-x,y+1/2,-z)']}}, }, (4, 'c1'): { 'IT_number': 4, @@ -398,16 +133,7 @@ 'IT_coordinate_system_code': 'c1', 'name_H-M_alt': 'P 1 1 21', 'crystal_system': 'monoclinic', - 'Wyckoff_positions': { - 'a': { - 'multiplicity': 2, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z+1/2)' - ] - } - } + 'Wyckoff_positions': {'a': {'multiplicity': 2, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(-x,-y,z+1/2)']}}, }, (4, '-c1'): { 'IT_number': 4, @@ -415,16 +141,7 @@ 'IT_coordinate_system_code': '-c1', 'name_H-M_alt': 'P 1 1 21', 'crystal_system': 'monoclinic', - 'Wyckoff_positions': { - 'a': { - 'multiplicity': 2, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z+1/2)' - ] - } - } + 'Wyckoff_positions': {'a': {'multiplicity': 2, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(-x,-y,z+1/2)']}}, }, (4, 'a1'): { 'IT_number': 4, @@ -432,16 +149,7 @@ 'IT_coordinate_system_code': 'a1', 'name_H-M_alt': 'P 21 1 1', 'crystal_system': 'monoclinic', - 'Wyckoff_positions': { - 'a': { - 'multiplicity': 2, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x+1/2,-y,-z)' - ] - } - } + 'Wyckoff_positions': {'a': {'multiplicity': 2, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(x+1/2,-y,-z)']}}, }, (4, '-a1'): { 'IT_number': 4, @@ -449,16 +157,7 @@ 'IT_coordinate_system_code': '-a1', 'name_H-M_alt': 'P 21 1 1', 'crystal_system': 'monoclinic', - 'Wyckoff_positions': { - 'a': { - 'multiplicity': 2, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x+1/2,-y,-z)' - ] - } - } + 'Wyckoff_positions': {'a': {'multiplicity': 2, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(x+1/2,-y,-z)']}}, }, (5, 'b1'): { 'IT_number': 5, @@ -467,29 +166,10 @@ 'name_H-M_alt': 'C 1 2 1', 'crystal_system': 'monoclinic', 'Wyckoff_positions': { - 'c': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y,-z)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '2', - 'coords_xyz': [ - '(0,y,1/2)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '2', - 'coords_xyz': [ - '(0,y,0)' - ] - } - } + 'c': {'multiplicity': 4, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(-x,y,-z)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '2', 'coords_xyz': ['(0,y,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '2', 'coords_xyz': ['(0,y,0)']}, + }, }, (5, '-b1'): { 'IT_number': 5, @@ -498,29 +178,10 @@ 'name_H-M_alt': 'A 1 2 1', 'crystal_system': 'monoclinic', 'Wyckoff_positions': { - 'c': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y,-z)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '2', - 'coords_xyz': [ - '(-1/2,y,0)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '2', - 'coords_xyz': [ - '(0,y,0)' - ] - } - } + 'c': {'multiplicity': 4, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(-x,y,-z)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '2', 'coords_xyz': ['(-1/2,y,0)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '2', 'coords_xyz': ['(0,y,0)']}, + }, }, (5, 'c1'): { 'IT_number': 5, @@ -529,29 +190,10 @@ 'name_H-M_alt': 'A 1 1 2', 'crystal_system': 'monoclinic', 'Wyckoff_positions': { - 'c': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '2', - 'coords_xyz': [ - '(1/2,0,z)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '2', - 'coords_xyz': [ - '(0,0,z)' - ] - } - } + 'c': {'multiplicity': 4, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(-x,-y,z)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '2', 'coords_xyz': ['(1/2,0,z)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '2', 'coords_xyz': ['(0,0,z)']}, + }, }, (5, '-c1'): { 'IT_number': 5, @@ -560,29 +202,10 @@ 'name_H-M_alt': 'B 1 1 2', 'crystal_system': 'monoclinic', 'Wyckoff_positions': { - 'c': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '2', - 'coords_xyz': [ - '(0,-1/2,z)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '2', - 'coords_xyz': [ - '(0,0,z)' - ] - } - } + 'c': {'multiplicity': 4, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(-x,-y,z)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '2', 'coords_xyz': ['(0,-1/2,z)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '2', 'coords_xyz': ['(0,0,z)']}, + }, }, (5, 'a1'): { 'IT_number': 5, @@ -591,29 +214,10 @@ 'name_H-M_alt': 'B 2 1 1', 'crystal_system': 'monoclinic', 'Wyckoff_positions': { - 'c': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,-y,-z)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '2', - 'coords_xyz': [ - '(x,1/2,0)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '2', - 'coords_xyz': [ - '(x,0,0)' - ] - } - } + 'c': {'multiplicity': 4, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(x,-y,-z)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '2', 'coords_xyz': ['(x,1/2,0)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '2', 'coords_xyz': ['(x,0,0)']}, + }, }, (5, '-a1'): { 'IT_number': 5, @@ -622,29 +226,10 @@ 'name_H-M_alt': 'C 2 1 1', 'crystal_system': 'monoclinic', 'Wyckoff_positions': { - 'c': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,-y,-z)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '2', - 'coords_xyz': [ - '(x,0,-1/2)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '2', - 'coords_xyz': [ - '(x,0,0)' - ] - } - } + 'c': {'multiplicity': 4, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(x,-y,-z)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '2', 'coords_xyz': ['(x,0,-1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '2', 'coords_xyz': ['(x,0,0)']}, + }, }, (6, 'b1'): { 'IT_number': 6, @@ -653,29 +238,10 @@ 'name_H-M_alt': 'P 1 m 1', 'crystal_system': 'monoclinic', 'Wyckoff_positions': { - 'c': { - 'multiplicity': 2, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,-y,z)' - ] - }, - 'b': { - 'multiplicity': 1, - 'site_symmetry': 'm', - 'coords_xyz': [ - '(x,1/2,z)' - ] - }, - 'a': { - 'multiplicity': 1, - 'site_symmetry': 'm', - 'coords_xyz': [ - '(x,0,z)' - ] - } - } + 'c': {'multiplicity': 2, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(x,-y,z)']}, + 'b': {'multiplicity': 1, 'site_symmetry': 'm', 'coords_xyz': ['(x,1/2,z)']}, + 'a': {'multiplicity': 1, 'site_symmetry': 'm', 'coords_xyz': ['(x,0,z)']}, + }, }, (6, '-b1'): { 'IT_number': 6, @@ -684,29 +250,10 @@ 'name_H-M_alt': 'P 1 m 1', 'crystal_system': 'monoclinic', 'Wyckoff_positions': { - 'c': { - 'multiplicity': 2, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,-y,z)' - ] - }, - 'b': { - 'multiplicity': 1, - 'site_symmetry': 'm', - 'coords_xyz': [ - '(x,1/2,z)' - ] - }, - 'a': { - 'multiplicity': 1, - 'site_symmetry': 'm', - 'coords_xyz': [ - '(x,0,z)' - ] - } - } + 'c': {'multiplicity': 2, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(x,-y,z)']}, + 'b': {'multiplicity': 1, 'site_symmetry': 'm', 'coords_xyz': ['(x,1/2,z)']}, + 'a': {'multiplicity': 1, 'site_symmetry': 'm', 'coords_xyz': ['(x,0,z)']}, + }, }, (6, 'c1'): { 'IT_number': 6, @@ -715,29 +262,10 @@ 'name_H-M_alt': 'P 1 1 m', 'crystal_system': 'monoclinic', 'Wyckoff_positions': { - 'c': { - 'multiplicity': 2, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,y,-z)' - ] - }, - 'b': { - 'multiplicity': 1, - 'site_symmetry': 'm', - 'coords_xyz': [ - '(x,y,1/2)' - ] - }, - 'a': { - 'multiplicity': 1, - 'site_symmetry': 'm', - 'coords_xyz': [ - '(x,y,0)' - ] - } - } + 'c': {'multiplicity': 2, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(x,y,-z)']}, + 'b': {'multiplicity': 1, 'site_symmetry': 'm', 'coords_xyz': ['(x,y,1/2)']}, + 'a': {'multiplicity': 1, 'site_symmetry': 'm', 'coords_xyz': ['(x,y,0)']}, + }, }, (6, '-c1'): { 'IT_number': 6, @@ -746,29 +274,10 @@ 'name_H-M_alt': 'P 1 1 m', 'crystal_system': 'monoclinic', 'Wyckoff_positions': { - 'c': { - 'multiplicity': 2, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,y,-z)' - ] - }, - 'b': { - 'multiplicity': 1, - 'site_symmetry': 'm', - 'coords_xyz': [ - '(x,y,1/2)' - ] - }, - 'a': { - 'multiplicity': 1, - 'site_symmetry': 'm', - 'coords_xyz': [ - '(x,y,0)' - ] - } - } + 'c': {'multiplicity': 2, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(x,y,-z)']}, + 'b': {'multiplicity': 1, 'site_symmetry': 'm', 'coords_xyz': ['(x,y,1/2)']}, + 'a': {'multiplicity': 1, 'site_symmetry': 'm', 'coords_xyz': ['(x,y,0)']}, + }, }, (6, 'a1'): { 'IT_number': 6, @@ -777,29 +286,10 @@ 'name_H-M_alt': 'P m 1 1', 'crystal_system': 'monoclinic', 'Wyckoff_positions': { - 'c': { - 'multiplicity': 2, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y,z)' - ] - }, - 'b': { - 'multiplicity': 1, - 'site_symmetry': 'm', - 'coords_xyz': [ - '(1/2,y,z)' - ] - }, - 'a': { - 'multiplicity': 1, - 'site_symmetry': 'm', - 'coords_xyz': [ - '(0,y,z)' - ] - } - } + 'c': {'multiplicity': 2, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(-x,y,z)']}, + 'b': {'multiplicity': 1, 'site_symmetry': 'm', 'coords_xyz': ['(1/2,y,z)']}, + 'a': {'multiplicity': 1, 'site_symmetry': 'm', 'coords_xyz': ['(0,y,z)']}, + }, }, (6, '-a1'): { 'IT_number': 6, @@ -808,29 +298,10 @@ 'name_H-M_alt': 'P m 1 1', 'crystal_system': 'monoclinic', 'Wyckoff_positions': { - 'c': { - 'multiplicity': 2, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y,z)' - ] - }, - 'b': { - 'multiplicity': 1, - 'site_symmetry': 'm', - 'coords_xyz': [ - '(1/2,y,z)' - ] - }, - 'a': { - 'multiplicity': 1, - 'site_symmetry': 'm', - 'coords_xyz': [ - '(0,y,z)' - ] - } - } + 'c': {'multiplicity': 2, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(-x,y,z)']}, + 'b': {'multiplicity': 1, 'site_symmetry': 'm', 'coords_xyz': ['(1/2,y,z)']}, + 'a': {'multiplicity': 1, 'site_symmetry': 'm', 'coords_xyz': ['(0,y,z)']}, + }, }, (7, 'b1'): { 'IT_number': 7, @@ -838,16 +309,7 @@ 'IT_coordinate_system_code': 'b1', 'name_H-M_alt': 'P 1 c 1', 'crystal_system': 'monoclinic', - 'Wyckoff_positions': { - 'a': { - 'multiplicity': 2, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,-y,z+1/2)' - ] - } - } + 'Wyckoff_positions': {'a': {'multiplicity': 2, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(x,-y,z+1/2)']}}, }, (7, '-b1'): { 'IT_number': 7, @@ -855,16 +317,7 @@ 'IT_coordinate_system_code': '-b1', 'name_H-M_alt': 'P 1 a 1', 'crystal_system': 'monoclinic', - 'Wyckoff_positions': { - 'a': { - 'multiplicity': 2, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x-1/2,-y,z)' - ] - } - } + 'Wyckoff_positions': {'a': {'multiplicity': 2, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(x-1/2,-y,z)']}}, }, (7, 'c1'): { 'IT_number': 7, @@ -872,16 +325,7 @@ 'IT_coordinate_system_code': 'c1', 'name_H-M_alt': 'P 1 1 a', 'crystal_system': 'monoclinic', - 'Wyckoff_positions': { - 'a': { - 'multiplicity': 2, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x+1/2,y,-z)' - ] - } - } + 'Wyckoff_positions': {'a': {'multiplicity': 2, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(x+1/2,y,-z)']}}, }, (7, '-c1'): { 'IT_number': 7, @@ -889,16 +333,7 @@ 'IT_coordinate_system_code': '-c1', 'name_H-M_alt': 'P 1 1 b', 'crystal_system': 'monoclinic', - 'Wyckoff_positions': { - 'a': { - 'multiplicity': 2, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,y-1/2,-z)' - ] - } - } + 'Wyckoff_positions': {'a': {'multiplicity': 2, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(x,y-1/2,-z)']}}, }, (7, 'a1'): { 'IT_number': 7, @@ -906,16 +341,7 @@ 'IT_coordinate_system_code': 'a1', 'name_H-M_alt': 'P b 1 1', 'crystal_system': 'monoclinic', - 'Wyckoff_positions': { - 'a': { - 'multiplicity': 2, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y+1/2,z)' - ] - } - } + 'Wyckoff_positions': {'a': {'multiplicity': 2, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(-x,y+1/2,z)']}}, }, (7, '-a1'): { 'IT_number': 7, @@ -923,16 +349,7 @@ 'IT_coordinate_system_code': '-a1', 'name_H-M_alt': 'P c 1 1', 'crystal_system': 'monoclinic', - 'Wyckoff_positions': { - 'a': { - 'multiplicity': 2, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y,z-1/2)' - ] - } - } + 'Wyckoff_positions': {'a': {'multiplicity': 2, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(-x,y,z-1/2)']}}, }, (8, 'b1'): { 'IT_number': 8, @@ -941,22 +358,9 @@ 'name_H-M_alt': 'C 1 m 1', 'crystal_system': 'monoclinic', 'Wyckoff_positions': { - 'b': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,-y,z)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': 'm', - 'coords_xyz': [ - '(x,0,z)' - ] - } - } + 'b': {'multiplicity': 4, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(x,-y,z)']}, + 'a': {'multiplicity': 2, 'site_symmetry': 'm', 'coords_xyz': ['(x,0,z)']}, + }, }, (8, '-b1'): { 'IT_number': 8, @@ -965,22 +369,9 @@ 'name_H-M_alt': 'A 1 m 1', 'crystal_system': 'monoclinic', 'Wyckoff_positions': { - 'b': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,-y,z)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': 'm', - 'coords_xyz': [ - '(x,0,z)' - ] - } - } + 'b': {'multiplicity': 4, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(x,-y,z)']}, + 'a': {'multiplicity': 2, 'site_symmetry': 'm', 'coords_xyz': ['(x,0,z)']}, + }, }, (8, 'c1'): { 'IT_number': 8, @@ -989,22 +380,9 @@ 'name_H-M_alt': 'A 1 1 m', 'crystal_system': 'monoclinic', 'Wyckoff_positions': { - 'b': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,y,-z)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': 'm', - 'coords_xyz': [ - '(x,y,0)' - ] - } - } + 'b': {'multiplicity': 4, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(x,y,-z)']}, + 'a': {'multiplicity': 2, 'site_symmetry': 'm', 'coords_xyz': ['(x,y,0)']}, + }, }, (8, '-c1'): { 'IT_number': 8, @@ -1013,22 +391,9 @@ 'name_H-M_alt': 'B 1 1 m', 'crystal_system': 'monoclinic', 'Wyckoff_positions': { - 'b': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,y,-z)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': 'm', - 'coords_xyz': [ - '(x,y,0)' - ] - } - } + 'b': {'multiplicity': 4, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(x,y,-z)']}, + 'a': {'multiplicity': 2, 'site_symmetry': 'm', 'coords_xyz': ['(x,y,0)']}, + }, }, (8, 'a1'): { 'IT_number': 8, @@ -1037,22 +402,9 @@ 'name_H-M_alt': 'B m 1 1', 'crystal_system': 'monoclinic', 'Wyckoff_positions': { - 'b': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y,z)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': 'm', - 'coords_xyz': [ - '(0,y,z)' - ] - } - } + 'b': {'multiplicity': 4, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(-x,y,z)']}, + 'a': {'multiplicity': 2, 'site_symmetry': 'm', 'coords_xyz': ['(0,y,z)']}, + }, }, (8, '-a1'): { 'IT_number': 8, @@ -1061,22 +413,9 @@ 'name_H-M_alt': 'C m 1 1', 'crystal_system': 'monoclinic', 'Wyckoff_positions': { - 'b': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y,z)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': 'm', - 'coords_xyz': [ - '(0,y,z)' - ] - } - } + 'b': {'multiplicity': 4, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(-x,y,z)']}, + 'a': {'multiplicity': 2, 'site_symmetry': 'm', 'coords_xyz': ['(0,y,z)']}, + }, }, (9, 'b1'): { 'IT_number': 9, @@ -1084,16 +423,7 @@ 'IT_coordinate_system_code': 'b1', 'name_H-M_alt': 'C 1 c 1', 'crystal_system': 'monoclinic', - 'Wyckoff_positions': { - 'a': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,-y,z+1/2)' - ] - } - } + 'Wyckoff_positions': {'a': {'multiplicity': 4, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(x,-y,z+1/2)']}}, }, (9, '-b1'): { 'IT_number': 9, @@ -1101,16 +431,7 @@ 'IT_coordinate_system_code': '-b1', 'name_H-M_alt': 'A 1 a 1', 'crystal_system': 'monoclinic', - 'Wyckoff_positions': { - 'a': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x-1/2,-y,z)' - ] - } - } + 'Wyckoff_positions': {'a': {'multiplicity': 4, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(x-1/2,-y,z)']}}, }, (9, 'c1'): { 'IT_number': 9, @@ -1118,16 +439,7 @@ 'IT_coordinate_system_code': 'c1', 'name_H-M_alt': 'A 1 1 a', 'crystal_system': 'monoclinic', - 'Wyckoff_positions': { - 'a': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x+1/2,y,-z)' - ] - } - } + 'Wyckoff_positions': {'a': {'multiplicity': 4, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(x+1/2,y,-z)']}}, }, (9, '-c1'): { 'IT_number': 9, @@ -1135,16 +447,7 @@ 'IT_coordinate_system_code': '-c1', 'name_H-M_alt': 'B 1 1 b', 'crystal_system': 'monoclinic', - 'Wyckoff_positions': { - 'a': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,y-1/2,-z)' - ] - } - } + 'Wyckoff_positions': {'a': {'multiplicity': 4, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(x,y-1/2,-z)']}}, }, (9, 'a1'): { 'IT_number': 9, @@ -1152,16 +455,7 @@ 'IT_coordinate_system_code': 'a1', 'name_H-M_alt': 'B b 1 1', 'crystal_system': 'monoclinic', - 'Wyckoff_positions': { - 'a': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y+1/2,z)' - ] - } - } + 'Wyckoff_positions': {'a': {'multiplicity': 4, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(-x,y+1/2,z)']}}, }, (9, '-a1'): { 'IT_number': 9, @@ -1169,16 +463,7 @@ 'IT_coordinate_system_code': '-a1', 'name_H-M_alt': 'C c 1 1', 'crystal_system': 'monoclinic', - 'Wyckoff_positions': { - 'a': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y,z-1/2)' - ] - } - } + 'Wyckoff_positions': {'a': {'multiplicity': 4, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(-x,y,z-1/2)']}}, }, (10, 'b1'): { 'IT_number': 10, @@ -1187,121 +472,22 @@ 'name_H-M_alt': 'P 1 2/m 1', 'crystal_system': 'monoclinic', 'Wyckoff_positions': { - 'o': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y,-z)', - '(-x,-y,-z)', - '(x,-y,z)' - ] - }, - 'n': { - 'multiplicity': 2, - 'site_symmetry': 'm', - 'coords_xyz': [ - '(x,1/2,z)', - '(-x,1/2,-z)' - ] - }, - 'm': { - 'multiplicity': 2, - 'site_symmetry': 'm', - 'coords_xyz': [ - '(x,0,z)', - '(-x,0,-z)' - ] - }, - 'l': { - 'multiplicity': 2, - 'site_symmetry': '2', - 'coords_xyz': [ - '(1/2,y,1/2)', - '(1/2,-y,1/2)' - ] - }, - 'k': { - 'multiplicity': 2, - 'site_symmetry': '2', - 'coords_xyz': [ - '(0,y,1/2)', - '(0,-y,1/2)' - ] - }, - 'j': { - 'multiplicity': 2, - 'site_symmetry': '2', - 'coords_xyz': [ - '(1/2,y,0)', - '(1/2,-y,0)' - ] - }, - 'i': { - 'multiplicity': 2, - 'site_symmetry': '2', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y,0)' - ] - }, - 'h': { - 'multiplicity': 1, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(1/2,1/2,1/2)' - ] - }, - 'g': { - 'multiplicity': 1, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(1/2,0,1/2)' - ] - }, - 'f': { - 'multiplicity': 1, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(0,1/2,1/2)' - ] - }, - 'e': { - 'multiplicity': 1, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(1/2,1/2,0)' - ] - }, - 'd': { - 'multiplicity': 1, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(1/2,0,0)' - ] - }, - 'c': { - 'multiplicity': 1, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(0,0,1/2)' - ] - }, - 'b': { - 'multiplicity': 1, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(0,1/2,0)' - ] - }, - 'a': { - 'multiplicity': 1, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'o': {'multiplicity': 4, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(-x,y,-z)', '(-x,-y,-z)', '(x,-y,z)']}, + 'n': {'multiplicity': 2, 'site_symmetry': 'm', 'coords_xyz': ['(x,1/2,z)', '(-x,1/2,-z)']}, + 'm': {'multiplicity': 2, 'site_symmetry': 'm', 'coords_xyz': ['(x,0,z)', '(-x,0,-z)']}, + 'l': {'multiplicity': 2, 'site_symmetry': '2', 'coords_xyz': ['(1/2,y,1/2)', '(1/2,-y,1/2)']}, + 'k': {'multiplicity': 2, 'site_symmetry': '2', 'coords_xyz': ['(0,y,1/2)', '(0,-y,1/2)']}, + 'j': {'multiplicity': 2, 'site_symmetry': '2', 'coords_xyz': ['(1/2,y,0)', '(1/2,-y,0)']}, + 'i': {'multiplicity': 2, 'site_symmetry': '2', 'coords_xyz': ['(0,y,0)', '(0,-y,0)']}, + 'h': {'multiplicity': 1, 'site_symmetry': '2/m', 'coords_xyz': ['(1/2,1/2,1/2)']}, + 'g': {'multiplicity': 1, 'site_symmetry': '2/m', 'coords_xyz': ['(1/2,0,1/2)']}, + 'f': {'multiplicity': 1, 'site_symmetry': '2/m', 'coords_xyz': ['(0,1/2,1/2)']}, + 'e': {'multiplicity': 1, 'site_symmetry': '2/m', 'coords_xyz': ['(1/2,1/2,0)']}, + 'd': {'multiplicity': 1, 'site_symmetry': '2/m', 'coords_xyz': ['(1/2,0,0)']}, + 'c': {'multiplicity': 1, 'site_symmetry': '2/m', 'coords_xyz': ['(0,0,1/2)']}, + 'b': {'multiplicity': 1, 'site_symmetry': '2/m', 'coords_xyz': ['(0,1/2,0)']}, + 'a': {'multiplicity': 1, 'site_symmetry': '2/m', 'coords_xyz': ['(0,0,0)']}, + }, }, (10, '-b1'): { 'IT_number': 10, @@ -1310,121 +496,22 @@ 'name_H-M_alt': 'P 1 2/m 1', 'crystal_system': 'monoclinic', 'Wyckoff_positions': { - 'o': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y,-z)', - '(-x,-y,-z)', - '(x,-y,z)' - ] - }, - 'n': { - 'multiplicity': 2, - 'site_symmetry': 'm', - 'coords_xyz': [ - '(x,1/2,z)', - '(-x,1/2,-z)' - ] - }, - 'm': { - 'multiplicity': 2, - 'site_symmetry': 'm', - 'coords_xyz': [ - '(x,0,z)', - '(-x,0,-z)' - ] - }, - 'l': { - 'multiplicity': 2, - 'site_symmetry': '2', - 'coords_xyz': [ - '(-1/2,y,1/2)', - '(-1/2,-y,1/2)' - ] - }, - 'k': { - 'multiplicity': 2, - 'site_symmetry': '2', - 'coords_xyz': [ - '(-1/2,y,0)', - '(-1/2,-y,0)' - ] - }, - 'j': { - 'multiplicity': 2, - 'site_symmetry': '2', - 'coords_xyz': [ - '(0,y,1/2)', - '(0,-y,1/2)' - ] - }, - 'i': { - 'multiplicity': 2, - 'site_symmetry': '2', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y,0)' - ] - }, - 'h': { - 'multiplicity': 1, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(-1/2,1/2,1/2)' - ] - }, - 'g': { - 'multiplicity': 1, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(-1/2,0,1/2)' - ] - }, - 'f': { - 'multiplicity': 1, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(-1/2,1/2,0)' - ] - }, - 'e': { - 'multiplicity': 1, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(0,1/2,1/2)' - ] - }, - 'd': { - 'multiplicity': 1, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(0,0,1/2)' - ] - }, - 'c': { - 'multiplicity': 1, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(-1/2,0,0)' - ] - }, - 'b': { - 'multiplicity': 1, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(0,1/2,0)' - ] - }, - 'a': { - 'multiplicity': 1, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'o': {'multiplicity': 4, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(-x,y,-z)', '(-x,-y,-z)', '(x,-y,z)']}, + 'n': {'multiplicity': 2, 'site_symmetry': 'm', 'coords_xyz': ['(x,1/2,z)', '(-x,1/2,-z)']}, + 'm': {'multiplicity': 2, 'site_symmetry': 'm', 'coords_xyz': ['(x,0,z)', '(-x,0,-z)']}, + 'l': {'multiplicity': 2, 'site_symmetry': '2', 'coords_xyz': ['(-1/2,y,1/2)', '(-1/2,-y,1/2)']}, + 'k': {'multiplicity': 2, 'site_symmetry': '2', 'coords_xyz': ['(-1/2,y,0)', '(-1/2,-y,0)']}, + 'j': {'multiplicity': 2, 'site_symmetry': '2', 'coords_xyz': ['(0,y,1/2)', '(0,-y,1/2)']}, + 'i': {'multiplicity': 2, 'site_symmetry': '2', 'coords_xyz': ['(0,y,0)', '(0,-y,0)']}, + 'h': {'multiplicity': 1, 'site_symmetry': '2/m', 'coords_xyz': ['(-1/2,1/2,1/2)']}, + 'g': {'multiplicity': 1, 'site_symmetry': '2/m', 'coords_xyz': ['(-1/2,0,1/2)']}, + 'f': {'multiplicity': 1, 'site_symmetry': '2/m', 'coords_xyz': ['(-1/2,1/2,0)']}, + 'e': {'multiplicity': 1, 'site_symmetry': '2/m', 'coords_xyz': ['(0,1/2,1/2)']}, + 'd': {'multiplicity': 1, 'site_symmetry': '2/m', 'coords_xyz': ['(0,0,1/2)']}, + 'c': {'multiplicity': 1, 'site_symmetry': '2/m', 'coords_xyz': ['(-1/2,0,0)']}, + 'b': {'multiplicity': 1, 'site_symmetry': '2/m', 'coords_xyz': ['(0,1/2,0)']}, + 'a': {'multiplicity': 1, 'site_symmetry': '2/m', 'coords_xyz': ['(0,0,0)']}, + }, }, (10, 'c1'): { 'IT_number': 10, @@ -1433,121 +520,22 @@ 'name_H-M_alt': 'P 1 1 2/m', 'crystal_system': 'monoclinic', 'Wyckoff_positions': { - 'o': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z)', - '(-x,-y,-z)', - '(x,y,-z)' - ] - }, - 'n': { - 'multiplicity': 2, - 'site_symmetry': 'm', - 'coords_xyz': [ - '(x,y,1/2)', - '(-x,-y,1/2)' - ] - }, - 'm': { - 'multiplicity': 2, - 'site_symmetry': 'm', - 'coords_xyz': [ - '(x,y,0)', - '(-x,-y,0)' - ] - }, - 'l': { - 'multiplicity': 2, - 'site_symmetry': '2', - 'coords_xyz': [ - '(1/2,1/2,z)', - '(1/2,1/2,-z)' - ] - }, - 'k': { - 'multiplicity': 2, - 'site_symmetry': '2', - 'coords_xyz': [ - '(1/2,0,z)', - '(1/2,0,-z)' - ] - }, - 'j': { - 'multiplicity': 2, - 'site_symmetry': '2', - 'coords_xyz': [ - '(0,1/2,z)', - '(0,1/2,-z)' - ] - }, - 'i': { - 'multiplicity': 2, - 'site_symmetry': '2', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)' - ] - }, - 'h': { - 'multiplicity': 1, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(1/2,1/2,1/2)' - ] - }, - 'g': { - 'multiplicity': 1, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(1/2,1/2,0)' - ] - }, - 'f': { - 'multiplicity': 1, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(1/2,0,1/2)' - ] - }, - 'e': { - 'multiplicity': 1, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(0,1/2,1/2)' - ] - }, - 'd': { - 'multiplicity': 1, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(0,1/2,0)' - ] - }, - 'c': { - 'multiplicity': 1, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(1/2,0,0)' - ] - }, - 'b': { - 'multiplicity': 1, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(0,0,1/2)' - ] - }, - 'a': { - 'multiplicity': 1, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'o': {'multiplicity': 4, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(-x,-y,z)', '(-x,-y,-z)', '(x,y,-z)']}, + 'n': {'multiplicity': 2, 'site_symmetry': 'm', 'coords_xyz': ['(x,y,1/2)', '(-x,-y,1/2)']}, + 'm': {'multiplicity': 2, 'site_symmetry': 'm', 'coords_xyz': ['(x,y,0)', '(-x,-y,0)']}, + 'l': {'multiplicity': 2, 'site_symmetry': '2', 'coords_xyz': ['(1/2,1/2,z)', '(1/2,1/2,-z)']}, + 'k': {'multiplicity': 2, 'site_symmetry': '2', 'coords_xyz': ['(1/2,0,z)', '(1/2,0,-z)']}, + 'j': {'multiplicity': 2, 'site_symmetry': '2', 'coords_xyz': ['(0,1/2,z)', '(0,1/2,-z)']}, + 'i': {'multiplicity': 2, 'site_symmetry': '2', 'coords_xyz': ['(0,0,z)', '(0,0,-z)']}, + 'h': {'multiplicity': 1, 'site_symmetry': '2/m', 'coords_xyz': ['(1/2,1/2,1/2)']}, + 'g': {'multiplicity': 1, 'site_symmetry': '2/m', 'coords_xyz': ['(1/2,1/2,0)']}, + 'f': {'multiplicity': 1, 'site_symmetry': '2/m', 'coords_xyz': ['(1/2,0,1/2)']}, + 'e': {'multiplicity': 1, 'site_symmetry': '2/m', 'coords_xyz': ['(0,1/2,1/2)']}, + 'd': {'multiplicity': 1, 'site_symmetry': '2/m', 'coords_xyz': ['(0,1/2,0)']}, + 'c': {'multiplicity': 1, 'site_symmetry': '2/m', 'coords_xyz': ['(1/2,0,0)']}, + 'b': {'multiplicity': 1, 'site_symmetry': '2/m', 'coords_xyz': ['(0,0,1/2)']}, + 'a': {'multiplicity': 1, 'site_symmetry': '2/m', 'coords_xyz': ['(0,0,0)']}, + }, }, (10, '-c1'): { 'IT_number': 10, @@ -1556,121 +544,22 @@ 'name_H-M_alt': 'P 1 1 2/m', 'crystal_system': 'monoclinic', 'Wyckoff_positions': { - 'o': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z)', - '(-x,-y,-z)', - '(x,y,-z)' - ] - }, - 'n': { - 'multiplicity': 2, - 'site_symmetry': 'm', - 'coords_xyz': [ - '(x,y,1/2)', - '(-x,-y,1/2)' - ] - }, - 'm': { - 'multiplicity': 2, - 'site_symmetry': 'm', - 'coords_xyz': [ - '(x,y,0)', - '(-x,-y,0)' - ] - }, - 'l': { - 'multiplicity': 2, - 'site_symmetry': '2', - 'coords_xyz': [ - '(1/2,-1/2,z)', - '(1/2,-1/2,-z)' - ] - }, - 'k': { - 'multiplicity': 2, - 'site_symmetry': '2', - 'coords_xyz': [ - '(0,-1/2,z)', - '(0,-1/2,-z)' - ] - }, - 'j': { - 'multiplicity': 2, - 'site_symmetry': '2', - 'coords_xyz': [ - '(1/2,0,z)', - '(1/2,0,-z)' - ] - }, - 'i': { - 'multiplicity': 2, - 'site_symmetry': '2', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)' - ] - }, - 'h': { - 'multiplicity': 1, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(1/2,-1/2,1/2)' - ] - }, - 'g': { - 'multiplicity': 1, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(1/2,-1/2,0)' - ] - }, - 'f': { - 'multiplicity': 1, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(0,-1/2,1/2)' - ] - }, - 'e': { - 'multiplicity': 1, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(1/2,0,1/2)' - ] - }, - 'd': { - 'multiplicity': 1, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(1/2,0,0)' - ] - }, - 'c': { - 'multiplicity': 1, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(0,-1/2,0)' - ] - }, - 'b': { - 'multiplicity': 1, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(0,0,1/2)' - ] - }, - 'a': { - 'multiplicity': 1, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'o': {'multiplicity': 4, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(-x,-y,z)', '(-x,-y,-z)', '(x,y,-z)']}, + 'n': {'multiplicity': 2, 'site_symmetry': 'm', 'coords_xyz': ['(x,y,1/2)', '(-x,-y,1/2)']}, + 'm': {'multiplicity': 2, 'site_symmetry': 'm', 'coords_xyz': ['(x,y,0)', '(-x,-y,0)']}, + 'l': {'multiplicity': 2, 'site_symmetry': '2', 'coords_xyz': ['(1/2,-1/2,z)', '(1/2,-1/2,-z)']}, + 'k': {'multiplicity': 2, 'site_symmetry': '2', 'coords_xyz': ['(0,-1/2,z)', '(0,-1/2,-z)']}, + 'j': {'multiplicity': 2, 'site_symmetry': '2', 'coords_xyz': ['(1/2,0,z)', '(1/2,0,-z)']}, + 'i': {'multiplicity': 2, 'site_symmetry': '2', 'coords_xyz': ['(0,0,z)', '(0,0,-z)']}, + 'h': {'multiplicity': 1, 'site_symmetry': '2/m', 'coords_xyz': ['(1/2,-1/2,1/2)']}, + 'g': {'multiplicity': 1, 'site_symmetry': '2/m', 'coords_xyz': ['(1/2,-1/2,0)']}, + 'f': {'multiplicity': 1, 'site_symmetry': '2/m', 'coords_xyz': ['(0,-1/2,1/2)']}, + 'e': {'multiplicity': 1, 'site_symmetry': '2/m', 'coords_xyz': ['(1/2,0,1/2)']}, + 'd': {'multiplicity': 1, 'site_symmetry': '2/m', 'coords_xyz': ['(1/2,0,0)']}, + 'c': {'multiplicity': 1, 'site_symmetry': '2/m', 'coords_xyz': ['(0,-1/2,0)']}, + 'b': {'multiplicity': 1, 'site_symmetry': '2/m', 'coords_xyz': ['(0,0,1/2)']}, + 'a': {'multiplicity': 1, 'site_symmetry': '2/m', 'coords_xyz': ['(0,0,0)']}, + }, }, (10, 'a1'): { 'IT_number': 10, @@ -1679,121 +568,22 @@ 'name_H-M_alt': 'P 2/m 1 1', 'crystal_system': 'monoclinic', 'Wyckoff_positions': { - 'o': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,-y,-z)', - '(-x,-y,-z)', - '(-x,y,z)' - ] - }, - 'n': { - 'multiplicity': 2, - 'site_symmetry': 'm', - 'coords_xyz': [ - '(1/2,y,z)', - '(1/2,-y,-z)' - ] - }, - 'm': { - 'multiplicity': 2, - 'site_symmetry': 'm', - 'coords_xyz': [ - '(0,y,z)', - '(0,-y,-z)' - ] - }, - 'l': { - 'multiplicity': 2, - 'site_symmetry': '2', - 'coords_xyz': [ - '(x,1/2,1/2)', - '(-x,1/2,1/2)' - ] - }, - 'k': { - 'multiplicity': 2, - 'site_symmetry': '2', - 'coords_xyz': [ - '(x,1/2,0)', - '(-x,1/2,0)' - ] - }, - 'j': { - 'multiplicity': 2, - 'site_symmetry': '2', - 'coords_xyz': [ - '(x,0,1/2)', - '(-x,0,1/2)' - ] - }, - 'i': { - 'multiplicity': 2, - 'site_symmetry': '2', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)' - ] - }, - 'h': { - 'multiplicity': 1, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(1/2,1/2,1/2)' - ] - }, - 'g': { - 'multiplicity': 1, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(0,1/2,1/2)' - ] - }, - 'f': { - 'multiplicity': 1, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(1/2,1/2,0)' - ] - }, - 'e': { - 'multiplicity': 1, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(1/2,0,1/2)' - ] - }, - 'd': { - 'multiplicity': 1, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(0,0,1/2)' - ] - }, - 'c': { - 'multiplicity': 1, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(0,1/2,0)' - ] - }, - 'b': { - 'multiplicity': 1, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(1/2,0,0)' - ] - }, - 'a': { - 'multiplicity': 1, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'o': {'multiplicity': 4, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(x,-y,-z)', '(-x,-y,-z)', '(-x,y,z)']}, + 'n': {'multiplicity': 2, 'site_symmetry': 'm', 'coords_xyz': ['(1/2,y,z)', '(1/2,-y,-z)']}, + 'm': {'multiplicity': 2, 'site_symmetry': 'm', 'coords_xyz': ['(0,y,z)', '(0,-y,-z)']}, + 'l': {'multiplicity': 2, 'site_symmetry': '2', 'coords_xyz': ['(x,1/2,1/2)', '(-x,1/2,1/2)']}, + 'k': {'multiplicity': 2, 'site_symmetry': '2', 'coords_xyz': ['(x,1/2,0)', '(-x,1/2,0)']}, + 'j': {'multiplicity': 2, 'site_symmetry': '2', 'coords_xyz': ['(x,0,1/2)', '(-x,0,1/2)']}, + 'i': {'multiplicity': 2, 'site_symmetry': '2', 'coords_xyz': ['(x,0,0)', '(-x,0,0)']}, + 'h': {'multiplicity': 1, 'site_symmetry': '2/m', 'coords_xyz': ['(1/2,1/2,1/2)']}, + 'g': {'multiplicity': 1, 'site_symmetry': '2/m', 'coords_xyz': ['(0,1/2,1/2)']}, + 'f': {'multiplicity': 1, 'site_symmetry': '2/m', 'coords_xyz': ['(1/2,1/2,0)']}, + 'e': {'multiplicity': 1, 'site_symmetry': '2/m', 'coords_xyz': ['(1/2,0,1/2)']}, + 'd': {'multiplicity': 1, 'site_symmetry': '2/m', 'coords_xyz': ['(0,0,1/2)']}, + 'c': {'multiplicity': 1, 'site_symmetry': '2/m', 'coords_xyz': ['(0,1/2,0)']}, + 'b': {'multiplicity': 1, 'site_symmetry': '2/m', 'coords_xyz': ['(1/2,0,0)']}, + 'a': {'multiplicity': 1, 'site_symmetry': '2/m', 'coords_xyz': ['(0,0,0)']}, + }, }, (10, '-a1'): { 'IT_number': 10, @@ -1802,298 +592,79 @@ 'name_H-M_alt': 'P 2/m 1 1', 'crystal_system': 'monoclinic', 'Wyckoff_positions': { - 'o': { + 'o': {'multiplicity': 4, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(x,-y,-z)', '(-x,-y,-z)', '(-x,y,z)']}, + 'n': {'multiplicity': 2, 'site_symmetry': 'm', 'coords_xyz': ['(1/2,y,z)', '(1/2,-y,-z)']}, + 'm': {'multiplicity': 2, 'site_symmetry': 'm', 'coords_xyz': ['(0,y,z)', '(0,-y,-z)']}, + 'l': {'multiplicity': 2, 'site_symmetry': '2', 'coords_xyz': ['(x,1/2,-1/2)', '(-x,1/2,-1/2)']}, + 'k': {'multiplicity': 2, 'site_symmetry': '2', 'coords_xyz': ['(x,0,-1/2)', '(-x,0,-1/2)']}, + 'j': {'multiplicity': 2, 'site_symmetry': '2', 'coords_xyz': ['(x,1/2,0)', '(-x,1/2,0)']}, + 'i': {'multiplicity': 2, 'site_symmetry': '2', 'coords_xyz': ['(x,0,0)', '(-x,0,0)']}, + 'h': {'multiplicity': 1, 'site_symmetry': '2/m', 'coords_xyz': ['(1/2,1/2,-1/2)']}, + 'g': {'multiplicity': 1, 'site_symmetry': '2/m', 'coords_xyz': ['(0,1/2,-1/2)']}, + 'f': {'multiplicity': 1, 'site_symmetry': '2/m', 'coords_xyz': ['(1/2,0,-1/2)']}, + 'e': {'multiplicity': 1, 'site_symmetry': '2/m', 'coords_xyz': ['(1/2,1/2,0)']}, + 'd': {'multiplicity': 1, 'site_symmetry': '2/m', 'coords_xyz': ['(0,1/2,0)']}, + 'c': {'multiplicity': 1, 'site_symmetry': '2/m', 'coords_xyz': ['(0,0,-1/2)']}, + 'b': {'multiplicity': 1, 'site_symmetry': '2/m', 'coords_xyz': ['(1/2,0,0)']}, + 'a': {'multiplicity': 1, 'site_symmetry': '2/m', 'coords_xyz': ['(0,0,0)']}, + }, + }, + (11, 'b1'): { + 'IT_number': 11, + 'setting': 0, + 'IT_coordinate_system_code': 'b1', + 'name_H-M_alt': 'P 1 21/m 1', + 'crystal_system': 'monoclinic', + 'Wyckoff_positions': { + 'f': { 'multiplicity': 4, 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,-y,-z)', - '(-x,-y,-z)', - '(-x,y,z)' - ] - }, - 'n': { - 'multiplicity': 2, - 'site_symmetry': 'm', - 'coords_xyz': [ - '(1/2,y,z)', - '(1/2,-y,-z)' - ] + 'coords_xyz': ['(x,y,z)', '(-x,y+1/2,-z)', '(-x,-y,-z)', '(x,-y+1/2,z)'], }, - 'm': { - 'multiplicity': 2, - 'site_symmetry': 'm', - 'coords_xyz': [ - '(0,y,z)', - '(0,-y,-z)' - ] - }, - 'l': { - 'multiplicity': 2, - 'site_symmetry': '2', - 'coords_xyz': [ - '(x,1/2,-1/2)', - '(-x,1/2,-1/2)' - ] + 'e': {'multiplicity': 2, 'site_symmetry': 'm', 'coords_xyz': ['(x,1/4,z)', '(-x,3/4,-z)']}, + 'd': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(1/2,0,1/2)', '(1/2,1/2,1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(0,0,1/2)', '(0,1/2,1/2)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(1/2,0,0)', '(1/2,1/2,0)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(0,0,0)', '(0,1/2,0)']}, + }, + }, + (11, '-b1'): { + 'IT_number': 11, + 'setting': 3, + 'IT_coordinate_system_code': '-b1', + 'name_H-M_alt': 'P 1 21/m 1', + 'crystal_system': 'monoclinic', + 'Wyckoff_positions': { + 'f': { + 'multiplicity': 4, + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(-x,y+1/2,-z)', '(-x,-y,-z)', '(x,-y+1/2,z)'], }, - 'k': { - 'multiplicity': 2, - 'site_symmetry': '2', - 'coords_xyz': [ - '(x,0,-1/2)', - '(-x,0,-1/2)' - ] + 'e': {'multiplicity': 2, 'site_symmetry': 'm', 'coords_xyz': ['(x,1/4,z)', '(-x,3/4,-z)']}, + 'd': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(-1/2,0,1/2)', '(-1/2,1/2,1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(-1/2,0,0)', '(-1/2,1/2,0)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(0,0,1/2)', '(0,1/2,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(0,0,0)', '(0,1/2,0)']}, + }, + }, + (11, 'c1'): { + 'IT_number': 11, + 'setting': 6, + 'IT_coordinate_system_code': 'c1', + 'name_H-M_alt': 'P 1 1 21/m', + 'crystal_system': 'monoclinic', + 'Wyckoff_positions': { + 'f': { + 'multiplicity': 4, + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(-x,-y,z+1/2)', '(-x,-y,-z)', '(x,y,-z+1/2)'], }, - 'j': { - 'multiplicity': 2, - 'site_symmetry': '2', - 'coords_xyz': [ - '(x,1/2,0)', - '(-x,1/2,0)' - ] - }, - 'i': { - 'multiplicity': 2, - 'site_symmetry': '2', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)' - ] - }, - 'h': { - 'multiplicity': 1, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(1/2,1/2,-1/2)' - ] - }, - 'g': { - 'multiplicity': 1, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(0,1/2,-1/2)' - ] - }, - 'f': { - 'multiplicity': 1, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(1/2,0,-1/2)' - ] - }, - 'e': { - 'multiplicity': 1, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(1/2,1/2,0)' - ] - }, - 'd': { - 'multiplicity': 1, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(0,1/2,0)' - ] - }, - 'c': { - 'multiplicity': 1, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(0,0,-1/2)' - ] - }, - 'b': { - 'multiplicity': 1, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(1/2,0,0)' - ] - }, - 'a': { - 'multiplicity': 1, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } - }, - (11, 'b1'): { - 'IT_number': 11, - 'setting': 0, - 'IT_coordinate_system_code': 'b1', - 'name_H-M_alt': 'P 1 21/m 1', - 'crystal_system': 'monoclinic', - 'Wyckoff_positions': { - 'f': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y+1/2,-z)', - '(-x,-y,-z)', - '(x,-y+1/2,z)' - ] - }, - 'e': { - 'multiplicity': 2, - 'site_symmetry': 'm', - 'coords_xyz': [ - '(x,1/4,z)', - '(-x,3/4,-z)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/2,0,1/2)', - '(1/2,1/2,1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,1/2)', - '(0,1/2,1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/2,0,0)', - '(1/2,1/2,0)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(0,1/2,0)' - ] - } - } - }, - (11, '-b1'): { - 'IT_number': 11, - 'setting': 3, - 'IT_coordinate_system_code': '-b1', - 'name_H-M_alt': 'P 1 21/m 1', - 'crystal_system': 'monoclinic', - 'Wyckoff_positions': { - 'f': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y+1/2,-z)', - '(-x,-y,-z)', - '(x,-y+1/2,z)' - ] - }, - 'e': { - 'multiplicity': 2, - 'site_symmetry': 'm', - 'coords_xyz': [ - '(x,1/4,z)', - '(-x,3/4,-z)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(-1/2,0,1/2)', - '(-1/2,1/2,1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(-1/2,0,0)', - '(-1/2,1/2,0)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,1/2)', - '(0,1/2,1/2)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(0,1/2,0)' - ] - } - } - }, - (11, 'c1'): { - 'IT_number': 11, - 'setting': 6, - 'IT_coordinate_system_code': 'c1', - 'name_H-M_alt': 'P 1 1 21/m', - 'crystal_system': 'monoclinic', - 'Wyckoff_positions': { - 'f': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z+1/2)', - '(-x,-y,-z)', - '(x,y,-z+1/2)' - ] - }, - 'e': { - 'multiplicity': 2, - 'site_symmetry': 'm', - 'coords_xyz': [ - '(x,y,1/4)', - '(-x,-y,3/4)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/2,1/2,0)', - '(1/2,1/2,1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/2,0,0)', - '(1/2,0,1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,1/2,0)', - '(0,1/2,1/2)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(0,0,1/2)' - ] - } - } + 'e': {'multiplicity': 2, 'site_symmetry': 'm', 'coords_xyz': ['(x,y,1/4)', '(-x,-y,3/4)']}, + 'd': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(1/2,1/2,0)', '(1/2,1/2,1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(1/2,0,0)', '(1/2,0,1/2)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(0,1/2,0)', '(0,1/2,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(0,0,0)', '(0,0,1/2)']}, + }, }, (11, '-c1'): { 'IT_number': 11, @@ -2105,54 +676,14 @@ 'f': { 'multiplicity': 4, 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z+1/2)', - '(-x,-y,-z)', - '(x,y,-z+1/2)' - ] - }, - 'e': { - 'multiplicity': 2, - 'site_symmetry': 'm', - 'coords_xyz': [ - '(x,y,1/4)', - '(-x,-y,3/4)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/2,-1/2,0)', - '(1/2,-1/2,1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,-1/2,0)', - '(0,-1/2,1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/2,0,0)', - '(1/2,0,1/2)' - ] + 'coords_xyz': ['(x,y,z)', '(-x,-y,z+1/2)', '(-x,-y,-z)', '(x,y,-z+1/2)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(0,0,1/2)' - ] - } - } + 'e': {'multiplicity': 2, 'site_symmetry': 'm', 'coords_xyz': ['(x,y,1/4)', '(-x,-y,3/4)']}, + 'd': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(1/2,-1/2,0)', '(1/2,-1/2,1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(0,-1/2,0)', '(0,-1/2,1/2)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(1/2,0,0)', '(1/2,0,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(0,0,0)', '(0,0,1/2)']}, + }, }, (11, 'a1'): { 'IT_number': 11, @@ -2164,54 +695,14 @@ 'f': { 'multiplicity': 4, 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x+1/2,-y,-z)', - '(-x,-y,-z)', - '(-x+1/2,y,z)' - ] - }, - 'e': { - 'multiplicity': 2, - 'site_symmetry': 'm', - 'coords_xyz': [ - '(1/4,y,z)', - '(3/4,-y,-z)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,1/2,1/2)', - '(1/2,1/2,1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,1/2,0)', - '(1/2,1/2,0)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,1/2)', - '(1/2,0,1/2)' - ] + 'coords_xyz': ['(x,y,z)', '(x+1/2,-y,-z)', '(-x,-y,-z)', '(-x+1/2,y,z)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,0,0)' - ] - } - } + 'e': {'multiplicity': 2, 'site_symmetry': 'm', 'coords_xyz': ['(1/4,y,z)', '(3/4,-y,-z)']}, + 'd': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(0,1/2,1/2)', '(1/2,1/2,1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(0,1/2,0)', '(1/2,1/2,0)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(0,0,1/2)', '(1/2,0,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(0,0,0)', '(1/2,0,0)']}, + }, }, (11, '-a1'): { 'IT_number': 11, @@ -2223,54 +714,14 @@ 'f': { 'multiplicity': 4, 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x+1/2,-y,-z)', - '(-x,-y,-z)', - '(-x+1/2,y,z)' - ] - }, - 'e': { - 'multiplicity': 2, - 'site_symmetry': 'm', - 'coords_xyz': [ - '(1/4,y,z)', - '(3/4,-y,-z)' - ] + 'coords_xyz': ['(x,y,z)', '(x+1/2,-y,-z)', '(-x,-y,-z)', '(-x+1/2,y,z)'], }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,1/2,-1/2)', - '(1/2,1/2,-1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,-1/2)', - '(1/2,0,-1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,1/2,0)', - '(1/2,1/2,0)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,0,0)' - ] - } - } + 'e': {'multiplicity': 2, 'site_symmetry': 'm', 'coords_xyz': ['(1/4,y,z)', '(3/4,-y,-z)']}, + 'd': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(0,1/2,-1/2)', '(1/2,1/2,-1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(0,0,-1/2)', '(1/2,0,-1/2)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(0,1/2,0)', '(1/2,1/2,0)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(0,0,0)', '(1/2,0,0)']}, + }, }, (12, 'b1'): { 'IT_number': 12, @@ -2279,85 +730,17 @@ 'name_H-M_alt': 'C 1 2/m 1', 'crystal_system': 'monoclinic', 'Wyckoff_positions': { - 'j': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y,-z)', - '(-x,-y,-z)', - '(x,-y,z)' - ] - }, - 'i': { - 'multiplicity': 4, - 'site_symmetry': 'm', - 'coords_xyz': [ - '(x,0,z)', - '(-x,0,-z)' - ] - }, - 'h': { - 'multiplicity': 4, - 'site_symmetry': '2', - 'coords_xyz': [ - '(0,y,1/2)', - '(0,-y,1/2)' - ] - }, - 'g': { - 'multiplicity': 4, - 'site_symmetry': '2', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y,0)' - ] - }, - 'f': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/4,1/4,1/2)', - '(3/4,1/4,1/2)' - ] - }, - 'e': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/4,1/4,0)', - '(3/4,1/4,0)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(0,1/2,1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(0,0,1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(0,1/2,0)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'j': {'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(-x,y,-z)', '(-x,-y,-z)', '(x,-y,z)']}, + 'i': {'multiplicity': 4, 'site_symmetry': 'm', 'coords_xyz': ['(x,0,z)', '(-x,0,-z)']}, + 'h': {'multiplicity': 4, 'site_symmetry': '2', 'coords_xyz': ['(0,y,1/2)', '(0,-y,1/2)']}, + 'g': {'multiplicity': 4, 'site_symmetry': '2', 'coords_xyz': ['(0,y,0)', '(0,-y,0)']}, + 'f': {'multiplicity': 4, 'site_symmetry': '-1', 'coords_xyz': ['(1/4,1/4,1/2)', '(3/4,1/4,1/2)']}, + 'e': {'multiplicity': 4, 'site_symmetry': '-1', 'coords_xyz': ['(1/4,1/4,0)', '(3/4,1/4,0)']}, + 'd': {'multiplicity': 2, 'site_symmetry': '2/m', 'coords_xyz': ['(0,1/2,1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '2/m', 'coords_xyz': ['(0,0,1/2)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '2/m', 'coords_xyz': ['(0,1/2,0)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '2/m', 'coords_xyz': ['(0,0,0)']}, + }, }, (12, '-b1'): { 'IT_number': 12, @@ -2366,85 +749,17 @@ 'name_H-M_alt': 'A 1 2/m 1', 'crystal_system': 'monoclinic', 'Wyckoff_positions': { - 'j': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y,-z)', - '(-x,-y,-z)', - '(x,-y,z)' - ] - }, - 'i': { - 'multiplicity': 4, - 'site_symmetry': 'm', - 'coords_xyz': [ - '(x,0,z)', - '(-x,0,-z)' - ] - }, - 'h': { - 'multiplicity': 4, - 'site_symmetry': '2', - 'coords_xyz': [ - '(-1/2,y,0)', - '(-1/2,-y,0)' - ] - }, - 'g': { - 'multiplicity': 4, - 'site_symmetry': '2', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y,0)' - ] - }, - 'f': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(-1/2,1/4,1/4)', - '(-1/2,1/4,3/4)' - ] - }, - 'e': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,1/4,1/4)', - '(0,1/4,3/4)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(-1/2,1/2,0)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(-1/2,0,0)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(0,1/2,0)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'j': {'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(-x,y,-z)', '(-x,-y,-z)', '(x,-y,z)']}, + 'i': {'multiplicity': 4, 'site_symmetry': 'm', 'coords_xyz': ['(x,0,z)', '(-x,0,-z)']}, + 'h': {'multiplicity': 4, 'site_symmetry': '2', 'coords_xyz': ['(-1/2,y,0)', '(-1/2,-y,0)']}, + 'g': {'multiplicity': 4, 'site_symmetry': '2', 'coords_xyz': ['(0,y,0)', '(0,-y,0)']}, + 'f': {'multiplicity': 4, 'site_symmetry': '-1', 'coords_xyz': ['(-1/2,1/4,1/4)', '(-1/2,1/4,3/4)']}, + 'e': {'multiplicity': 4, 'site_symmetry': '-1', 'coords_xyz': ['(0,1/4,1/4)', '(0,1/4,3/4)']}, + 'd': {'multiplicity': 2, 'site_symmetry': '2/m', 'coords_xyz': ['(-1/2,1/2,0)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '2/m', 'coords_xyz': ['(-1/2,0,0)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '2/m', 'coords_xyz': ['(0,1/2,0)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '2/m', 'coords_xyz': ['(0,0,0)']}, + }, }, (12, 'c1'): { 'IT_number': 12, @@ -2453,85 +768,17 @@ 'name_H-M_alt': 'A 1 1 2/m', 'crystal_system': 'monoclinic', 'Wyckoff_positions': { - 'j': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z)', - '(-x,-y,-z)', - '(x,y,-z)' - ] - }, - 'i': { - 'multiplicity': 4, - 'site_symmetry': 'm', - 'coords_xyz': [ - '(x,y,0)', - '(-x,-y,0)' - ] - }, - 'h': { - 'multiplicity': 4, - 'site_symmetry': '2', - 'coords_xyz': [ - '(1/2,0,z)', - '(1/2,0,-z)' - ] - }, - 'g': { - 'multiplicity': 4, - 'site_symmetry': '2', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)' - ] - }, - 'f': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/2,1/4,1/4)', - '(1/2,3/4,1/4)' - ] - }, - 'e': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,1/4,1/4)', - '(0,3/4,1/4)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(1/2,0,1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(1/2,0,0)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(0,0,1/2)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'j': {'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(-x,-y,z)', '(-x,-y,-z)', '(x,y,-z)']}, + 'i': {'multiplicity': 4, 'site_symmetry': 'm', 'coords_xyz': ['(x,y,0)', '(-x,-y,0)']}, + 'h': {'multiplicity': 4, 'site_symmetry': '2', 'coords_xyz': ['(1/2,0,z)', '(1/2,0,-z)']}, + 'g': {'multiplicity': 4, 'site_symmetry': '2', 'coords_xyz': ['(0,0,z)', '(0,0,-z)']}, + 'f': {'multiplicity': 4, 'site_symmetry': '-1', 'coords_xyz': ['(1/2,1/4,1/4)', '(1/2,3/4,1/4)']}, + 'e': {'multiplicity': 4, 'site_symmetry': '-1', 'coords_xyz': ['(0,1/4,1/4)', '(0,3/4,1/4)']}, + 'd': {'multiplicity': 2, 'site_symmetry': '2/m', 'coords_xyz': ['(1/2,0,1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '2/m', 'coords_xyz': ['(1/2,0,0)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '2/m', 'coords_xyz': ['(0,0,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '2/m', 'coords_xyz': ['(0,0,0)']}, + }, }, (12, '-c1'): { 'IT_number': 12, @@ -2540,85 +787,17 @@ 'name_H-M_alt': 'B 1 1 2/m', 'crystal_system': 'monoclinic', 'Wyckoff_positions': { - 'j': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z)', - '(-x,-y,-z)', - '(x,y,-z)' - ] - }, - 'i': { - 'multiplicity': 4, - 'site_symmetry': 'm', - 'coords_xyz': [ - '(x,y,0)', - '(-x,-y,0)' - ] - }, - 'h': { - 'multiplicity': 4, - 'site_symmetry': '2', - 'coords_xyz': [ - '(0,-1/2,z)', - '(0,-1/2,-z)' - ] - }, - 'g': { - 'multiplicity': 4, - 'site_symmetry': '2', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)' - ] - }, - 'f': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/4,-1/2,1/4)', - '(3/4,-1/2,1/4)' - ] - }, - 'e': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/4,0,1/4)', - '(3/4,0,1/4)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(0,-1/2,1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(0,-1/2,0)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(0,0,1/2)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'j': {'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(-x,-y,z)', '(-x,-y,-z)', '(x,y,-z)']}, + 'i': {'multiplicity': 4, 'site_symmetry': 'm', 'coords_xyz': ['(x,y,0)', '(-x,-y,0)']}, + 'h': {'multiplicity': 4, 'site_symmetry': '2', 'coords_xyz': ['(0,-1/2,z)', '(0,-1/2,-z)']}, + 'g': {'multiplicity': 4, 'site_symmetry': '2', 'coords_xyz': ['(0,0,z)', '(0,0,-z)']}, + 'f': {'multiplicity': 4, 'site_symmetry': '-1', 'coords_xyz': ['(1/4,-1/2,1/4)', '(3/4,-1/2,1/4)']}, + 'e': {'multiplicity': 4, 'site_symmetry': '-1', 'coords_xyz': ['(1/4,0,1/4)', '(3/4,0,1/4)']}, + 'd': {'multiplicity': 2, 'site_symmetry': '2/m', 'coords_xyz': ['(0,-1/2,1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '2/m', 'coords_xyz': ['(0,-1/2,0)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '2/m', 'coords_xyz': ['(0,0,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '2/m', 'coords_xyz': ['(0,0,0)']}, + }, }, (12, 'a1'): { 'IT_number': 12, @@ -2627,85 +806,17 @@ 'name_H-M_alt': 'B 2/m 1 1', 'crystal_system': 'monoclinic', 'Wyckoff_positions': { - 'j': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,-y,-z)', - '(-x,-y,-z)', - '(-x,y,z)' - ] - }, - 'i': { - 'multiplicity': 4, - 'site_symmetry': 'm', - 'coords_xyz': [ - '(0,y,z)', - '(0,-y,-z)' - ] - }, - 'h': { - 'multiplicity': 4, - 'site_symmetry': '2', - 'coords_xyz': [ - '(x,1/2,0)', - '(-x,1/2,0)' - ] - }, - 'g': { - 'multiplicity': 4, - 'site_symmetry': '2', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)' - ] - }, - 'f': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/4,1/2,1/4)', - '(1/4,1/2,3/4)' - ] - }, - 'e': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/4,0,1/4)', - '(1/4,0,3/4)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(1/2,1/2,0)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(0,1/2,0)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(1/2,0,0)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'j': {'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(x,-y,-z)', '(-x,-y,-z)', '(-x,y,z)']}, + 'i': {'multiplicity': 4, 'site_symmetry': 'm', 'coords_xyz': ['(0,y,z)', '(0,-y,-z)']}, + 'h': {'multiplicity': 4, 'site_symmetry': '2', 'coords_xyz': ['(x,1/2,0)', '(-x,1/2,0)']}, + 'g': {'multiplicity': 4, 'site_symmetry': '2', 'coords_xyz': ['(x,0,0)', '(-x,0,0)']}, + 'f': {'multiplicity': 4, 'site_symmetry': '-1', 'coords_xyz': ['(1/4,1/2,1/4)', '(1/4,1/2,3/4)']}, + 'e': {'multiplicity': 4, 'site_symmetry': '-1', 'coords_xyz': ['(1/4,0,1/4)', '(1/4,0,3/4)']}, + 'd': {'multiplicity': 2, 'site_symmetry': '2/m', 'coords_xyz': ['(1/2,1/2,0)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '2/m', 'coords_xyz': ['(0,1/2,0)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '2/m', 'coords_xyz': ['(1/2,0,0)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '2/m', 'coords_xyz': ['(0,0,0)']}, + }, }, (12, '-a1'): { 'IT_number': 12, @@ -2714,85 +825,17 @@ 'name_H-M_alt': 'C 2/m 1 1', 'crystal_system': 'monoclinic', 'Wyckoff_positions': { - 'j': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,-y,-z)', - '(-x,-y,-z)', - '(-x,y,z)' - ] - }, - 'i': { - 'multiplicity': 4, - 'site_symmetry': 'm', - 'coords_xyz': [ - '(0,y,z)', - '(0,-y,-z)' - ] - }, - 'h': { - 'multiplicity': 4, - 'site_symmetry': '2', - 'coords_xyz': [ - '(x,0,-1/2)', - '(-x,0,-1/2)' - ] - }, - 'g': { - 'multiplicity': 4, - 'site_symmetry': '2', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)' - ] - }, - 'f': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/4,1/4,-1/2)', - '(1/4,3/4,-1/2)' - ] - }, - 'e': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/4,1/4,0)', - '(1/4,3/4,0)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(1/2,0,-1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(0,0,-1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(1/2,0,0)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'j': {'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(x,-y,-z)', '(-x,-y,-z)', '(-x,y,z)']}, + 'i': {'multiplicity': 4, 'site_symmetry': 'm', 'coords_xyz': ['(0,y,z)', '(0,-y,-z)']}, + 'h': {'multiplicity': 4, 'site_symmetry': '2', 'coords_xyz': ['(x,0,-1/2)', '(-x,0,-1/2)']}, + 'g': {'multiplicity': 4, 'site_symmetry': '2', 'coords_xyz': ['(x,0,0)', '(-x,0,0)']}, + 'f': {'multiplicity': 4, 'site_symmetry': '-1', 'coords_xyz': ['(1/4,1/4,-1/2)', '(1/4,3/4,-1/2)']}, + 'e': {'multiplicity': 4, 'site_symmetry': '-1', 'coords_xyz': ['(1/4,1/4,0)', '(1/4,3/4,0)']}, + 'd': {'multiplicity': 2, 'site_symmetry': '2/m', 'coords_xyz': ['(1/2,0,-1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '2/m', 'coords_xyz': ['(0,0,-1/2)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '2/m', 'coords_xyz': ['(1/2,0,0)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '2/m', 'coords_xyz': ['(0,0,0)']}, + }, }, (12, 'b3'): { 'IT_number': 12, @@ -2801,85 +844,17 @@ 'name_H-M_alt': 'I 1 2/m 1', 'crystal_system': 'monoclinic', 'Wyckoff_positions': { - 'j': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y,-z)', - '(-x,-y,-z)', - '(x,-y,z)' - ] - }, - 'i': { - 'multiplicity': 4, - 'site_symmetry': 'm', - 'coords_xyz': [ - '(x,0,z)', - '(-x,0,-z)' - ] - }, - 'h': { - 'multiplicity': 4, - 'site_symmetry': '2', - 'coords_xyz': [ - '(1/2,y,0)', - '(1/2,-y,0)' - ] - }, - 'g': { - 'multiplicity': 4, - 'site_symmetry': '2', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y,0)' - ] - }, - 'f': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/4,1/4,3/4)', - '(3/4,1/4,1/4)' - ] - }, - 'e': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(3/4,1/4,3/4)', - '(1/4,1/4,1/4)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(1/2,1/2,0)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(1/2,0,0)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(0,1/2,0)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'j': {'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(-x,y,-z)', '(-x,-y,-z)', '(x,-y,z)']}, + 'i': {'multiplicity': 4, 'site_symmetry': 'm', 'coords_xyz': ['(x,0,z)', '(-x,0,-z)']}, + 'h': {'multiplicity': 4, 'site_symmetry': '2', 'coords_xyz': ['(1/2,y,0)', '(1/2,-y,0)']}, + 'g': {'multiplicity': 4, 'site_symmetry': '2', 'coords_xyz': ['(0,y,0)', '(0,-y,0)']}, + 'f': {'multiplicity': 4, 'site_symmetry': '-1', 'coords_xyz': ['(1/4,1/4,3/4)', '(3/4,1/4,1/4)']}, + 'e': {'multiplicity': 4, 'site_symmetry': '-1', 'coords_xyz': ['(3/4,1/4,3/4)', '(1/4,1/4,1/4)']}, + 'd': {'multiplicity': 2, 'site_symmetry': '2/m', 'coords_xyz': ['(1/2,1/2,0)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '2/m', 'coords_xyz': ['(1/2,0,0)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '2/m', 'coords_xyz': ['(0,1/2,0)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '2/m', 'coords_xyz': ['(0,0,0)']}, + }, }, (12, '-b3'): { 'IT_number': 12, @@ -2888,85 +863,17 @@ 'name_H-M_alt': 'I 1 2/m 1', 'crystal_system': 'monoclinic', 'Wyckoff_positions': { - 'j': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y,-z)', - '(-x,-y,-z)', - '(x,-y,z)' - ] - }, - 'i': { - 'multiplicity': 4, - 'site_symmetry': 'm', - 'coords_xyz': [ - '(x,0,z)', - '(-x,0,-z)' - ] - }, - 'h': { - 'multiplicity': 4, - 'site_symmetry': '2', - 'coords_xyz': [ - '(0,y,1/2)', - '(0,-y,1/2)' - ] - }, - 'g': { - 'multiplicity': 4, - 'site_symmetry': '2', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y,0)' - ] - }, - 'f': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(-3/4,1/4,1/4)', - '(-1/4,1/4,3/4)' - ] - }, - 'e': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(-3/4,1/4,3/4)', - '(-1/4,1/4,1/4)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(0,1/2,1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(0,0,1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(0,1/2,0)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'j': {'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(-x,y,-z)', '(-x,-y,-z)', '(x,-y,z)']}, + 'i': {'multiplicity': 4, 'site_symmetry': 'm', 'coords_xyz': ['(x,0,z)', '(-x,0,-z)']}, + 'h': {'multiplicity': 4, 'site_symmetry': '2', 'coords_xyz': ['(0,y,1/2)', '(0,-y,1/2)']}, + 'g': {'multiplicity': 4, 'site_symmetry': '2', 'coords_xyz': ['(0,y,0)', '(0,-y,0)']}, + 'f': {'multiplicity': 4, 'site_symmetry': '-1', 'coords_xyz': ['(-3/4,1/4,1/4)', '(-1/4,1/4,3/4)']}, + 'e': {'multiplicity': 4, 'site_symmetry': '-1', 'coords_xyz': ['(-3/4,1/4,3/4)', '(-1/4,1/4,1/4)']}, + 'd': {'multiplicity': 2, 'site_symmetry': '2/m', 'coords_xyz': ['(0,1/2,1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '2/m', 'coords_xyz': ['(0,0,1/2)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '2/m', 'coords_xyz': ['(0,1/2,0)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '2/m', 'coords_xyz': ['(0,0,0)']}, + }, }, (12, 'c3'): { 'IT_number': 12, @@ -2975,85 +882,17 @@ 'name_H-M_alt': 'I 1 1 2/m', 'crystal_system': 'monoclinic', 'Wyckoff_positions': { - 'j': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z)', - '(-x,-y,-z)', - '(x,y,-z)' - ] - }, - 'i': { - 'multiplicity': 4, - 'site_symmetry': 'm', - 'coords_xyz': [ - '(x,y,0)', - '(-x,-y,0)' - ] - }, - 'h': { - 'multiplicity': 4, - 'site_symmetry': '2', - 'coords_xyz': [ - '(0,1/2,z)', - '(0,1/2,-z)' - ] - }, - 'g': { - 'multiplicity': 4, - 'site_symmetry': '2', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)' - ] - }, - 'f': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(3/4,1/4,1/4)', - '(1/4,3/4,1/4)' - ] - }, - 'e': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(3/4,3/4,1/4)', - '(1/4,1/4,1/4)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(0,1/2,1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(0,1/2,0)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(0,0,1/2)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'j': {'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(-x,-y,z)', '(-x,-y,-z)', '(x,y,-z)']}, + 'i': {'multiplicity': 4, 'site_symmetry': 'm', 'coords_xyz': ['(x,y,0)', '(-x,-y,0)']}, + 'h': {'multiplicity': 4, 'site_symmetry': '2', 'coords_xyz': ['(0,1/2,z)', '(0,1/2,-z)']}, + 'g': {'multiplicity': 4, 'site_symmetry': '2', 'coords_xyz': ['(0,0,z)', '(0,0,-z)']}, + 'f': {'multiplicity': 4, 'site_symmetry': '-1', 'coords_xyz': ['(3/4,1/4,1/4)', '(1/4,3/4,1/4)']}, + 'e': {'multiplicity': 4, 'site_symmetry': '-1', 'coords_xyz': ['(3/4,3/4,1/4)', '(1/4,1/4,1/4)']}, + 'd': {'multiplicity': 2, 'site_symmetry': '2/m', 'coords_xyz': ['(0,1/2,1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '2/m', 'coords_xyz': ['(0,1/2,0)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '2/m', 'coords_xyz': ['(0,0,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '2/m', 'coords_xyz': ['(0,0,0)']}, + }, }, (12, '-c3'): { 'IT_number': 12, @@ -3062,85 +901,17 @@ 'name_H-M_alt': 'I 1 1 2/m', 'crystal_system': 'monoclinic', 'Wyckoff_positions': { - 'j': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z)', - '(-x,-y,-z)', - '(x,y,-z)' - ] - }, - 'i': { - 'multiplicity': 4, - 'site_symmetry': 'm', - 'coords_xyz': [ - '(x,y,0)', - '(-x,-y,0)' - ] - }, - 'h': { - 'multiplicity': 4, - 'site_symmetry': '2', - 'coords_xyz': [ - '(1/2,0,z)', - '(1/2,0,-z)' - ] - }, - 'g': { - 'multiplicity': 4, - 'site_symmetry': '2', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)' - ] - }, - 'f': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/4,-3/4,1/4)', - '(3/4,-1/4,1/4)' - ] - }, - 'e': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(3/4,-3/4,1/4)', - '(1/4,-1/4,1/4)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(1/2,0,1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(1/2,0,0)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(0,0,1/2)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'j': {'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(-x,-y,z)', '(-x,-y,-z)', '(x,y,-z)']}, + 'i': {'multiplicity': 4, 'site_symmetry': 'm', 'coords_xyz': ['(x,y,0)', '(-x,-y,0)']}, + 'h': {'multiplicity': 4, 'site_symmetry': '2', 'coords_xyz': ['(1/2,0,z)', '(1/2,0,-z)']}, + 'g': {'multiplicity': 4, 'site_symmetry': '2', 'coords_xyz': ['(0,0,z)', '(0,0,-z)']}, + 'f': {'multiplicity': 4, 'site_symmetry': '-1', 'coords_xyz': ['(1/4,-3/4,1/4)', '(3/4,-1/4,1/4)']}, + 'e': {'multiplicity': 4, 'site_symmetry': '-1', 'coords_xyz': ['(3/4,-3/4,1/4)', '(1/4,-1/4,1/4)']}, + 'd': {'multiplicity': 2, 'site_symmetry': '2/m', 'coords_xyz': ['(1/2,0,1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '2/m', 'coords_xyz': ['(1/2,0,0)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '2/m', 'coords_xyz': ['(0,0,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '2/m', 'coords_xyz': ['(0,0,0)']}, + }, }, (12, 'a3'): { 'IT_number': 12, @@ -3149,85 +920,17 @@ 'name_H-M_alt': 'I 2/m 1 1', 'crystal_system': 'monoclinic', 'Wyckoff_positions': { - 'j': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,-y,-z)', - '(-x,-y,-z)', - '(-x,y,z)' - ] - }, - 'i': { - 'multiplicity': 4, - 'site_symmetry': 'm', - 'coords_xyz': [ - '(0,y,z)', - '(0,-y,-z)' - ] - }, - 'h': { - 'multiplicity': 4, - 'site_symmetry': '2', - 'coords_xyz': [ - '(x,0,1/2)', - '(-x,0,1/2)' - ] - }, - 'g': { - 'multiplicity': 4, - 'site_symmetry': '2', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)' - ] - }, - 'f': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/4,3/4,1/4)', - '(1/4,1/4,3/4)' - ] - }, - 'e': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/4,3/4,3/4)', - '(1/4,1/4,1/4)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(1/2,0,1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(0,0,1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(1/2,0,0)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'j': {'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(x,-y,-z)', '(-x,-y,-z)', '(-x,y,z)']}, + 'i': {'multiplicity': 4, 'site_symmetry': 'm', 'coords_xyz': ['(0,y,z)', '(0,-y,-z)']}, + 'h': {'multiplicity': 4, 'site_symmetry': '2', 'coords_xyz': ['(x,0,1/2)', '(-x,0,1/2)']}, + 'g': {'multiplicity': 4, 'site_symmetry': '2', 'coords_xyz': ['(x,0,0)', '(-x,0,0)']}, + 'f': {'multiplicity': 4, 'site_symmetry': '-1', 'coords_xyz': ['(1/4,3/4,1/4)', '(1/4,1/4,3/4)']}, + 'e': {'multiplicity': 4, 'site_symmetry': '-1', 'coords_xyz': ['(1/4,3/4,3/4)', '(1/4,1/4,1/4)']}, + 'd': {'multiplicity': 2, 'site_symmetry': '2/m', 'coords_xyz': ['(1/2,0,1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '2/m', 'coords_xyz': ['(0,0,1/2)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '2/m', 'coords_xyz': ['(1/2,0,0)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '2/m', 'coords_xyz': ['(0,0,0)']}, + }, }, (12, '-a3'): { 'IT_number': 12, @@ -3236,85 +939,17 @@ 'name_H-M_alt': 'I 2/m 1 1', 'crystal_system': 'monoclinic', 'Wyckoff_positions': { - 'j': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,-y,-z)', - '(-x,-y,-z)', - '(-x,y,z)' - ] - }, - 'i': { - 'multiplicity': 4, - 'site_symmetry': 'm', - 'coords_xyz': [ - '(0,y,z)', - '(0,-y,-z)' - ] - }, - 'h': { - 'multiplicity': 4, - 'site_symmetry': '2', - 'coords_xyz': [ - '(x,1/2,0)', - '(-x,1/2,0)' - ] - }, - 'g': { - 'multiplicity': 4, - 'site_symmetry': '2', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)' - ] - }, - 'f': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/4,1/4,-3/4)', - '(1/4,3/4,-1/4)' - ] - }, - 'e': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/4,3/4,-3/4)', - '(1/4,1/4,-1/4)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(1/2,1/2,0)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(0,1/2,0)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(1/2,0,0)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '2/m', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'j': {'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(x,-y,-z)', '(-x,-y,-z)', '(-x,y,z)']}, + 'i': {'multiplicity': 4, 'site_symmetry': 'm', 'coords_xyz': ['(0,y,z)', '(0,-y,-z)']}, + 'h': {'multiplicity': 4, 'site_symmetry': '2', 'coords_xyz': ['(x,1/2,0)', '(-x,1/2,0)']}, + 'g': {'multiplicity': 4, 'site_symmetry': '2', 'coords_xyz': ['(x,0,0)', '(-x,0,0)']}, + 'f': {'multiplicity': 4, 'site_symmetry': '-1', 'coords_xyz': ['(1/4,1/4,-3/4)', '(1/4,3/4,-1/4)']}, + 'e': {'multiplicity': 4, 'site_symmetry': '-1', 'coords_xyz': ['(1/4,3/4,-3/4)', '(1/4,1/4,-1/4)']}, + 'd': {'multiplicity': 2, 'site_symmetry': '2/m', 'coords_xyz': ['(1/2,1/2,0)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '2/m', 'coords_xyz': ['(0,1/2,0)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '2/m', 'coords_xyz': ['(1/2,0,0)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '2/m', 'coords_xyz': ['(0,0,0)']}, + }, }, (13, 'b1'): { 'IT_number': 13, @@ -3326,62 +961,15 @@ 'g': { 'multiplicity': 4, 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y,-z+1/2)', - '(-x,-y,-z)', - '(x,-y,z+1/2)' - ] - }, - 'f': { - 'multiplicity': 2, - 'site_symmetry': '2', - 'coords_xyz': [ - '(1/2,y,1/4)', - '(1/2,-y,3/4)' - ] - }, - 'e': { - 'multiplicity': 2, - 'site_symmetry': '2', - 'coords_xyz': [ - '(0,y,1/4)', - '(0,-y,3/4)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/2,0,0)', - '(1/2,0,1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,1/2,0)', - '(0,1/2,1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/2,1/2,0)', - '(1/2,1/2,1/2)' - ] + 'coords_xyz': ['(x,y,z)', '(-x,y,-z+1/2)', '(-x,-y,-z)', '(x,-y,z+1/2)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(0,0,1/2)' - ] - } - } + 'f': {'multiplicity': 2, 'site_symmetry': '2', 'coords_xyz': ['(1/2,y,1/4)', '(1/2,-y,3/4)']}, + 'e': {'multiplicity': 2, 'site_symmetry': '2', 'coords_xyz': ['(0,y,1/4)', '(0,-y,3/4)']}, + 'd': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(1/2,0,0)', '(1/2,0,1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(0,1/2,0)', '(0,1/2,1/2)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(1/2,1/2,0)', '(1/2,1/2,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(0,0,0)', '(0,0,1/2)']}, + }, }, (13, '-b1'): { 'IT_number': 13, @@ -3393,62 +981,15 @@ 'g': { 'multiplicity': 4, 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x-1/2,y,-z)', - '(-x,-y,-z)', - '(x-1/2,-y,z)' - ] - }, - 'f': { - 'multiplicity': 2, - 'site_symmetry': '2', - 'coords_xyz': [ - '(-1/4,y,1/2)', - '(-3/4,-y,1/2)' - ] - }, - 'e': { - 'multiplicity': 2, - 'site_symmetry': '2', - 'coords_xyz': [ - '(-1/4,y,0)', - '(-3/4,-y,0)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,1/2)', - '(-1/2,0,1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,1/2,0)', - '(-1/2,1/2,0)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,1/2,1/2)', - '(-1/2,1/2,1/2)' - ] + 'coords_xyz': ['(x,y,z)', '(-x-1/2,y,-z)', '(-x,-y,-z)', '(x-1/2,-y,z)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(-1/2,0,0)' - ] - } - } + 'f': {'multiplicity': 2, 'site_symmetry': '2', 'coords_xyz': ['(-1/4,y,1/2)', '(-3/4,-y,1/2)']}, + 'e': {'multiplicity': 2, 'site_symmetry': '2', 'coords_xyz': ['(-1/4,y,0)', '(-3/4,-y,0)']}, + 'd': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(0,0,1/2)', '(-1/2,0,1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(0,1/2,0)', '(-1/2,1/2,0)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(0,1/2,1/2)', '(-1/2,1/2,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(0,0,0)', '(-1/2,0,0)']}, + }, }, (13, 'c1'): { 'IT_number': 13, @@ -3460,62 +1001,15 @@ 'g': { 'multiplicity': 4, 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x+1/2,-y,z)', - '(-x,-y,-z)', - '(x+1/2,y,-z)' - ] - }, - 'f': { - 'multiplicity': 2, - 'site_symmetry': '2', - 'coords_xyz': [ - '(1/4,1/2,z)', - '(3/4,1/2,-z)' - ] - }, - 'e': { - 'multiplicity': 2, - 'site_symmetry': '2', - 'coords_xyz': [ - '(1/4,0,z)', - '(3/4,0,-z)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,1/2,0)', - '(1/2,1/2,0)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,1/2)', - '(1/2,0,1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,1/2,1/2)', - '(1/2,1/2,1/2)' - ] + 'coords_xyz': ['(x,y,z)', '(-x+1/2,-y,z)', '(-x,-y,-z)', '(x+1/2,y,-z)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,0,0)' - ] - } - } + 'f': {'multiplicity': 2, 'site_symmetry': '2', 'coords_xyz': ['(1/4,1/2,z)', '(3/4,1/2,-z)']}, + 'e': {'multiplicity': 2, 'site_symmetry': '2', 'coords_xyz': ['(1/4,0,z)', '(3/4,0,-z)']}, + 'd': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(0,1/2,0)', '(1/2,1/2,0)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(0,0,1/2)', '(1/2,0,1/2)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(0,1/2,1/2)', '(1/2,1/2,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(0,0,0)', '(1/2,0,0)']}, + }, }, (13, '-c1'): { 'IT_number': 13, @@ -3527,62 +1021,15 @@ 'g': { 'multiplicity': 4, 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y-1/2,z)', - '(-x,-y,-z)', - '(x,y-1/2,-z)' - ] - }, - 'f': { - 'multiplicity': 2, - 'site_symmetry': '2', - 'coords_xyz': [ - '(1/2,-1/4,z)', - '(1/2,-3/4,-z)' - ] + 'coords_xyz': ['(x,y,z)', '(-x,-y-1/2,z)', '(-x,-y,-z)', '(x,y-1/2,-z)'], }, - 'e': { - 'multiplicity': 2, - 'site_symmetry': '2', - 'coords_xyz': [ - '(0,-1/4,z)', - '(0,-3/4,-z)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/2,0,0)', - '(1/2,-1/2,0)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,1/2)', - '(0,-1/2,1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/2,0,1/2)', - '(1/2,-1/2,1/2)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(0,-1/2,0)' - ] - } - } + 'f': {'multiplicity': 2, 'site_symmetry': '2', 'coords_xyz': ['(1/2,-1/4,z)', '(1/2,-3/4,-z)']}, + 'e': {'multiplicity': 2, 'site_symmetry': '2', 'coords_xyz': ['(0,-1/4,z)', '(0,-3/4,-z)']}, + 'd': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(1/2,0,0)', '(1/2,-1/2,0)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(0,0,1/2)', '(0,-1/2,1/2)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(1/2,0,1/2)', '(1/2,-1/2,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(0,0,0)', '(0,-1/2,0)']}, + }, }, (13, 'a1'): { 'IT_number': 13, @@ -3594,62 +1041,15 @@ 'g': { 'multiplicity': 4, 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,-y+1/2,-z)', - '(-x,-y,-z)', - '(-x,y+1/2,z)' - ] - }, - 'f': { - 'multiplicity': 2, - 'site_symmetry': '2', - 'coords_xyz': [ - '(x,1/4,1/2)', - '(-x,3/4,1/2)' - ] - }, - 'e': { - 'multiplicity': 2, - 'site_symmetry': '2', - 'coords_xyz': [ - '(x,1/4,0)', - '(-x,3/4,0)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,1/2)', - '(0,1/2,1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/2,0,0)', - '(1/2,1/2,0)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/2,0,1/2)', - '(1/2,1/2,1/2)' - ] + 'coords_xyz': ['(x,y,z)', '(x,-y+1/2,-z)', '(-x,-y,-z)', '(-x,y+1/2,z)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(0,1/2,0)' - ] - } - } + 'f': {'multiplicity': 2, 'site_symmetry': '2', 'coords_xyz': ['(x,1/4,1/2)', '(-x,3/4,1/2)']}, + 'e': {'multiplicity': 2, 'site_symmetry': '2', 'coords_xyz': ['(x,1/4,0)', '(-x,3/4,0)']}, + 'd': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(0,0,1/2)', '(0,1/2,1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(1/2,0,0)', '(1/2,1/2,0)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(1/2,0,1/2)', '(1/2,1/2,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(0,0,0)', '(0,1/2,0)']}, + }, }, (13, '-a1'): { 'IT_number': 13, @@ -3661,62 +1061,15 @@ 'g': { 'multiplicity': 4, 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,-y,-z-1/2)', - '(-x,-y,-z)', - '(-x,y,z-1/2)' - ] - }, - 'f': { - 'multiplicity': 2, - 'site_symmetry': '2', - 'coords_xyz': [ - '(x,1/2,-1/4)', - '(-x,1/2,-3/4)' - ] - }, - 'e': { - 'multiplicity': 2, - 'site_symmetry': '2', - 'coords_xyz': [ - '(x,0,-1/4)', - '(-x,0,-3/4)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,1/2,0)', - '(0,1/2,-1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/2,0,0)', - '(1/2,0,-1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/2,1/2,0)', - '(1/2,1/2,-1/2)' - ] + 'coords_xyz': ['(x,y,z)', '(x,-y,-z-1/2)', '(-x,-y,-z)', '(-x,y,z-1/2)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(0,0,-1/2)' - ] - } - } + 'f': {'multiplicity': 2, 'site_symmetry': '2', 'coords_xyz': ['(x,1/2,-1/4)', '(-x,1/2,-3/4)']}, + 'e': {'multiplicity': 2, 'site_symmetry': '2', 'coords_xyz': ['(x,0,-1/4)', '(-x,0,-3/4)']}, + 'd': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(0,1/2,0)', '(0,1/2,-1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(1/2,0,0)', '(1/2,0,-1/2)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(1/2,1/2,0)', '(1/2,1/2,-1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(0,0,0)', '(0,0,-1/2)']}, + }, }, (14, 'b1'): { 'IT_number': 14, @@ -3728,46 +1081,13 @@ 'e': { 'multiplicity': 4, 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y+1/2,-z+1/2)', - '(-x,-y,-z)', - '(x,-y+1/2,z+1/2)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/2,0,1/2)', - '(1/2,1/2,0)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,1/2)', - '(0,1/2,0)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/2,0,0)', - '(1/2,1/2,1/2)' - ] + 'coords_xyz': ['(x,y,z)', '(-x,y+1/2,-z+1/2)', '(-x,-y,-z)', '(x,-y+1/2,z+1/2)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(0,1/2,1/2)' - ] - } - } + 'd': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(1/2,0,1/2)', '(1/2,1/2,0)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(0,0,1/2)', '(0,1/2,0)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(1/2,0,0)', '(1/2,1/2,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(0,0,0)', '(0,1/2,1/2)']}, + }, }, (14, '-b1'): { 'IT_number': 14, @@ -3779,46 +1099,13 @@ 'e': { 'multiplicity': 4, 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x-1/2,y+1/2,-z)', - '(-x,-y,-z)', - '(x-1/2,-y+1/2,z)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(-1/2,0,1/2)', - '(0,1/2,1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(-1/2,0,0)', - '(0,1/2,0)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,1/2)', - '(-1/2,1/2,1/2)' - ] + 'coords_xyz': ['(x,y,z)', '(-x-1/2,y+1/2,-z)', '(-x,-y,-z)', '(x-1/2,-y+1/2,z)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(-1/2,1/2,0)' - ] - } - } + 'd': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(-1/2,0,1/2)', '(0,1/2,1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(-1/2,0,0)', '(0,1/2,0)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(0,0,1/2)', '(-1/2,1/2,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(0,0,0)', '(-1/2,1/2,0)']}, + }, }, (14, 'c1'): { 'IT_number': 14, @@ -3830,46 +1117,13 @@ 'e': { 'multiplicity': 4, 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x+1/2,-y,z+1/2)', - '(-x,-y,-z)', - '(x+1/2,y,-z+1/2)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/2,1/2,0)', - '(0,1/2,1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/2,0,0)', - '(0,0,1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,1/2,0)', - '(1/2,1/2,1/2)' - ] + 'coords_xyz': ['(x,y,z)', '(-x+1/2,-y,z+1/2)', '(-x,-y,-z)', '(x+1/2,y,-z+1/2)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,0,1/2)' - ] - } - } + 'd': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(1/2,1/2,0)', '(0,1/2,1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(1/2,0,0)', '(0,0,1/2)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(0,1/2,0)', '(1/2,1/2,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(0,0,0)', '(1/2,0,1/2)']}, + }, }, (14, '-c1'): { 'IT_number': 14, @@ -3881,46 +1135,13 @@ 'e': { 'multiplicity': 4, 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y-1/2,z+1/2)', - '(-x,-y,-z)', - '(x,y-1/2,-z+1/2)' - ] + 'coords_xyz': ['(x,y,z)', '(-x,-y-1/2,z+1/2)', '(-x,-y,-z)', '(x,y-1/2,-z+1/2)'], }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/2,-1/2,0)', - '(1/2,0,1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,-1/2,0)', - '(0,0,1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/2,0,0)', - '(1/2,-1/2,1/2)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(0,-1/2,1/2)' - ] - } - } + 'd': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(1/2,-1/2,0)', '(1/2,0,1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(0,-1/2,0)', '(0,0,1/2)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(1/2,0,0)', '(1/2,-1/2,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(0,0,0)', '(0,-1/2,1/2)']}, + }, }, (14, 'a1'): { 'IT_number': 14, @@ -3932,46 +1153,13 @@ 'e': { 'multiplicity': 4, 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x+1/2,-y+1/2,-z)', - '(-x,-y,-z)', - '(-x+1/2,y+1/2,z)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,1/2,1/2)', - '(1/2,0,1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,1/2,0)', - '(1/2,0,0)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,1/2)', - '(1/2,1/2,1/2)' - ] + 'coords_xyz': ['(x,y,z)', '(x+1/2,-y+1/2,-z)', '(-x,-y,-z)', '(-x+1/2,y+1/2,z)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,1/2,0)' - ] - } - } + 'd': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(0,1/2,1/2)', '(1/2,0,1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(0,1/2,0)', '(1/2,0,0)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(0,0,1/2)', '(1/2,1/2,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(0,0,0)', '(1/2,1/2,0)']}, + }, }, (14, '-a1'): { 'IT_number': 14, @@ -3983,46 +1171,13 @@ 'e': { 'multiplicity': 4, 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x+1/2,-y,-z-1/2)', - '(-x,-y,-z)', - '(-x+1/2,y,z-1/2)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,1/2,-1/2)', - '(1/2,1/2,0)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,-1/2)', - '(1/2,0,0)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,1/2,0)', - '(1/2,1/2,-1/2)' - ] + 'coords_xyz': ['(x,y,z)', '(x+1/2,-y,-z-1/2)', '(-x,-y,-z)', '(-x+1/2,y,z-1/2)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,0,-1/2)' - ] - } - } + 'd': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(0,1/2,-1/2)', '(1/2,1/2,0)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(0,0,-1/2)', '(1/2,0,0)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(0,1/2,0)', '(1/2,1/2,-1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(0,0,0)', '(1/2,0,-1/2)']}, + }, }, (14, 'b2'): { 'IT_number': 14, @@ -4034,46 +1189,13 @@ 'e': { 'multiplicity': 4, 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x+1/2,y+1/2,-z+1/2)', - '(-x,-y,-z)', - '(x+1/2,-y+1/2,z+1/2)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/2,0,0)', - '(0,1/2,1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/2,0,1/2)', - '(0,1/2,0)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,1/2)', - '(1/2,1/2,0)' - ] + 'coords_xyz': ['(x,y,z)', '(-x+1/2,y+1/2,-z+1/2)', '(-x,-y,-z)', '(x+1/2,-y+1/2,z+1/2)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,1/2,1/2)' - ] - } - } + 'd': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(1/2,0,0)', '(0,1/2,1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(1/2,0,1/2)', '(0,1/2,0)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(0,0,1/2)', '(1/2,1/2,0)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(0,0,0)', '(1/2,1/2,1/2)']}, + }, }, (14, '-b2'): { 'IT_number': 14, @@ -4085,46 +1207,13 @@ 'e': { 'multiplicity': 4, 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x-1/2,y+1/2,-z+1/2)', - '(-x,-y,-z)', - '(x-1/2,-y+1/2,z+1/2)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,1/2)', - '(-1/2,1/2,0)' - ] + 'coords_xyz': ['(x,y,z)', '(-x-1/2,y+1/2,-z+1/2)', '(-x,-y,-z)', '(x-1/2,-y+1/2,z+1/2)'], }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(-1/2,0,1/2)', - '(0,1/2,0)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(-1/2,0,0)', - '(0,1/2,1/2)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(-1/2,1/2,1/2)' - ] - } - } + 'd': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(0,0,1/2)', '(-1/2,1/2,0)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(-1/2,0,1/2)', '(0,1/2,0)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(-1/2,0,0)', '(0,1/2,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(0,0,0)', '(-1/2,1/2,1/2)']}, + }, }, (14, 'c2'): { 'IT_number': 14, @@ -4136,46 +1225,13 @@ 'e': { 'multiplicity': 4, 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x+1/2,-y+1/2,z+1/2)', - '(-x,-y,-z)', - '(x+1/2,y+1/2,-z+1/2)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,1/2,0)', - '(1/2,0,1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/2,1/2,0)', - '(0,0,1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/2,0,0)', - '(0,1/2,1/2)' - ] + 'coords_xyz': ['(x,y,z)', '(-x+1/2,-y+1/2,z+1/2)', '(-x,-y,-z)', '(x+1/2,y+1/2,-z+1/2)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,1/2,1/2)' - ] - } - } + 'd': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(0,1/2,0)', '(1/2,0,1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(1/2,1/2,0)', '(0,0,1/2)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(1/2,0,0)', '(0,1/2,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(0,0,0)', '(1/2,1/2,1/2)']}, + }, }, (14, '-c2'): { 'IT_number': 14, @@ -4187,46 +1243,13 @@ 'e': { 'multiplicity': 4, 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x+1/2,-y-1/2,z+1/2)', - '(-x,-y,-z)', - '(x+1/2,y-1/2,-z+1/2)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/2,0,0)', - '(0,-1/2,1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/2,-1/2,0)', - '(0,0,1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,-1/2,0)', - '(1/2,0,1/2)' - ] + 'coords_xyz': ['(x,y,z)', '(-x+1/2,-y-1/2,z+1/2)', '(-x,-y,-z)', '(x+1/2,y-1/2,-z+1/2)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,-1/2,1/2)' - ] - } - } + 'd': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(1/2,0,0)', '(0,-1/2,1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(1/2,-1/2,0)', '(0,0,1/2)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(0,-1/2,0)', '(1/2,0,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(0,0,0)', '(1/2,-1/2,1/2)']}, + }, }, (14, 'a2'): { 'IT_number': 14, @@ -4238,46 +1261,13 @@ 'e': { 'multiplicity': 4, 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x+1/2,-y+1/2,-z+1/2)', - '(-x,-y,-z)', - '(-x+1/2,y+1/2,z+1/2)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,1/2)', - '(1/2,1/2,0)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,1/2,1/2)', - '(1/2,0,0)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,1/2,0)', - '(1/2,0,1/2)' - ] + 'coords_xyz': ['(x,y,z)', '(x+1/2,-y+1/2,-z+1/2)', '(-x,-y,-z)', '(-x+1/2,y+1/2,z+1/2)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,1/2,1/2)' - ] - } - } + 'd': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(0,0,1/2)', '(1/2,1/2,0)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(0,1/2,1/2)', '(1/2,0,0)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(0,1/2,0)', '(1/2,0,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(0,0,0)', '(1/2,1/2,1/2)']}, + }, }, (14, '-a2'): { 'IT_number': 14, @@ -4289,46 +1279,13 @@ 'e': { 'multiplicity': 4, 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x+1/2,-y+1/2,-z-1/2)', - '(-x,-y,-z)', - '(-x+1/2,y+1/2,z-1/2)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,1/2,0)', - '(1/2,0,-1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,1/2,-1/2)', - '(1/2,0,0)' - ] + 'coords_xyz': ['(x,y,z)', '(x+1/2,-y+1/2,-z-1/2)', '(-x,-y,-z)', '(-x+1/2,y+1/2,z-1/2)'], }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,-1/2)', - '(1/2,1/2,0)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,1/2,-1/2)' - ] - } - } + 'd': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(0,1/2,0)', '(1/2,0,-1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(0,1/2,-1/2)', '(1/2,0,0)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(0,0,-1/2)', '(1/2,1/2,0)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(0,0,0)', '(1/2,1/2,-1/2)']}, + }, }, (14, 'b3'): { 'IT_number': 14, @@ -4340,46 +1297,13 @@ 'e': { 'multiplicity': 4, 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x+1/2,y+1/2,-z)', - '(-x,-y,-z)', - '(x+1/2,-y+1/2,z)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,1/2)', - '(1/2,1/2,1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/2,0,0)', - '(0,1/2,0)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/2,0,1/2)', - '(0,1/2,1/2)' - ] + 'coords_xyz': ['(x,y,z)', '(-x+1/2,y+1/2,-z)', '(-x,-y,-z)', '(x+1/2,-y+1/2,z)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,1/2,0)' - ] - } - } + 'd': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(0,0,1/2)', '(1/2,1/2,1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(1/2,0,0)', '(0,1/2,0)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(1/2,0,1/2)', '(0,1/2,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(0,0,0)', '(1/2,1/2,0)']}, + }, }, (14, '-b3'): { 'IT_number': 14, @@ -4391,46 +1315,13 @@ 'e': { 'multiplicity': 4, 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y+1/2,-z+1/2)', - '(-x,-y,-z)', - '(x,-y+1/2,z+1/2)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(-1/2,0,0)', - '(-1/2,1/2,1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,1/2)', - '(0,1/2,0)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(-1/2,0,1/2)', - '(-1/2,1/2,0)' - ] + 'coords_xyz': ['(x,y,z)', '(-x,y+1/2,-z+1/2)', '(-x,-y,-z)', '(x,-y+1/2,z+1/2)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(0,1/2,1/2)' - ] - } - } + 'd': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(-1/2,0,0)', '(-1/2,1/2,1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(0,0,1/2)', '(0,1/2,0)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(-1/2,0,1/2)', '(-1/2,1/2,0)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(0,0,0)', '(0,1/2,1/2)']}, + }, }, (14, 'c3'): { 'IT_number': 14, @@ -4442,46 +1333,13 @@ 'e': { 'multiplicity': 4, 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y+1/2,z+1/2)', - '(-x,-y,-z)', - '(x,y+1/2,-z+1/2)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/2,0,0)', - '(1/2,1/2,1/2)' - ] + 'coords_xyz': ['(x,y,z)', '(-x,-y+1/2,z+1/2)', '(-x,-y,-z)', '(x,y+1/2,-z+1/2)'], }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,1/2,0)', - '(0,0,1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/2,1/2,0)', - '(1/2,0,1/2)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(0,1/2,1/2)' - ] - } - } + 'd': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(1/2,0,0)', '(1/2,1/2,1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(0,1/2,0)', '(0,0,1/2)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(1/2,1/2,0)', '(1/2,0,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(0,0,0)', '(0,1/2,1/2)']}, + }, }, (14, '-c3'): { 'IT_number': 14, @@ -4493,46 +1351,13 @@ 'e': { 'multiplicity': 4, 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x+1/2,-y,z+1/2)', - '(-x,-y,-z)', - '(x+1/2,y,-z+1/2)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,-1/2,0)', - '(1/2,-1/2,1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/2,0,0)', - '(0,0,1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/2,-1/2,0)', - '(0,-1/2,1/2)' - ] + 'coords_xyz': ['(x,y,z)', '(-x+1/2,-y,z+1/2)', '(-x,-y,-z)', '(x+1/2,y,-z+1/2)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,0,1/2)' - ] - } - } + 'd': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(0,-1/2,0)', '(1/2,-1/2,1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(1/2,0,0)', '(0,0,1/2)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(1/2,-1/2,0)', '(0,-1/2,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(0,0,0)', '(1/2,0,1/2)']}, + }, }, (14, 'a3'): { 'IT_number': 14, @@ -4544,46 +1369,13 @@ 'e': { 'multiplicity': 4, 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x+1/2,-y,-z+1/2)', - '(-x,-y,-z)', - '(-x+1/2,y,z+1/2)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,1/2,0)', - '(1/2,1/2,1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,1/2)', - '(1/2,0,0)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,1/2,1/2)', - '(1/2,1/2,0)' - ] + 'coords_xyz': ['(x,y,z)', '(x+1/2,-y,-z+1/2)', '(-x,-y,-z)', '(-x+1/2,y,z+1/2)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,0,1/2)' - ] - } - } + 'd': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(0,1/2,0)', '(1/2,1/2,1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(0,0,1/2)', '(1/2,0,0)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(0,1/2,1/2)', '(1/2,1/2,0)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(0,0,0)', '(1/2,0,1/2)']}, + }, }, (14, '-a3'): { 'IT_number': 14, @@ -4595,46 +1387,13 @@ 'e': { 'multiplicity': 4, 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x+1/2,-y+1/2,-z)', - '(-x,-y,-z)', - '(-x+1/2,y+1/2,z)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,-1/2)', - '(1/2,1/2,-1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,1/2,0)', - '(1/2,0,0)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,1/2,-1/2)', - '(1/2,0,-1/2)' - ] + 'coords_xyz': ['(x,y,z)', '(x+1/2,-y+1/2,-z)', '(-x,-y,-z)', '(-x+1/2,y+1/2,z)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,1/2,0)' - ] - } - } + 'd': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(0,0,-1/2)', '(1/2,1/2,-1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(0,1/2,0)', '(1/2,0,0)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(0,1/2,-1/2)', '(1/2,0,-1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '-1', 'coords_xyz': ['(0,0,0)', '(1/2,1/2,0)']}, + }, }, (15, 'b1'): { 'IT_number': 15, @@ -4646,54 +1405,14 @@ 'f': { 'multiplicity': 8, 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y,-z+1/2)', - '(-x,-y,-z)', - '(x,-y,z+1/2)' - ] - }, - 'e': { - 'multiplicity': 4, - 'site_symmetry': '2', - 'coords_xyz': [ - '(0,y,1/4)', - '(0,-y,3/4)' - ] - }, - 'd': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/4,1/4,1/2)', - '(3/4,1/4,0)' - ] - }, - 'c': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/4,1/4,0)', - '(3/4,1/4,1/2)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,1/2,0)', - '(0,1/2,1/2)' - ] + 'coords_xyz': ['(x,y,z)', '(-x,y,-z+1/2)', '(-x,-y,-z)', '(x,-y,z+1/2)'], }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(0,0,1/2)' - ] - } - } + 'e': {'multiplicity': 4, 'site_symmetry': '2', 'coords_xyz': ['(0,y,1/4)', '(0,-y,3/4)']}, + 'd': {'multiplicity': 4, 'site_symmetry': '-1', 'coords_xyz': ['(1/4,1/4,1/2)', '(3/4,1/4,0)']}, + 'c': {'multiplicity': 4, 'site_symmetry': '-1', 'coords_xyz': ['(1/4,1/4,0)', '(3/4,1/4,1/2)']}, + 'b': {'multiplicity': 4, 'site_symmetry': '-1', 'coords_xyz': ['(0,1/2,0)', '(0,1/2,1/2)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '-1', 'coords_xyz': ['(0,0,0)', '(0,0,1/2)']}, + }, }, (15, '-b1'): { 'IT_number': 15, @@ -4705,54 +1424,14 @@ 'f': { 'multiplicity': 8, 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x-1/2,y,-z)', - '(-x,-y,-z)', - '(x-1/2,-y,z)' - ] - }, - 'e': { - 'multiplicity': 4, - 'site_symmetry': '2', - 'coords_xyz': [ - '(-1/4,y,0)', - '(-3/4,-y,0)' - ] - }, - 'd': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(-1/2,1/4,1/4)', - '(0,1/4,3/4)' - ] + 'coords_xyz': ['(x,y,z)', '(-x-1/2,y,-z)', '(-x,-y,-z)', '(x-1/2,-y,z)'], }, - 'c': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,1/4,1/4)', - '(-1/2,1/4,3/4)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,1/2,0)', - '(-1/2,1/2,0)' - ] - }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(-1/2,0,0)' - ] - } - } + 'e': {'multiplicity': 4, 'site_symmetry': '2', 'coords_xyz': ['(-1/4,y,0)', '(-3/4,-y,0)']}, + 'd': {'multiplicity': 4, 'site_symmetry': '-1', 'coords_xyz': ['(-1/2,1/4,1/4)', '(0,1/4,3/4)']}, + 'c': {'multiplicity': 4, 'site_symmetry': '-1', 'coords_xyz': ['(0,1/4,1/4)', '(-1/2,1/4,3/4)']}, + 'b': {'multiplicity': 4, 'site_symmetry': '-1', 'coords_xyz': ['(0,1/2,0)', '(-1/2,1/2,0)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '-1', 'coords_xyz': ['(0,0,0)', '(-1/2,0,0)']}, + }, }, (15, 'c1'): { 'IT_number': 15, @@ -4764,54 +1443,14 @@ 'f': { 'multiplicity': 8, 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x+1/2,-y,z)', - '(-x,-y,-z)', - '(x+1/2,y,-z)' - ] - }, - 'e': { - 'multiplicity': 4, - 'site_symmetry': '2', - 'coords_xyz': [ - '(1/4,0,z)', - '(3/4,0,-z)' - ] - }, - 'd': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/2,1/4,1/4)', - '(0,3/4,1/4)' - ] - }, - 'c': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,1/4,1/4)', - '(1/2,3/4,1/4)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,1/2)', - '(1/2,0,1/2)' - ] + 'coords_xyz': ['(x,y,z)', '(-x+1/2,-y,z)', '(-x,-y,-z)', '(x+1/2,y,-z)'], }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,0,0)' - ] - } - } + 'e': {'multiplicity': 4, 'site_symmetry': '2', 'coords_xyz': ['(1/4,0,z)', '(3/4,0,-z)']}, + 'd': {'multiplicity': 4, 'site_symmetry': '-1', 'coords_xyz': ['(1/2,1/4,1/4)', '(0,3/4,1/4)']}, + 'c': {'multiplicity': 4, 'site_symmetry': '-1', 'coords_xyz': ['(0,1/4,1/4)', '(1/2,3/4,1/4)']}, + 'b': {'multiplicity': 4, 'site_symmetry': '-1', 'coords_xyz': ['(0,0,1/2)', '(1/2,0,1/2)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '-1', 'coords_xyz': ['(0,0,0)', '(1/2,0,0)']}, + }, }, (15, '-c1'): { 'IT_number': 15, @@ -4823,54 +1462,14 @@ 'f': { 'multiplicity': 8, 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y-1/2,z)', - '(-x,-y,-z)', - '(x,y-1/2,-z)' - ] - }, - 'e': { - 'multiplicity': 4, - 'site_symmetry': '2', - 'coords_xyz': [ - '(0,-1/4,z)', - '(0,-3/4,-z)' - ] - }, - 'd': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/4,-1/2,1/4)', - '(3/4,0,1/4)' - ] - }, - 'c': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/4,0,1/4)', - '(3/4,-1/2,1/4)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,1/2)', - '(0,-1/2,1/2)' - ] + 'coords_xyz': ['(x,y,z)', '(-x,-y-1/2,z)', '(-x,-y,-z)', '(x,y-1/2,-z)'], }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(0,-1/2,0)' - ] - } - } + 'e': {'multiplicity': 4, 'site_symmetry': '2', 'coords_xyz': ['(0,-1/4,z)', '(0,-3/4,-z)']}, + 'd': {'multiplicity': 4, 'site_symmetry': '-1', 'coords_xyz': ['(1/4,-1/2,1/4)', '(3/4,0,1/4)']}, + 'c': {'multiplicity': 4, 'site_symmetry': '-1', 'coords_xyz': ['(1/4,0,1/4)', '(3/4,-1/2,1/4)']}, + 'b': {'multiplicity': 4, 'site_symmetry': '-1', 'coords_xyz': ['(0,0,1/2)', '(0,-1/2,1/2)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '-1', 'coords_xyz': ['(0,0,0)', '(0,-1/2,0)']}, + }, }, (15, 'a1'): { 'IT_number': 15, @@ -4882,54 +1481,14 @@ 'f': { 'multiplicity': 8, 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,-y+1/2,-z)', - '(-x,-y,-z)', - '(-x,y+1/2,z)' - ] - }, - 'e': { - 'multiplicity': 4, - 'site_symmetry': '2', - 'coords_xyz': [ - '(x,1/4,0)', - '(-x,3/4,0)' - ] - }, - 'd': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/4,1/2,1/4)', - '(1/4,0,3/4)' - ] - }, - 'c': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/4,0,1/4)', - '(1/4,1/2,3/4)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/2,0,0)', - '(1/2,1/2,0)' - ] + 'coords_xyz': ['(x,y,z)', '(x,-y+1/2,-z)', '(-x,-y,-z)', '(-x,y+1/2,z)'], }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(0,1/2,0)' - ] - } - } + 'e': {'multiplicity': 4, 'site_symmetry': '2', 'coords_xyz': ['(x,1/4,0)', '(-x,3/4,0)']}, + 'd': {'multiplicity': 4, 'site_symmetry': '-1', 'coords_xyz': ['(1/4,1/2,1/4)', '(1/4,0,3/4)']}, + 'c': {'multiplicity': 4, 'site_symmetry': '-1', 'coords_xyz': ['(1/4,0,1/4)', '(1/4,1/2,3/4)']}, + 'b': {'multiplicity': 4, 'site_symmetry': '-1', 'coords_xyz': ['(1/2,0,0)', '(1/2,1/2,0)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '-1', 'coords_xyz': ['(0,0,0)', '(0,1/2,0)']}, + }, }, (15, '-a1'): { 'IT_number': 15, @@ -4941,54 +1500,14 @@ 'f': { 'multiplicity': 8, 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,-y,-z-1/2)', - '(-x,-y,-z)', - '(-x,y,z-1/2)' - ] - }, - 'e': { - 'multiplicity': 4, - 'site_symmetry': '2', - 'coords_xyz': [ - '(x,0,-1/4)', - '(-x,0,-3/4)' - ] - }, - 'd': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/4,1/4,-1/2)', - '(1/4,3/4,0)' - ] + 'coords_xyz': ['(x,y,z)', '(x,-y,-z-1/2)', '(-x,-y,-z)', '(-x,y,z-1/2)'], }, - 'c': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/4,1/4,0)', - '(1/4,3/4,-1/2)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/2,0,0)', - '(1/2,0,-1/2)' - ] - }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(0,0,-1/2)' - ] - } - } + 'e': {'multiplicity': 4, 'site_symmetry': '2', 'coords_xyz': ['(x,0,-1/4)', '(-x,0,-3/4)']}, + 'd': {'multiplicity': 4, 'site_symmetry': '-1', 'coords_xyz': ['(1/4,1/4,-1/2)', '(1/4,3/4,0)']}, + 'c': {'multiplicity': 4, 'site_symmetry': '-1', 'coords_xyz': ['(1/4,1/4,0)', '(1/4,3/4,-1/2)']}, + 'b': {'multiplicity': 4, 'site_symmetry': '-1', 'coords_xyz': ['(1/2,0,0)', '(1/2,0,-1/2)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '-1', 'coords_xyz': ['(0,0,0)', '(0,0,-1/2)']}, + }, }, (16, 'abc'): { 'IT_number': 16, @@ -4997,26249 +1516,10979 @@ 'name_H-M_alt': 'P 2 2 2', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'u': { + 'u': {'multiplicity': 4, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(-x,-y,z)', '(-x,y,-z)', '(x,-y,-z)']}, + 't': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(1/2,1/2,z)', '(1/2,1/2,-z)']}, + 's': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(0,1/2,z)', '(0,1/2,-z)']}, + 'r': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(1/2,0,z)', '(1/2,0,-z)']}, + 'q': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(0,0,z)', '(0,0,-z)']}, + 'p': {'multiplicity': 2, 'site_symmetry': '.2.', 'coords_xyz': ['(1/2,y,1/2)', '(1/2,-y,1/2)']}, + 'o': {'multiplicity': 2, 'site_symmetry': '.2.', 'coords_xyz': ['(1/2,y,0)', '(1/2,-y,0)']}, + 'n': {'multiplicity': 2, 'site_symmetry': '.2.', 'coords_xyz': ['(0,y,1/2)', '(0,-y,1/2)']}, + 'm': {'multiplicity': 2, 'site_symmetry': '.2.', 'coords_xyz': ['(0,y,0)', '(0,-y,0)']}, + 'l': {'multiplicity': 2, 'site_symmetry': '2..', 'coords_xyz': ['(x,1/2,1/2)', '(-x,1/2,1/2)']}, + 'k': {'multiplicity': 2, 'site_symmetry': '2..', 'coords_xyz': ['(x,1/2,0)', '(-x,1/2,0)']}, + 'j': {'multiplicity': 2, 'site_symmetry': '2..', 'coords_xyz': ['(x,0,1/2)', '(-x,0,1/2)']}, + 'i': {'multiplicity': 2, 'site_symmetry': '2..', 'coords_xyz': ['(x,0,0)', '(-x,0,0)']}, + 'h': {'multiplicity': 1, 'site_symmetry': '222', 'coords_xyz': ['(1/2,1/2,1/2)']}, + 'g': {'multiplicity': 1, 'site_symmetry': '222', 'coords_xyz': ['(0,1/2,1/2)']}, + 'f': {'multiplicity': 1, 'site_symmetry': '222', 'coords_xyz': ['(1/2,0,1/2)']}, + 'e': {'multiplicity': 1, 'site_symmetry': '222', 'coords_xyz': ['(1/2,1/2,0)']}, + 'd': {'multiplicity': 1, 'site_symmetry': '222', 'coords_xyz': ['(0,0,1/2)']}, + 'c': {'multiplicity': 1, 'site_symmetry': '222', 'coords_xyz': ['(0,1/2,0)']}, + 'b': {'multiplicity': 1, 'site_symmetry': '222', 'coords_xyz': ['(1/2,0,0)']}, + 'a': {'multiplicity': 1, 'site_symmetry': '222', 'coords_xyz': ['(0,0,0)']}, + }, + }, + (16, 'ba-c'): { + 'IT_number': 16, + 'setting': 1, + 'IT_coordinate_system_code': 'ba-c', + 'name_H-M_alt': 'P 2 2 2', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'u': {'multiplicity': 4, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(-x,-y,z)', '(x,-y,-z)', '(-x,y,-z)']}, + 't': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(1/2,1/2,z)', '(1/2,1/2,-z)']}, + 's': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(1/2,0,z)', '(1/2,0,-z)']}, + 'r': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(0,1/2,z)', '(0,1/2,-z)']}, + 'q': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(0,0,z)', '(0,0,-z)']}, + 'p': {'multiplicity': 2, 'site_symmetry': '.2.', 'coords_xyz': ['(x,1/2,-1/2)', '(-x,1/2,-1/2)']}, + 'o': {'multiplicity': 2, 'site_symmetry': '.2.', 'coords_xyz': ['(x,1/2,0)', '(-x,1/2,0)']}, + 'n': {'multiplicity': 2, 'site_symmetry': '.2.', 'coords_xyz': ['(x,0,-1/2)', '(-x,0,-1/2)']}, + 'm': {'multiplicity': 2, 'site_symmetry': '.2.', 'coords_xyz': ['(x,0,0)', '(-x,0,0)']}, + 'l': {'multiplicity': 2, 'site_symmetry': '2..', 'coords_xyz': ['(1/2,y,-1/2)', '(1/2,-y,-1/2)']}, + 'k': {'multiplicity': 2, 'site_symmetry': '2..', 'coords_xyz': ['(1/2,y,0)', '(1/2,-y,0)']}, + 'j': {'multiplicity': 2, 'site_symmetry': '2..', 'coords_xyz': ['(0,y,-1/2)', '(0,-y,-1/2)']}, + 'i': {'multiplicity': 2, 'site_symmetry': '2..', 'coords_xyz': ['(0,y,0)', '(0,-y,0)']}, + 'h': {'multiplicity': 1, 'site_symmetry': '222', 'coords_xyz': ['(1/2,1/2,-1/2)']}, + 'g': {'multiplicity': 1, 'site_symmetry': '222', 'coords_xyz': ['(1/2,0,-1/2)']}, + 'f': {'multiplicity': 1, 'site_symmetry': '222', 'coords_xyz': ['(0,1/2,-1/2)']}, + 'e': {'multiplicity': 1, 'site_symmetry': '222', 'coords_xyz': ['(1/2,1/2,0)']}, + 'd': {'multiplicity': 1, 'site_symmetry': '222', 'coords_xyz': ['(0,0,-1/2)']}, + 'c': {'multiplicity': 1, 'site_symmetry': '222', 'coords_xyz': ['(1/2,0,0)']}, + 'b': {'multiplicity': 1, 'site_symmetry': '222', 'coords_xyz': ['(0,1/2,0)']}, + 'a': {'multiplicity': 1, 'site_symmetry': '222', 'coords_xyz': ['(0,0,0)']}, + }, + }, + (16, 'cab'): { + 'IT_number': 16, + 'setting': 2, + 'IT_coordinate_system_code': 'cab', + 'name_H-M_alt': 'P 2 2 2', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'u': {'multiplicity': 4, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(x,-y,-z)', '(-x,-y,z)', '(-x,y,-z)']}, + 't': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(x,1/2,1/2)', '(-x,1/2,1/2)']}, + 's': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(x,0,1/2)', '(-x,0,1/2)']}, + 'r': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(x,1/2,0)', '(-x,1/2,0)']}, + 'q': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(x,0,0)', '(-x,0,0)']}, + 'p': {'multiplicity': 2, 'site_symmetry': '.2.', 'coords_xyz': ['(1/2,1/2,z)', '(1/2,1/2,-z)']}, + 'o': {'multiplicity': 2, 'site_symmetry': '.2.', 'coords_xyz': ['(0,1/2,z)', '(0,1/2,-z)']}, + 'n': {'multiplicity': 2, 'site_symmetry': '.2.', 'coords_xyz': ['(1/2,0,z)', '(1/2,0,-z)']}, + 'm': {'multiplicity': 2, 'site_symmetry': '.2.', 'coords_xyz': ['(0,0,z)', '(0,0,-z)']}, + 'l': {'multiplicity': 2, 'site_symmetry': '2..', 'coords_xyz': ['(1/2,y,1/2)', '(1/2,-y,1/2)']}, + 'k': {'multiplicity': 2, 'site_symmetry': '2..', 'coords_xyz': ['(0,y,1/2)', '(0,-y,1/2)']}, + 'j': {'multiplicity': 2, 'site_symmetry': '2..', 'coords_xyz': ['(1/2,y,0)', '(1/2,-y,0)']}, + 'i': {'multiplicity': 2, 'site_symmetry': '2..', 'coords_xyz': ['(0,y,0)', '(0,-y,0)']}, + 'h': {'multiplicity': 1, 'site_symmetry': '222', 'coords_xyz': ['(1/2,1/2,1/2)']}, + 'g': {'multiplicity': 1, 'site_symmetry': '222', 'coords_xyz': ['(1/2,0,1/2)']}, + 'f': {'multiplicity': 1, 'site_symmetry': '222', 'coords_xyz': ['(1/2,1/2,0)']}, + 'e': {'multiplicity': 1, 'site_symmetry': '222', 'coords_xyz': ['(0,1/2,1/2)']}, + 'd': {'multiplicity': 1, 'site_symmetry': '222', 'coords_xyz': ['(1/2,0,0)']}, + 'c': {'multiplicity': 1, 'site_symmetry': '222', 'coords_xyz': ['(0,0,1/2)']}, + 'b': {'multiplicity': 1, 'site_symmetry': '222', 'coords_xyz': ['(0,1/2,0)']}, + 'a': {'multiplicity': 1, 'site_symmetry': '222', 'coords_xyz': ['(0,0,0)']}, + }, + }, + (16, '-cba'): { + 'IT_number': 16, + 'setting': 3, + 'IT_coordinate_system_code': '-cba', + 'name_H-M_alt': 'P 2 2 2', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'u': {'multiplicity': 4, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(x,-y,-z)', '(-x,y,-z)', '(-x,-y,z)']}, + 't': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(x,1/2,1/2)', '(-x,1/2,1/2)']}, + 's': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(x,1/2,0)', '(-x,1/2,0)']}, + 'r': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(x,0,1/2)', '(-x,0,1/2)']}, + 'q': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(x,0,0)', '(-x,0,0)']}, + 'p': {'multiplicity': 2, 'site_symmetry': '.2.', 'coords_xyz': ['(-1/2,y,1/2)', '(-1/2,-y,1/2)']}, + 'o': {'multiplicity': 2, 'site_symmetry': '.2.', 'coords_xyz': ['(0,y,1/2)', '(0,-y,1/2)']}, + 'n': {'multiplicity': 2, 'site_symmetry': '.2.', 'coords_xyz': ['(-1/2,y,0)', '(-1/2,-y,0)']}, + 'm': {'multiplicity': 2, 'site_symmetry': '.2.', 'coords_xyz': ['(0,y,0)', '(0,-y,0)']}, + 'l': {'multiplicity': 2, 'site_symmetry': '2..', 'coords_xyz': ['(-1/2,1/2,z)', '(-1/2,1/2,-z)']}, + 'k': {'multiplicity': 2, 'site_symmetry': '2..', 'coords_xyz': ['(0,1/2,z)', '(0,1/2,-z)']}, + 'j': {'multiplicity': 2, 'site_symmetry': '2..', 'coords_xyz': ['(-1/2,0,z)', '(-1/2,0,-z)']}, + 'i': {'multiplicity': 2, 'site_symmetry': '2..', 'coords_xyz': ['(0,0,z)', '(0,0,-z)']}, + 'h': {'multiplicity': 1, 'site_symmetry': '222', 'coords_xyz': ['(-1/2,1/2,1/2)']}, + 'g': {'multiplicity': 1, 'site_symmetry': '222', 'coords_xyz': ['(-1/2,1/2,0)']}, + 'f': {'multiplicity': 1, 'site_symmetry': '222', 'coords_xyz': ['(-1/2,0,1/2)']}, + 'e': {'multiplicity': 1, 'site_symmetry': '222', 'coords_xyz': ['(0,1/2,1/2)']}, + 'd': {'multiplicity': 1, 'site_symmetry': '222', 'coords_xyz': ['(-1/2,0,0)']}, + 'c': {'multiplicity': 1, 'site_symmetry': '222', 'coords_xyz': ['(0,1/2,0)']}, + 'b': {'multiplicity': 1, 'site_symmetry': '222', 'coords_xyz': ['(0,0,1/2)']}, + 'a': {'multiplicity': 1, 'site_symmetry': '222', 'coords_xyz': ['(0,0,0)']}, + }, + }, + (16, 'bca'): { + 'IT_number': 16, + 'setting': 4, + 'IT_coordinate_system_code': 'bca', + 'name_H-M_alt': 'P 2 2 2', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'u': {'multiplicity': 4, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(-x,y,-z)', '(x,-y,-z)', '(-x,-y,z)']}, + 't': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(1/2,y,1/2)', '(1/2,-y,1/2)']}, + 's': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(1/2,y,0)', '(1/2,-y,0)']}, + 'r': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(0,y,1/2)', '(0,-y,1/2)']}, + 'q': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(0,y,0)', '(0,-y,0)']}, + 'p': {'multiplicity': 2, 'site_symmetry': '.2.', 'coords_xyz': ['(x,1/2,1/2)', '(-x,1/2,1/2)']}, + 'o': {'multiplicity': 2, 'site_symmetry': '.2.', 'coords_xyz': ['(x,0,1/2)', '(-x,0,1/2)']}, + 'n': {'multiplicity': 2, 'site_symmetry': '.2.', 'coords_xyz': ['(x,1/2,0)', '(-x,1/2,0)']}, + 'm': {'multiplicity': 2, 'site_symmetry': '.2.', 'coords_xyz': ['(x,0,0)', '(-x,0,0)']}, + 'l': {'multiplicity': 2, 'site_symmetry': '2..', 'coords_xyz': ['(1/2,1/2,z)', '(1/2,1/2,-z)']}, + 'k': {'multiplicity': 2, 'site_symmetry': '2..', 'coords_xyz': ['(1/2,0,z)', '(1/2,0,-z)']}, + 'j': {'multiplicity': 2, 'site_symmetry': '2..', 'coords_xyz': ['(0,1/2,z)', '(0,1/2,-z)']}, + 'i': {'multiplicity': 2, 'site_symmetry': '2..', 'coords_xyz': ['(0,0,z)', '(0,0,-z)']}, + 'h': {'multiplicity': 1, 'site_symmetry': '222', 'coords_xyz': ['(1/2,1/2,1/2)']}, + 'g': {'multiplicity': 1, 'site_symmetry': '222', 'coords_xyz': ['(1/2,1/2,0)']}, + 'f': {'multiplicity': 1, 'site_symmetry': '222', 'coords_xyz': ['(0,1/2,1/2)']}, + 'e': {'multiplicity': 1, 'site_symmetry': '222', 'coords_xyz': ['(1/2,0,1/2)']}, + 'd': {'multiplicity': 1, 'site_symmetry': '222', 'coords_xyz': ['(0,1/2,0)']}, + 'c': {'multiplicity': 1, 'site_symmetry': '222', 'coords_xyz': ['(1/2,0,0)']}, + 'b': {'multiplicity': 1, 'site_symmetry': '222', 'coords_xyz': ['(0,0,1/2)']}, + 'a': {'multiplicity': 1, 'site_symmetry': '222', 'coords_xyz': ['(0,0,0)']}, + }, + }, + (16, 'a-cb'): { + 'IT_number': 16, + 'setting': 5, + 'IT_coordinate_system_code': 'a-cb', + 'name_H-M_alt': 'P 2 2 2', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'u': {'multiplicity': 4, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(-x,y,-z)', '(-x,-y,z)', '(x,-y,-z)']}, + 't': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(1/2,y,1/2)', '(1/2,-y,1/2)']}, + 's': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(0,y,1/2)', '(0,-y,1/2)']}, + 'r': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(1/2,y,0)', '(1/2,-y,0)']}, + 'q': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(0,y,0)', '(0,-y,0)']}, + 'p': {'multiplicity': 2, 'site_symmetry': '.2.', 'coords_xyz': ['(1/2,-1/2,z)', '(1/2,-1/2,-z)']}, + 'o': {'multiplicity': 2, 'site_symmetry': '.2.', 'coords_xyz': ['(1/2,0,z)', '(1/2,0,-z)']}, + 'n': {'multiplicity': 2, 'site_symmetry': '.2.', 'coords_xyz': ['(0,-1/2,z)', '(0,-1/2,-z)']}, + 'm': {'multiplicity': 2, 'site_symmetry': '.2.', 'coords_xyz': ['(0,0,z)', '(0,0,-z)']}, + 'l': {'multiplicity': 2, 'site_symmetry': '2..', 'coords_xyz': ['(x,-1/2,1/2)', '(-x,-1/2,1/2)']}, + 'k': {'multiplicity': 2, 'site_symmetry': '2..', 'coords_xyz': ['(x,0,1/2)', '(-x,0,1/2)']}, + 'j': {'multiplicity': 2, 'site_symmetry': '2..', 'coords_xyz': ['(x,-1/2,0)', '(-x,-1/2,0)']}, + 'i': {'multiplicity': 2, 'site_symmetry': '2..', 'coords_xyz': ['(x,0,0)', '(-x,0,0)']}, + 'h': {'multiplicity': 1, 'site_symmetry': '222', 'coords_xyz': ['(1/2,-1/2,1/2)']}, + 'g': {'multiplicity': 1, 'site_symmetry': '222', 'coords_xyz': ['(0,-1/2,1/2)']}, + 'f': {'multiplicity': 1, 'site_symmetry': '222', 'coords_xyz': ['(1/2,-1/2,0)']}, + 'e': {'multiplicity': 1, 'site_symmetry': '222', 'coords_xyz': ['(1/2,0,1/2)']}, + 'd': {'multiplicity': 1, 'site_symmetry': '222', 'coords_xyz': ['(0,-1/2,0)']}, + 'c': {'multiplicity': 1, 'site_symmetry': '222', 'coords_xyz': ['(0,0,1/2)']}, + 'b': {'multiplicity': 1, 'site_symmetry': '222', 'coords_xyz': ['(1/2,0,0)']}, + 'a': {'multiplicity': 1, 'site_symmetry': '222', 'coords_xyz': ['(0,0,0)']}, + }, + }, + (17, 'abc'): { + 'IT_number': 17, + 'setting': 0, + 'IT_coordinate_system_code': 'abc', + 'name_H-M_alt': 'P 2 2 21', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'e': { 'multiplicity': 4, 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z)', - '(-x,y,-z)', - '(x,-y,-z)' - ] - }, - 't': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/2,1/2,z)', - '(1/2,1/2,-z)' - ] - }, - 's': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,1/2,z)', - '(0,1/2,-z)' - ] - }, - 'r': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/2,0,z)', - '(1/2,0,-z)' - ] - }, - 'q': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)' - ] - }, - 'p': { - 'multiplicity': 2, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(1/2,y,1/2)', - '(1/2,-y,1/2)' - ] - }, - 'o': { - 'multiplicity': 2, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(1/2,y,0)', - '(1/2,-y,0)' - ] - }, - 'n': { - 'multiplicity': 2, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(0,y,1/2)', - '(0,-y,1/2)' - ] - }, - 'm': { - 'multiplicity': 2, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y,0)' - ] - }, - 'l': { - 'multiplicity': 2, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(x,1/2,1/2)', - '(-x,1/2,1/2)' - ] - }, - 'k': { - 'multiplicity': 2, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(x,1/2,0)', - '(-x,1/2,0)' - ] + 'coords_xyz': ['(x,y,z)', '(-x,-y,z+1/2)', '(-x,y,-z+1/2)', '(x,-y,-z)'], }, - 'j': { - 'multiplicity': 2, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(x,0,1/2)', - '(-x,0,1/2)' - ] - }, - 'i': { - 'multiplicity': 2, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)' - ] - }, - 'h': { - 'multiplicity': 1, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/2,1/2,1/2)' - ] + 'd': {'multiplicity': 2, 'site_symmetry': '.2.', 'coords_xyz': ['(1/2,y,1/4)', '(1/2,-y,3/4)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '.2.', 'coords_xyz': ['(0,y,1/4)', '(0,-y,3/4)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '2..', 'coords_xyz': ['(x,1/2,0)', '(-x,1/2,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '2..', 'coords_xyz': ['(x,0,0)', '(-x,0,1/2)']}, + }, + }, + (17, 'ba-c'): { + 'IT_number': 17, + 'setting': 1, + 'IT_coordinate_system_code': 'ba-c', + 'name_H-M_alt': 'P 2 2 21', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'e': { + 'multiplicity': 4, + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(-x,-y,z-1/2)', '(x,-y,-z-1/2)', '(-x,y,-z)'], }, - 'g': { - 'multiplicity': 1, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,1/2,1/2)' - ] + 'd': {'multiplicity': 2, 'site_symmetry': '.2.', 'coords_xyz': ['(x,1/2,-1/4)', '(-x,1/2,-3/4)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '.2.', 'coords_xyz': ['(x,0,-1/4)', '(-x,0,-3/4)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '2..', 'coords_xyz': ['(1/2,y,0)', '(1/2,-y,-1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '2..', 'coords_xyz': ['(0,y,0)', '(0,-y,-1/2)']}, + }, + }, + (17, 'cab'): { + 'IT_number': 17, + 'setting': 2, + 'IT_coordinate_system_code': 'cab', + 'name_H-M_alt': 'P 21 2 2', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'e': { + 'multiplicity': 4, + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(x+1/2,-y,-z)', '(-x+1/2,-y,z)', '(-x,y,-z)'], }, - 'f': { - 'multiplicity': 1, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/2,0,1/2)' - ] + 'd': {'multiplicity': 2, 'site_symmetry': '.2.', 'coords_xyz': ['(1/4,1/2,z)', '(3/4,1/2,-z)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '.2.', 'coords_xyz': ['(1/4,0,z)', '(3/4,0,-z)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '2..', 'coords_xyz': ['(0,y,1/2)', '(1/2,-y,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '2..', 'coords_xyz': ['(0,y,0)', '(1/2,-y,0)']}, + }, + }, + (17, '-cba'): { + 'IT_number': 17, + 'setting': 3, + 'IT_coordinate_system_code': '-cba', + 'name_H-M_alt': 'P 21 2 2', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'e': { + 'multiplicity': 4, + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(x-1/2,-y,-z)', '(-x-1/2,y,-z)', '(-x,-y,z)'], }, + 'd': {'multiplicity': 2, 'site_symmetry': '.2.', 'coords_xyz': ['(-1/4,y,1/2)', '(-3/4,-y,1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '.2.', 'coords_xyz': ['(-1/4,y,0)', '(-3/4,-y,0)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '2..', 'coords_xyz': ['(0,1/2,z)', '(-1/2,1/2,-z)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '2..', 'coords_xyz': ['(0,0,z)', '(-1/2,0,-z)']}, + }, + }, + (17, 'bca'): { + 'IT_number': 17, + 'setting': 4, + 'IT_coordinate_system_code': 'bca', + 'name_H-M_alt': 'P 2 21 2', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { 'e': { - 'multiplicity': 1, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/2,1/2,0)' - ] + 'multiplicity': 4, + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(-x,y+1/2,-z)', '(x,-y+1/2,-z)', '(-x,-y,z)'], }, - 'd': { - 'multiplicity': 1, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,1/2)' - ] + 'd': {'multiplicity': 2, 'site_symmetry': '.2.', 'coords_xyz': ['(x,1/4,1/2)', '(-x,3/4,1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '.2.', 'coords_xyz': ['(x,1/4,0)', '(-x,3/4,0)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '2..', 'coords_xyz': ['(1/2,0,z)', '(1/2,1/2,-z)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '2..', 'coords_xyz': ['(0,0,z)', '(0,1/2,-z)']}, + }, + }, + (17, 'a-cb'): { + 'IT_number': 17, + 'setting': 5, + 'IT_coordinate_system_code': 'a-cb', + 'name_H-M_alt': 'P 2 21 2', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'e': { + 'multiplicity': 4, + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(-x,y-1/2,-z)', '(-x,-y-1/2,z)', '(x,-y,-z)'], }, + 'd': {'multiplicity': 2, 'site_symmetry': '.2.', 'coords_xyz': ['(1/2,-1/4,z)', '(1/2,-3/4,-z)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '.2.', 'coords_xyz': ['(0,-1/4,z)', '(0,-3/4,-z)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '2..', 'coords_xyz': ['(x,0,1/2)', '(-x,-1/2,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '2..', 'coords_xyz': ['(x,0,0)', '(-x,-1/2,0)']}, + }, + }, + (18, 'abc'): { + 'IT_number': 18, + 'setting': 0, + 'IT_coordinate_system_code': 'abc', + 'name_H-M_alt': 'P 21 21 2', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { 'c': { - 'multiplicity': 1, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,1/2,0)' - ] - }, - 'b': { - 'multiplicity': 1, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/2,0,0)' - ] + 'multiplicity': 4, + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(-x,-y,z)', '(-x+1/2,y+1/2,-z)', '(x+1/2,-y+1/2,-z)'], }, - 'a': { - 'multiplicity': 1, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'b': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(0,1/2,z)', '(1/2,0,-z)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(0,0,z)', '(1/2,1/2,-z)']}, + }, }, - (16, 'ba-c'): { - 'IT_number': 16, + (18, 'ba-c'): { + 'IT_number': 18, 'setting': 1, 'IT_coordinate_system_code': 'ba-c', - 'name_H-M_alt': 'P 2 2 2', + 'name_H-M_alt': 'P 21 21 2', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'u': { + 'c': { 'multiplicity': 4, 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z)', - '(x,-y,-z)', - '(-x,y,-z)' - ] + 'coords_xyz': ['(x,y,z)', '(-x,-y,z)', '(x+1/2,-y+1/2,-z)', '(-x+1/2,y+1/2,-z)'], }, - 't': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/2,1/2,z)', - '(1/2,1/2,-z)' - ] + 'b': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(1/2,0,z)', '(0,1/2,-z)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(0,0,z)', '(1/2,1/2,-z)']}, + }, + }, + (18, 'cab'): { + 'IT_number': 18, + 'setting': 2, + 'IT_coordinate_system_code': 'cab', + 'name_H-M_alt': 'P 2 21 21', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'c': { + 'multiplicity': 4, + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(x,-y,-z)', '(-x,-y+1/2,z+1/2)', '(-x,y+1/2,-z+1/2)'], }, - 's': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/2,0,z)', - '(1/2,0,-z)' - ] - }, - 'r': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,1/2,z)', - '(0,1/2,-z)' - ] - }, - 'q': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)' - ] - }, - 'p': { - 'multiplicity': 2, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,1/2,-1/2)', - '(-x,1/2,-1/2)' - ] - }, - 'o': { - 'multiplicity': 2, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,1/2,0)', - '(-x,1/2,0)' - ] - }, - 'n': { - 'multiplicity': 2, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,0,-1/2)', - '(-x,0,-1/2)' - ] - }, - 'm': { - 'multiplicity': 2, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)' - ] - }, - 'l': { - 'multiplicity': 2, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(1/2,y,-1/2)', - '(1/2,-y,-1/2)' - ] - }, - 'k': { - 'multiplicity': 2, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(1/2,y,0)', - '(1/2,-y,0)' - ] - }, - 'j': { - 'multiplicity': 2, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,y,-1/2)', - '(0,-y,-1/2)' - ] - }, - 'i': { - 'multiplicity': 2, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y,0)' - ] - }, - 'h': { - 'multiplicity': 1, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/2,1/2,-1/2)' - ] - }, - 'g': { - 'multiplicity': 1, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/2,0,-1/2)' - ] - }, - 'f': { - 'multiplicity': 1, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,1/2,-1/2)' - ] - }, - 'e': { - 'multiplicity': 1, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/2,1/2,0)' - ] - }, - 'd': { - 'multiplicity': 1, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,-1/2)' - ] + 'b': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(x,0,1/2)', '(-x,1/2,0)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(x,0,0)', '(-x,1/2,1/2)']}, + }, + }, + (18, '-cba'): { + 'IT_number': 18, + 'setting': 3, + 'IT_coordinate_system_code': '-cba', + 'name_H-M_alt': 'P 2 21 21', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'c': { + 'multiplicity': 4, + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(x,-y,-z)', '(-x,y+1/2,-z+1/2)', '(-x,-y+1/2,z+1/2)'], }, + 'b': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(x,1/2,0)', '(-x,0,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(x,0,0)', '(-x,1/2,1/2)']}, + }, + }, + (18, 'bca'): { + 'IT_number': 18, + 'setting': 4, + 'IT_coordinate_system_code': 'bca', + 'name_H-M_alt': 'P 21 2 21', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { 'c': { - 'multiplicity': 1, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/2,0,0)' - ] + 'multiplicity': 4, + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(-x,y,-z)', '(x+1/2,-y,-z+1/2)', '(-x+1/2,-y,z+1/2)'], }, - 'b': { - 'multiplicity': 1, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,1/2,0)' - ] + 'b': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(1/2,y,0)', '(0,-y,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(0,y,0)', '(1/2,-y,1/2)']}, + }, + }, + (18, 'a-cb'): { + 'IT_number': 18, + 'setting': 5, + 'IT_coordinate_system_code': 'a-cb', + 'name_H-M_alt': 'P 21 2 21', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'c': { + 'multiplicity': 4, + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(-x,y,-z)', '(-x+1/2,-y,z+1/2)', '(x+1/2,-y,-z+1/2)'], }, + 'b': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(0,y,1/2)', '(1/2,-y,0)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(0,y,0)', '(1/2,-y,1/2)']}, + }, + }, + (19, 'abc'): { + 'IT_number': 19, + 'setting': 0, + 'IT_coordinate_system_code': 'abc', + 'name_H-M_alt': 'P 21 21 21', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { 'a': { - 'multiplicity': 1, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,0)' - ] + 'multiplicity': 4, + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(-x+1/2,-y,z+1/2)', '(-x,y+1/2,-z+1/2)', '(x+1/2,-y+1/2,-z)'], } - } + }, }, - (16, 'cab'): { - 'IT_number': 16, + (19, 'ba-c'): { + 'IT_number': 19, + 'setting': 1, + 'IT_coordinate_system_code': 'ba-c', + 'name_H-M_alt': 'P 21 21 21', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'a': { + 'multiplicity': 4, + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(-x,-y+1/2,z-1/2)', '(x+1/2,-y,-z-1/2)', '(-x+1/2,y+1/2,-z)'], + } + }, + }, + (19, 'cab'): { + 'IT_number': 19, 'setting': 2, 'IT_coordinate_system_code': 'cab', - 'name_H-M_alt': 'P 2 2 2', + 'name_H-M_alt': 'P 21 21 21', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'u': { + 'a': { 'multiplicity': 4, 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,-y,-z)', - '(-x,-y,z)', - '(-x,y,-z)' - ] - }, - 't': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,1/2,1/2)', - '(-x,1/2,1/2)' - ] - }, - 's': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,0,1/2)', - '(-x,0,1/2)' - ] - }, - 'r': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,1/2,0)', - '(-x,1/2,0)' - ] - }, - 'q': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)' - ] - }, - 'p': { - 'multiplicity': 2, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(1/2,1/2,z)', - '(1/2,1/2,-z)' - ] - }, - 'o': { - 'multiplicity': 2, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(0,1/2,z)', - '(0,1/2,-z)' - ] - }, - 'n': { - 'multiplicity': 2, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(1/2,0,z)', - '(1/2,0,-z)' - ] - }, - 'm': { - 'multiplicity': 2, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)' - ] - }, - 'l': { - 'multiplicity': 2, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(1/2,y,1/2)', - '(1/2,-y,1/2)' - ] - }, - 'k': { - 'multiplicity': 2, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,y,1/2)', - '(0,-y,1/2)' - ] - }, - 'j': { - 'multiplicity': 2, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(1/2,y,0)', - '(1/2,-y,0)' - ] - }, - 'i': { - 'multiplicity': 2, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y,0)' - ] - }, - 'h': { - 'multiplicity': 1, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/2,1/2,1/2)' - ] - }, - 'g': { - 'multiplicity': 1, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/2,0,1/2)' - ] - }, - 'f': { - 'multiplicity': 1, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/2,1/2,0)' - ] - }, - 'e': { - 'multiplicity': 1, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,1/2,1/2)' - ] - }, - 'd': { - 'multiplicity': 1, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/2,0,0)' - ] - }, - 'c': { - 'multiplicity': 1, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,1/2)' - ] - }, - 'b': { - 'multiplicity': 1, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,1/2,0)' - ] - }, - 'a': { - 'multiplicity': 1, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,0)' - ] + 'coords_xyz': ['(x,y,z)', '(x+1/2,-y+1/2,-z)', '(-x+1/2,-y,z+1/2)', '(-x,y+1/2,-z+1/2)'], } - } + }, }, - (16, '-cba'): { - 'IT_number': 16, + (19, '-cba'): { + 'IT_number': 19, 'setting': 3, 'IT_coordinate_system_code': '-cba', - 'name_H-M_alt': 'P 2 2 2', + 'name_H-M_alt': 'P 21 21 21', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'u': { + 'a': { 'multiplicity': 4, 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,-y,-z)', - '(-x,y,-z)', - '(-x,-y,z)' - ] - }, - 't': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,1/2,1/2)', - '(-x,1/2,1/2)' - ] - }, - 's': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,1/2,0)', - '(-x,1/2,0)' - ] - }, - 'r': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,0,1/2)', - '(-x,0,1/2)' - ] - }, - 'q': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)' - ] - }, - 'p': { - 'multiplicity': 2, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(-1/2,y,1/2)', - '(-1/2,-y,1/2)' - ] - }, - 'o': { - 'multiplicity': 2, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(0,y,1/2)', - '(0,-y,1/2)' - ] - }, - 'n': { - 'multiplicity': 2, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(-1/2,y,0)', - '(-1/2,-y,0)' - ] - }, - 'm': { - 'multiplicity': 2, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y,0)' - ] - }, - 'l': { - 'multiplicity': 2, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(-1/2,1/2,z)', - '(-1/2,1/2,-z)' - ] - }, - 'k': { - 'multiplicity': 2, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,1/2,z)', - '(0,1/2,-z)' - ] - }, - 'j': { - 'multiplicity': 2, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(-1/2,0,z)', - '(-1/2,0,-z)' - ] - }, - 'i': { - 'multiplicity': 2, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)' - ] - }, - 'h': { - 'multiplicity': 1, - 'site_symmetry': '222', - 'coords_xyz': [ - '(-1/2,1/2,1/2)' - ] - }, - 'g': { - 'multiplicity': 1, - 'site_symmetry': '222', - 'coords_xyz': [ - '(-1/2,1/2,0)' - ] - }, - 'f': { - 'multiplicity': 1, - 'site_symmetry': '222', - 'coords_xyz': [ - '(-1/2,0,1/2)' - ] - }, - 'e': { - 'multiplicity': 1, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,1/2,1/2)' - ] - }, - 'd': { - 'multiplicity': 1, - 'site_symmetry': '222', - 'coords_xyz': [ - '(-1/2,0,0)' - ] - }, - 'c': { - 'multiplicity': 1, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,1/2,0)' - ] - }, - 'b': { - 'multiplicity': 1, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,1/2)' - ] - }, - 'a': { - 'multiplicity': 1, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,0)' - ] + 'coords_xyz': ['(x,y,z)', '(x-1/2,-y,-z+1/2)', '(-x-1/2,y+1/2,-z)', '(-x,-y+1/2,z+1/2)'], } - } + }, }, - (16, 'bca'): { - 'IT_number': 16, + (19, 'bca'): { + 'IT_number': 19, 'setting': 4, 'IT_coordinate_system_code': 'bca', - 'name_H-M_alt': 'P 2 2 2', + 'name_H-M_alt': 'P 21 21 21', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'u': { + 'a': { 'multiplicity': 4, 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y,-z)', - '(x,-y,-z)', - '(-x,-y,z)' - ] - }, - 't': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/2,y,1/2)', - '(1/2,-y,1/2)' - ] - }, - 's': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/2,y,0)', - '(1/2,-y,0)' - ] - }, - 'r': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,y,1/2)', - '(0,-y,1/2)' - ] - }, - 'q': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y,0)' - ] - }, - 'p': { - 'multiplicity': 2, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,1/2,1/2)', - '(-x,1/2,1/2)' - ] - }, - 'o': { - 'multiplicity': 2, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,0,1/2)', - '(-x,0,1/2)' - ] - }, - 'n': { - 'multiplicity': 2, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,1/2,0)', - '(-x,1/2,0)' - ] - }, - 'm': { - 'multiplicity': 2, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)' - ] - }, - 'l': { - 'multiplicity': 2, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(1/2,1/2,z)', - '(1/2,1/2,-z)' - ] - }, - 'k': { - 'multiplicity': 2, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(1/2,0,z)', - '(1/2,0,-z)' - ] - }, - 'j': { - 'multiplicity': 2, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,1/2,z)', - '(0,1/2,-z)' - ] - }, - 'i': { - 'multiplicity': 2, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)' - ] - }, - 'h': { - 'multiplicity': 1, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/2,1/2,1/2)' - ] - }, - 'g': { - 'multiplicity': 1, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/2,1/2,0)' - ] - }, - 'f': { - 'multiplicity': 1, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,1/2,1/2)' - ] - }, - 'e': { - 'multiplicity': 1, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/2,0,1/2)' - ] - }, - 'd': { - 'multiplicity': 1, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,1/2,0)' - ] - }, - 'c': { - 'multiplicity': 1, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/2,0,0)' - ] - }, - 'b': { - 'multiplicity': 1, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,1/2)' - ] - }, - 'a': { - 'multiplicity': 1, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,0)' - ] + 'coords_xyz': ['(x,y,z)', '(-x,y+1/2,-z+1/2)', '(x+1/2,-y+1/2,-z)', '(-x+1/2,-y,z+1/2)'], } - } + }, }, - (16, 'a-cb'): { - 'IT_number': 16, + (19, 'a-cb'): { + 'IT_number': 19, 'setting': 5, 'IT_coordinate_system_code': 'a-cb', - 'name_H-M_alt': 'P 2 2 2', + 'name_H-M_alt': 'P 21 21 21', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'u': { + 'a': { 'multiplicity': 4, 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y,-z)', - '(-x,-y,z)', - '(x,-y,-z)' - ] - }, - 't': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/2,y,1/2)', - '(1/2,-y,1/2)' - ] - }, - 's': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,y,1/2)', - '(0,-y,1/2)' - ] - }, - 'r': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/2,y,0)', - '(1/2,-y,0)' - ] - }, - 'q': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y,0)' - ] - }, - 'p': { - 'multiplicity': 2, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(1/2,-1/2,z)', - '(1/2,-1/2,-z)' - ] - }, - 'o': { - 'multiplicity': 2, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(1/2,0,z)', - '(1/2,0,-z)' - ] - }, - 'n': { - 'multiplicity': 2, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(0,-1/2,z)', - '(0,-1/2,-z)' - ] - }, - 'm': { - 'multiplicity': 2, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)' - ] - }, - 'l': { - 'multiplicity': 2, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(x,-1/2,1/2)', - '(-x,-1/2,1/2)' - ] - }, - 'k': { - 'multiplicity': 2, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(x,0,1/2)', - '(-x,0,1/2)' - ] - }, - 'j': { - 'multiplicity': 2, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(x,-1/2,0)', - '(-x,-1/2,0)' - ] - }, - 'i': { - 'multiplicity': 2, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)' - ] - }, - 'h': { - 'multiplicity': 1, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/2,-1/2,1/2)' - ] - }, - 'g': { - 'multiplicity': 1, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,-1/2,1/2)' - ] - }, - 'f': { - 'multiplicity': 1, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/2,-1/2,0)' - ] - }, - 'e': { - 'multiplicity': 1, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/2,0,1/2)' - ] - }, - 'd': { - 'multiplicity': 1, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,-1/2,0)' - ] - }, - 'c': { - 'multiplicity': 1, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,1/2)' - ] - }, - 'b': { - 'multiplicity': 1, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/2,0,0)' - ] - }, - 'a': { - 'multiplicity': 1, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,0)' - ] + 'coords_xyz': ['(x,y,z)', '(-x+1/2,y-1/2,-z)', '(-x,-y-1/2,z+1/2)', '(x+1/2,-y,-z+1/2)'], } - } + }, }, - (17, 'abc'): { - 'IT_number': 17, + (20, 'abc'): { + 'IT_number': 20, 'setting': 0, 'IT_coordinate_system_code': 'abc', - 'name_H-M_alt': 'P 2 2 21', + 'name_H-M_alt': 'C 2 2 21', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'e': { - 'multiplicity': 4, + 'c': { + 'multiplicity': 8, 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z+1/2)', - '(-x,y,-z+1/2)', - '(x,-y,-z)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(1/2,y,1/4)', - '(1/2,-y,3/4)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(0,y,1/4)', - '(0,-y,3/4)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(x,1/2,0)', - '(-x,1/2,1/2)' - ] + 'coords_xyz': ['(x,y,z)', '(-x,-y,z+1/2)', '(-x,y,-z+1/2)', '(x,-y,-z)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,1/2)' - ] - } - } + 'b': {'multiplicity': 4, 'site_symmetry': '.2.', 'coords_xyz': ['(0,y,1/4)', '(0,-y,3/4)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '2..', 'coords_xyz': ['(x,0,0)', '(-x,0,1/2)']}, + }, }, - (17, 'ba-c'): { - 'IT_number': 17, + (20, 'ba-c'): { + 'IT_number': 20, 'setting': 1, 'IT_coordinate_system_code': 'ba-c', - 'name_H-M_alt': 'P 2 2 21', + 'name_H-M_alt': 'C 2 2 21', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'e': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z-1/2)', - '(x,-y,-z-1/2)', - '(-x,y,-z)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,1/2,-1/4)', - '(-x,1/2,-3/4)' - ] - }, 'c': { - 'multiplicity': 2, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,0,-1/4)', - '(-x,0,-3/4)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(1/2,y,0)', - '(1/2,-y,-1/2)' - ] + 'multiplicity': 8, + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(-x,-y,z-1/2)', '(x,-y,-z-1/2)', '(-x,y,-z)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y,-1/2)' - ] - } - } + 'b': {'multiplicity': 4, 'site_symmetry': '.2.', 'coords_xyz': ['(x,0,-1/4)', '(-x,0,-3/4)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '2..', 'coords_xyz': ['(0,y,0)', '(0,-y,-1/2)']}, + }, }, - (17, 'cab'): { - 'IT_number': 17, + (20, 'cab'): { + 'IT_number': 20, 'setting': 2, 'IT_coordinate_system_code': 'cab', - 'name_H-M_alt': 'P 21 2 2', + 'name_H-M_alt': 'A 21 2 2', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'e': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x+1/2,-y,-z)', - '(-x+1/2,-y,z)', - '(-x,y,-z)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(1/4,1/2,z)', - '(3/4,1/2,-z)' - ] - }, 'c': { - 'multiplicity': 2, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(1/4,0,z)', - '(3/4,0,-z)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,y,1/2)', - '(1/2,-y,1/2)' - ] + 'multiplicity': 8, + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(x+1/2,-y,-z)', '(-x+1/2,-y,z)', '(-x,y,-z)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,y,0)', - '(1/2,-y,0)' - ] - } - } + 'b': {'multiplicity': 4, 'site_symmetry': '.2.', 'coords_xyz': ['(1/4,0,z)', '(3/4,0,-z)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '2..', 'coords_xyz': ['(0,y,0)', '(1/2,-y,0)']}, + }, }, - (17, '-cba'): { - 'IT_number': 17, + (20, '-cba'): { + 'IT_number': 20, 'setting': 3, 'IT_coordinate_system_code': '-cba', - 'name_H-M_alt': 'P 21 2 2', + 'name_H-M_alt': 'A 21 2 2', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'e': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x-1/2,-y,-z)', - '(-x-1/2,y,-z)', - '(-x,-y,z)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(-1/4,y,1/2)', - '(-3/4,-y,1/2)' - ] - }, 'c': { - 'multiplicity': 2, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(-1/4,y,0)', - '(-3/4,-y,0)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,1/2,z)', - '(-1/2,1/2,-z)' - ] + 'multiplicity': 8, + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(x-1/2,-y,-z)', '(-x-1/2,y,-z)', '(-x,-y,z)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,0,z)', - '(-1/2,0,-z)' - ] - } - } + 'b': {'multiplicity': 4, 'site_symmetry': '.2.', 'coords_xyz': ['(-1/4,y,0)', '(-3/4,-y,0)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '2..', 'coords_xyz': ['(0,0,z)', '(-1/2,0,-z)']}, + }, }, - (17, 'bca'): { - 'IT_number': 17, + (20, 'bca'): { + 'IT_number': 20, 'setting': 4, 'IT_coordinate_system_code': 'bca', - 'name_H-M_alt': 'P 2 21 2', + 'name_H-M_alt': 'B 2 21 2', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'e': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y+1/2,-z)', - '(x,-y+1/2,-z)', - '(-x,-y,z)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,1/4,1/2)', - '(-x,3/4,1/2)' - ] - }, 'c': { - 'multiplicity': 2, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,1/4,0)', - '(-x,3/4,0)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(1/2,0,z)', - '(1/2,1/2,-z)' - ] + 'multiplicity': 8, + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(-x,y+1/2,-z)', '(x,-y+1/2,-z)', '(-x,-y,z)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,0,z)', - '(0,1/2,-z)' - ] - } - } + 'b': {'multiplicity': 4, 'site_symmetry': '.2.', 'coords_xyz': ['(x,1/4,0)', '(-x,3/4,0)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '2..', 'coords_xyz': ['(0,0,z)', '(0,1/2,-z)']}, + }, }, - (17, 'a-cb'): { - 'IT_number': 17, + (20, 'a-cb'): { + 'IT_number': 20, 'setting': 5, 'IT_coordinate_system_code': 'a-cb', - 'name_H-M_alt': 'P 2 21 2', + 'name_H-M_alt': 'B 2 21 2', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'e': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y-1/2,-z)', - '(-x,-y-1/2,z)', - '(x,-y,-z)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(1/2,-1/4,z)', - '(1/2,-3/4,-z)' - ] - }, 'c': { - 'multiplicity': 2, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(0,-1/4,z)', - '(0,-3/4,-z)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(x,0,1/2)', - '(-x,-1/2,1/2)' - ] + 'multiplicity': 8, + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(-x,y-1/2,-z)', '(-x,-y-1/2,z)', '(x,-y,-z)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(x,0,0)', - '(-x,-1/2,0)' - ] - } - } + 'b': {'multiplicity': 4, 'site_symmetry': '.2.', 'coords_xyz': ['(0,-1/4,z)', '(0,-3/4,-z)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '2..', 'coords_xyz': ['(x,0,0)', '(-x,-1/2,0)']}, + }, }, - (18, 'abc'): { - 'IT_number': 18, + (21, 'abc'): { + 'IT_number': 21, 'setting': 0, 'IT_coordinate_system_code': 'abc', - 'name_H-M_alt': 'P 21 21 2', + 'name_H-M_alt': 'C 2 2 2', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'c': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z)', - '(-x+1/2,y+1/2,-z)', - '(x+1/2,-y+1/2,-z)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,1/2,z)', - '(1/2,0,-z)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,0,z)', - '(1/2,1/2,-z)' - ] - } - } + 'l': {'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(-x,-y,z)', '(-x,y,-z)', '(x,-y,-z)']}, + 'k': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(1/4,1/4,z)', '(3/4,1/4,-z)']}, + 'j': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(0,1/2,z)', '(0,1/2,-z)']}, + 'i': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(0,0,z)', '(0,0,-z)']}, + 'h': {'multiplicity': 4, 'site_symmetry': '.2.', 'coords_xyz': ['(0,y,1/2)', '(0,-y,1/2)']}, + 'g': {'multiplicity': 4, 'site_symmetry': '.2.', 'coords_xyz': ['(0,y,0)', '(0,-y,0)']}, + 'f': {'multiplicity': 4, 'site_symmetry': '2..', 'coords_xyz': ['(x,0,1/2)', '(-x,0,1/2)']}, + 'e': {'multiplicity': 4, 'site_symmetry': '2..', 'coords_xyz': ['(x,0,0)', '(-x,0,0)']}, + 'd': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(0,0,1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(1/2,0,1/2)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(0,1/2,0)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(0,0,0)']}, + }, }, - (18, 'ba-c'): { - 'IT_number': 18, + (21, 'ba-c'): { + 'IT_number': 21, 'setting': 1, 'IT_coordinate_system_code': 'ba-c', - 'name_H-M_alt': 'P 21 21 2', + 'name_H-M_alt': 'C 2 2 2', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'c': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z)', - '(x+1/2,-y+1/2,-z)', - '(-x+1/2,y+1/2,-z)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/2,0,z)', - '(0,1/2,-z)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,0,z)', - '(1/2,1/2,-z)' - ] - } - } + 'l': {'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(-x,-y,z)', '(x,-y,-z)', '(-x,y,-z)']}, + 'k': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(1/4,1/4,z)', '(1/4,3/4,-z)']}, + 'j': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(1/2,0,z)', '(1/2,0,-z)']}, + 'i': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(0,0,z)', '(0,0,-z)']}, + 'h': {'multiplicity': 4, 'site_symmetry': '.2.', 'coords_xyz': ['(x,0,-1/2)', '(-x,0,-1/2)']}, + 'g': {'multiplicity': 4, 'site_symmetry': '.2.', 'coords_xyz': ['(x,0,0)', '(-x,0,0)']}, + 'f': {'multiplicity': 4, 'site_symmetry': '2..', 'coords_xyz': ['(0,y,-1/2)', '(0,-y,-1/2)']}, + 'e': {'multiplicity': 4, 'site_symmetry': '2..', 'coords_xyz': ['(0,y,0)', '(0,-y,0)']}, + 'd': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(0,0,-1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(0,1/2,-1/2)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(1/2,0,0)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(0,0,0)']}, + }, }, - (18, 'cab'): { - 'IT_number': 18, + (21, 'cab'): { + 'IT_number': 21, 'setting': 2, 'IT_coordinate_system_code': 'cab', - 'name_H-M_alt': 'P 2 21 21', + 'name_H-M_alt': 'A 2 2 2', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'c': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,-y,-z)', - '(-x,-y+1/2,z+1/2)', - '(-x,y+1/2,-z+1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,0,1/2)', - '(-x,1/2,0)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,0,0)', - '(-x,1/2,1/2)' - ] - } - } + 'l': {'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(x,-y,-z)', '(-x,-y,z)', '(-x,y,-z)']}, + 'k': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(x,1/4,1/4)', '(-x,3/4,1/4)']}, + 'j': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(x,0,1/2)', '(-x,0,1/2)']}, + 'i': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(x,0,0)', '(-x,0,0)']}, + 'h': {'multiplicity': 4, 'site_symmetry': '.2.', 'coords_xyz': ['(1/2,0,z)', '(1/2,0,-z)']}, + 'g': {'multiplicity': 4, 'site_symmetry': '.2.', 'coords_xyz': ['(0,0,z)', '(0,0,-z)']}, + 'f': {'multiplicity': 4, 'site_symmetry': '2..', 'coords_xyz': ['(1/2,y,0)', '(1/2,-y,0)']}, + 'e': {'multiplicity': 4, 'site_symmetry': '2..', 'coords_xyz': ['(0,y,0)', '(0,-y,0)']}, + 'd': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(1/2,0,0)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(1/2,1/2,0)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(0,0,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(0,0,0)']}, + }, }, - (18, '-cba'): { - 'IT_number': 18, + (21, '-cba'): { + 'IT_number': 21, 'setting': 3, 'IT_coordinate_system_code': '-cba', - 'name_H-M_alt': 'P 2 21 21', + 'name_H-M_alt': 'A 2 2 2', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'c': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,-y,-z)', - '(-x,y+1/2,-z+1/2)', - '(-x,-y+1/2,z+1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,1/2,0)', - '(-x,0,1/2)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,0,0)', - '(-x,1/2,1/2)' - ] - } - } + 'l': {'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(x,-y,-z)', '(-x,y,-z)', '(-x,-y,z)']}, + 'k': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(x,1/4,1/4)', '(-x,1/4,3/4)']}, + 'j': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(x,1/2,0)', '(-x,1/2,0)']}, + 'i': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(x,0,0)', '(-x,0,0)']}, + 'h': {'multiplicity': 4, 'site_symmetry': '.2.', 'coords_xyz': ['(-1/2,y,0)', '(-1/2,-y,0)']}, + 'g': {'multiplicity': 4, 'site_symmetry': '.2.', 'coords_xyz': ['(0,y,0)', '(0,-y,0)']}, + 'f': {'multiplicity': 4, 'site_symmetry': '2..', 'coords_xyz': ['(-1/2,0,z)', '(-1/2,0,-z)']}, + 'e': {'multiplicity': 4, 'site_symmetry': '2..', 'coords_xyz': ['(0,0,z)', '(0,0,-z)']}, + 'd': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(-1/2,0,0)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(-1/2,0,1/2)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(0,1/2,0)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(0,0,0)']}, + }, }, - (18, 'bca'): { - 'IT_number': 18, + (21, 'bca'): { + 'IT_number': 21, 'setting': 4, 'IT_coordinate_system_code': 'bca', - 'name_H-M_alt': 'P 21 2 21', + 'name_H-M_alt': 'B 2 2 2', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'c': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y,-z)', - '(x+1/2,-y,-z+1/2)', - '(-x+1/2,-y,z+1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/2,y,0)', - '(0,-y,1/2)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,y,0)', - '(1/2,-y,1/2)' - ] - } - } + 'l': {'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(-x,y,-z)', '(x,-y,-z)', '(-x,-y,z)']}, + 'k': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(1/4,y,1/4)', '(1/4,-y,3/4)']}, + 'j': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(1/2,y,0)', '(1/2,-y,0)']}, + 'i': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(0,y,0)', '(0,-y,0)']}, + 'h': {'multiplicity': 4, 'site_symmetry': '.2.', 'coords_xyz': ['(x,1/2,0)', '(-x,1/2,0)']}, + 'g': {'multiplicity': 4, 'site_symmetry': '.2.', 'coords_xyz': ['(x,0,0)', '(-x,0,0)']}, + 'f': {'multiplicity': 4, 'site_symmetry': '2..', 'coords_xyz': ['(0,1/2,z)', '(0,1/2,-z)']}, + 'e': {'multiplicity': 4, 'site_symmetry': '2..', 'coords_xyz': ['(0,0,z)', '(0,0,-z)']}, + 'd': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(0,1/2,0)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(0,1/2,1/2)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(1/2,0,0)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(0,0,0)']}, + }, }, - (18, 'a-cb'): { - 'IT_number': 18, + (21, 'a-cb'): { + 'IT_number': 21, 'setting': 5, 'IT_coordinate_system_code': 'a-cb', - 'name_H-M_alt': 'P 21 2 21', + 'name_H-M_alt': 'B 2 2 2', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'c': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y,-z)', - '(-x+1/2,-y,z+1/2)', - '(x+1/2,-y,-z+1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,y,1/2)', - '(1/2,-y,0)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,y,0)', - '(1/2,-y,1/2)' - ] - } - } + 'l': {'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(-x,y,-z)', '(-x,-y,z)', '(x,-y,-z)']}, + 'k': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(1/4,y,1/4)', '(3/4,-y,1/4)']}, + 'j': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(0,y,1/2)', '(0,-y,1/2)']}, + 'i': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(0,y,0)', '(0,-y,0)']}, + 'h': {'multiplicity': 4, 'site_symmetry': '.2.', 'coords_xyz': ['(0,-1/2,z)', '(0,-1/2,-z)']}, + 'g': {'multiplicity': 4, 'site_symmetry': '.2.', 'coords_xyz': ['(0,0,z)', '(0,0,-z)']}, + 'f': {'multiplicity': 4, 'site_symmetry': '2..', 'coords_xyz': ['(x,-1/2,0)', '(-x,-1/2,0)']}, + 'e': {'multiplicity': 4, 'site_symmetry': '2..', 'coords_xyz': ['(x,0,0)', '(-x,0,0)']}, + 'd': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(0,-1/2,0)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(1/2,-1/2,0)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(0,0,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(0,0,0)']}, + }, }, - (19, 'abc'): { - 'IT_number': 19, + (22, 'abc'): { + 'IT_number': 22, 'setting': 0, 'IT_coordinate_system_code': 'abc', - 'name_H-M_alt': 'P 21 21 21', + 'name_H-M_alt': 'F 2 2 2', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'a': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x+1/2,-y,z+1/2)', - '(-x,y+1/2,-z+1/2)', - '(x+1/2,-y+1/2,-z)' - ] - } - } + 'k': {'multiplicity': 16, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(-x,-y,z)', '(-x,y,-z)', '(x,-y,-z)']}, + 'j': {'multiplicity': 8, 'site_symmetry': '2..', 'coords_xyz': ['(x,1/4,1/4)', '(-x,3/4,1/4)']}, + 'i': {'multiplicity': 8, 'site_symmetry': '.2.', 'coords_xyz': ['(1/4,y,1/4)', '(3/4,-y,1/4)']}, + 'h': {'multiplicity': 8, 'site_symmetry': '..2', 'coords_xyz': ['(1/4,1/4,z)', '(3/4,1/4,-z)']}, + 'g': {'multiplicity': 8, 'site_symmetry': '..2', 'coords_xyz': ['(0,0,z)', '(0,0,-z)']}, + 'f': {'multiplicity': 8, 'site_symmetry': '.2.', 'coords_xyz': ['(0,y,0)', '(0,-y,0)']}, + 'e': {'multiplicity': 8, 'site_symmetry': '2..', 'coords_xyz': ['(x,0,0)', '(-x,0,0)']}, + 'd': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(1/4,1/4,3/4)']}, + 'c': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(1/4,1/4,1/4)']}, + 'b': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(0,0,1/2)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(0,0,0)']}, + }, }, - (19, 'ba-c'): { - 'IT_number': 19, + (22, 'ba-c'): { + 'IT_number': 22, 'setting': 1, 'IT_coordinate_system_code': 'ba-c', - 'name_H-M_alt': 'P 21 21 21', + 'name_H-M_alt': 'F 2 2 2', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'a': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y+1/2,z-1/2)', - '(x+1/2,-y,-z-1/2)', - '(-x+1/2,y+1/2,-z)' - ] - } - } + 'k': {'multiplicity': 16, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(-x,-y,z)', '(x,-y,-z)', '(-x,y,-z)']}, + 'j': {'multiplicity': 8, 'site_symmetry': '2..', 'coords_xyz': ['(1/4,y,-1/4)', '(3/4,-y,-1/4)']}, + 'i': {'multiplicity': 8, 'site_symmetry': '.2.', 'coords_xyz': ['(x,1/4,-1/4)', '(-x,3/4,-1/4)']}, + 'h': {'multiplicity': 8, 'site_symmetry': '..2', 'coords_xyz': ['(1/4,1/4,z)', '(1/4,3/4,-z)']}, + 'g': {'multiplicity': 8, 'site_symmetry': '..2', 'coords_xyz': ['(0,0,z)', '(0,0,-z)']}, + 'f': {'multiplicity': 8, 'site_symmetry': '.2.', 'coords_xyz': ['(x,0,0)', '(-x,0,0)']}, + 'e': {'multiplicity': 8, 'site_symmetry': '2..', 'coords_xyz': ['(0,y,0)', '(0,-y,0)']}, + 'd': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(1/4,1/4,-3/4)']}, + 'c': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(1/4,1/4,-1/4)']}, + 'b': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(0,0,-1/2)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(0,0,0)']}, + }, }, - (19, 'cab'): { - 'IT_number': 19, + (22, 'cab'): { + 'IT_number': 22, 'setting': 2, 'IT_coordinate_system_code': 'cab', - 'name_H-M_alt': 'P 21 21 21', + 'name_H-M_alt': 'F 2 2 2', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'a': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x+1/2,-y+1/2,-z)', - '(-x+1/2,-y,z+1/2)', - '(-x,y+1/2,-z+1/2)' - ] - } - } + 'k': {'multiplicity': 16, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(x,-y,-z)', '(-x,-y,z)', '(-x,y,-z)']}, + 'j': {'multiplicity': 8, 'site_symmetry': '2..', 'coords_xyz': ['(1/4,y,1/4)', '(1/4,-y,3/4)']}, + 'i': {'multiplicity': 8, 'site_symmetry': '.2.', 'coords_xyz': ['(1/4,1/4,z)', '(1/4,3/4,-z)']}, + 'h': {'multiplicity': 8, 'site_symmetry': '..2', 'coords_xyz': ['(x,1/4,1/4)', '(-x,3/4,1/4)']}, + 'g': {'multiplicity': 8, 'site_symmetry': '..2', 'coords_xyz': ['(x,0,0)', '(-x,0,0)']}, + 'f': {'multiplicity': 8, 'site_symmetry': '.2.', 'coords_xyz': ['(0,0,z)', '(0,0,-z)']}, + 'e': {'multiplicity': 8, 'site_symmetry': '2..', 'coords_xyz': ['(0,y,0)', '(0,-y,0)']}, + 'd': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(3/4,1/4,1/4)']}, + 'c': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(1/4,1/4,1/4)']}, + 'b': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(1/2,0,0)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(0,0,0)']}, + }, }, - (19, '-cba'): { - 'IT_number': 19, + (22, '-cba'): { + 'IT_number': 22, 'setting': 3, 'IT_coordinate_system_code': '-cba', - 'name_H-M_alt': 'P 21 21 21', + 'name_H-M_alt': 'F 2 2 2', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'a': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x-1/2,-y,-z+1/2)', - '(-x-1/2,y+1/2,-z)', - '(-x,-y+1/2,z+1/2)' - ] - } - } + 'k': {'multiplicity': 16, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(x,-y,-z)', '(-x,y,-z)', '(-x,-y,z)']}, + 'j': {'multiplicity': 8, 'site_symmetry': '2..', 'coords_xyz': ['(-1/4,1/4,z)', '(-1/4,3/4,-z)']}, + 'i': {'multiplicity': 8, 'site_symmetry': '.2.', 'coords_xyz': ['(-1/4,y,1/4)', '(-1/4,-y,3/4)']}, + 'h': {'multiplicity': 8, 'site_symmetry': '..2', 'coords_xyz': ['(x,1/4,1/4)', '(-x,1/4,3/4)']}, + 'g': {'multiplicity': 8, 'site_symmetry': '..2', 'coords_xyz': ['(x,0,0)', '(-x,0,0)']}, + 'f': {'multiplicity': 8, 'site_symmetry': '.2.', 'coords_xyz': ['(0,y,0)', '(0,-y,0)']}, + 'e': {'multiplicity': 8, 'site_symmetry': '2..', 'coords_xyz': ['(0,0,z)', '(0,0,-z)']}, + 'd': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(-3/4,1/4,1/4)']}, + 'c': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(-1/4,1/4,1/4)']}, + 'b': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(-1/2,0,0)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(0,0,0)']}, + }, }, - (19, 'bca'): { - 'IT_number': 19, + (22, 'bca'): { + 'IT_number': 22, 'setting': 4, 'IT_coordinate_system_code': 'bca', - 'name_H-M_alt': 'P 21 21 21', + 'name_H-M_alt': 'F 2 2 2', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'a': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y+1/2,-z+1/2)', - '(x+1/2,-y+1/2,-z)', - '(-x+1/2,-y,z+1/2)' - ] - } - } + 'k': {'multiplicity': 16, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(-x,y,-z)', '(x,-y,-z)', '(-x,-y,z)']}, + 'j': {'multiplicity': 8, 'site_symmetry': '2..', 'coords_xyz': ['(1/4,1/4,z)', '(3/4,1/4,-z)']}, + 'i': {'multiplicity': 8, 'site_symmetry': '.2.', 'coords_xyz': ['(x,1/4,1/4)', '(-x,1/4,3/4)']}, + 'h': {'multiplicity': 8, 'site_symmetry': '..2', 'coords_xyz': ['(1/4,y,1/4)', '(1/4,-y,3/4)']}, + 'g': {'multiplicity': 8, 'site_symmetry': '..2', 'coords_xyz': ['(0,y,0)', '(0,-y,0)']}, + 'f': {'multiplicity': 8, 'site_symmetry': '.2.', 'coords_xyz': ['(x,0,0)', '(-x,0,0)']}, + 'e': {'multiplicity': 8, 'site_symmetry': '2..', 'coords_xyz': ['(0,0,z)', '(0,0,-z)']}, + 'd': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(1/4,3/4,1/4)']}, + 'c': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(1/4,1/4,1/4)']}, + 'b': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(0,1/2,0)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(0,0,0)']}, + }, }, - (19, 'a-cb'): { - 'IT_number': 19, + (22, 'a-cb'): { + 'IT_number': 22, 'setting': 5, 'IT_coordinate_system_code': 'a-cb', - 'name_H-M_alt': 'P 21 21 21', + 'name_H-M_alt': 'F 2 2 2', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'a': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x+1/2,y-1/2,-z)', - '(-x,-y-1/2,z+1/2)', - '(x+1/2,-y,-z+1/2)' - ] - } - } + 'k': {'multiplicity': 16, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(-x,y,-z)', '(-x,-y,z)', '(x,-y,-z)']}, + 'j': {'multiplicity': 8, 'site_symmetry': '2..', 'coords_xyz': ['(x,-1/4,1/4)', '(-x,-1/4,3/4)']}, + 'i': {'multiplicity': 8, 'site_symmetry': '.2.', 'coords_xyz': ['(1/4,-1/4,z)', '(3/4,-1/4,-z)']}, + 'h': {'multiplicity': 8, 'site_symmetry': '..2', 'coords_xyz': ['(1/4,y,1/4)', '(3/4,-y,1/4)']}, + 'g': {'multiplicity': 8, 'site_symmetry': '..2', 'coords_xyz': ['(0,y,0)', '(0,-y,0)']}, + 'f': {'multiplicity': 8, 'site_symmetry': '.2.', 'coords_xyz': ['(0,0,z)', '(0,0,-z)']}, + 'e': {'multiplicity': 8, 'site_symmetry': '2..', 'coords_xyz': ['(x,0,0)', '(-x,0,0)']}, + 'd': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(1/4,-3/4,1/4)']}, + 'c': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(1/4,-1/4,1/4)']}, + 'b': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(0,-1/2,0)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(0,0,0)']}, + }, }, - (20, 'abc'): { - 'IT_number': 20, + (23, 'abc'): { + 'IT_number': 23, 'setting': 0, 'IT_coordinate_system_code': 'abc', - 'name_H-M_alt': 'C 2 2 21', + 'name_H-M_alt': 'I 2 2 2', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'c': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z+1/2)', - '(-x,y,-z+1/2)', - '(x,-y,-z)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(0,y,1/4)', - '(0,-y,3/4)' - ] - }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,1/2)' - ] - } - } + 'k': {'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(-x,-y,z)', '(-x,y,-z)', '(x,-y,-z)']}, + 'j': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(0,1/2,z)', '(0,1/2,-z)']}, + 'i': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(0,0,z)', '(0,0,-z)']}, + 'h': {'multiplicity': 4, 'site_symmetry': '.2.', 'coords_xyz': ['(1/2,y,0)', '(1/2,-y,0)']}, + 'g': {'multiplicity': 4, 'site_symmetry': '.2.', 'coords_xyz': ['(0,y,0)', '(0,-y,0)']}, + 'f': {'multiplicity': 4, 'site_symmetry': '2..', 'coords_xyz': ['(x,0,1/2)', '(-x,0,1/2)']}, + 'e': {'multiplicity': 4, 'site_symmetry': '2..', 'coords_xyz': ['(x,0,0)', '(-x,0,0)']}, + 'd': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(0,1/2,0)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(0,0,1/2)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(1/2,0,0)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(0,0,0)']}, + }, }, - (20, 'ba-c'): { - 'IT_number': 20, + (23, 'ba-c'): { + 'IT_number': 23, 'setting': 1, 'IT_coordinate_system_code': 'ba-c', - 'name_H-M_alt': 'C 2 2 21', + 'name_H-M_alt': 'I 2 2 2', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'c': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z-1/2)', - '(x,-y,-z-1/2)', - '(-x,y,-z)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,0,-1/4)', - '(-x,0,-3/4)' - ] - }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y,-1/2)' - ] - } - } + 'k': {'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(-x,-y,z)', '(x,-y,-z)', '(-x,y,-z)']}, + 'j': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(1/2,0,z)', '(1/2,0,-z)']}, + 'i': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(0,0,z)', '(0,0,-z)']}, + 'h': {'multiplicity': 4, 'site_symmetry': '.2.', 'coords_xyz': ['(x,1/2,0)', '(-x,1/2,0)']}, + 'g': {'multiplicity': 4, 'site_symmetry': '.2.', 'coords_xyz': ['(x,0,0)', '(-x,0,0)']}, + 'f': {'multiplicity': 4, 'site_symmetry': '2..', 'coords_xyz': ['(0,y,-1/2)', '(0,-y,-1/2)']}, + 'e': {'multiplicity': 4, 'site_symmetry': '2..', 'coords_xyz': ['(0,y,0)', '(0,-y,0)']}, + 'd': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(1/2,0,0)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(0,0,-1/2)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(0,1/2,0)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(0,0,0)']}, + }, }, - (20, 'cab'): { - 'IT_number': 20, + (23, 'cab'): { + 'IT_number': 23, 'setting': 2, 'IT_coordinate_system_code': 'cab', - 'name_H-M_alt': 'A 21 2 2', + 'name_H-M_alt': 'I 2 2 2', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'c': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x+1/2,-y,-z)', - '(-x+1/2,-y,z)', - '(-x,y,-z)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(1/4,0,z)', - '(3/4,0,-z)' - ] - }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,y,0)', - '(1/2,-y,0)' - ] - } - } + 'k': {'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(x,-y,-z)', '(-x,-y,z)', '(-x,y,-z)']}, + 'j': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(x,0,1/2)', '(-x,0,1/2)']}, + 'i': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(x,0,0)', '(-x,0,0)']}, + 'h': {'multiplicity': 4, 'site_symmetry': '.2.', 'coords_xyz': ['(0,1/2,z)', '(0,1/2,-z)']}, + 'g': {'multiplicity': 4, 'site_symmetry': '.2.', 'coords_xyz': ['(0,0,z)', '(0,0,-z)']}, + 'f': {'multiplicity': 4, 'site_symmetry': '2..', 'coords_xyz': ['(1/2,y,0)', '(1/2,-y,0)']}, + 'e': {'multiplicity': 4, 'site_symmetry': '2..', 'coords_xyz': ['(0,y,0)', '(0,-y,0)']}, + 'd': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(0,0,1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(1/2,0,0)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(0,1/2,0)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(0,0,0)']}, + }, }, - (20, '-cba'): { - 'IT_number': 20, + (23, '-cba'): { + 'IT_number': 23, 'setting': 3, 'IT_coordinate_system_code': '-cba', - 'name_H-M_alt': 'A 21 2 2', + 'name_H-M_alt': 'I 2 2 2', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'c': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x-1/2,-y,-z)', - '(-x-1/2,y,-z)', - '(-x,-y,z)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(-1/4,y,0)', - '(-3/4,-y,0)' - ] - }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,0,z)', - '(-1/2,0,-z)' - ] - } - } + 'k': {'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(x,-y,-z)', '(-x,y,-z)', '(-x,-y,z)']}, + 'j': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(x,1/2,0)', '(-x,1/2,0)']}, + 'i': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(x,0,0)', '(-x,0,0)']}, + 'h': {'multiplicity': 4, 'site_symmetry': '.2.', 'coords_xyz': ['(0,y,1/2)', '(0,-y,1/2)']}, + 'g': {'multiplicity': 4, 'site_symmetry': '.2.', 'coords_xyz': ['(0,y,0)', '(0,-y,0)']}, + 'f': {'multiplicity': 4, 'site_symmetry': '2..', 'coords_xyz': ['(-1/2,0,z)', '(-1/2,0,-z)']}, + 'e': {'multiplicity': 4, 'site_symmetry': '2..', 'coords_xyz': ['(0,0,z)', '(0,0,-z)']}, + 'd': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(0,1/2,0)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(-1/2,0,0)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(0,0,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(0,0,0)']}, + }, }, - (20, 'bca'): { - 'IT_number': 20, + (23, 'bca'): { + 'IT_number': 23, 'setting': 4, 'IT_coordinate_system_code': 'bca', - 'name_H-M_alt': 'B 2 21 2', + 'name_H-M_alt': 'I 2 2 2', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'c': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y+1/2,-z)', - '(x,-y+1/2,-z)', - '(-x,-y,z)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,1/4,0)', - '(-x,3/4,0)' - ] - }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,0,z)', - '(0,1/2,-z)' - ] - } - } + 'k': {'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(-x,y,-z)', '(x,-y,-z)', '(-x,-y,z)']}, + 'j': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(1/2,y,0)', '(1/2,-y,0)']}, + 'i': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(0,y,0)', '(0,-y,0)']}, + 'h': {'multiplicity': 4, 'site_symmetry': '.2.', 'coords_xyz': ['(x,0,1/2)', '(-x,0,1/2)']}, + 'g': {'multiplicity': 4, 'site_symmetry': '.2.', 'coords_xyz': ['(x,0,0)', '(-x,0,0)']}, + 'f': {'multiplicity': 4, 'site_symmetry': '2..', 'coords_xyz': ['(0,1/2,z)', '(0,1/2,-z)']}, + 'e': {'multiplicity': 4, 'site_symmetry': '2..', 'coords_xyz': ['(0,0,z)', '(0,0,-z)']}, + 'd': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(1/2,0,0)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(0,1/2,0)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(0,0,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(0,0,0)']}, + }, }, - (20, 'a-cb'): { - 'IT_number': 20, + (23, 'a-cb'): { + 'IT_number': 23, 'setting': 5, 'IT_coordinate_system_code': 'a-cb', - 'name_H-M_alt': 'B 2 21 2', + 'name_H-M_alt': 'I 2 2 2', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'c': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y-1/2,-z)', - '(-x,-y-1/2,z)', - '(x,-y,-z)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(0,-1/4,z)', - '(0,-3/4,-z)' - ] - }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(x,0,0)', - '(-x,-1/2,0)' - ] - } - } + 'k': {'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(-x,y,-z)', '(-x,-y,z)', '(x,-y,-z)']}, + 'j': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(0,y,1/2)', '(0,-y,1/2)']}, + 'i': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(0,y,0)', '(0,-y,0)']}, + 'h': {'multiplicity': 4, 'site_symmetry': '.2.', 'coords_xyz': ['(1/2,0,z)', '(1/2,0,-z)']}, + 'g': {'multiplicity': 4, 'site_symmetry': '.2.', 'coords_xyz': ['(0,0,z)', '(0,0,-z)']}, + 'f': {'multiplicity': 4, 'site_symmetry': '2..', 'coords_xyz': ['(x,-1/2,0)', '(-x,-1/2,0)']}, + 'e': {'multiplicity': 4, 'site_symmetry': '2..', 'coords_xyz': ['(x,0,0)', '(-x,0,0)']}, + 'd': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(0,0,1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(0,-1/2,0)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(1/2,0,0)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(0,0,0)']}, + }, }, - (21, 'abc'): { - 'IT_number': 21, + (24, 'abc'): { + 'IT_number': 24, 'setting': 0, 'IT_coordinate_system_code': 'abc', - 'name_H-M_alt': 'C 2 2 2', + 'name_H-M_alt': 'I 21 21 21', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'l': { + 'd': { 'multiplicity': 8, 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z)', - '(-x,y,-z)', - '(x,-y,-z)' - ] - }, - 'k': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/4,1/4,z)', - '(3/4,1/4,-z)' - ] - }, - 'j': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,1/2,z)', - '(0,1/2,-z)' - ] + 'coords_xyz': ['(x,y,z)', '(-x+1/2,-y,z+1/2)', '(-x,y+1/2,-z+1/2)', '(x+1/2,-y+1/2,-z)'], }, - 'i': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)' - ] - }, - 'h': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(0,y,1/2)', - '(0,-y,1/2)' - ] - }, - 'g': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y,0)' - ] - }, - 'f': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(x,0,1/2)', - '(-x,0,1/2)' - ] - }, - 'e': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/2,0,1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,1/2,0)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'c': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(0,1/4,z)', '(0,3/4,-z+1/2)']}, + 'b': {'multiplicity': 4, 'site_symmetry': '.2.', 'coords_xyz': ['(1/4,y,0)', '(1/4,-y,1/2)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '2..', 'coords_xyz': ['(x,0,1/4)', '(-x+1/2,0,3/4)']}, + }, }, - (21, 'ba-c'): { - 'IT_number': 21, + (24, 'ba-c'): { + 'IT_number': 24, 'setting': 1, 'IT_coordinate_system_code': 'ba-c', - 'name_H-M_alt': 'C 2 2 2', + 'name_H-M_alt': 'I 21 21 21', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'l': { + 'd': { 'multiplicity': 8, 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z)', - '(x,-y,-z)', - '(-x,y,-z)' - ] - }, - 'k': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/4,1/4,z)', - '(1/4,3/4,-z)' - ] - }, - 'j': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/2,0,z)', - '(1/2,0,-z)' - ] - }, - 'i': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)' - ] - }, - 'h': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,0,-1/2)', - '(-x,0,-1/2)' - ] - }, - 'g': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)' - ] - }, - 'f': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,y,-1/2)', - '(0,-y,-1/2)' - ] - }, - 'e': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y,0)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,-1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,1/2,-1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/2,0,0)' - ] + 'coords_xyz': ['(x,y,z)', '(-x,-y+1/2,z-1/2)', '(x+1/2,-y,-z-1/2)', '(-x+1/2,y+1/2,-z)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'c': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(1/4,0,z)', '(3/4,0,-z-1/2)']}, + 'b': {'multiplicity': 4, 'site_symmetry': '.2.', 'coords_xyz': ['(x,1/4,0)', '(-x,1/4,-1/2)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '2..', 'coords_xyz': ['(0,y,-1/4)', '(0,-y+1/2,-3/4)']}, + }, }, - (21, 'cab'): { - 'IT_number': 21, + (24, 'cab'): { + 'IT_number': 24, 'setting': 2, 'IT_coordinate_system_code': 'cab', - 'name_H-M_alt': 'A 2 2 2', + 'name_H-M_alt': 'I 21 21 21', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'l': { + 'd': { 'multiplicity': 8, 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,-y,-z)', - '(-x,-y,z)', - '(-x,y,-z)' - ] - }, - 'k': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,1/4,1/4)', - '(-x,3/4,1/4)' - ] - }, - 'j': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,0,1/2)', - '(-x,0,1/2)' - ] - }, - 'i': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)' - ] - }, - 'h': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(1/2,0,z)', - '(1/2,0,-z)' - ] - }, - 'g': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)' - ] - }, - 'f': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(1/2,y,0)', - '(1/2,-y,0)' - ] - }, - 'e': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y,0)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/2,0,0)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/2,1/2,0)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,1/2)' - ] + 'coords_xyz': ['(x,y,z)', '(x+1/2,-y+1/2,-z)', '(-x+1/2,-y,z+1/2)', '(-x,y+1/2,-z+1/2)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'c': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(x,0,1/4)', '(-x+1/2,0,3/4)']}, + 'b': {'multiplicity': 4, 'site_symmetry': '.2.', 'coords_xyz': ['(0,1/4,z)', '(1/2,1/4,-z)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '2..', 'coords_xyz': ['(1/4,y,0)', '(3/4,-y+1/2,0)']}, + }, }, - (21, '-cba'): { - 'IT_number': 21, + (24, '-cba'): { + 'IT_number': 24, 'setting': 3, 'IT_coordinate_system_code': '-cba', - 'name_H-M_alt': 'A 2 2 2', + 'name_H-M_alt': 'I 21 21 21', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'l': { + 'd': { 'multiplicity': 8, 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,-y,-z)', - '(-x,y,-z)', - '(-x,-y,z)' - ] + 'coords_xyz': ['(x,y,z)', '(x-1/2,-y,-z+1/2)', '(-x-1/2,y+1/2,-z)', '(-x,-y+1/2,z+1/2)'], }, - 'k': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,1/4,1/4)', - '(-x,1/4,3/4)' - ] - }, - 'j': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,1/2,0)', - '(-x,1/2,0)' - ] - }, - 'i': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)' - ] + 'c': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(x,1/4,0)', '(-x-1/2,3/4,0)']}, + 'b': {'multiplicity': 4, 'site_symmetry': '.2.', 'coords_xyz': ['(0,y,1/4)', '(-1/2,-y,1/4)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '2..', 'coords_xyz': ['(-1/4,0,z)', '(-3/4,0,-z+1/2)']}, + }, + }, + (24, 'bca'): { + 'IT_number': 24, + 'setting': 4, + 'IT_coordinate_system_code': 'bca', + 'name_H-M_alt': 'I 21 21 21', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'd': { + 'multiplicity': 8, + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(-x,y+1/2,-z+1/2)', '(x+1/2,-y+1/2,-z)', '(-x+1/2,-y,z+1/2)'], }, - 'h': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(-1/2,y,0)', - '(-1/2,-y,0)' - ] + 'c': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(1/4,y,0)', '(3/4,-y+1/2,0)']}, + 'b': {'multiplicity': 4, 'site_symmetry': '.2.', 'coords_xyz': ['(x,0,1/4)', '(-x,1/2,1/4)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '2..', 'coords_xyz': ['(0,1/4,z)', '(0,3/4,-z+1/2)']}, + }, + }, + (24, 'a-cb'): { + 'IT_number': 24, + 'setting': 5, + 'IT_coordinate_system_code': 'a-cb', + 'name_H-M_alt': 'I 21 21 21', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'd': { + 'multiplicity': 8, + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(-x+1/2,y-1/2,-z)', '(-x,-y-1/2,z+1/2)', '(x+1/2,-y,-z+1/2)'], }, - 'g': { + 'c': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(0,y,1/4)', '(0,-y-1/2,3/4)']}, + 'b': {'multiplicity': 4, 'site_symmetry': '.2.', 'coords_xyz': ['(1/4,0,z)', '(1/4,-1/2,-z)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '2..', 'coords_xyz': ['(x,-1/4,0)', '(-x+1/2,-3/4,0)']}, + }, + }, + (25, 'abc'): { + 'IT_number': 25, + 'setting': 0, + 'IT_coordinate_system_code': 'abc', + 'name_H-M_alt': 'P m m 2', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'i': {'multiplicity': 4, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(-x,-y,z)', '(x,-y,z)', '(-x,y,z)']}, + 'h': {'multiplicity': 2, 'site_symmetry': 'm..', 'coords_xyz': ['(1/2,y,z)', '(1/2,-y,z)']}, + 'g': {'multiplicity': 2, 'site_symmetry': 'm..', 'coords_xyz': ['(0,y,z)', '(0,-y,z)']}, + 'f': {'multiplicity': 2, 'site_symmetry': '.m.', 'coords_xyz': ['(x,1/2,z)', '(-x,1/2,z)']}, + 'e': {'multiplicity': 2, 'site_symmetry': '.m.', 'coords_xyz': ['(x,0,z)', '(-x,0,z)']}, + 'd': {'multiplicity': 1, 'site_symmetry': 'mm2', 'coords_xyz': ['(1/2,1/2,z)']}, + 'c': {'multiplicity': 1, 'site_symmetry': 'mm2', 'coords_xyz': ['(1/2,0,z)']}, + 'b': {'multiplicity': 1, 'site_symmetry': 'mm2', 'coords_xyz': ['(0,1/2,z)']}, + 'a': {'multiplicity': 1, 'site_symmetry': 'mm2', 'coords_xyz': ['(0,0,z)']}, + }, + }, + (25, 'ba-c'): { + 'IT_number': 25, + 'setting': 1, + 'IT_coordinate_system_code': 'ba-c', + 'name_H-M_alt': 'P m m 2', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'i': {'multiplicity': 4, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(-x,-y,z)', '(-x,y,z)', '(x,-y,z)']}, + 'h': {'multiplicity': 2, 'site_symmetry': 'm..', 'coords_xyz': ['(x,1/2,z)', '(-x,1/2,z)']}, + 'g': {'multiplicity': 2, 'site_symmetry': 'm..', 'coords_xyz': ['(x,0,z)', '(-x,0,z)']}, + 'f': {'multiplicity': 2, 'site_symmetry': '.m.', 'coords_xyz': ['(1/2,y,z)', '(1/2,-y,z)']}, + 'e': {'multiplicity': 2, 'site_symmetry': '.m.', 'coords_xyz': ['(0,y,z)', '(0,-y,z)']}, + 'd': {'multiplicity': 1, 'site_symmetry': 'mm2', 'coords_xyz': ['(1/2,1/2,z)']}, + 'c': {'multiplicity': 1, 'site_symmetry': 'mm2', 'coords_xyz': ['(0,1/2,z)']}, + 'b': {'multiplicity': 1, 'site_symmetry': 'mm2', 'coords_xyz': ['(1/2,0,z)']}, + 'a': {'multiplicity': 1, 'site_symmetry': 'mm2', 'coords_xyz': ['(0,0,z)']}, + }, + }, + (25, 'cab'): { + 'IT_number': 25, + 'setting': 2, + 'IT_coordinate_system_code': 'cab', + 'name_H-M_alt': 'P 2 m m', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'i': {'multiplicity': 4, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(x,-y,-z)', '(x,y,-z)', '(x,-y,z)']}, + 'h': {'multiplicity': 2, 'site_symmetry': 'm..', 'coords_xyz': ['(x,1/2,z)', '(x,1/2,-z)']}, + 'g': {'multiplicity': 2, 'site_symmetry': 'm..', 'coords_xyz': ['(x,0,z)', '(x,0,-z)']}, + 'f': {'multiplicity': 2, 'site_symmetry': '.m.', 'coords_xyz': ['(x,y,1/2)', '(x,-y,1/2)']}, + 'e': {'multiplicity': 2, 'site_symmetry': '.m.', 'coords_xyz': ['(x,y,0)', '(x,-y,0)']}, + 'd': {'multiplicity': 1, 'site_symmetry': 'mm2', 'coords_xyz': ['(x,1/2,1/2)']}, + 'c': {'multiplicity': 1, 'site_symmetry': 'mm2', 'coords_xyz': ['(x,1/2,0)']}, + 'b': {'multiplicity': 1, 'site_symmetry': 'mm2', 'coords_xyz': ['(x,0,1/2)']}, + 'a': {'multiplicity': 1, 'site_symmetry': 'mm2', 'coords_xyz': ['(x,0,0)']}, + }, + }, + (25, '-cba'): { + 'IT_number': 25, + 'setting': 3, + 'IT_coordinate_system_code': '-cba', + 'name_H-M_alt': 'P 2 m m', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'i': {'multiplicity': 4, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(x,-y,-z)', '(x,-y,z)', '(x,y,-z)']}, + 'h': {'multiplicity': 2, 'site_symmetry': 'm..', 'coords_xyz': ['(x,y,1/2)', '(x,-y,1/2)']}, + 'g': {'multiplicity': 2, 'site_symmetry': 'm..', 'coords_xyz': ['(x,y,0)', '(x,-y,0)']}, + 'f': {'multiplicity': 2, 'site_symmetry': '.m.', 'coords_xyz': ['(x,1/2,z)', '(x,1/2,-z)']}, + 'e': {'multiplicity': 2, 'site_symmetry': '.m.', 'coords_xyz': ['(x,0,z)', '(x,0,-z)']}, + 'd': {'multiplicity': 1, 'site_symmetry': 'mm2', 'coords_xyz': ['(x,1/2,1/2)']}, + 'c': {'multiplicity': 1, 'site_symmetry': 'mm2', 'coords_xyz': ['(x,0,1/2)']}, + 'b': {'multiplicity': 1, 'site_symmetry': 'mm2', 'coords_xyz': ['(x,1/2,0)']}, + 'a': {'multiplicity': 1, 'site_symmetry': 'mm2', 'coords_xyz': ['(x,0,0)']}, + }, + }, + (25, 'bca'): { + 'IT_number': 25, + 'setting': 4, + 'IT_coordinate_system_code': 'bca', + 'name_H-M_alt': 'P m 2 m', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'i': {'multiplicity': 4, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(-x,y,-z)', '(-x,y,z)', '(x,y,-z)']}, + 'h': {'multiplicity': 2, 'site_symmetry': 'm..', 'coords_xyz': ['(x,y,1/2)', '(-x,y,1/2)']}, + 'g': {'multiplicity': 2, 'site_symmetry': 'm..', 'coords_xyz': ['(x,y,0)', '(-x,y,0)']}, + 'f': {'multiplicity': 2, 'site_symmetry': '.m.', 'coords_xyz': ['(1/2,y,z)', '(1/2,y,-z)']}, + 'e': {'multiplicity': 2, 'site_symmetry': '.m.', 'coords_xyz': ['(0,y,z)', '(0,y,-z)']}, + 'd': {'multiplicity': 1, 'site_symmetry': 'mm2', 'coords_xyz': ['(1/2,y,1/2)']}, + 'c': {'multiplicity': 1, 'site_symmetry': 'mm2', 'coords_xyz': ['(0,y,1/2)']}, + 'b': {'multiplicity': 1, 'site_symmetry': 'mm2', 'coords_xyz': ['(1/2,y,0)']}, + 'a': {'multiplicity': 1, 'site_symmetry': 'mm2', 'coords_xyz': ['(0,y,0)']}, + }, + }, + (25, 'a-cb'): { + 'IT_number': 25, + 'setting': 5, + 'IT_coordinate_system_code': 'a-cb', + 'name_H-M_alt': 'P m 2 m', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'i': {'multiplicity': 4, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(-x,y,-z)', '(x,y,-z)', '(-x,y,z)']}, + 'h': {'multiplicity': 2, 'site_symmetry': 'm..', 'coords_xyz': ['(1/2,y,z)', '(1/2,y,-z)']}, + 'g': {'multiplicity': 2, 'site_symmetry': 'm..', 'coords_xyz': ['(0,y,z)', '(0,y,-z)']}, + 'f': {'multiplicity': 2, 'site_symmetry': '.m.', 'coords_xyz': ['(x,y,1/2)', '(-x,y,1/2)']}, + 'e': {'multiplicity': 2, 'site_symmetry': '.m.', 'coords_xyz': ['(x,y,0)', '(-x,y,0)']}, + 'd': {'multiplicity': 1, 'site_symmetry': 'mm2', 'coords_xyz': ['(1/2,y,1/2)']}, + 'c': {'multiplicity': 1, 'site_symmetry': 'mm2', 'coords_xyz': ['(1/2,y,0)']}, + 'b': {'multiplicity': 1, 'site_symmetry': 'mm2', 'coords_xyz': ['(0,y,1/2)']}, + 'a': {'multiplicity': 1, 'site_symmetry': 'mm2', 'coords_xyz': ['(0,y,0)']}, + }, + }, + (26, 'abc'): { + 'IT_number': 26, + 'setting': 0, + 'IT_coordinate_system_code': 'abc', + 'name_H-M_alt': 'P m c 21', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'c': { 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y,0)' - ] + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(-x,-y,z+1/2)', '(x,-y,z+1/2)', '(-x,y,z)'], }, - 'f': { + 'b': {'multiplicity': 2, 'site_symmetry': 'm..', 'coords_xyz': ['(1/2,y,z)', '(1/2,-y,z+1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': 'm..', 'coords_xyz': ['(0,y,z)', '(0,-y,z+1/2)']}, + }, + }, + (26, 'ba-c'): { + 'IT_number': 26, + 'setting': 1, + 'IT_coordinate_system_code': 'ba-c', + 'name_H-M_alt': 'P c m 21', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'c': { 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(-1/2,0,z)', - '(-1/2,0,-z)' - ] + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(-x,-y,z-1/2)', '(-x,y,z-1/2)', '(x,-y,z)'], }, - 'e': { + 'b': {'multiplicity': 2, 'site_symmetry': 'm..', 'coords_xyz': ['(x,1/2,z)', '(-x,1/2,z-1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': 'm..', 'coords_xyz': ['(x,0,z)', '(-x,0,z-1/2)']}, + }, + }, + (26, 'cab'): { + 'IT_number': 26, + 'setting': 2, + 'IT_coordinate_system_code': 'cab', + 'name_H-M_alt': 'P 21 m a', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'c': { 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(-1/2,0,0)' - ] + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(x+1/2,-y,-z)', '(x+1/2,y,-z)', '(x,-y,z)'], }, + 'b': {'multiplicity': 2, 'site_symmetry': 'm..', 'coords_xyz': ['(x,1/2,z)', '(x+1/2,1/2,-z)']}, + 'a': {'multiplicity': 2, 'site_symmetry': 'm..', 'coords_xyz': ['(x,0,z)', '(x+1/2,0,-z)']}, + }, + }, + (26, '-cba'): { + 'IT_number': 26, + 'setting': 3, + 'IT_coordinate_system_code': '-cba', + 'name_H-M_alt': 'P 21 a m', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { 'c': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(-1/2,0,1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,1/2,0)' - ] + 'multiplicity': 4, + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(x-1/2,-y,-z)', '(x-1/2,-y,z)', '(x,y,-z)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'b': {'multiplicity': 2, 'site_symmetry': 'm..', 'coords_xyz': ['(x,y,1/2)', '(x-1/2,-y,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': 'm..', 'coords_xyz': ['(x,y,0)', '(x-1/2,-y,0)']}, + }, }, - (21, 'bca'): { - 'IT_number': 21, + (26, 'bca'): { + 'IT_number': 26, 'setting': 4, 'IT_coordinate_system_code': 'bca', - 'name_H-M_alt': 'B 2 2 2', + 'name_H-M_alt': 'P b 21 m', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'l': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y,-z)', - '(x,-y,-z)', - '(-x,-y,z)' - ] - }, - 'k': { + 'c': { 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/4,y,1/4)', - '(1/4,-y,3/4)' - ] + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(-x,y+1/2,-z)', '(-x,y+1/2,z)', '(x,y,-z)'], }, - 'j': { + 'b': {'multiplicity': 2, 'site_symmetry': 'm..', 'coords_xyz': ['(x,y,1/2)', '(-x,y+1/2,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': 'm..', 'coords_xyz': ['(x,y,0)', '(-x,y+1/2,0)']}, + }, + }, + (26, 'a-cb'): { + 'IT_number': 26, + 'setting': 5, + 'IT_coordinate_system_code': 'a-cb', + 'name_H-M_alt': 'P m 21 b', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'c': { 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/2,y,0)', - '(1/2,-y,0)' - ] + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(-x,y-1/2,-z)', '(x,y-1/2,-z)', '(-x,y,z)'], }, - 'i': { + 'b': {'multiplicity': 2, 'site_symmetry': 'm..', 'coords_xyz': ['(1/2,y,z)', '(1/2,y-1/2,-z)']}, + 'a': {'multiplicity': 2, 'site_symmetry': 'm..', 'coords_xyz': ['(0,y,z)', '(0,y-1/2,-z)']}, + }, + }, + (27, 'abc'): { + 'IT_number': 27, + 'setting': 0, + 'IT_coordinate_system_code': 'abc', + 'name_H-M_alt': 'P c c 2', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'e': { 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y,0)' - ] + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(-x,-y,z)', '(x,-y,z+1/2)', '(-x,y,z+1/2)'], }, - 'h': { + 'd': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(1/2,1/2,z)', '(1/2,1/2,z+1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(1/2,0,z)', '(1/2,0,z+1/2)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(0,1/2,z)', '(0,1/2,z+1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(0,0,z)', '(0,0,z+1/2)']}, + }, + }, + (27, 'ba-c'): { + 'IT_number': 27, + 'setting': 1, + 'IT_coordinate_system_code': 'ba-c', + 'name_H-M_alt': 'P c c 2', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'e': { 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,1/2,0)', - '(-x,1/2,0)' - ] + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(-x,-y,z)', '(-x,y,z-1/2)', '(x,-y,z-1/2)'], }, - 'g': { + 'd': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(1/2,1/2,z)', '(1/2,1/2,z-1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(0,1/2,z)', '(0,1/2,z-1/2)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(1/2,0,z)', '(1/2,0,z-1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(0,0,z)', '(0,0,z-1/2)']}, + }, + }, + (27, 'cab'): { + 'IT_number': 27, + 'setting': 2, + 'IT_coordinate_system_code': 'cab', + 'name_H-M_alt': 'P 2 a a', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'e': { 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)' - ] + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(x,-y,-z)', '(x+1/2,y,-z)', '(x+1/2,-y,z)'], }, - 'f': { + 'd': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(x,1/2,1/2)', '(x+1/2,1/2,1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(x,1/2,0)', '(x+1/2,1/2,0)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(x,0,1/2)', '(x+1/2,0,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(x,0,0)', '(x+1/2,0,0)']}, + }, + }, + (27, '-cba'): { + 'IT_number': 27, + 'setting': 3, + 'IT_coordinate_system_code': '-cba', + 'name_H-M_alt': 'P 2 a a', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'e': { 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,1/2,z)', - '(0,1/2,-z)' - ] + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(x,-y,-z)', '(x-1/2,-y,z)', '(x-1/2,y,-z)'], }, + 'd': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(x,1/2,1/2)', '(x-1/2,1/2,1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(x,0,1/2)', '(x-1/2,0,1/2)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(x,1/2,0)', '(x-1/2,1/2,0)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(x,0,0)', '(x-1/2,0,0)']}, + }, + }, + (27, 'bca'): { + 'IT_number': 27, + 'setting': 4, + 'IT_coordinate_system_code': 'bca', + 'name_H-M_alt': 'P b 2 b', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { 'e': { 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)' - ] + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(-x,y,-z)', '(-x,y+1/2,z)', '(x,y+1/2,-z)'], }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,1/2,0)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,1/2,1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/2,0,0)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'd': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(1/2,y,1/2)', '(1/2,y+1/2,1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(0,y,1/2)', '(0,y+1/2,1/2)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(1/2,y,0)', '(1/2,y+1/2,0)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(0,y,0)', '(0,y+1/2,0)']}, + }, }, - (21, 'a-cb'): { - 'IT_number': 21, + (27, 'a-cb'): { + 'IT_number': 27, 'setting': 5, 'IT_coordinate_system_code': 'a-cb', - 'name_H-M_alt': 'B 2 2 2', + 'name_H-M_alt': 'P b 2 b', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'l': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y,-z)', - '(-x,-y,z)', - '(x,-y,-z)' - ] - }, - 'k': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/4,y,1/4)', - '(3/4,-y,1/4)' - ] - }, - 'j': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,y,1/2)', - '(0,-y,1/2)' - ] - }, - 'i': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y,0)' - ] - }, - 'h': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(0,-1/2,z)', - '(0,-1/2,-z)' - ] - }, - 'g': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)' - ] - }, - 'f': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(x,-1/2,0)', - '(-x,-1/2,0)' - ] - }, 'e': { 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,-1/2,0)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/2,-1/2,0)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,1/2)' - ] + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(-x,y,-z)', '(x,y-1/2,-z)', '(-x,y-1/2,z)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'd': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(1/2,y,1/2)', '(1/2,y-1/2,1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(1/2,y,0)', '(1/2,y-1/2,0)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(0,y,1/2)', '(0,y-1/2,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(0,y,0)', '(0,y-1/2,0)']}, + }, }, - (22, 'abc'): { - 'IT_number': 22, + (28, 'abc'): { + 'IT_number': 28, 'setting': 0, 'IT_coordinate_system_code': 'abc', - 'name_H-M_alt': 'F 2 2 2', + 'name_H-M_alt': 'P m a 2', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'k': { - 'multiplicity': 16, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z)', - '(-x,y,-z)', - '(x,-y,-z)' - ] - }, - 'j': { - 'multiplicity': 8, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(x,1/4,1/4)', - '(-x,3/4,1/4)' - ] - }, - 'i': { - 'multiplicity': 8, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(1/4,y,1/4)', - '(3/4,-y,1/4)' - ] - }, - 'h': { - 'multiplicity': 8, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/4,1/4,z)', - '(3/4,1/4,-z)' - ] - }, - 'g': { - 'multiplicity': 8, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)' - ] - }, - 'f': { - 'multiplicity': 8, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y,0)' - ] - }, - 'e': { - 'multiplicity': 8, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)' - ] - }, 'd': { 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/4,1/4,3/4)' - ] - }, - 'c': { - 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/4,1/4,1/4)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,1/2)' - ] + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(-x,-y,z)', '(x+1/2,-y,z)', '(-x+1/2,y,z)'], }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'c': {'multiplicity': 2, 'site_symmetry': 'm..', 'coords_xyz': ['(1/4,y,z)', '(3/4,-y,z)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(0,1/2,z)', '(1/2,1/2,z)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(0,0,z)', '(1/2,0,z)']}, + }, }, - (22, 'ba-c'): { - 'IT_number': 22, + (28, 'ba-c'): { + 'IT_number': 28, 'setting': 1, 'IT_coordinate_system_code': 'ba-c', - 'name_H-M_alt': 'F 2 2 2', + 'name_H-M_alt': 'P b m 2', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'k': { - 'multiplicity': 16, + 'd': { + 'multiplicity': 4, 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z)', - '(x,-y,-z)', - '(-x,y,-z)' - ] - }, - 'j': { - 'multiplicity': 8, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(1/4,y,-1/4)', - '(3/4,-y,-1/4)' - ] - }, - 'i': { - 'multiplicity': 8, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,1/4,-1/4)', - '(-x,3/4,-1/4)' - ] - }, - 'h': { - 'multiplicity': 8, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/4,1/4,z)', - '(1/4,3/4,-z)' - ] - }, - 'g': { - 'multiplicity': 8, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)' - ] - }, - 'f': { - 'multiplicity': 8, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)' - ] - }, - 'e': { - 'multiplicity': 8, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y,0)' - ] + 'coords_xyz': ['(x,y,z)', '(-x,-y,z)', '(-x,y+1/2,z)', '(x,-y+1/2,z)'], }, + 'c': {'multiplicity': 2, 'site_symmetry': 'm..', 'coords_xyz': ['(x,1/4,z)', '(-x,3/4,z)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(1/2,0,z)', '(1/2,1/2,z)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(0,0,z)', '(0,1/2,z)']}, + }, + }, + (28, 'cab'): { + 'IT_number': 28, + 'setting': 2, + 'IT_coordinate_system_code': 'cab', + 'name_H-M_alt': 'P 2 m b', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { 'd': { 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/4,1/4,-3/4)' - ] + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(x,-y,-z)', '(x,y+1/2,-z)', '(x,-y+1/2,z)'], }, - 'c': { + 'c': {'multiplicity': 2, 'site_symmetry': 'm..', 'coords_xyz': ['(x,1/4,z)', '(x,3/4,-z)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(x,0,1/2)', '(x,1/2,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(x,0,0)', '(x,1/2,0)']}, + }, + }, + (28, '-cba'): { + 'IT_number': 28, + 'setting': 3, + 'IT_coordinate_system_code': '-cba', + 'name_H-M_alt': 'P 2 c m', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'd': { 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/4,1/4,-1/4)' - ] + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(x,-y,-z)', '(x,-y,z+1/2)', '(x,y,-z+1/2)'], }, - 'b': { + 'c': {'multiplicity': 2, 'site_symmetry': 'm..', 'coords_xyz': ['(x,y,1/4)', '(x,-y,3/4)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(x,1/2,0)', '(x,1/2,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(x,0,0)', '(x,0,1/2)']}, + }, + }, + (28, 'bca'): { + 'IT_number': 28, + 'setting': 4, + 'IT_coordinate_system_code': 'bca', + 'name_H-M_alt': 'P c 2 m', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'd': { 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,-1/2)' - ] + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(-x,y,-z)', '(-x,y,z+1/2)', '(x,y,-z+1/2)'], }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'c': {'multiplicity': 2, 'site_symmetry': 'm..', 'coords_xyz': ['(x,y,1/4)', '(-x,y,3/4)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(1/2,y,0)', '(1/2,y,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(0,y,0)', '(0,y,1/2)']}, + }, }, - (22, 'cab'): { - 'IT_number': 22, - 'setting': 2, - 'IT_coordinate_system_code': 'cab', - 'name_H-M_alt': 'F 2 2 2', + (28, 'a-cb'): { + 'IT_number': 28, + 'setting': 5, + 'IT_coordinate_system_code': 'a-cb', + 'name_H-M_alt': 'P m 2 a', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'k': { - 'multiplicity': 16, + 'd': { + 'multiplicity': 4, 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,-y,-z)', - '(-x,-y,z)', - '(-x,y,-z)' - ] - }, - 'j': { - 'multiplicity': 8, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(1/4,y,1/4)', - '(1/4,-y,3/4)' - ] + 'coords_xyz': ['(x,y,z)', '(-x,y,-z)', '(x+1/2,y,-z)', '(-x+1/2,y,z)'], }, - 'i': { - 'multiplicity': 8, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(1/4,1/4,z)', - '(1/4,3/4,-z)' - ] - }, - 'h': { - 'multiplicity': 8, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,1/4,1/4)', - '(-x,3/4,1/4)' - ] - }, - 'g': { - 'multiplicity': 8, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)' - ] - }, - 'f': { - 'multiplicity': 8, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)' - ] - }, - 'e': { - 'multiplicity': 8, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y,0)' - ] - }, - 'd': { - 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(3/4,1/4,1/4)' - ] - }, - 'c': { + 'c': {'multiplicity': 2, 'site_symmetry': 'm..', 'coords_xyz': ['(1/4,y,z)', '(3/4,y,-z)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(0,y,1/2)', '(1/2,y,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(0,y,0)', '(1/2,y,0)']}, + }, + }, + (29, 'abc'): { + 'IT_number': 29, + 'setting': 0, + 'IT_coordinate_system_code': 'abc', + 'name_H-M_alt': 'P c a 21', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'a': { 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/4,1/4,1/4)' - ] - }, - 'b': { + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(-x,-y,z+1/2)', '(x+1/2,-y,z)', '(-x+1/2,y,z+1/2)'], + } + }, + }, + (29, 'ba-c'): { + 'IT_number': 29, + 'setting': 1, + 'IT_coordinate_system_code': 'ba-c', + 'name_H-M_alt': 'P b c 21', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'a': { 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/2,0,0)' - ] - }, + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(-x,-y,z-1/2)', '(-x,y+1/2,z)', '(x,-y+1/2,z-1/2)'], + } + }, + }, + (29, 'cab'): { + 'IT_number': 29, + 'setting': 2, + 'IT_coordinate_system_code': 'cab', + 'name_H-M_alt': 'P 21 a b', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { 'a': { 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,0)' - ] + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(x+1/2,-y,-z)', '(x,y+1/2,-z)', '(x+1/2,-y+1/2,z)'], } - } + }, }, - (22, '-cba'): { - 'IT_number': 22, + (29, '-cba'): { + 'IT_number': 29, 'setting': 3, 'IT_coordinate_system_code': '-cba', - 'name_H-M_alt': 'F 2 2 2', + 'name_H-M_alt': 'P 21 c a', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'k': { - 'multiplicity': 16, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,-y,-z)', - '(-x,y,-z)', - '(-x,-y,z)' - ] - }, - 'j': { - 'multiplicity': 8, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(-1/4,1/4,z)', - '(-1/4,3/4,-z)' - ] - }, - 'i': { - 'multiplicity': 8, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(-1/4,y,1/4)', - '(-1/4,-y,3/4)' - ] - }, - 'h': { - 'multiplicity': 8, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,1/4,1/4)', - '(-x,1/4,3/4)' - ] - }, - 'g': { - 'multiplicity': 8, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)' - ] - }, - 'f': { - 'multiplicity': 8, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y,0)' - ] - }, - 'e': { - 'multiplicity': 8, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)' - ] - }, - 'd': { - 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(-3/4,1/4,1/4)' - ] - }, - 'c': { - 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(-1/4,1/4,1/4)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(-1/2,0,0)' - ] - }, 'a': { 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,0)' - ] + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(x-1/2,-y,-z)', '(x,-y,z+1/2)', '(x-1/2,y,-z+1/2)'], } - } + }, }, - (22, 'bca'): { - 'IT_number': 22, + (29, 'bca'): { + 'IT_number': 29, 'setting': 4, 'IT_coordinate_system_code': 'bca', - 'name_H-M_alt': 'F 2 2 2', + 'name_H-M_alt': 'P c 21 b', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'k': { - 'multiplicity': 16, + 'a': { + 'multiplicity': 4, 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y,-z)', - '(x,-y,-z)', - '(-x,-y,z)' - ] - }, - 'j': { - 'multiplicity': 8, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(1/4,1/4,z)', - '(3/4,1/4,-z)' - ] - }, - 'i': { - 'multiplicity': 8, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,1/4,1/4)', - '(-x,1/4,3/4)' - ] - }, - 'h': { - 'multiplicity': 8, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/4,y,1/4)', - '(1/4,-y,3/4)' - ] - }, - 'g': { - 'multiplicity': 8, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y,0)' - ] - }, - 'f': { - 'multiplicity': 8, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)' - ] - }, - 'e': { - 'multiplicity': 8, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)' - ] - }, - 'd': { + 'coords_xyz': ['(x,y,z)', '(-x,y+1/2,-z)', '(-x,y,z+1/2)', '(x,y+1/2,-z+1/2)'], + } + }, + }, + (29, 'a-cb'): { + 'IT_number': 29, + 'setting': 5, + 'IT_coordinate_system_code': 'a-cb', + 'name_H-M_alt': 'P b 21 a', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'a': { 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/4,3/4,1/4)' - ] - }, + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(-x,y-1/2,-z)', '(x+1/2,y,-z)', '(-x+1/2,y-1/2,z)'], + } + }, + }, + (30, 'abc'): { + 'IT_number': 30, + 'setting': 0, + 'IT_coordinate_system_code': 'abc', + 'name_H-M_alt': 'P n c 2', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { 'c': { 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/4,1/4,1/4)' - ] + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(-x,-y,z)', '(x,-y+1/2,z+1/2)', '(-x,y+1/2,z+1/2)'], }, - 'b': { + 'b': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(1/2,0,z)', '(1/2,1/2,z+1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(0,0,z)', '(0,1/2,z+1/2)']}, + }, + }, + (30, 'ba-c'): { + 'IT_number': 30, + 'setting': 1, + 'IT_coordinate_system_code': 'ba-c', + 'name_H-M_alt': 'P c n 2', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'c': { 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,1/2,0)' - ] + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(-x,-y,z)', '(-x+1/2,y,z-1/2)', '(x+1/2,-y,z-1/2)'], }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'b': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(0,1/2,z)', '(1/2,1/2,z-1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(0,0,z)', '(1/2,0,z-1/2)']}, + }, }, - (22, 'a-cb'): { - 'IT_number': 22, - 'setting': 5, - 'IT_coordinate_system_code': 'a-cb', - 'name_H-M_alt': 'F 2 2 2', + (30, 'cab'): { + 'IT_number': 30, + 'setting': 2, + 'IT_coordinate_system_code': 'cab', + 'name_H-M_alt': 'P 2 n a', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'k': { - 'multiplicity': 16, + 'c': { + 'multiplicity': 4, 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y,-z)', - '(-x,-y,z)', - '(x,-y,-z)' - ] + 'coords_xyz': ['(x,y,z)', '(x,-y,-z)', '(x+1/2,y,-z+1/2)', '(x+1/2,-y,z+1/2)'], }, - 'j': { - 'multiplicity': 8, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(x,-1/4,1/4)', - '(-x,-1/4,3/4)' - ] - }, - 'i': { - 'multiplicity': 8, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(1/4,-1/4,z)', - '(3/4,-1/4,-z)' - ] - }, - 'h': { - 'multiplicity': 8, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/4,y,1/4)', - '(3/4,-y,1/4)' - ] - }, - 'g': { - 'multiplicity': 8, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y,0)' - ] - }, - 'f': { - 'multiplicity': 8, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)' - ] - }, - 'e': { - 'multiplicity': 8, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)' - ] - }, - 'd': { + 'b': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(x,1/2,0)', '(x+1/2,1/2,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(x,0,0)', '(x+1/2,0,1/2)']}, + }, + }, + (30, '-cba'): { + 'IT_number': 30, + 'setting': 3, + 'IT_coordinate_system_code': '-cba', + 'name_H-M_alt': 'P 2 a n', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'c': { 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/4,-3/4,1/4)' - ] + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(x,-y,-z)', '(x-1/2,-y+1/2,z)', '(x-1/2,y+1/2,-z)'], }, + 'b': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(x,0,1/2)', '(x-1/2,1/2,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(x,0,0)', '(x-1/2,1/2,0)']}, + }, + }, + (30, 'bca'): { + 'IT_number': 30, + 'setting': 4, + 'IT_coordinate_system_code': 'bca', + 'name_H-M_alt': 'P b 2 n', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { 'c': { 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/4,-1/4,1/4)' - ] + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(-x,y,-z)', '(-x+1/2,y+1/2,z)', '(x+1/2,y+1/2,-z)'], }, - 'b': { + 'b': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(0,y,1/2)', '(1/2,y+1/2,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(0,y,0)', '(1/2,y+1/2,0)']}, + }, + }, + (30, 'a-cb'): { + 'IT_number': 30, + 'setting': 5, + 'IT_coordinate_system_code': 'a-cb', + 'name_H-M_alt': 'P n 2 b', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'c': { 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,-1/2,0)' - ] + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(-x,y,-z)', '(x,y-1/2,-z+1/2)', '(-x,y-1/2,z+1/2)'], }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'b': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(1/2,y,0)', '(1/2,y-1/2,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(0,y,0)', '(0,y-1/2,1/2)']}, + }, }, - (23, 'abc'): { - 'IT_number': 23, + (31, 'abc'): { + 'IT_number': 31, 'setting': 0, 'IT_coordinate_system_code': 'abc', - 'name_H-M_alt': 'I 2 2 2', + 'name_H-M_alt': 'P m n 21', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'k': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z)', - '(-x,y,-z)', - '(x,-y,-z)' - ] - }, - 'j': { + 'b': { 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,1/2,z)', - '(0,1/2,-z)' - ] + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(-x+1/2,-y,z+1/2)', '(x+1/2,-y,z+1/2)', '(-x,y,z)'], }, - 'i': { + 'a': {'multiplicity': 2, 'site_symmetry': 'm..', 'coords_xyz': ['(0,y,z)', '(1/2,-y,z+1/2)']}, + }, + }, + (31, 'ba-c'): { + 'IT_number': 31, + 'setting': 1, + 'IT_coordinate_system_code': 'ba-c', + 'name_H-M_alt': 'P n m 21', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'b': { 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)' - ] + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(-x,-y+1/2,z-1/2)', '(-x,y+1/2,z-1/2)', '(x,-y,z)'], }, - 'h': { + 'a': {'multiplicity': 2, 'site_symmetry': 'm..', 'coords_xyz': ['(x,0,z)', '(-x,1/2,z-1/2)']}, + }, + }, + (31, 'cab'): { + 'IT_number': 31, + 'setting': 2, + 'IT_coordinate_system_code': 'cab', + 'name_H-M_alt': 'P 21 m n', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'b': { 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(1/2,y,0)', - '(1/2,-y,0)' - ] + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(x+1/2,-y+1/2,-z)', '(x+1/2,y+1/2,-z)', '(x,-y,z)'], }, - 'g': { + 'a': {'multiplicity': 2, 'site_symmetry': 'm..', 'coords_xyz': ['(x,0,z)', '(x+1/2,1/2,-z)']}, + }, + }, + (31, '-cba'): { + 'IT_number': 31, + 'setting': 3, + 'IT_coordinate_system_code': '-cba', + 'name_H-M_alt': 'P 21 n m', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'b': { 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y,0)' - ] + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(x-1/2,-y,-z+1/2)', '(x-1/2,-y,z+1/2)', '(x,y,-z)'], }, - 'f': { + 'a': {'multiplicity': 2, 'site_symmetry': 'm..', 'coords_xyz': ['(x,y,0)', '(x-1/2,-y,1/2)']}, + }, + }, + (31, 'bca'): { + 'IT_number': 31, + 'setting': 4, + 'IT_coordinate_system_code': 'bca', + 'name_H-M_alt': 'P n 21 m', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'b': { 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(x,0,1/2)', - '(-x,0,1/2)' - ] + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(-x,y+1/2,-z+1/2)', '(-x,y+1/2,z+1/2)', '(x,y,-z)'], }, - 'e': { + 'a': {'multiplicity': 2, 'site_symmetry': 'm..', 'coords_xyz': ['(x,y,0)', '(-x,y+1/2,1/2)']}, + }, + }, + (31, 'a-cb'): { + 'IT_number': 31, + 'setting': 5, + 'IT_coordinate_system_code': 'a-cb', + 'name_H-M_alt': 'P m 21 n', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'b': { 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,1/2,0)' - ] + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(-x+1/2,y-1/2,-z)', '(x+1/2,y-1/2,-z)', '(-x,y,z)'], }, + 'a': {'multiplicity': 2, 'site_symmetry': 'm..', 'coords_xyz': ['(0,y,z)', '(1/2,y-1/2,-z)']}, + }, + }, + (32, 'abc'): { + 'IT_number': 32, + 'setting': 0, + 'IT_coordinate_system_code': 'abc', + 'name_H-M_alt': 'P b a 2', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { 'c': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/2,0,0)' - ] + 'multiplicity': 4, + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(-x,-y,z)', '(x+1/2,-y+1/2,z)', '(-x+1/2,y+1/2,z)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'b': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(0,1/2,z)', '(1/2,0,z)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(0,0,z)', '(1/2,1/2,z)']}, + }, }, - (23, 'ba-c'): { - 'IT_number': 23, + (32, 'ba-c'): { + 'IT_number': 32, 'setting': 1, 'IT_coordinate_system_code': 'ba-c', - 'name_H-M_alt': 'I 2 2 2', + 'name_H-M_alt': 'P b a 2', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'k': { - 'multiplicity': 8, + 'c': { + 'multiplicity': 4, 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z)', - '(x,-y,-z)', - '(-x,y,-z)' - ] + 'coords_xyz': ['(x,y,z)', '(-x,-y,z)', '(-x+1/2,y+1/2,z)', '(x+1/2,-y+1/2,z)'], }, - 'j': { + 'b': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(1/2,0,z)', '(0,1/2,z)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(0,0,z)', '(1/2,1/2,z)']}, + }, + }, + (32, 'cab'): { + 'IT_number': 32, + 'setting': 2, + 'IT_coordinate_system_code': 'cab', + 'name_H-M_alt': 'P 2 c b', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'c': { 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/2,0,z)', - '(1/2,0,-z)' - ] + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(x,-y,-z)', '(x,y+1/2,-z+1/2)', '(x,-y+1/2,z+1/2)'], }, - 'i': { + 'b': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(x,0,1/2)', '(x,1/2,0)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(x,0,0)', '(x,1/2,1/2)']}, + }, + }, + (32, '-cba'): { + 'IT_number': 32, + 'setting': 3, + 'IT_coordinate_system_code': '-cba', + 'name_H-M_alt': 'P 2 c b', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'c': { 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)' - ] + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(x,-y,-z)', '(x,-y+1/2,z+1/2)', '(x,y+1/2,-z+1/2)'], }, - 'h': { + 'b': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(x,1/2,0)', '(x,0,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(x,0,0)', '(x,1/2,1/2)']}, + }, + }, + (32, 'bca'): { + 'IT_number': 32, + 'setting': 4, + 'IT_coordinate_system_code': 'bca', + 'name_H-M_alt': 'P c 2 a', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'c': { 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,1/2,0)', - '(-x,1/2,0)' - ] + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(-x,y,-z)', '(-x+1/2,y,z+1/2)', '(x+1/2,y,-z+1/2)'], }, - 'g': { + 'b': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(1/2,y,0)', '(0,y,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(0,y,0)', '(1/2,y,1/2)']}, + }, + }, + (32, 'a-cb'): { + 'IT_number': 32, + 'setting': 5, + 'IT_coordinate_system_code': 'a-cb', + 'name_H-M_alt': 'P c 2 a', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'c': { 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)' - ] + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(-x,y,-z)', '(x+1/2,y,-z+1/2)', '(-x+1/2,y,z+1/2)'], }, - 'f': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,y,-1/2)', - '(0,-y,-1/2)' - ] - }, - 'e': { + 'b': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(0,y,1/2)', '(1/2,y,0)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(0,y,0)', '(1/2,y,1/2)']}, + }, + }, + (33, 'abc'): { + 'IT_number': 33, + 'setting': 0, + 'IT_coordinate_system_code': 'abc', + 'name_H-M_alt': 'P n a 21', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'a': { 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y,0)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/2,0,0)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,-1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,1/2,0)' - ] - }, + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(-x,-y,z+1/2)', '(x+1/2,-y+1/2,z)', '(-x+1/2,y+1/2,z+1/2)'], + } + }, + }, + (33, 'ba-c'): { + 'IT_number': 33, + 'setting': 1, + 'IT_coordinate_system_code': 'ba-c', + 'name_H-M_alt': 'P b n 21', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { 'a': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,0)' - ] + 'multiplicity': 4, + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(-x,-y,z-1/2)', '(-x+1/2,y+1/2,z)', '(x+1/2,-y+1/2,z-1/2)'], } - } + }, }, - (23, 'cab'): { - 'IT_number': 23, + (33, 'cab'): { + 'IT_number': 33, 'setting': 2, 'IT_coordinate_system_code': 'cab', - 'name_H-M_alt': 'I 2 2 2', + 'name_H-M_alt': 'P 21 n b', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'k': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,-y,-z)', - '(-x,-y,z)', - '(-x,y,-z)' - ] - }, - 'j': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,0,1/2)', - '(-x,0,1/2)' - ] - }, - 'i': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)' - ] - }, - 'h': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(0,1/2,z)', - '(0,1/2,-z)' - ] - }, - 'g': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)' - ] - }, - 'f': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(1/2,y,0)', - '(1/2,-y,0)' - ] - }, - 'e': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y,0)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/2,0,0)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,1/2,0)' - ] - }, 'a': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,0)' - ] + 'multiplicity': 4, + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(x+1/2,-y,-z)', '(x,y+1/2,-z+1/2)', '(x+1/2,-y+1/2,z+1/2)'], } - } + }, }, - (23, '-cba'): { - 'IT_number': 23, + (33, '-cba'): { + 'IT_number': 33, 'setting': 3, 'IT_coordinate_system_code': '-cba', - 'name_H-M_alt': 'I 2 2 2', + 'name_H-M_alt': 'P 21 c n', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'k': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,-y,-z)', - '(-x,y,-z)', - '(-x,-y,z)' - ] - }, - 'j': { + 'a': { 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,1/2,0)', - '(-x,1/2,0)' - ] - }, - 'i': { + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(x-1/2,-y,-z)', '(x,-y+1/2,z+1/2)', '(x-1/2,y+1/2,-z+1/2)'], + } + }, + }, + (33, 'bca'): { + 'IT_number': 33, + 'setting': 4, + 'IT_coordinate_system_code': 'bca', + 'name_H-M_alt': 'P c 21 n', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'a': { 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)' - ] - }, - 'h': { + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(-x,y+1/2,-z)', '(-x+1/2,y,z+1/2)', '(x+1/2,y+1/2,-z+1/2)'], + } + }, + }, + (33, 'a-cb'): { + 'IT_number': 33, + 'setting': 5, + 'IT_coordinate_system_code': 'a-cb', + 'name_H-M_alt': 'P n 21 a', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'a': { 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(0,y,1/2)', - '(0,-y,1/2)' - ] - }, - 'g': { + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(-x,y-1/2,-z)', '(x+1/2,y,-z+1/2)', '(-x+1/2,y-1/2,z+1/2)'], + } + }, + }, + (34, 'abc'): { + 'IT_number': 34, + 'setting': 0, + 'IT_coordinate_system_code': 'abc', + 'name_H-M_alt': 'P n n 2', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'c': { 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y,0)' - ] + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(-x,-y,z)', '(x+1/2,-y+1/2,z+1/2)', '(-x+1/2,y+1/2,z+1/2)'], }, - 'f': { + 'b': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(0,1/2,z)', '(1/2,0,z+1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(0,0,z)', '(1/2,1/2,z+1/2)']}, + }, + }, + (34, 'ba-c'): { + 'IT_number': 34, + 'setting': 1, + 'IT_coordinate_system_code': 'ba-c', + 'name_H-M_alt': 'P n n 2', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'c': { 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(-1/2,0,z)', - '(-1/2,0,-z)' - ] + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(-x,-y,z)', '(-x+1/2,y+1/2,z-1/2)', '(x+1/2,-y+1/2,z-1/2)'], }, - 'e': { + 'b': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(1/2,0,z)', '(0,1/2,z-1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(0,0,z)', '(1/2,1/2,z-1/2)']}, + }, + }, + (34, 'cab'): { + 'IT_number': 34, + 'setting': 2, + 'IT_coordinate_system_code': 'cab', + 'name_H-M_alt': 'P 2 n n', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'c': { 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,1/2,0)' - ] + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(x,-y,-z)', '(x+1/2,y+1/2,-z+1/2)', '(x+1/2,-y+1/2,z+1/2)'], }, + 'b': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(x,0,1/2)', '(x+1/2,1/2,0)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(x,0,0)', '(x+1/2,1/2,1/2)']}, + }, + }, + (34, '-cba'): { + 'IT_number': 34, + 'setting': 3, + 'IT_coordinate_system_code': '-cba', + 'name_H-M_alt': 'P 2 n n', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { 'c': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(-1/2,0,0)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,1/2)' - ] + 'multiplicity': 4, + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(x,-y,-z)', '(x-1/2,-y+1/2,z+1/2)', '(x-1/2,y+1/2,-z+1/2)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'b': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(x,1/2,0)', '(x-1/2,0,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(x,0,0)', '(x-1/2,1/2,1/2)']}, + }, }, - (23, 'bca'): { - 'IT_number': 23, + (34, 'bca'): { + 'IT_number': 34, 'setting': 4, 'IT_coordinate_system_code': 'bca', - 'name_H-M_alt': 'I 2 2 2', + 'name_H-M_alt': 'P n 2 n', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'k': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y,-z)', - '(x,-y,-z)', - '(-x,-y,z)' - ] - }, - 'j': { + 'c': { 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/2,y,0)', - '(1/2,-y,0)' - ] + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(-x,y,-z)', '(-x+1/2,y+1/2,z+1/2)', '(x+1/2,y+1/2,-z+1/2)'], }, - 'i': { + 'b': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(1/2,y,0)', '(0,y+1/2,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(0,y,0)', '(1/2,y+1/2,1/2)']}, + }, + }, + (34, 'a-cb'): { + 'IT_number': 34, + 'setting': 5, + 'IT_coordinate_system_code': 'a-cb', + 'name_H-M_alt': 'P n 2 n', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'c': { 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y,0)' - ] + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(-x,y,-z)', '(x+1/2,y-1/2,-z+1/2)', '(-x+1/2,y-1/2,z+1/2)'], }, - 'h': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,0,1/2)', - '(-x,0,1/2)' - ] - }, - 'g': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)' - ] - }, - 'f': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,1/2,z)', - '(0,1/2,-z)' - ] - }, - 'e': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/2,0,0)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,1/2,0)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,1/2)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'b': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(0,y,1/2)', '(1/2,y-1/2,0)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '..2', 'coords_xyz': ['(0,y,0)', '(1/2,y-1/2,1/2)']}, + }, }, - (23, 'a-cb'): { - 'IT_number': 23, + (35, 'abc'): { + 'IT_number': 35, + 'setting': 0, + 'IT_coordinate_system_code': 'abc', + 'name_H-M_alt': 'C m m 2', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'f': {'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(-x,-y,z)', '(x,-y,z)', '(-x,y,z)']}, + 'e': {'multiplicity': 4, 'site_symmetry': 'm..', 'coords_xyz': ['(0,y,z)', '(0,-y,z)']}, + 'd': {'multiplicity': 4, 'site_symmetry': '.m.', 'coords_xyz': ['(x,0,z)', '(-x,0,z)']}, + 'c': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(1/4,1/4,z)', '(1/4,3/4,z)']}, + 'b': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(0,1/2,z)']}, + 'a': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(0,0,z)']}, + }, + }, + (35, 'ba-c'): { + 'IT_number': 35, + 'setting': 1, + 'IT_coordinate_system_code': 'ba-c', + 'name_H-M_alt': 'C m m 2', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'f': {'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(-x,-y,z)', '(-x,y,z)', '(x,-y,z)']}, + 'e': {'multiplicity': 4, 'site_symmetry': 'm..', 'coords_xyz': ['(x,0,z)', '(-x,0,z)']}, + 'd': {'multiplicity': 4, 'site_symmetry': '.m.', 'coords_xyz': ['(0,y,z)', '(0,-y,z)']}, + 'c': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(1/4,1/4,z)', '(3/4,1/4,z)']}, + 'b': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(1/2,0,z)']}, + 'a': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(0,0,z)']}, + }, + }, + (35, 'cab'): { + 'IT_number': 35, + 'setting': 2, + 'IT_coordinate_system_code': 'cab', + 'name_H-M_alt': 'A 2 m m', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'f': {'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(x,-y,-z)', '(x,y,-z)', '(x,-y,z)']}, + 'e': {'multiplicity': 4, 'site_symmetry': 'm..', 'coords_xyz': ['(x,0,z)', '(x,0,-z)']}, + 'd': {'multiplicity': 4, 'site_symmetry': '.m.', 'coords_xyz': ['(x,y,0)', '(x,-y,0)']}, + 'c': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(x,1/4,1/4)', '(x,1/4,3/4)']}, + 'b': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(x,0,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(x,0,0)']}, + }, + }, + (35, '-cba'): { + 'IT_number': 35, + 'setting': 3, + 'IT_coordinate_system_code': '-cba', + 'name_H-M_alt': 'A 2 m m', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'f': {'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(x,-y,-z)', '(x,-y,z)', '(x,y,-z)']}, + 'e': {'multiplicity': 4, 'site_symmetry': 'm..', 'coords_xyz': ['(x,y,0)', '(x,-y,0)']}, + 'd': {'multiplicity': 4, 'site_symmetry': '.m.', 'coords_xyz': ['(x,0,z)', '(x,0,-z)']}, + 'c': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(x,1/4,1/4)', '(x,3/4,1/4)']}, + 'b': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(x,1/2,0)']}, + 'a': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(x,0,0)']}, + }, + }, + (35, 'bca'): { + 'IT_number': 35, + 'setting': 4, + 'IT_coordinate_system_code': 'bca', + 'name_H-M_alt': 'B m 2 m', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'f': {'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(-x,y,-z)', '(-x,y,z)', '(x,y,-z)']}, + 'e': {'multiplicity': 4, 'site_symmetry': 'm..', 'coords_xyz': ['(x,y,0)', '(-x,y,0)']}, + 'd': {'multiplicity': 4, 'site_symmetry': '.m.', 'coords_xyz': ['(0,y,z)', '(0,y,-z)']}, + 'c': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(1/4,y,1/4)', '(3/4,y,1/4)']}, + 'b': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(1/2,y,0)']}, + 'a': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(0,y,0)']}, + }, + }, + (35, 'a-cb'): { + 'IT_number': 35, 'setting': 5, 'IT_coordinate_system_code': 'a-cb', - 'name_H-M_alt': 'I 2 2 2', + 'name_H-M_alt': 'B m 2 m', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'k': { + 'f': {'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(-x,y,-z)', '(x,y,-z)', '(-x,y,z)']}, + 'e': {'multiplicity': 4, 'site_symmetry': 'm..', 'coords_xyz': ['(0,y,z)', '(0,y,-z)']}, + 'd': {'multiplicity': 4, 'site_symmetry': '.m.', 'coords_xyz': ['(x,y,0)', '(-x,y,0)']}, + 'c': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(1/4,y,1/4)', '(1/4,y,3/4)']}, + 'b': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(0,y,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(0,y,0)']}, + }, + }, + (36, 'abc'): { + 'IT_number': 36, + 'setting': 0, + 'IT_coordinate_system_code': 'abc', + 'name_H-M_alt': 'C m c 21', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'b': { 'multiplicity': 8, 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y,-z)', - '(-x,-y,z)', - '(x,-y,-z)' - ] - }, - 'j': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,y,1/2)', - '(0,-y,1/2)' - ] - }, - 'i': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y,0)' - ] - }, - 'h': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(1/2,0,z)', - '(1/2,0,-z)' - ] - }, - 'g': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)' - ] + 'coords_xyz': ['(x,y,z)', '(-x,-y,z+1/2)', '(x,-y,z+1/2)', '(-x,y,z)'], }, - 'f': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(x,-1/2,0)', - '(-x,-1/2,0)' - ] + 'a': {'multiplicity': 4, 'site_symmetry': 'm..', 'coords_xyz': ['(0,y,z)', '(0,-y,z+1/2)']}, + }, + }, + (36, 'ba-c'): { + 'IT_number': 36, + 'setting': 1, + 'IT_coordinate_system_code': 'ba-c', + 'name_H-M_alt': 'C c m 21', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'b': { + 'multiplicity': 8, + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(-x,-y,z-1/2)', '(-x,y,z-1/2)', '(x,-y,z)'], }, - 'e': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)' - ] + 'a': {'multiplicity': 4, 'site_symmetry': 'm..', 'coords_xyz': ['(x,0,z)', '(-x,0,z-1/2)']}, + }, + }, + (36, 'cab'): { + 'IT_number': 36, + 'setting': 2, + 'IT_coordinate_system_code': 'cab', + 'name_H-M_alt': 'A 21 m a', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'b': { + 'multiplicity': 8, + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(x+1/2,-y,-z)', '(x+1/2,y,-z)', '(x,-y,z)'], }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,1/2)' - ] + 'a': {'multiplicity': 4, 'site_symmetry': 'm..', 'coords_xyz': ['(x,0,z)', '(x+1/2,0,-z)']}, + }, + }, + (36, '-cba'): { + 'IT_number': 36, + 'setting': 3, + 'IT_coordinate_system_code': '-cba', + 'name_H-M_alt': 'A 21 a m', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'b': { + 'multiplicity': 8, + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(x-1/2,-y,-z)', '(x-1/2,-y,z)', '(x,y,-z)'], }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,-1/2,0)' - ] + 'a': {'multiplicity': 4, 'site_symmetry': 'm..', 'coords_xyz': ['(x,y,0)', '(x-1/2,-y,0)']}, + }, + }, + (36, 'bca'): { + 'IT_number': 36, + 'setting': 4, + 'IT_coordinate_system_code': 'bca', + 'name_H-M_alt': 'B b 21 m', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'b': { + 'multiplicity': 8, + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(-x,y+1/2,-z)', '(-x,y+1/2,z)', '(x,y,-z)'], }, + 'a': {'multiplicity': 4, 'site_symmetry': 'm..', 'coords_xyz': ['(x,y,0)', '(-x,y+1/2,0)']}, + }, + }, + (36, 'a-cb'): { + 'IT_number': 36, + 'setting': 5, + 'IT_coordinate_system_code': 'a-cb', + 'name_H-M_alt': 'B m 21 b', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { 'b': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/2,0,0)' - ] + 'multiplicity': 8, + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(-x,y-1/2,-z)', '(x,y-1/2,-z)', '(-x,y,z)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'a': {'multiplicity': 4, 'site_symmetry': 'm..', 'coords_xyz': ['(0,y,z)', '(0,y-1/2,-z)']}, + }, }, - (24, 'abc'): { - 'IT_number': 24, + (37, 'abc'): { + 'IT_number': 37, 'setting': 0, 'IT_coordinate_system_code': 'abc', - 'name_H-M_alt': 'I 21 21 21', + 'name_H-M_alt': 'C c c 2', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { 'd': { 'multiplicity': 8, 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x+1/2,-y,z+1/2)', - '(-x,y+1/2,-z+1/2)', - '(x+1/2,-y+1/2,-z)' - ] - }, - 'c': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,1/4,z)', - '(0,3/4,-z+1/2)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(1/4,y,0)', - '(1/4,-y,1/2)' - ] + 'coords_xyz': ['(x,y,z)', '(-x,-y,z)', '(x,-y,z+1/2)', '(-x,y,z+1/2)'], }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(x,0,1/4)', - '(-x+1/2,0,3/4)' - ] - } - } + 'c': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(1/4,1/4,z)', '(1/4,3/4,z+1/2)']}, + 'b': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(0,1/2,z)', '(0,1/2,z+1/2)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(0,0,z)', '(0,0,z+1/2)']}, + }, }, - (24, 'ba-c'): { - 'IT_number': 24, + (37, 'ba-c'): { + 'IT_number': 37, 'setting': 1, 'IT_coordinate_system_code': 'ba-c', - 'name_H-M_alt': 'I 21 21 21', + 'name_H-M_alt': 'C c c 2', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { 'd': { 'multiplicity': 8, 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y+1/2,z-1/2)', - '(x+1/2,-y,-z-1/2)', - '(-x+1/2,y+1/2,-z)' - ] - }, - 'c': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/4,0,z)', - '(3/4,0,-z-1/2)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,1/4,0)', - '(-x,1/4,-1/2)' - ] + 'coords_xyz': ['(x,y,z)', '(-x,-y,z)', '(-x,y,z-1/2)', '(x,-y,z-1/2)'], }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,y,-1/4)', - '(0,-y+1/2,-3/4)' - ] - } - } + 'c': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(1/4,1/4,z)', '(3/4,1/4,z-1/2)']}, + 'b': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(1/2,0,z)', '(1/2,0,z-1/2)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(0,0,z)', '(0,0,z-1/2)']}, + }, }, - (24, 'cab'): { - 'IT_number': 24, + (37, 'cab'): { + 'IT_number': 37, 'setting': 2, 'IT_coordinate_system_code': 'cab', - 'name_H-M_alt': 'I 21 21 21', + 'name_H-M_alt': 'A 2 a a', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { 'd': { 'multiplicity': 8, 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x+1/2,-y+1/2,-z)', - '(-x+1/2,-y,z+1/2)', - '(-x,y+1/2,-z+1/2)' - ] - }, - 'c': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,0,1/4)', - '(-x+1/2,0,3/4)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(0,1/4,z)', - '(1/2,1/4,-z)' - ] + 'coords_xyz': ['(x,y,z)', '(x,-y,-z)', '(x+1/2,y,-z)', '(x+1/2,-y,z)'], }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(1/4,y,0)', - '(3/4,-y+1/2,0)' - ] - } - } + 'c': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(x,1/4,1/4)', '(x+1/2,1/4,3/4)']}, + 'b': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(x,0,1/2)', '(x+1/2,0,1/2)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(x,0,0)', '(x+1/2,0,0)']}, + }, }, - (24, '-cba'): { - 'IT_number': 24, + (37, '-cba'): { + 'IT_number': 37, 'setting': 3, 'IT_coordinate_system_code': '-cba', - 'name_H-M_alt': 'I 21 21 21', + 'name_H-M_alt': 'A 2 a a', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { 'd': { 'multiplicity': 8, 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x-1/2,-y,-z+1/2)', - '(-x-1/2,y+1/2,-z)', - '(-x,-y+1/2,z+1/2)' - ] - }, - 'c': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,1/4,0)', - '(-x-1/2,3/4,0)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(0,y,1/4)', - '(-1/2,-y,1/4)' - ] + 'coords_xyz': ['(x,y,z)', '(x,-y,-z)', '(x-1/2,-y,z)', '(x-1/2,y,-z)'], }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(-1/4,0,z)', - '(-3/4,0,-z+1/2)' - ] - } - } + 'c': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(x,1/4,1/4)', '(x-1/2,3/4,1/4)']}, + 'b': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(x,1/2,0)', '(x-1/2,1/2,0)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(x,0,0)', '(x-1/2,0,0)']}, + }, }, - (24, 'bca'): { - 'IT_number': 24, + (37, 'bca'): { + 'IT_number': 37, 'setting': 4, 'IT_coordinate_system_code': 'bca', - 'name_H-M_alt': 'I 21 21 21', + 'name_H-M_alt': 'B b 2 b', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { 'd': { 'multiplicity': 8, 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y+1/2,-z+1/2)', - '(x+1/2,-y+1/2,-z)', - '(-x+1/2,-y,z+1/2)' - ] - }, - 'c': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/4,y,0)', - '(3/4,-y+1/2,0)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,0,1/4)', - '(-x,1/2,1/4)' - ] + 'coords_xyz': ['(x,y,z)', '(-x,y,-z)', '(-x,y+1/2,z)', '(x,y+1/2,-z)'], }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,1/4,z)', - '(0,3/4,-z+1/2)' - ] - } - } + 'c': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(1/4,y,1/4)', '(3/4,y+1/2,1/4)']}, + 'b': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(1/2,y,0)', '(1/2,y+1/2,0)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(0,y,0)', '(0,y+1/2,0)']}, + }, }, - (24, 'a-cb'): { - 'IT_number': 24, + (37, 'a-cb'): { + 'IT_number': 37, 'setting': 5, 'IT_coordinate_system_code': 'a-cb', - 'name_H-M_alt': 'I 21 21 21', + 'name_H-M_alt': 'B b 2 b', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { 'd': { 'multiplicity': 8, 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x+1/2,y-1/2,-z)', - '(-x,-y-1/2,z+1/2)', - '(x+1/2,-y,-z+1/2)' - ] - }, - 'c': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,y,1/4)', - '(0,-y-1/2,3/4)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(1/4,0,z)', - '(1/4,-1/2,-z)' - ] + 'coords_xyz': ['(x,y,z)', '(-x,y,-z)', '(x,y-1/2,-z)', '(-x,y-1/2,z)'], }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(x,-1/4,0)', - '(-x+1/2,-3/4,0)' - ] - } - } + 'c': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(1/4,y,1/4)', '(1/4,y-1/2,3/4)']}, + 'b': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(0,y,1/2)', '(0,y-1/2,1/2)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(0,y,0)', '(0,y-1/2,0)']}, + }, }, - (25, 'abc'): { - 'IT_number': 25, + (38, 'abc'): { + 'IT_number': 38, 'setting': 0, 'IT_coordinate_system_code': 'abc', - 'name_H-M_alt': 'P m m 2', + 'name_H-M_alt': 'A m m 2', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'i': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z)', - '(x,-y,z)', - '(-x,y,z)' - ] - }, - 'h': { - 'multiplicity': 2, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(1/2,y,z)', - '(1/2,-y,z)' - ] - }, - 'g': { - 'multiplicity': 2, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(0,y,z)', - '(0,-y,z)' - ] - }, - 'f': { - 'multiplicity': 2, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,1/2,z)', - '(-x,1/2,z)' - ] - }, - 'e': { - 'multiplicity': 2, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,0,z)', - '(-x,0,z)' - ] - }, - 'd': { - 'multiplicity': 1, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(1/2,1/2,z)' - ] - }, - 'c': { - 'multiplicity': 1, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(1/2,0,z)' - ] - }, - 'b': { - 'multiplicity': 1, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(0,1/2,z)' - ] - }, - 'a': { - 'multiplicity': 1, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(0,0,z)' - ] - } - } + 'f': {'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(-x,-y,z)', '(x,-y,z)', '(-x,y,z)']}, + 'e': {'multiplicity': 4, 'site_symmetry': 'm..', 'coords_xyz': ['(1/2,y,z)', '(1/2,-y,z)']}, + 'd': {'multiplicity': 4, 'site_symmetry': 'm..', 'coords_xyz': ['(0,y,z)', '(0,-y,z)']}, + 'c': {'multiplicity': 4, 'site_symmetry': '.m.', 'coords_xyz': ['(x,0,z)', '(-x,0,z)']}, + 'b': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(1/2,0,z)']}, + 'a': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(0,0,z)']}, + }, }, - (25, 'ba-c'): { - 'IT_number': 25, + (38, 'ba-c'): { + 'IT_number': 38, 'setting': 1, 'IT_coordinate_system_code': 'ba-c', - 'name_H-M_alt': 'P m m 2', + 'name_H-M_alt': 'B m m 2', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'i': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z)', - '(-x,y,z)', - '(x,-y,z)' - ] - }, - 'h': { - 'multiplicity': 2, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,1/2,z)', - '(-x,1/2,z)' - ] - }, - 'g': { - 'multiplicity': 2, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,0,z)', - '(-x,0,z)' - ] - }, - 'f': { - 'multiplicity': 2, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(1/2,y,z)', - '(1/2,-y,z)' - ] - }, - 'e': { - 'multiplicity': 2, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(0,y,z)', - '(0,-y,z)' - ] - }, - 'd': { - 'multiplicity': 1, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(1/2,1/2,z)' - ] - }, - 'c': { - 'multiplicity': 1, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(0,1/2,z)' - ] - }, - 'b': { - 'multiplicity': 1, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(1/2,0,z)' - ] - }, - 'a': { - 'multiplicity': 1, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(0,0,z)' - ] - } - } + 'f': {'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(-x,-y,z)', '(-x,y,z)', '(x,-y,z)']}, + 'e': {'multiplicity': 4, 'site_symmetry': 'm..', 'coords_xyz': ['(x,1/2,z)', '(-x,1/2,z)']}, + 'd': {'multiplicity': 4, 'site_symmetry': 'm..', 'coords_xyz': ['(x,0,z)', '(-x,0,z)']}, + 'c': {'multiplicity': 4, 'site_symmetry': '.m.', 'coords_xyz': ['(0,y,z)', '(0,-y,z)']}, + 'b': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(0,1/2,z)']}, + 'a': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(0,0,z)']}, + }, }, - (25, 'cab'): { - 'IT_number': 25, + (38, 'cab'): { + 'IT_number': 38, 'setting': 2, 'IT_coordinate_system_code': 'cab', - 'name_H-M_alt': 'P 2 m m', + 'name_H-M_alt': 'B 2 m m', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'i': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,-y,-z)', - '(x,y,-z)', - '(x,-y,z)' - ] - }, - 'h': { - 'multiplicity': 2, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,1/2,z)', - '(x,1/2,-z)' - ] - }, - 'g': { - 'multiplicity': 2, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,0,z)', - '(x,0,-z)' - ] - }, - 'f': { - 'multiplicity': 2, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,y,1/2)', - '(x,-y,1/2)' - ] - }, - 'e': { - 'multiplicity': 2, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,y,0)', - '(x,-y,0)' - ] - }, - 'd': { - 'multiplicity': 1, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(x,1/2,1/2)' - ] - }, - 'c': { - 'multiplicity': 1, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(x,1/2,0)' - ] - }, - 'b': { - 'multiplicity': 1, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(x,0,1/2)' - ] - }, - 'a': { - 'multiplicity': 1, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(x,0,0)' - ] - } - } + 'f': {'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(x,-y,-z)', '(x,y,-z)', '(x,-y,z)']}, + 'e': {'multiplicity': 4, 'site_symmetry': 'm..', 'coords_xyz': ['(x,1/2,z)', '(x,1/2,-z)']}, + 'd': {'multiplicity': 4, 'site_symmetry': 'm..', 'coords_xyz': ['(x,0,z)', '(x,0,-z)']}, + 'c': {'multiplicity': 4, 'site_symmetry': '.m.', 'coords_xyz': ['(x,y,0)', '(x,-y,0)']}, + 'b': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(x,1/2,0)']}, + 'a': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(x,0,0)']}, + }, }, - (25, '-cba'): { - 'IT_number': 25, + (38, '-cba'): { + 'IT_number': 38, 'setting': 3, 'IT_coordinate_system_code': '-cba', - 'name_H-M_alt': 'P 2 m m', + 'name_H-M_alt': 'C 2 m m', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'i': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,-y,-z)', - '(x,-y,z)', - '(x,y,-z)' - ] - }, - 'h': { - 'multiplicity': 2, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,y,1/2)', - '(x,-y,1/2)' - ] - }, - 'g': { - 'multiplicity': 2, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,y,0)', - '(x,-y,0)' - ] - }, - 'f': { - 'multiplicity': 2, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,1/2,z)', - '(x,1/2,-z)' - ] - }, - 'e': { - 'multiplicity': 2, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,0,z)', - '(x,0,-z)' - ] - }, - 'd': { - 'multiplicity': 1, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(x,1/2,1/2)' - ] - }, - 'c': { - 'multiplicity': 1, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(x,0,1/2)' - ] - }, - 'b': { - 'multiplicity': 1, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(x,1/2,0)' - ] - }, - 'a': { - 'multiplicity': 1, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(x,0,0)' - ] - } - } + 'f': {'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(x,-y,-z)', '(x,-y,z)', '(x,y,-z)']}, + 'e': {'multiplicity': 4, 'site_symmetry': 'm..', 'coords_xyz': ['(x,y,1/2)', '(x,-y,1/2)']}, + 'd': {'multiplicity': 4, 'site_symmetry': 'm..', 'coords_xyz': ['(x,y,0)', '(x,-y,0)']}, + 'c': {'multiplicity': 4, 'site_symmetry': '.m.', 'coords_xyz': ['(x,0,z)', '(x,0,-z)']}, + 'b': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(x,0,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(x,0,0)']}, + }, }, - (25, 'bca'): { - 'IT_number': 25, + (38, 'bca'): { + 'IT_number': 38, 'setting': 4, 'IT_coordinate_system_code': 'bca', - 'name_H-M_alt': 'P m 2 m', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'i': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y,-z)', - '(-x,y,z)', - '(x,y,-z)' - ] - }, - 'h': { - 'multiplicity': 2, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,y,1/2)', - '(-x,y,1/2)' - ] - }, - 'g': { - 'multiplicity': 2, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,y,0)', - '(-x,y,0)' - ] - }, - 'f': { - 'multiplicity': 2, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(1/2,y,z)', - '(1/2,y,-z)' - ] - }, - 'e': { - 'multiplicity': 2, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(0,y,z)', - '(0,y,-z)' - ] - }, - 'd': { - 'multiplicity': 1, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(1/2,y,1/2)' - ] - }, - 'c': { - 'multiplicity': 1, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(0,y,1/2)' - ] - }, - 'b': { - 'multiplicity': 1, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(1/2,y,0)' - ] - }, - 'a': { - 'multiplicity': 1, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(0,y,0)' - ] - } - } - }, - (25, 'a-cb'): { - 'IT_number': 25, - 'setting': 5, - 'IT_coordinate_system_code': 'a-cb', - 'name_H-M_alt': 'P m 2 m', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'i': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y,-z)', - '(x,y,-z)', - '(-x,y,z)' - ] - }, - 'h': { - 'multiplicity': 2, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(1/2,y,z)', - '(1/2,y,-z)' - ] - }, - 'g': { - 'multiplicity': 2, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(0,y,z)', - '(0,y,-z)' - ] - }, - 'f': { - 'multiplicity': 2, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,y,1/2)', - '(-x,y,1/2)' - ] - }, - 'e': { - 'multiplicity': 2, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,y,0)', - '(-x,y,0)' - ] - }, - 'd': { - 'multiplicity': 1, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(1/2,y,1/2)' - ] - }, - 'c': { - 'multiplicity': 1, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(1/2,y,0)' - ] - }, - 'b': { - 'multiplicity': 1, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(0,y,1/2)' - ] - }, - 'a': { - 'multiplicity': 1, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(0,y,0)' - ] - } - } - }, - (26, 'abc'): { - 'IT_number': 26, - 'setting': 0, - 'IT_coordinate_system_code': 'abc', - 'name_H-M_alt': 'P m c 21', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'c': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z+1/2)', - '(x,-y,z+1/2)', - '(-x,y,z)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(1/2,y,z)', - '(1/2,-y,z+1/2)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(0,y,z)', - '(0,-y,z+1/2)' - ] - } - } - }, - (26, 'ba-c'): { - 'IT_number': 26, - 'setting': 1, - 'IT_coordinate_system_code': 'ba-c', - 'name_H-M_alt': 'P c m 21', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'c': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z-1/2)', - '(-x,y,z-1/2)', - '(x,-y,z)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,1/2,z)', - '(-x,1/2,z-1/2)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,0,z)', - '(-x,0,z-1/2)' - ] - } - } - }, - (26, 'cab'): { - 'IT_number': 26, - 'setting': 2, - 'IT_coordinate_system_code': 'cab', - 'name_H-M_alt': 'P 21 m a', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'c': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x+1/2,-y,-z)', - '(x+1/2,y,-z)', - '(x,-y,z)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,1/2,z)', - '(x+1/2,1/2,-z)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,0,z)', - '(x+1/2,0,-z)' - ] - } - } - }, - (26, '-cba'): { - 'IT_number': 26, - 'setting': 3, - 'IT_coordinate_system_code': '-cba', - 'name_H-M_alt': 'P 21 a m', + 'name_H-M_alt': 'C m 2 m', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'c': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x-1/2,-y,-z)', - '(x-1/2,-y,z)', - '(x,y,-z)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,y,1/2)', - '(x-1/2,-y,1/2)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,y,0)', - '(x-1/2,-y,0)' - ] - } - } + 'f': {'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(-x,y,-z)', '(-x,y,z)', '(x,y,-z)']}, + 'e': {'multiplicity': 4, 'site_symmetry': 'm..', 'coords_xyz': ['(x,y,1/2)', '(-x,y,1/2)']}, + 'd': {'multiplicity': 4, 'site_symmetry': 'm..', 'coords_xyz': ['(x,y,0)', '(-x,y,0)']}, + 'c': {'multiplicity': 4, 'site_symmetry': '.m.', 'coords_xyz': ['(0,y,z)', '(0,y,-z)']}, + 'b': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(0,y,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(0,y,0)']}, + }, }, - (26, 'bca'): { - 'IT_number': 26, - 'setting': 4, - 'IT_coordinate_system_code': 'bca', - 'name_H-M_alt': 'P b 21 m', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'c': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y+1/2,-z)', - '(-x,y+1/2,z)', - '(x,y,-z)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,y,1/2)', - '(-x,y+1/2,1/2)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,y,0)', - '(-x,y+1/2,0)' - ] - } - } - }, - (26, 'a-cb'): { - 'IT_number': 26, - 'setting': 5, - 'IT_coordinate_system_code': 'a-cb', - 'name_H-M_alt': 'P m 21 b', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'c': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y-1/2,-z)', - '(x,y-1/2,-z)', - '(-x,y,z)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(1/2,y,z)', - '(1/2,y-1/2,-z)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(0,y,z)', - '(0,y-1/2,-z)' - ] - } - } - }, - (27, 'abc'): { - 'IT_number': 27, - 'setting': 0, - 'IT_coordinate_system_code': 'abc', - 'name_H-M_alt': 'P c c 2', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'e': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z)', - '(x,-y,z+1/2)', - '(-x,y,z+1/2)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/2,1/2,z)', - '(1/2,1/2,z+1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/2,0,z)', - '(1/2,0,z+1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,1/2,z)', - '(0,1/2,z+1/2)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,z+1/2)' - ] - } - } - }, - (27, 'ba-c'): { - 'IT_number': 27, - 'setting': 1, - 'IT_coordinate_system_code': 'ba-c', - 'name_H-M_alt': 'P c c 2', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'e': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z)', - '(-x,y,z-1/2)', - '(x,-y,z-1/2)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/2,1/2,z)', - '(1/2,1/2,z-1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,1/2,z)', - '(0,1/2,z-1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/2,0,z)', - '(1/2,0,z-1/2)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,z-1/2)' - ] - } - } - }, - (27, 'cab'): { - 'IT_number': 27, - 'setting': 2, - 'IT_coordinate_system_code': 'cab', - 'name_H-M_alt': 'P 2 a a', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'e': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,-y,-z)', - '(x+1/2,y,-z)', - '(x+1/2,-y,z)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,1/2,1/2)', - '(x+1/2,1/2,1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,1/2,0)', - '(x+1/2,1/2,0)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,0,1/2)', - '(x+1/2,0,1/2)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,0,0)', - '(x+1/2,0,0)' - ] - } - } - }, - (27, '-cba'): { - 'IT_number': 27, - 'setting': 3, - 'IT_coordinate_system_code': '-cba', - 'name_H-M_alt': 'P 2 a a', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'e': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,-y,-z)', - '(x-1/2,-y,z)', - '(x-1/2,y,-z)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,1/2,1/2)', - '(x-1/2,1/2,1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,0,1/2)', - '(x-1/2,0,1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,1/2,0)', - '(x-1/2,1/2,0)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,0,0)', - '(x-1/2,0,0)' - ] - } - } - }, - (27, 'bca'): { - 'IT_number': 27, - 'setting': 4, - 'IT_coordinate_system_code': 'bca', - 'name_H-M_alt': 'P b 2 b', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'e': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y,-z)', - '(-x,y+1/2,z)', - '(x,y+1/2,-z)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/2,y,1/2)', - '(1/2,y+1/2,1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,y,1/2)', - '(0,y+1/2,1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/2,y,0)', - '(1/2,y+1/2,0)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,y,0)', - '(0,y+1/2,0)' - ] - } - } - }, - (27, 'a-cb'): { - 'IT_number': 27, - 'setting': 5, - 'IT_coordinate_system_code': 'a-cb', - 'name_H-M_alt': 'P b 2 b', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'e': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y,-z)', - '(x,y-1/2,-z)', - '(-x,y-1/2,z)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/2,y,1/2)', - '(1/2,y-1/2,1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/2,y,0)', - '(1/2,y-1/2,0)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,y,1/2)', - '(0,y-1/2,1/2)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,y,0)', - '(0,y-1/2,0)' - ] - } - } - }, - (28, 'abc'): { - 'IT_number': 28, - 'setting': 0, - 'IT_coordinate_system_code': 'abc', - 'name_H-M_alt': 'P m a 2', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'd': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z)', - '(x+1/2,-y,z)', - '(-x+1/2,y,z)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(1/4,y,z)', - '(3/4,-y,z)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,1/2,z)', - '(1/2,1/2,z)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,0,z)', - '(1/2,0,z)' - ] - } - } - }, - (28, 'ba-c'): { - 'IT_number': 28, - 'setting': 1, - 'IT_coordinate_system_code': 'ba-c', - 'name_H-M_alt': 'P b m 2', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'd': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z)', - '(-x,y+1/2,z)', - '(x,-y+1/2,z)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,1/4,z)', - '(-x,3/4,z)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/2,0,z)', - '(1/2,1/2,z)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,0,z)', - '(0,1/2,z)' - ] - } - } - }, - (28, 'cab'): { - 'IT_number': 28, - 'setting': 2, - 'IT_coordinate_system_code': 'cab', - 'name_H-M_alt': 'P 2 m b', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'd': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,-y,-z)', - '(x,y+1/2,-z)', - '(x,-y+1/2,z)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,1/4,z)', - '(x,3/4,-z)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,0,1/2)', - '(x,1/2,1/2)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,0,0)', - '(x,1/2,0)' - ] - } - } - }, - (28, '-cba'): { - 'IT_number': 28, - 'setting': 3, - 'IT_coordinate_system_code': '-cba', - 'name_H-M_alt': 'P 2 c m', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'd': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,-y,-z)', - '(x,-y,z+1/2)', - '(x,y,-z+1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,y,1/4)', - '(x,-y,3/4)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,1/2,0)', - '(x,1/2,1/2)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,0,0)', - '(x,0,1/2)' - ] - } - } - }, - (28, 'bca'): { - 'IT_number': 28, - 'setting': 4, - 'IT_coordinate_system_code': 'bca', - 'name_H-M_alt': 'P c 2 m', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'd': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y,-z)', - '(-x,y,z+1/2)', - '(x,y,-z+1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,y,1/4)', - '(-x,y,3/4)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/2,y,0)', - '(1/2,y,1/2)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,y,0)', - '(0,y,1/2)' - ] - } - } - }, - (28, 'a-cb'): { - 'IT_number': 28, - 'setting': 5, - 'IT_coordinate_system_code': 'a-cb', - 'name_H-M_alt': 'P m 2 a', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'd': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y,-z)', - '(x+1/2,y,-z)', - '(-x+1/2,y,z)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(1/4,y,z)', - '(3/4,y,-z)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,y,1/2)', - '(1/2,y,1/2)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,y,0)', - '(1/2,y,0)' - ] - } - } - }, - (29, 'abc'): { - 'IT_number': 29, - 'setting': 0, - 'IT_coordinate_system_code': 'abc', - 'name_H-M_alt': 'P c a 21', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'a': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z+1/2)', - '(x+1/2,-y,z)', - '(-x+1/2,y,z+1/2)' - ] - } - } - }, - (29, 'ba-c'): { - 'IT_number': 29, - 'setting': 1, - 'IT_coordinate_system_code': 'ba-c', - 'name_H-M_alt': 'P b c 21', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'a': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z-1/2)', - '(-x,y+1/2,z)', - '(x,-y+1/2,z-1/2)' - ] - } - } - }, - (29, 'cab'): { - 'IT_number': 29, - 'setting': 2, - 'IT_coordinate_system_code': 'cab', - 'name_H-M_alt': 'P 21 a b', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'a': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x+1/2,-y,-z)', - '(x,y+1/2,-z)', - '(x+1/2,-y+1/2,z)' - ] - } - } - }, - (29, '-cba'): { - 'IT_number': 29, - 'setting': 3, - 'IT_coordinate_system_code': '-cba', - 'name_H-M_alt': 'P 21 c a', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'a': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x-1/2,-y,-z)', - '(x,-y,z+1/2)', - '(x-1/2,y,-z+1/2)' - ] - } - } - }, - (29, 'bca'): { - 'IT_number': 29, - 'setting': 4, - 'IT_coordinate_system_code': 'bca', - 'name_H-M_alt': 'P c 21 b', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'a': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y+1/2,-z)', - '(-x,y,z+1/2)', - '(x,y+1/2,-z+1/2)' - ] - } - } - }, - (29, 'a-cb'): { - 'IT_number': 29, - 'setting': 5, - 'IT_coordinate_system_code': 'a-cb', - 'name_H-M_alt': 'P b 21 a', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'a': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y-1/2,-z)', - '(x+1/2,y,-z)', - '(-x+1/2,y-1/2,z)' - ] - } - } - }, - (30, 'abc'): { - 'IT_number': 30, - 'setting': 0, - 'IT_coordinate_system_code': 'abc', - 'name_H-M_alt': 'P n c 2', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'c': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z)', - '(x,-y+1/2,z+1/2)', - '(-x,y+1/2,z+1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/2,0,z)', - '(1/2,1/2,z+1/2)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,0,z)', - '(0,1/2,z+1/2)' - ] - } - } - }, - (30, 'ba-c'): { - 'IT_number': 30, - 'setting': 1, - 'IT_coordinate_system_code': 'ba-c', - 'name_H-M_alt': 'P c n 2', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'c': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z)', - '(-x+1/2,y,z-1/2)', - '(x+1/2,-y,z-1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,1/2,z)', - '(1/2,1/2,z-1/2)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,0,z)', - '(1/2,0,z-1/2)' - ] - } - } - }, - (30, 'cab'): { - 'IT_number': 30, - 'setting': 2, - 'IT_coordinate_system_code': 'cab', - 'name_H-M_alt': 'P 2 n a', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'c': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,-y,-z)', - '(x+1/2,y,-z+1/2)', - '(x+1/2,-y,z+1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,1/2,0)', - '(x+1/2,1/2,1/2)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,0,0)', - '(x+1/2,0,1/2)' - ] - } - } - }, - (30, '-cba'): { - 'IT_number': 30, - 'setting': 3, - 'IT_coordinate_system_code': '-cba', - 'name_H-M_alt': 'P 2 a n', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'c': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,-y,-z)', - '(x-1/2,-y+1/2,z)', - '(x-1/2,y+1/2,-z)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,0,1/2)', - '(x-1/2,1/2,1/2)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,0,0)', - '(x-1/2,1/2,0)' - ] - } - } - }, - (30, 'bca'): { - 'IT_number': 30, - 'setting': 4, - 'IT_coordinate_system_code': 'bca', - 'name_H-M_alt': 'P b 2 n', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'c': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y,-z)', - '(-x+1/2,y+1/2,z)', - '(x+1/2,y+1/2,-z)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,y,1/2)', - '(1/2,y+1/2,1/2)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,y,0)', - '(1/2,y+1/2,0)' - ] - } - } - }, - (30, 'a-cb'): { - 'IT_number': 30, - 'setting': 5, - 'IT_coordinate_system_code': 'a-cb', - 'name_H-M_alt': 'P n 2 b', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'c': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y,-z)', - '(x,y-1/2,-z+1/2)', - '(-x,y-1/2,z+1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/2,y,0)', - '(1/2,y-1/2,1/2)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,y,0)', - '(0,y-1/2,1/2)' - ] - } - } - }, - (31, 'abc'): { - 'IT_number': 31, - 'setting': 0, - 'IT_coordinate_system_code': 'abc', - 'name_H-M_alt': 'P m n 21', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'b': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x+1/2,-y,z+1/2)', - '(x+1/2,-y,z+1/2)', - '(-x,y,z)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(0,y,z)', - '(1/2,-y,z+1/2)' - ] - } - } - }, - (31, 'ba-c'): { - 'IT_number': 31, - 'setting': 1, - 'IT_coordinate_system_code': 'ba-c', - 'name_H-M_alt': 'P n m 21', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'b': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y+1/2,z-1/2)', - '(-x,y+1/2,z-1/2)', - '(x,-y,z)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,0,z)', - '(-x,1/2,z-1/2)' - ] - } - } - }, - (31, 'cab'): { - 'IT_number': 31, - 'setting': 2, - 'IT_coordinate_system_code': 'cab', - 'name_H-M_alt': 'P 21 m n', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'b': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x+1/2,-y+1/2,-z)', - '(x+1/2,y+1/2,-z)', - '(x,-y,z)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,0,z)', - '(x+1/2,1/2,-z)' - ] - } - } - }, - (31, '-cba'): { - 'IT_number': 31, - 'setting': 3, - 'IT_coordinate_system_code': '-cba', - 'name_H-M_alt': 'P 21 n m', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'b': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x-1/2,-y,-z+1/2)', - '(x-1/2,-y,z+1/2)', - '(x,y,-z)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,y,0)', - '(x-1/2,-y,1/2)' - ] - } - } - }, - (31, 'bca'): { - 'IT_number': 31, - 'setting': 4, - 'IT_coordinate_system_code': 'bca', - 'name_H-M_alt': 'P n 21 m', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'b': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y+1/2,-z+1/2)', - '(-x,y+1/2,z+1/2)', - '(x,y,-z)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,y,0)', - '(-x,y+1/2,1/2)' - ] - } - } - }, - (31, 'a-cb'): { - 'IT_number': 31, - 'setting': 5, - 'IT_coordinate_system_code': 'a-cb', - 'name_H-M_alt': 'P m 21 n', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'b': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x+1/2,y-1/2,-z)', - '(x+1/2,y-1/2,-z)', - '(-x,y,z)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(0,y,z)', - '(1/2,y-1/2,-z)' - ] - } - } - }, - (32, 'abc'): { - 'IT_number': 32, - 'setting': 0, - 'IT_coordinate_system_code': 'abc', - 'name_H-M_alt': 'P b a 2', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'c': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z)', - '(x+1/2,-y+1/2,z)', - '(-x+1/2,y+1/2,z)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,1/2,z)', - '(1/2,0,z)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,0,z)', - '(1/2,1/2,z)' - ] - } - } - }, - (32, 'ba-c'): { - 'IT_number': 32, - 'setting': 1, - 'IT_coordinate_system_code': 'ba-c', - 'name_H-M_alt': 'P b a 2', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'c': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z)', - '(-x+1/2,y+1/2,z)', - '(x+1/2,-y+1/2,z)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/2,0,z)', - '(0,1/2,z)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,0,z)', - '(1/2,1/2,z)' - ] - } - } - }, - (32, 'cab'): { - 'IT_number': 32, - 'setting': 2, - 'IT_coordinate_system_code': 'cab', - 'name_H-M_alt': 'P 2 c b', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'c': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,-y,-z)', - '(x,y+1/2,-z+1/2)', - '(x,-y+1/2,z+1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,0,1/2)', - '(x,1/2,0)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,0,0)', - '(x,1/2,1/2)' - ] - } - } - }, - (32, '-cba'): { - 'IT_number': 32, - 'setting': 3, - 'IT_coordinate_system_code': '-cba', - 'name_H-M_alt': 'P 2 c b', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'c': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,-y,-z)', - '(x,-y+1/2,z+1/2)', - '(x,y+1/2,-z+1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,1/2,0)', - '(x,0,1/2)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,0,0)', - '(x,1/2,1/2)' - ] - } - } - }, - (32, 'bca'): { - 'IT_number': 32, - 'setting': 4, - 'IT_coordinate_system_code': 'bca', - 'name_H-M_alt': 'P c 2 a', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'c': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y,-z)', - '(-x+1/2,y,z+1/2)', - '(x+1/2,y,-z+1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/2,y,0)', - '(0,y,1/2)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,y,0)', - '(1/2,y,1/2)' - ] - } - } - }, - (32, 'a-cb'): { - 'IT_number': 32, - 'setting': 5, - 'IT_coordinate_system_code': 'a-cb', - 'name_H-M_alt': 'P c 2 a', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'c': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y,-z)', - '(x+1/2,y,-z+1/2)', - '(-x+1/2,y,z+1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,y,1/2)', - '(1/2,y,0)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,y,0)', - '(1/2,y,1/2)' - ] - } - } - }, - (33, 'abc'): { - 'IT_number': 33, - 'setting': 0, - 'IT_coordinate_system_code': 'abc', - 'name_H-M_alt': 'P n a 21', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'a': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z+1/2)', - '(x+1/2,-y+1/2,z)', - '(-x+1/2,y+1/2,z+1/2)' - ] - } - } - }, - (33, 'ba-c'): { - 'IT_number': 33, - 'setting': 1, - 'IT_coordinate_system_code': 'ba-c', - 'name_H-M_alt': 'P b n 21', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'a': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z-1/2)', - '(-x+1/2,y+1/2,z)', - '(x+1/2,-y+1/2,z-1/2)' - ] - } - } - }, - (33, 'cab'): { - 'IT_number': 33, - 'setting': 2, - 'IT_coordinate_system_code': 'cab', - 'name_H-M_alt': 'P 21 n b', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'a': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x+1/2,-y,-z)', - '(x,y+1/2,-z+1/2)', - '(x+1/2,-y+1/2,z+1/2)' - ] - } - } - }, - (33, '-cba'): { - 'IT_number': 33, - 'setting': 3, - 'IT_coordinate_system_code': '-cba', - 'name_H-M_alt': 'P 21 c n', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'a': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x-1/2,-y,-z)', - '(x,-y+1/2,z+1/2)', - '(x-1/2,y+1/2,-z+1/2)' - ] - } - } - }, - (33, 'bca'): { - 'IT_number': 33, - 'setting': 4, - 'IT_coordinate_system_code': 'bca', - 'name_H-M_alt': 'P c 21 n', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'a': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y+1/2,-z)', - '(-x+1/2,y,z+1/2)', - '(x+1/2,y+1/2,-z+1/2)' - ] - } - } - }, - (33, 'a-cb'): { - 'IT_number': 33, - 'setting': 5, - 'IT_coordinate_system_code': 'a-cb', - 'name_H-M_alt': 'P n 21 a', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'a': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y-1/2,-z)', - '(x+1/2,y,-z+1/2)', - '(-x+1/2,y-1/2,z+1/2)' - ] - } - } - }, - (34, 'abc'): { - 'IT_number': 34, - 'setting': 0, - 'IT_coordinate_system_code': 'abc', - 'name_H-M_alt': 'P n n 2', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'c': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z)', - '(x+1/2,-y+1/2,z+1/2)', - '(-x+1/2,y+1/2,z+1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,1/2,z)', - '(1/2,0,z+1/2)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,0,z)', - '(1/2,1/2,z+1/2)' - ] - } - } - }, - (34, 'ba-c'): { - 'IT_number': 34, - 'setting': 1, - 'IT_coordinate_system_code': 'ba-c', - 'name_H-M_alt': 'P n n 2', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'c': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z)', - '(-x+1/2,y+1/2,z-1/2)', - '(x+1/2,-y+1/2,z-1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/2,0,z)', - '(0,1/2,z-1/2)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,0,z)', - '(1/2,1/2,z-1/2)' - ] - } - } - }, - (34, 'cab'): { - 'IT_number': 34, - 'setting': 2, - 'IT_coordinate_system_code': 'cab', - 'name_H-M_alt': 'P 2 n n', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'c': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,-y,-z)', - '(x+1/2,y+1/2,-z+1/2)', - '(x+1/2,-y+1/2,z+1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,0,1/2)', - '(x+1/2,1/2,0)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,0,0)', - '(x+1/2,1/2,1/2)' - ] - } - } - }, - (34, '-cba'): { - 'IT_number': 34, - 'setting': 3, - 'IT_coordinate_system_code': '-cba', - 'name_H-M_alt': 'P 2 n n', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'c': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,-y,-z)', - '(x-1/2,-y+1/2,z+1/2)', - '(x-1/2,y+1/2,-z+1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,1/2,0)', - '(x-1/2,0,1/2)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,0,0)', - '(x-1/2,1/2,1/2)' - ] - } - } - }, - (34, 'bca'): { - 'IT_number': 34, - 'setting': 4, - 'IT_coordinate_system_code': 'bca', - 'name_H-M_alt': 'P n 2 n', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'c': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y,-z)', - '(-x+1/2,y+1/2,z+1/2)', - '(x+1/2,y+1/2,-z+1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/2,y,0)', - '(0,y+1/2,1/2)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,y,0)', - '(1/2,y+1/2,1/2)' - ] - } - } - }, - (34, 'a-cb'): { - 'IT_number': 34, - 'setting': 5, - 'IT_coordinate_system_code': 'a-cb', - 'name_H-M_alt': 'P n 2 n', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'c': { - 'multiplicity': 4, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y,-z)', - '(x+1/2,y-1/2,-z+1/2)', - '(-x+1/2,y-1/2,z+1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,y,1/2)', - '(1/2,y-1/2,0)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,y,0)', - '(1/2,y-1/2,1/2)' - ] - } - } - }, - (35, 'abc'): { - 'IT_number': 35, - 'setting': 0, - 'IT_coordinate_system_code': 'abc', - 'name_H-M_alt': 'C m m 2', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'f': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z)', - '(x,-y,z)', - '(-x,y,z)' - ] - }, - 'e': { - 'multiplicity': 4, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(0,y,z)', - '(0,-y,z)' - ] - }, - 'd': { - 'multiplicity': 4, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,0,z)', - '(-x,0,z)' - ] - }, - 'c': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/4,1/4,z)', - '(1/4,3/4,z)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(0,1/2,z)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(0,0,z)' - ] - } - } - }, - (35, 'ba-c'): { - 'IT_number': 35, - 'setting': 1, - 'IT_coordinate_system_code': 'ba-c', - 'name_H-M_alt': 'C m m 2', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'f': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z)', - '(-x,y,z)', - '(x,-y,z)' - ] - }, - 'e': { - 'multiplicity': 4, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,0,z)', - '(-x,0,z)' - ] - }, - 'd': { - 'multiplicity': 4, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(0,y,z)', - '(0,-y,z)' - ] - }, - 'c': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/4,1/4,z)', - '(3/4,1/4,z)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(1/2,0,z)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(0,0,z)' - ] - } - } - }, - (35, 'cab'): { - 'IT_number': 35, - 'setting': 2, - 'IT_coordinate_system_code': 'cab', - 'name_H-M_alt': 'A 2 m m', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'f': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,-y,-z)', - '(x,y,-z)', - '(x,-y,z)' - ] - }, - 'e': { - 'multiplicity': 4, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,0,z)', - '(x,0,-z)' - ] - }, - 'd': { - 'multiplicity': 4, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,y,0)', - '(x,-y,0)' - ] - }, - 'c': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,1/4,1/4)', - '(x,1/4,3/4)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(x,0,1/2)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(x,0,0)' - ] - } - } - }, - (35, '-cba'): { - 'IT_number': 35, - 'setting': 3, - 'IT_coordinate_system_code': '-cba', - 'name_H-M_alt': 'A 2 m m', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'f': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,-y,-z)', - '(x,-y,z)', - '(x,y,-z)' - ] - }, - 'e': { - 'multiplicity': 4, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,y,0)', - '(x,-y,0)' - ] - }, - 'd': { - 'multiplicity': 4, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,0,z)', - '(x,0,-z)' - ] - }, - 'c': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,1/4,1/4)', - '(x,3/4,1/4)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(x,1/2,0)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(x,0,0)' - ] - } - } - }, - (35, 'bca'): { - 'IT_number': 35, - 'setting': 4, - 'IT_coordinate_system_code': 'bca', - 'name_H-M_alt': 'B m 2 m', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'f': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y,-z)', - '(-x,y,z)', - '(x,y,-z)' - ] - }, - 'e': { - 'multiplicity': 4, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,y,0)', - '(-x,y,0)' - ] - }, - 'd': { - 'multiplicity': 4, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(0,y,z)', - '(0,y,-z)' - ] - }, - 'c': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/4,y,1/4)', - '(3/4,y,1/4)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(1/2,y,0)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(0,y,0)' - ] - } - } - }, - (35, 'a-cb'): { - 'IT_number': 35, - 'setting': 5, - 'IT_coordinate_system_code': 'a-cb', - 'name_H-M_alt': 'B m 2 m', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'f': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y,-z)', - '(x,y,-z)', - '(-x,y,z)' - ] - }, - 'e': { - 'multiplicity': 4, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(0,y,z)', - '(0,y,-z)' - ] - }, - 'd': { - 'multiplicity': 4, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,y,0)', - '(-x,y,0)' - ] - }, - 'c': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/4,y,1/4)', - '(1/4,y,3/4)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(0,y,1/2)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(0,y,0)' - ] - } - } - }, - (36, 'abc'): { - 'IT_number': 36, - 'setting': 0, - 'IT_coordinate_system_code': 'abc', - 'name_H-M_alt': 'C m c 21', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'b': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z+1/2)', - '(x,-y,z+1/2)', - '(-x,y,z)' - ] - }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(0,y,z)', - '(0,-y,z+1/2)' - ] - } - } - }, - (36, 'ba-c'): { - 'IT_number': 36, - 'setting': 1, - 'IT_coordinate_system_code': 'ba-c', - 'name_H-M_alt': 'C c m 21', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'b': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z-1/2)', - '(-x,y,z-1/2)', - '(x,-y,z)' - ] - }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,0,z)', - '(-x,0,z-1/2)' - ] - } - } - }, - (36, 'cab'): { - 'IT_number': 36, - 'setting': 2, - 'IT_coordinate_system_code': 'cab', - 'name_H-M_alt': 'A 21 m a', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'b': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x+1/2,-y,-z)', - '(x+1/2,y,-z)', - '(x,-y,z)' - ] - }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,0,z)', - '(x+1/2,0,-z)' - ] - } - } - }, - (36, '-cba'): { - 'IT_number': 36, - 'setting': 3, - 'IT_coordinate_system_code': '-cba', - 'name_H-M_alt': 'A 21 a m', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'b': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x-1/2,-y,-z)', - '(x-1/2,-y,z)', - '(x,y,-z)' - ] - }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,y,0)', - '(x-1/2,-y,0)' - ] - } - } - }, - (36, 'bca'): { - 'IT_number': 36, - 'setting': 4, - 'IT_coordinate_system_code': 'bca', - 'name_H-M_alt': 'B b 21 m', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'b': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y+1/2,-z)', - '(-x,y+1/2,z)', - '(x,y,-z)' - ] - }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,y,0)', - '(-x,y+1/2,0)' - ] - } - } - }, - (36, 'a-cb'): { - 'IT_number': 36, - 'setting': 5, - 'IT_coordinate_system_code': 'a-cb', - 'name_H-M_alt': 'B m 21 b', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'b': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y-1/2,-z)', - '(x,y-1/2,-z)', - '(-x,y,z)' - ] - }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(0,y,z)', - '(0,y-1/2,-z)' - ] - } - } - }, - (37, 'abc'): { - 'IT_number': 37, - 'setting': 0, - 'IT_coordinate_system_code': 'abc', - 'name_H-M_alt': 'C c c 2', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'd': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z)', - '(x,-y,z+1/2)', - '(-x,y,z+1/2)' - ] - }, - 'c': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/4,1/4,z)', - '(1/4,3/4,z+1/2)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,1/2,z)', - '(0,1/2,z+1/2)' - ] - }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,z+1/2)' - ] - } - } - }, - (37, 'ba-c'): { - 'IT_number': 37, - 'setting': 1, - 'IT_coordinate_system_code': 'ba-c', - 'name_H-M_alt': 'C c c 2', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'd': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z)', - '(-x,y,z-1/2)', - '(x,-y,z-1/2)' - ] - }, - 'c': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/4,1/4,z)', - '(3/4,1/4,z-1/2)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/2,0,z)', - '(1/2,0,z-1/2)' - ] - }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,z-1/2)' - ] - } - } - }, - (37, 'cab'): { - 'IT_number': 37, - 'setting': 2, - 'IT_coordinate_system_code': 'cab', - 'name_H-M_alt': 'A 2 a a', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'd': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,-y,-z)', - '(x+1/2,y,-z)', - '(x+1/2,-y,z)' - ] - }, - 'c': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,1/4,1/4)', - '(x+1/2,1/4,3/4)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,0,1/2)', - '(x+1/2,0,1/2)' - ] - }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,0,0)', - '(x+1/2,0,0)' - ] - } - } - }, - (37, '-cba'): { - 'IT_number': 37, - 'setting': 3, - 'IT_coordinate_system_code': '-cba', - 'name_H-M_alt': 'A 2 a a', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'd': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,-y,-z)', - '(x-1/2,-y,z)', - '(x-1/2,y,-z)' - ] - }, - 'c': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,1/4,1/4)', - '(x-1/2,3/4,1/4)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,1/2,0)', - '(x-1/2,1/2,0)' - ] - }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,0,0)', - '(x-1/2,0,0)' - ] - } - } - }, - (37, 'bca'): { - 'IT_number': 37, - 'setting': 4, - 'IT_coordinate_system_code': 'bca', - 'name_H-M_alt': 'B b 2 b', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'd': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y,-z)', - '(-x,y+1/2,z)', - '(x,y+1/2,-z)' - ] - }, - 'c': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/4,y,1/4)', - '(3/4,y+1/2,1/4)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/2,y,0)', - '(1/2,y+1/2,0)' - ] - }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,y,0)', - '(0,y+1/2,0)' - ] - } - } - }, - (37, 'a-cb'): { - 'IT_number': 37, - 'setting': 5, - 'IT_coordinate_system_code': 'a-cb', - 'name_H-M_alt': 'B b 2 b', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'd': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y,-z)', - '(x,y-1/2,-z)', - '(-x,y-1/2,z)' - ] - }, - 'c': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/4,y,1/4)', - '(1/4,y-1/2,3/4)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,y,1/2)', - '(0,y-1/2,1/2)' - ] - }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,y,0)', - '(0,y-1/2,0)' - ] - } - } - }, - (38, 'abc'): { - 'IT_number': 38, - 'setting': 0, - 'IT_coordinate_system_code': 'abc', - 'name_H-M_alt': 'A m m 2', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'f': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z)', - '(x,-y,z)', - '(-x,y,z)' - ] - }, - 'e': { - 'multiplicity': 4, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(1/2,y,z)', - '(1/2,-y,z)' - ] - }, - 'd': { - 'multiplicity': 4, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(0,y,z)', - '(0,-y,z)' - ] - }, - 'c': { - 'multiplicity': 4, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,0,z)', - '(-x,0,z)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(1/2,0,z)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(0,0,z)' - ] - } - } - }, - (38, 'ba-c'): { - 'IT_number': 38, - 'setting': 1, - 'IT_coordinate_system_code': 'ba-c', - 'name_H-M_alt': 'B m m 2', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'f': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z)', - '(-x,y,z)', - '(x,-y,z)' - ] - }, - 'e': { - 'multiplicity': 4, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,1/2,z)', - '(-x,1/2,z)' - ] - }, - 'd': { - 'multiplicity': 4, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,0,z)', - '(-x,0,z)' - ] - }, - 'c': { - 'multiplicity': 4, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(0,y,z)', - '(0,-y,z)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(0,1/2,z)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(0,0,z)' - ] - } - } - }, - (38, 'cab'): { - 'IT_number': 38, - 'setting': 2, - 'IT_coordinate_system_code': 'cab', - 'name_H-M_alt': 'B 2 m m', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'f': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,-y,-z)', - '(x,y,-z)', - '(x,-y,z)' - ] - }, - 'e': { - 'multiplicity': 4, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,1/2,z)', - '(x,1/2,-z)' - ] - }, - 'd': { - 'multiplicity': 4, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,0,z)', - '(x,0,-z)' - ] - }, - 'c': { - 'multiplicity': 4, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,y,0)', - '(x,-y,0)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(x,1/2,0)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(x,0,0)' - ] - } - } - }, - (38, '-cba'): { - 'IT_number': 38, - 'setting': 3, - 'IT_coordinate_system_code': '-cba', - 'name_H-M_alt': 'C 2 m m', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'f': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,-y,-z)', - '(x,-y,z)', - '(x,y,-z)' - ] - }, - 'e': { - 'multiplicity': 4, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,y,1/2)', - '(x,-y,1/2)' - ] - }, - 'd': { - 'multiplicity': 4, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,y,0)', - '(x,-y,0)' - ] - }, - 'c': { - 'multiplicity': 4, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,0,z)', - '(x,0,-z)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(x,0,1/2)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(x,0,0)' - ] - } - } - }, - (38, 'bca'): { - 'IT_number': 38, - 'setting': 4, - 'IT_coordinate_system_code': 'bca', - 'name_H-M_alt': 'C m 2 m', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'f': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y,-z)', - '(-x,y,z)', - '(x,y,-z)' - ] - }, - 'e': { - 'multiplicity': 4, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,y,1/2)', - '(-x,y,1/2)' - ] - }, - 'd': { - 'multiplicity': 4, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,y,0)', - '(-x,y,0)' - ] - }, - 'c': { - 'multiplicity': 4, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(0,y,z)', - '(0,y,-z)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(0,y,1/2)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(0,y,0)' - ] - } - } - }, - (38, 'a-cb'): { - 'IT_number': 38, - 'setting': 5, - 'IT_coordinate_system_code': 'a-cb', - 'name_H-M_alt': 'A m 2 m', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'f': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y,-z)', - '(x,y,-z)', - '(-x,y,z)' - ] - }, - 'e': { - 'multiplicity': 4, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(1/2,y,z)', - '(1/2,y,-z)' - ] - }, - 'd': { - 'multiplicity': 4, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(0,y,z)', - '(0,y,-z)' - ] - }, - 'c': { - 'multiplicity': 4, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,y,0)', - '(-x,y,0)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(1/2,y,0)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(0,y,0)' - ] - } - } - }, - (39, 'abc'): { - 'IT_number': 39, - 'setting': 0, - 'IT_coordinate_system_code': 'abc', - 'name_H-M_alt': 'A e m 2', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'd': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z)', - '(x,-y+1/2,z)', - '(-x,y+1/2,z)' - ] - }, - 'c': { - 'multiplicity': 4, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,1/4,z)', - '(-x,3/4,z)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/2,0,z)', - '(1/2,1/2,z)' - ] - }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,0,z)', - '(0,1/2,z)' - ] - } - } - }, - (39, 'ba-c'): { - 'IT_number': 39, - 'setting': 1, - 'IT_coordinate_system_code': 'ba-c', - 'name_H-M_alt': 'B m e 2', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'd': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z)', - '(-x+1/2,y,z)', - '(x+1/2,-y,z)' - ] - }, - 'c': { - 'multiplicity': 4, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(1/4,y,z)', - '(3/4,-y,z)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,1/2,z)', - '(1/2,1/2,z)' - ] - }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,0,z)', - '(1/2,0,z)' - ] - } - } - }, - (39, 'cab'): { - 'IT_number': 39, - 'setting': 2, - 'IT_coordinate_system_code': 'cab', - 'name_H-M_alt': 'B 2 e m', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'd': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,-y,-z)', - '(x,y,-z+1/2)', - '(x,-y,z+1/2)' - ] - }, - 'c': { - 'multiplicity': 4, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,y,1/4)', - '(x,-y,3/4)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,1/2,0)', - '(x,1/2,1/2)' - ] - }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,0,0)', - '(x,0,1/2)' - ] - } - } - }, - (39, '-cba'): { - 'IT_number': 39, - 'setting': 3, - 'IT_coordinate_system_code': '-cba', - 'name_H-M_alt': 'C 2 m e', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'd': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,-y,-z)', - '(x,-y+1/2,z)', - '(x,y+1/2,-z)' - ] - }, - 'c': { - 'multiplicity': 4, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,1/4,z)', - '(x,3/4,-z)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,0,1/2)', - '(x,1/2,1/2)' - ] - }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,0,0)', - '(x,1/2,0)' - ] - } - } - }, - (39, 'bca'): { - 'IT_number': 39, - 'setting': 4, - 'IT_coordinate_system_code': 'bca', - 'name_H-M_alt': 'C m 2 e', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'd': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y,-z)', - '(-x+1/2,y,z)', - '(x+1/2,y,-z)' - ] - }, - 'c': { - 'multiplicity': 4, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(1/4,y,z)', - '(3/4,y,-z)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,y,1/2)', - '(1/2,y,1/2)' - ] - }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,y,0)', - '(1/2,y,0)' - ] - } - } - }, - (39, 'a-cb'): { - 'IT_number': 39, - 'setting': 5, - 'IT_coordinate_system_code': 'a-cb', - 'name_H-M_alt': 'A e 2 m', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'd': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y,-z)', - '(x,y,-z+1/2)', - '(-x,y,z+1/2)' - ] - }, - 'c': { - 'multiplicity': 4, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,y,1/4)', - '(-x,y,3/4)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/2,y,0)', - '(1/2,y,1/2)' - ] - }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,y,0)', - '(0,y,1/2)' - ] - } - } - }, - (40, 'abc'): { - 'IT_number': 40, - 'setting': 0, - 'IT_coordinate_system_code': 'abc', - 'name_H-M_alt': 'A m a 2', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'c': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z)', - '(x+1/2,-y,z)', - '(-x+1/2,y,z)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(1/4,y,z)', - '(3/4,-y,z)' - ] - }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,0,z)', - '(1/2,0,z)' - ] - } - } - }, - (40, 'ba-c'): { - 'IT_number': 40, - 'setting': 1, - 'IT_coordinate_system_code': 'ba-c', - 'name_H-M_alt': 'B b m 2', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'c': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z)', - '(-x,y+1/2,z)', - '(x,-y+1/2,z)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,1/4,z)', - '(-x,3/4,z)' - ] - }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,0,z)', - '(0,1/2,z)' - ] - } - } - }, - (40, 'cab'): { - 'IT_number': 40, - 'setting': 2, - 'IT_coordinate_system_code': 'cab', - 'name_H-M_alt': 'B 2 m b', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'c': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,-y,-z)', - '(x,y+1/2,-z)', - '(x,-y+1/2,z)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,1/4,z)', - '(x,3/4,-z)' - ] - }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,0,0)', - '(x,1/2,0)' - ] - } - } - }, - (40, '-cba'): { - 'IT_number': 40, - 'setting': 3, - 'IT_coordinate_system_code': '-cba', - 'name_H-M_alt': 'C 2 c m', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'c': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,-y,-z)', - '(x,-y,z+1/2)', - '(x,y,-z+1/2)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,y,1/4)', - '(x,-y,3/4)' - ] - }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,0,0)', - '(x,0,1/2)' - ] - } - } - }, - (40, 'bca'): { - 'IT_number': 40, - 'setting': 4, - 'IT_coordinate_system_code': 'bca', - 'name_H-M_alt': 'C c 2 m', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'c': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y,-z)', - '(-x,y,z+1/2)', - '(x,y,-z+1/2)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,y,1/4)', - '(-x,y,3/4)' - ] - }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,y,0)', - '(0,y,1/2)' - ] - } - } - }, - (40, 'a-cb'): { - 'IT_number': 40, - 'setting': 5, - 'IT_coordinate_system_code': 'a-cb', - 'name_H-M_alt': 'A m 2 a', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'c': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y,-z)', - '(x+1/2,y,-z)', - '(-x+1/2,y,z)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(1/4,y,z)', - '(3/4,y,-z)' - ] - }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,y,0)', - '(1/2,y,0)' - ] - } - } - }, - (41, 'abc'): { - 'IT_number': 41, - 'setting': 0, - 'IT_coordinate_system_code': 'abc', - 'name_H-M_alt': 'A e a 2', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'b': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z)', - '(x+1/2,-y+1/2,z)', - '(-x+1/2,y+1/2,z)' - ] - }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,0,z)', - '(1/2,1/2,z)' - ] - } - } - }, - (41, 'ba-c'): { - 'IT_number': 41, - 'setting': 1, - 'IT_coordinate_system_code': 'ba-c', - 'name_H-M_alt': 'B b e 2', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'b': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z)', - '(-x+1/2,y+1/2,z)', - '(x+1/2,-y+1/2,z)' - ] - }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,0,z)', - '(1/2,1/2,z)' - ] - } - } - }, - (41, 'cab'): { - 'IT_number': 41, - 'setting': 2, - 'IT_coordinate_system_code': 'cab', - 'name_H-M_alt': 'B 2 e b', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'b': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,-y,-z)', - '(x,y+1/2,-z+1/2)', - '(x,-y+1/2,z+1/2)' - ] - }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,0,0)', - '(x,1/2,1/2)' - ] - } - } - }, - (41, '-cba'): { - 'IT_number': 41, - 'setting': 3, - 'IT_coordinate_system_code': '-cba', - 'name_H-M_alt': 'C 2 c e', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'b': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,-y,-z)', - '(x,-y+1/2,z+1/2)', - '(x,y+1/2,-z+1/2)' - ] - }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,0,0)', - '(x,1/2,1/2)' - ] - } - } - }, - (41, 'bca'): { - 'IT_number': 41, - 'setting': 4, - 'IT_coordinate_system_code': 'bca', - 'name_H-M_alt': 'C c 2 e', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'b': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y,-z)', - '(-x+1/2,y,z+1/2)', - '(x+1/2,y,-z+1/2)' - ] - }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,y,0)', - '(1/2,y,1/2)' - ] - } - } - }, - (41, 'a-cb'): { - 'IT_number': 41, - 'setting': 5, - 'IT_coordinate_system_code': 'a-cb', - 'name_H-M_alt': 'A e 2 a', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'b': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y,-z)', - '(x+1/2,y,-z+1/2)', - '(-x+1/2,y,z+1/2)' - ] - }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,y,0)', - '(1/2,y,1/2)' - ] - } - } - }, - (42, 'abc'): { - 'IT_number': 42, - 'setting': 0, - 'IT_coordinate_system_code': 'abc', - 'name_H-M_alt': 'F m m 2', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'e': { - 'multiplicity': 16, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z)', - '(x,-y,z)', - '(-x,y,z)' - ] - }, - 'd': { - 'multiplicity': 8, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,0,z)', - '(-x,0,z)' - ] - }, - 'c': { - 'multiplicity': 8, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(0,y,z)', - '(0,-y,z)' - ] - }, - 'b': { - 'multiplicity': 8, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/4,1/4,z)', - '(1/4,3/4,z)' - ] - }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(0,0,z)' - ] - } - } - }, - (42, 'ba-c'): { - 'IT_number': 42, - 'setting': 1, - 'IT_coordinate_system_code': 'ba-c', - 'name_H-M_alt': 'F m m 2', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'e': { - 'multiplicity': 16, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z)', - '(-x,y,z)', - '(x,-y,z)' - ] - }, - 'd': { - 'multiplicity': 8, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(0,y,z)', - '(0,-y,z)' - ] - }, - 'c': { - 'multiplicity': 8, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,0,z)', - '(-x,0,z)' - ] - }, - 'b': { - 'multiplicity': 8, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/4,1/4,z)', - '(3/4,1/4,z)' - ] - }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(0,0,z)' - ] - } - } - }, - (42, 'cab'): { - 'IT_number': 42, - 'setting': 2, - 'IT_coordinate_system_code': 'cab', - 'name_H-M_alt': 'F 2 m m', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'e': { - 'multiplicity': 16, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,-y,-z)', - '(x,y,-z)', - '(x,-y,z)' - ] - }, - 'd': { - 'multiplicity': 8, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,y,0)', - '(x,-y,0)' - ] - }, - 'c': { - 'multiplicity': 8, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,0,z)', - '(x,0,-z)' - ] - }, - 'b': { - 'multiplicity': 8, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,1/4,1/4)', - '(x,1/4,3/4)' - ] - }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(x,0,0)' - ] - } - } - }, - (42, '-cba'): { - 'IT_number': 42, - 'setting': 3, - 'IT_coordinate_system_code': '-cba', - 'name_H-M_alt': 'F 2 m m', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'e': { - 'multiplicity': 16, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,-y,-z)', - '(x,-y,z)', - '(x,y,-z)' - ] - }, - 'd': { - 'multiplicity': 8, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,0,z)', - '(x,0,-z)' - ] - }, - 'c': { - 'multiplicity': 8, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,y,0)', - '(x,-y,0)' - ] - }, - 'b': { - 'multiplicity': 8, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,1/4,1/4)', - '(x,3/4,1/4)' - ] - }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(x,0,0)' - ] - } - } - }, - (42, 'bca'): { - 'IT_number': 42, - 'setting': 4, - 'IT_coordinate_system_code': 'bca', - 'name_H-M_alt': 'F m 2 m', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'e': { - 'multiplicity': 16, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y,-z)', - '(-x,y,z)', - '(x,y,-z)' - ] - }, - 'd': { - 'multiplicity': 8, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(0,y,z)', - '(0,y,-z)' - ] - }, - 'c': { - 'multiplicity': 8, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,y,0)', - '(-x,y,0)' - ] - }, - 'b': { - 'multiplicity': 8, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/4,y,1/4)', - '(3/4,y,1/4)' - ] - }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(0,y,0)' - ] - } - } - }, - (42, 'a-cb'): { - 'IT_number': 42, - 'setting': 5, - 'IT_coordinate_system_code': 'a-cb', - 'name_H-M_alt': 'F m 2 m', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'e': { - 'multiplicity': 16, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y,-z)', - '(x,y,-z)', - '(-x,y,z)' - ] - }, - 'd': { - 'multiplicity': 8, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,y,0)', - '(-x,y,0)' - ] - }, - 'c': { - 'multiplicity': 8, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(0,y,z)', - '(0,y,-z)' - ] - }, - 'b': { - 'multiplicity': 8, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/4,y,1/4)', - '(1/4,y,3/4)' - ] - }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(0,y,0)' - ] - } - } - }, - (43, 'abc'): { - 'IT_number': 43, - 'setting': 0, - 'IT_coordinate_system_code': 'abc', - 'name_H-M_alt': 'F d d 2', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'b': { - 'multiplicity': 16, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z)', - '(x+1/4,-y+1/4,z+1/4)', - '(-x+1/4,y+1/4,z+1/4)' - ] - }, - 'a': { - 'multiplicity': 8, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,0,z)', - '(1/4,1/4,z+1/4)' - ] - } - } - }, - (43, 'ba-c'): { - 'IT_number': 43, - 'setting': 1, - 'IT_coordinate_system_code': 'ba-c', - 'name_H-M_alt': 'F d d 2', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'b': { - 'multiplicity': 16, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z)', - '(-x+1/4,y+1/4,z-1/4)', - '(x+1/4,-y+1/4,z-1/4)' - ] - }, - 'a': { - 'multiplicity': 8, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,0,z)', - '(1/4,1/4,z-1/4)' - ] - } - } - }, - (43, 'cab'): { - 'IT_number': 43, - 'setting': 2, - 'IT_coordinate_system_code': 'cab', - 'name_H-M_alt': 'F 2 d d', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'b': { - 'multiplicity': 16, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,-y,-z)', - '(x+1/4,y+1/4,-z+1/4)', - '(x+1/4,-y+1/4,z+1/4)' - ] - }, - 'a': { - 'multiplicity': 8, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,0,0)', - '(x+1/4,1/4,1/4)' - ] - } - } - }, - (43, '-cba'): { - 'IT_number': 43, - 'setting': 3, - 'IT_coordinate_system_code': '-cba', - 'name_H-M_alt': 'F 2 d d', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'b': { - 'multiplicity': 16, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,-y,-z)', - '(x-1/4,-y+1/4,z+1/4)', - '(x-1/4,y+1/4,-z+1/4)' - ] - }, - 'a': { - 'multiplicity': 8, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,0,0)', - '(x-1/4,1/4,1/4)' - ] - } - } - }, - (43, 'bca'): { - 'IT_number': 43, - 'setting': 4, - 'IT_coordinate_system_code': 'bca', - 'name_H-M_alt': 'F d 2 d', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'b': { - 'multiplicity': 16, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y,-z)', - '(-x+1/4,y+1/4,z+1/4)', - '(x+1/4,y+1/4,-z+1/4)' - ] - }, - 'a': { - 'multiplicity': 8, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,y,0)', - '(1/4,y+1/4,1/4)' - ] - } - } - }, - (43, 'a-cb'): { - 'IT_number': 43, - 'setting': 5, - 'IT_coordinate_system_code': 'a-cb', - 'name_H-M_alt': 'F d 2 d', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'b': { - 'multiplicity': 16, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y,-z)', - '(x+1/4,y-1/4,-z+1/4)', - '(-x+1/4,y-1/4,z+1/4)' - ] - }, - 'a': { - 'multiplicity': 8, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,y,0)', - '(1/4,y-1/4,1/4)' - ] - } - } - }, - (44, 'abc'): { - 'IT_number': 44, - 'setting': 0, - 'IT_coordinate_system_code': 'abc', - 'name_H-M_alt': 'I m m 2', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'e': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z)', - '(x,-y,z)', - '(-x,y,z)' - ] - }, - 'd': { - 'multiplicity': 4, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(0,y,z)', - '(0,-y,z)' - ] - }, - 'c': { - 'multiplicity': 4, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,0,z)', - '(-x,0,z)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(0,1/2,z)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(0,0,z)' - ] - } - } - }, - (44, 'ba-c'): { - 'IT_number': 44, - 'setting': 1, - 'IT_coordinate_system_code': 'ba-c', - 'name_H-M_alt': 'I m m 2', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'e': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z)', - '(-x,y,z)', - '(x,-y,z)' - ] - }, - 'd': { - 'multiplicity': 4, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,0,z)', - '(-x,0,z)' - ] - }, - 'c': { - 'multiplicity': 4, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(0,y,z)', - '(0,-y,z)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(1/2,0,z)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(0,0,z)' - ] - } - } - }, - (44, 'cab'): { - 'IT_number': 44, - 'setting': 2, - 'IT_coordinate_system_code': 'cab', - 'name_H-M_alt': 'I 2 m m', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'e': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,-y,-z)', - '(x,y,-z)', - '(x,-y,z)' - ] - }, - 'd': { - 'multiplicity': 4, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,0,z)', - '(x,0,-z)' - ] - }, - 'c': { - 'multiplicity': 4, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,y,0)', - '(x,-y,0)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(x,0,1/2)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(x,0,0)' - ] - } - } - }, - (44, '-cba'): { - 'IT_number': 44, - 'setting': 3, - 'IT_coordinate_system_code': '-cba', - 'name_H-M_alt': 'I 2 m m', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'e': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,-y,-z)', - '(x,-y,z)', - '(x,y,-z)' - ] - }, - 'd': { - 'multiplicity': 4, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,y,0)', - '(x,-y,0)' - ] - }, - 'c': { - 'multiplicity': 4, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,0,z)', - '(x,0,-z)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(x,1/2,0)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(x,0,0)' - ] - } - } - }, - (44, 'bca'): { - 'IT_number': 44, - 'setting': 4, - 'IT_coordinate_system_code': 'bca', - 'name_H-M_alt': 'I m 2 m', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'e': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y,-z)', - '(-x,y,z)', - '(x,y,-z)' - ] - }, - 'd': { - 'multiplicity': 4, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,y,0)', - '(-x,y,0)' - ] - }, - 'c': { - 'multiplicity': 4, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(0,y,z)', - '(0,y,-z)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(1/2,y,0)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(0,y,0)' - ] - } - } - }, - (44, 'a-cb'): { - 'IT_number': 44, - 'setting': 5, - 'IT_coordinate_system_code': 'a-cb', - 'name_H-M_alt': 'I m 2 m', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'e': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y,-z)', - '(x,y,-z)', - '(-x,y,z)' - ] - }, - 'd': { - 'multiplicity': 4, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(0,y,z)', - '(0,y,-z)' - ] - }, - 'c': { - 'multiplicity': 4, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,y,0)', - '(-x,y,0)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(0,y,1/2)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(0,y,0)' - ] - } - } - }, - (45, 'abc'): { - 'IT_number': 45, - 'setting': 0, - 'IT_coordinate_system_code': 'abc', - 'name_H-M_alt': 'I b a 2', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'c': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z)', - '(x+1/2,-y+1/2,z)', - '(-x+1/2,y+1/2,z)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,1/2,z)', - '(1/2,0,z)' - ] - }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,0,z)', - '(1/2,1/2,z)' - ] - } - } - }, - (45, 'ba-c'): { - 'IT_number': 45, - 'setting': 1, - 'IT_coordinate_system_code': 'ba-c', - 'name_H-M_alt': 'I b a 2', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'c': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z)', - '(-x+1/2,y+1/2,z)', - '(x+1/2,-y+1/2,z)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/2,0,z)', - '(0,1/2,z)' - ] - }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,0,z)', - '(1/2,1/2,z)' - ] - } - } - }, - (45, 'cab'): { - 'IT_number': 45, - 'setting': 2, - 'IT_coordinate_system_code': 'cab', - 'name_H-M_alt': 'I 2 c b', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'c': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,-y,-z)', - '(x,y+1/2,-z+1/2)', - '(x,-y+1/2,z+1/2)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,0,1/2)', - '(x,1/2,0)' - ] - }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,0,0)', - '(x,1/2,1/2)' - ] - } - } - }, - (45, '-cba'): { - 'IT_number': 45, - 'setting': 3, - 'IT_coordinate_system_code': '-cba', - 'name_H-M_alt': 'I 2 c b', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'c': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,-y,-z)', - '(x,-y+1/2,z+1/2)', - '(x,y+1/2,-z+1/2)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,1/2,0)', - '(x,0,1/2)' - ] - }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,0,0)', - '(x,1/2,1/2)' - ] - } - } - }, - (45, 'bca'): { - 'IT_number': 45, - 'setting': 4, - 'IT_coordinate_system_code': 'bca', - 'name_H-M_alt': 'I c 2 a', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'c': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y,-z)', - '(-x+1/2,y,z+1/2)', - '(x+1/2,y,-z+1/2)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/2,y,0)', - '(0,y,1/2)' - ] - }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,y,0)', - '(1/2,y,1/2)' - ] - } - } - }, - (45, 'a-cb'): { - 'IT_number': 45, - 'setting': 5, - 'IT_coordinate_system_code': 'a-cb', - 'name_H-M_alt': 'I c 2 a', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'c': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y,-z)', - '(x+1/2,y,-z+1/2)', - '(-x+1/2,y,z+1/2)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,y,1/2)', - '(1/2,y,0)' - ] - }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,y,0)', - '(1/2,y,1/2)' - ] - } - } - }, - (46, 'abc'): { - 'IT_number': 46, - 'setting': 0, - 'IT_coordinate_system_code': 'abc', - 'name_H-M_alt': 'I m a 2', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'c': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z)', - '(x+1/2,-y,z)', - '(-x+1/2,y,z)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(1/4,y,z)', - '(3/4,-y,z)' - ] - }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,0,z)', - '(1/2,0,z)' - ] - } - } - }, - (46, 'ba-c'): { - 'IT_number': 46, - 'setting': 1, - 'IT_coordinate_system_code': 'ba-c', - 'name_H-M_alt': 'I b m 2', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'c': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z)', - '(-x,y+1/2,z)', - '(x,-y+1/2,z)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,1/4,z)', - '(-x,3/4,z)' - ] - }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,0,z)', - '(0,1/2,z)' - ] - } - } - }, - (46, 'cab'): { - 'IT_number': 46, - 'setting': 2, - 'IT_coordinate_system_code': 'cab', - 'name_H-M_alt': 'I 2 m b', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'c': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,-y,-z)', - '(x,y+1/2,-z)', - '(x,-y+1/2,z)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,1/4,z)', - '(x,3/4,-z)' - ] - }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,0,0)', - '(x,1/2,0)' - ] - } - } - }, - (46, '-cba'): { - 'IT_number': 46, - 'setting': 3, - 'IT_coordinate_system_code': '-cba', - 'name_H-M_alt': 'I 2 c m', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'c': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,-y,-z)', - '(x,-y,z+1/2)', - '(x,y,-z+1/2)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,y,1/4)', - '(x,-y,3/4)' - ] - }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,0,0)', - '(x,0,1/2)' - ] - } - } - }, - (46, 'bca'): { - 'IT_number': 46, - 'setting': 4, - 'IT_coordinate_system_code': 'bca', - 'name_H-M_alt': 'I c 2 m', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'c': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y,-z)', - '(-x,y,z+1/2)', - '(x,y,-z+1/2)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,y,1/4)', - '(-x,y,3/4)' - ] - }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,y,0)', - '(0,y,1/2)' - ] - } - } - }, - (46, 'a-cb'): { - 'IT_number': 46, - 'setting': 5, - 'IT_coordinate_system_code': 'a-cb', - 'name_H-M_alt': 'I m 2 a', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'c': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y,-z)', - '(x+1/2,y,-z)', - '(-x+1/2,y,z)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(1/4,y,z)', - '(3/4,y,-z)' - ] - }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,y,0)', - '(1/2,y,0)' - ] - } - } - }, - (47, 'abc'): { - 'IT_number': 47, - 'setting': 0, - 'IT_coordinate_system_code': 'abc', - 'name_H-M_alt': 'P m m m', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'A': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z)', - '(-x,y,-z)', - '(x,-y,-z)', - '(-x,-y,-z)', - '(x,y,-z)', - '(x,-y,z)', - '(-x,y,z)' - ] - }, - 'z': { - 'multiplicity': 4, - 'site_symmetry': '..m', - 'coords_xyz': [ - '(x,y,1/2)', - '(-x,-y,1/2)', - '(-x,y,1/2)', - '(x,-y,1/2)' - ] - }, - 'y': { - 'multiplicity': 4, - 'site_symmetry': '..m', - 'coords_xyz': [ - '(x,y,0)', - '(-x,-y,0)', - '(-x,y,0)', - '(x,-y,0)' - ] - }, - 'x': { - 'multiplicity': 4, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,1/2,z)', - '(-x,1/2,z)', - '(-x,1/2,-z)', - '(x,1/2,-z)' - ] - }, - 'w': { - 'multiplicity': 4, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,0,z)', - '(-x,0,z)', - '(-x,0,-z)', - '(x,0,-z)' - ] - }, - 'v': { - 'multiplicity': 4, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(1/2,y,z)', - '(1/2,-y,z)', - '(1/2,y,-z)', - '(1/2,-y,-z)' - ] - }, - 'u': { - 'multiplicity': 4, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(0,y,z)', - '(0,-y,z)', - '(0,y,-z)', - '(0,-y,-z)' - ] - }, - 't': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(1/2,1/2,z)', - '(1/2,1/2,-z)' - ] - }, - 's': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(1/2,0,z)', - '(1/2,0,-z)' - ] - }, - 'r': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(0,1/2,z)', - '(0,1/2,-z)' - ] - }, - 'q': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)' - ] - }, - 'p': { - 'multiplicity': 2, - 'site_symmetry': 'm2m', - 'coords_xyz': [ - '(1/2,y,1/2)', - '(1/2,-y,1/2)' - ] - }, - 'o': { - 'multiplicity': 2, - 'site_symmetry': 'm2m', - 'coords_xyz': [ - '(1/2,y,0)', - '(1/2,-y,0)' - ] - }, - 'n': { - 'multiplicity': 2, - 'site_symmetry': 'm2m', - 'coords_xyz': [ - '(0,y,1/2)', - '(0,-y,1/2)' - ] - }, - 'm': { - 'multiplicity': 2, - 'site_symmetry': 'm2m', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y,0)' - ] - }, - 'l': { - 'multiplicity': 2, - 'site_symmetry': '2mm', - 'coords_xyz': [ - '(x,1/2,1/2)', - '(-x,1/2,1/2)' - ] - }, - 'k': { - 'multiplicity': 2, - 'site_symmetry': '2mm', - 'coords_xyz': [ - '(x,1/2,0)', - '(-x,1/2,0)' - ] - }, - 'j': { - 'multiplicity': 2, - 'site_symmetry': '2mm', - 'coords_xyz': [ - '(x,0,1/2)', - '(-x,0,1/2)' - ] - }, - 'i': { - 'multiplicity': 2, - 'site_symmetry': '2mm', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)' - ] - }, - 'h': { - 'multiplicity': 1, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(1/2,1/2,1/2)' - ] - }, - 'g': { - 'multiplicity': 1, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(0,1/2,1/2)' - ] - }, - 'f': { - 'multiplicity': 1, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(1/2,1/2,0)' - ] - }, - 'e': { - 'multiplicity': 1, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(0,1/2,0)' - ] - }, - 'd': { - 'multiplicity': 1, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(1/2,0,1/2)' - ] - }, - 'c': { - 'multiplicity': 1, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(0,0,1/2)' - ] - }, - 'b': { - 'multiplicity': 1, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(1/2,0,0)' - ] - }, - 'a': { - 'multiplicity': 1, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } - }, - (47, 'ba-c'): { - 'IT_number': 47, - 'setting': 1, - 'IT_coordinate_system_code': 'ba-c', - 'name_H-M_alt': 'P m m m', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'A': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z)', - '(x,-y,-z)', - '(-x,y,-z)', - '(-x,-y,-z)', - '(x,y,-z)', - '(-x,y,z)', - '(x,-y,z)' - ] - }, - 'z': { - 'multiplicity': 4, - 'site_symmetry': '..m', - 'coords_xyz': [ - '(x,y,-1/2)', - '(-x,-y,-1/2)', - '(x,-y,-1/2)', - '(-x,y,-1/2)' - ] - }, - 'y': { - 'multiplicity': 4, - 'site_symmetry': '..m', - 'coords_xyz': [ - '(x,y,0)', - '(-x,-y,0)', - '(x,-y,0)', - '(-x,y,0)' - ] - }, - 'x': { - 'multiplicity': 4, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(1/2,y,z)', - '(1/2,-y,z)', - '(1/2,-y,-z)', - '(1/2,y,-z)' - ] - }, - 'w': { - 'multiplicity': 4, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(0,y,z)', - '(0,-y,z)', - '(0,-y,-z)', - '(0,y,-z)' - ] - }, - 'v': { - 'multiplicity': 4, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,1/2,z)', - '(-x,1/2,z)', - '(x,1/2,-z)', - '(-x,1/2,-z)' - ] - }, - 'u': { - 'multiplicity': 4, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,0,z)', - '(-x,0,z)', - '(x,0,-z)', - '(-x,0,-z)' - ] - }, - 't': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(1/2,1/2,z)', - '(1/2,1/2,-z)' - ] - }, - 's': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(0,1/2,z)', - '(0,1/2,-z)' - ] - }, - 'r': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(1/2,0,z)', - '(1/2,0,-z)' - ] - }, - 'q': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)' - ] - }, - 'p': { - 'multiplicity': 2, - 'site_symmetry': 'm2m', - 'coords_xyz': [ - '(x,1/2,-1/2)', - '(-x,1/2,-1/2)' - ] - }, - 'o': { - 'multiplicity': 2, - 'site_symmetry': 'm2m', - 'coords_xyz': [ - '(x,1/2,0)', - '(-x,1/2,0)' - ] - }, - 'n': { - 'multiplicity': 2, - 'site_symmetry': 'm2m', - 'coords_xyz': [ - '(x,0,-1/2)', - '(-x,0,-1/2)' - ] - }, - 'm': { - 'multiplicity': 2, - 'site_symmetry': 'm2m', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)' - ] - }, - 'l': { - 'multiplicity': 2, - 'site_symmetry': '2mm', - 'coords_xyz': [ - '(1/2,y,-1/2)', - '(1/2,-y,-1/2)' - ] - }, - 'k': { - 'multiplicity': 2, - 'site_symmetry': '2mm', - 'coords_xyz': [ - '(1/2,y,0)', - '(1/2,-y,0)' - ] - }, - 'j': { - 'multiplicity': 2, - 'site_symmetry': '2mm', - 'coords_xyz': [ - '(0,y,-1/2)', - '(0,-y,-1/2)' - ] - }, - 'i': { - 'multiplicity': 2, - 'site_symmetry': '2mm', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y,0)' - ] - }, - 'h': { - 'multiplicity': 1, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(1/2,1/2,-1/2)' - ] - }, - 'g': { - 'multiplicity': 1, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(1/2,0,-1/2)' - ] - }, - 'f': { - 'multiplicity': 1, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(1/2,1/2,0)' - ] - }, - 'e': { - 'multiplicity': 1, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(1/2,0,0)' - ] - }, - 'd': { - 'multiplicity': 1, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(0,1/2,-1/2)' - ] - }, - 'c': { - 'multiplicity': 1, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(0,0,-1/2)' - ] - }, - 'b': { - 'multiplicity': 1, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(0,1/2,0)' - ] - }, - 'a': { - 'multiplicity': 1, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } - }, - (47, 'cab'): { - 'IT_number': 47, - 'setting': 2, - 'IT_coordinate_system_code': 'cab', - 'name_H-M_alt': 'P m m m', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'A': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,-y,-z)', - '(-x,-y,z)', - '(-x,y,-z)', - '(-x,-y,-z)', - '(-x,y,z)', - '(x,y,-z)', - '(x,-y,z)' - ] - }, - 'z': { - 'multiplicity': 4, - 'site_symmetry': '..m', - 'coords_xyz': [ - '(1/2,y,z)', - '(1/2,-y,-z)', - '(1/2,-y,z)', - '(1/2,y,-z)' - ] - }, - 'y': { - 'multiplicity': 4, - 'site_symmetry': '..m', - 'coords_xyz': [ - '(0,y,z)', - '(0,-y,-z)', - '(0,-y,z)', - '(0,y,-z)' - ] - }, - 'x': { - 'multiplicity': 4, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,y,1/2)', - '(x,-y,1/2)', - '(-x,-y,1/2)', - '(-x,y,1/2)' - ] - }, - 'w': { - 'multiplicity': 4, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,y,0)', - '(x,-y,0)', - '(-x,-y,0)', - '(-x,y,0)' - ] - }, - 'v': { - 'multiplicity': 4, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,1/2,z)', - '(x,1/2,-z)', - '(-x,1/2,z)', - '(-x,1/2,-z)' - ] - }, - 'u': { - 'multiplicity': 4, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,0,z)', - '(x,0,-z)', - '(-x,0,z)', - '(-x,0,-z)' - ] - }, - 't': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(x,1/2,1/2)', - '(-x,1/2,1/2)' - ] - }, - 's': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(x,1/2,0)', - '(-x,1/2,0)' - ] - }, - 'r': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(x,0,1/2)', - '(-x,0,1/2)' - ] - }, - 'q': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)' - ] - }, - 'p': { - 'multiplicity': 2, - 'site_symmetry': 'm2m', - 'coords_xyz': [ - '(1/2,1/2,z)', - '(1/2,1/2,-z)' - ] - }, - 'o': { - 'multiplicity': 2, - 'site_symmetry': 'm2m', - 'coords_xyz': [ - '(0,1/2,z)', - '(0,1/2,-z)' - ] - }, - 'n': { - 'multiplicity': 2, - 'site_symmetry': 'm2m', - 'coords_xyz': [ - '(1/2,0,z)', - '(1/2,0,-z)' - ] - }, - 'm': { - 'multiplicity': 2, - 'site_symmetry': 'm2m', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)' - ] - }, - 'l': { - 'multiplicity': 2, - 'site_symmetry': '2mm', - 'coords_xyz': [ - '(1/2,y,1/2)', - '(1/2,-y,1/2)' - ] - }, - 'k': { - 'multiplicity': 2, - 'site_symmetry': '2mm', - 'coords_xyz': [ - '(0,y,1/2)', - '(0,-y,1/2)' - ] - }, - 'j': { - 'multiplicity': 2, - 'site_symmetry': '2mm', - 'coords_xyz': [ - '(1/2,y,0)', - '(1/2,-y,0)' - ] - }, - 'i': { - 'multiplicity': 2, - 'site_symmetry': '2mm', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y,0)' - ] - }, - 'h': { - 'multiplicity': 1, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(1/2,1/2,1/2)' - ] - }, - 'g': { - 'multiplicity': 1, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(1/2,0,1/2)' - ] - }, - 'f': { - 'multiplicity': 1, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(0,1/2,1/2)' - ] - }, - 'e': { - 'multiplicity': 1, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(0,0,1/2)' - ] - }, - 'd': { - 'multiplicity': 1, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(1/2,1/2,0)' - ] - }, - 'c': { - 'multiplicity': 1, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(1/2,0,0)' - ] - }, - 'b': { - 'multiplicity': 1, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(0,1/2,0)' - ] - }, - 'a': { - 'multiplicity': 1, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } - }, - (47, '-cba'): { - 'IT_number': 47, - 'setting': 3, - 'IT_coordinate_system_code': '-cba', - 'name_H-M_alt': 'P m m m', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'A': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,-y,-z)', - '(-x,y,-z)', - '(-x,-y,z)', - '(-x,-y,-z)', - '(-x,y,z)', - '(x,-y,z)', - '(x,y,-z)' - ] - }, - 'z': { - 'multiplicity': 4, - 'site_symmetry': '..m', - 'coords_xyz': [ - '(-1/2,y,z)', - '(-1/2,-y,-z)', - '(-1/2,y,-z)', - '(-1/2,-y,z)' - ] - }, - 'y': { - 'multiplicity': 4, - 'site_symmetry': '..m', - 'coords_xyz': [ - '(0,y,z)', - '(0,-y,-z)', - '(0,y,-z)', - '(0,-y,z)' - ] - }, - 'x': { - 'multiplicity': 4, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,1/2,z)', - '(x,1/2,-z)', - '(-x,1/2,-z)', - '(-x,1/2,z)' - ] - }, - 'w': { - 'multiplicity': 4, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,0,z)', - '(x,0,-z)', - '(-x,0,-z)', - '(-x,0,z)' - ] - }, - 'v': { - 'multiplicity': 4, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,y,1/2)', - '(x,-y,1/2)', - '(-x,y,1/2)', - '(-x,-y,1/2)' - ] - }, - 'u': { - 'multiplicity': 4, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,y,0)', - '(x,-y,0)', - '(-x,y,0)', - '(-x,-y,0)' - ] - }, - 't': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(x,1/2,1/2)', - '(-x,1/2,1/2)' - ] - }, - 's': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(x,0,1/2)', - '(-x,0,1/2)' - ] - }, - 'r': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(x,1/2,0)', - '(-x,1/2,0)' - ] - }, - 'q': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)' - ] - }, - 'p': { - 'multiplicity': 2, - 'site_symmetry': 'm2m', - 'coords_xyz': [ - '(-1/2,y,1/2)', - '(-1/2,-y,1/2)' - ] - }, - 'o': { - 'multiplicity': 2, - 'site_symmetry': 'm2m', - 'coords_xyz': [ - '(0,y,1/2)', - '(0,-y,1/2)' - ] - }, - 'n': { - 'multiplicity': 2, - 'site_symmetry': 'm2m', - 'coords_xyz': [ - '(-1/2,y,0)', - '(-1/2,-y,0)' - ] - }, - 'm': { - 'multiplicity': 2, - 'site_symmetry': 'm2m', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y,0)' - ] - }, - 'l': { - 'multiplicity': 2, - 'site_symmetry': '2mm', - 'coords_xyz': [ - '(-1/2,1/2,z)', - '(-1/2,1/2,-z)' - ] - }, - 'k': { - 'multiplicity': 2, - 'site_symmetry': '2mm', - 'coords_xyz': [ - '(0,1/2,z)', - '(0,1/2,-z)' - ] - }, - 'j': { - 'multiplicity': 2, - 'site_symmetry': '2mm', - 'coords_xyz': [ - '(-1/2,0,z)', - '(-1/2,0,-z)' - ] - }, - 'i': { - 'multiplicity': 2, - 'site_symmetry': '2mm', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)' - ] - }, - 'h': { - 'multiplicity': 1, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(-1/2,1/2,1/2)' - ] - }, - 'g': { - 'multiplicity': 1, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(-1/2,1/2,0)' - ] - }, - 'f': { - 'multiplicity': 1, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(0,1/2,1/2)' - ] - }, - 'e': { - 'multiplicity': 1, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(0,1/2,0)' - ] - }, - 'd': { - 'multiplicity': 1, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(-1/2,0,1/2)' - ] - }, - 'c': { - 'multiplicity': 1, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(-1/2,0,0)' - ] - }, - 'b': { - 'multiplicity': 1, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(0,0,1/2)' - ] - }, - 'a': { - 'multiplicity': 1, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } - }, - (47, 'bca'): { - 'IT_number': 47, - 'setting': 4, - 'IT_coordinate_system_code': 'bca', - 'name_H-M_alt': 'P m m m', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'A': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y,-z)', - '(x,-y,-z)', - '(-x,-y,z)', - '(-x,-y,-z)', - '(x,-y,z)', - '(-x,y,z)', - '(x,y,-z)' - ] - }, - 'z': { - 'multiplicity': 4, - 'site_symmetry': '..m', - 'coords_xyz': [ - '(x,1/2,z)', - '(-x,1/2,-z)', - '(x,1/2,-z)', - '(-x,1/2,z)' - ] - }, - 'y': { - 'multiplicity': 4, - 'site_symmetry': '..m', - 'coords_xyz': [ - '(x,0,z)', - '(-x,0,-z)', - '(x,0,-z)', - '(-x,0,z)' - ] - }, - 'x': { - 'multiplicity': 4, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(1/2,y,z)', - '(1/2,y,-z)', - '(1/2,-y,-z)', - '(1/2,-y,z)' - ] - }, - 'w': { - 'multiplicity': 4, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(0,y,z)', - '(0,y,-z)', - '(0,-y,-z)', - '(0,-y,z)' - ] - }, - 'v': { - 'multiplicity': 4, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,y,1/2)', - '(-x,y,1/2)', - '(x,-y,1/2)', - '(-x,-y,1/2)' - ] - }, - 'u': { - 'multiplicity': 4, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,y,0)', - '(-x,y,0)', - '(x,-y,0)', - '(-x,-y,0)' - ] - }, - 't': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(1/2,y,1/2)', - '(1/2,-y,1/2)' - ] - }, - 's': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(0,y,1/2)', - '(0,-y,1/2)' - ] - }, - 'r': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(1/2,y,0)', - '(1/2,-y,0)' - ] - }, - 'q': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y,0)' - ] - }, - 'p': { - 'multiplicity': 2, - 'site_symmetry': 'm2m', - 'coords_xyz': [ - '(x,1/2,1/2)', - '(-x,1/2,1/2)' - ] - }, - 'o': { - 'multiplicity': 2, - 'site_symmetry': 'm2m', - 'coords_xyz': [ - '(x,0,1/2)', - '(-x,0,1/2)' - ] - }, - 'n': { - 'multiplicity': 2, - 'site_symmetry': 'm2m', - 'coords_xyz': [ - '(x,1/2,0)', - '(-x,1/2,0)' - ] - }, - 'm': { - 'multiplicity': 2, - 'site_symmetry': 'm2m', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)' - ] - }, - 'l': { - 'multiplicity': 2, - 'site_symmetry': '2mm', - 'coords_xyz': [ - '(1/2,1/2,z)', - '(1/2,1/2,-z)' - ] - }, - 'k': { - 'multiplicity': 2, - 'site_symmetry': '2mm', - 'coords_xyz': [ - '(1/2,0,z)', - '(1/2,0,-z)' - ] - }, - 'j': { - 'multiplicity': 2, - 'site_symmetry': '2mm', - 'coords_xyz': [ - '(0,1/2,z)', - '(0,1/2,-z)' - ] - }, - 'i': { - 'multiplicity': 2, - 'site_symmetry': '2mm', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)' - ] - }, - 'h': { - 'multiplicity': 1, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(1/2,1/2,1/2)' - ] - }, - 'g': { - 'multiplicity': 1, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(1/2,1/2,0)' - ] - }, - 'f': { - 'multiplicity': 1, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(1/2,0,1/2)' - ] - }, - 'e': { - 'multiplicity': 1, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(1/2,0,0)' - ] - }, - 'd': { - 'multiplicity': 1, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(0,1/2,1/2)' - ] - }, - 'c': { - 'multiplicity': 1, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(0,1/2,0)' - ] - }, - 'b': { - 'multiplicity': 1, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(0,0,1/2)' - ] - }, - 'a': { - 'multiplicity': 1, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } - }, - (47, 'a-cb'): { - 'IT_number': 47, - 'setting': 5, - 'IT_coordinate_system_code': 'a-cb', - 'name_H-M_alt': 'P m m m', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'A': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y,-z)', - '(-x,-y,z)', - '(x,-y,-z)', - '(-x,-y,-z)', - '(x,-y,z)', - '(x,y,-z)', - '(-x,y,z)' - ] - }, - 'z': { - 'multiplicity': 4, - 'site_symmetry': '..m', - 'coords_xyz': [ - '(x,-1/2,z)', - '(-x,-1/2,-z)', - '(-x,-1/2,z)', - '(x,-1/2,-z)' - ] - }, - 'y': { - 'multiplicity': 4, - 'site_symmetry': '..m', - 'coords_xyz': [ - '(x,0,z)', - '(-x,0,-z)', - '(-x,0,z)', - '(x,0,-z)' - ] - }, - 'x': { - 'multiplicity': 4, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,y,1/2)', - '(-x,y,1/2)', - '(-x,-y,1/2)', - '(x,-y,1/2)' - ] - }, - 'w': { - 'multiplicity': 4, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,y,0)', - '(-x,y,0)', - '(-x,-y,0)', - '(x,-y,0)' - ] - }, - 'v': { - 'multiplicity': 4, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(1/2,y,z)', - '(1/2,y,-z)', - '(1/2,-y,z)', - '(1/2,-y,-z)' - ] - }, - 'u': { - 'multiplicity': 4, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(0,y,z)', - '(0,y,-z)', - '(0,-y,z)', - '(0,-y,-z)' - ] - }, - 't': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(1/2,y,1/2)', - '(1/2,-y,1/2)' - ] - }, - 's': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(1/2,y,0)', - '(1/2,-y,0)' - ] - }, - 'r': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(0,y,1/2)', - '(0,-y,1/2)' - ] - }, - 'q': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y,0)' - ] - }, - 'p': { - 'multiplicity': 2, - 'site_symmetry': 'm2m', - 'coords_xyz': [ - '(1/2,-1/2,z)', - '(1/2,-1/2,-z)' - ] - }, - 'o': { - 'multiplicity': 2, - 'site_symmetry': 'm2m', - 'coords_xyz': [ - '(1/2,0,z)', - '(1/2,0,-z)' - ] - }, - 'n': { - 'multiplicity': 2, - 'site_symmetry': 'm2m', - 'coords_xyz': [ - '(0,-1/2,z)', - '(0,-1/2,-z)' - ] - }, - 'm': { - 'multiplicity': 2, - 'site_symmetry': 'm2m', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)' - ] - }, - 'l': { - 'multiplicity': 2, - 'site_symmetry': '2mm', - 'coords_xyz': [ - '(x,-1/2,1/2)', - '(-x,-1/2,1/2)' - ] - }, - 'k': { - 'multiplicity': 2, - 'site_symmetry': '2mm', - 'coords_xyz': [ - '(x,0,1/2)', - '(-x,0,1/2)' - ] - }, - 'j': { - 'multiplicity': 2, - 'site_symmetry': '2mm', - 'coords_xyz': [ - '(x,-1/2,0)', - '(-x,-1/2,0)' - ] - }, - 'i': { - 'multiplicity': 2, - 'site_symmetry': '2mm', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)' - ] - }, - 'h': { - 'multiplicity': 1, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(1/2,-1/2,1/2)' - ] - }, - 'g': { - 'multiplicity': 1, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(0,-1/2,1/2)' - ] - }, - 'f': { - 'multiplicity': 1, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(1/2,0,1/2)' - ] - }, - 'e': { - 'multiplicity': 1, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(0,0,1/2)' - ] - }, - 'd': { - 'multiplicity': 1, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(1/2,-1/2,0)' - ] - }, - 'c': { - 'multiplicity': 1, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(0,-1/2,0)' - ] - }, - 'b': { - 'multiplicity': 1, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(1/2,0,0)' - ] - }, - 'a': { - 'multiplicity': 1, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } - }, - (48, '1abc'): { - 'IT_number': 48, - 'setting': 6, - 'IT_coordinate_system_code': '1abc', - 'name_H-M_alt': 'P n n n', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'm': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z)', - '(-x,y,-z)', - '(x,-y,-z)', - '(-x+1/2,-y+1/2,-z+1/2)', - '(x+1/2,y+1/2,-z+1/2)', - '(x+1/2,-y+1/2,z+1/2)', - '(-x+1/2,y+1/2,z+1/2)' - ] - }, - 'l': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,1/2,z)', - '(0,1/2,-z)', - '(1/2,0,-z+1/2)', - '(1/2,0,z+1/2)' - ] - }, - 'k': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)', - '(1/2,1/2,-z+1/2)', - '(1/2,1/2,z+1/2)' - ] - }, - 'j': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(1/2,y,0)', - '(1/2,-y,0)', - '(0,-y+1/2,1/2)', - '(0,y+1/2,1/2)' - ] - }, - 'i': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y,0)', - '(1/2,-y+1/2,1/2)', - '(1/2,y+1/2,1/2)' - ] - }, - 'h': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(x,0,1/2)', - '(-x,0,1/2)', - '(-x+1/2,1/2,0)', - '(x+1/2,1/2,0)' - ] - }, - 'g': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)', - '(-x+1/2,1/2,1/2)', - '(x+1/2,1/2,1/2)' - ] - }, - 'f': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(3/4,3/4,3/4)', - '(1/4,1/4,3/4)', - '(1/4,3/4,1/4)', - '(3/4,1/4,1/4)' - ] - }, - 'e': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/4,1/4,1/4)', - '(3/4,3/4,1/4)', - '(3/4,1/4,3/4)', - '(1/4,3/4,3/4)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,1/2,0)', - '(1/2,0,1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,1/2)', - '(1/2,1/2,0)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/2,0,0)', - '(0,1/2,1/2)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,1/2,1/2)' - ] - } - } - }, - (48, '2abc'): { - 'IT_number': 48, - 'setting': 12, - 'IT_coordinate_system_code': '2abc', - 'name_H-M_alt': 'P n n n', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'm': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x+1/2,-y+1/2,z)', - '(-x+1/2,y,-z+1/2)', - '(x,-y+1/2,-z+1/2)', - '(-x,-y,-z)', - '(x+1/2,y+1/2,-z)', - '(x+1/2,-y,z+1/2)', - '(-x,y+1/2,z+1/2)' - ] - }, - 'l': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/4,3/4,z)', - '(1/4,3/4,-z+1/2)', - '(3/4,1/4,-z)', - '(3/4,1/4,z+1/2)' - ] - }, - 'k': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/4,1/4,z)', - '(1/4,1/4,-z+1/2)', - '(3/4,3/4,-z)', - '(3/4,3/4,z+1/2)' - ] - }, - 'j': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(3/4,y,1/4)', - '(3/4,-y+1/2,1/4)', - '(1/4,-y,3/4)', - '(1/4,y+1/2,3/4)' - ] - }, - 'i': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(1/4,y,1/4)', - '(1/4,-y+1/2,1/4)', - '(3/4,-y,3/4)', - '(3/4,y+1/2,3/4)' - ] - }, - 'h': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(x,1/4,3/4)', - '(-x+1/2,1/4,3/4)', - '(-x,3/4,1/4)', - '(x+1/2,3/4,1/4)' - ] - }, - 'g': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(x,1/4,1/4)', - '(-x+1/2,1/4,1/4)', - '(-x,3/4,3/4)', - '(x+1/2,3/4,3/4)' - ] - }, - 'f': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,1/2,0)', - '(1/2,0,1/2)', - '(0,1/2,1/2)' - ] - }, - 'e': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/2,1/2,1/2)', - '(0,0,1/2)', - '(0,1/2,0)', - '(1/2,0,0)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/4,3/4,1/4)', - '(3/4,1/4,3/4)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/4,1/4,3/4)', - '(3/4,3/4,1/4)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(3/4,1/4,1/4)', - '(1/4,3/4,3/4)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/4,1/4,1/4)', - '(3/4,3/4,3/4)' - ] - } - } - }, - (48, '1ba-c'): { - 'IT_number': 48, - 'setting': 7, - 'IT_coordinate_system_code': '1ba-c', - 'name_H-M_alt': 'P n n n', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'm': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z)', - '(x,-y,-z)', - '(-x,y,-z)', - '(-x+1/2,-y+1/2,-z-1/2)', - '(x+1/2,y+1/2,-z-1/2)', - '(-x+1/2,y+1/2,z-1/2)', - '(x+1/2,-y+1/2,z-1/2)' - ] - }, - 'l': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/2,0,z)', - '(1/2,0,-z)', - '(0,1/2,-z-1/2)', - '(0,1/2,z-1/2)' - ] - }, - 'k': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)', - '(1/2,1/2,-z-1/2)', - '(1/2,1/2,z-1/2)' - ] - }, - 'j': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,1/2,0)', - '(-x,1/2,0)', - '(-x+1/2,0,-1/2)', - '(x+1/2,0,-1/2)' - ] - }, - 'i': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)', - '(-x+1/2,1/2,-1/2)', - '(x+1/2,1/2,-1/2)' - ] - }, - 'h': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,y,-1/2)', - '(0,-y,-1/2)', - '(1/2,-y+1/2,0)', - '(1/2,y+1/2,0)' - ] - }, - 'g': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y,0)', - '(1/2,-y+1/2,-1/2)', - '(1/2,y+1/2,-1/2)' - ] - }, - 'f': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(3/4,3/4,-3/4)', - '(1/4,1/4,-3/4)', - '(3/4,1/4,-1/4)', - '(1/4,3/4,-1/4)' - ] - }, - 'e': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/4,1/4,-1/4)', - '(3/4,3/4,-1/4)', - '(1/4,3/4,-3/4)', - '(3/4,1/4,-3/4)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/2,0,0)', - '(0,1/2,-1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,-1/2)', - '(1/2,1/2,0)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,1/2,0)', - '(1/2,0,-1/2)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,1/2,-1/2)' - ] - } - } - }, - (48, '2ba-c'): { - 'IT_number': 48, - 'setting': 13, - 'IT_coordinate_system_code': '2ba-c', - 'name_H-M_alt': 'P n n n', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'm': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x+1/2,-y+1/2,z)', - '(x,-y+1/2,-z-1/2)', - '(-x+1/2,y,-z-1/2)', - '(-x,-y,-z)', - '(x+1/2,y+1/2,-z)', - '(-x,y+1/2,z-1/2)', - '(x+1/2,-y,z-1/2)' - ] - }, - 'l': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(3/4,1/4,z)', - '(3/4,1/4,-z-1/2)', - '(1/4,3/4,-z)', - '(1/4,3/4,z-1/2)' - ] - }, - 'k': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/4,1/4,z)', - '(1/4,1/4,-z-1/2)', - '(3/4,3/4,-z)', - '(3/4,3/4,z-1/2)' - ] - }, - 'j': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,3/4,-1/4)', - '(-x+1/2,3/4,-1/4)', - '(-x,1/4,-3/4)', - '(x+1/2,1/4,-3/4)' - ] - }, - 'i': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,1/4,-1/4)', - '(-x+1/2,1/4,-1/4)', - '(-x,3/4,-3/4)', - '(x+1/2,3/4,-3/4)' - ] - }, - 'h': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(1/4,y,-3/4)', - '(1/4,-y+1/2,-3/4)', - '(3/4,-y,-1/4)', - '(3/4,y+1/2,-1/4)' - ] - }, - 'g': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(1/4,y,-1/4)', - '(1/4,-y+1/2,-1/4)', - '(3/4,-y,-3/4)', - '(3/4,y+1/2,-3/4)' - ] - }, - 'f': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,1/2,0)', - '(0,1/2,-1/2)', - '(1/2,0,-1/2)' - ] - }, - 'e': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/2,1/2,-1/2)', - '(0,0,-1/2)', - '(1/2,0,0)', - '(0,1/2,0)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(3/4,1/4,-1/4)', - '(1/4,3/4,-3/4)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/4,1/4,-3/4)', - '(3/4,3/4,-1/4)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/4,3/4,-1/4)', - '(3/4,1/4,-3/4)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/4,1/4,-1/4)', - '(3/4,3/4,-3/4)' - ] - } - } - }, - (48, '1cab'): { - 'IT_number': 48, - 'setting': 8, - 'IT_coordinate_system_code': '1cab', - 'name_H-M_alt': 'P n n n', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'm': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,-y,-z)', - '(-x,-y,z)', - '(-x,y,-z)', - '(-x+1/2,-y+1/2,-z+1/2)', - '(-x+1/2,y+1/2,z+1/2)', - '(x+1/2,y+1/2,-z+1/2)', - '(x+1/2,-y+1/2,z+1/2)' - ] - }, - 'l': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,0,1/2)', - '(-x,0,1/2)', - '(-x+1/2,1/2,0)', - '(x+1/2,1/2,0)' - ] - }, - 'k': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)', - '(-x+1/2,1/2,1/2)', - '(x+1/2,1/2,1/2)' - ] - }, - 'j': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(0,1/2,z)', - '(0,1/2,-z)', - '(1/2,0,-z+1/2)', - '(1/2,0,z+1/2)' - ] - }, - 'i': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)', - '(1/2,1/2,-z+1/2)', - '(1/2,1/2,z+1/2)' - ] - }, - 'h': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(1/2,y,0)', - '(1/2,-y,0)', - '(0,-y+1/2,1/2)', - '(0,y+1/2,1/2)' - ] - }, - 'g': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y,0)', - '(1/2,-y+1/2,1/2)', - '(1/2,y+1/2,1/2)' - ] - }, - 'f': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(3/4,3/4,3/4)', - '(3/4,1/4,1/4)', - '(1/4,1/4,3/4)', - '(1/4,3/4,1/4)' - ] - }, - 'e': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/4,1/4,1/4)', - '(1/4,3/4,3/4)', - '(3/4,3/4,1/4)', - '(3/4,1/4,3/4)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,1/2)', - '(1/2,1/2,0)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/2,0,0)', - '(0,1/2,1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,1/2,0)', - '(1/2,0,1/2)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,1/2,1/2)' - ] - } - } - }, - (48, '2cab'): { - 'IT_number': 48, - 'setting': 14, - 'IT_coordinate_system_code': '2cab', - 'name_H-M_alt': 'P n n n', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'm': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,-y+1/2,-z+1/2)', - '(-x+1/2,-y+1/2,z)', - '(-x+1/2,y,-z+1/2)', - '(-x,-y,-z)', - '(-x,y+1/2,z+1/2)', - '(x+1/2,y+1/2,-z)', - '(x+1/2,-y,z+1/2)' - ] - }, - 'l': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,1/4,3/4)', - '(-x+1/2,1/4,3/4)', - '(-x,3/4,1/4)', - '(x+1/2,3/4,1/4)' - ] - }, - 'k': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,1/4,1/4)', - '(-x+1/2,1/4,1/4)', - '(-x,3/4,3/4)', - '(x+1/2,3/4,3/4)' - ] - }, - 'j': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(1/4,3/4,z)', - '(1/4,3/4,-z+1/2)', - '(3/4,1/4,-z)', - '(3/4,1/4,z+1/2)' - ] - }, - 'i': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(1/4,1/4,z)', - '(1/4,1/4,-z+1/2)', - '(3/4,3/4,-z)', - '(3/4,3/4,z+1/2)' - ] - }, - 'h': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(3/4,y,1/4)', - '(3/4,-y+1/2,1/4)', - '(1/4,-y,3/4)', - '(1/4,y+1/2,3/4)' - ] - }, - 'g': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(1/4,y,1/4)', - '(1/4,-y+1/2,1/4)', - '(3/4,-y,3/4)', - '(3/4,y+1/2,3/4)' - ] - }, - 'f': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(0,1/2,1/2)', - '(1/2,1/2,0)', - '(1/2,0,1/2)' - ] - }, - 'e': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/2,1/2,1/2)', - '(1/2,0,0)', - '(0,0,1/2)', - '(0,1/2,0)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/4,1/4,3/4)', - '(3/4,3/4,1/4)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(3/4,1/4,1/4)', - '(1/4,3/4,3/4)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/4,3/4,1/4)', - '(3/4,1/4,3/4)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/4,1/4,1/4)', - '(3/4,3/4,3/4)' - ] - } - } - }, - (48, '1-cba'): { - 'IT_number': 48, - 'setting': 9, - 'IT_coordinate_system_code': '1-cba', - 'name_H-M_alt': 'P n n n', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'm': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,-y,-z)', - '(-x,y,-z)', - '(-x,-y,z)', - '(-x-1/2,-y+1/2,-z+1/2)', - '(-x-1/2,y+1/2,z+1/2)', - '(x-1/2,-y+1/2,z+1/2)', - '(x-1/2,y+1/2,-z+1/2)' - ] - }, - 'l': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,1/2,0)', - '(-x,1/2,0)', - '(-x-1/2,0,1/2)', - '(x-1/2,0,1/2)' - ] - }, - 'k': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)', - '(-x-1/2,1/2,1/2)', - '(x-1/2,1/2,1/2)' - ] - }, - 'j': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(0,y,1/2)', - '(0,-y,1/2)', - '(-1/2,-y+1/2,0)', - '(-1/2,y+1/2,0)' - ] - }, - 'i': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y,0)', - '(-1/2,-y+1/2,1/2)', - '(-1/2,y+1/2,1/2)' - ] - }, - 'h': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(-1/2,0,z)', - '(-1/2,0,-z)', - '(0,1/2,-z+1/2)', - '(0,1/2,z+1/2)' - ] - }, - 'g': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)', - '(-1/2,1/2,-z+1/2)', - '(-1/2,1/2,z+1/2)' - ] - }, - 'f': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(-3/4,3/4,3/4)', - '(-3/4,1/4,1/4)', - '(-1/4,3/4,1/4)', - '(-1/4,1/4,3/4)' - ] - }, - 'e': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(-1/4,1/4,1/4)', - '(-1/4,3/4,3/4)', - '(-3/4,1/4,3/4)', - '(-3/4,3/4,1/4)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,1/2,0)', - '(-1/2,0,1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(-1/2,0,0)', - '(0,1/2,1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,1/2)', - '(-1/2,1/2,0)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,0)', - '(-1/2,1/2,1/2)' - ] - } - } - }, - (48, '2-cba'): { - 'IT_number': 48, - 'setting': 15, - 'IT_coordinate_system_code': '2-cba', - 'name_H-M_alt': 'P n n n', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'm': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,-y+1/2,-z+1/2)', - '(-x-1/2,y,-z+1/2)', - '(-x-1/2,-y+1/2,z)', - '(-x,-y,-z)', - '(-x,y+1/2,z+1/2)', - '(x-1/2,-y,z+1/2)', - '(x-1/2,y+1/2,-z)' - ] - }, - 'l': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,3/4,1/4)', - '(-x-1/2,3/4,1/4)', - '(-x,1/4,3/4)', - '(x-1/2,1/4,3/4)' - ] - }, - 'k': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,1/4,1/4)', - '(-x-1/2,1/4,1/4)', - '(-x,3/4,3/4)', - '(x-1/2,3/4,3/4)' - ] - }, - 'j': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(-1/4,y,3/4)', - '(-1/4,-y+1/2,3/4)', - '(-3/4,-y,1/4)', - '(-3/4,y+1/2,1/4)' - ] - }, - 'i': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(-1/4,y,1/4)', - '(-1/4,-y+1/2,1/4)', - '(-3/4,-y,3/4)', - '(-3/4,y+1/2,3/4)' - ] - }, - 'h': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(-3/4,1/4,z)', - '(-3/4,1/4,-z+1/2)', - '(-1/4,3/4,-z)', - '(-1/4,3/4,z+1/2)' - ] - }, - 'g': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(-1/4,1/4,z)', - '(-1/4,1/4,-z+1/2)', - '(-3/4,3/4,-z)', - '(-3/4,3/4,z+1/2)' - ] - }, - 'f': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(0,1/2,1/2)', - '(-1/2,0,1/2)', - '(-1/2,1/2,0)' - ] - }, - 'e': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(-1/2,1/2,1/2)', - '(-1/2,0,0)', - '(0,1/2,0)', - '(0,0,1/2)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(-1/4,3/4,1/4)', - '(-3/4,1/4,3/4)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(-3/4,1/4,1/4)', - '(-1/4,3/4,3/4)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(-1/4,1/4,3/4)', - '(-3/4,3/4,1/4)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(-1/4,1/4,1/4)', - '(-3/4,3/4,3/4)' - ] - } - } - }, - (48, '1bca'): { - 'IT_number': 48, - 'setting': 10, - 'IT_coordinate_system_code': '1bca', - 'name_H-M_alt': 'P n n n', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'm': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y,-z)', - '(x,-y,-z)', - '(-x,-y,z)', - '(-x+1/2,-y+1/2,-z+1/2)', - '(x+1/2,-y+1/2,z+1/2)', - '(-x+1/2,y+1/2,z+1/2)', - '(x+1/2,y+1/2,-z+1/2)' - ] - }, - 'l': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/2,y,0)', - '(1/2,-y,0)', - '(0,-y+1/2,1/2)', - '(0,y+1/2,1/2)' - ] - }, - 'k': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y,0)', - '(1/2,-y+1/2,1/2)', - '(1/2,y+1/2,1/2)' - ] - }, - 'j': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,0,1/2)', - '(-x,0,1/2)', - '(-x+1/2,1/2,0)', - '(x+1/2,1/2,0)' - ] - }, - 'i': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)', - '(-x+1/2,1/2,1/2)', - '(x+1/2,1/2,1/2)' - ] - }, - 'h': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,1/2,z)', - '(0,1/2,-z)', - '(1/2,0,-z+1/2)', - '(1/2,0,z+1/2)' - ] - }, - 'g': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)', - '(1/2,1/2,-z+1/2)', - '(1/2,1/2,z+1/2)' - ] - }, - 'f': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(3/4,3/4,3/4)', - '(1/4,3/4,1/4)', - '(3/4,1/4,1/4)', - '(1/4,1/4,3/4)' - ] - }, - 'e': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/4,1/4,1/4)', - '(3/4,1/4,3/4)', - '(1/4,3/4,3/4)', - '(3/4,3/4,1/4)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/2,0,0)', - '(0,1/2,1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,1/2,0)', - '(1/2,0,1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,1/2)', - '(1/2,1/2,0)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,1/2,1/2)' - ] - } - } - }, - (48, '2bca'): { - 'IT_number': 48, - 'setting': 16, - 'IT_coordinate_system_code': '2bca', - 'name_H-M_alt': 'P n n n', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'm': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x+1/2,y,-z+1/2)', - '(x,-y+1/2,-z+1/2)', - '(-x+1/2,-y+1/2,z)', - '(-x,-y,-z)', - '(x+1/2,-y,z+1/2)', - '(-x,y+1/2,z+1/2)', - '(x+1/2,y+1/2,-z)' - ] - }, - 'l': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(3/4,y,1/4)', - '(3/4,-y+1/2,1/4)', - '(1/4,-y,3/4)', - '(1/4,y+1/2,3/4)' - ] - }, - 'k': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/4,y,1/4)', - '(1/4,-y+1/2,1/4)', - '(3/4,-y,3/4)', - '(3/4,y+1/2,3/4)' - ] - }, - 'j': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,1/4,3/4)', - '(-x+1/2,1/4,3/4)', - '(-x,3/4,1/4)', - '(x+1/2,3/4,1/4)' - ] - }, - 'i': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,1/4,1/4)', - '(-x+1/2,1/4,1/4)', - '(-x,3/4,3/4)', - '(x+1/2,3/4,3/4)' - ] - }, - 'h': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(1/4,3/4,z)', - '(1/4,3/4,-z+1/2)', - '(3/4,1/4,-z)', - '(3/4,1/4,z+1/2)' - ] - }, - 'g': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(1/4,1/4,z)', - '(1/4,1/4,-z+1/2)', - '(3/4,3/4,-z)', - '(3/4,3/4,z+1/2)' - ] - }, - 'f': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,0,1/2)', - '(0,1/2,1/2)', - '(1/2,1/2,0)' - ] - }, - 'e': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/2,1/2,1/2)', - '(0,1/2,0)', - '(1/2,0,0)', - '(0,0,1/2)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(3/4,1/4,1/4)', - '(1/4,3/4,3/4)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/4,3/4,1/4)', - '(3/4,1/4,3/4)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/4,1/4,3/4)', - '(3/4,3/4,1/4)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/4,1/4,1/4)', - '(3/4,3/4,3/4)' - ] - } - } - }, - (48, '2a-cb'): { - 'IT_number': 48, - 'setting': 17, - 'IT_coordinate_system_code': '2a-cb', - 'name_H-M_alt': 'P n n n', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'm': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x+1/2,y,-z+1/2)', - '(-x+1/2,-y-1/2,z)', - '(x,-y-1/2,-z+1/2)', - '(-x,-y,-z)', - '(x+1/2,-y,z+1/2)', - '(x+1/2,y-1/2,-z)', - '(-x,y-1/2,z+1/2)' - ] - }, - 'l': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/4,y,3/4)', - '(1/4,-y-1/2,3/4)', - '(3/4,-y,1/4)', - '(3/4,y-1/2,1/4)' - ] - }, - 'k': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/4,y,1/4)', - '(1/4,-y-1/2,1/4)', - '(3/4,-y,3/4)', - '(3/4,y-1/2,3/4)' - ] - }, - 'j': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(3/4,-1/4,z)', - '(3/4,-1/4,-z+1/2)', - '(1/4,-3/4,-z)', - '(1/4,-3/4,z+1/2)' - ] - }, - 'i': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(1/4,-1/4,z)', - '(1/4,-1/4,-z+1/2)', - '(3/4,-3/4,-z)', - '(3/4,-3/4,z+1/2)' - ] - }, - 'h': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(x,-3/4,1/4)', - '(-x+1/2,-3/4,1/4)', - '(-x,-1/4,3/4)', - '(x+1/2,-1/4,3/4)' - ] - }, - 'g': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(x,-1/4,1/4)', - '(-x+1/2,-1/4,1/4)', - '(-x,-3/4,3/4)', - '(x+1/2,-3/4,3/4)' - ] - }, - 'f': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,0,1/2)', - '(1/2,-1/2,0)', - '(0,-1/2,1/2)' - ] - }, - 'e': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/2,-1/2,1/2)', - '(0,-1/2,0)', - '(0,0,1/2)', - '(1/2,0,0)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/4,-1/4,3/4)', - '(3/4,-3/4,1/4)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/4,-3/4,1/4)', - '(3/4,-1/4,3/4)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(3/4,-1/4,1/4)', - '(1/4,-3/4,3/4)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/4,-1/4,1/4)', - '(3/4,-3/4,3/4)' - ] - } - } - }, - (49, 'abc'): { - 'IT_number': 49, - 'setting': 0, - 'IT_coordinate_system_code': 'abc', - 'name_H-M_alt': 'P c c m', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'r': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z)', - '(-x,y,-z+1/2)', - '(x,-y,-z+1/2)', - '(-x,-y,-z)', - '(x,y,-z)', - '(x,-y,z+1/2)', - '(-x,y,z+1/2)' - ] - }, - 'q': { - 'multiplicity': 4, - 'site_symmetry': '..m', - 'coords_xyz': [ - '(x,y,0)', - '(-x,-y,0)', - '(-x,y,1/2)', - '(x,-y,1/2)' - ] - }, - 'p': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/2,0,z)', - '(1/2,0,-z+1/2)', - '(1/2,0,-z)', - '(1/2,0,z+1/2)' - ] - }, - 'o': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,1/2,z)', - '(0,1/2,-z+1/2)', - '(0,1/2,-z)', - '(0,1/2,z+1/2)' - ] - }, - 'n': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/2,1/2,z)', - '(1/2,1/2,-z+1/2)', - '(1/2,1/2,-z)', - '(1/2,1/2,z+1/2)' - ] - }, - 'm': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z+1/2)', - '(0,0,-z)', - '(0,0,z+1/2)' - ] - }, - 'l': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(1/2,y,1/4)', - '(1/2,-y,1/4)', - '(1/2,-y,3/4)', - '(1/2,y,3/4)' - ] - }, - 'k': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(0,y,1/4)', - '(0,-y,1/4)', - '(0,-y,3/4)', - '(0,y,3/4)' - ] - }, - 'j': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(x,1/2,1/4)', - '(-x,1/2,1/4)', - '(-x,1/2,3/4)', - '(x,1/2,3/4)' - ] - }, - 'i': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(x,0,1/4)', - '(-x,0,1/4)', - '(-x,0,3/4)', - '(x,0,3/4)' - ] - }, - 'h': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/2,1/2,1/4)', - '(1/2,1/2,3/4)' - ] - }, - 'g': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,1/2,1/4)', - '(0,1/2,3/4)' - ] - }, - 'f': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/2,0,1/4)', - '(1/2,0,3/4)' - ] - }, - 'e': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,1/4)', - '(0,0,3/4)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(1/2,0,0)', - '(1/2,0,1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(0,1/2,0)', - '(0,1/2,1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(1/2,1/2,0)', - '(1/2,1/2,1/2)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(0,0,0)', - '(0,0,1/2)' - ] - } - } - }, - (49, 'ba-c'): { - 'IT_number': 49, - 'setting': 1, - 'IT_coordinate_system_code': 'ba-c', - 'name_H-M_alt': 'P c c m', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'r': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z)', - '(x,-y,-z-1/2)', - '(-x,y,-z-1/2)', - '(-x,-y,-z)', - '(x,y,-z)', - '(-x,y,z-1/2)', - '(x,-y,z-1/2)' - ] - }, - 'q': { - 'multiplicity': 4, - 'site_symmetry': '..m', - 'coords_xyz': [ - '(x,y,0)', - '(-x,-y,0)', - '(x,-y,-1/2)', - '(-x,y,-1/2)' - ] - }, - 'p': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,1/2,z)', - '(0,1/2,-z-1/2)', - '(0,1/2,-z)', - '(0,1/2,z-1/2)' - ] - }, - 'o': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/2,0,z)', - '(1/2,0,-z-1/2)', - '(1/2,0,-z)', - '(1/2,0,z-1/2)' - ] - }, - 'n': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/2,1/2,z)', - '(1/2,1/2,-z-1/2)', - '(1/2,1/2,-z)', - '(1/2,1/2,z-1/2)' - ] - }, - 'm': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z-1/2)', - '(0,0,-z)', - '(0,0,z-1/2)' - ] - }, - 'l': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,1/2,-1/4)', - '(-x,1/2,-1/4)', - '(-x,1/2,-3/4)', - '(x,1/2,-3/4)' - ] - }, - 'k': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,0,-1/4)', - '(-x,0,-1/4)', - '(-x,0,-3/4)', - '(x,0,-3/4)' - ] - }, - 'j': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(1/2,y,-1/4)', - '(1/2,-y,-1/4)', - '(1/2,-y,-3/4)', - '(1/2,y,-3/4)' - ] - }, - 'i': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,y,-1/4)', - '(0,-y,-1/4)', - '(0,-y,-3/4)', - '(0,y,-3/4)' - ] - }, - 'h': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/2,1/2,-1/4)', - '(1/2,1/2,-3/4)' - ] - }, - 'g': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/2,0,-1/4)', - '(1/2,0,-3/4)' - ] - }, - 'f': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,1/2,-1/4)', - '(0,1/2,-3/4)' - ] - }, - 'e': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,-1/4)', - '(0,0,-3/4)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(0,1/2,0)', - '(0,1/2,-1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(1/2,0,0)', - '(1/2,0,-1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(1/2,1/2,0)', - '(1/2,1/2,-1/2)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(0,0,0)', - '(0,0,-1/2)' - ] - } - } - }, - (49, 'cab'): { - 'IT_number': 49, - 'setting': 2, - 'IT_coordinate_system_code': 'cab', - 'name_H-M_alt': 'P m a a', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'r': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,-y,-z)', - '(-x+1/2,-y,z)', - '(-x+1/2,y,-z)', - '(-x,-y,-z)', - '(-x,y,z)', - '(x+1/2,y,-z)', - '(x+1/2,-y,z)' - ] - }, - 'q': { - 'multiplicity': 4, - 'site_symmetry': '..m', - 'coords_xyz': [ - '(0,y,z)', - '(0,-y,-z)', - '(1/2,-y,z)', - '(1/2,y,-z)' - ] - }, - 'p': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,1/2,0)', - '(-x+1/2,1/2,0)', - '(-x,1/2,0)', - '(x+1/2,1/2,0)' - ] - }, - 'o': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,0,1/2)', - '(-x+1/2,0,1/2)', - '(-x,0,1/2)', - '(x+1/2,0,1/2)' - ] - }, - 'n': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,1/2,1/2)', - '(-x+1/2,1/2,1/2)', - '(-x,1/2,1/2)', - '(x+1/2,1/2,1/2)' - ] - }, - 'm': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,0,0)', - '(-x+1/2,0,0)', - '(-x,0,0)', - '(x+1/2,0,0)' - ] - }, - 'l': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(1/4,1/2,z)', - '(1/4,1/2,-z)', - '(3/4,1/2,-z)', - '(3/4,1/2,z)' - ] - }, - 'k': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(1/4,0,z)', - '(1/4,0,-z)', - '(3/4,0,-z)', - '(3/4,0,z)' - ] - }, - 'j': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(1/4,y,1/2)', - '(1/4,-y,1/2)', - '(3/4,-y,1/2)', - '(3/4,y,1/2)' - ] - }, - 'i': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(1/4,y,0)', - '(1/4,-y,0)', - '(3/4,-y,0)', - '(3/4,y,0)' - ] - }, - 'h': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/4,1/2,1/2)', - '(3/4,1/2,1/2)' - ] - }, - 'g': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/4,0,1/2)', - '(3/4,0,1/2)' - ] - }, - 'f': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/4,1/2,0)', - '(3/4,1/2,0)' - ] - }, - 'e': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/4,0,0)', - '(3/4,0,0)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(0,1/2,0)', - '(1/2,1/2,0)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(0,0,1/2)', - '(1/2,0,1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(0,1/2,1/2)', - '(1/2,1/2,1/2)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,0,0)' - ] - } - } - }, - (49, '-cba'): { - 'IT_number': 49, - 'setting': 3, - 'IT_coordinate_system_code': '-cba', - 'name_H-M_alt': 'P m a a', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'r': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,-y,-z)', - '(-x-1/2,y,-z)', - '(-x-1/2,-y,z)', - '(-x,-y,-z)', - '(-x,y,z)', - '(x-1/2,-y,z)', - '(x-1/2,y,-z)' - ] - }, - 'q': { - 'multiplicity': 4, - 'site_symmetry': '..m', - 'coords_xyz': [ - '(0,y,z)', - '(0,-y,-z)', - '(-1/2,y,-z)', - '(-1/2,-y,z)' - ] - }, - 'p': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,0,1/2)', - '(-x-1/2,0,1/2)', - '(-x,0,1/2)', - '(x-1/2,0,1/2)' - ] - }, - 'o': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,1/2,0)', - '(-x-1/2,1/2,0)', - '(-x,1/2,0)', - '(x-1/2,1/2,0)' - ] - }, - 'n': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,1/2,1/2)', - '(-x-1/2,1/2,1/2)', - '(-x,1/2,1/2)', - '(x-1/2,1/2,1/2)' - ] - }, - 'm': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,0,0)', - '(-x-1/2,0,0)', - '(-x,0,0)', - '(x-1/2,0,0)' - ] - }, - 'l': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(-1/4,y,1/2)', - '(-1/4,-y,1/2)', - '(-3/4,-y,1/2)', - '(-3/4,y,1/2)' - ] - }, - 'k': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(-1/4,y,0)', - '(-1/4,-y,0)', - '(-3/4,-y,0)', - '(-3/4,y,0)' - ] - }, - 'j': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(-1/4,1/2,z)', - '(-1/4,1/2,-z)', - '(-3/4,1/2,-z)', - '(-3/4,1/2,z)' - ] - }, - 'i': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(-1/4,0,z)', - '(-1/4,0,-z)', - '(-3/4,0,-z)', - '(-3/4,0,z)' - ] - }, - 'h': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(-1/4,1/2,1/2)', - '(-3/4,1/2,1/2)' - ] - }, - 'g': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(-1/4,1/2,0)', - '(-3/4,1/2,0)' - ] - }, - 'f': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(-1/4,0,1/2)', - '(-3/4,0,1/2)' - ] - }, - 'e': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(-1/4,0,0)', - '(-3/4,0,0)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(0,0,1/2)', - '(-1/2,0,1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(0,1/2,0)', - '(-1/2,1/2,0)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(0,1/2,1/2)', - '(-1/2,1/2,1/2)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(0,0,0)', - '(-1/2,0,0)' - ] - } - } - }, - (49, 'bca'): { - 'IT_number': 49, - 'setting': 4, - 'IT_coordinate_system_code': 'bca', - 'name_H-M_alt': 'P b m b', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'r': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y,-z)', - '(x,-y+1/2,-z)', - '(-x,-y+1/2,z)', - '(-x,-y,-z)', - '(x,-y,z)', - '(-x,y+1/2,z)', - '(x,y+1/2,-z)' - ] - }, - 'q': { - 'multiplicity': 4, - 'site_symmetry': '..m', - 'coords_xyz': [ - '(x,0,z)', - '(-x,0,-z)', - '(x,1/2,-z)', - '(-x,1/2,z)' - ] - }, - 'p': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,y,1/2)', - '(0,-y+1/2,1/2)', - '(0,-y,1/2)', - '(0,y+1/2,1/2)' - ] - }, - 'o': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/2,y,0)', - '(1/2,-y+1/2,0)', - '(1/2,-y,0)', - '(1/2,y+1/2,0)' - ] - }, - 'n': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/2,y,1/2)', - '(1/2,-y+1/2,1/2)', - '(1/2,-y,1/2)', - '(1/2,y+1/2,1/2)' - ] - }, - 'm': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y+1/2,0)', - '(0,-y,0)', - '(0,y+1/2,0)' - ] - }, - 'l': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,1/4,1/2)', - '(-x,1/4,1/2)', - '(-x,3/4,1/2)', - '(x,3/4,1/2)' - ] - }, - 'k': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,1/4,0)', - '(-x,1/4,0)', - '(-x,3/4,0)', - '(x,3/4,0)' - ] - }, - 'j': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(1/2,1/4,z)', - '(1/2,1/4,-z)', - '(1/2,3/4,-z)', - '(1/2,3/4,z)' - ] - }, - 'i': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,1/4,z)', - '(0,1/4,-z)', - '(0,3/4,-z)', - '(0,3/4,z)' - ] - }, - 'h': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/2,1/4,1/2)', - '(1/2,3/4,1/2)' - ] - }, - 'g': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/2,1/4,0)', - '(1/2,3/4,0)' - ] - }, - 'f': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,1/4,1/2)', - '(0,3/4,1/2)' - ] - }, - 'e': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,1/4,0)', - '(0,3/4,0)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(0,0,1/2)', - '(0,1/2,1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(1/2,0,0)', - '(1/2,1/2,0)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(1/2,0,1/2)', - '(1/2,1/2,1/2)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(0,0,0)', - '(0,1/2,0)' - ] - } - } - }, - (49, 'a-cb'): { - 'IT_number': 49, - 'setting': 5, - 'IT_coordinate_system_code': 'a-cb', - 'name_H-M_alt': 'P b m b', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'r': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y,-z)', - '(-x,-y-1/2,z)', - '(x,-y-1/2,-z)', - '(-x,-y,-z)', - '(x,-y,z)', - '(x,y-1/2,-z)', - '(-x,y-1/2,z)' - ] - }, - 'q': { - 'multiplicity': 4, - 'site_symmetry': '..m', - 'coords_xyz': [ - '(x,0,z)', - '(-x,0,-z)', - '(-x,-1/2,z)', - '(x,-1/2,-z)' - ] - }, - 'p': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/2,y,0)', - '(1/2,-y-1/2,0)', - '(1/2,-y,0)', - '(1/2,y-1/2,0)' - ] - }, - 'o': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,y,1/2)', - '(0,-y-1/2,1/2)', - '(0,-y,1/2)', - '(0,y-1/2,1/2)' - ] - }, - 'n': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/2,y,1/2)', - '(1/2,-y-1/2,1/2)', - '(1/2,-y,1/2)', - '(1/2,y-1/2,1/2)' - ] - }, - 'm': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y-1/2,0)', - '(0,-y,0)', - '(0,y-1/2,0)' - ] - }, - 'l': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(1/2,-1/4,z)', - '(1/2,-1/4,-z)', - '(1/2,-3/4,-z)', - '(1/2,-3/4,z)' - ] - }, - 'k': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(0,-1/4,z)', - '(0,-1/4,-z)', - '(0,-3/4,-z)', - '(0,-3/4,z)' - ] - }, - 'j': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(x,-1/4,1/2)', - '(-x,-1/4,1/2)', - '(-x,-3/4,1/2)', - '(x,-3/4,1/2)' - ] - }, - 'i': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(x,-1/4,0)', - '(-x,-1/4,0)', - '(-x,-3/4,0)', - '(x,-3/4,0)' - ] - }, - 'h': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/2,-1/4,1/2)', - '(1/2,-3/4,1/2)' - ] - }, - 'g': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,-1/4,1/2)', - '(0,-3/4,1/2)' - ] - }, - 'f': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/2,-1/4,0)', - '(1/2,-3/4,0)' - ] - }, - 'e': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,-1/4,0)', - '(0,-3/4,0)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(1/2,0,0)', - '(1/2,-1/2,0)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(0,0,1/2)', - '(0,-1/2,1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(1/2,0,1/2)', - '(1/2,-1/2,1/2)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(0,0,0)', - '(0,-1/2,0)' - ] - } - } - }, - (50, '1abc'): { - 'IT_number': 50, - 'setting': 6, - 'IT_coordinate_system_code': '1abc', - 'name_H-M_alt': 'P b a n', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'm': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z)', - '(-x,y,-z)', - '(x,-y,-z)', - '(-x+1/2,-y+1/2,-z)', - '(x+1/2,y+1/2,-z)', - '(x+1/2,-y+1/2,z)', - '(-x+1/2,y+1/2,z)' - ] - }, - 'l': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,1/2,z)', - '(0,1/2,-z)', - '(1/2,0,-z)', - '(1/2,0,z)' - ] - }, - 'k': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)', - '(1/2,1/2,-z)', - '(1/2,1/2,z)' - ] - }, - 'j': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(0,y,1/2)', - '(0,-y,1/2)', - '(1/2,-y+1/2,1/2)', - '(1/2,y+1/2,1/2)' - ] - }, - 'i': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y,0)', - '(1/2,-y+1/2,0)', - '(1/2,y+1/2,0)' - ] - }, - 'h': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(x,0,1/2)', - '(-x,0,1/2)', - '(-x+1/2,1/2,1/2)', - '(x+1/2,1/2,1/2)' - ] - }, - 'g': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)', - '(-x+1/2,1/2,0)', - '(x+1/2,1/2,0)' - ] - }, - 'f': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/4,1/4,1/2)', - '(3/4,3/4,1/2)', - '(3/4,1/4,1/2)', - '(1/4,3/4,1/2)' - ] - }, - 'e': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/4,1/4,0)', - '(3/4,3/4,0)', - '(3/4,1/4,0)', - '(1/4,3/4,0)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,1/2)', - '(1/2,1/2,1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/2,0,1/2)', - '(0,1/2,1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/2,0,0)', - '(0,1/2,0)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,1/2,0)' - ] - } - } - }, - (50, '2abc'): { - 'IT_number': 50, - 'setting': 12, - 'IT_coordinate_system_code': '2abc', - 'name_H-M_alt': 'P b a n', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'm': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x+1/2,-y+1/2,z)', - '(-x+1/2,y,-z)', - '(x,-y+1/2,-z)', - '(-x,-y,-z)', - '(x+1/2,y+1/2,-z)', - '(x+1/2,-y,z)', - '(-x,y+1/2,z)' - ] - }, - 'l': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/4,3/4,z)', - '(1/4,3/4,-z)', - '(3/4,1/4,-z)', - '(3/4,1/4,z)' - ] - }, - 'k': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/4,1/4,z)', - '(1/4,1/4,-z)', - '(3/4,3/4,-z)', - '(3/4,3/4,z)' - ] - }, - 'j': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(1/4,y,1/2)', - '(1/4,-y+1/2,1/2)', - '(3/4,-y,1/2)', - '(3/4,y+1/2,1/2)' - ] - }, - 'i': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(1/4,y,0)', - '(1/4,-y+1/2,0)', - '(3/4,-y,0)', - '(3/4,y+1/2,0)' - ] - }, - 'h': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(x,1/4,1/2)', - '(-x+1/2,1/4,1/2)', - '(-x,3/4,1/2)', - '(x+1/2,3/4,1/2)' - ] - }, - 'g': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(x,1/4,0)', - '(-x+1/2,1/4,0)', - '(-x,3/4,0)', - '(x+1/2,3/4,0)' - ] - }, - 'f': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,1/2)', - '(1/2,1/2,1/2)', - '(1/2,0,1/2)', - '(0,1/2,1/2)' - ] - }, - 'e': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,1/2,0)', - '(1/2,0,0)', - '(0,1/2,0)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/4,1/4,1/2)', - '(3/4,3/4,1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(3/4,1/4,1/2)', - '(1/4,3/4,1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(3/4,1/4,0)', - '(1/4,3/4,0)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/4,1/4,0)', - '(3/4,3/4,0)' - ] - } - } - }, - (50, '1ba-c'): { - 'IT_number': 50, - 'setting': 7, - 'IT_coordinate_system_code': '1ba-c', - 'name_H-M_alt': 'P b a n', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'm': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z)', - '(x,-y,-z)', - '(-x,y,-z)', - '(-x+1/2,-y+1/2,-z)', - '(x+1/2,y+1/2,-z)', - '(-x+1/2,y+1/2,z)', - '(x+1/2,-y+1/2,z)' - ] - }, - 'l': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/2,0,z)', - '(1/2,0,-z)', - '(0,1/2,-z)', - '(0,1/2,z)' - ] - }, - 'k': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)', - '(1/2,1/2,-z)', - '(1/2,1/2,z)' - ] - }, - 'j': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,0,-1/2)', - '(-x,0,-1/2)', - '(-x+1/2,1/2,-1/2)', - '(x+1/2,1/2,-1/2)' - ] - }, - 'i': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)', - '(-x+1/2,1/2,0)', - '(x+1/2,1/2,0)' - ] - }, - 'h': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,y,-1/2)', - '(0,-y,-1/2)', - '(1/2,-y+1/2,-1/2)', - '(1/2,y+1/2,-1/2)' - ] - }, - 'g': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y,0)', - '(1/2,-y+1/2,0)', - '(1/2,y+1/2,0)' - ] - }, - 'f': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/4,1/4,-1/2)', - '(3/4,3/4,-1/2)', - '(1/4,3/4,-1/2)', - '(3/4,1/4,-1/2)' - ] - }, - 'e': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/4,1/4,0)', - '(3/4,3/4,0)', - '(1/4,3/4,0)', - '(3/4,1/4,0)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,-1/2)', - '(1/2,1/2,-1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,1/2,-1/2)', - '(1/2,0,-1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,1/2,0)', - '(1/2,0,0)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,1/2,0)' - ] - } - } - }, - (50, '2ba-c'): { - 'IT_number': 50, - 'setting': 13, - 'IT_coordinate_system_code': '2ba-c', - 'name_H-M_alt': 'P b a n', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'm': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x+1/2,-y+1/2,z)', - '(x,-y+1/2,-z)', - '(-x+1/2,y,-z)', - '(-x,-y,-z)', - '(x+1/2,y+1/2,-z)', - '(-x,y+1/2,z)', - '(x+1/2,-y,z)' - ] - }, - 'l': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(3/4,1/4,z)', - '(3/4,1/4,-z)', - '(1/4,3/4,-z)', - '(1/4,3/4,z)' - ] - }, - 'k': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/4,1/4,z)', - '(1/4,1/4,-z)', - '(3/4,3/4,-z)', - '(3/4,3/4,z)' - ] - }, - 'j': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,1/4,-1/2)', - '(-x+1/2,1/4,-1/2)', - '(-x,3/4,-1/2)', - '(x+1/2,3/4,-1/2)' - ] - }, - 'i': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,1/4,0)', - '(-x+1/2,1/4,0)', - '(-x,3/4,0)', - '(x+1/2,3/4,0)' - ] - }, - 'h': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(1/4,y,-1/2)', - '(1/4,-y+1/2,-1/2)', - '(3/4,-y,-1/2)', - '(3/4,y+1/2,-1/2)' - ] - }, - 'g': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(1/4,y,0)', - '(1/4,-y+1/2,0)', - '(3/4,-y,0)', - '(3/4,y+1/2,0)' - ] - }, - 'f': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,-1/2)', - '(1/2,1/2,-1/2)', - '(0,1/2,-1/2)', - '(1/2,0,-1/2)' - ] - }, - 'e': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,1/2,0)', - '(0,1/2,0)', - '(1/2,0,0)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/4,1/4,-1/2)', - '(3/4,3/4,-1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/4,3/4,-1/2)', - '(3/4,1/4,-1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/4,3/4,0)', - '(3/4,1/4,0)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/4,1/4,0)', - '(3/4,3/4,0)' - ] - } - } - }, - (50, '1cab'): { - 'IT_number': 50, - 'setting': 8, - 'IT_coordinate_system_code': '1cab', - 'name_H-M_alt': 'P n c b', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'm': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,-y,-z)', - '(-x,-y,z)', - '(-x,y,-z)', - '(-x,-y+1/2,-z+1/2)', - '(-x,y+1/2,z+1/2)', - '(x,y+1/2,-z+1/2)', - '(x,-y+1/2,z+1/2)' - ] - }, - 'l': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,0,1/2)', - '(-x,0,1/2)', - '(-x,1/2,0)', - '(x,1/2,0)' - ] - }, - 'k': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)', - '(-x,1/2,1/2)', - '(x,1/2,1/2)' - ] - }, - 'j': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(1/2,0,z)', - '(1/2,0,-z)', - '(1/2,1/2,-z+1/2)', - '(1/2,1/2,z+1/2)' - ] - }, - 'i': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)', - '(0,1/2,-z+1/2)', - '(0,1/2,z+1/2)' - ] - }, - 'h': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(1/2,y,0)', - '(1/2,-y,0)', - '(1/2,-y+1/2,1/2)', - '(1/2,y+1/2,1/2)' - ] - }, - 'g': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y,0)', - '(0,-y+1/2,1/2)', - '(0,y+1/2,1/2)' - ] - }, - 'f': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/2,1/4,1/4)', - '(1/2,3/4,3/4)', - '(1/2,3/4,1/4)', - '(1/2,1/4,3/4)' - ] - }, - 'e': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,1/4,1/4)', - '(0,3/4,3/4)', - '(0,3/4,1/4)', - '(0,1/4,3/4)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/2,0,0)', - '(1/2,1/2,1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/2,1/2,0)', - '(1/2,0,1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,1/2,0)', - '(0,0,1/2)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,0)', - '(0,1/2,1/2)' - ] - } - } - }, - (50, '2cab'): { - 'IT_number': 50, - 'setting': 14, - 'IT_coordinate_system_code': '2cab', - 'name_H-M_alt': 'P n c b', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'm': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,-y+1/2,-z+1/2)', - '(-x,-y+1/2,z)', - '(-x,y,-z+1/2)', - '(-x,-y,-z)', - '(-x,y+1/2,z+1/2)', - '(x,y+1/2,-z)', - '(x,-y,z+1/2)' - ] - }, - 'l': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,1/4,3/4)', - '(-x,1/4,3/4)', - '(-x,3/4,1/4)', - '(x,3/4,1/4)' - ] - }, - 'k': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,1/4,1/4)', - '(-x,1/4,1/4)', - '(-x,3/4,3/4)', - '(x,3/4,3/4)' - ] - }, - 'j': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(1/2,1/4,z)', - '(1/2,1/4,-z+1/2)', - '(1/2,3/4,-z)', - '(1/2,3/4,z+1/2)' - ] - }, - 'i': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(0,1/4,z)', - '(0,1/4,-z+1/2)', - '(0,3/4,-z)', - '(0,3/4,z+1/2)' - ] - }, - 'h': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(1/2,y,1/4)', - '(1/2,-y+1/2,1/4)', - '(1/2,-y,3/4)', - '(1/2,y+1/2,3/4)' - ] - }, - 'g': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,y,1/4)', - '(0,-y+1/2,1/4)', - '(0,-y,3/4)', - '(0,y+1/2,3/4)' - ] - }, - 'f': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/2,0,0)', - '(1/2,1/2,1/2)', - '(1/2,1/2,0)', - '(1/2,0,1/2)' - ] - }, - 'e': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(0,1/2,1/2)', - '(0,1/2,0)', - '(0,0,1/2)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/2,1/4,1/4)', - '(1/2,3/4,3/4)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/2,3/4,1/4)', - '(1/2,1/4,3/4)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,3/4,1/4)', - '(0,1/4,3/4)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,1/4,1/4)', - '(0,3/4,3/4)' - ] - } - } - }, - (50, '1-cba'): { - 'IT_number': 50, - 'setting': 9, - 'IT_coordinate_system_code': '1-cba', - 'name_H-M_alt': 'P n c b', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'm': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,-y,-z)', - '(-x,y,-z)', - '(-x,-y,z)', - '(-x,-y+1/2,-z+1/2)', - '(-x,y+1/2,z+1/2)', - '(x,-y+1/2,z+1/2)', - '(x,y+1/2,-z+1/2)' - ] - }, - 'l': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,1/2,0)', - '(-x,1/2,0)', - '(-x,0,1/2)', - '(x,0,1/2)' - ] - }, - 'k': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)', - '(-x,1/2,1/2)', - '(x,1/2,1/2)' - ] - }, - 'j': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(-1/2,y,0)', - '(-1/2,-y,0)', - '(-1/2,-y+1/2,1/2)', - '(-1/2,y+1/2,1/2)' - ] - }, - 'i': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y,0)', - '(0,-y+1/2,1/2)', - '(0,y+1/2,1/2)' - ] - }, - 'h': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(-1/2,0,z)', - '(-1/2,0,-z)', - '(-1/2,1/2,-z+1/2)', - '(-1/2,1/2,z+1/2)' - ] - }, - 'g': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)', - '(0,1/2,-z+1/2)', - '(0,1/2,z+1/2)' - ] - }, - 'f': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(-1/2,1/4,1/4)', - '(-1/2,3/4,3/4)', - '(-1/2,1/4,3/4)', - '(-1/2,3/4,1/4)' - ] - }, - 'e': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,1/4,1/4)', - '(0,3/4,3/4)', - '(0,1/4,3/4)', - '(0,3/4,1/4)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(-1/2,0,0)', - '(-1/2,1/2,1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(-1/2,0,1/2)', - '(-1/2,1/2,0)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,1/2)', - '(0,1/2,0)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,0)', - '(0,1/2,1/2)' - ] - } - } - }, - (50, '2-cba'): { - 'IT_number': 50, - 'setting': 15, - 'IT_coordinate_system_code': '2-cba', - 'name_H-M_alt': 'P n c b', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'm': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,-y+1/2,-z+1/2)', - '(-x,y,-z+1/2)', - '(-x,-y+1/2,z)', - '(-x,-y,-z)', - '(-x,y+1/2,z+1/2)', - '(x,-y,z+1/2)', - '(x,y+1/2,-z)' - ] - }, - 'l': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,3/4,1/4)', - '(-x,3/4,1/4)', - '(-x,1/4,3/4)', - '(x,1/4,3/4)' - ] - }, - 'k': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,1/4,1/4)', - '(-x,1/4,1/4)', - '(-x,3/4,3/4)', - '(x,3/4,3/4)' - ] - }, - 'j': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(-1/2,y,1/4)', - '(-1/2,-y+1/2,1/4)', - '(-1/2,-y,3/4)', - '(-1/2,y+1/2,3/4)' - ] - }, - 'i': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(0,y,1/4)', - '(0,-y+1/2,1/4)', - '(0,-y,3/4)', - '(0,y+1/2,3/4)' - ] - }, - 'h': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(-1/2,1/4,z)', - '(-1/2,1/4,-z+1/2)', - '(-1/2,3/4,-z)', - '(-1/2,3/4,z+1/2)' - ] - }, - 'g': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,1/4,z)', - '(0,1/4,-z+1/2)', - '(0,3/4,-z)', - '(0,3/4,z+1/2)' - ] - }, - 'f': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(-1/2,0,0)', - '(-1/2,1/2,1/2)', - '(-1/2,0,1/2)', - '(-1/2,1/2,0)' - ] - }, - 'e': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(0,1/2,1/2)', - '(0,0,1/2)', - '(0,1/2,0)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(-1/2,1/4,1/4)', - '(-1/2,3/4,3/4)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(-1/2,1/4,3/4)', - '(-1/2,3/4,1/4)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,1/4,3/4)', - '(0,3/4,1/4)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,1/4,1/4)', - '(0,3/4,3/4)' - ] - } - } - }, - (50, '1bca'): { - 'IT_number': 50, - 'setting': 10, - 'IT_coordinate_system_code': '1bca', - 'name_H-M_alt': 'P c n a', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'm': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y,-z)', - '(x,-y,-z)', - '(-x,-y,z)', - '(-x+1/2,-y,-z+1/2)', - '(x+1/2,-y,z+1/2)', - '(-x+1/2,y,z+1/2)', - '(x+1/2,y,-z+1/2)' - ] - }, - 'l': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/2,y,0)', - '(1/2,-y,0)', - '(0,-y,1/2)', - '(0,y,1/2)' - ] - }, - 'k': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y,0)', - '(1/2,-y,1/2)', - '(1/2,y,1/2)' - ] - }, - 'j': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,1/2,0)', - '(-x,1/2,0)', - '(-x+1/2,1/2,1/2)', - '(x+1/2,1/2,1/2)' - ] - }, - 'i': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)', - '(-x+1/2,0,1/2)', - '(x+1/2,0,1/2)' - ] - }, - 'h': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,1/2,z)', - '(0,1/2,-z)', - '(1/2,1/2,-z+1/2)', - '(1/2,1/2,z+1/2)' - ] - }, - 'g': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)', - '(1/2,0,-z+1/2)', - '(1/2,0,z+1/2)' - ] - }, - 'f': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/4,1/2,1/4)', - '(3/4,1/2,3/4)', - '(1/4,1/2,3/4)', - '(3/4,1/2,1/4)' - ] - }, - 'e': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/4,0,1/4)', - '(3/4,0,3/4)', - '(1/4,0,3/4)', - '(3/4,0,1/4)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,1/2,0)', - '(1/2,1/2,1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,1/2,1/2)', - '(1/2,1/2,0)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,1/2)', - '(1/2,0,0)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,0,1/2)' - ] - } - } + (38, 'a-cb'): { + 'IT_number': 38, + 'setting': 5, + 'IT_coordinate_system_code': 'a-cb', + 'name_H-M_alt': 'A m 2 m', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'f': {'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(-x,y,-z)', '(x,y,-z)', '(-x,y,z)']}, + 'e': {'multiplicity': 4, 'site_symmetry': 'm..', 'coords_xyz': ['(1/2,y,z)', '(1/2,y,-z)']}, + 'd': {'multiplicity': 4, 'site_symmetry': 'm..', 'coords_xyz': ['(0,y,z)', '(0,y,-z)']}, + 'c': {'multiplicity': 4, 'site_symmetry': '.m.', 'coords_xyz': ['(x,y,0)', '(-x,y,0)']}, + 'b': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(1/2,y,0)']}, + 'a': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(0,y,0)']}, + }, }, - (50, '2bca'): { - 'IT_number': 50, - 'setting': 16, - 'IT_coordinate_system_code': '2bca', - 'name_H-M_alt': 'P c n a', + (39, 'abc'): { + 'IT_number': 39, + 'setting': 0, + 'IT_coordinate_system_code': 'abc', + 'name_H-M_alt': 'A e m 2', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'm': { + 'd': { 'multiplicity': 8, 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x+1/2,y,-z+1/2)', - '(x,-y,-z+1/2)', - '(-x+1/2,-y,z)', - '(-x,-y,-z)', - '(x+1/2,-y,z+1/2)', - '(-x,y,z+1/2)', - '(x+1/2,y,-z)' - ] - }, - 'l': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(3/4,y,1/4)', - '(3/4,-y,1/4)', - '(1/4,-y,3/4)', - '(1/4,y,3/4)' - ] + 'coords_xyz': ['(x,y,z)', '(-x,-y,z)', '(x,-y+1/2,z)', '(-x,y+1/2,z)'], }, - 'k': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/4,y,1/4)', - '(1/4,-y,1/4)', - '(3/4,-y,3/4)', - '(3/4,y,3/4)' - ] - }, - 'j': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,1/2,1/4)', - '(-x+1/2,1/2,1/4)', - '(-x,1/2,3/4)', - '(x+1/2,1/2,3/4)' - ] - }, - 'i': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,0,1/4)', - '(-x+1/2,0,1/4)', - '(-x,0,3/4)', - '(x+1/2,0,3/4)' - ] - }, - 'h': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(1/4,1/2,z)', - '(1/4,1/2,-z+1/2)', - '(3/4,1/2,-z)', - '(3/4,1/2,z+1/2)' - ] + 'c': {'multiplicity': 4, 'site_symmetry': '.m.', 'coords_xyz': ['(x,1/4,z)', '(-x,3/4,z)']}, + 'b': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(1/2,0,z)', '(1/2,1/2,z)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(0,0,z)', '(0,1/2,z)']}, + }, + }, + (39, 'ba-c'): { + 'IT_number': 39, + 'setting': 1, + 'IT_coordinate_system_code': 'ba-c', + 'name_H-M_alt': 'B m e 2', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'd': { + 'multiplicity': 8, + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(-x,-y,z)', '(-x+1/2,y,z)', '(x+1/2,-y,z)'], }, - 'g': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(1/4,0,z)', - '(1/4,0,-z+1/2)', - '(3/4,0,-z)', - '(3/4,0,z+1/2)' - ] + 'c': {'multiplicity': 4, 'site_symmetry': '.m.', 'coords_xyz': ['(1/4,y,z)', '(3/4,-y,z)']}, + 'b': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(0,1/2,z)', '(1/2,1/2,z)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(0,0,z)', '(1/2,0,z)']}, + }, + }, + (39, 'cab'): { + 'IT_number': 39, + 'setting': 2, + 'IT_coordinate_system_code': 'cab', + 'name_H-M_alt': 'B 2 e m', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'd': { + 'multiplicity': 8, + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(x,-y,-z)', '(x,y,-z+1/2)', '(x,-y,z+1/2)'], }, - 'f': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,1/2,0)', - '(1/2,1/2,1/2)', - '(0,1/2,1/2)', - '(1/2,1/2,0)' - ] + 'c': {'multiplicity': 4, 'site_symmetry': '.m.', 'coords_xyz': ['(x,y,1/4)', '(x,-y,3/4)']}, + 'b': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(x,1/2,0)', '(x,1/2,1/2)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(x,0,0)', '(x,0,1/2)']}, + }, + }, + (39, '-cba'): { + 'IT_number': 39, + 'setting': 3, + 'IT_coordinate_system_code': '-cba', + 'name_H-M_alt': 'C 2 m e', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'd': { + 'multiplicity': 8, + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(x,-y,-z)', '(x,-y+1/2,z)', '(x,y+1/2,-z)'], }, - 'e': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,0,1/2)', - '(0,0,1/2)', - '(1/2,0,0)' - ] + 'c': {'multiplicity': 4, 'site_symmetry': '.m.', 'coords_xyz': ['(x,1/4,z)', '(x,3/4,-z)']}, + 'b': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(x,0,1/2)', '(x,1/2,1/2)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(x,0,0)', '(x,1/2,0)']}, + }, + }, + (39, 'bca'): { + 'IT_number': 39, + 'setting': 4, + 'IT_coordinate_system_code': 'bca', + 'name_H-M_alt': 'C m 2 e', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'd': { + 'multiplicity': 8, + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(-x,y,-z)', '(-x+1/2,y,z)', '(x+1/2,y,-z)'], }, + 'c': {'multiplicity': 4, 'site_symmetry': '.m.', 'coords_xyz': ['(1/4,y,z)', '(3/4,y,-z)']}, + 'b': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(0,y,1/2)', '(1/2,y,1/2)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(0,y,0)', '(1/2,y,0)']}, + }, + }, + (39, 'a-cb'): { + 'IT_number': 39, + 'setting': 5, + 'IT_coordinate_system_code': 'a-cb', + 'name_H-M_alt': 'A e 2 m', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { 'd': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/4,1/2,1/4)', - '(3/4,1/2,3/4)' - ] + 'multiplicity': 8, + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(-x,y,-z)', '(x,y,-z+1/2)', '(-x,y,z+1/2)'], }, + 'c': {'multiplicity': 4, 'site_symmetry': '.m.', 'coords_xyz': ['(x,y,1/4)', '(-x,y,3/4)']}, + 'b': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(1/2,y,0)', '(1/2,y,1/2)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(0,y,0)', '(0,y,1/2)']}, + }, + }, + (40, 'abc'): { + 'IT_number': 40, + 'setting': 0, + 'IT_coordinate_system_code': 'abc', + 'name_H-M_alt': 'A m a 2', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { 'c': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/4,1/2,3/4)', - '(3/4,1/2,1/4)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/4,0,3/4)', - '(3/4,0,1/4)' - ] + 'multiplicity': 8, + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(-x,-y,z)', '(x+1/2,-y,z)', '(-x+1/2,y,z)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/4,0,1/4)', - '(3/4,0,3/4)' - ] - } - } + 'b': {'multiplicity': 4, 'site_symmetry': 'm..', 'coords_xyz': ['(1/4,y,z)', '(3/4,-y,z)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(0,0,z)', '(1/2,0,z)']}, + }, }, - (50, '2a-cb'): { - 'IT_number': 50, - 'setting': 17, - 'IT_coordinate_system_code': '2a-cb', - 'name_H-M_alt': 'P c n a', + (40, 'ba-c'): { + 'IT_number': 40, + 'setting': 1, + 'IT_coordinate_system_code': 'ba-c', + 'name_H-M_alt': 'B b m 2', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'm': { + 'c': { 'multiplicity': 8, 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x+1/2,y,-z+1/2)', - '(-x+1/2,-y,z)', - '(x,-y,-z+1/2)', - '(-x,-y,-z)', - '(x+1/2,-y,z+1/2)', - '(x+1/2,y,-z)', - '(-x,y,z+1/2)' - ] - }, - 'l': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/4,y,3/4)', - '(1/4,-y,3/4)', - '(3/4,-y,1/4)', - '(3/4,y,1/4)' - ] - }, - 'k': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/4,y,1/4)', - '(1/4,-y,1/4)', - '(3/4,-y,3/4)', - '(3/4,y,3/4)' - ] - }, - 'j': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(1/4,-1/2,z)', - '(1/4,-1/2,-z+1/2)', - '(3/4,-1/2,-z)', - '(3/4,-1/2,z+1/2)' - ] - }, - 'i': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(1/4,0,z)', - '(1/4,0,-z+1/2)', - '(3/4,0,-z)', - '(3/4,0,z+1/2)' - ] - }, - 'h': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(x,-1/2,1/4)', - '(-x+1/2,-1/2,1/4)', - '(-x,-1/2,3/4)', - '(x+1/2,-1/2,3/4)' - ] - }, - 'g': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(x,0,1/4)', - '(-x+1/2,0,1/4)', - '(-x,0,3/4)', - '(x+1/2,0,3/4)' - ] + 'coords_xyz': ['(x,y,z)', '(-x,-y,z)', '(-x,y+1/2,z)', '(x,-y+1/2,z)'], }, - 'f': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,-1/2,0)', - '(1/2,-1/2,1/2)', - '(1/2,-1/2,0)', - '(0,-1/2,1/2)' - ] + 'b': {'multiplicity': 4, 'site_symmetry': 'm..', 'coords_xyz': ['(x,1/4,z)', '(-x,3/4,z)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(0,0,z)', '(0,1/2,z)']}, + }, + }, + (40, 'cab'): { + 'IT_number': 40, + 'setting': 2, + 'IT_coordinate_system_code': 'cab', + 'name_H-M_alt': 'B 2 m b', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'c': { + 'multiplicity': 8, + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(x,-y,-z)', '(x,y+1/2,-z)', '(x,-y+1/2,z)'], }, - 'e': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,0,1/2)', - '(1/2,0,0)', - '(0,0,1/2)' - ] + 'b': {'multiplicity': 4, 'site_symmetry': 'm..', 'coords_xyz': ['(x,1/4,z)', '(x,3/4,-z)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(x,0,0)', '(x,1/2,0)']}, + }, + }, + (40, '-cba'): { + 'IT_number': 40, + 'setting': 3, + 'IT_coordinate_system_code': '-cba', + 'name_H-M_alt': 'C 2 c m', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'c': { + 'multiplicity': 8, + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(x,-y,-z)', '(x,-y,z+1/2)', '(x,y,-z+1/2)'], }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/4,-1/2,1/4)', - '(3/4,-1/2,3/4)' - ] + 'b': {'multiplicity': 4, 'site_symmetry': 'm..', 'coords_xyz': ['(x,y,1/4)', '(x,-y,3/4)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(x,0,0)', '(x,0,1/2)']}, + }, + }, + (40, 'bca'): { + 'IT_number': 40, + 'setting': 4, + 'IT_coordinate_system_code': 'bca', + 'name_H-M_alt': 'C c 2 m', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'c': { + 'multiplicity': 8, + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(-x,y,-z)', '(-x,y,z+1/2)', '(x,y,-z+1/2)'], }, + 'b': {'multiplicity': 4, 'site_symmetry': 'm..', 'coords_xyz': ['(x,y,1/4)', '(-x,y,3/4)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(0,y,0)', '(0,y,1/2)']}, + }, + }, + (40, 'a-cb'): { + 'IT_number': 40, + 'setting': 5, + 'IT_coordinate_system_code': 'a-cb', + 'name_H-M_alt': 'A m 2 a', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { 'c': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(3/4,-1/2,1/4)', - '(1/4,-1/2,3/4)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(3/4,0,1/4)', - '(1/4,0,3/4)' - ] + 'multiplicity': 8, + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(-x,y,-z)', '(x+1/2,y,-z)', '(-x+1/2,y,z)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/4,0,1/4)', - '(3/4,0,3/4)' - ] - } - } + 'b': {'multiplicity': 4, 'site_symmetry': 'm..', 'coords_xyz': ['(1/4,y,z)', '(3/4,y,-z)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(0,y,0)', '(1/2,y,0)']}, + }, }, - (51, 'abc'): { - 'IT_number': 51, + (41, 'abc'): { + 'IT_number': 41, 'setting': 0, 'IT_coordinate_system_code': 'abc', - 'name_H-M_alt': 'P m m a', + 'name_H-M_alt': 'A e a 2', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'l': { + 'b': { 'multiplicity': 8, 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x+1/2,-y,z)', - '(-x,y,-z)', - '(x+1/2,-y,-z)', - '(-x,-y,-z)', - '(x+1/2,y,-z)', - '(x,-y,z)', - '(-x+1/2,y,z)' - ] - }, - 'k': { - 'multiplicity': 4, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(1/4,y,z)', - '(1/4,-y,z)', - '(3/4,y,-z)', - '(3/4,-y,-z)' - ] - }, - 'j': { - 'multiplicity': 4, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,1/2,z)', - '(-x+1/2,1/2,z)', - '(-x,1/2,-z)', - '(x+1/2,1/2,-z)' - ] - }, - 'i': { - 'multiplicity': 4, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,0,z)', - '(-x+1/2,0,z)', - '(-x,0,-z)', - '(x+1/2,0,-z)' - ] - }, - 'h': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(0,y,1/2)', - '(1/2,-y,1/2)', - '(0,-y,1/2)', - '(1/2,y,1/2)' - ] - }, - 'g': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(0,y,0)', - '(1/2,-y,0)', - '(0,-y,0)', - '(1/2,y,0)' - ] + 'coords_xyz': ['(x,y,z)', '(-x,-y,z)', '(x+1/2,-y+1/2,z)', '(-x+1/2,y+1/2,z)'], }, - 'f': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(1/4,1/2,z)', - '(3/4,1/2,-z)' - ] - }, - 'e': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(1/4,0,z)', - '(3/4,0,-z)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '.2/m.', - 'coords_xyz': [ - '(0,1/2,1/2)', - '(1/2,1/2,1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '.2/m.', - 'coords_xyz': [ - '(0,0,1/2)', - '(1/2,0,1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '.2/m.', - 'coords_xyz': [ - '(0,1/2,0)', - '(1/2,1/2,0)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '.2/m.', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,0,0)' - ] - } - } + 'a': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(0,0,z)', '(1/2,1/2,z)']}, + }, }, - (51, 'ba-c'): { - 'IT_number': 51, + (41, 'ba-c'): { + 'IT_number': 41, 'setting': 1, 'IT_coordinate_system_code': 'ba-c', - 'name_H-M_alt': 'P m m b', + 'name_H-M_alt': 'B b e 2', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'l': { + 'b': { 'multiplicity': 8, 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y+1/2,z)', - '(x,-y,-z)', - '(-x,y+1/2,-z)', - '(-x,-y,-z)', - '(x,y+1/2,-z)', - '(-x,y,z)', - '(x,-y+1/2,z)' - ] - }, - 'k': { - 'multiplicity': 4, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,1/4,z)', - '(-x,1/4,z)', - '(x,3/4,-z)', - '(-x,3/4,-z)' - ] - }, - 'j': { - 'multiplicity': 4, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(1/2,y,z)', - '(1/2,-y+1/2,z)', - '(1/2,-y,-z)', - '(1/2,y+1/2,-z)' - ] - }, - 'i': { - 'multiplicity': 4, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(0,y,z)', - '(0,-y+1/2,z)', - '(0,-y,-z)', - '(0,y+1/2,-z)' - ] - }, - 'h': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,0,-1/2)', - '(-x,1/2,-1/2)', - '(-x,0,-1/2)', - '(x,1/2,-1/2)' - ] + 'coords_xyz': ['(x,y,z)', '(-x,-y,z)', '(-x+1/2,y+1/2,z)', '(x+1/2,-y+1/2,z)'], }, - 'g': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,0,0)', - '(-x,1/2,0)', - '(-x,0,0)', - '(x,1/2,0)' - ] + 'a': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(0,0,z)', '(1/2,1/2,z)']}, + }, + }, + (41, 'cab'): { + 'IT_number': 41, + 'setting': 2, + 'IT_coordinate_system_code': 'cab', + 'name_H-M_alt': 'B 2 e b', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'b': { + 'multiplicity': 8, + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(x,-y,-z)', '(x,y+1/2,-z+1/2)', '(x,-y+1/2,z+1/2)'], }, - 'f': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(1/2,1/4,z)', - '(1/2,3/4,-z)' - ] + 'a': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(x,0,0)', '(x,1/2,1/2)']}, + }, + }, + (41, '-cba'): { + 'IT_number': 41, + 'setting': 3, + 'IT_coordinate_system_code': '-cba', + 'name_H-M_alt': 'C 2 c e', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'b': { + 'multiplicity': 8, + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(x,-y,-z)', '(x,-y+1/2,z+1/2)', '(x,y+1/2,-z+1/2)'], }, - 'e': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(0,1/4,z)', - '(0,3/4,-z)' - ] + 'a': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(x,0,0)', '(x,1/2,1/2)']}, + }, + }, + (41, 'bca'): { + 'IT_number': 41, + 'setting': 4, + 'IT_coordinate_system_code': 'bca', + 'name_H-M_alt': 'C c 2 e', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'b': { + 'multiplicity': 8, + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(-x,y,-z)', '(-x+1/2,y,z+1/2)', '(x+1/2,y,-z+1/2)'], }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '.2/m.', - 'coords_xyz': [ - '(1/2,0,-1/2)', - '(1/2,1/2,-1/2)' - ] + 'a': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(0,y,0)', '(1/2,y,1/2)']}, + }, + }, + (41, 'a-cb'): { + 'IT_number': 41, + 'setting': 5, + 'IT_coordinate_system_code': 'a-cb', + 'name_H-M_alt': 'A e 2 a', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'b': { + 'multiplicity': 8, + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(-x,y,-z)', '(x+1/2,y,-z+1/2)', '(-x+1/2,y,z+1/2)'], }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '.2/m.', - 'coords_xyz': [ - '(0,0,-1/2)', - '(0,1/2,-1/2)' - ] + 'a': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(0,y,0)', '(1/2,y,1/2)']}, + }, + }, + (42, 'abc'): { + 'IT_number': 42, + 'setting': 0, + 'IT_coordinate_system_code': 'abc', + 'name_H-M_alt': 'F m m 2', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'e': {'multiplicity': 16, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(-x,-y,z)', '(x,-y,z)', '(-x,y,z)']}, + 'd': {'multiplicity': 8, 'site_symmetry': '.m.', 'coords_xyz': ['(x,0,z)', '(-x,0,z)']}, + 'c': {'multiplicity': 8, 'site_symmetry': 'm..', 'coords_xyz': ['(0,y,z)', '(0,-y,z)']}, + 'b': {'multiplicity': 8, 'site_symmetry': '..2', 'coords_xyz': ['(1/4,1/4,z)', '(1/4,3/4,z)']}, + 'a': {'multiplicity': 4, 'site_symmetry': 'mm2', 'coords_xyz': ['(0,0,z)']}, + }, + }, + (42, 'ba-c'): { + 'IT_number': 42, + 'setting': 1, + 'IT_coordinate_system_code': 'ba-c', + 'name_H-M_alt': 'F m m 2', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'e': {'multiplicity': 16, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(-x,-y,z)', '(-x,y,z)', '(x,-y,z)']}, + 'd': {'multiplicity': 8, 'site_symmetry': '.m.', 'coords_xyz': ['(0,y,z)', '(0,-y,z)']}, + 'c': {'multiplicity': 8, 'site_symmetry': 'm..', 'coords_xyz': ['(x,0,z)', '(-x,0,z)']}, + 'b': {'multiplicity': 8, 'site_symmetry': '..2', 'coords_xyz': ['(1/4,1/4,z)', '(3/4,1/4,z)']}, + 'a': {'multiplicity': 4, 'site_symmetry': 'mm2', 'coords_xyz': ['(0,0,z)']}, + }, + }, + (42, 'cab'): { + 'IT_number': 42, + 'setting': 2, + 'IT_coordinate_system_code': 'cab', + 'name_H-M_alt': 'F 2 m m', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'e': {'multiplicity': 16, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(x,-y,-z)', '(x,y,-z)', '(x,-y,z)']}, + 'd': {'multiplicity': 8, 'site_symmetry': '.m.', 'coords_xyz': ['(x,y,0)', '(x,-y,0)']}, + 'c': {'multiplicity': 8, 'site_symmetry': 'm..', 'coords_xyz': ['(x,0,z)', '(x,0,-z)']}, + 'b': {'multiplicity': 8, 'site_symmetry': '..2', 'coords_xyz': ['(x,1/4,1/4)', '(x,1/4,3/4)']}, + 'a': {'multiplicity': 4, 'site_symmetry': 'mm2', 'coords_xyz': ['(x,0,0)']}, + }, + }, + (42, '-cba'): { + 'IT_number': 42, + 'setting': 3, + 'IT_coordinate_system_code': '-cba', + 'name_H-M_alt': 'F 2 m m', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'e': {'multiplicity': 16, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(x,-y,-z)', '(x,-y,z)', '(x,y,-z)']}, + 'd': {'multiplicity': 8, 'site_symmetry': '.m.', 'coords_xyz': ['(x,0,z)', '(x,0,-z)']}, + 'c': {'multiplicity': 8, 'site_symmetry': 'm..', 'coords_xyz': ['(x,y,0)', '(x,-y,0)']}, + 'b': {'multiplicity': 8, 'site_symmetry': '..2', 'coords_xyz': ['(x,1/4,1/4)', '(x,3/4,1/4)']}, + 'a': {'multiplicity': 4, 'site_symmetry': 'mm2', 'coords_xyz': ['(x,0,0)']}, + }, + }, + (42, 'bca'): { + 'IT_number': 42, + 'setting': 4, + 'IT_coordinate_system_code': 'bca', + 'name_H-M_alt': 'F m 2 m', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'e': {'multiplicity': 16, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(-x,y,-z)', '(-x,y,z)', '(x,y,-z)']}, + 'd': {'multiplicity': 8, 'site_symmetry': '.m.', 'coords_xyz': ['(0,y,z)', '(0,y,-z)']}, + 'c': {'multiplicity': 8, 'site_symmetry': 'm..', 'coords_xyz': ['(x,y,0)', '(-x,y,0)']}, + 'b': {'multiplicity': 8, 'site_symmetry': '..2', 'coords_xyz': ['(1/4,y,1/4)', '(3/4,y,1/4)']}, + 'a': {'multiplicity': 4, 'site_symmetry': 'mm2', 'coords_xyz': ['(0,y,0)']}, + }, + }, + (42, 'a-cb'): { + 'IT_number': 42, + 'setting': 5, + 'IT_coordinate_system_code': 'a-cb', + 'name_H-M_alt': 'F m 2 m', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'e': {'multiplicity': 16, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(-x,y,-z)', '(x,y,-z)', '(-x,y,z)']}, + 'd': {'multiplicity': 8, 'site_symmetry': '.m.', 'coords_xyz': ['(x,y,0)', '(-x,y,0)']}, + 'c': {'multiplicity': 8, 'site_symmetry': 'm..', 'coords_xyz': ['(0,y,z)', '(0,y,-z)']}, + 'b': {'multiplicity': 8, 'site_symmetry': '..2', 'coords_xyz': ['(1/4,y,1/4)', '(1/4,y,3/4)']}, + 'a': {'multiplicity': 4, 'site_symmetry': 'mm2', 'coords_xyz': ['(0,y,0)']}, + }, + }, + (43, 'abc'): { + 'IT_number': 43, + 'setting': 0, + 'IT_coordinate_system_code': 'abc', + 'name_H-M_alt': 'F d d 2', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'b': { + 'multiplicity': 16, + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(-x,-y,z)', '(x+1/4,-y+1/4,z+1/4)', '(-x+1/4,y+1/4,z+1/4)'], }, + 'a': {'multiplicity': 8, 'site_symmetry': '..2', 'coords_xyz': ['(0,0,z)', '(1/4,1/4,z+1/4)']}, + }, + }, + (43, 'ba-c'): { + 'IT_number': 43, + 'setting': 1, + 'IT_coordinate_system_code': 'ba-c', + 'name_H-M_alt': 'F d d 2', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { 'b': { - 'multiplicity': 2, - 'site_symmetry': '.2/m.', - 'coords_xyz': [ - '(1/2,0,0)', - '(1/2,1/2,0)' - ] + 'multiplicity': 16, + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(-x,-y,z)', '(-x+1/4,y+1/4,z-1/4)', '(x+1/4,-y+1/4,z-1/4)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '.2/m.', - 'coords_xyz': [ - '(0,0,0)', - '(0,1/2,0)' - ] - } - } + 'a': {'multiplicity': 8, 'site_symmetry': '..2', 'coords_xyz': ['(0,0,z)', '(1/4,1/4,z-1/4)']}, + }, }, - (51, 'cab'): { - 'IT_number': 51, + (43, 'cab'): { + 'IT_number': 43, 'setting': 2, 'IT_coordinate_system_code': 'cab', - 'name_H-M_alt': 'P b m m', + 'name_H-M_alt': 'F 2 d d', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'l': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,-y+1/2,-z)', - '(-x,-y,z)', - '(-x,y+1/2,-z)', - '(-x,-y,-z)', - '(-x,y+1/2,z)', - '(x,y,-z)', - '(x,-y+1/2,z)' - ] - }, - 'k': { - 'multiplicity': 4, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,1/4,z)', - '(x,1/4,-z)', - '(-x,3/4,z)', - '(-x,3/4,-z)' - ] - }, - 'j': { - 'multiplicity': 4, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,y,1/2)', - '(x,-y+1/2,1/2)', - '(-x,-y,1/2)', - '(-x,y+1/2,1/2)' - ] - }, - 'i': { - 'multiplicity': 4, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,y,0)', - '(x,-y+1/2,0)', - '(-x,-y,0)', - '(-x,y+1/2,0)' - ] - }, - 'h': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(1/2,0,z)', - '(1/2,1/2,-z)', - '(1/2,0,-z)', - '(1/2,1/2,z)' - ] - }, - 'g': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(0,0,z)', - '(0,1/2,-z)', - '(0,0,-z)', - '(0,1/2,z)' - ] - }, - 'f': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(x,1/4,1/2)', - '(-x,3/4,1/2)' - ] - }, - 'e': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(x,1/4,0)', - '(-x,3/4,0)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '.2/m.', - 'coords_xyz': [ - '(1/2,0,1/2)', - '(1/2,1/2,1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '.2/m.', - 'coords_xyz': [ - '(1/2,0,0)', - '(1/2,1/2,0)' - ] - }, 'b': { - 'multiplicity': 2, - 'site_symmetry': '.2/m.', - 'coords_xyz': [ - '(0,0,1/2)', - '(0,1/2,1/2)' - ] + 'multiplicity': 16, + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(x,-y,-z)', '(x+1/4,y+1/4,-z+1/4)', '(x+1/4,-y+1/4,z+1/4)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '.2/m.', - 'coords_xyz': [ - '(0,0,0)', - '(0,1/2,0)' - ] - } - } + 'a': {'multiplicity': 8, 'site_symmetry': '..2', 'coords_xyz': ['(x,0,0)', '(x+1/4,1/4,1/4)']}, + }, }, - (51, '-cba'): { - 'IT_number': 51, + (43, '-cba'): { + 'IT_number': 43, 'setting': 3, 'IT_coordinate_system_code': '-cba', - 'name_H-M_alt': 'P c m m', + 'name_H-M_alt': 'F 2 d d', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'l': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,-y,-z+1/2)', - '(-x,y,-z)', - '(-x,-y,z+1/2)', - '(-x,-y,-z)', - '(-x,y,z+1/2)', - '(x,-y,z)', - '(x,y,-z+1/2)' - ] - }, - 'k': { - 'multiplicity': 4, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,y,1/4)', - '(x,-y,1/4)', - '(-x,y,3/4)', - '(-x,-y,3/4)' - ] - }, - 'j': { - 'multiplicity': 4, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,1/2,z)', - '(x,1/2,-z+1/2)', - '(-x,1/2,-z)', - '(-x,1/2,z+1/2)' - ] - }, - 'i': { - 'multiplicity': 4, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,0,z)', - '(x,0,-z+1/2)', - '(-x,0,-z)', - '(-x,0,z+1/2)' - ] - }, - 'h': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(-1/2,y,0)', - '(-1/2,-y,1/2)', - '(-1/2,-y,0)', - '(-1/2,y,1/2)' - ] - }, - 'g': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y,1/2)', - '(0,-y,0)', - '(0,y,1/2)' - ] - }, - 'f': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(x,1/2,1/4)', - '(-x,1/2,3/4)' - ] - }, - 'e': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(x,0,1/4)', - '(-x,0,3/4)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '.2/m.', - 'coords_xyz': [ - '(-1/2,1/2,0)', - '(-1/2,1/2,1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '.2/m.', - 'coords_xyz': [ - '(-1/2,0,0)', - '(-1/2,0,1/2)' - ] - }, 'b': { - 'multiplicity': 2, - 'site_symmetry': '.2/m.', - 'coords_xyz': [ - '(0,1/2,0)', - '(0,1/2,1/2)' - ] + 'multiplicity': 16, + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(x,-y,-z)', '(x-1/4,-y+1/4,z+1/4)', '(x-1/4,y+1/4,-z+1/4)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '.2/m.', - 'coords_xyz': [ - '(0,0,0)', - '(0,0,1/2)' - ] - } - } + 'a': {'multiplicity': 8, 'site_symmetry': '..2', 'coords_xyz': ['(x,0,0)', '(x-1/4,1/4,1/4)']}, + }, }, - (51, 'bca'): { - 'IT_number': 51, + (43, 'bca'): { + 'IT_number': 43, 'setting': 4, 'IT_coordinate_system_code': 'bca', - 'name_H-M_alt': 'P m c m', + 'name_H-M_alt': 'F d 2 d', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'l': { - 'multiplicity': 8, + 'b': { + 'multiplicity': 16, 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y,-z+1/2)', - '(x,-y,-z)', - '(-x,-y,z+1/2)', - '(-x,-y,-z)', - '(x,-y,z+1/2)', - '(-x,y,z)', - '(x,y,-z+1/2)' - ] - }, - 'k': { - 'multiplicity': 4, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,y,1/4)', - '(-x,y,1/4)', - '(x,-y,3/4)', - '(-x,-y,3/4)' - ] - }, - 'j': { - 'multiplicity': 4, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(1/2,y,z)', - '(1/2,y,-z+1/2)', - '(1/2,-y,-z)', - '(1/2,-y,z+1/2)' - ] - }, - 'i': { - 'multiplicity': 4, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(0,y,z)', - '(0,y,-z+1/2)', - '(0,-y,-z)', - '(0,-y,z+1/2)' - ] - }, - 'h': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,1/2,0)', - '(-x,1/2,1/2)', - '(-x,1/2,0)', - '(x,1/2,1/2)' - ] - }, - 'g': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,1/2)', - '(-x,0,0)', - '(x,0,1/2)' - ] - }, - 'f': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(1/2,y,1/4)', - '(1/2,-y,3/4)' - ] - }, - 'e': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(0,y,1/4)', - '(0,-y,3/4)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '.2/m.', - 'coords_xyz': [ - '(1/2,1/2,0)', - '(1/2,1/2,1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '.2/m.', - 'coords_xyz': [ - '(0,1/2,0)', - '(0,1/2,1/2)' - ] + 'coords_xyz': ['(x,y,z)', '(-x,y,-z)', '(-x+1/4,y+1/4,z+1/4)', '(x+1/4,y+1/4,-z+1/4)'], }, + 'a': {'multiplicity': 8, 'site_symmetry': '..2', 'coords_xyz': ['(0,y,0)', '(1/4,y+1/4,1/4)']}, + }, + }, + (43, 'a-cb'): { + 'IT_number': 43, + 'setting': 5, + 'IT_coordinate_system_code': 'a-cb', + 'name_H-M_alt': 'F d 2 d', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { 'b': { - 'multiplicity': 2, - 'site_symmetry': '.2/m.', - 'coords_xyz': [ - '(1/2,0,0)', - '(1/2,0,1/2)' - ] + 'multiplicity': 16, + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(-x,y,-z)', '(x+1/4,y-1/4,-z+1/4)', '(-x+1/4,y-1/4,z+1/4)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '.2/m.', - 'coords_xyz': [ - '(0,0,0)', - '(0,0,1/2)' - ] - } - } + 'a': {'multiplicity': 8, 'site_symmetry': '..2', 'coords_xyz': ['(0,y,0)', '(1/4,y-1/4,1/4)']}, + }, }, - (51, 'a-cb'): { - 'IT_number': 51, + (44, 'abc'): { + 'IT_number': 44, + 'setting': 0, + 'IT_coordinate_system_code': 'abc', + 'name_H-M_alt': 'I m m 2', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'e': {'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(-x,-y,z)', '(x,-y,z)', '(-x,y,z)']}, + 'd': {'multiplicity': 4, 'site_symmetry': 'm..', 'coords_xyz': ['(0,y,z)', '(0,-y,z)']}, + 'c': {'multiplicity': 4, 'site_symmetry': '.m.', 'coords_xyz': ['(x,0,z)', '(-x,0,z)']}, + 'b': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(0,1/2,z)']}, + 'a': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(0,0,z)']}, + }, + }, + (44, 'ba-c'): { + 'IT_number': 44, + 'setting': 1, + 'IT_coordinate_system_code': 'ba-c', + 'name_H-M_alt': 'I m m 2', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'e': {'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(-x,-y,z)', '(-x,y,z)', '(x,-y,z)']}, + 'd': {'multiplicity': 4, 'site_symmetry': 'm..', 'coords_xyz': ['(x,0,z)', '(-x,0,z)']}, + 'c': {'multiplicity': 4, 'site_symmetry': '.m.', 'coords_xyz': ['(0,y,z)', '(0,-y,z)']}, + 'b': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(1/2,0,z)']}, + 'a': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(0,0,z)']}, + }, + }, + (44, 'cab'): { + 'IT_number': 44, + 'setting': 2, + 'IT_coordinate_system_code': 'cab', + 'name_H-M_alt': 'I 2 m m', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'e': {'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(x,-y,-z)', '(x,y,-z)', '(x,-y,z)']}, + 'd': {'multiplicity': 4, 'site_symmetry': 'm..', 'coords_xyz': ['(x,0,z)', '(x,0,-z)']}, + 'c': {'multiplicity': 4, 'site_symmetry': '.m.', 'coords_xyz': ['(x,y,0)', '(x,-y,0)']}, + 'b': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(x,0,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(x,0,0)']}, + }, + }, + (44, '-cba'): { + 'IT_number': 44, + 'setting': 3, + 'IT_coordinate_system_code': '-cba', + 'name_H-M_alt': 'I 2 m m', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'e': {'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(x,-y,-z)', '(x,-y,z)', '(x,y,-z)']}, + 'd': {'multiplicity': 4, 'site_symmetry': 'm..', 'coords_xyz': ['(x,y,0)', '(x,-y,0)']}, + 'c': {'multiplicity': 4, 'site_symmetry': '.m.', 'coords_xyz': ['(x,0,z)', '(x,0,-z)']}, + 'b': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(x,1/2,0)']}, + 'a': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(x,0,0)']}, + }, + }, + (44, 'bca'): { + 'IT_number': 44, + 'setting': 4, + 'IT_coordinate_system_code': 'bca', + 'name_H-M_alt': 'I m 2 m', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'e': {'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(-x,y,-z)', '(-x,y,z)', '(x,y,-z)']}, + 'd': {'multiplicity': 4, 'site_symmetry': 'm..', 'coords_xyz': ['(x,y,0)', '(-x,y,0)']}, + 'c': {'multiplicity': 4, 'site_symmetry': '.m.', 'coords_xyz': ['(0,y,z)', '(0,y,-z)']}, + 'b': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(1/2,y,0)']}, + 'a': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(0,y,0)']}, + }, + }, + (44, 'a-cb'): { + 'IT_number': 44, 'setting': 5, 'IT_coordinate_system_code': 'a-cb', - 'name_H-M_alt': 'P m a m', + 'name_H-M_alt': 'I m 2 m', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'l': { + 'e': {'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(-x,y,-z)', '(x,y,-z)', '(-x,y,z)']}, + 'd': {'multiplicity': 4, 'site_symmetry': 'm..', 'coords_xyz': ['(0,y,z)', '(0,y,-z)']}, + 'c': {'multiplicity': 4, 'site_symmetry': '.m.', 'coords_xyz': ['(x,y,0)', '(-x,y,0)']}, + 'b': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(0,y,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(0,y,0)']}, + }, + }, + (45, 'abc'): { + 'IT_number': 45, + 'setting': 0, + 'IT_coordinate_system_code': 'abc', + 'name_H-M_alt': 'I b a 2', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'c': { 'multiplicity': 8, 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x+1/2,y,-z)', - '(-x,-y,z)', - '(x+1/2,-y,-z)', - '(-x,-y,-z)', - '(x+1/2,-y,z)', - '(x,y,-z)', - '(-x+1/2,y,z)' - ] - }, - 'k': { - 'multiplicity': 4, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(1/4,y,z)', - '(1/4,y,-z)', - '(3/4,-y,z)', - '(3/4,-y,-z)' - ] - }, - 'j': { - 'multiplicity': 4, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,y,1/2)', - '(-x+1/2,y,1/2)', - '(-x,-y,1/2)', - '(x+1/2,-y,1/2)' - ] - }, - 'i': { - 'multiplicity': 4, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,y,0)', - '(-x+1/2,y,0)', - '(-x,-y,0)', - '(x+1/2,-y,0)' - ] - }, - 'h': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(0,-1/2,z)', - '(1/2,-1/2,-z)', - '(0,-1/2,-z)', - '(1/2,-1/2,z)' - ] - }, - 'g': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(0,0,z)', - '(1/2,0,-z)', - '(0,0,-z)', - '(1/2,0,z)' - ] - }, - 'f': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(1/4,y,1/2)', - '(3/4,-y,1/2)' - ] - }, - 'e': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(1/4,y,0)', - '(3/4,-y,0)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '.2/m.', - 'coords_xyz': [ - '(0,-1/2,1/2)', - '(1/2,-1/2,1/2)' - ] + 'coords_xyz': ['(x,y,z)', '(-x,-y,z)', '(x+1/2,-y+1/2,z)', '(-x+1/2,y+1/2,z)'], }, + 'b': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(0,1/2,z)', '(1/2,0,z)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(0,0,z)', '(1/2,1/2,z)']}, + }, + }, + (45, 'ba-c'): { + 'IT_number': 45, + 'setting': 1, + 'IT_coordinate_system_code': 'ba-c', + 'name_H-M_alt': 'I b a 2', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { 'c': { - 'multiplicity': 2, - 'site_symmetry': '.2/m.', - 'coords_xyz': [ - '(0,-1/2,0)', - '(1/2,-1/2,0)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '.2/m.', - 'coords_xyz': [ - '(0,0,1/2)', - '(1/2,0,1/2)' - ] + 'multiplicity': 8, + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(-x,-y,z)', '(-x+1/2,y+1/2,z)', '(x+1/2,-y+1/2,z)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '.2/m.', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,0,0)' - ] - } - } + 'b': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(1/2,0,z)', '(0,1/2,z)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(0,0,z)', '(1/2,1/2,z)']}, + }, }, - (52, 'abc'): { - 'IT_number': 52, - 'setting': 0, - 'IT_coordinate_system_code': 'abc', - 'name_H-M_alt': 'P n n a', + (45, 'cab'): { + 'IT_number': 45, + 'setting': 2, + 'IT_coordinate_system_code': 'cab', + 'name_H-M_alt': 'I 2 c b', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'e': { + 'c': { 'multiplicity': 8, 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x+1/2,-y,z)', - '(-x+1/2,y+1/2,-z+1/2)', - '(x,-y+1/2,-z+1/2)', - '(-x,-y,-z)', - '(x+1/2,y,-z)', - '(x+1/2,-y+1/2,z+1/2)', - '(-x,y+1/2,z+1/2)' - ] - }, - 'd': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(x,1/4,1/4)', - '(-x+1/2,3/4,1/4)', - '(-x,3/4,3/4)', - '(x+1/2,1/4,3/4)' - ] + 'coords_xyz': ['(x,y,z)', '(x,-y,-z)', '(x,y+1/2,-z+1/2)', '(x,-y+1/2,z+1/2)'], }, + 'b': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(x,0,1/2)', '(x,1/2,0)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(x,0,0)', '(x,1/2,1/2)']}, + }, + }, + (45, '-cba'): { + 'IT_number': 45, + 'setting': 3, + 'IT_coordinate_system_code': '-cba', + 'name_H-M_alt': 'I 2 c b', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { 'c': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/4,0,z)', - '(1/4,1/2,-z+1/2)', - '(3/4,0,-z)', - '(3/4,1/2,z+1/2)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,1/2)', - '(1/2,0,1/2)', - '(1/2,1/2,0)', - '(0,1/2,0)' - ] + 'multiplicity': 8, + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(x,-y,-z)', '(x,-y+1/2,z+1/2)', '(x,y+1/2,-z+1/2)'], }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,0,0)', - '(1/2,1/2,1/2)', - '(0,1/2,1/2)' - ] - } - } + 'b': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(x,1/2,0)', '(x,0,1/2)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(x,0,0)', '(x,1/2,1/2)']}, + }, }, - (52, 'ba-c'): { - 'IT_number': 52, - 'setting': 1, - 'IT_coordinate_system_code': 'ba-c', - 'name_H-M_alt': 'P n n b', + (45, 'bca'): { + 'IT_number': 45, + 'setting': 4, + 'IT_coordinate_system_code': 'bca', + 'name_H-M_alt': 'I c 2 a', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'e': { + 'c': { 'multiplicity': 8, 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y+1/2,z)', - '(x+1/2,-y+1/2,-z-1/2)', - '(-x+1/2,y,-z-1/2)', - '(-x,-y,-z)', - '(x,y+1/2,-z)', - '(-x+1/2,y+1/2,z-1/2)', - '(x+1/2,-y,z-1/2)' - ] - }, - 'd': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(1/4,y,-1/4)', - '(3/4,-y+1/2,-1/4)', - '(3/4,-y,-3/4)', - '(1/4,y+1/2,-3/4)' - ] + 'coords_xyz': ['(x,y,z)', '(-x,y,-z)', '(-x+1/2,y,z+1/2)', '(x+1/2,y,-z+1/2)'], }, + 'b': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(1/2,y,0)', '(0,y,1/2)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(0,y,0)', '(1/2,y,1/2)']}, + }, + }, + (45, 'a-cb'): { + 'IT_number': 45, + 'setting': 5, + 'IT_coordinate_system_code': 'a-cb', + 'name_H-M_alt': 'I c 2 a', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { 'c': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,1/4,z)', - '(1/2,1/4,-z-1/2)', - '(0,3/4,-z)', - '(1/2,3/4,z-1/2)' - ] + 'multiplicity': 8, + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(-x,y,-z)', '(x+1/2,y,-z+1/2)', '(-x+1/2,y,z+1/2)'], }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,-1/2)', - '(0,1/2,-1/2)', - '(1/2,1/2,0)', - '(1/2,0,0)' - ] + 'b': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(0,y,1/2)', '(1/2,y,0)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(0,y,0)', '(1/2,y,1/2)']}, + }, + }, + (46, 'abc'): { + 'IT_number': 46, + 'setting': 0, + 'IT_coordinate_system_code': 'abc', + 'name_H-M_alt': 'I m a 2', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'c': { + 'multiplicity': 8, + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(-x,-y,z)', '(x+1/2,-y,z)', '(-x+1/2,y,z)'], }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(0,1/2,0)', - '(1/2,1/2,-1/2)', - '(1/2,0,-1/2)' - ] - } - } + 'b': {'multiplicity': 4, 'site_symmetry': 'm..', 'coords_xyz': ['(1/4,y,z)', '(3/4,-y,z)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(0,0,z)', '(1/2,0,z)']}, + }, }, - (52, 'cab'): { - 'IT_number': 52, - 'setting': 2, - 'IT_coordinate_system_code': 'cab', - 'name_H-M_alt': 'P b n n', + (46, 'ba-c'): { + 'IT_number': 46, + 'setting': 1, + 'IT_coordinate_system_code': 'ba-c', + 'name_H-M_alt': 'I b m 2', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'e': { + 'c': { 'multiplicity': 8, 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,-y+1/2,-z)', - '(-x+1/2,-y+1/2,z+1/2)', - '(-x+1/2,y,-z+1/2)', - '(-x,-y,-z)', - '(-x,y+1/2,z)', - '(x+1/2,y+1/2,-z+1/2)', - '(x+1/2,-y,z+1/2)' - ] - }, - 'd': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(1/4,y,1/4)', - '(1/4,-y+1/2,3/4)', - '(3/4,-y,3/4)', - '(3/4,y+1/2,1/4)' - ] + 'coords_xyz': ['(x,y,z)', '(-x,-y,z)', '(-x,y+1/2,z)', '(x,-y+1/2,z)'], }, + 'b': {'multiplicity': 4, 'site_symmetry': 'm..', 'coords_xyz': ['(x,1/4,z)', '(-x,3/4,z)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(0,0,z)', '(0,1/2,z)']}, + }, + }, + (46, 'cab'): { + 'IT_number': 46, + 'setting': 2, + 'IT_coordinate_system_code': 'cab', + 'name_H-M_alt': 'I 2 m b', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { 'c': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,1/4,0)', - '(-x+1/2,1/4,1/2)', - '(-x,3/4,0)', - '(x+1/2,3/4,1/2)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/2,0,0)', - '(1/2,1/2,0)', - '(0,1/2,1/2)', - '(0,0,1/2)' - ] + 'multiplicity': 8, + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(x,-y,-z)', '(x,y+1/2,-z)', '(x,-y+1/2,z)'], }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(0,1/2,0)', - '(1/2,1/2,1/2)', - '(1/2,0,1/2)' - ] - } - } + 'b': {'multiplicity': 4, 'site_symmetry': 'm..', 'coords_xyz': ['(x,1/4,z)', '(x,3/4,-z)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(x,0,0)', '(x,1/2,0)']}, + }, }, - (52, '-cba'): { - 'IT_number': 52, + (46, '-cba'): { + 'IT_number': 46, 'setting': 3, 'IT_coordinate_system_code': '-cba', - 'name_H-M_alt': 'P c n n', + 'name_H-M_alt': 'I 2 c m', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'e': { + 'c': { 'multiplicity': 8, 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,-y,-z+1/2)', - '(-x-1/2,y+1/2,-z+1/2)', - '(-x-1/2,-y+1/2,z)', - '(-x,-y,-z)', - '(-x,y,z+1/2)', - '(x-1/2,-y+1/2,z+1/2)', - '(x-1/2,y+1/2,-z)' - ] - }, - 'd': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(-1/4,1/4,z)', - '(-1/4,3/4,-z+1/2)', - '(-3/4,3/4,-z)', - '(-3/4,1/4,z+1/2)' - ] - }, - 'c': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,0,1/4)', - '(-x-1/2,1/2,1/4)', - '(-x,0,3/4)', - '(x-1/2,1/2,3/4)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(-1/2,0,0)', - '(-1/2,0,1/2)', - '(0,1/2,1/2)', - '(0,1/2,0)' - ] + 'coords_xyz': ['(x,y,z)', '(x,-y,-z)', '(x,-y,z+1/2)', '(x,y,-z+1/2)'], }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(0,0,1/2)', - '(-1/2,1/2,1/2)', - '(-1/2,1/2,0)' - ] - } - } + 'b': {'multiplicity': 4, 'site_symmetry': 'm..', 'coords_xyz': ['(x,y,1/4)', '(x,-y,3/4)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(x,0,0)', '(x,0,1/2)']}, + }, }, - (52, 'bca'): { - 'IT_number': 52, + (46, 'bca'): { + 'IT_number': 46, 'setting': 4, 'IT_coordinate_system_code': 'bca', - 'name_H-M_alt': 'P n c n', + 'name_H-M_alt': 'I c 2 m', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'e': { + 'c': { 'multiplicity': 8, 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y,-z+1/2)', - '(x+1/2,-y+1/2,-z+1/2)', - '(-x+1/2,-y+1/2,z)', - '(-x,-y,-z)', - '(x,-y,z+1/2)', - '(-x+1/2,y+1/2,z+1/2)', - '(x+1/2,y+1/2,-z)' - ] - }, - 'd': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(1/4,1/4,z)', - '(3/4,1/4,-z+1/2)', - '(3/4,3/4,-z)', - '(1/4,3/4,z+1/2)' - ] - }, - 'c': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,y,1/4)', - '(1/2,-y+1/2,1/4)', - '(0,-y,3/4)', - '(1/2,y+1/2,3/4)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,1/2,0)', - '(0,1/2,1/2)', - '(1/2,0,1/2)', - '(1/2,0,0)' - ] + 'coords_xyz': ['(x,y,z)', '(-x,y,-z)', '(-x,y,z+1/2)', '(x,y,-z+1/2)'], }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(0,0,1/2)', - '(1/2,1/2,1/2)', - '(1/2,1/2,0)' - ] - } - } + 'b': {'multiplicity': 4, 'site_symmetry': 'm..', 'coords_xyz': ['(x,y,1/4)', '(-x,y,3/4)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(0,y,0)', '(0,y,1/2)']}, + }, }, - (52, 'a-cb'): { - 'IT_number': 52, + (46, 'a-cb'): { + 'IT_number': 46, 'setting': 5, 'IT_coordinate_system_code': 'a-cb', - 'name_H-M_alt': 'P n a n', + 'name_H-M_alt': 'I m 2 a', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'e': { + 'c': { 'multiplicity': 8, 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x+1/2,y,-z)', - '(-x+1/2,-y-1/2,z+1/2)', - '(x,-y-1/2,-z+1/2)', - '(-x,-y,-z)', - '(x+1/2,-y,z)', - '(x+1/2,y-1/2,-z+1/2)', - '(-x,y-1/2,z+1/2)' - ] - }, - 'd': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(x,-1/4,1/4)', - '(-x+1/2,-1/4,3/4)', - '(-x,-3/4,3/4)', - '(x+1/2,-3/4,1/4)' - ] - }, - 'c': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/4,y,0)', - '(1/4,-y-1/2,1/2)', - '(3/4,-y,0)', - '(3/4,y-1/2,1/2)' - ] + 'coords_xyz': ['(x,y,z)', '(-x,y,-z)', '(x+1/2,y,-z)', '(-x+1/2,y,z)'], }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,-1/2,0)', - '(1/2,-1/2,0)', - '(1/2,0,1/2)', - '(0,0,1/2)' - ] - }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,0,0)', - '(1/2,-1/2,1/2)', - '(0,-1/2,1/2)' - ] - } - } + 'b': {'multiplicity': 4, 'site_symmetry': 'm..', 'coords_xyz': ['(1/4,y,z)', '(3/4,y,-z)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(0,y,0)', '(1/2,y,0)']}, + }, }, - (53, 'abc'): { - 'IT_number': 53, + (47, 'abc'): { + 'IT_number': 47, 'setting': 0, 'IT_coordinate_system_code': 'abc', - 'name_H-M_alt': 'P m n a', + 'name_H-M_alt': 'P m m m', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'i': { + 'A': { 'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(-x+1/2,-y,z+1/2)', - '(-x+1/2,y,-z+1/2)', + '(-x,-y,z)', + '(-x,y,-z)', '(x,-y,-z)', '(-x,-y,-z)', - '(x+1/2,y,-z+1/2)', - '(x+1/2,-y,z+1/2)', - '(-x,y,z)' - ] - }, - 'h': { - 'multiplicity': 4, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(0,y,z)', - '(1/2,-y,z+1/2)', - '(1/2,y,-z+1/2)', - '(0,-y,-z)' - ] - }, - 'g': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(1/4,y,1/4)', - '(1/4,-y,3/4)', - '(3/4,-y,3/4)', - '(3/4,y,1/4)' - ] + '(x,y,-z)', + '(x,-y,z)', + '(-x,y,z)', + ], }, - 'f': { + 'z': { 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(x,1/2,0)', - '(-x+1/2,1/2,1/2)', - '(-x,1/2,0)', - '(x+1/2,1/2,1/2)' - ] + 'site_symmetry': '..m', + 'coords_xyz': ['(x,y,1/2)', '(-x,-y,1/2)', '(-x,y,1/2)', '(x,-y,1/2)'], }, - 'e': { + 'y': {'multiplicity': 4, 'site_symmetry': '..m', 'coords_xyz': ['(x,y,0)', '(-x,-y,0)', '(-x,y,0)', '(x,-y,0)']}, + 'x': { 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(x,0,0)', - '(-x+1/2,0,1/2)', - '(-x,0,0)', - '(x+1/2,0,1/2)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(0,1/2,0)', - '(1/2,1/2,1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(1/2,1/2,0)', - '(0,1/2,1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(1/2,0,0)', - '(0,0,1/2)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,0,1/2)' - ] - } - } + 'site_symmetry': '.m.', + 'coords_xyz': ['(x,1/2,z)', '(-x,1/2,z)', '(-x,1/2,-z)', '(x,1/2,-z)'], + }, + 'w': {'multiplicity': 4, 'site_symmetry': '.m.', 'coords_xyz': ['(x,0,z)', '(-x,0,z)', '(-x,0,-z)', '(x,0,-z)']}, + 'v': { + 'multiplicity': 4, + 'site_symmetry': 'm..', + 'coords_xyz': ['(1/2,y,z)', '(1/2,-y,z)', '(1/2,y,-z)', '(1/2,-y,-z)'], + }, + 'u': {'multiplicity': 4, 'site_symmetry': 'm..', 'coords_xyz': ['(0,y,z)', '(0,-y,z)', '(0,y,-z)', '(0,-y,-z)']}, + 't': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(1/2,1/2,z)', '(1/2,1/2,-z)']}, + 's': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(1/2,0,z)', '(1/2,0,-z)']}, + 'r': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(0,1/2,z)', '(0,1/2,-z)']}, + 'q': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(0,0,z)', '(0,0,-z)']}, + 'p': {'multiplicity': 2, 'site_symmetry': 'm2m', 'coords_xyz': ['(1/2,y,1/2)', '(1/2,-y,1/2)']}, + 'o': {'multiplicity': 2, 'site_symmetry': 'm2m', 'coords_xyz': ['(1/2,y,0)', '(1/2,-y,0)']}, + 'n': {'multiplicity': 2, 'site_symmetry': 'm2m', 'coords_xyz': ['(0,y,1/2)', '(0,-y,1/2)']}, + 'm': {'multiplicity': 2, 'site_symmetry': 'm2m', 'coords_xyz': ['(0,y,0)', '(0,-y,0)']}, + 'l': {'multiplicity': 2, 'site_symmetry': '2mm', 'coords_xyz': ['(x,1/2,1/2)', '(-x,1/2,1/2)']}, + 'k': {'multiplicity': 2, 'site_symmetry': '2mm', 'coords_xyz': ['(x,1/2,0)', '(-x,1/2,0)']}, + 'j': {'multiplicity': 2, 'site_symmetry': '2mm', 'coords_xyz': ['(x,0,1/2)', '(-x,0,1/2)']}, + 'i': {'multiplicity': 2, 'site_symmetry': '2mm', 'coords_xyz': ['(x,0,0)', '(-x,0,0)']}, + 'h': {'multiplicity': 1, 'site_symmetry': 'mmm', 'coords_xyz': ['(1/2,1/2,1/2)']}, + 'g': {'multiplicity': 1, 'site_symmetry': 'mmm', 'coords_xyz': ['(0,1/2,1/2)']}, + 'f': {'multiplicity': 1, 'site_symmetry': 'mmm', 'coords_xyz': ['(1/2,1/2,0)']}, + 'e': {'multiplicity': 1, 'site_symmetry': 'mmm', 'coords_xyz': ['(0,1/2,0)']}, + 'd': {'multiplicity': 1, 'site_symmetry': 'mmm', 'coords_xyz': ['(1/2,0,1/2)']}, + 'c': {'multiplicity': 1, 'site_symmetry': 'mmm', 'coords_xyz': ['(0,0,1/2)']}, + 'b': {'multiplicity': 1, 'site_symmetry': 'mmm', 'coords_xyz': ['(1/2,0,0)']}, + 'a': {'multiplicity': 1, 'site_symmetry': 'mmm', 'coords_xyz': ['(0,0,0)']}, + }, }, - (53, 'ba-c'): { - 'IT_number': 53, + (47, 'ba-c'): { + 'IT_number': 47, 'setting': 1, 'IT_coordinate_system_code': 'ba-c', - 'name_H-M_alt': 'P n m b', + 'name_H-M_alt': 'P m m m', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'i': { + 'A': { 'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(-x,-y+1/2,z-1/2)', - '(x,-y+1/2,-z-1/2)', + '(-x,-y,z)', + '(x,-y,-z)', '(-x,y,-z)', '(-x,-y,-z)', - '(x,y+1/2,-z-1/2)', - '(-x,y+1/2,z-1/2)', - '(x,-y,z)' - ] - }, - 'h': { - 'multiplicity': 4, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,0,z)', - '(-x,1/2,z-1/2)', - '(x,1/2,-z-1/2)', - '(-x,0,-z)' - ] + '(x,y,-z)', + '(-x,y,z)', + '(x,-y,z)', + ], }, - 'g': { + 'z': { 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,1/4,-1/4)', - '(-x,1/4,-3/4)', - '(-x,3/4,-3/4)', - '(x,3/4,-1/4)' - ] + 'site_symmetry': '..m', + 'coords_xyz': ['(x,y,-1/2)', '(-x,-y,-1/2)', '(x,-y,-1/2)', '(-x,y,-1/2)'], }, - 'f': { + 'y': {'multiplicity': 4, 'site_symmetry': '..m', 'coords_xyz': ['(x,y,0)', '(-x,-y,0)', '(x,-y,0)', '(-x,y,0)']}, + 'x': { 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(1/2,y,0)', - '(1/2,-y+1/2,-1/2)', - '(1/2,-y,0)', - '(1/2,y+1/2,-1/2)' - ] + 'site_symmetry': '.m.', + 'coords_xyz': ['(1/2,y,z)', '(1/2,-y,z)', '(1/2,-y,-z)', '(1/2,y,-z)'], }, - 'e': { + 'w': {'multiplicity': 4, 'site_symmetry': '.m.', 'coords_xyz': ['(0,y,z)', '(0,-y,z)', '(0,-y,-z)', '(0,y,-z)']}, + 'v': { 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y+1/2,-1/2)', - '(0,-y,0)', - '(0,y+1/2,-1/2)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(1/2,0,0)', - '(1/2,1/2,-1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(1/2,1/2,0)', - '(1/2,0,-1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(0,1/2,0)', - '(0,0,-1/2)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(0,0,0)', - '(0,1/2,-1/2)' - ] - } - } + 'site_symmetry': 'm..', + 'coords_xyz': ['(x,1/2,z)', '(-x,1/2,z)', '(x,1/2,-z)', '(-x,1/2,-z)'], + }, + 'u': {'multiplicity': 4, 'site_symmetry': 'm..', 'coords_xyz': ['(x,0,z)', '(-x,0,z)', '(x,0,-z)', '(-x,0,-z)']}, + 't': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(1/2,1/2,z)', '(1/2,1/2,-z)']}, + 's': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(0,1/2,z)', '(0,1/2,-z)']}, + 'r': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(1/2,0,z)', '(1/2,0,-z)']}, + 'q': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(0,0,z)', '(0,0,-z)']}, + 'p': {'multiplicity': 2, 'site_symmetry': 'm2m', 'coords_xyz': ['(x,1/2,-1/2)', '(-x,1/2,-1/2)']}, + 'o': {'multiplicity': 2, 'site_symmetry': 'm2m', 'coords_xyz': ['(x,1/2,0)', '(-x,1/2,0)']}, + 'n': {'multiplicity': 2, 'site_symmetry': 'm2m', 'coords_xyz': ['(x,0,-1/2)', '(-x,0,-1/2)']}, + 'm': {'multiplicity': 2, 'site_symmetry': 'm2m', 'coords_xyz': ['(x,0,0)', '(-x,0,0)']}, + 'l': {'multiplicity': 2, 'site_symmetry': '2mm', 'coords_xyz': ['(1/2,y,-1/2)', '(1/2,-y,-1/2)']}, + 'k': {'multiplicity': 2, 'site_symmetry': '2mm', 'coords_xyz': ['(1/2,y,0)', '(1/2,-y,0)']}, + 'j': {'multiplicity': 2, 'site_symmetry': '2mm', 'coords_xyz': ['(0,y,-1/2)', '(0,-y,-1/2)']}, + 'i': {'multiplicity': 2, 'site_symmetry': '2mm', 'coords_xyz': ['(0,y,0)', '(0,-y,0)']}, + 'h': {'multiplicity': 1, 'site_symmetry': 'mmm', 'coords_xyz': ['(1/2,1/2,-1/2)']}, + 'g': {'multiplicity': 1, 'site_symmetry': 'mmm', 'coords_xyz': ['(1/2,0,-1/2)']}, + 'f': {'multiplicity': 1, 'site_symmetry': 'mmm', 'coords_xyz': ['(1/2,1/2,0)']}, + 'e': {'multiplicity': 1, 'site_symmetry': 'mmm', 'coords_xyz': ['(1/2,0,0)']}, + 'd': {'multiplicity': 1, 'site_symmetry': 'mmm', 'coords_xyz': ['(0,1/2,-1/2)']}, + 'c': {'multiplicity': 1, 'site_symmetry': 'mmm', 'coords_xyz': ['(0,0,-1/2)']}, + 'b': {'multiplicity': 1, 'site_symmetry': 'mmm', 'coords_xyz': ['(0,1/2,0)']}, + 'a': {'multiplicity': 1, 'site_symmetry': 'mmm', 'coords_xyz': ['(0,0,0)']}, + }, }, - (53, 'cab'): { - 'IT_number': 53, + (47, 'cab'): { + 'IT_number': 47, 'setting': 2, 'IT_coordinate_system_code': 'cab', - 'name_H-M_alt': 'P b m n', + 'name_H-M_alt': 'P m m m', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'i': { + 'A': { 'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(x+1/2,-y+1/2,-z)', - '(-x+1/2,-y+1/2,z)', + '(x,-y,-z)', + '(-x,-y,z)', '(-x,y,-z)', '(-x,-y,-z)', - '(-x+1/2,y+1/2,z)', - '(x+1/2,y+1/2,-z)', - '(x,-y,z)' - ] - }, - 'h': { - 'multiplicity': 4, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,0,z)', - '(x+1/2,1/2,-z)', - '(-x+1/2,1/2,z)', - '(-x,0,-z)' - ] + '(-x,y,z)', + '(x,y,-z)', + '(x,-y,z)', + ], }, - 'g': { + 'z': { 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(1/4,1/4,z)', - '(3/4,1/4,-z)', - '(3/4,3/4,-z)', - '(1/4,3/4,z)' - ] + 'site_symmetry': '..m', + 'coords_xyz': ['(1/2,y,z)', '(1/2,-y,-z)', '(1/2,-y,z)', '(1/2,y,-z)'], }, - 'f': { + 'y': {'multiplicity': 4, 'site_symmetry': '..m', 'coords_xyz': ['(0,y,z)', '(0,-y,-z)', '(0,-y,z)', '(0,y,-z)']}, + 'x': { 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,y,1/2)', - '(1/2,-y+1/2,1/2)', - '(0,-y,1/2)', - '(1/2,y+1/2,1/2)' - ] + 'site_symmetry': '.m.', + 'coords_xyz': ['(x,y,1/2)', '(x,-y,1/2)', '(-x,-y,1/2)', '(-x,y,1/2)'], }, - 'e': { + 'w': {'multiplicity': 4, 'site_symmetry': '.m.', 'coords_xyz': ['(x,y,0)', '(x,-y,0)', '(-x,-y,0)', '(-x,y,0)']}, + 'v': { 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,y,0)', - '(1/2,-y+1/2,0)', - '(0,-y,0)', - '(1/2,y+1/2,0)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(0,0,1/2)', - '(1/2,1/2,1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(0,1/2,1/2)', - '(1/2,0,1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(0,1/2,0)', - '(1/2,0,0)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,1/2,0)' - ] - } - } + 'site_symmetry': 'm..', + 'coords_xyz': ['(x,1/2,z)', '(x,1/2,-z)', '(-x,1/2,z)', '(-x,1/2,-z)'], + }, + 'u': {'multiplicity': 4, 'site_symmetry': 'm..', 'coords_xyz': ['(x,0,z)', '(x,0,-z)', '(-x,0,z)', '(-x,0,-z)']}, + 't': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(x,1/2,1/2)', '(-x,1/2,1/2)']}, + 's': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(x,1/2,0)', '(-x,1/2,0)']}, + 'r': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(x,0,1/2)', '(-x,0,1/2)']}, + 'q': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(x,0,0)', '(-x,0,0)']}, + 'p': {'multiplicity': 2, 'site_symmetry': 'm2m', 'coords_xyz': ['(1/2,1/2,z)', '(1/2,1/2,-z)']}, + 'o': {'multiplicity': 2, 'site_symmetry': 'm2m', 'coords_xyz': ['(0,1/2,z)', '(0,1/2,-z)']}, + 'n': {'multiplicity': 2, 'site_symmetry': 'm2m', 'coords_xyz': ['(1/2,0,z)', '(1/2,0,-z)']}, + 'm': {'multiplicity': 2, 'site_symmetry': 'm2m', 'coords_xyz': ['(0,0,z)', '(0,0,-z)']}, + 'l': {'multiplicity': 2, 'site_symmetry': '2mm', 'coords_xyz': ['(1/2,y,1/2)', '(1/2,-y,1/2)']}, + 'k': {'multiplicity': 2, 'site_symmetry': '2mm', 'coords_xyz': ['(0,y,1/2)', '(0,-y,1/2)']}, + 'j': {'multiplicity': 2, 'site_symmetry': '2mm', 'coords_xyz': ['(1/2,y,0)', '(1/2,-y,0)']}, + 'i': {'multiplicity': 2, 'site_symmetry': '2mm', 'coords_xyz': ['(0,y,0)', '(0,-y,0)']}, + 'h': {'multiplicity': 1, 'site_symmetry': 'mmm', 'coords_xyz': ['(1/2,1/2,1/2)']}, + 'g': {'multiplicity': 1, 'site_symmetry': 'mmm', 'coords_xyz': ['(1/2,0,1/2)']}, + 'f': {'multiplicity': 1, 'site_symmetry': 'mmm', 'coords_xyz': ['(0,1/2,1/2)']}, + 'e': {'multiplicity': 1, 'site_symmetry': 'mmm', 'coords_xyz': ['(0,0,1/2)']}, + 'd': {'multiplicity': 1, 'site_symmetry': 'mmm', 'coords_xyz': ['(1/2,1/2,0)']}, + 'c': {'multiplicity': 1, 'site_symmetry': 'mmm', 'coords_xyz': ['(1/2,0,0)']}, + 'b': {'multiplicity': 1, 'site_symmetry': 'mmm', 'coords_xyz': ['(0,1/2,0)']}, + 'a': {'multiplicity': 1, 'site_symmetry': 'mmm', 'coords_xyz': ['(0,0,0)']}, + }, }, - (53, '-cba'): { - 'IT_number': 53, + (47, '-cba'): { + 'IT_number': 47, 'setting': 3, 'IT_coordinate_system_code': '-cba', - 'name_H-M_alt': 'P c n m', + 'name_H-M_alt': 'P m m m', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'i': { + 'A': { 'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(x-1/2,-y,-z+1/2)', - '(-x-1/2,y,-z+1/2)', + '(x,-y,-z)', + '(-x,y,-z)', '(-x,-y,z)', '(-x,-y,-z)', - '(-x-1/2,y,z+1/2)', - '(x-1/2,-y,z+1/2)', - '(x,y,-z)' - ] - }, - 'h': { - 'multiplicity': 4, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,y,0)', - '(x-1/2,-y,1/2)', - '(-x-1/2,y,1/2)', - '(-x,-y,0)' - ] + '(-x,y,z)', + '(x,-y,z)', + '(x,y,-z)', + ], }, - 'g': { + 'z': { 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(-1/4,y,1/4)', - '(-3/4,-y,1/4)', - '(-3/4,-y,3/4)', - '(-1/4,y,3/4)' - ] + 'site_symmetry': '..m', + 'coords_xyz': ['(-1/2,y,z)', '(-1/2,-y,-z)', '(-1/2,y,-z)', '(-1/2,-y,z)'], }, - 'f': { + 'y': {'multiplicity': 4, 'site_symmetry': '..m', 'coords_xyz': ['(0,y,z)', '(0,-y,-z)', '(0,y,-z)', '(0,-y,z)']}, + 'x': { 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,1/2,z)', - '(-1/2,1/2,-z+1/2)', - '(0,1/2,-z)', - '(-1/2,1/2,z+1/2)' - ] + 'site_symmetry': '.m.', + 'coords_xyz': ['(x,1/2,z)', '(x,1/2,-z)', '(-x,1/2,-z)', '(-x,1/2,z)'], }, - 'e': { + 'w': {'multiplicity': 4, 'site_symmetry': '.m.', 'coords_xyz': ['(x,0,z)', '(x,0,-z)', '(-x,0,-z)', '(-x,0,z)']}, + 'v': { 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,0,z)', - '(-1/2,0,-z+1/2)', - '(0,0,-z)', - '(-1/2,0,z+1/2)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(0,1/2,0)', - '(-1/2,1/2,1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(0,1/2,1/2)', - '(-1/2,1/2,0)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(0,0,1/2)', - '(-1/2,0,0)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(0,0,0)', - '(-1/2,0,1/2)' - ] - } - } + 'site_symmetry': 'm..', + 'coords_xyz': ['(x,y,1/2)', '(x,-y,1/2)', '(-x,y,1/2)', '(-x,-y,1/2)'], + }, + 'u': {'multiplicity': 4, 'site_symmetry': 'm..', 'coords_xyz': ['(x,y,0)', '(x,-y,0)', '(-x,y,0)', '(-x,-y,0)']}, + 't': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(x,1/2,1/2)', '(-x,1/2,1/2)']}, + 's': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(x,0,1/2)', '(-x,0,1/2)']}, + 'r': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(x,1/2,0)', '(-x,1/2,0)']}, + 'q': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(x,0,0)', '(-x,0,0)']}, + 'p': {'multiplicity': 2, 'site_symmetry': 'm2m', 'coords_xyz': ['(-1/2,y,1/2)', '(-1/2,-y,1/2)']}, + 'o': {'multiplicity': 2, 'site_symmetry': 'm2m', 'coords_xyz': ['(0,y,1/2)', '(0,-y,1/2)']}, + 'n': {'multiplicity': 2, 'site_symmetry': 'm2m', 'coords_xyz': ['(-1/2,y,0)', '(-1/2,-y,0)']}, + 'm': {'multiplicity': 2, 'site_symmetry': 'm2m', 'coords_xyz': ['(0,y,0)', '(0,-y,0)']}, + 'l': {'multiplicity': 2, 'site_symmetry': '2mm', 'coords_xyz': ['(-1/2,1/2,z)', '(-1/2,1/2,-z)']}, + 'k': {'multiplicity': 2, 'site_symmetry': '2mm', 'coords_xyz': ['(0,1/2,z)', '(0,1/2,-z)']}, + 'j': {'multiplicity': 2, 'site_symmetry': '2mm', 'coords_xyz': ['(-1/2,0,z)', '(-1/2,0,-z)']}, + 'i': {'multiplicity': 2, 'site_symmetry': '2mm', 'coords_xyz': ['(0,0,z)', '(0,0,-z)']}, + 'h': {'multiplicity': 1, 'site_symmetry': 'mmm', 'coords_xyz': ['(-1/2,1/2,1/2)']}, + 'g': {'multiplicity': 1, 'site_symmetry': 'mmm', 'coords_xyz': ['(-1/2,1/2,0)']}, + 'f': {'multiplicity': 1, 'site_symmetry': 'mmm', 'coords_xyz': ['(0,1/2,1/2)']}, + 'e': {'multiplicity': 1, 'site_symmetry': 'mmm', 'coords_xyz': ['(0,1/2,0)']}, + 'd': {'multiplicity': 1, 'site_symmetry': 'mmm', 'coords_xyz': ['(-1/2,0,1/2)']}, + 'c': {'multiplicity': 1, 'site_symmetry': 'mmm', 'coords_xyz': ['(-1/2,0,0)']}, + 'b': {'multiplicity': 1, 'site_symmetry': 'mmm', 'coords_xyz': ['(0,0,1/2)']}, + 'a': {'multiplicity': 1, 'site_symmetry': 'mmm', 'coords_xyz': ['(0,0,0)']}, + }, }, - (53, 'bca'): { - 'IT_number': 53, + (47, 'bca'): { + 'IT_number': 47, 'setting': 4, 'IT_coordinate_system_code': 'bca', - 'name_H-M_alt': 'P n c m', + 'name_H-M_alt': 'P m m m', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'i': { + 'A': { 'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(-x,y+1/2,-z+1/2)', - '(x,-y+1/2,-z+1/2)', + '(-x,y,-z)', + '(x,-y,-z)', '(-x,-y,z)', '(-x,-y,-z)', - '(x,-y+1/2,z+1/2)', - '(-x,y+1/2,z+1/2)', - '(x,y,-z)' - ] - }, - 'h': { - 'multiplicity': 4, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,y,0)', - '(-x,y+1/2,1/2)', - '(x,-y+1/2,1/2)', - '(-x,-y,0)' - ] - }, - 'g': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,1/4,1/4)', - '(-x,3/4,1/4)', - '(-x,3/4,3/4)', - '(x,1/4,3/4)' - ] + '(x,-y,z)', + '(-x,y,z)', + '(x,y,-z)', + ], }, - 'f': { + 'z': { 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(1/2,0,z)', - '(1/2,1/2,-z+1/2)', - '(1/2,0,-z)', - '(1/2,1/2,z+1/2)' - ] + 'site_symmetry': '..m', + 'coords_xyz': ['(x,1/2,z)', '(-x,1/2,-z)', '(x,1/2,-z)', '(-x,1/2,z)'], }, - 'e': { + 'y': {'multiplicity': 4, 'site_symmetry': '..m', 'coords_xyz': ['(x,0,z)', '(-x,0,-z)', '(x,0,-z)', '(-x,0,z)']}, + 'x': { 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,0,z)', - '(0,1/2,-z+1/2)', - '(0,0,-z)', - '(0,1/2,z+1/2)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(1/2,0,0)', - '(1/2,1/2,1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(1/2,0,1/2)', - '(1/2,1/2,0)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(0,0,1/2)', - '(0,1/2,0)' - ] + 'site_symmetry': '.m.', + 'coords_xyz': ['(1/2,y,z)', '(1/2,y,-z)', '(1/2,-y,-z)', '(1/2,-y,z)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(0,0,0)', - '(0,1/2,1/2)' - ] - } - } + 'w': {'multiplicity': 4, 'site_symmetry': '.m.', 'coords_xyz': ['(0,y,z)', '(0,y,-z)', '(0,-y,-z)', '(0,-y,z)']}, + 'v': { + 'multiplicity': 4, + 'site_symmetry': 'm..', + 'coords_xyz': ['(x,y,1/2)', '(-x,y,1/2)', '(x,-y,1/2)', '(-x,-y,1/2)'], + }, + 'u': {'multiplicity': 4, 'site_symmetry': 'm..', 'coords_xyz': ['(x,y,0)', '(-x,y,0)', '(x,-y,0)', '(-x,-y,0)']}, + 't': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(1/2,y,1/2)', '(1/2,-y,1/2)']}, + 's': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(0,y,1/2)', '(0,-y,1/2)']}, + 'r': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(1/2,y,0)', '(1/2,-y,0)']}, + 'q': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(0,y,0)', '(0,-y,0)']}, + 'p': {'multiplicity': 2, 'site_symmetry': 'm2m', 'coords_xyz': ['(x,1/2,1/2)', '(-x,1/2,1/2)']}, + 'o': {'multiplicity': 2, 'site_symmetry': 'm2m', 'coords_xyz': ['(x,0,1/2)', '(-x,0,1/2)']}, + 'n': {'multiplicity': 2, 'site_symmetry': 'm2m', 'coords_xyz': ['(x,1/2,0)', '(-x,1/2,0)']}, + 'm': {'multiplicity': 2, 'site_symmetry': 'm2m', 'coords_xyz': ['(x,0,0)', '(-x,0,0)']}, + 'l': {'multiplicity': 2, 'site_symmetry': '2mm', 'coords_xyz': ['(1/2,1/2,z)', '(1/2,1/2,-z)']}, + 'k': {'multiplicity': 2, 'site_symmetry': '2mm', 'coords_xyz': ['(1/2,0,z)', '(1/2,0,-z)']}, + 'j': {'multiplicity': 2, 'site_symmetry': '2mm', 'coords_xyz': ['(0,1/2,z)', '(0,1/2,-z)']}, + 'i': {'multiplicity': 2, 'site_symmetry': '2mm', 'coords_xyz': ['(0,0,z)', '(0,0,-z)']}, + 'h': {'multiplicity': 1, 'site_symmetry': 'mmm', 'coords_xyz': ['(1/2,1/2,1/2)']}, + 'g': {'multiplicity': 1, 'site_symmetry': 'mmm', 'coords_xyz': ['(1/2,1/2,0)']}, + 'f': {'multiplicity': 1, 'site_symmetry': 'mmm', 'coords_xyz': ['(1/2,0,1/2)']}, + 'e': {'multiplicity': 1, 'site_symmetry': 'mmm', 'coords_xyz': ['(1/2,0,0)']}, + 'd': {'multiplicity': 1, 'site_symmetry': 'mmm', 'coords_xyz': ['(0,1/2,1/2)']}, + 'c': {'multiplicity': 1, 'site_symmetry': 'mmm', 'coords_xyz': ['(0,1/2,0)']}, + 'b': {'multiplicity': 1, 'site_symmetry': 'mmm', 'coords_xyz': ['(0,0,1/2)']}, + 'a': {'multiplicity': 1, 'site_symmetry': 'mmm', 'coords_xyz': ['(0,0,0)']}, + }, }, - (53, 'a-cb'): { - 'IT_number': 53, + (47, 'a-cb'): { + 'IT_number': 47, 'setting': 5, 'IT_coordinate_system_code': 'a-cb', - 'name_H-M_alt': 'P m a n', + 'name_H-M_alt': 'P m m m', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'i': { + 'A': { 'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(-x+1/2,y-1/2,-z)', - '(-x+1/2,-y-1/2,z)', + '(-x,y,-z)', + '(-x,-y,z)', '(x,-y,-z)', '(-x,-y,-z)', - '(x+1/2,-y-1/2,z)', - '(x+1/2,y-1/2,-z)', - '(-x,y,z)' - ] - }, - 'h': { - 'multiplicity': 4, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(0,y,z)', - '(1/2,y-1/2,-z)', - '(1/2,-y-1/2,z)', - '(0,-y,-z)' - ] + '(x,-y,z)', + '(x,y,-z)', + '(-x,y,z)', + ], }, - 'g': { + 'z': { 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(1/4,-1/4,z)', - '(1/4,-3/4,-z)', - '(3/4,-3/4,-z)', - '(3/4,-1/4,z)' - ] + 'site_symmetry': '..m', + 'coords_xyz': ['(x,-1/2,z)', '(-x,-1/2,-z)', '(-x,-1/2,z)', '(x,-1/2,-z)'], }, - 'f': { + 'y': {'multiplicity': 4, 'site_symmetry': '..m', 'coords_xyz': ['(x,0,z)', '(-x,0,-z)', '(-x,0,z)', '(x,0,-z)']}, + 'x': { 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(x,0,1/2)', - '(-x+1/2,-1/2,1/2)', - '(-x,0,1/2)', - '(x+1/2,-1/2,1/2)' - ] + 'site_symmetry': '.m.', + 'coords_xyz': ['(x,y,1/2)', '(-x,y,1/2)', '(-x,-y,1/2)', '(x,-y,1/2)'], }, - 'e': { + 'w': {'multiplicity': 4, 'site_symmetry': '.m.', 'coords_xyz': ['(x,y,0)', '(-x,y,0)', '(-x,-y,0)', '(x,-y,0)']}, + 'v': { 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(x,0,0)', - '(-x+1/2,-1/2,0)', - '(-x,0,0)', - '(x+1/2,-1/2,0)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(0,0,1/2)', - '(1/2,-1/2,1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(1/2,0,1/2)', - '(0,-1/2,1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(1/2,0,0)', - '(0,-1/2,0)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,-1/2,0)' - ] - } - } + 'site_symmetry': 'm..', + 'coords_xyz': ['(1/2,y,z)', '(1/2,y,-z)', '(1/2,-y,z)', '(1/2,-y,-z)'], + }, + 'u': {'multiplicity': 4, 'site_symmetry': 'm..', 'coords_xyz': ['(0,y,z)', '(0,y,-z)', '(0,-y,z)', '(0,-y,-z)']}, + 't': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(1/2,y,1/2)', '(1/2,-y,1/2)']}, + 's': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(1/2,y,0)', '(1/2,-y,0)']}, + 'r': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(0,y,1/2)', '(0,-y,1/2)']}, + 'q': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(0,y,0)', '(0,-y,0)']}, + 'p': {'multiplicity': 2, 'site_symmetry': 'm2m', 'coords_xyz': ['(1/2,-1/2,z)', '(1/2,-1/2,-z)']}, + 'o': {'multiplicity': 2, 'site_symmetry': 'm2m', 'coords_xyz': ['(1/2,0,z)', '(1/2,0,-z)']}, + 'n': {'multiplicity': 2, 'site_symmetry': 'm2m', 'coords_xyz': ['(0,-1/2,z)', '(0,-1/2,-z)']}, + 'm': {'multiplicity': 2, 'site_symmetry': 'm2m', 'coords_xyz': ['(0,0,z)', '(0,0,-z)']}, + 'l': {'multiplicity': 2, 'site_symmetry': '2mm', 'coords_xyz': ['(x,-1/2,1/2)', '(-x,-1/2,1/2)']}, + 'k': {'multiplicity': 2, 'site_symmetry': '2mm', 'coords_xyz': ['(x,0,1/2)', '(-x,0,1/2)']}, + 'j': {'multiplicity': 2, 'site_symmetry': '2mm', 'coords_xyz': ['(x,-1/2,0)', '(-x,-1/2,0)']}, + 'i': {'multiplicity': 2, 'site_symmetry': '2mm', 'coords_xyz': ['(x,0,0)', '(-x,0,0)']}, + 'h': {'multiplicity': 1, 'site_symmetry': 'mmm', 'coords_xyz': ['(1/2,-1/2,1/2)']}, + 'g': {'multiplicity': 1, 'site_symmetry': 'mmm', 'coords_xyz': ['(0,-1/2,1/2)']}, + 'f': {'multiplicity': 1, 'site_symmetry': 'mmm', 'coords_xyz': ['(1/2,0,1/2)']}, + 'e': {'multiplicity': 1, 'site_symmetry': 'mmm', 'coords_xyz': ['(0,0,1/2)']}, + 'd': {'multiplicity': 1, 'site_symmetry': 'mmm', 'coords_xyz': ['(1/2,-1/2,0)']}, + 'c': {'multiplicity': 1, 'site_symmetry': 'mmm', 'coords_xyz': ['(0,-1/2,0)']}, + 'b': {'multiplicity': 1, 'site_symmetry': 'mmm', 'coords_xyz': ['(1/2,0,0)']}, + 'a': {'multiplicity': 1, 'site_symmetry': 'mmm', 'coords_xyz': ['(0,0,0)']}, + }, }, - (54, 'abc'): { - 'IT_number': 54, - 'setting': 0, - 'IT_coordinate_system_code': 'abc', - 'name_H-M_alt': 'P c c a', + (48, '1abc'): { + 'IT_number': 48, + 'setting': 6, + 'IT_coordinate_system_code': '1abc', + 'name_H-M_alt': 'P n n n', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'f': { + 'm': { 'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(-x+1/2,-y,z)', - '(-x,y,-z+1/2)', - '(x+1/2,-y,-z+1/2)', - '(-x,-y,-z)', - '(x+1/2,y,-z)', - '(x,-y,z+1/2)', - '(-x+1/2,y,z+1/2)' - ] + '(-x,-y,z)', + '(-x,y,-z)', + '(x,-y,-z)', + '(-x+1/2,-y+1/2,-z+1/2)', + '(x+1/2,y+1/2,-z+1/2)', + '(x+1/2,-y+1/2,z+1/2)', + '(-x+1/2,y+1/2,z+1/2)', + ], }, - 'e': { + 'l': { 'multiplicity': 4, 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/4,1/2,z)', - '(3/4,1/2,-z+1/2)', - '(3/4,1/2,-z)', - '(1/4,1/2,z+1/2)' - ] + 'coords_xyz': ['(0,1/2,z)', '(0,1/2,-z)', '(1/2,0,-z+1/2)', '(1/2,0,z+1/2)'], }, - 'd': { + 'k': { 'multiplicity': 4, 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/4,0,z)', - '(3/4,0,-z+1/2)', - '(3/4,0,-z)', - '(1/4,0,z+1/2)' - ] + 'coords_xyz': ['(0,0,z)', '(0,0,-z)', '(1/2,1/2,-z+1/2)', '(1/2,1/2,z+1/2)'], }, - 'c': { + 'j': { 'multiplicity': 4, 'site_symmetry': '.2.', - 'coords_xyz': [ - '(0,y,1/4)', - '(1/2,-y,1/4)', - '(0,-y,3/4)', - '(1/2,y,3/4)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,1/2,0)', - '(1/2,1/2,0)', - '(0,1/2,1/2)', - '(1/2,1/2,1/2)' - ] - }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,0,0)', - '(0,0,1/2)', - '(1/2,0,1/2)' - ] - } - } - }, - (54, 'ba-c'): { - 'IT_number': 54, - 'setting': 1, - 'IT_coordinate_system_code': 'ba-c', - 'name_H-M_alt': 'P c c b', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'f': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y+1/2,z)', - '(x,-y,-z-1/2)', - '(-x,y+1/2,-z-1/2)', - '(-x,-y,-z)', - '(x,y+1/2,-z)', - '(-x,y,z-1/2)', - '(x,-y+1/2,z-1/2)' - ] + 'coords_xyz': ['(1/2,y,0)', '(1/2,-y,0)', '(0,-y+1/2,1/2)', '(0,y+1/2,1/2)'], }, - 'e': { + 'i': { 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/2,1/4,z)', - '(1/2,3/4,-z-1/2)', - '(1/2,3/4,-z)', - '(1/2,1/4,z-1/2)' - ] + 'site_symmetry': '.2.', + 'coords_xyz': ['(0,y,0)', '(0,-y,0)', '(1/2,-y+1/2,1/2)', '(1/2,y+1/2,1/2)'], }, - 'd': { + 'h': { 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,1/4,z)', - '(0,3/4,-z-1/2)', - '(0,3/4,-z)', - '(0,1/4,z-1/2)' - ] + 'site_symmetry': '2..', + 'coords_xyz': ['(x,0,1/2)', '(-x,0,1/2)', '(-x+1/2,1/2,0)', '(x+1/2,1/2,0)'], }, - 'c': { + 'g': { 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,0,-1/4)', - '(-x,1/2,-1/4)', - '(-x,0,-3/4)', - '(x,1/2,-3/4)' - ] + 'site_symmetry': '2..', + 'coords_xyz': ['(x,0,0)', '(-x,0,0)', '(-x+1/2,1/2,1/2)', '(x+1/2,1/2,1/2)'], }, - 'b': { + 'f': { 'multiplicity': 4, 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/2,0,0)', - '(1/2,1/2,0)', - '(1/2,0,-1/2)', - '(1/2,1/2,-1/2)' - ] + 'coords_xyz': ['(3/4,3/4,3/4)', '(1/4,1/4,3/4)', '(1/4,3/4,1/4)', '(3/4,1/4,1/4)'], }, - 'a': { + 'e': { 'multiplicity': 4, 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(0,1/2,0)', - '(0,0,-1/2)', - '(0,1/2,-1/2)' - ] - } - } + 'coords_xyz': ['(1/4,1/4,1/4)', '(3/4,3/4,1/4)', '(3/4,1/4,3/4)', '(1/4,3/4,3/4)'], + }, + 'd': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(0,1/2,0)', '(1/2,0,1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(0,0,1/2)', '(1/2,1/2,0)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(1/2,0,0)', '(0,1/2,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(0,0,0)', '(1/2,1/2,1/2)']}, + }, }, - (54, 'cab'): { - 'IT_number': 54, - 'setting': 2, - 'IT_coordinate_system_code': 'cab', - 'name_H-M_alt': 'P b a a', + (48, '2abc'): { + 'IT_number': 48, + 'setting': 12, + 'IT_coordinate_system_code': '2abc', + 'name_H-M_alt': 'P n n n', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'f': { + 'm': { 'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(x,-y+1/2,-z)', - '(-x+1/2,-y,z)', - '(-x+1/2,y+1/2,-z)', + '(-x+1/2,-y+1/2,z)', + '(-x+1/2,y,-z+1/2)', + '(x,-y+1/2,-z+1/2)', '(-x,-y,-z)', - '(-x,y+1/2,z)', - '(x+1/2,y,-z)', - '(x+1/2,-y+1/2,z)' - ] + '(x+1/2,y+1/2,-z)', + '(x+1/2,-y,z+1/2)', + '(-x,y+1/2,z+1/2)', + ], }, - 'e': { + 'l': { 'multiplicity': 4, 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,1/4,1/2)', - '(-x+1/2,3/4,1/2)', - '(-x,3/4,1/2)', - '(x+1/2,1/4,1/2)' - ] + 'coords_xyz': ['(1/4,3/4,z)', '(1/4,3/4,-z+1/2)', '(3/4,1/4,-z)', '(3/4,1/4,z+1/2)'], }, - 'd': { + 'k': { 'multiplicity': 4, 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,1/4,0)', - '(-x+1/2,3/4,0)', - '(-x,3/4,0)', - '(x+1/2,1/4,0)' - ] + 'coords_xyz': ['(1/4,1/4,z)', '(1/4,1/4,-z+1/2)', '(3/4,3/4,-z)', '(3/4,3/4,z+1/2)'], }, - 'c': { + 'j': { 'multiplicity': 4, 'site_symmetry': '.2.', - 'coords_xyz': [ - '(1/4,0,z)', - '(1/4,1/2,-z)', - '(3/4,0,-z)', - '(3/4,1/2,z)' - ] + 'coords_xyz': ['(3/4,y,1/4)', '(3/4,-y+1/2,1/4)', '(1/4,-y,3/4)', '(1/4,y+1/2,3/4)'], }, - 'b': { + 'i': { + 'multiplicity': 4, + 'site_symmetry': '.2.', + 'coords_xyz': ['(1/4,y,1/4)', '(1/4,-y+1/2,1/4)', '(3/4,-y,3/4)', '(3/4,y+1/2,3/4)'], + }, + 'h': { + 'multiplicity': 4, + 'site_symmetry': '2..', + 'coords_xyz': ['(x,1/4,3/4)', '(-x+1/2,1/4,3/4)', '(-x,3/4,1/4)', '(x+1/2,3/4,1/4)'], + }, + 'g': { + 'multiplicity': 4, + 'site_symmetry': '2..', + 'coords_xyz': ['(x,1/4,1/4)', '(-x+1/2,1/4,1/4)', '(-x,3/4,3/4)', '(x+1/2,3/4,3/4)'], + }, + 'f': { 'multiplicity': 4, 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,1/2)', - '(0,1/2,1/2)', - '(1/2,0,1/2)', - '(1/2,1/2,1/2)' - ] + 'coords_xyz': ['(0,0,0)', '(1/2,1/2,0)', '(1/2,0,1/2)', '(0,1/2,1/2)'], }, - 'a': { + 'e': { 'multiplicity': 4, 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(0,1/2,0)', - '(1/2,0,0)', - '(1/2,1/2,0)' - ] - } - } + 'coords_xyz': ['(1/2,1/2,1/2)', '(0,0,1/2)', '(0,1/2,0)', '(1/2,0,0)'], + }, + 'd': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(1/4,3/4,1/4)', '(3/4,1/4,3/4)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(1/4,1/4,3/4)', '(3/4,3/4,1/4)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(3/4,1/4,1/4)', '(1/4,3/4,3/4)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(1/4,1/4,1/4)', '(3/4,3/4,3/4)']}, + }, }, - (54, '-cba'): { - 'IT_number': 54, - 'setting': 3, - 'IT_coordinate_system_code': '-cba', - 'name_H-M_alt': 'P c a a', + (48, '1ba-c'): { + 'IT_number': 48, + 'setting': 7, + 'IT_coordinate_system_code': '1ba-c', + 'name_H-M_alt': 'P n n n', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'f': { + 'm': { 'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(x,-y,-z+1/2)', - '(-x-1/2,y,-z)', - '(-x-1/2,-y,z+1/2)', - '(-x,-y,-z)', - '(-x,y,z+1/2)', - '(x-1/2,-y,z)', - '(x-1/2,y,-z+1/2)' - ] + '(-x,-y,z)', + '(x,-y,-z)', + '(-x,y,-z)', + '(-x+1/2,-y+1/2,-z-1/2)', + '(x+1/2,y+1/2,-z-1/2)', + '(-x+1/2,y+1/2,z-1/2)', + '(x+1/2,-y+1/2,z-1/2)', + ], }, - 'e': { + 'l': { + 'multiplicity': 4, + 'site_symmetry': '..2', + 'coords_xyz': ['(1/2,0,z)', '(1/2,0,-z)', '(0,1/2,-z-1/2)', '(0,1/2,z-1/2)'], + }, + 'k': { 'multiplicity': 4, 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,1/2,1/4)', - '(-x-1/2,1/2,3/4)', - '(-x,1/2,3/4)', - '(x-1/2,1/2,1/4)' - ] + 'coords_xyz': ['(0,0,z)', '(0,0,-z)', '(1/2,1/2,-z-1/2)', '(1/2,1/2,z-1/2)'], }, - 'd': { + 'j': { 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,0,1/4)', - '(-x-1/2,0,3/4)', - '(-x,0,3/4)', - '(x-1/2,0,1/4)' - ] + 'site_symmetry': '.2.', + 'coords_xyz': ['(x,1/2,0)', '(-x,1/2,0)', '(-x+1/2,0,-1/2)', '(x+1/2,0,-1/2)'], }, - 'c': { + 'i': { 'multiplicity': 4, 'site_symmetry': '.2.', - 'coords_xyz': [ - '(-1/4,y,0)', - '(-1/4,-y,1/2)', - '(-3/4,-y,0)', - '(-3/4,y,1/2)' - ] + 'coords_xyz': ['(x,0,0)', '(-x,0,0)', '(-x+1/2,1/2,-1/2)', '(x+1/2,1/2,-1/2)'], }, - 'b': { + 'h': { + 'multiplicity': 4, + 'site_symmetry': '2..', + 'coords_xyz': ['(0,y,-1/2)', '(0,-y,-1/2)', '(1/2,-y+1/2,0)', '(1/2,y+1/2,0)'], + }, + 'g': { + 'multiplicity': 4, + 'site_symmetry': '2..', + 'coords_xyz': ['(0,y,0)', '(0,-y,0)', '(1/2,-y+1/2,-1/2)', '(1/2,y+1/2,-1/2)'], + }, + 'f': { 'multiplicity': 4, 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,1/2,0)', - '(0,1/2,1/2)', - '(-1/2,1/2,0)', - '(-1/2,1/2,1/2)' - ] + 'coords_xyz': ['(3/4,3/4,-3/4)', '(1/4,1/4,-3/4)', '(3/4,1/4,-1/4)', '(1/4,3/4,-1/4)'], }, - 'a': { + 'e': { 'multiplicity': 4, 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(0,0,1/2)', - '(-1/2,0,0)', - '(-1/2,0,1/2)' - ] - } - } + 'coords_xyz': ['(1/4,1/4,-1/4)', '(3/4,3/4,-1/4)', '(1/4,3/4,-3/4)', '(3/4,1/4,-3/4)'], + }, + 'd': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(1/2,0,0)', '(0,1/2,-1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(0,0,-1/2)', '(1/2,1/2,0)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(0,1/2,0)', '(1/2,0,-1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(0,0,0)', '(1/2,1/2,-1/2)']}, + }, }, - (54, 'bca'): { - 'IT_number': 54, - 'setting': 4, - 'IT_coordinate_system_code': 'bca', - 'name_H-M_alt': 'P b c b', + (48, '2ba-c'): { + 'IT_number': 48, + 'setting': 13, + 'IT_coordinate_system_code': '2ba-c', + 'name_H-M_alt': 'P n n n', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'f': { + 'm': { 'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(-x,y,-z+1/2)', - '(x,-y+1/2,-z)', - '(-x,-y+1/2,z+1/2)', + '(-x+1/2,-y+1/2,z)', + '(x,-y+1/2,-z-1/2)', + '(-x+1/2,y,-z-1/2)', '(-x,-y,-z)', - '(x,-y,z+1/2)', - '(-x,y+1/2,z)', - '(x,y+1/2,-z+1/2)' - ] + '(x+1/2,y+1/2,-z)', + '(-x,y+1/2,z-1/2)', + '(x+1/2,-y,z-1/2)', + ], }, - 'e': { + 'l': { 'multiplicity': 4, 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/2,y,1/4)', - '(1/2,-y+1/2,3/4)', - '(1/2,-y,3/4)', - '(1/2,y+1/2,1/4)' - ] + 'coords_xyz': ['(3/4,1/4,z)', '(3/4,1/4,-z-1/2)', '(1/4,3/4,-z)', '(1/4,3/4,z-1/2)'], }, - 'd': { + 'k': { 'multiplicity': 4, 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,y,1/4)', - '(0,-y+1/2,3/4)', - '(0,-y,3/4)', - '(0,y+1/2,1/4)' - ] + 'coords_xyz': ['(1/4,1/4,z)', '(1/4,1/4,-z-1/2)', '(3/4,3/4,-z)', '(3/4,3/4,z-1/2)'], }, - 'c': { + 'j': { 'multiplicity': 4, 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,1/4,0)', - '(-x,1/4,1/2)', - '(-x,3/4,0)', - '(x,3/4,1/2)' - ] + 'coords_xyz': ['(x,3/4,-1/4)', '(-x+1/2,3/4,-1/4)', '(-x,1/4,-3/4)', '(x+1/2,1/4,-3/4)'], }, - 'b': { + 'i': { + 'multiplicity': 4, + 'site_symmetry': '.2.', + 'coords_xyz': ['(x,1/4,-1/4)', '(-x+1/2,1/4,-1/4)', '(-x,3/4,-3/4)', '(x+1/2,3/4,-3/4)'], + }, + 'h': { + 'multiplicity': 4, + 'site_symmetry': '2..', + 'coords_xyz': ['(1/4,y,-3/4)', '(1/4,-y+1/2,-3/4)', '(3/4,-y,-1/4)', '(3/4,y+1/2,-1/4)'], + }, + 'g': { + 'multiplicity': 4, + 'site_symmetry': '2..', + 'coords_xyz': ['(1/4,y,-1/4)', '(1/4,-y+1/2,-1/4)', '(3/4,-y,-3/4)', '(3/4,y+1/2,-3/4)'], + }, + 'f': { 'multiplicity': 4, 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/2,0,0)', - '(1/2,0,1/2)', - '(1/2,1/2,0)', - '(1/2,1/2,1/2)' - ] + 'coords_xyz': ['(0,0,0)', '(1/2,1/2,0)', '(0,1/2,-1/2)', '(1/2,0,-1/2)'], }, - 'a': { + 'e': { 'multiplicity': 4, 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(0,0,1/2)', - '(0,1/2,0)', - '(0,1/2,1/2)' - ] - } - } + 'coords_xyz': ['(1/2,1/2,-1/2)', '(0,0,-1/2)', '(1/2,0,0)', '(0,1/2,0)'], + }, + 'd': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(3/4,1/4,-1/4)', '(1/4,3/4,-3/4)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(1/4,1/4,-3/4)', '(3/4,3/4,-1/4)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(1/4,3/4,-1/4)', '(3/4,1/4,-3/4)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(1/4,1/4,-1/4)', '(3/4,3/4,-3/4)']}, + }, }, - (54, 'a-cb'): { - 'IT_number': 54, - 'setting': 5, - 'IT_coordinate_system_code': 'a-cb', - 'name_H-M_alt': 'P b a b', + (48, '1cab'): { + 'IT_number': 48, + 'setting': 8, + 'IT_coordinate_system_code': '1cab', + 'name_H-M_alt': 'P n n n', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'f': { + 'm': { 'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(-x+1/2,y,-z)', - '(-x,-y-1/2,z)', - '(x+1/2,-y-1/2,-z)', - '(-x,-y,-z)', - '(x+1/2,-y,z)', - '(x,y-1/2,-z)', - '(-x+1/2,y-1/2,z)' - ] + '(x,-y,-z)', + '(-x,-y,z)', + '(-x,y,-z)', + '(-x+1/2,-y+1/2,-z+1/2)', + '(-x+1/2,y+1/2,z+1/2)', + '(x+1/2,y+1/2,-z+1/2)', + '(x+1/2,-y+1/2,z+1/2)', + ], }, - 'e': { + 'l': { 'multiplicity': 4, 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/4,y,1/2)', - '(3/4,-y-1/2,1/2)', - '(3/4,-y,1/2)', - '(1/4,y-1/2,1/2)' - ] + 'coords_xyz': ['(x,0,1/2)', '(-x,0,1/2)', '(-x+1/2,1/2,0)', '(x+1/2,1/2,0)'], }, - 'd': { + 'k': { 'multiplicity': 4, 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/4,y,0)', - '(3/4,-y-1/2,0)', - '(3/4,-y,0)', - '(1/4,y-1/2,0)' - ] + 'coords_xyz': ['(x,0,0)', '(-x,0,0)', '(-x+1/2,1/2,1/2)', '(x+1/2,1/2,1/2)'], }, - 'c': { + 'j': { 'multiplicity': 4, 'site_symmetry': '.2.', - 'coords_xyz': [ - '(0,-1/4,z)', - '(1/2,-1/4,-z)', - '(0,-3/4,-z)', - '(1/2,-3/4,z)' - ] + 'coords_xyz': ['(0,1/2,z)', '(0,1/2,-z)', '(1/2,0,-z+1/2)', '(1/2,0,z+1/2)'], }, - 'b': { + 'i': { + 'multiplicity': 4, + 'site_symmetry': '.2.', + 'coords_xyz': ['(0,0,z)', '(0,0,-z)', '(1/2,1/2,-z+1/2)', '(1/2,1/2,z+1/2)'], + }, + 'h': { + 'multiplicity': 4, + 'site_symmetry': '2..', + 'coords_xyz': ['(1/2,y,0)', '(1/2,-y,0)', '(0,-y+1/2,1/2)', '(0,y+1/2,1/2)'], + }, + 'g': { + 'multiplicity': 4, + 'site_symmetry': '2..', + 'coords_xyz': ['(0,y,0)', '(0,-y,0)', '(1/2,-y+1/2,1/2)', '(1/2,y+1/2,1/2)'], + }, + 'f': { 'multiplicity': 4, 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,1/2)', - '(1/2,0,1/2)', - '(0,-1/2,1/2)', - '(1/2,-1/2,1/2)' - ] + 'coords_xyz': ['(3/4,3/4,3/4)', '(3/4,1/4,1/4)', '(1/4,1/4,3/4)', '(1/4,3/4,1/4)'], }, - 'a': { + 'e': { 'multiplicity': 4, 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,0,0)', - '(0,-1/2,0)', - '(1/2,-1/2,0)' - ] - } - } + 'coords_xyz': ['(1/4,1/4,1/4)', '(1/4,3/4,3/4)', '(3/4,3/4,1/4)', '(3/4,1/4,3/4)'], + }, + 'd': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(0,0,1/2)', '(1/2,1/2,0)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(1/2,0,0)', '(0,1/2,1/2)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(0,1/2,0)', '(1/2,0,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(0,0,0)', '(1/2,1/2,1/2)']}, + }, }, - (55, 'abc'): { - 'IT_number': 55, - 'setting': 0, - 'IT_coordinate_system_code': 'abc', - 'name_H-M_alt': 'P b a m', + (48, '2cab'): { + 'IT_number': 48, + 'setting': 14, + 'IT_coordinate_system_code': '2cab', + 'name_H-M_alt': 'P n n n', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'i': { + 'm': { 'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(-x,-y,z)', - '(-x+1/2,y+1/2,-z)', - '(x+1/2,-y+1/2,-z)', + '(x,-y+1/2,-z+1/2)', + '(-x+1/2,-y+1/2,z)', + '(-x+1/2,y,-z+1/2)', '(-x,-y,-z)', - '(x,y,-z)', - '(x+1/2,-y+1/2,z)', - '(-x+1/2,y+1/2,z)' - ] + '(-x,y+1/2,z+1/2)', + '(x+1/2,y+1/2,-z)', + '(x+1/2,-y,z+1/2)', + ], + }, + 'l': { + 'multiplicity': 4, + 'site_symmetry': '..2', + 'coords_xyz': ['(x,1/4,3/4)', '(-x+1/2,1/4,3/4)', '(-x,3/4,1/4)', '(x+1/2,3/4,1/4)'], + }, + 'k': { + 'multiplicity': 4, + 'site_symmetry': '..2', + 'coords_xyz': ['(x,1/4,1/4)', '(-x+1/2,1/4,1/4)', '(-x,3/4,3/4)', '(x+1/2,3/4,3/4)'], + }, + 'j': { + 'multiplicity': 4, + 'site_symmetry': '.2.', + 'coords_xyz': ['(1/4,3/4,z)', '(1/4,3/4,-z+1/2)', '(3/4,1/4,-z)', '(3/4,1/4,z+1/2)'], + }, + 'i': { + 'multiplicity': 4, + 'site_symmetry': '.2.', + 'coords_xyz': ['(1/4,1/4,z)', '(1/4,1/4,-z+1/2)', '(3/4,3/4,-z)', '(3/4,3/4,z+1/2)'], }, 'h': { 'multiplicity': 4, - 'site_symmetry': '..m', - 'coords_xyz': [ - '(x,y,1/2)', - '(-x,-y,1/2)', - '(-x+1/2,y+1/2,1/2)', - '(x+1/2,-y+1/2,1/2)' - ] + 'site_symmetry': '2..', + 'coords_xyz': ['(3/4,y,1/4)', '(3/4,-y+1/2,1/4)', '(1/4,-y,3/4)', '(1/4,y+1/2,3/4)'], }, 'g': { 'multiplicity': 4, - 'site_symmetry': '..m', - 'coords_xyz': [ - '(x,y,0)', - '(-x,-y,0)', - '(-x+1/2,y+1/2,0)', - '(x+1/2,-y+1/2,0)' - ] + 'site_symmetry': '2..', + 'coords_xyz': ['(1/4,y,1/4)', '(1/4,-y+1/2,1/4)', '(3/4,-y,3/4)', '(3/4,y+1/2,3/4)'], }, 'f': { 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,1/2,z)', - '(1/2,0,-z)', - '(0,1/2,-z)', - '(1/2,0,z)' - ] + 'site_symmetry': '-1', + 'coords_xyz': ['(0,0,0)', '(0,1/2,1/2)', '(1/2,1/2,0)', '(1/2,0,1/2)'], }, 'e': { 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,0,z)', - '(1/2,1/2,-z)', - '(0,0,-z)', - '(1/2,1/2,z)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(0,1/2,1/2)', - '(1/2,0,1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(0,1/2,0)', - '(1/2,0,0)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(0,0,1/2)', - '(1/2,1/2,1/2)' - ] + 'site_symmetry': '-1', + 'coords_xyz': ['(1/2,1/2,1/2)', '(1/2,0,0)', '(0,0,1/2)', '(0,1/2,0)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,1/2,0)' - ] - } - } + 'd': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(1/4,1/4,3/4)', '(3/4,3/4,1/4)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(3/4,1/4,1/4)', '(1/4,3/4,3/4)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(1/4,3/4,1/4)', '(3/4,1/4,3/4)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(1/4,1/4,1/4)', '(3/4,3/4,3/4)']}, + }, }, - (55, 'ba-c'): { - 'IT_number': 55, - 'setting': 1, - 'IT_coordinate_system_code': 'ba-c', - 'name_H-M_alt': 'P b a m', + (48, '1-cba'): { + 'IT_number': 48, + 'setting': 9, + 'IT_coordinate_system_code': '1-cba', + 'name_H-M_alt': 'P n n n', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { + 'm': { + 'multiplicity': 8, + 'site_symmetry': '1', + 'coords_xyz': [ + '(x,y,z)', + '(x,-y,-z)', + '(-x,y,-z)', + '(-x,-y,z)', + '(-x-1/2,-y+1/2,-z+1/2)', + '(-x-1/2,y+1/2,z+1/2)', + '(x-1/2,-y+1/2,z+1/2)', + '(x-1/2,y+1/2,-z+1/2)', + ], + }, + 'l': { + 'multiplicity': 4, + 'site_symmetry': '..2', + 'coords_xyz': ['(x,1/2,0)', '(-x,1/2,0)', '(-x-1/2,0,1/2)', '(x-1/2,0,1/2)'], + }, + 'k': { + 'multiplicity': 4, + 'site_symmetry': '..2', + 'coords_xyz': ['(x,0,0)', '(-x,0,0)', '(-x-1/2,1/2,1/2)', '(x-1/2,1/2,1/2)'], + }, + 'j': { + 'multiplicity': 4, + 'site_symmetry': '.2.', + 'coords_xyz': ['(0,y,1/2)', '(0,-y,1/2)', '(-1/2,-y+1/2,0)', '(-1/2,y+1/2,0)'], + }, 'i': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z)', - '(x+1/2,-y+1/2,-z)', - '(-x+1/2,y+1/2,-z)', - '(-x,-y,-z)', - '(x,y,-z)', - '(-x+1/2,y+1/2,z)', - '(x+1/2,-y+1/2,z)' - ] + 'multiplicity': 4, + 'site_symmetry': '.2.', + 'coords_xyz': ['(0,y,0)', '(0,-y,0)', '(-1/2,-y+1/2,1/2)', '(-1/2,y+1/2,1/2)'], }, 'h': { 'multiplicity': 4, - 'site_symmetry': '..m', - 'coords_xyz': [ - '(x,y,-1/2)', - '(-x,-y,-1/2)', - '(x+1/2,-y+1/2,-1/2)', - '(-x+1/2,y+1/2,-1/2)' - ] + 'site_symmetry': '2..', + 'coords_xyz': ['(-1/2,0,z)', '(-1/2,0,-z)', '(0,1/2,-z+1/2)', '(0,1/2,z+1/2)'], }, 'g': { 'multiplicity': 4, - 'site_symmetry': '..m', - 'coords_xyz': [ - '(x,y,0)', - '(-x,-y,0)', - '(x+1/2,-y+1/2,0)', - '(-x+1/2,y+1/2,0)' - ] + 'site_symmetry': '2..', + 'coords_xyz': ['(0,0,z)', '(0,0,-z)', '(-1/2,1/2,-z+1/2)', '(-1/2,1/2,z+1/2)'], }, 'f': { 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/2,0,z)', - '(0,1/2,-z)', - '(1/2,0,-z)', - '(0,1/2,z)' - ] + 'site_symmetry': '-1', + 'coords_xyz': ['(-3/4,3/4,3/4)', '(-3/4,1/4,1/4)', '(-1/4,3/4,1/4)', '(-1/4,1/4,3/4)'], }, 'e': { 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,0,z)', - '(1/2,1/2,-z)', - '(0,0,-z)', - '(1/2,1/2,z)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(1/2,0,-1/2)', - '(0,1/2,-1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(1/2,0,0)', - '(0,1/2,0)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(0,0,-1/2)', - '(1/2,1/2,-1/2)' - ] + 'site_symmetry': '-1', + 'coords_xyz': ['(-1/4,1/4,1/4)', '(-1/4,3/4,3/4)', '(-3/4,1/4,3/4)', '(-3/4,3/4,1/4)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,1/2,0)' - ] - } - } + 'd': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(0,1/2,0)', '(-1/2,0,1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(-1/2,0,0)', '(0,1/2,1/2)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(0,0,1/2)', '(-1/2,1/2,0)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(0,0,0)', '(-1/2,1/2,1/2)']}, + }, }, - (55, 'cab'): { - 'IT_number': 55, - 'setting': 2, - 'IT_coordinate_system_code': 'cab', - 'name_H-M_alt': 'P m c b', + (48, '2-cba'): { + 'IT_number': 48, + 'setting': 15, + 'IT_coordinate_system_code': '2-cba', + 'name_H-M_alt': 'P n n n', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'i': { + 'm': { 'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(x,-y,-z)', - '(-x,-y+1/2,z+1/2)', - '(-x,y+1/2,-z+1/2)', + '(x,-y+1/2,-z+1/2)', + '(-x-1/2,y,-z+1/2)', + '(-x-1/2,-y+1/2,z)', '(-x,-y,-z)', - '(-x,y,z)', - '(x,y+1/2,-z+1/2)', - '(x,-y+1/2,z+1/2)' - ] + '(-x,y+1/2,z+1/2)', + '(x-1/2,-y,z+1/2)', + '(x-1/2,y+1/2,-z)', + ], + }, + 'l': { + 'multiplicity': 4, + 'site_symmetry': '..2', + 'coords_xyz': ['(x,3/4,1/4)', '(-x-1/2,3/4,1/4)', '(-x,1/4,3/4)', '(x-1/2,1/4,3/4)'], + }, + 'k': { + 'multiplicity': 4, + 'site_symmetry': '..2', + 'coords_xyz': ['(x,1/4,1/4)', '(-x-1/2,1/4,1/4)', '(-x,3/4,3/4)', '(x-1/2,3/4,3/4)'], + }, + 'j': { + 'multiplicity': 4, + 'site_symmetry': '.2.', + 'coords_xyz': ['(-1/4,y,3/4)', '(-1/4,-y+1/2,3/4)', '(-3/4,-y,1/4)', '(-3/4,y+1/2,1/4)'], + }, + 'i': { + 'multiplicity': 4, + 'site_symmetry': '.2.', + 'coords_xyz': ['(-1/4,y,1/4)', '(-1/4,-y+1/2,1/4)', '(-3/4,-y,3/4)', '(-3/4,y+1/2,3/4)'], }, 'h': { 'multiplicity': 4, - 'site_symmetry': '..m', - 'coords_xyz': [ - '(1/2,y,z)', - '(1/2,-y,-z)', - '(1/2,-y+1/2,z+1/2)', - '(1/2,y+1/2,-z+1/2)' - ] + 'site_symmetry': '2..', + 'coords_xyz': ['(-3/4,1/4,z)', '(-3/4,1/4,-z+1/2)', '(-1/4,3/4,-z)', '(-1/4,3/4,z+1/2)'], }, 'g': { 'multiplicity': 4, - 'site_symmetry': '..m', - 'coords_xyz': [ - '(0,y,z)', - '(0,-y,-z)', - '(0,-y+1/2,z+1/2)', - '(0,y+1/2,-z+1/2)' - ] + 'site_symmetry': '2..', + 'coords_xyz': ['(-1/4,1/4,z)', '(-1/4,1/4,-z+1/2)', '(-3/4,3/4,-z)', '(-3/4,3/4,z+1/2)'], }, 'f': { 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,0,1/2)', - '(-x,1/2,0)', - '(-x,0,1/2)', - '(x,1/2,0)' - ] + 'site_symmetry': '-1', + 'coords_xyz': ['(0,0,0)', '(0,1/2,1/2)', '(-1/2,0,1/2)', '(-1/2,1/2,0)'], }, 'e': { 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,0,0)', - '(-x,1/2,1/2)', - '(-x,0,0)', - '(x,1/2,1/2)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(1/2,0,1/2)', - '(1/2,1/2,0)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(0,0,1/2)', - '(0,1/2,0)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(1/2,0,0)', - '(1/2,1/2,1/2)' - ] + 'site_symmetry': '-1', + 'coords_xyz': ['(-1/2,1/2,1/2)', '(-1/2,0,0)', '(0,1/2,0)', '(0,0,1/2)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(0,0,0)', - '(0,1/2,1/2)' - ] - } - } + 'd': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(-1/4,3/4,1/4)', '(-3/4,1/4,3/4)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(-3/4,1/4,1/4)', '(-1/4,3/4,3/4)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(-1/4,1/4,3/4)', '(-3/4,3/4,1/4)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(-1/4,1/4,1/4)', '(-3/4,3/4,3/4)']}, + }, }, - (55, '-cba'): { - 'IT_number': 55, - 'setting': 3, - 'IT_coordinate_system_code': '-cba', - 'name_H-M_alt': 'P m c b', + (48, '1bca'): { + 'IT_number': 48, + 'setting': 10, + 'IT_coordinate_system_code': '1bca', + 'name_H-M_alt': 'P n n n', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'i': { + 'm': { 'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', + '(-x,y,-z)', '(x,-y,-z)', - '(-x,y+1/2,-z+1/2)', - '(-x,-y+1/2,z+1/2)', - '(-x,-y,-z)', - '(-x,y,z)', - '(x,-y+1/2,z+1/2)', - '(x,y+1/2,-z+1/2)' - ] + '(-x,-y,z)', + '(-x+1/2,-y+1/2,-z+1/2)', + '(x+1/2,-y+1/2,z+1/2)', + '(-x+1/2,y+1/2,z+1/2)', + '(x+1/2,y+1/2,-z+1/2)', + ], + }, + 'l': { + 'multiplicity': 4, + 'site_symmetry': '..2', + 'coords_xyz': ['(1/2,y,0)', '(1/2,-y,0)', '(0,-y+1/2,1/2)', '(0,y+1/2,1/2)'], + }, + 'k': { + 'multiplicity': 4, + 'site_symmetry': '..2', + 'coords_xyz': ['(0,y,0)', '(0,-y,0)', '(1/2,-y+1/2,1/2)', '(1/2,y+1/2,1/2)'], + }, + 'j': { + 'multiplicity': 4, + 'site_symmetry': '.2.', + 'coords_xyz': ['(x,0,1/2)', '(-x,0,1/2)', '(-x+1/2,1/2,0)', '(x+1/2,1/2,0)'], + }, + 'i': { + 'multiplicity': 4, + 'site_symmetry': '.2.', + 'coords_xyz': ['(x,0,0)', '(-x,0,0)', '(-x+1/2,1/2,1/2)', '(x+1/2,1/2,1/2)'], }, 'h': { 'multiplicity': 4, - 'site_symmetry': '..m', - 'coords_xyz': [ - '(-1/2,y,z)', - '(-1/2,-y,-z)', - '(-1/2,y+1/2,-z+1/2)', - '(-1/2,-y+1/2,z+1/2)' - ] + 'site_symmetry': '2..', + 'coords_xyz': ['(0,1/2,z)', '(0,1/2,-z)', '(1/2,0,-z+1/2)', '(1/2,0,z+1/2)'], }, 'g': { 'multiplicity': 4, - 'site_symmetry': '..m', - 'coords_xyz': [ - '(0,y,z)', - '(0,-y,-z)', - '(0,y+1/2,-z+1/2)', - '(0,-y+1/2,z+1/2)' - ] + 'site_symmetry': '2..', + 'coords_xyz': ['(0,0,z)', '(0,0,-z)', '(1/2,1/2,-z+1/2)', '(1/2,1/2,z+1/2)'], }, 'f': { 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,1/2,0)', - '(-x,0,1/2)', - '(-x,1/2,0)', - '(x,0,1/2)' - ] + 'site_symmetry': '-1', + 'coords_xyz': ['(3/4,3/4,3/4)', '(1/4,3/4,1/4)', '(3/4,1/4,1/4)', '(1/4,1/4,3/4)'], }, 'e': { 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,0,0)', - '(-x,1/2,1/2)', - '(-x,0,0)', - '(x,1/2,1/2)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(-1/2,1/2,0)', - '(-1/2,0,1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(0,1/2,0)', - '(0,0,1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(-1/2,0,0)', - '(-1/2,1/2,1/2)' - ] + 'site_symmetry': '-1', + 'coords_xyz': ['(1/4,1/4,1/4)', '(3/4,1/4,3/4)', '(1/4,3/4,3/4)', '(3/4,3/4,1/4)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(0,0,0)', - '(0,1/2,1/2)' - ] - } - } + 'd': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(1/2,0,0)', '(0,1/2,1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(0,1/2,0)', '(1/2,0,1/2)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(0,0,1/2)', '(1/2,1/2,0)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(0,0,0)', '(1/2,1/2,1/2)']}, + }, }, - (55, 'bca'): { - 'IT_number': 55, - 'setting': 4, - 'IT_coordinate_system_code': 'bca', - 'name_H-M_alt': 'P c m a', + (48, '2bca'): { + 'IT_number': 48, + 'setting': 16, + 'IT_coordinate_system_code': '2bca', + 'name_H-M_alt': 'P n n n', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'i': { + 'm': { 'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(-x,y,-z)', - '(x+1/2,-y,-z+1/2)', - '(-x+1/2,-y,z+1/2)', + '(-x+1/2,y,-z+1/2)', + '(x,-y+1/2,-z+1/2)', + '(-x+1/2,-y+1/2,z)', '(-x,-y,-z)', - '(x,-y,z)', - '(-x+1/2,y,z+1/2)', - '(x+1/2,y,-z+1/2)' - ] + '(x+1/2,-y,z+1/2)', + '(-x,y+1/2,z+1/2)', + '(x+1/2,y+1/2,-z)', + ], + }, + 'l': { + 'multiplicity': 4, + 'site_symmetry': '..2', + 'coords_xyz': ['(3/4,y,1/4)', '(3/4,-y+1/2,1/4)', '(1/4,-y,3/4)', '(1/4,y+1/2,3/4)'], + }, + 'k': { + 'multiplicity': 4, + 'site_symmetry': '..2', + 'coords_xyz': ['(1/4,y,1/4)', '(1/4,-y+1/2,1/4)', '(3/4,-y,3/4)', '(3/4,y+1/2,3/4)'], + }, + 'j': { + 'multiplicity': 4, + 'site_symmetry': '.2.', + 'coords_xyz': ['(x,1/4,3/4)', '(-x+1/2,1/4,3/4)', '(-x,3/4,1/4)', '(x+1/2,3/4,1/4)'], + }, + 'i': { + 'multiplicity': 4, + 'site_symmetry': '.2.', + 'coords_xyz': ['(x,1/4,1/4)', '(-x+1/2,1/4,1/4)', '(-x,3/4,3/4)', '(x+1/2,3/4,3/4)'], }, 'h': { 'multiplicity': 4, - 'site_symmetry': '..m', - 'coords_xyz': [ - '(x,1/2,z)', - '(-x,1/2,-z)', - '(x+1/2,1/2,-z+1/2)', - '(-x+1/2,1/2,z+1/2)' - ] + 'site_symmetry': '2..', + 'coords_xyz': ['(1/4,3/4,z)', '(1/4,3/4,-z+1/2)', '(3/4,1/4,-z)', '(3/4,1/4,z+1/2)'], }, 'g': { 'multiplicity': 4, - 'site_symmetry': '..m', - 'coords_xyz': [ - '(x,0,z)', - '(-x,0,-z)', - '(x+1/2,0,-z+1/2)', - '(-x+1/2,0,z+1/2)' - ] + 'site_symmetry': '2..', + 'coords_xyz': ['(1/4,1/4,z)', '(1/4,1/4,-z+1/2)', '(3/4,3/4,-z)', '(3/4,3/4,z+1/2)'], }, 'f': { 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/2,y,0)', - '(0,-y,1/2)', - '(1/2,-y,0)', - '(0,y,1/2)' - ] + 'site_symmetry': '-1', + 'coords_xyz': ['(0,0,0)', '(1/2,0,1/2)', '(0,1/2,1/2)', '(1/2,1/2,0)'], }, 'e': { 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,y,0)', - '(1/2,-y,1/2)', - '(0,-y,0)', - '(1/2,y,1/2)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(1/2,1/2,0)', - '(0,1/2,1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(1/2,0,0)', - '(0,0,1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(0,1/2,0)', - '(1/2,1/2,1/2)' - ] + 'site_symmetry': '-1', + 'coords_xyz': ['(1/2,1/2,1/2)', '(0,1/2,0)', '(1/2,0,0)', '(0,0,1/2)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,0,1/2)' - ] - } - } + 'd': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(3/4,1/4,1/4)', '(1/4,3/4,3/4)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(1/4,3/4,1/4)', '(3/4,1/4,3/4)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(1/4,1/4,3/4)', '(3/4,3/4,1/4)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(1/4,1/4,1/4)', '(3/4,3/4,3/4)']}, + }, }, - (55, 'a-cb'): { - 'IT_number': 55, - 'setting': 5, - 'IT_coordinate_system_code': 'a-cb', - 'name_H-M_alt': 'P c m a', + (48, '2a-cb'): { + 'IT_number': 48, + 'setting': 17, + 'IT_coordinate_system_code': '2a-cb', + 'name_H-M_alt': 'P n n n', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'i': { + 'm': { 'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(-x,y,-z)', - '(-x+1/2,-y,z+1/2)', - '(x+1/2,-y,-z+1/2)', + '(-x+1/2,y,-z+1/2)', + '(-x+1/2,-y-1/2,z)', + '(x,-y-1/2,-z+1/2)', '(-x,-y,-z)', - '(x,-y,z)', - '(x+1/2,y,-z+1/2)', - '(-x+1/2,y,z+1/2)' - ] + '(x+1/2,-y,z+1/2)', + '(x+1/2,y-1/2,-z)', + '(-x,y-1/2,z+1/2)', + ], + }, + 'l': { + 'multiplicity': 4, + 'site_symmetry': '..2', + 'coords_xyz': ['(1/4,y,3/4)', '(1/4,-y-1/2,3/4)', '(3/4,-y,1/4)', '(3/4,y-1/2,1/4)'], + }, + 'k': { + 'multiplicity': 4, + 'site_symmetry': '..2', + 'coords_xyz': ['(1/4,y,1/4)', '(1/4,-y-1/2,1/4)', '(3/4,-y,3/4)', '(3/4,y-1/2,3/4)'], + }, + 'j': { + 'multiplicity': 4, + 'site_symmetry': '.2.', + 'coords_xyz': ['(3/4,-1/4,z)', '(3/4,-1/4,-z+1/2)', '(1/4,-3/4,-z)', '(1/4,-3/4,z+1/2)'], + }, + 'i': { + 'multiplicity': 4, + 'site_symmetry': '.2.', + 'coords_xyz': ['(1/4,-1/4,z)', '(1/4,-1/4,-z+1/2)', '(3/4,-3/4,-z)', '(3/4,-3/4,z+1/2)'], }, 'h': { 'multiplicity': 4, - 'site_symmetry': '..m', - 'coords_xyz': [ - '(x,-1/2,z)', - '(-x,-1/2,-z)', - '(-x+1/2,-1/2,z+1/2)', - '(x+1/2,-1/2,-z+1/2)' - ] + 'site_symmetry': '2..', + 'coords_xyz': ['(x,-3/4,1/4)', '(-x+1/2,-3/4,1/4)', '(-x,-1/4,3/4)', '(x+1/2,-1/4,3/4)'], }, 'g': { 'multiplicity': 4, - 'site_symmetry': '..m', - 'coords_xyz': [ - '(x,0,z)', - '(-x,0,-z)', - '(-x+1/2,0,z+1/2)', - '(x+1/2,0,-z+1/2)' - ] + 'site_symmetry': '2..', + 'coords_xyz': ['(x,-1/4,1/4)', '(-x+1/2,-1/4,1/4)', '(-x,-3/4,3/4)', '(x+1/2,-3/4,3/4)'], }, 'f': { 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,y,1/2)', - '(1/2,-y,0)', - '(0,-y,1/2)', - '(1/2,y,0)' - ] + 'site_symmetry': '-1', + 'coords_xyz': ['(0,0,0)', '(1/2,0,1/2)', '(1/2,-1/2,0)', '(0,-1/2,1/2)'], }, 'e': { 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,y,0)', - '(1/2,-y,1/2)', - '(0,-y,0)', - '(1/2,y,1/2)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(0,-1/2,1/2)', - '(1/2,-1/2,0)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(0,0,1/2)', - '(1/2,0,0)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(0,-1/2,0)', - '(1/2,-1/2,1/2)' - ] + 'site_symmetry': '-1', + 'coords_xyz': ['(1/2,-1/2,1/2)', '(0,-1/2,0)', '(0,0,1/2)', '(1/2,0,0)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,0,1/2)' - ] - } - } + 'd': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(1/4,-1/4,3/4)', '(3/4,-3/4,1/4)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(1/4,-3/4,1/4)', '(3/4,-1/4,3/4)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(3/4,-1/4,1/4)', '(1/4,-3/4,3/4)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(1/4,-1/4,1/4)', '(3/4,-3/4,3/4)']}, + }, }, - (56, 'abc'): { - 'IT_number': 56, + (49, 'abc'): { + 'IT_number': 49, 'setting': 0, 'IT_coordinate_system_code': 'abc', - 'name_H-M_alt': 'P c c n', + 'name_H-M_alt': 'P c c m', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'e': { + 'r': { 'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(-x+1/2,-y+1/2,z)', - '(-x,y+1/2,-z+1/2)', - '(x+1/2,-y,-z+1/2)', + '(-x,-y,z)', + '(-x,y,-z+1/2)', + '(x,-y,-z+1/2)', '(-x,-y,-z)', - '(x+1/2,y+1/2,-z)', - '(x,-y+1/2,z+1/2)', - '(-x+1/2,y,z+1/2)' - ] + '(x,y,-z)', + '(x,-y,z+1/2)', + '(-x,y,z+1/2)', + ], }, - 'd': { + 'q': { + 'multiplicity': 4, + 'site_symmetry': '..m', + 'coords_xyz': ['(x,y,0)', '(-x,-y,0)', '(-x,y,1/2)', '(x,-y,1/2)'], + }, + 'p': { 'multiplicity': 4, 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/4,3/4,z)', - '(3/4,1/4,-z+1/2)', - '(3/4,1/4,-z)', - '(1/4,3/4,z+1/2)' - ] + 'coords_xyz': ['(1/2,0,z)', '(1/2,0,-z+1/2)', '(1/2,0,-z)', '(1/2,0,z+1/2)'], }, - 'c': { + 'o': { 'multiplicity': 4, 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/4,1/4,z)', - '(3/4,3/4,-z+1/2)', - '(3/4,3/4,-z)', - '(1/4,1/4,z+1/2)' - ] + 'coords_xyz': ['(0,1/2,z)', '(0,1/2,-z+1/2)', '(0,1/2,-z)', '(0,1/2,z+1/2)'], }, - 'b': { + 'n': { 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,1/2)', - '(1/2,1/2,1/2)', - '(0,1/2,0)', - '(1/2,0,0)' - ] + 'site_symmetry': '..2', + 'coords_xyz': ['(1/2,1/2,z)', '(1/2,1/2,-z+1/2)', '(1/2,1/2,-z)', '(1/2,1/2,z+1/2)'], }, - 'a': { + 'm': { 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,1/2,0)', - '(0,1/2,1/2)', - '(1/2,0,1/2)' - ] - } - } + 'site_symmetry': '..2', + 'coords_xyz': ['(0,0,z)', '(0,0,-z+1/2)', '(0,0,-z)', '(0,0,z+1/2)'], + }, + 'l': { + 'multiplicity': 4, + 'site_symmetry': '.2.', + 'coords_xyz': ['(1/2,y,1/4)', '(1/2,-y,1/4)', '(1/2,-y,3/4)', '(1/2,y,3/4)'], + }, + 'k': { + 'multiplicity': 4, + 'site_symmetry': '.2.', + 'coords_xyz': ['(0,y,1/4)', '(0,-y,1/4)', '(0,-y,3/4)', '(0,y,3/4)'], + }, + 'j': { + 'multiplicity': 4, + 'site_symmetry': '2..', + 'coords_xyz': ['(x,1/2,1/4)', '(-x,1/2,1/4)', '(-x,1/2,3/4)', '(x,1/2,3/4)'], + }, + 'i': { + 'multiplicity': 4, + 'site_symmetry': '2..', + 'coords_xyz': ['(x,0,1/4)', '(-x,0,1/4)', '(-x,0,3/4)', '(x,0,3/4)'], + }, + 'h': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(1/2,1/2,1/4)', '(1/2,1/2,3/4)']}, + 'g': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(0,1/2,1/4)', '(0,1/2,3/4)']}, + 'f': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(1/2,0,1/4)', '(1/2,0,3/4)']}, + 'e': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(0,0,1/4)', '(0,0,3/4)']}, + 'd': {'multiplicity': 2, 'site_symmetry': '..2/m', 'coords_xyz': ['(1/2,0,0)', '(1/2,0,1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '..2/m', 'coords_xyz': ['(0,1/2,0)', '(0,1/2,1/2)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '..2/m', 'coords_xyz': ['(1/2,1/2,0)', '(1/2,1/2,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '..2/m', 'coords_xyz': ['(0,0,0)', '(0,0,1/2)']}, + }, }, - (56, 'ba-c'): { - 'IT_number': 56, + (49, 'ba-c'): { + 'IT_number': 49, 'setting': 1, 'IT_coordinate_system_code': 'ba-c', - 'name_H-M_alt': 'P c c n', + 'name_H-M_alt': 'P c c m', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'e': { + 'r': { 'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(-x+1/2,-y+1/2,z)', - '(x+1/2,-y,-z-1/2)', - '(-x,y+1/2,-z-1/2)', + '(-x,-y,z)', + '(x,-y,-z-1/2)', + '(-x,y,-z-1/2)', '(-x,-y,-z)', - '(x+1/2,y+1/2,-z)', - '(-x+1/2,y,z-1/2)', - '(x,-y+1/2,z-1/2)' - ] + '(x,y,-z)', + '(-x,y,z-1/2)', + '(x,-y,z-1/2)', + ], }, - 'd': { + 'q': { 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(3/4,1/4,z)', - '(1/4,3/4,-z-1/2)', - '(1/4,3/4,-z)', - '(3/4,1/4,z-1/2)' - ] + 'site_symmetry': '..m', + 'coords_xyz': ['(x,y,0)', '(-x,-y,0)', '(x,-y,-1/2)', '(-x,y,-1/2)'], }, - 'c': { + 'p': { 'multiplicity': 4, 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/4,1/4,z)', - '(3/4,3/4,-z-1/2)', - '(3/4,3/4,-z)', - '(1/4,1/4,z-1/2)' - ] + 'coords_xyz': ['(0,1/2,z)', '(0,1/2,-z-1/2)', '(0,1/2,-z)', '(0,1/2,z-1/2)'], }, - 'b': { + 'o': { 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,-1/2)', - '(1/2,1/2,-1/2)', - '(1/2,0,0)', - '(0,1/2,0)' - ] + 'site_symmetry': '..2', + 'coords_xyz': ['(1/2,0,z)', '(1/2,0,-z-1/2)', '(1/2,0,-z)', '(1/2,0,z-1/2)'], }, - 'a': { + 'n': { 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,1/2,0)', - '(1/2,0,-1/2)', - '(0,1/2,-1/2)' - ] - } - } - }, - (56, 'cab'): { - 'IT_number': 56, - 'setting': 2, - 'IT_coordinate_system_code': 'cab', - 'name_H-M_alt': 'P n a a', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'e': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x,-y+1/2,-z+1/2)', - '(-x+1/2,-y,z+1/2)', - '(-x+1/2,y+1/2,-z)', - '(-x,-y,-z)', - '(-x,y+1/2,z+1/2)', - '(x+1/2,y,-z+1/2)', - '(x+1/2,-y+1/2,z)' - ] + 'site_symmetry': '..2', + 'coords_xyz': ['(1/2,1/2,z)', '(1/2,1/2,-z-1/2)', '(1/2,1/2,-z)', '(1/2,1/2,z-1/2)'], }, - 'd': { + 'm': { 'multiplicity': 4, 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,1/4,3/4)', - '(-x+1/2,3/4,1/4)', - '(-x,3/4,1/4)', - '(x+1/2,1/4,3/4)' - ] + 'coords_xyz': ['(0,0,z)', '(0,0,-z-1/2)', '(0,0,-z)', '(0,0,z-1/2)'], }, - 'c': { + 'l': { 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,1/4,1/4)', - '(-x+1/2,3/4,3/4)', - '(-x,3/4,3/4)', - '(x+1/2,1/4,1/4)' - ] + 'site_symmetry': '.2.', + 'coords_xyz': ['(x,1/2,-1/4)', '(-x,1/2,-1/4)', '(-x,1/2,-3/4)', '(x,1/2,-3/4)'], + }, + 'k': { + 'multiplicity': 4, + 'site_symmetry': '.2.', + 'coords_xyz': ['(x,0,-1/4)', '(-x,0,-1/4)', '(-x,0,-3/4)', '(x,0,-3/4)'], }, - 'b': { + 'j': { 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/2,0,0)', - '(1/2,1/2,1/2)', - '(0,0,1/2)', - '(0,1/2,0)' - ] + 'site_symmetry': '2..', + 'coords_xyz': ['(1/2,y,-1/4)', '(1/2,-y,-1/4)', '(1/2,-y,-3/4)', '(1/2,y,-3/4)'], }, - 'a': { + 'i': { 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(0,1/2,1/2)', - '(1/2,0,1/2)', - '(1/2,1/2,0)' - ] - } - } + 'site_symmetry': '2..', + 'coords_xyz': ['(0,y,-1/4)', '(0,-y,-1/4)', '(0,-y,-3/4)', '(0,y,-3/4)'], + }, + 'h': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(1/2,1/2,-1/4)', '(1/2,1/2,-3/4)']}, + 'g': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(1/2,0,-1/4)', '(1/2,0,-3/4)']}, + 'f': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(0,1/2,-1/4)', '(0,1/2,-3/4)']}, + 'e': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(0,0,-1/4)', '(0,0,-3/4)']}, + 'd': {'multiplicity': 2, 'site_symmetry': '..2/m', 'coords_xyz': ['(0,1/2,0)', '(0,1/2,-1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '..2/m', 'coords_xyz': ['(1/2,0,0)', '(1/2,0,-1/2)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '..2/m', 'coords_xyz': ['(1/2,1/2,0)', '(1/2,1/2,-1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '..2/m', 'coords_xyz': ['(0,0,0)', '(0,0,-1/2)']}, + }, }, - (56, '-cba'): { - 'IT_number': 56, - 'setting': 3, - 'IT_coordinate_system_code': '-cba', - 'name_H-M_alt': 'P n a a', + (49, 'cab'): { + 'IT_number': 49, + 'setting': 2, + 'IT_coordinate_system_code': 'cab', + 'name_H-M_alt': 'P m a a', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'e': { + 'r': { 'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(x,-y+1/2,-z+1/2)', - '(-x-1/2,y+1/2,-z)', - '(-x-1/2,-y,z+1/2)', + '(x,-y,-z)', + '(-x+1/2,-y,z)', + '(-x+1/2,y,-z)', '(-x,-y,-z)', - '(-x,y+1/2,z+1/2)', - '(x-1/2,-y+1/2,z)', - '(x-1/2,y,-z+1/2)' - ] + '(-x,y,z)', + '(x+1/2,y,-z)', + '(x+1/2,-y,z)', + ], }, - 'd': { + 'q': { 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,3/4,1/4)', - '(-x-1/2,1/4,3/4)', - '(-x,1/4,3/4)', - '(x-1/2,3/4,1/4)' - ] + 'site_symmetry': '..m', + 'coords_xyz': ['(0,y,z)', '(0,-y,-z)', '(1/2,-y,z)', '(1/2,y,-z)'], }, - 'c': { + 'p': { 'multiplicity': 4, 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,1/4,1/4)', - '(-x-1/2,3/4,3/4)', - '(-x,3/4,3/4)', - '(x-1/2,1/4,1/4)' - ] + 'coords_xyz': ['(x,1/2,0)', '(-x+1/2,1/2,0)', '(-x,1/2,0)', '(x+1/2,1/2,0)'], }, - 'b': { + 'o': { 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(-1/2,0,0)', - '(-1/2,1/2,1/2)', - '(0,1/2,0)', - '(0,0,1/2)' - ] + 'site_symmetry': '..2', + 'coords_xyz': ['(x,0,1/2)', '(-x+1/2,0,1/2)', '(-x,0,1/2)', '(x+1/2,0,1/2)'], }, - 'a': { + 'n': { 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(0,1/2,1/2)', - '(-1/2,1/2,0)', - '(-1/2,0,1/2)' - ] - } - } - }, - (56, 'bca'): { - 'IT_number': 56, - 'setting': 4, - 'IT_coordinate_system_code': 'bca', - 'name_H-M_alt': 'P b n b', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'e': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x+1/2,y,-z+1/2)', - '(x+1/2,-y+1/2,-z)', - '(-x,-y+1/2,z+1/2)', - '(-x,-y,-z)', - '(x+1/2,-y,z+1/2)', - '(-x+1/2,y+1/2,z)', - '(x,y+1/2,-z+1/2)' - ] + 'site_symmetry': '..2', + 'coords_xyz': ['(x,1/2,1/2)', '(-x+1/2,1/2,1/2)', '(-x,1/2,1/2)', '(x+1/2,1/2,1/2)'], }, - 'd': { + 'm': { 'multiplicity': 4, 'site_symmetry': '..2', - 'coords_xyz': [ - '(3/4,y,1/4)', - '(1/4,-y+1/2,3/4)', - '(1/4,-y,3/4)', - '(3/4,y+1/2,1/4)' - ] + 'coords_xyz': ['(x,0,0)', '(-x+1/2,0,0)', '(-x,0,0)', '(x+1/2,0,0)'], }, - 'c': { + 'l': { 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/4,y,1/4)', - '(3/4,-y+1/2,3/4)', - '(3/4,-y,3/4)', - '(1/4,y+1/2,1/4)' - ] + 'site_symmetry': '.2.', + 'coords_xyz': ['(1/4,1/2,z)', '(1/4,1/2,-z)', '(3/4,1/2,-z)', '(3/4,1/2,z)'], }, - 'b': { + 'k': { 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,1/2,0)', - '(1/2,1/2,1/2)', - '(1/2,0,0)', - '(0,0,1/2)' - ] + 'site_symmetry': '.2.', + 'coords_xyz': ['(1/4,0,z)', '(1/4,0,-z)', '(3/4,0,-z)', '(3/4,0,z)'], }, - 'a': { + 'j': { 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,0,1/2)', - '(1/2,1/2,0)', - '(0,1/2,1/2)' - ] - } - } + 'site_symmetry': '2..', + 'coords_xyz': ['(1/4,y,1/2)', '(1/4,-y,1/2)', '(3/4,-y,1/2)', '(3/4,y,1/2)'], + }, + 'i': { + 'multiplicity': 4, + 'site_symmetry': '2..', + 'coords_xyz': ['(1/4,y,0)', '(1/4,-y,0)', '(3/4,-y,0)', '(3/4,y,0)'], + }, + 'h': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(1/4,1/2,1/2)', '(3/4,1/2,1/2)']}, + 'g': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(1/4,0,1/2)', '(3/4,0,1/2)']}, + 'f': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(1/4,1/2,0)', '(3/4,1/2,0)']}, + 'e': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(1/4,0,0)', '(3/4,0,0)']}, + 'd': {'multiplicity': 2, 'site_symmetry': '..2/m', 'coords_xyz': ['(0,1/2,0)', '(1/2,1/2,0)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '..2/m', 'coords_xyz': ['(0,0,1/2)', '(1/2,0,1/2)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '..2/m', 'coords_xyz': ['(0,1/2,1/2)', '(1/2,1/2,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '..2/m', 'coords_xyz': ['(0,0,0)', '(1/2,0,0)']}, + }, }, - (56, 'a-cb'): { - 'IT_number': 56, - 'setting': 5, - 'IT_coordinate_system_code': 'a-cb', - 'name_H-M_alt': 'P b n b', + (49, '-cba'): { + 'IT_number': 49, + 'setting': 3, + 'IT_coordinate_system_code': '-cba', + 'name_H-M_alt': 'P m a a', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'e': { + 'r': { 'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(-x+1/2,y,-z+1/2)', - '(-x,-y-1/2,z+1/2)', - '(x+1/2,-y-1/2,-z)', + '(x,-y,-z)', + '(-x-1/2,y,-z)', + '(-x-1/2,-y,z)', '(-x,-y,-z)', - '(x+1/2,-y,z+1/2)', - '(x,y-1/2,-z+1/2)', - '(-x+1/2,y-1/2,z)' - ] + '(-x,y,z)', + '(x-1/2,-y,z)', + '(x-1/2,y,-z)', + ], }, - 'd': { + 'q': { + 'multiplicity': 4, + 'site_symmetry': '..m', + 'coords_xyz': ['(0,y,z)', '(0,-y,-z)', '(-1/2,y,-z)', '(-1/2,-y,z)'], + }, + 'p': { 'multiplicity': 4, 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/4,y,3/4)', - '(3/4,-y-1/2,1/4)', - '(3/4,-y,1/4)', - '(1/4,y-1/2,3/4)' - ] + 'coords_xyz': ['(x,0,1/2)', '(-x-1/2,0,1/2)', '(-x,0,1/2)', '(x-1/2,0,1/2)'], }, - 'c': { + 'o': { 'multiplicity': 4, 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/4,y,1/4)', - '(3/4,-y-1/2,3/4)', - '(3/4,-y,3/4)', - '(1/4,y-1/2,1/4)' - ] + 'coords_xyz': ['(x,1/2,0)', '(-x-1/2,1/2,0)', '(-x,1/2,0)', '(x-1/2,1/2,0)'], }, - 'b': { + 'n': { 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,-1/2,0)', - '(1/2,-1/2,1/2)', - '(0,0,1/2)', - '(1/2,0,0)' - ] + 'site_symmetry': '..2', + 'coords_xyz': ['(x,1/2,1/2)', '(-x-1/2,1/2,1/2)', '(-x,1/2,1/2)', '(x-1/2,1/2,1/2)'], }, - 'a': { + 'm': { 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,0,1/2)', - '(0,-1/2,1/2)', - '(1/2,-1/2,0)' - ] - } - } + 'site_symmetry': '..2', + 'coords_xyz': ['(x,0,0)', '(-x-1/2,0,0)', '(-x,0,0)', '(x-1/2,0,0)'], + }, + 'l': { + 'multiplicity': 4, + 'site_symmetry': '.2.', + 'coords_xyz': ['(-1/4,y,1/2)', '(-1/4,-y,1/2)', '(-3/4,-y,1/2)', '(-3/4,y,1/2)'], + }, + 'k': { + 'multiplicity': 4, + 'site_symmetry': '.2.', + 'coords_xyz': ['(-1/4,y,0)', '(-1/4,-y,0)', '(-3/4,-y,0)', '(-3/4,y,0)'], + }, + 'j': { + 'multiplicity': 4, + 'site_symmetry': '2..', + 'coords_xyz': ['(-1/4,1/2,z)', '(-1/4,1/2,-z)', '(-3/4,1/2,-z)', '(-3/4,1/2,z)'], + }, + 'i': { + 'multiplicity': 4, + 'site_symmetry': '2..', + 'coords_xyz': ['(-1/4,0,z)', '(-1/4,0,-z)', '(-3/4,0,-z)', '(-3/4,0,z)'], + }, + 'h': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(-1/4,1/2,1/2)', '(-3/4,1/2,1/2)']}, + 'g': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(-1/4,1/2,0)', '(-3/4,1/2,0)']}, + 'f': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(-1/4,0,1/2)', '(-3/4,0,1/2)']}, + 'e': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(-1/4,0,0)', '(-3/4,0,0)']}, + 'd': {'multiplicity': 2, 'site_symmetry': '..2/m', 'coords_xyz': ['(0,0,1/2)', '(-1/2,0,1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '..2/m', 'coords_xyz': ['(0,1/2,0)', '(-1/2,1/2,0)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '..2/m', 'coords_xyz': ['(0,1/2,1/2)', '(-1/2,1/2,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '..2/m', 'coords_xyz': ['(0,0,0)', '(-1/2,0,0)']}, + }, }, - (57, 'abc'): { - 'IT_number': 57, - 'setting': 0, - 'IT_coordinate_system_code': 'abc', - 'name_H-M_alt': 'P b c m', + (49, 'bca'): { + 'IT_number': 49, + 'setting': 4, + 'IT_coordinate_system_code': 'bca', + 'name_H-M_alt': 'P b m b', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'e': { + 'r': { 'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(-x,-y,z+1/2)', - '(-x,y+1/2,-z+1/2)', + '(-x,y,-z)', '(x,-y+1/2,-z)', + '(-x,-y+1/2,z)', '(-x,-y,-z)', - '(x,y,-z+1/2)', - '(x,-y+1/2,z+1/2)', - '(-x,y+1/2,z)' - ] + '(x,-y,z)', + '(-x,y+1/2,z)', + '(x,y+1/2,-z)', + ], }, - 'd': { + 'q': { 'multiplicity': 4, 'site_symmetry': '..m', - 'coords_xyz': [ - '(x,y,1/4)', - '(-x,-y,3/4)', - '(-x,y+1/2,1/4)', - '(x,-y+1/2,3/4)' - ] + 'coords_xyz': ['(x,0,z)', '(-x,0,-z)', '(x,1/2,-z)', '(-x,1/2,z)'], }, - 'c': { + 'p': { 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(x,1/4,0)', - '(-x,3/4,1/2)', - '(-x,3/4,0)', - '(x,1/4,1/2)' - ] + 'site_symmetry': '..2', + 'coords_xyz': ['(0,y,1/2)', '(0,-y+1/2,1/2)', '(0,-y,1/2)', '(0,y+1/2,1/2)'], }, - 'b': { + 'o': { 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/2,0,0)', - '(1/2,0,1/2)', - '(1/2,1/2,1/2)', - '(1/2,1/2,0)' - ] + 'site_symmetry': '..2', + 'coords_xyz': ['(1/2,y,0)', '(1/2,-y+1/2,0)', '(1/2,-y,0)', '(1/2,y+1/2,0)'], }, - 'a': { + 'n': { 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(0,0,1/2)', - '(0,1/2,1/2)', - '(0,1/2,0)' - ] - } - } - }, - (57, 'ba-c'): { - 'IT_number': 57, - 'setting': 1, - 'IT_coordinate_system_code': 'ba-c', - 'name_H-M_alt': 'P c a m', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'e': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z-1/2)', - '(x+1/2,-y,-z-1/2)', - '(-x+1/2,y,-z)', - '(-x,-y,-z)', - '(x,y,-z-1/2)', - '(-x+1/2,y,z-1/2)', - '(x+1/2,-y,z)' - ] + 'site_symmetry': '..2', + 'coords_xyz': ['(1/2,y,1/2)', '(1/2,-y+1/2,1/2)', '(1/2,-y,1/2)', '(1/2,y+1/2,1/2)'], + }, + 'm': { + 'multiplicity': 4, + 'site_symmetry': '..2', + 'coords_xyz': ['(0,y,0)', '(0,-y+1/2,0)', '(0,-y,0)', '(0,y+1/2,0)'], + }, + 'l': { + 'multiplicity': 4, + 'site_symmetry': '.2.', + 'coords_xyz': ['(x,1/4,1/2)', '(-x,1/4,1/2)', '(-x,3/4,1/2)', '(x,3/4,1/2)'], }, - 'd': { + 'k': { 'multiplicity': 4, - 'site_symmetry': '..m', - 'coords_xyz': [ - '(x,y,-1/4)', - '(-x,-y,-3/4)', - '(x+1/2,-y,-1/4)', - '(-x+1/2,y,-3/4)' - ] + 'site_symmetry': '.2.', + 'coords_xyz': ['(x,1/4,0)', '(-x,1/4,0)', '(-x,3/4,0)', '(x,3/4,0)'], }, - 'c': { + 'j': { 'multiplicity': 4, 'site_symmetry': '2..', - 'coords_xyz': [ - '(1/4,y,0)', - '(3/4,-y,-1/2)', - '(3/4,-y,0)', - '(1/4,y,-1/2)' - ] + 'coords_xyz': ['(1/2,1/4,z)', '(1/2,1/4,-z)', '(1/2,3/4,-z)', '(1/2,3/4,z)'], }, - 'b': { + 'i': { 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,1/2,0)', - '(0,1/2,-1/2)', - '(1/2,1/2,-1/2)', - '(1/2,1/2,0)' - ] + 'site_symmetry': '2..', + 'coords_xyz': ['(0,1/4,z)', '(0,1/4,-z)', '(0,3/4,-z)', '(0,3/4,z)'], }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(0,0,-1/2)', - '(1/2,0,-1/2)', - '(1/2,0,0)' - ] - } - } + 'h': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(1/2,1/4,1/2)', '(1/2,3/4,1/2)']}, + 'g': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(1/2,1/4,0)', '(1/2,3/4,0)']}, + 'f': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(0,1/4,1/2)', '(0,3/4,1/2)']}, + 'e': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(0,1/4,0)', '(0,3/4,0)']}, + 'd': {'multiplicity': 2, 'site_symmetry': '..2/m', 'coords_xyz': ['(0,0,1/2)', '(0,1/2,1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '..2/m', 'coords_xyz': ['(1/2,0,0)', '(1/2,1/2,0)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '..2/m', 'coords_xyz': ['(1/2,0,1/2)', '(1/2,1/2,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '..2/m', 'coords_xyz': ['(0,0,0)', '(0,1/2,0)']}, + }, }, - (57, 'cab'): { - 'IT_number': 57, - 'setting': 2, - 'IT_coordinate_system_code': 'cab', - 'name_H-M_alt': 'P m c a', + (49, 'a-cb'): { + 'IT_number': 49, + 'setting': 5, + 'IT_coordinate_system_code': 'a-cb', + 'name_H-M_alt': 'P b m b', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'e': { + 'r': { 'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(x+1/2,-y,-z)', - '(-x+1/2,-y,z+1/2)', - '(-x,y,-z+1/2)', + '(-x,y,-z)', + '(-x,-y-1/2,z)', + '(x,-y-1/2,-z)', '(-x,-y,-z)', - '(-x+1/2,y,z)', - '(x+1/2,y,-z+1/2)', - '(x,-y,z+1/2)' - ] + '(x,-y,z)', + '(x,y-1/2,-z)', + '(-x,y-1/2,z)', + ], }, - 'd': { + 'q': { 'multiplicity': 4, 'site_symmetry': '..m', - 'coords_xyz': [ - '(1/4,y,z)', - '(3/4,-y,-z)', - '(1/4,-y,z+1/2)', - '(3/4,y,-z+1/2)' - ] + 'coords_xyz': ['(x,0,z)', '(-x,0,-z)', '(-x,-1/2,z)', '(x,-1/2,-z)'], }, - 'c': { + 'p': { 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,y,1/4)', - '(1/2,-y,3/4)', - '(0,-y,3/4)', - '(1/2,y,1/4)' - ] + 'site_symmetry': '..2', + 'coords_xyz': ['(1/2,y,0)', '(1/2,-y-1/2,0)', '(1/2,-y,0)', '(1/2,y-1/2,0)'], }, - 'b': { + 'o': { 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,1/2,0)', - '(1/2,1/2,0)', - '(1/2,1/2,1/2)', - '(0,1/2,1/2)' - ] + 'site_symmetry': '..2', + 'coords_xyz': ['(0,y,1/2)', '(0,-y-1/2,1/2)', '(0,-y,1/2)', '(0,y-1/2,1/2)'], }, - 'a': { + 'n': { 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,0,0)', - '(1/2,0,1/2)', - '(0,0,1/2)' - ] - } - } - }, - (57, '-cba'): { - 'IT_number': 57, - 'setting': 3, - 'IT_coordinate_system_code': '-cba', - 'name_H-M_alt': 'P m a b', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'e': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(x-1/2,-y,-z)', - '(-x-1/2,y+1/2,-z)', - '(-x,-y+1/2,z)', - '(-x,-y,-z)', - '(-x-1/2,y,z)', - '(x-1/2,-y+1/2,z)', - '(x,y+1/2,-z)' - ] + 'site_symmetry': '..2', + 'coords_xyz': ['(1/2,y,1/2)', '(1/2,-y-1/2,1/2)', '(1/2,-y,1/2)', '(1/2,y-1/2,1/2)'], }, - 'd': { + 'm': { 'multiplicity': 4, - 'site_symmetry': '..m', - 'coords_xyz': [ - '(-1/4,y,z)', - '(-3/4,-y,-z)', - '(-1/4,y+1/2,-z)', - '(-3/4,-y+1/2,z)' - ] + 'site_symmetry': '..2', + 'coords_xyz': ['(0,y,0)', '(0,-y-1/2,0)', '(0,-y,0)', '(0,y-1/2,0)'], }, - 'c': { + 'l': { 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,1/4,z)', - '(-1/2,3/4,-z)', - '(0,3/4,-z)', - '(-1/2,1/4,z)' - ] + 'site_symmetry': '.2.', + 'coords_xyz': ['(1/2,-1/4,z)', '(1/2,-1/4,-z)', '(1/2,-3/4,-z)', '(1/2,-3/4,z)'], }, - 'b': { + 'k': { 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,1/2)', - '(-1/2,0,1/2)', - '(-1/2,1/2,1/2)', - '(0,1/2,1/2)' - ] + 'site_symmetry': '.2.', + 'coords_xyz': ['(0,-1/4,z)', '(0,-1/4,-z)', '(0,-3/4,-z)', '(0,-3/4,z)'], }, - 'a': { + 'j': { 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(-1/2,0,0)', - '(-1/2,1/2,0)', - '(0,1/2,0)' - ] - } - } + 'site_symmetry': '2..', + 'coords_xyz': ['(x,-1/4,1/2)', '(-x,-1/4,1/2)', '(-x,-3/4,1/2)', '(x,-3/4,1/2)'], + }, + 'i': { + 'multiplicity': 4, + 'site_symmetry': '2..', + 'coords_xyz': ['(x,-1/4,0)', '(-x,-1/4,0)', '(-x,-3/4,0)', '(x,-3/4,0)'], + }, + 'h': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(1/2,-1/4,1/2)', '(1/2,-3/4,1/2)']}, + 'g': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(0,-1/4,1/2)', '(0,-3/4,1/2)']}, + 'f': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(1/2,-1/4,0)', '(1/2,-3/4,0)']}, + 'e': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(0,-1/4,0)', '(0,-3/4,0)']}, + 'd': {'multiplicity': 2, 'site_symmetry': '..2/m', 'coords_xyz': ['(1/2,0,0)', '(1/2,-1/2,0)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '..2/m', 'coords_xyz': ['(0,0,1/2)', '(0,-1/2,1/2)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '..2/m', 'coords_xyz': ['(1/2,0,1/2)', '(1/2,-1/2,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '..2/m', 'coords_xyz': ['(0,0,0)', '(0,-1/2,0)']}, + }, }, - (57, 'bca'): { - 'IT_number': 57, - 'setting': 4, - 'IT_coordinate_system_code': 'bca', - 'name_H-M_alt': 'P b m a', + (50, '1abc'): { + 'IT_number': 50, + 'setting': 6, + 'IT_coordinate_system_code': '1abc', + 'name_H-M_alt': 'P b a n', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'e': { + 'm': { 'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(-x,y+1/2,-z)', - '(x+1/2,-y+1/2,-z)', - '(-x+1/2,-y,z)', - '(-x,-y,-z)', - '(x,-y+1/2,z)', + '(-x,-y,z)', + '(-x,y,-z)', + '(x,-y,-z)', + '(-x+1/2,-y+1/2,-z)', + '(x+1/2,y+1/2,-z)', + '(x+1/2,-y+1/2,z)', '(-x+1/2,y+1/2,z)', - '(x+1/2,y,-z)' - ] + ], }, - 'd': { + 'l': { 'multiplicity': 4, - 'site_symmetry': '..m', - 'coords_xyz': [ - '(x,1/4,z)', - '(-x,3/4,-z)', - '(x+1/2,1/4,-z)', - '(-x+1/2,3/4,z)' - ] + 'site_symmetry': '..2', + 'coords_xyz': ['(0,1/2,z)', '(0,1/2,-z)', '(1/2,0,-z)', '(1/2,0,z)'], }, - 'c': { + 'k': { + 'multiplicity': 4, + 'site_symmetry': '..2', + 'coords_xyz': ['(0,0,z)', '(0,0,-z)', '(1/2,1/2,-z)', '(1/2,1/2,z)'], + }, + 'j': { + 'multiplicity': 4, + 'site_symmetry': '.2.', + 'coords_xyz': ['(0,y,1/2)', '(0,-y,1/2)', '(1/2,-y+1/2,1/2)', '(1/2,y+1/2,1/2)'], + }, + 'i': { + 'multiplicity': 4, + 'site_symmetry': '.2.', + 'coords_xyz': ['(0,y,0)', '(0,-y,0)', '(1/2,-y+1/2,0)', '(1/2,y+1/2,0)'], + }, + 'h': { 'multiplicity': 4, 'site_symmetry': '2..', - 'coords_xyz': [ - '(1/4,0,z)', - '(3/4,1/2,-z)', - '(3/4,0,-z)', - '(1/4,1/2,z)' - ] + 'coords_xyz': ['(x,0,1/2)', '(-x,0,1/2)', '(-x+1/2,1/2,1/2)', '(x+1/2,1/2,1/2)'], }, - 'b': { + 'g': { + 'multiplicity': 4, + 'site_symmetry': '2..', + 'coords_xyz': ['(x,0,0)', '(-x,0,0)', '(-x+1/2,1/2,0)', '(x+1/2,1/2,0)'], + }, + 'f': { 'multiplicity': 4, 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,1/2)', - '(0,1/2,1/2)', - '(1/2,1/2,1/2)', - '(1/2,0,1/2)' - ] + 'coords_xyz': ['(1/4,1/4,1/2)', '(3/4,3/4,1/2)', '(3/4,1/4,1/2)', '(1/4,3/4,1/2)'], }, - 'a': { + 'e': { 'multiplicity': 4, 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(0,1/2,0)', - '(1/2,1/2,0)', - '(1/2,0,0)' - ] - } - } + 'coords_xyz': ['(1/4,1/4,0)', '(3/4,3/4,0)', '(3/4,1/4,0)', '(1/4,3/4,0)'], + }, + 'd': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(0,0,1/2)', '(1/2,1/2,1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(1/2,0,1/2)', '(0,1/2,1/2)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(1/2,0,0)', '(0,1/2,0)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(0,0,0)', '(1/2,1/2,0)']}, + }, }, - (57, 'a-cb'): { - 'IT_number': 57, - 'setting': 5, - 'IT_coordinate_system_code': 'a-cb', - 'name_H-M_alt': 'P c m b', + (50, '2abc'): { + 'IT_number': 50, + 'setting': 12, + 'IT_coordinate_system_code': '2abc', + 'name_H-M_alt': 'P b a n', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'e': { + 'm': { 'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(-x,y-1/2,-z)', - '(-x,-y-1/2,z+1/2)', - '(x,-y,-z+1/2)', + '(-x+1/2,-y+1/2,z)', + '(-x+1/2,y,-z)', + '(x,-y+1/2,-z)', '(-x,-y,-z)', - '(x,-y-1/2,z)', - '(x,y-1/2,-z+1/2)', - '(-x,y,z+1/2)' - ] + '(x+1/2,y+1/2,-z)', + '(x+1/2,-y,z)', + '(-x,y+1/2,z)', + ], }, - 'd': { + 'l': { 'multiplicity': 4, - 'site_symmetry': '..m', - 'coords_xyz': [ - '(x,-1/4,z)', - '(-x,-3/4,-z)', - '(-x,-1/4,z+1/2)', - '(x,-3/4,-z+1/2)' - ] + 'site_symmetry': '..2', + 'coords_xyz': ['(1/4,3/4,z)', '(1/4,3/4,-z)', '(3/4,1/4,-z)', '(3/4,1/4,z)'], }, - 'c': { + 'k': { 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(x,0,1/4)', - '(-x,-1/2,3/4)', - '(-x,0,3/4)', - '(x,-1/2,1/4)' - ] + 'site_symmetry': '..2', + 'coords_xyz': ['(1/4,1/4,z)', '(1/4,1/4,-z)', '(3/4,3/4,-z)', '(3/4,3/4,z)'], }, - 'b': { + 'j': { 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/2,0,0)', - '(1/2,-1/2,0)', - '(1/2,-1/2,1/2)', - '(1/2,0,1/2)' - ] + 'site_symmetry': '.2.', + 'coords_xyz': ['(1/4,y,1/2)', '(1/4,-y+1/2,1/2)', '(3/4,-y,1/2)', '(3/4,y+1/2,1/2)'], }, - 'a': { + 'i': { 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(0,-1/2,0)', - '(0,-1/2,1/2)', - '(0,0,1/2)' - ] - } - } - }, - (58, 'abc'): { - 'IT_number': 58, - 'setting': 0, - 'IT_coordinate_system_code': 'abc', - 'name_H-M_alt': 'P n n m', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { + 'site_symmetry': '.2.', + 'coords_xyz': ['(1/4,y,0)', '(1/4,-y+1/2,0)', '(3/4,-y,0)', '(3/4,y+1/2,0)'], + }, 'h': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z)', - '(-x+1/2,y+1/2,-z+1/2)', - '(x+1/2,-y+1/2,-z+1/2)', - '(-x,-y,-z)', - '(x,y,-z)', - '(x+1/2,-y+1/2,z+1/2)', - '(-x+1/2,y+1/2,z+1/2)' - ] + 'multiplicity': 4, + 'site_symmetry': '2..', + 'coords_xyz': ['(x,1/4,1/2)', '(-x+1/2,1/4,1/2)', '(-x,3/4,1/2)', '(x+1/2,3/4,1/2)'], }, 'g': { 'multiplicity': 4, - 'site_symmetry': '..m', - 'coords_xyz': [ - '(x,y,0)', - '(-x,-y,0)', - '(-x+1/2,y+1/2,1/2)', - '(x+1/2,-y+1/2,1/2)' - ] + 'site_symmetry': '2..', + 'coords_xyz': ['(x,1/4,0)', '(-x+1/2,1/4,0)', '(-x,3/4,0)', '(x+1/2,3/4,0)'], }, 'f': { 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,1/2,z)', - '(1/2,0,-z+1/2)', - '(0,1/2,-z)', - '(1/2,0,z+1/2)' - ] + 'site_symmetry': '-1', + 'coords_xyz': ['(0,0,1/2)', '(1/2,1/2,1/2)', '(1/2,0,1/2)', '(0,1/2,1/2)'], }, 'e': { 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,0,z)', - '(1/2,1/2,-z+1/2)', - '(0,0,-z)', - '(1/2,1/2,z+1/2)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(0,1/2,1/2)', - '(1/2,0,0)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(0,1/2,0)', - '(1/2,0,1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(0,0,1/2)', - '(1/2,1/2,0)' - ] + 'site_symmetry': '-1', + 'coords_xyz': ['(0,0,0)', '(1/2,1/2,0)', '(1/2,0,0)', '(0,1/2,0)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,1/2,1/2)' - ] - } - } + 'd': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(1/4,1/4,1/2)', '(3/4,3/4,1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(3/4,1/4,1/2)', '(1/4,3/4,1/2)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(3/4,1/4,0)', '(1/4,3/4,0)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(1/4,1/4,0)', '(3/4,3/4,0)']}, + }, }, - (58, 'ba-c'): { - 'IT_number': 58, - 'setting': 1, - 'IT_coordinate_system_code': 'ba-c', - 'name_H-M_alt': 'P n n m', + (50, '1ba-c'): { + 'IT_number': 50, + 'setting': 7, + 'IT_coordinate_system_code': '1ba-c', + 'name_H-M_alt': 'P b a n', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'h': { + 'm': { 'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', '(-x,-y,z)', - '(x+1/2,-y+1/2,-z-1/2)', - '(-x+1/2,y+1/2,-z-1/2)', - '(-x,-y,-z)', - '(x,y,-z)', - '(-x+1/2,y+1/2,z-1/2)', - '(x+1/2,-y+1/2,z-1/2)' - ] + '(x,-y,-z)', + '(-x,y,-z)', + '(-x+1/2,-y+1/2,-z)', + '(x+1/2,y+1/2,-z)', + '(-x+1/2,y+1/2,z)', + '(x+1/2,-y+1/2,z)', + ], }, - 'g': { + 'l': { 'multiplicity': 4, - 'site_symmetry': '..m', - 'coords_xyz': [ - '(x,y,0)', - '(-x,-y,0)', - '(x+1/2,-y+1/2,-1/2)', - '(-x+1/2,y+1/2,-1/2)' - ] + 'site_symmetry': '..2', + 'coords_xyz': ['(1/2,0,z)', '(1/2,0,-z)', '(0,1/2,-z)', '(0,1/2,z)'], }, - 'f': { + 'k': { 'multiplicity': 4, 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/2,0,z)', - '(0,1/2,-z-1/2)', - '(1/2,0,-z)', - '(0,1/2,z-1/2)' - ] + 'coords_xyz': ['(0,0,z)', '(0,0,-z)', '(1/2,1/2,-z)', '(1/2,1/2,z)'], }, - 'e': { + 'j': { 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,0,z)', - '(1/2,1/2,-z-1/2)', - '(0,0,-z)', - '(1/2,1/2,z-1/2)' - ] + 'site_symmetry': '.2.', + 'coords_xyz': ['(x,0,-1/2)', '(-x,0,-1/2)', '(-x+1/2,1/2,-1/2)', '(x+1/2,1/2,-1/2)'], }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(1/2,0,-1/2)', - '(0,1/2,0)' - ] + 'i': { + 'multiplicity': 4, + 'site_symmetry': '.2.', + 'coords_xyz': ['(x,0,0)', '(-x,0,0)', '(-x+1/2,1/2,0)', '(x+1/2,1/2,0)'], }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(1/2,0,0)', - '(0,1/2,-1/2)' - ] + 'h': { + 'multiplicity': 4, + 'site_symmetry': '2..', + 'coords_xyz': ['(0,y,-1/2)', '(0,-y,-1/2)', '(1/2,-y+1/2,-1/2)', '(1/2,y+1/2,-1/2)'], }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(0,0,-1/2)', - '(1/2,1/2,0)' - ] + 'g': { + 'multiplicity': 4, + 'site_symmetry': '2..', + 'coords_xyz': ['(0,y,0)', '(0,-y,0)', '(1/2,-y+1/2,0)', '(1/2,y+1/2,0)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,1/2,-1/2)' - ] - } - } + 'f': { + 'multiplicity': 4, + 'site_symmetry': '-1', + 'coords_xyz': ['(1/4,1/4,-1/2)', '(3/4,3/4,-1/2)', '(1/4,3/4,-1/2)', '(3/4,1/4,-1/2)'], + }, + 'e': { + 'multiplicity': 4, + 'site_symmetry': '-1', + 'coords_xyz': ['(1/4,1/4,0)', '(3/4,3/4,0)', '(1/4,3/4,0)', '(3/4,1/4,0)'], + }, + 'd': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(0,0,-1/2)', '(1/2,1/2,-1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(0,1/2,-1/2)', '(1/2,0,-1/2)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(0,1/2,0)', '(1/2,0,0)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(0,0,0)', '(1/2,1/2,0)']}, + }, }, - (58, 'cab'): { - 'IT_number': 58, - 'setting': 2, - 'IT_coordinate_system_code': 'cab', - 'name_H-M_alt': 'P m n n', + (50, '2ba-c'): { + 'IT_number': 50, + 'setting': 13, + 'IT_coordinate_system_code': '2ba-c', + 'name_H-M_alt': 'P b a n', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'h': { + 'm': { 'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(x,-y,-z)', - '(-x+1/2,-y+1/2,z+1/2)', - '(-x+1/2,y+1/2,-z+1/2)', + '(-x+1/2,-y+1/2,z)', + '(x,-y+1/2,-z)', + '(-x+1/2,y,-z)', '(-x,-y,-z)', - '(-x,y,z)', - '(x+1/2,y+1/2,-z+1/2)', - '(x+1/2,-y+1/2,z+1/2)' - ] + '(x+1/2,y+1/2,-z)', + '(-x,y+1/2,z)', + '(x+1/2,-y,z)', + ], }, - 'g': { + 'l': { 'multiplicity': 4, - 'site_symmetry': '..m', - 'coords_xyz': [ - '(0,y,z)', - '(0,-y,-z)', - '(1/2,-y+1/2,z+1/2)', - '(1/2,y+1/2,-z+1/2)' - ] + 'site_symmetry': '..2', + 'coords_xyz': ['(3/4,1/4,z)', '(3/4,1/4,-z)', '(1/4,3/4,-z)', '(1/4,3/4,z)'], }, - 'f': { + 'k': { 'multiplicity': 4, 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,0,1/2)', - '(-x+1/2,1/2,0)', - '(-x,0,1/2)', - '(x+1/2,1/2,0)' - ] + 'coords_xyz': ['(1/4,1/4,z)', '(1/4,1/4,-z)', '(3/4,3/4,-z)', '(3/4,3/4,z)'], }, - 'e': { + 'j': { 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,0,0)', - '(-x+1/2,1/2,1/2)', - '(-x,0,0)', - '(x+1/2,1/2,1/2)' - ] + 'site_symmetry': '.2.', + 'coords_xyz': ['(x,1/4,-1/2)', '(-x+1/2,1/4,-1/2)', '(-x,3/4,-1/2)', '(x+1/2,3/4,-1/2)'], }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(1/2,0,1/2)', - '(0,1/2,0)' - ] + 'i': { + 'multiplicity': 4, + 'site_symmetry': '.2.', + 'coords_xyz': ['(x,1/4,0)', '(-x+1/2,1/4,0)', '(-x,3/4,0)', '(x+1/2,3/4,0)'], }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(0,0,1/2)', - '(1/2,1/2,0)' - ] + 'h': { + 'multiplicity': 4, + 'site_symmetry': '2..', + 'coords_xyz': ['(1/4,y,-1/2)', '(1/4,-y+1/2,-1/2)', '(3/4,-y,-1/2)', '(3/4,y+1/2,-1/2)'], }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(1/2,0,0)', - '(0,1/2,1/2)' - ] + 'g': { + 'multiplicity': 4, + 'site_symmetry': '2..', + 'coords_xyz': ['(1/4,y,0)', '(1/4,-y+1/2,0)', '(3/4,-y,0)', '(3/4,y+1/2,0)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,1/2,1/2)' - ] - } - } + 'f': { + 'multiplicity': 4, + 'site_symmetry': '-1', + 'coords_xyz': ['(0,0,-1/2)', '(1/2,1/2,-1/2)', '(0,1/2,-1/2)', '(1/2,0,-1/2)'], + }, + 'e': { + 'multiplicity': 4, + 'site_symmetry': '-1', + 'coords_xyz': ['(0,0,0)', '(1/2,1/2,0)', '(0,1/2,0)', '(1/2,0,0)'], + }, + 'd': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(1/4,1/4,-1/2)', '(3/4,3/4,-1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(1/4,3/4,-1/2)', '(3/4,1/4,-1/2)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(1/4,3/4,0)', '(3/4,1/4,0)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(1/4,1/4,0)', '(3/4,3/4,0)']}, + }, }, - (58, '-cba'): { - 'IT_number': 58, - 'setting': 3, - 'IT_coordinate_system_code': '-cba', - 'name_H-M_alt': 'P m n n', + (50, '1cab'): { + 'IT_number': 50, + 'setting': 8, + 'IT_coordinate_system_code': '1cab', + 'name_H-M_alt': 'P n c b', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'h': { + 'm': { 'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', '(x,-y,-z)', - '(-x-1/2,y+1/2,-z+1/2)', - '(-x-1/2,-y+1/2,z+1/2)', - '(-x,-y,-z)', - '(-x,y,z)', - '(x-1/2,-y+1/2,z+1/2)', - '(x-1/2,y+1/2,-z+1/2)' - ] - }, - 'g': { - 'multiplicity': 4, - 'site_symmetry': '..m', - 'coords_xyz': [ - '(0,y,z)', - '(0,-y,-z)', - '(-1/2,y+1/2,-z+1/2)', - '(-1/2,-y+1/2,z+1/2)' - ] + '(-x,-y,z)', + '(-x,y,-z)', + '(-x,-y+1/2,-z+1/2)', + '(-x,y+1/2,z+1/2)', + '(x,y+1/2,-z+1/2)', + '(x,-y+1/2,z+1/2)', + ], }, - 'f': { + 'l': { 'multiplicity': 4, 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,1/2,0)', - '(-x-1/2,0,1/2)', - '(-x,1/2,0)', - '(x-1/2,0,1/2)' - ] + 'coords_xyz': ['(x,0,1/2)', '(-x,0,1/2)', '(-x,1/2,0)', '(x,1/2,0)'], }, - 'e': { + 'k': { 'multiplicity': 4, 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,0,0)', - '(-x-1/2,1/2,1/2)', - '(-x,0,0)', - '(x-1/2,1/2,1/2)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(-1/2,1/2,0)', - '(0,0,1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(0,1/2,0)', - '(-1/2,0,1/2)' - ] + 'coords_xyz': ['(x,0,0)', '(-x,0,0)', '(-x,1/2,1/2)', '(x,1/2,1/2)'], }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(-1/2,0,0)', - '(0,1/2,1/2)' - ] + 'j': { + 'multiplicity': 4, + 'site_symmetry': '.2.', + 'coords_xyz': ['(1/2,0,z)', '(1/2,0,-z)', '(1/2,1/2,-z+1/2)', '(1/2,1/2,z+1/2)'], + }, + 'i': { + 'multiplicity': 4, + 'site_symmetry': '.2.', + 'coords_xyz': ['(0,0,z)', '(0,0,-z)', '(0,1/2,-z+1/2)', '(0,1/2,z+1/2)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(0,0,0)', - '(-1/2,1/2,1/2)' - ] - } - } - }, - (58, 'bca'): { - 'IT_number': 58, - 'setting': 4, - 'IT_coordinate_system_code': 'bca', - 'name_H-M_alt': 'P n m n', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { 'h': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y,-z)', - '(x+1/2,-y+1/2,-z+1/2)', - '(-x+1/2,-y+1/2,z+1/2)', - '(-x,-y,-z)', - '(x,-y,z)', - '(-x+1/2,y+1/2,z+1/2)', - '(x+1/2,y+1/2,-z+1/2)' - ] + 'multiplicity': 4, + 'site_symmetry': '2..', + 'coords_xyz': ['(1/2,y,0)', '(1/2,-y,0)', '(1/2,-y+1/2,1/2)', '(1/2,y+1/2,1/2)'], }, 'g': { 'multiplicity': 4, - 'site_symmetry': '..m', - 'coords_xyz': [ - '(x,0,z)', - '(-x,0,-z)', - '(x+1/2,1/2,-z+1/2)', - '(-x+1/2,1/2,z+1/2)' - ] + 'site_symmetry': '2..', + 'coords_xyz': ['(0,y,0)', '(0,-y,0)', '(0,-y+1/2,1/2)', '(0,y+1/2,1/2)'], }, 'f': { 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/2,y,0)', - '(0,-y+1/2,1/2)', - '(1/2,-y,0)', - '(0,y+1/2,1/2)' - ] + 'site_symmetry': '-1', + 'coords_xyz': ['(1/2,1/4,1/4)', '(1/2,3/4,3/4)', '(1/2,3/4,1/4)', '(1/2,1/4,3/4)'], }, 'e': { 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,y,0)', - '(1/2,-y+1/2,1/2)', - '(0,-y,0)', - '(1/2,y+1/2,1/2)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(1/2,1/2,0)', - '(0,0,1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(1/2,0,0)', - '(0,1/2,1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(0,1/2,0)', - '(1/2,0,1/2)' - ] + 'site_symmetry': '-1', + 'coords_xyz': ['(0,1/4,1/4)', '(0,3/4,3/4)', '(0,3/4,1/4)', '(0,1/4,3/4)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,1/2,1/2)' - ] - } - } + 'd': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(1/2,0,0)', '(1/2,1/2,1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(1/2,1/2,0)', '(1/2,0,1/2)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(0,1/2,0)', '(0,0,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(0,0,0)', '(0,1/2,1/2)']}, + }, }, - (58, 'a-cb'): { - 'IT_number': 58, - 'setting': 5, - 'IT_coordinate_system_code': 'a-cb', - 'name_H-M_alt': 'P n m n', + (50, '2cab'): { + 'IT_number': 50, + 'setting': 14, + 'IT_coordinate_system_code': '2cab', + 'name_H-M_alt': 'P n c b', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'h': { + 'm': { 'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(-x,y,-z)', - '(-x+1/2,-y-1/2,z+1/2)', - '(x+1/2,-y-1/2,-z+1/2)', + '(x,-y+1/2,-z+1/2)', + '(-x,-y+1/2,z)', + '(-x,y,-z+1/2)', '(-x,-y,-z)', - '(x,-y,z)', - '(x+1/2,y-1/2,-z+1/2)', - '(-x+1/2,y-1/2,z+1/2)' - ] + '(-x,y+1/2,z+1/2)', + '(x,y+1/2,-z)', + '(x,-y,z+1/2)', + ], }, - 'g': { + 'l': { 'multiplicity': 4, - 'site_symmetry': '..m', - 'coords_xyz': [ - '(x,0,z)', - '(-x,0,-z)', - '(-x+1/2,-1/2,z+1/2)', - '(x+1/2,-1/2,-z+1/2)' - ] + 'site_symmetry': '..2', + 'coords_xyz': ['(x,1/4,3/4)', '(-x,1/4,3/4)', '(-x,3/4,1/4)', '(x,3/4,1/4)'], }, - 'f': { + 'k': { 'multiplicity': 4, 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,y,1/2)', - '(1/2,-y-1/2,0)', - '(0,-y,1/2)', - '(1/2,y-1/2,0)' - ] + 'coords_xyz': ['(x,1/4,1/4)', '(-x,1/4,1/4)', '(-x,3/4,3/4)', '(x,3/4,3/4)'], }, - 'e': { + 'j': { 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,y,0)', - '(1/2,-y-1/2,1/2)', - '(0,-y,0)', - '(1/2,y-1/2,1/2)' - ] + 'site_symmetry': '.2.', + 'coords_xyz': ['(1/2,1/4,z)', '(1/2,1/4,-z+1/2)', '(1/2,3/4,-z)', '(1/2,3/4,z+1/2)'], }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(0,-1/2,1/2)', - '(1/2,0,0)' - ] + 'i': { + 'multiplicity': 4, + 'site_symmetry': '.2.', + 'coords_xyz': ['(0,1/4,z)', '(0,1/4,-z+1/2)', '(0,3/4,-z)', '(0,3/4,z+1/2)'], }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(0,0,1/2)', - '(1/2,-1/2,0)' - ] + 'h': { + 'multiplicity': 4, + 'site_symmetry': '2..', + 'coords_xyz': ['(1/2,y,1/4)', '(1/2,-y+1/2,1/4)', '(1/2,-y,3/4)', '(1/2,y+1/2,3/4)'], }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(0,-1/2,0)', - '(1/2,0,1/2)' - ] + 'g': { + 'multiplicity': 4, + 'site_symmetry': '2..', + 'coords_xyz': ['(0,y,1/4)', '(0,-y+1/2,1/4)', '(0,-y,3/4)', '(0,y+1/2,3/4)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,-1/2,1/2)' - ] - } - } + 'f': { + 'multiplicity': 4, + 'site_symmetry': '-1', + 'coords_xyz': ['(1/2,0,0)', '(1/2,1/2,1/2)', '(1/2,1/2,0)', '(1/2,0,1/2)'], + }, + 'e': { + 'multiplicity': 4, + 'site_symmetry': '-1', + 'coords_xyz': ['(0,0,0)', '(0,1/2,1/2)', '(0,1/2,0)', '(0,0,1/2)'], + }, + 'd': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(1/2,1/4,1/4)', '(1/2,3/4,3/4)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(1/2,3/4,1/4)', '(1/2,1/4,3/4)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(0,3/4,1/4)', '(0,1/4,3/4)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(0,1/4,1/4)', '(0,3/4,3/4)']}, + }, }, - (59, '1abc'): { - 'IT_number': 59, - 'setting': 6, - 'IT_coordinate_system_code': '1abc', - 'name_H-M_alt': 'P m m n', + (50, '1-cba'): { + 'IT_number': 50, + 'setting': 9, + 'IT_coordinate_system_code': '1-cba', + 'name_H-M_alt': 'P n c b', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'g': { + 'm': { 'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', + '(x,-y,-z)', + '(-x,y,-z)', '(-x,-y,z)', - '(-x+1/2,y+1/2,-z)', - '(x+1/2,-y+1/2,-z)', - '(-x+1/2,-y+1/2,-z)', - '(x+1/2,y+1/2,-z)', - '(x,-y,z)', - '(-x,y,z)' - ] + '(-x,-y+1/2,-z+1/2)', + '(-x,y+1/2,z+1/2)', + '(x,-y+1/2,z+1/2)', + '(x,y+1/2,-z+1/2)', + ], }, - 'f': { + 'l': { 'multiplicity': 4, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,0,z)', - '(-x,0,z)', - '(-x+1/2,1/2,-z)', - '(x+1/2,1/2,-z)' - ] + 'site_symmetry': '..2', + 'coords_xyz': ['(x,1/2,0)', '(-x,1/2,0)', '(-x,0,1/2)', '(x,0,1/2)'], }, - 'e': { + 'k': { 'multiplicity': 4, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(0,y,z)', - '(0,-y,z)', - '(1/2,y+1/2,-z)', - '(1/2,-y+1/2,-z)' - ] + 'site_symmetry': '..2', + 'coords_xyz': ['(x,0,0)', '(-x,0,0)', '(-x,1/2,1/2)', '(x,1/2,1/2)'], }, - 'd': { + 'j': { 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/4,1/4,1/2)', - '(3/4,3/4,1/2)', - '(1/4,3/4,1/2)', - '(3/4,1/4,1/2)' - ] + 'site_symmetry': '.2.', + 'coords_xyz': ['(-1/2,y,0)', '(-1/2,-y,0)', '(-1/2,-y+1/2,1/2)', '(-1/2,y+1/2,1/2)'], }, - 'c': { + 'i': { + 'multiplicity': 4, + 'site_symmetry': '.2.', + 'coords_xyz': ['(0,y,0)', '(0,-y,0)', '(0,-y+1/2,1/2)', '(0,y+1/2,1/2)'], + }, + 'h': { + 'multiplicity': 4, + 'site_symmetry': '2..', + 'coords_xyz': ['(-1/2,0,z)', '(-1/2,0,-z)', '(-1/2,1/2,-z+1/2)', '(-1/2,1/2,z+1/2)'], + }, + 'g': { + 'multiplicity': 4, + 'site_symmetry': '2..', + 'coords_xyz': ['(0,0,z)', '(0,0,-z)', '(0,1/2,-z+1/2)', '(0,1/2,z+1/2)'], + }, + 'f': { 'multiplicity': 4, 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/4,1/4,0)', - '(3/4,3/4,0)', - '(1/4,3/4,0)', - '(3/4,1/4,0)' - ] + 'coords_xyz': ['(-1/2,1/4,1/4)', '(-1/2,3/4,3/4)', '(-1/2,1/4,3/4)', '(-1/2,3/4,1/4)'], }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(0,1/2,z)', - '(1/2,0,-z)' - ] + 'e': { + 'multiplicity': 4, + 'site_symmetry': '-1', + 'coords_xyz': ['(0,1/4,1/4)', '(0,3/4,3/4)', '(0,1/4,3/4)', '(0,3/4,1/4)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(0,0,z)', - '(1/2,1/2,-z)' - ] - } - } + 'd': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(-1/2,0,0)', '(-1/2,1/2,1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(-1/2,0,1/2)', '(-1/2,1/2,0)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(0,0,1/2)', '(0,1/2,0)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(0,0,0)', '(0,1/2,1/2)']}, + }, }, - (59, '2abc'): { - 'IT_number': 59, - 'setting': 12, - 'IT_coordinate_system_code': '2abc', - 'name_H-M_alt': 'P m m n', + (50, '2-cba'): { + 'IT_number': 50, + 'setting': 15, + 'IT_coordinate_system_code': '2-cba', + 'name_H-M_alt': 'P n c b', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'g': { + 'm': { 'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(-x+1/2,-y+1/2,z)', - '(-x,y+1/2,-z)', - '(x+1/2,-y,-z)', + '(x,-y+1/2,-z+1/2)', + '(-x,y,-z+1/2)', + '(-x,-y+1/2,z)', '(-x,-y,-z)', - '(x+1/2,y+1/2,-z)', - '(x,-y+1/2,z)', - '(-x+1/2,y,z)' - ] + '(-x,y+1/2,z+1/2)', + '(x,-y,z+1/2)', + '(x,y+1/2,-z)', + ], }, - 'f': { + 'l': { 'multiplicity': 4, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,1/4,z)', - '(-x+1/2,1/4,z)', - '(-x,3/4,-z)', - '(x+1/2,3/4,-z)' - ] + 'site_symmetry': '..2', + 'coords_xyz': ['(x,3/4,1/4)', '(-x,3/4,1/4)', '(-x,1/4,3/4)', '(x,1/4,3/4)'], }, - 'e': { + 'k': { 'multiplicity': 4, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(1/4,y,z)', - '(1/4,-y+1/2,z)', - '(3/4,y+1/2,-z)', - '(3/4,-y,-z)' - ] + 'site_symmetry': '..2', + 'coords_xyz': ['(x,1/4,1/4)', '(-x,1/4,1/4)', '(-x,3/4,3/4)', '(x,3/4,3/4)'], }, - 'd': { + 'j': { 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,1/2)', - '(1/2,1/2,1/2)', - '(0,1/2,1/2)', - '(1/2,0,1/2)' - ] + 'site_symmetry': '.2.', + 'coords_xyz': ['(-1/2,y,1/4)', '(-1/2,-y+1/2,1/4)', '(-1/2,-y,3/4)', '(-1/2,y+1/2,3/4)'], }, - 'c': { + 'i': { 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,1/2,0)', - '(0,1/2,0)', - '(1/2,0,0)' - ] + 'site_symmetry': '.2.', + 'coords_xyz': ['(0,y,1/4)', '(0,-y+1/2,1/4)', '(0,-y,3/4)', '(0,y+1/2,3/4)'], }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(1/4,3/4,z)', - '(3/4,1/4,-z)' - ] + 'h': { + 'multiplicity': 4, + 'site_symmetry': '2..', + 'coords_xyz': ['(-1/2,1/4,z)', '(-1/2,1/4,-z+1/2)', '(-1/2,3/4,-z)', '(-1/2,3/4,z+1/2)'], + }, + 'g': { + 'multiplicity': 4, + 'site_symmetry': '2..', + 'coords_xyz': ['(0,1/4,z)', '(0,1/4,-z+1/2)', '(0,3/4,-z)', '(0,3/4,z+1/2)'], + }, + 'f': { + 'multiplicity': 4, + 'site_symmetry': '-1', + 'coords_xyz': ['(-1/2,0,0)', '(-1/2,1/2,1/2)', '(-1/2,0,1/2)', '(-1/2,1/2,0)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(1/4,1/4,z)', - '(3/4,3/4,-z)' - ] - } - } + 'e': { + 'multiplicity': 4, + 'site_symmetry': '-1', + 'coords_xyz': ['(0,0,0)', '(0,1/2,1/2)', '(0,0,1/2)', '(0,1/2,0)'], + }, + 'd': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(-1/2,1/4,1/4)', '(-1/2,3/4,3/4)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(-1/2,1/4,3/4)', '(-1/2,3/4,1/4)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(0,1/4,3/4)', '(0,3/4,1/4)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(0,1/4,1/4)', '(0,3/4,3/4)']}, + }, }, - (59, '1ba-c'): { - 'IT_number': 59, - 'setting': 7, - 'IT_coordinate_system_code': '1ba-c', - 'name_H-M_alt': 'P m m n', + (50, '1bca'): { + 'IT_number': 50, + 'setting': 10, + 'IT_coordinate_system_code': '1bca', + 'name_H-M_alt': 'P c n a', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'g': { + 'm': { 'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', + '(-x,y,-z)', + '(x,-y,-z)', '(-x,-y,z)', - '(x+1/2,-y+1/2,-z)', - '(-x+1/2,y+1/2,-z)', - '(-x+1/2,-y+1/2,-z)', - '(x+1/2,y+1/2,-z)', - '(-x,y,z)', - '(x,-y,z)' - ] + '(-x+1/2,-y,-z+1/2)', + '(x+1/2,-y,z+1/2)', + '(-x+1/2,y,z+1/2)', + '(x+1/2,y,-z+1/2)', + ], }, - 'f': { + 'l': { 'multiplicity': 4, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(0,y,z)', - '(0,-y,z)', - '(1/2,-y+1/2,-z)', - '(1/2,y+1/2,-z)' - ] + 'site_symmetry': '..2', + 'coords_xyz': ['(1/2,y,0)', '(1/2,-y,0)', '(0,-y,1/2)', '(0,y,1/2)'], }, - 'e': { + 'k': { 'multiplicity': 4, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,0,z)', - '(-x,0,z)', - '(x+1/2,1/2,-z)', - '(-x+1/2,1/2,-z)' - ] + 'site_symmetry': '..2', + 'coords_xyz': ['(0,y,0)', '(0,-y,0)', '(1/2,-y,1/2)', '(1/2,y,1/2)'], }, - 'd': { + 'j': { 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/4,1/4,-1/2)', - '(3/4,3/4,-1/2)', - '(3/4,1/4,-1/2)', - '(1/4,3/4,-1/2)' - ] + 'site_symmetry': '.2.', + 'coords_xyz': ['(x,1/2,0)', '(-x,1/2,0)', '(-x+1/2,1/2,1/2)', '(x+1/2,1/2,1/2)'], }, - 'c': { + 'i': { + 'multiplicity': 4, + 'site_symmetry': '.2.', + 'coords_xyz': ['(x,0,0)', '(-x,0,0)', '(-x+1/2,0,1/2)', '(x+1/2,0,1/2)'], + }, + 'h': { + 'multiplicity': 4, + 'site_symmetry': '2..', + 'coords_xyz': ['(0,1/2,z)', '(0,1/2,-z)', '(1/2,1/2,-z+1/2)', '(1/2,1/2,z+1/2)'], + }, + 'g': { + 'multiplicity': 4, + 'site_symmetry': '2..', + 'coords_xyz': ['(0,0,z)', '(0,0,-z)', '(1/2,0,-z+1/2)', '(1/2,0,z+1/2)'], + }, + 'f': { 'multiplicity': 4, 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/4,1/4,0)', - '(3/4,3/4,0)', - '(3/4,1/4,0)', - '(1/4,3/4,0)' - ] + 'coords_xyz': ['(1/4,1/2,1/4)', '(3/4,1/2,3/4)', '(1/4,1/2,3/4)', '(3/4,1/2,1/4)'], }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(1/2,0,z)', - '(0,1/2,-z)' - ] + 'e': { + 'multiplicity': 4, + 'site_symmetry': '-1', + 'coords_xyz': ['(1/4,0,1/4)', '(3/4,0,3/4)', '(1/4,0,3/4)', '(3/4,0,1/4)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(0,0,z)', - '(1/2,1/2,-z)' - ] - } - } + 'd': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(0,1/2,0)', '(1/2,1/2,1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(0,1/2,1/2)', '(1/2,1/2,0)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(0,0,1/2)', '(1/2,0,0)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(0,0,0)', '(1/2,0,1/2)']}, + }, }, - (59, '2ba-c'): { - 'IT_number': 59, - 'setting': 13, - 'IT_coordinate_system_code': '2ba-c', - 'name_H-M_alt': 'P m m n', + (50, '2bca'): { + 'IT_number': 50, + 'setting': 16, + 'IT_coordinate_system_code': '2bca', + 'name_H-M_alt': 'P c n a', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'g': { + 'm': { 'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(-x+1/2,-y+1/2,z)', - '(x+1/2,-y,-z)', - '(-x,y+1/2,-z)', + '(-x+1/2,y,-z+1/2)', + '(x,-y,-z+1/2)', + '(-x+1/2,-y,z)', '(-x,-y,-z)', - '(x+1/2,y+1/2,-z)', - '(-x+1/2,y,z)', - '(x,-y+1/2,z)' - ] + '(x+1/2,-y,z+1/2)', + '(-x,y,z+1/2)', + '(x+1/2,y,-z)', + ], }, - 'f': { + 'l': { 'multiplicity': 4, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(1/4,y,z)', - '(1/4,-y+1/2,z)', - '(3/4,-y,-z)', - '(3/4,y+1/2,-z)' - ] + 'site_symmetry': '..2', + 'coords_xyz': ['(3/4,y,1/4)', '(3/4,-y,1/4)', '(1/4,-y,3/4)', '(1/4,y,3/4)'], }, - 'e': { + 'k': { 'multiplicity': 4, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,1/4,z)', - '(-x+1/2,1/4,z)', - '(x+1/2,3/4,-z)', - '(-x,3/4,-z)' - ] + 'site_symmetry': '..2', + 'coords_xyz': ['(1/4,y,1/4)', '(1/4,-y,1/4)', '(3/4,-y,3/4)', '(3/4,y,3/4)'], }, - 'd': { + 'j': { 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,-1/2)', - '(1/2,1/2,-1/2)', - '(1/2,0,-1/2)', - '(0,1/2,-1/2)' - ] + 'site_symmetry': '.2.', + 'coords_xyz': ['(x,1/2,1/4)', '(-x+1/2,1/2,1/4)', '(-x,1/2,3/4)', '(x+1/2,1/2,3/4)'], }, - 'c': { + 'i': { + 'multiplicity': 4, + 'site_symmetry': '.2.', + 'coords_xyz': ['(x,0,1/4)', '(-x+1/2,0,1/4)', '(-x,0,3/4)', '(x+1/2,0,3/4)'], + }, + 'h': { + 'multiplicity': 4, + 'site_symmetry': '2..', + 'coords_xyz': ['(1/4,1/2,z)', '(1/4,1/2,-z+1/2)', '(3/4,1/2,-z)', '(3/4,1/2,z+1/2)'], + }, + 'g': { + 'multiplicity': 4, + 'site_symmetry': '2..', + 'coords_xyz': ['(1/4,0,z)', '(1/4,0,-z+1/2)', '(3/4,0,-z)', '(3/4,0,z+1/2)'], + }, + 'f': { 'multiplicity': 4, 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,1/2,0)', - '(1/2,0,0)', - '(0,1/2,0)' - ] + 'coords_xyz': ['(0,1/2,0)', '(1/2,1/2,1/2)', '(0,1/2,1/2)', '(1/2,1/2,0)'], }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(3/4,1/4,z)', - '(1/4,3/4,-z)' - ] + 'e': { + 'multiplicity': 4, + 'site_symmetry': '-1', + 'coords_xyz': ['(0,0,0)', '(1/2,0,1/2)', '(0,0,1/2)', '(1/2,0,0)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(1/4,1/4,z)', - '(3/4,3/4,-z)' - ] - } - } + 'd': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(1/4,1/2,1/4)', '(3/4,1/2,3/4)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(1/4,1/2,3/4)', '(3/4,1/2,1/4)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(1/4,0,3/4)', '(3/4,0,1/4)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(1/4,0,1/4)', '(3/4,0,3/4)']}, + }, }, - (59, '1cab'): { - 'IT_number': 59, - 'setting': 8, - 'IT_coordinate_system_code': '1cab', - 'name_H-M_alt': 'P n m m', + (50, '2a-cb'): { + 'IT_number': 50, + 'setting': 17, + 'IT_coordinate_system_code': '2a-cb', + 'name_H-M_alt': 'P c n a', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'g': { + 'm': { 'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(x,-y,-z)', - '(-x,-y+1/2,z+1/2)', - '(-x,y+1/2,-z+1/2)', - '(-x,-y+1/2,-z+1/2)', - '(-x,y+1/2,z+1/2)', - '(x,y,-z)', - '(x,-y,z)' - ] + '(-x+1/2,y,-z+1/2)', + '(-x+1/2,-y,z)', + '(x,-y,-z+1/2)', + '(-x,-y,-z)', + '(x+1/2,-y,z+1/2)', + '(x+1/2,y,-z)', + '(-x,y,z+1/2)', + ], }, - 'f': { + 'l': { 'multiplicity': 4, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,y,0)', - '(x,-y,0)', - '(-x,-y+1/2,1/2)', - '(-x,y+1/2,1/2)' - ] + 'site_symmetry': '..2', + 'coords_xyz': ['(1/4,y,3/4)', '(1/4,-y,3/4)', '(3/4,-y,1/4)', '(3/4,y,1/4)'], }, - 'e': { + 'k': { 'multiplicity': 4, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,0,z)', - '(x,0,-z)', - '(-x,1/2,z+1/2)', - '(-x,1/2,-z+1/2)' - ] + 'site_symmetry': '..2', + 'coords_xyz': ['(1/4,y,1/4)', '(1/4,-y,1/4)', '(3/4,-y,3/4)', '(3/4,y,3/4)'], }, - 'd': { + 'j': { 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/2,1/4,1/4)', - '(1/2,3/4,3/4)', - '(1/2,1/4,3/4)', - '(1/2,3/4,1/4)' - ] + 'site_symmetry': '.2.', + 'coords_xyz': ['(1/4,-1/2,z)', '(1/4,-1/2,-z+1/2)', '(3/4,-1/2,-z)', '(3/4,-1/2,z+1/2)'], }, - 'c': { + 'i': { + 'multiplicity': 4, + 'site_symmetry': '.2.', + 'coords_xyz': ['(1/4,0,z)', '(1/4,0,-z+1/2)', '(3/4,0,-z)', '(3/4,0,z+1/2)'], + }, + 'h': { + 'multiplicity': 4, + 'site_symmetry': '2..', + 'coords_xyz': ['(x,-1/2,1/4)', '(-x+1/2,-1/2,1/4)', '(-x,-1/2,3/4)', '(x+1/2,-1/2,3/4)'], + }, + 'g': { + 'multiplicity': 4, + 'site_symmetry': '2..', + 'coords_xyz': ['(x,0,1/4)', '(-x+1/2,0,1/4)', '(-x,0,3/4)', '(x+1/2,0,3/4)'], + }, + 'f': { 'multiplicity': 4, 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,1/4,1/4)', - '(0,3/4,3/4)', - '(0,1/4,3/4)', - '(0,3/4,1/4)' - ] + 'coords_xyz': ['(0,-1/2,0)', '(1/2,-1/2,1/2)', '(1/2,-1/2,0)', '(0,-1/2,1/2)'], }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(x,0,1/2)', - '(-x,1/2,0)' - ] + 'e': { + 'multiplicity': 4, + 'site_symmetry': '-1', + 'coords_xyz': ['(0,0,0)', '(1/2,0,1/2)', '(1/2,0,0)', '(0,0,1/2)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(x,0,0)', - '(-x,1/2,1/2)' - ] - } - } + 'd': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(1/4,-1/2,1/4)', '(3/4,-1/2,3/4)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(3/4,-1/2,1/4)', '(1/4,-1/2,3/4)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(3/4,0,1/4)', '(1/4,0,3/4)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(1/4,0,1/4)', '(3/4,0,3/4)']}, + }, }, - (59, '2cab'): { - 'IT_number': 59, - 'setting': 14, - 'IT_coordinate_system_code': '2cab', - 'name_H-M_alt': 'P n m m', + (51, 'abc'): { + 'IT_number': 51, + 'setting': 0, + 'IT_coordinate_system_code': 'abc', + 'name_H-M_alt': 'P m m a', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'g': { + 'l': { 'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(x,-y+1/2,-z+1/2)', - '(-x,-y,z+1/2)', - '(-x,y+1/2,-z)', - '(-x,-y,-z)', - '(-x,y+1/2,z+1/2)', - '(x,y,-z+1/2)', - '(x,-y+1/2,z)' - ] - }, - 'f': { - 'multiplicity': 4, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,y,1/4)', - '(x,-y+1/2,1/4)', - '(-x,-y,3/4)', - '(-x,y+1/2,3/4)' - ] + '(-x+1/2,-y,z)', + '(-x,y,-z)', + '(x+1/2,-y,-z)', + '(-x,-y,-z)', + '(x+1/2,y,-z)', + '(x,-y,z)', + '(-x+1/2,y,z)', + ], }, - 'e': { + 'k': { 'multiplicity': 4, 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,1/4,z)', - '(x,1/4,-z+1/2)', - '(-x,3/4,z+1/2)', - '(-x,3/4,-z)' - ] + 'coords_xyz': ['(1/4,y,z)', '(1/4,-y,z)', '(3/4,y,-z)', '(3/4,-y,-z)'], }, - 'd': { + 'j': { 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/2,0,0)', - '(1/2,1/2,1/2)', - '(1/2,0,1/2)', - '(1/2,1/2,0)' - ] + 'site_symmetry': '.m.', + 'coords_xyz': ['(x,1/2,z)', '(-x+1/2,1/2,z)', '(-x,1/2,-z)', '(x+1/2,1/2,-z)'], }, - 'c': { + 'i': { 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(0,1/2,1/2)', - '(0,0,1/2)', - '(0,1/2,0)' - ] + 'site_symmetry': '.m.', + 'coords_xyz': ['(x,0,z)', '(-x+1/2,0,z)', '(-x,0,-z)', '(x+1/2,0,-z)'], }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(x,1/4,3/4)', - '(-x,3/4,1/4)' - ] + 'h': { + 'multiplicity': 4, + 'site_symmetry': '.2.', + 'coords_xyz': ['(0,y,1/2)', '(1/2,-y,1/2)', '(0,-y,1/2)', '(1/2,y,1/2)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(x,1/4,1/4)', - '(-x,3/4,3/4)' - ] - } - } + 'g': {'multiplicity': 4, 'site_symmetry': '.2.', 'coords_xyz': ['(0,y,0)', '(1/2,-y,0)', '(0,-y,0)', '(1/2,y,0)']}, + 'f': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(1/4,1/2,z)', '(3/4,1/2,-z)']}, + 'e': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(1/4,0,z)', '(3/4,0,-z)']}, + 'd': {'multiplicity': 2, 'site_symmetry': '.2/m.', 'coords_xyz': ['(0,1/2,1/2)', '(1/2,1/2,1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '.2/m.', 'coords_xyz': ['(0,0,1/2)', '(1/2,0,1/2)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '.2/m.', 'coords_xyz': ['(0,1/2,0)', '(1/2,1/2,0)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '.2/m.', 'coords_xyz': ['(0,0,0)', '(1/2,0,0)']}, + }, }, - (59, '1-cba'): { - 'IT_number': 59, - 'setting': 9, - 'IT_coordinate_system_code': '1-cba', - 'name_H-M_alt': 'P n m m', + (51, 'ba-c'): { + 'IT_number': 51, + 'setting': 1, + 'IT_coordinate_system_code': 'ba-c', + 'name_H-M_alt': 'P m m b', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'g': { + 'l': { 'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', + '(-x,-y+1/2,z)', '(x,-y,-z)', - '(-x,y+1/2,-z+1/2)', - '(-x,-y+1/2,z+1/2)', - '(-x,-y+1/2,-z+1/2)', - '(-x,y+1/2,z+1/2)', - '(x,-y,z)', - '(x,y,-z)' - ] - }, - 'f': { - 'multiplicity': 4, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,0,z)', - '(x,0,-z)', - '(-x,1/2,-z+1/2)', - '(-x,1/2,z+1/2)' - ] + '(-x,y+1/2,-z)', + '(-x,-y,-z)', + '(x,y+1/2,-z)', + '(-x,y,z)', + '(x,-y+1/2,z)', + ], }, - 'e': { + 'k': { 'multiplicity': 4, 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,y,0)', - '(x,-y,0)', - '(-x,y+1/2,1/2)', - '(-x,-y+1/2,1/2)' - ] + 'coords_xyz': ['(x,1/4,z)', '(-x,1/4,z)', '(x,3/4,-z)', '(-x,3/4,-z)'], }, - 'd': { + 'j': { 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(-1/2,1/4,1/4)', - '(-1/2,3/4,3/4)', - '(-1/2,3/4,1/4)', - '(-1/2,1/4,3/4)' - ] + 'site_symmetry': '.m.', + 'coords_xyz': ['(1/2,y,z)', '(1/2,-y+1/2,z)', '(1/2,-y,-z)', '(1/2,y+1/2,-z)'], }, - 'c': { + 'i': { 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,1/4,1/4)', - '(0,3/4,3/4)', - '(0,3/4,1/4)', - '(0,1/4,3/4)' - ] + 'site_symmetry': '.m.', + 'coords_xyz': ['(0,y,z)', '(0,-y+1/2,z)', '(0,-y,-z)', '(0,y+1/2,-z)'], }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(x,1/2,0)', - '(-x,0,1/2)' - ] + 'h': { + 'multiplicity': 4, + 'site_symmetry': '.2.', + 'coords_xyz': ['(x,0,-1/2)', '(-x,1/2,-1/2)', '(-x,0,-1/2)', '(x,1/2,-1/2)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(x,0,0)', - '(-x,1/2,1/2)' - ] - } - } + 'g': {'multiplicity': 4, 'site_symmetry': '.2.', 'coords_xyz': ['(x,0,0)', '(-x,1/2,0)', '(-x,0,0)', '(x,1/2,0)']}, + 'f': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(1/2,1/4,z)', '(1/2,3/4,-z)']}, + 'e': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(0,1/4,z)', '(0,3/4,-z)']}, + 'd': {'multiplicity': 2, 'site_symmetry': '.2/m.', 'coords_xyz': ['(1/2,0,-1/2)', '(1/2,1/2,-1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '.2/m.', 'coords_xyz': ['(0,0,-1/2)', '(0,1/2,-1/2)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '.2/m.', 'coords_xyz': ['(1/2,0,0)', '(1/2,1/2,0)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '.2/m.', 'coords_xyz': ['(0,0,0)', '(0,1/2,0)']}, + }, }, - (59, '2-cba'): { - 'IT_number': 59, - 'setting': 15, - 'IT_coordinate_system_code': '2-cba', - 'name_H-M_alt': 'P n m m', + (51, 'cab'): { + 'IT_number': 51, + 'setting': 2, + 'IT_coordinate_system_code': 'cab', + 'name_H-M_alt': 'P b m m', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'g': { + 'l': { 'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(x,-y+1/2,-z+1/2)', + '(x,-y+1/2,-z)', + '(-x,-y,z)', '(-x,y+1/2,-z)', - '(-x,-y,z+1/2)', '(-x,-y,-z)', - '(-x,y+1/2,z+1/2)', + '(-x,y+1/2,z)', + '(x,y,-z)', '(x,-y+1/2,z)', - '(x,y,-z+1/2)' - ] + ], }, - 'f': { - 'multiplicity': 4, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,1/4,z)', - '(x,1/4,-z+1/2)', - '(-x,3/4,-z)', - '(-x,3/4,z+1/2)' - ] - }, - 'e': { + 'k': { 'multiplicity': 4, 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,y,1/4)', - '(x,-y+1/2,1/4)', - '(-x,y+1/2,3/4)', - '(-x,-y,3/4)' - ] + 'coords_xyz': ['(x,1/4,z)', '(x,1/4,-z)', '(-x,3/4,z)', '(-x,3/4,-z)'], }, - 'd': { + 'j': { 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(-1/2,0,0)', - '(-1/2,1/2,1/2)', - '(-1/2,1/2,0)', - '(-1/2,0,1/2)' - ] + 'site_symmetry': '.m.', + 'coords_xyz': ['(x,y,1/2)', '(x,-y+1/2,1/2)', '(-x,-y,1/2)', '(-x,y+1/2,1/2)'], }, - 'c': { + 'i': { 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(0,1/2,1/2)', - '(0,1/2,0)', - '(0,0,1/2)' - ] + 'site_symmetry': '.m.', + 'coords_xyz': ['(x,y,0)', '(x,-y+1/2,0)', '(-x,-y,0)', '(-x,y+1/2,0)'], }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(x,3/4,1/4)', - '(-x,1/4,3/4)' - ] + 'h': { + 'multiplicity': 4, + 'site_symmetry': '.2.', + 'coords_xyz': ['(1/2,0,z)', '(1/2,1/2,-z)', '(1/2,0,-z)', '(1/2,1/2,z)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(x,1/4,1/4)', - '(-x,3/4,3/4)' - ] - } - } + 'g': {'multiplicity': 4, 'site_symmetry': '.2.', 'coords_xyz': ['(0,0,z)', '(0,1/2,-z)', '(0,0,-z)', '(0,1/2,z)']}, + 'f': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(x,1/4,1/2)', '(-x,3/4,1/2)']}, + 'e': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(x,1/4,0)', '(-x,3/4,0)']}, + 'd': {'multiplicity': 2, 'site_symmetry': '.2/m.', 'coords_xyz': ['(1/2,0,1/2)', '(1/2,1/2,1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '.2/m.', 'coords_xyz': ['(1/2,0,0)', '(1/2,1/2,0)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '.2/m.', 'coords_xyz': ['(0,0,1/2)', '(0,1/2,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '.2/m.', 'coords_xyz': ['(0,0,0)', '(0,1/2,0)']}, + }, }, - (59, '1bca'): { - 'IT_number': 59, - 'setting': 10, - 'IT_coordinate_system_code': '1bca', - 'name_H-M_alt': 'P m n m', + (51, '-cba'): { + 'IT_number': 51, + 'setting': 3, + 'IT_coordinate_system_code': '-cba', + 'name_H-M_alt': 'P c m m', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'g': { + 'l': { 'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', + '(x,-y,-z+1/2)', '(-x,y,-z)', - '(x+1/2,-y,-z+1/2)', - '(-x+1/2,-y,z+1/2)', - '(-x+1/2,-y,-z+1/2)', - '(x+1/2,-y,z+1/2)', - '(-x,y,z)', - '(x,y,-z)' - ] - }, - 'f': { - 'multiplicity': 4, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(0,y,z)', - '(0,y,-z)', - '(1/2,-y,-z+1/2)', - '(1/2,-y,z+1/2)' - ] + '(-x,-y,z+1/2)', + '(-x,-y,-z)', + '(-x,y,z+1/2)', + '(x,-y,z)', + '(x,y,-z+1/2)', + ], }, - 'e': { + 'k': { 'multiplicity': 4, 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,y,0)', - '(-x,y,0)', - '(x+1/2,-y,1/2)', - '(-x+1/2,-y,1/2)' - ] + 'coords_xyz': ['(x,y,1/4)', '(x,-y,1/4)', '(-x,y,3/4)', '(-x,-y,3/4)'], }, - 'd': { + 'j': { 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/4,1/2,1/4)', - '(3/4,1/2,3/4)', - '(3/4,1/2,1/4)', - '(1/4,1/2,3/4)' - ] + 'site_symmetry': '.m.', + 'coords_xyz': ['(x,1/2,z)', '(x,1/2,-z+1/2)', '(-x,1/2,-z)', '(-x,1/2,z+1/2)'], }, - 'c': { + 'i': { 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/4,0,1/4)', - '(3/4,0,3/4)', - '(3/4,0,1/4)', - '(1/4,0,3/4)' - ] + 'site_symmetry': '.m.', + 'coords_xyz': ['(x,0,z)', '(x,0,-z+1/2)', '(-x,0,-z)', '(-x,0,z+1/2)'], }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(1/2,y,0)', - '(0,-y,1/2)' - ] + 'h': { + 'multiplicity': 4, + 'site_symmetry': '.2.', + 'coords_xyz': ['(-1/2,y,0)', '(-1/2,-y,1/2)', '(-1/2,-y,0)', '(-1/2,y,1/2)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(0,y,0)', - '(1/2,-y,1/2)' - ] - } - } + 'g': {'multiplicity': 4, 'site_symmetry': '.2.', 'coords_xyz': ['(0,y,0)', '(0,-y,1/2)', '(0,-y,0)', '(0,y,1/2)']}, + 'f': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(x,1/2,1/4)', '(-x,1/2,3/4)']}, + 'e': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(x,0,1/4)', '(-x,0,3/4)']}, + 'd': {'multiplicity': 2, 'site_symmetry': '.2/m.', 'coords_xyz': ['(-1/2,1/2,0)', '(-1/2,1/2,1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '.2/m.', 'coords_xyz': ['(-1/2,0,0)', '(-1/2,0,1/2)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '.2/m.', 'coords_xyz': ['(0,1/2,0)', '(0,1/2,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '.2/m.', 'coords_xyz': ['(0,0,0)', '(0,0,1/2)']}, + }, }, - (59, '2bca'): { - 'IT_number': 59, - 'setting': 16, - 'IT_coordinate_system_code': '2bca', - 'name_H-M_alt': 'P m n m', + (51, 'bca'): { + 'IT_number': 51, + 'setting': 4, + 'IT_coordinate_system_code': 'bca', + 'name_H-M_alt': 'P m c m', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'g': { + 'l': { 'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(-x+1/2,y,-z+1/2)', - '(x+1/2,-y,-z)', + '(-x,y,-z+1/2)', + '(x,-y,-z)', '(-x,-y,z+1/2)', '(-x,-y,-z)', - '(x+1/2,-y,z+1/2)', - '(-x+1/2,y,z)', - '(x,y,-z+1/2)' - ] - }, - 'f': { - 'multiplicity': 4, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(1/4,y,z)', - '(1/4,y,-z+1/2)', - '(3/4,-y,-z)', - '(3/4,-y,z+1/2)' - ] + '(x,-y,z+1/2)', + '(-x,y,z)', + '(x,y,-z+1/2)', + ], }, - 'e': { + 'k': { 'multiplicity': 4, 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,y,1/4)', - '(-x+1/2,y,1/4)', - '(x+1/2,-y,3/4)', - '(-x,-y,3/4)' - ] + 'coords_xyz': ['(x,y,1/4)', '(-x,y,1/4)', '(x,-y,3/4)', '(-x,-y,3/4)'], }, - 'd': { + 'j': { 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,1/2,0)', - '(1/2,1/2,1/2)', - '(1/2,1/2,0)', - '(0,1/2,1/2)' - ] + 'site_symmetry': '.m.', + 'coords_xyz': ['(1/2,y,z)', '(1/2,y,-z+1/2)', '(1/2,-y,-z)', '(1/2,-y,z+1/2)'], }, - 'c': { + 'i': { 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,0,1/2)', - '(1/2,0,0)', - '(0,0,1/2)' - ] + 'site_symmetry': '.m.', + 'coords_xyz': ['(0,y,z)', '(0,y,-z+1/2)', '(0,-y,-z)', '(0,-y,z+1/2)'], }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(3/4,y,1/4)', - '(1/4,-y,3/4)' - ] + 'h': { + 'multiplicity': 4, + 'site_symmetry': '.2.', + 'coords_xyz': ['(x,1/2,0)', '(-x,1/2,1/2)', '(-x,1/2,0)', '(x,1/2,1/2)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(1/4,y,1/4)', - '(3/4,-y,3/4)' - ] - } - } + 'g': {'multiplicity': 4, 'site_symmetry': '.2.', 'coords_xyz': ['(x,0,0)', '(-x,0,1/2)', '(-x,0,0)', '(x,0,1/2)']}, + 'f': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(1/2,y,1/4)', '(1/2,-y,3/4)']}, + 'e': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(0,y,1/4)', '(0,-y,3/4)']}, + 'd': {'multiplicity': 2, 'site_symmetry': '.2/m.', 'coords_xyz': ['(1/2,1/2,0)', '(1/2,1/2,1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '.2/m.', 'coords_xyz': ['(0,1/2,0)', '(0,1/2,1/2)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '.2/m.', 'coords_xyz': ['(1/2,0,0)', '(1/2,0,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '.2/m.', 'coords_xyz': ['(0,0,0)', '(0,0,1/2)']}, + }, }, - (59, '2a-cb'): { - 'IT_number': 59, - 'setting': 17, - 'IT_coordinate_system_code': '2a-cb', - 'name_H-M_alt': 'P m n m', + (51, 'a-cb'): { + 'IT_number': 51, + 'setting': 5, + 'IT_coordinate_system_code': 'a-cb', + 'name_H-M_alt': 'P m a m', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'g': { + 'l': { 'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(-x+1/2,y,-z+1/2)', - '(-x,-y,z+1/2)', + '(-x+1/2,y,-z)', + '(-x,-y,z)', '(x+1/2,-y,-z)', '(-x,-y,-z)', - '(x+1/2,-y,z+1/2)', - '(x,y,-z+1/2)', - '(-x+1/2,y,z)' - ] - }, - 'f': { - 'multiplicity': 4, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,y,1/4)', - '(-x+1/2,y,1/4)', - '(-x,-y,3/4)', - '(x+1/2,-y,3/4)' - ] + '(x+1/2,-y,z)', + '(x,y,-z)', + '(-x+1/2,y,z)', + ], }, - 'e': { + 'k': { 'multiplicity': 4, 'site_symmetry': 'm..', - 'coords_xyz': [ - '(1/4,y,z)', - '(1/4,y,-z+1/2)', - '(3/4,-y,z+1/2)', - '(3/4,-y,-z)' - ] + 'coords_xyz': ['(1/4,y,z)', '(1/4,y,-z)', '(3/4,-y,z)', '(3/4,-y,-z)'], }, - 'd': { + 'j': { 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,-1/2,0)', - '(1/2,-1/2,1/2)', - '(0,-1/2,1/2)', - '(1/2,-1/2,0)' - ] + 'site_symmetry': '.m.', + 'coords_xyz': ['(x,y,1/2)', '(-x+1/2,y,1/2)', '(-x,-y,1/2)', '(x+1/2,-y,1/2)'], }, - 'c': { + 'i': { 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,0,1/2)', - '(0,0,1/2)', - '(1/2,0,0)' - ] + 'site_symmetry': '.m.', + 'coords_xyz': ['(x,y,0)', '(-x+1/2,y,0)', '(-x,-y,0)', '(x+1/2,-y,0)'], }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(1/4,y,3/4)', - '(3/4,-y,1/4)' - ] + 'h': { + 'multiplicity': 4, + 'site_symmetry': '.2.', + 'coords_xyz': ['(0,-1/2,z)', '(1/2,-1/2,-z)', '(0,-1/2,-z)', '(1/2,-1/2,z)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(1/4,y,1/4)', - '(3/4,-y,3/4)' - ] - } - } + 'g': {'multiplicity': 4, 'site_symmetry': '.2.', 'coords_xyz': ['(0,0,z)', '(1/2,0,-z)', '(0,0,-z)', '(1/2,0,z)']}, + 'f': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(1/4,y,1/2)', '(3/4,-y,1/2)']}, + 'e': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(1/4,y,0)', '(3/4,-y,0)']}, + 'd': {'multiplicity': 2, 'site_symmetry': '.2/m.', 'coords_xyz': ['(0,-1/2,1/2)', '(1/2,-1/2,1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '.2/m.', 'coords_xyz': ['(0,-1/2,0)', '(1/2,-1/2,0)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '.2/m.', 'coords_xyz': ['(0,0,1/2)', '(1/2,0,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '.2/m.', 'coords_xyz': ['(0,0,0)', '(1/2,0,0)']}, + }, }, - (60, 'abc'): { - 'IT_number': 60, + (52, 'abc'): { + 'IT_number': 52, 'setting': 0, 'IT_coordinate_system_code': 'abc', - 'name_H-M_alt': 'P b c n', + 'name_H-M_alt': 'P n n a', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'd': { + 'e': { 'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(-x+1/2,-y+1/2,z+1/2)', - '(-x,y,-z+1/2)', - '(x+1/2,-y+1/2,-z)', + '(-x+1/2,-y,z)', + '(-x+1/2,y+1/2,-z+1/2)', + '(x,-y+1/2,-z+1/2)', '(-x,-y,-z)', - '(x+1/2,y+1/2,-z+1/2)', - '(x,-y,z+1/2)', - '(-x+1/2,y+1/2,z)' - ] + '(x+1/2,y,-z)', + '(x+1/2,-y+1/2,z+1/2)', + '(-x,y+1/2,z+1/2)', + ], + }, + 'd': { + 'multiplicity': 4, + 'site_symmetry': '2..', + 'coords_xyz': ['(x,1/4,1/4)', '(-x+1/2,3/4,1/4)', '(-x,3/4,3/4)', '(x+1/2,1/4,3/4)'], }, 'c': { 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(0,y,1/4)', - '(1/2,-y+1/2,3/4)', - '(0,-y,3/4)', - '(1/2,y+1/2,1/4)' - ] + 'site_symmetry': '..2', + 'coords_xyz': ['(1/4,0,z)', '(1/4,1/2,-z+1/2)', '(3/4,0,-z)', '(3/4,1/2,z+1/2)'], }, 'b': { 'multiplicity': 4, 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,1/2,0)', - '(1/2,0,1/2)', - '(0,1/2,1/2)', - '(1/2,0,0)' - ] + 'coords_xyz': ['(0,0,1/2)', '(1/2,0,1/2)', '(1/2,1/2,0)', '(0,1/2,0)'], }, 'a': { 'multiplicity': 4, 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,1/2,1/2)', - '(0,0,1/2)', - '(1/2,1/2,0)' - ] - } - } + 'coords_xyz': ['(0,0,0)', '(1/2,0,0)', '(1/2,1/2,1/2)', '(0,1/2,1/2)'], + }, + }, }, - (60, 'ba-c'): { - 'IT_number': 60, + (52, 'ba-c'): { + 'IT_number': 52, 'setting': 1, 'IT_coordinate_system_code': 'ba-c', - 'name_H-M_alt': 'P c a n', + 'name_H-M_alt': 'P n n b', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'd': { + 'e': { 'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(-x+1/2,-y+1/2,z-1/2)', - '(x,-y,-z-1/2)', - '(-x+1/2,y+1/2,-z)', + '(-x,-y+1/2,z)', + '(x+1/2,-y+1/2,-z-1/2)', + '(-x+1/2,y,-z-1/2)', '(-x,-y,-z)', - '(x+1/2,y+1/2,-z-1/2)', - '(-x,y,z-1/2)', - '(x+1/2,-y+1/2,z)' - ] + '(x,y+1/2,-z)', + '(-x+1/2,y+1/2,z-1/2)', + '(x+1/2,-y,z-1/2)', + ], + }, + 'd': { + 'multiplicity': 4, + 'site_symmetry': '2..', + 'coords_xyz': ['(1/4,y,-1/4)', '(3/4,-y+1/2,-1/4)', '(3/4,-y,-3/4)', '(1/4,y+1/2,-3/4)'], }, 'c': { 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,0,-1/4)', - '(-x+1/2,1/2,-3/4)', - '(-x,0,-3/4)', - '(x+1/2,1/2,-1/4)' - ] + 'site_symmetry': '..2', + 'coords_xyz': ['(0,1/4,z)', '(1/2,1/4,-z-1/2)', '(0,3/4,-z)', '(1/2,3/4,z-1/2)'], }, 'b': { 'multiplicity': 4, 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/2,0,0)', - '(0,1/2,-1/2)', - '(1/2,0,-1/2)', - '(0,1/2,0)' - ] + 'coords_xyz': ['(0,0,-1/2)', '(0,1/2,-1/2)', '(1/2,1/2,0)', '(1/2,0,0)'], }, 'a': { 'multiplicity': 4, 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,1/2,-1/2)', - '(0,0,-1/2)', - '(1/2,1/2,0)' - ] - } - } + 'coords_xyz': ['(0,0,0)', '(0,1/2,0)', '(1/2,1/2,-1/2)', '(1/2,0,-1/2)'], + }, + }, }, - (60, 'cab'): { - 'IT_number': 60, + (52, 'cab'): { + 'IT_number': 52, 'setting': 2, 'IT_coordinate_system_code': 'cab', - 'name_H-M_alt': 'P n c a', + 'name_H-M_alt': 'P b n n', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'd': { + 'e': { 'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(x+1/2,-y+1/2,-z+1/2)', - '(-x+1/2,-y,z)', - '(-x,y+1/2,-z+1/2)', + '(x,-y+1/2,-z)', + '(-x+1/2,-y+1/2,z+1/2)', + '(-x+1/2,y,-z+1/2)', '(-x,-y,-z)', - '(-x+1/2,y+1/2,z+1/2)', - '(x+1/2,y,-z)', - '(x,-y+1/2,z+1/2)' - ] + '(-x,y+1/2,z)', + '(x+1/2,y+1/2,-z+1/2)', + '(x+1/2,-y,z+1/2)', + ], + }, + 'd': { + 'multiplicity': 4, + 'site_symmetry': '2..', + 'coords_xyz': ['(1/4,y,1/4)', '(1/4,-y+1/2,3/4)', '(3/4,-y,3/4)', '(3/4,y+1/2,1/4)'], }, 'c': { 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(1/4,0,z)', - '(3/4,1/2,-z+1/2)', - '(3/4,0,-z)', - '(1/4,1/2,z+1/2)' - ] + 'site_symmetry': '..2', + 'coords_xyz': ['(x,1/4,0)', '(-x+1/2,1/4,1/2)', '(-x,3/4,0)', '(x+1/2,3/4,1/2)'], }, 'b': { 'multiplicity': 4, 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,1/2)', - '(1/2,1/2,0)', - '(1/2,0,1/2)', - '(0,1/2,0)' - ] + 'coords_xyz': ['(1/2,0,0)', '(1/2,1/2,0)', '(0,1/2,1/2)', '(0,0,1/2)'], }, 'a': { 'multiplicity': 4, 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,1/2,1/2)', - '(1/2,0,0)', - '(0,1/2,1/2)' - ] - } - } + 'coords_xyz': ['(0,0,0)', '(0,1/2,0)', '(1/2,1/2,1/2)', '(1/2,0,1/2)'], + }, + }, }, - (60, '-cba'): { - 'IT_number': 60, + (52, '-cba'): { + 'IT_number': 52, 'setting': 3, 'IT_coordinate_system_code': '-cba', - 'name_H-M_alt': 'P n a b', + 'name_H-M_alt': 'P c n n', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'd': { + 'e': { 'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(x-1/2,-y+1/2,-z+1/2)', - '(-x-1/2,y,-z)', - '(-x,-y+1/2,z+1/2)', + '(x,-y,-z+1/2)', + '(-x-1/2,y+1/2,-z+1/2)', + '(-x-1/2,-y+1/2,z)', '(-x,-y,-z)', - '(-x-1/2,y+1/2,z+1/2)', - '(x-1/2,-y,z)', - '(x,y+1/2,-z+1/2)' - ] + '(-x,y,z+1/2)', + '(x-1/2,-y+1/2,z+1/2)', + '(x-1/2,y+1/2,-z)', + ], + }, + 'd': { + 'multiplicity': 4, + 'site_symmetry': '2..', + 'coords_xyz': ['(-1/4,1/4,z)', '(-1/4,3/4,-z+1/2)', '(-3/4,3/4,-z)', '(-3/4,1/4,z+1/2)'], }, 'c': { 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(-1/4,y,0)', - '(-3/4,-y+1/2,1/2)', - '(-3/4,-y,0)', - '(-1/4,y+1/2,1/2)' - ] + 'site_symmetry': '..2', + 'coords_xyz': ['(x,0,1/4)', '(-x-1/2,1/2,1/4)', '(-x,0,3/4)', '(x-1/2,1/2,3/4)'], }, 'b': { 'multiplicity': 4, 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,1/2,0)', - '(-1/2,0,1/2)', - '(-1/2,1/2,0)', - '(0,0,1/2)' - ] + 'coords_xyz': ['(-1/2,0,0)', '(-1/2,0,1/2)', '(0,1/2,1/2)', '(0,1/2,0)'], }, 'a': { 'multiplicity': 4, 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(-1/2,1/2,1/2)', - '(-1/2,0,0)', - '(0,1/2,1/2)' - ] - } - } + 'coords_xyz': ['(0,0,0)', '(0,0,1/2)', '(-1/2,1/2,1/2)', '(-1/2,1/2,0)'], + }, + }, }, - (60, 'bca'): { - 'IT_number': 60, + (52, 'bca'): { + 'IT_number': 52, 'setting': 4, 'IT_coordinate_system_code': 'bca', - 'name_H-M_alt': 'P b n a', + 'name_H-M_alt': 'P n c n', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'd': { + 'e': { 'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(-x+1/2,y+1/2,-z+1/2)', - '(x,-y+1/2,-z)', - '(-x+1/2,-y,z+1/2)', + '(-x,y,-z+1/2)', + '(x+1/2,-y+1/2,-z+1/2)', + '(-x+1/2,-y+1/2,z)', '(-x,-y,-z)', - '(x+1/2,-y+1/2,z+1/2)', - '(-x,y+1/2,z)', - '(x+1/2,y,-z+1/2)' - ] + '(x,-y,z+1/2)', + '(-x+1/2,y+1/2,z+1/2)', + '(x+1/2,y+1/2,-z)', + ], + }, + 'd': { + 'multiplicity': 4, + 'site_symmetry': '2..', + 'coords_xyz': ['(1/4,1/4,z)', '(3/4,1/4,-z+1/2)', '(3/4,3/4,-z)', '(1/4,3/4,z+1/2)'], }, 'c': { 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,1/4,0)', - '(-x+1/2,3/4,1/2)', - '(-x,3/4,0)', - '(x+1/2,1/4,1/2)' - ] + 'site_symmetry': '..2', + 'coords_xyz': ['(0,y,1/4)', '(1/2,-y+1/2,1/4)', '(0,-y,3/4)', '(1/2,y+1/2,3/4)'], }, 'b': { 'multiplicity': 4, 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/2,0,0)', - '(0,1/2,1/2)', - '(1/2,1/2,0)', - '(0,0,1/2)' - ] + 'coords_xyz': ['(0,1/2,0)', '(0,1/2,1/2)', '(1/2,0,1/2)', '(1/2,0,0)'], }, 'a': { 'multiplicity': 4, 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,1/2,1/2)', - '(0,1/2,0)', - '(1/2,0,1/2)' - ] - } - } + 'coords_xyz': ['(0,0,0)', '(0,0,1/2)', '(1/2,1/2,1/2)', '(1/2,1/2,0)'], + }, + }, }, - (60, 'a-cb'): { - 'IT_number': 60, + (52, 'a-cb'): { + 'IT_number': 52, 'setting': 5, 'IT_coordinate_system_code': 'a-cb', - 'name_H-M_alt': 'P c n b', + 'name_H-M_alt': 'P n a n', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'd': { + 'e': { 'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(-x+1/2,y-1/2,-z+1/2)', - '(-x,-y-1/2,z)', - '(x+1/2,-y,-z+1/2)', + '(-x+1/2,y,-z)', + '(-x+1/2,-y-1/2,z+1/2)', + '(x,-y-1/2,-z+1/2)', '(-x,-y,-z)', - '(x+1/2,-y-1/2,z+1/2)', - '(x,y-1/2,-z)', - '(-x+1/2,y,z+1/2)' - ] + '(x+1/2,-y,z)', + '(x+1/2,y-1/2,-z+1/2)', + '(-x,y-1/2,z+1/2)', + ], + }, + 'd': { + 'multiplicity': 4, + 'site_symmetry': '2..', + 'coords_xyz': ['(x,-1/4,1/4)', '(-x+1/2,-1/4,3/4)', '(-x,-3/4,3/4)', '(x+1/2,-3/4,1/4)'], }, 'c': { 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(0,-1/4,z)', - '(1/2,-3/4,-z+1/2)', - '(0,-3/4,-z)', - '(1/2,-1/4,z+1/2)' - ] + 'site_symmetry': '..2', + 'coords_xyz': ['(1/4,y,0)', '(1/4,-y-1/2,1/2)', '(3/4,-y,0)', '(3/4,y-1/2,1/2)'], }, 'b': { 'multiplicity': 4, 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,1/2)', - '(1/2,-1/2,0)', - '(0,-1/2,1/2)', - '(1/2,0,0)' - ] + 'coords_xyz': ['(0,-1/2,0)', '(1/2,-1/2,0)', '(1/2,0,1/2)', '(0,0,1/2)'], }, 'a': { 'multiplicity': 4, 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,-1/2,1/2)', - '(0,-1/2,0)', - '(1/2,0,1/2)' - ] - } - } + 'coords_xyz': ['(0,0,0)', '(1/2,0,0)', '(1/2,-1/2,1/2)', '(0,-1/2,1/2)'], + }, + }, }, - (61, 'abc'): { - 'IT_number': 61, + (53, 'abc'): { + 'IT_number': 53, 'setting': 0, 'IT_coordinate_system_code': 'abc', - 'name_H-M_alt': 'P b c a', + 'name_H-M_alt': 'P m n a', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'c': { + 'i': { 'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', '(-x+1/2,-y,z+1/2)', - '(-x,y+1/2,-z+1/2)', - '(x+1/2,-y+1/2,-z)', + '(-x+1/2,y,-z+1/2)', + '(x,-y,-z)', '(-x,-y,-z)', '(x+1/2,y,-z+1/2)', - '(x,-y+1/2,z+1/2)', - '(-x+1/2,y+1/2,z)' - ] + '(x+1/2,-y,z+1/2)', + '(-x,y,z)', + ], }, - 'b': { + 'h': { 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,1/2)', - '(1/2,0,0)', - '(0,1/2,0)', - '(1/2,1/2,1/2)' - ] + 'site_symmetry': 'm..', + 'coords_xyz': ['(0,y,z)', '(1/2,-y,z+1/2)', '(1/2,y,-z+1/2)', '(0,-y,-z)'], }, - 'a': { + 'g': { 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,0,1/2)', - '(0,1/2,1/2)', - '(1/2,1/2,0)' - ] - } - } + 'site_symmetry': '.2.', + 'coords_xyz': ['(1/4,y,1/4)', '(1/4,-y,3/4)', '(3/4,-y,3/4)', '(3/4,y,1/4)'], + }, + 'f': { + 'multiplicity': 4, + 'site_symmetry': '2..', + 'coords_xyz': ['(x,1/2,0)', '(-x+1/2,1/2,1/2)', '(-x,1/2,0)', '(x+1/2,1/2,1/2)'], + }, + 'e': { + 'multiplicity': 4, + 'site_symmetry': '2..', + 'coords_xyz': ['(x,0,0)', '(-x+1/2,0,1/2)', '(-x,0,0)', '(x+1/2,0,1/2)'], + }, + 'd': {'multiplicity': 2, 'site_symmetry': '2/m..', 'coords_xyz': ['(0,1/2,0)', '(1/2,1/2,1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '2/m..', 'coords_xyz': ['(1/2,1/2,0)', '(0,1/2,1/2)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '2/m..', 'coords_xyz': ['(1/2,0,0)', '(0,0,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '2/m..', 'coords_xyz': ['(0,0,0)', '(1/2,0,1/2)']}, + }, }, - (61, 'ba-c'): { - 'IT_number': 61, + (53, 'ba-c'): { + 'IT_number': 53, 'setting': 1, 'IT_coordinate_system_code': 'ba-c', - 'name_H-M_alt': 'P c a b', + 'name_H-M_alt': 'P n m b', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'c': { + 'i': { 'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', '(-x,-y+1/2,z-1/2)', - '(x+1/2,-y,-z-1/2)', - '(-x+1/2,y+1/2,-z)', + '(x,-y+1/2,-z-1/2)', + '(-x,y,-z)', '(-x,-y,-z)', '(x,y+1/2,-z-1/2)', - '(-x+1/2,y,z-1/2)', - '(x+1/2,-y+1/2,z)' - ] + '(-x,y+1/2,z-1/2)', + '(x,-y,z)', + ], }, - 'b': { + 'h': { 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,-1/2)', - '(0,1/2,0)', - '(1/2,0,0)', - '(1/2,1/2,-1/2)' - ] + 'site_symmetry': 'm..', + 'coords_xyz': ['(x,0,z)', '(-x,1/2,z-1/2)', '(x,1/2,-z-1/2)', '(-x,0,-z)'], }, - 'a': { + 'g': { 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(0,1/2,-1/2)', - '(1/2,0,-1/2)', - '(1/2,1/2,0)' - ] - } - } + 'site_symmetry': '.2.', + 'coords_xyz': ['(x,1/4,-1/4)', '(-x,1/4,-3/4)', '(-x,3/4,-3/4)', '(x,3/4,-1/4)'], + }, + 'f': { + 'multiplicity': 4, + 'site_symmetry': '2..', + 'coords_xyz': ['(1/2,y,0)', '(1/2,-y+1/2,-1/2)', '(1/2,-y,0)', '(1/2,y+1/2,-1/2)'], + }, + 'e': { + 'multiplicity': 4, + 'site_symmetry': '2..', + 'coords_xyz': ['(0,y,0)', '(0,-y+1/2,-1/2)', '(0,-y,0)', '(0,y+1/2,-1/2)'], + }, + 'd': {'multiplicity': 2, 'site_symmetry': '2/m..', 'coords_xyz': ['(1/2,0,0)', '(1/2,1/2,-1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '2/m..', 'coords_xyz': ['(1/2,1/2,0)', '(1/2,0,-1/2)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '2/m..', 'coords_xyz': ['(0,1/2,0)', '(0,0,-1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '2/m..', 'coords_xyz': ['(0,0,0)', '(0,1/2,-1/2)']}, + }, }, - (61, 'cab'): { - 'IT_number': 61, + (53, 'cab'): { + 'IT_number': 53, 'setting': 2, 'IT_coordinate_system_code': 'cab', - 'name_H-M_alt': 'P b c a', + 'name_H-M_alt': 'P b m n', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'c': { + 'i': { 'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', '(x+1/2,-y+1/2,-z)', - '(-x+1/2,-y,z+1/2)', - '(-x,y+1/2,-z+1/2)', + '(-x+1/2,-y+1/2,z)', + '(-x,y,-z)', '(-x,-y,-z)', '(-x+1/2,y+1/2,z)', - '(x+1/2,y,-z+1/2)', - '(x,-y+1/2,z+1/2)' - ] + '(x+1/2,y+1/2,-z)', + '(x,-y,z)', + ], }, - 'b': { + 'h': { 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/2,0,0)', - '(0,1/2,0)', - '(0,0,1/2)', - '(1/2,1/2,1/2)' - ] + 'site_symmetry': 'm..', + 'coords_xyz': ['(x,0,z)', '(x+1/2,1/2,-z)', '(-x+1/2,1/2,z)', '(-x,0,-z)'], }, - 'a': { + 'g': { 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,1/2,0)', - '(1/2,0,1/2)', - '(0,1/2,1/2)' - ] - } - } + 'site_symmetry': '.2.', + 'coords_xyz': ['(1/4,1/4,z)', '(3/4,1/4,-z)', '(3/4,3/4,-z)', '(1/4,3/4,z)'], + }, + 'f': { + 'multiplicity': 4, + 'site_symmetry': '2..', + 'coords_xyz': ['(0,y,1/2)', '(1/2,-y+1/2,1/2)', '(0,-y,1/2)', '(1/2,y+1/2,1/2)'], + }, + 'e': { + 'multiplicity': 4, + 'site_symmetry': '2..', + 'coords_xyz': ['(0,y,0)', '(1/2,-y+1/2,0)', '(0,-y,0)', '(1/2,y+1/2,0)'], + }, + 'd': {'multiplicity': 2, 'site_symmetry': '2/m..', 'coords_xyz': ['(0,0,1/2)', '(1/2,1/2,1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '2/m..', 'coords_xyz': ['(0,1/2,1/2)', '(1/2,0,1/2)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '2/m..', 'coords_xyz': ['(0,1/2,0)', '(1/2,0,0)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '2/m..', 'coords_xyz': ['(0,0,0)', '(1/2,1/2,0)']}, + }, }, - (61, '-cba'): { - 'IT_number': 61, + (53, '-cba'): { + 'IT_number': 53, 'setting': 3, 'IT_coordinate_system_code': '-cba', - 'name_H-M_alt': 'P c a b', + 'name_H-M_alt': 'P c n m', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'c': { + 'i': { 'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', '(x-1/2,-y,-z+1/2)', - '(-x-1/2,y+1/2,-z)', - '(-x,-y+1/2,z+1/2)', + '(-x-1/2,y,-z+1/2)', + '(-x,-y,z)', '(-x,-y,-z)', '(-x-1/2,y,z+1/2)', - '(x-1/2,-y+1/2,z)', - '(x,y+1/2,-z+1/2)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(-1/2,0,0)', - '(0,0,1/2)', - '(0,1/2,0)', - '(-1/2,1/2,1/2)' - ] + '(x-1/2,-y,z+1/2)', + '(x,y,-z)', + ], }, - 'a': { + 'h': { 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(-1/2,0,1/2)', - '(-1/2,1/2,0)', - '(0,1/2,1/2)' - ] - } - } - }, - (61, 'bca'): { - 'IT_number': 61, - 'setting': 4, - 'IT_coordinate_system_code': 'bca', - 'name_H-M_alt': 'P b c a', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'c': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,y+1/2,-z+1/2)', - '(x+1/2,-y+1/2,-z)', - '(-x+1/2,-y,z+1/2)', - '(-x,-y,-z)', - '(x,-y+1/2,z+1/2)', - '(-x+1/2,y+1/2,z)', - '(x+1/2,y,-z+1/2)' - ] + 'site_symmetry': 'm..', + 'coords_xyz': ['(x,y,0)', '(x-1/2,-y,1/2)', '(-x-1/2,y,1/2)', '(-x,-y,0)'], }, - 'b': { + 'g': { 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,1/2,0)', - '(0,0,1/2)', - '(1/2,0,0)', - '(1/2,1/2,1/2)' - ] + 'site_symmetry': '.2.', + 'coords_xyz': ['(-1/4,y,1/4)', '(-3/4,-y,1/4)', '(-3/4,-y,3/4)', '(-1/4,y,3/4)'], }, - 'a': { + 'f': { 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(0,1/2,1/2)', - '(1/2,1/2,0)', - '(1/2,0,1/2)' - ] - } - } - }, - (61, 'a-cb'): { - 'IT_number': 61, - 'setting': 5, - 'IT_coordinate_system_code': 'a-cb', - 'name_H-M_alt': 'P c a b', - 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'c': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x+1/2,y-1/2,-z)', - '(-x,-y-1/2,z+1/2)', - '(x+1/2,-y,-z+1/2)', - '(-x,-y,-z)', - '(x+1/2,-y-1/2,z)', - '(x,y-1/2,-z+1/2)', - '(-x+1/2,y,z+1/2)' - ] + 'site_symmetry': '2..', + 'coords_xyz': ['(0,1/2,z)', '(-1/2,1/2,-z+1/2)', '(0,1/2,-z)', '(-1/2,1/2,z+1/2)'], }, - 'b': { + 'e': { 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,-1/2,0)', - '(1/2,0,0)', - '(0,0,1/2)', - '(1/2,-1/2,1/2)' - ] + 'site_symmetry': '2..', + 'coords_xyz': ['(0,0,z)', '(-1/2,0,-z+1/2)', '(0,0,-z)', '(-1/2,0,z+1/2)'], }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,-1/2,0)', - '(0,-1/2,1/2)', - '(1/2,0,1/2)' - ] - } - } + 'd': {'multiplicity': 2, 'site_symmetry': '2/m..', 'coords_xyz': ['(0,1/2,0)', '(-1/2,1/2,1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '2/m..', 'coords_xyz': ['(0,1/2,1/2)', '(-1/2,1/2,0)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '2/m..', 'coords_xyz': ['(0,0,1/2)', '(-1/2,0,0)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '2/m..', 'coords_xyz': ['(0,0,0)', '(-1/2,0,1/2)']}, + }, }, - (62, 'abc'): { - 'IT_number': 62, - 'setting': 0, - 'IT_coordinate_system_code': 'abc', - 'name_H-M_alt': 'P n m a', + (53, 'bca'): { + 'IT_number': 53, + 'setting': 4, + 'IT_coordinate_system_code': 'bca', + 'name_H-M_alt': 'P n c m', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'd': { + 'i': { 'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(-x+1/2,-y,z+1/2)', - '(-x,y+1/2,-z)', - '(x+1/2,-y+1/2,-z+1/2)', + '(-x,y+1/2,-z+1/2)', + '(x,-y+1/2,-z+1/2)', + '(-x,-y,z)', '(-x,-y,-z)', - '(x+1/2,y,-z+1/2)', - '(x,-y+1/2,z)', - '(-x+1/2,y+1/2,z+1/2)' - ] + '(x,-y+1/2,z+1/2)', + '(-x,y+1/2,z+1/2)', + '(x,y,-z)', + ], }, - 'c': { + 'h': { 'multiplicity': 4, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,1/4,z)', - '(-x+1/2,3/4,z+1/2)', - '(-x,3/4,-z)', - '(x+1/2,1/4,-z+1/2)' - ] + 'site_symmetry': 'm..', + 'coords_xyz': ['(x,y,0)', '(-x,y+1/2,1/2)', '(x,-y+1/2,1/2)', '(-x,-y,0)'], + }, + 'g': { + 'multiplicity': 4, + 'site_symmetry': '.2.', + 'coords_xyz': ['(x,1/4,1/4)', '(-x,3/4,1/4)', '(-x,3/4,3/4)', '(x,1/4,3/4)'], }, - 'b': { + 'f': { 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,1/2)', - '(1/2,0,0)', - '(0,1/2,1/2)', - '(1/2,1/2,0)' - ] + 'site_symmetry': '2..', + 'coords_xyz': ['(1/2,0,z)', '(1/2,1/2,-z+1/2)', '(1/2,0,-z)', '(1/2,1/2,z+1/2)'], }, - 'a': { + 'e': { 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,0,1/2)', - '(0,1/2,0)', - '(1/2,1/2,1/2)' - ] - } - } + 'site_symmetry': '2..', + 'coords_xyz': ['(0,0,z)', '(0,1/2,-z+1/2)', '(0,0,-z)', '(0,1/2,z+1/2)'], + }, + 'd': {'multiplicity': 2, 'site_symmetry': '2/m..', 'coords_xyz': ['(1/2,0,0)', '(1/2,1/2,1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '2/m..', 'coords_xyz': ['(1/2,0,1/2)', '(1/2,1/2,0)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '2/m..', 'coords_xyz': ['(0,0,1/2)', '(0,1/2,0)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '2/m..', 'coords_xyz': ['(0,0,0)', '(0,1/2,1/2)']}, + }, }, - (62, 'ba-c'): { - 'IT_number': 62, - 'setting': 1, - 'IT_coordinate_system_code': 'ba-c', - 'name_H-M_alt': 'P m n b', + (53, 'a-cb'): { + 'IT_number': 53, + 'setting': 5, + 'IT_coordinate_system_code': 'a-cb', + 'name_H-M_alt': 'P m a n', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'd': { + 'i': { 'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(-x,-y+1/2,z-1/2)', - '(x+1/2,-y,-z)', - '(-x+1/2,y+1/2,-z-1/2)', + '(-x+1/2,y-1/2,-z)', + '(-x+1/2,-y-1/2,z)', + '(x,-y,-z)', '(-x,-y,-z)', - '(x,y+1/2,-z-1/2)', - '(-x+1/2,y,z)', - '(x+1/2,-y+1/2,z-1/2)' - ] + '(x+1/2,-y-1/2,z)', + '(x+1/2,y-1/2,-z)', + '(-x,y,z)', + ], }, - 'c': { + 'h': { 'multiplicity': 4, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(1/4,y,z)', - '(3/4,-y+1/2,z-1/2)', - '(3/4,-y,-z)', - '(1/4,y+1/2,-z-1/2)' - ] + 'site_symmetry': 'm..', + 'coords_xyz': ['(0,y,z)', '(1/2,y-1/2,-z)', '(1/2,-y-1/2,z)', '(0,-y,-z)'], }, - 'b': { + 'g': { 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,-1/2)', - '(0,1/2,0)', - '(1/2,0,-1/2)', - '(1/2,1/2,0)' - ] + 'site_symmetry': '.2.', + 'coords_xyz': ['(1/4,-1/4,z)', '(1/4,-3/4,-z)', '(3/4,-3/4,-z)', '(3/4,-1/4,z)'], }, - 'a': { + 'f': { 'multiplicity': 4, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(0,1/2,-1/2)', - '(1/2,0,0)', - '(1/2,1/2,-1/2)' - ] - } - } + 'site_symmetry': '2..', + 'coords_xyz': ['(x,0,1/2)', '(-x+1/2,-1/2,1/2)', '(-x,0,1/2)', '(x+1/2,-1/2,1/2)'], + }, + 'e': { + 'multiplicity': 4, + 'site_symmetry': '2..', + 'coords_xyz': ['(x,0,0)', '(-x+1/2,-1/2,0)', '(-x,0,0)', '(x+1/2,-1/2,0)'], + }, + 'd': {'multiplicity': 2, 'site_symmetry': '2/m..', 'coords_xyz': ['(0,0,1/2)', '(1/2,-1/2,1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '2/m..', 'coords_xyz': ['(1/2,0,1/2)', '(0,-1/2,1/2)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '2/m..', 'coords_xyz': ['(1/2,0,0)', '(0,-1/2,0)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '2/m..', 'coords_xyz': ['(0,0,0)', '(1/2,-1/2,0)']}, + }, }, - (62, 'cab'): { - 'IT_number': 62, - 'setting': 2, - 'IT_coordinate_system_code': 'cab', - 'name_H-M_alt': 'P b n m', + (54, 'abc'): { + 'IT_number': 54, + 'setting': 0, + 'IT_coordinate_system_code': 'abc', + 'name_H-M_alt': 'P c c a', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'd': { + 'f': { 'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(x+1/2,-y+1/2,-z)', - '(-x,-y,z+1/2)', - '(-x+1/2,y+1/2,-z+1/2)', + '(-x+1/2,-y,z)', + '(-x,y,-z+1/2)', + '(x+1/2,-y,-z+1/2)', '(-x,-y,-z)', - '(-x+1/2,y+1/2,z)', - '(x,y,-z+1/2)', - '(x+1/2,-y+1/2,z+1/2)' - ] + '(x+1/2,y,-z)', + '(x,-y,z+1/2)', + '(-x+1/2,y,z+1/2)', + ], + }, + 'e': { + 'multiplicity': 4, + 'site_symmetry': '..2', + 'coords_xyz': ['(1/4,1/2,z)', '(3/4,1/2,-z+1/2)', '(3/4,1/2,-z)', '(1/4,1/2,z+1/2)'], + }, + 'd': { + 'multiplicity': 4, + 'site_symmetry': '..2', + 'coords_xyz': ['(1/4,0,z)', '(3/4,0,-z+1/2)', '(3/4,0,-z)', '(1/4,0,z+1/2)'], }, 'c': { 'multiplicity': 4, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,y,1/4)', - '(x+1/2,-y+1/2,3/4)', - '(-x,-y,3/4)', - '(-x+1/2,y+1/2,1/4)' - ] + 'site_symmetry': '.2.', + 'coords_xyz': ['(0,y,1/4)', '(1/2,-y,1/4)', '(0,-y,3/4)', '(1/2,y,3/4)'], }, 'b': { 'multiplicity': 4, 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/2,0,0)', - '(0,1/2,0)', - '(1/2,0,1/2)', - '(0,1/2,1/2)' - ] + 'coords_xyz': ['(0,1/2,0)', '(1/2,1/2,0)', '(0,1/2,1/2)', '(1/2,1/2,1/2)'], }, 'a': { 'multiplicity': 4, 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,1/2,0)', - '(0,0,1/2)', - '(1/2,1/2,1/2)' - ] - } - } + 'coords_xyz': ['(0,0,0)', '(1/2,0,0)', '(0,0,1/2)', '(1/2,0,1/2)'], + }, + }, }, - (62, '-cba'): { - 'IT_number': 62, - 'setting': 3, - 'IT_coordinate_system_code': '-cba', - 'name_H-M_alt': 'P c m n', + (54, 'ba-c'): { + 'IT_number': 54, + 'setting': 1, + 'IT_coordinate_system_code': 'ba-c', + 'name_H-M_alt': 'P c c b', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'd': { + 'f': { 'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(x-1/2,-y,-z+1/2)', - '(-x,y+1/2,-z)', - '(-x-1/2,-y+1/2,z+1/2)', + '(-x,-y+1/2,z)', + '(x,-y,-z-1/2)', + '(-x,y+1/2,-z-1/2)', '(-x,-y,-z)', - '(-x-1/2,y,z+1/2)', - '(x,-y+1/2,z)', - '(x-1/2,y+1/2,-z+1/2)' - ] + '(x,y+1/2,-z)', + '(-x,y,z-1/2)', + '(x,-y+1/2,z-1/2)', + ], + }, + 'e': { + 'multiplicity': 4, + 'site_symmetry': '..2', + 'coords_xyz': ['(1/2,1/4,z)', '(1/2,3/4,-z-1/2)', '(1/2,3/4,-z)', '(1/2,1/4,z-1/2)'], + }, + 'd': { + 'multiplicity': 4, + 'site_symmetry': '..2', + 'coords_xyz': ['(0,1/4,z)', '(0,3/4,-z-1/2)', '(0,3/4,-z)', '(0,1/4,z-1/2)'], }, 'c': { 'multiplicity': 4, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,1/4,z)', - '(x-1/2,3/4,-z+1/2)', - '(-x,3/4,-z)', - '(-x-1/2,1/4,z+1/2)' - ] + 'site_symmetry': '.2.', + 'coords_xyz': ['(x,0,-1/4)', '(-x,1/2,-1/4)', '(-x,0,-3/4)', '(x,1/2,-3/4)'], }, 'b': { 'multiplicity': 4, 'site_symmetry': '-1', - 'coords_xyz': [ - '(-1/2,0,0)', - '(0,0,1/2)', - '(-1/2,1/2,0)', - '(0,1/2,1/2)' - ] + 'coords_xyz': ['(1/2,0,0)', '(1/2,1/2,0)', '(1/2,0,-1/2)', '(1/2,1/2,-1/2)'], }, 'a': { 'multiplicity': 4, 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(-1/2,0,1/2)', - '(0,1/2,0)', - '(-1/2,1/2,1/2)' - ] - } - } + 'coords_xyz': ['(0,0,0)', '(0,1/2,0)', '(0,0,-1/2)', '(0,1/2,-1/2)'], + }, + }, }, - (62, 'bca'): { - 'IT_number': 62, - 'setting': 4, - 'IT_coordinate_system_code': 'bca', - 'name_H-M_alt': 'P m c n', + (54, 'cab'): { + 'IT_number': 54, + 'setting': 2, + 'IT_coordinate_system_code': 'cab', + 'name_H-M_alt': 'P b a a', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'd': { + 'f': { 'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(-x,y+1/2,-z+1/2)', - '(x+1/2,-y,-z)', - '(-x+1/2,-y+1/2,z+1/2)', + '(x,-y+1/2,-z)', + '(-x+1/2,-y,z)', + '(-x+1/2,y+1/2,-z)', '(-x,-y,-z)', - '(x,-y+1/2,z+1/2)', - '(-x+1/2,y,z)', - '(x+1/2,y+1/2,-z+1/2)' - ] + '(-x,y+1/2,z)', + '(x+1/2,y,-z)', + '(x+1/2,-y+1/2,z)', + ], + }, + 'e': { + 'multiplicity': 4, + 'site_symmetry': '..2', + 'coords_xyz': ['(x,1/4,1/2)', '(-x+1/2,3/4,1/2)', '(-x,3/4,1/2)', '(x+1/2,1/4,1/2)'], + }, + 'd': { + 'multiplicity': 4, + 'site_symmetry': '..2', + 'coords_xyz': ['(x,1/4,0)', '(-x+1/2,3/4,0)', '(-x,3/4,0)', '(x+1/2,1/4,0)'], }, 'c': { 'multiplicity': 4, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(1/4,y,z)', - '(3/4,y+1/2,-z+1/2)', - '(3/4,-y,-z)', - '(1/4,-y+1/2,z+1/2)' - ] + 'site_symmetry': '.2.', + 'coords_xyz': ['(1/4,0,z)', '(1/4,1/2,-z)', '(3/4,0,-z)', '(3/4,1/2,z)'], }, 'b': { 'multiplicity': 4, 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,1/2,0)', - '(0,0,1/2)', - '(1/2,1/2,0)', - '(1/2,0,1/2)' - ] + 'coords_xyz': ['(0,0,1/2)', '(0,1/2,1/2)', '(1/2,0,1/2)', '(1/2,1/2,1/2)'], }, 'a': { 'multiplicity': 4, 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(0,1/2,1/2)', - '(1/2,0,0)', - '(1/2,1/2,1/2)' - ] - } - } + 'coords_xyz': ['(0,0,0)', '(0,1/2,0)', '(1/2,0,0)', '(1/2,1/2,0)'], + }, + }, }, - (62, 'a-cb'): { - 'IT_number': 62, - 'setting': 5, - 'IT_coordinate_system_code': 'a-cb', - 'name_H-M_alt': 'P n a m', + (54, '-cba'): { + 'IT_number': 54, + 'setting': 3, + 'IT_coordinate_system_code': '-cba', + 'name_H-M_alt': 'P c a a', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'd': { + 'f': { 'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(-x+1/2,y-1/2,-z)', - '(-x,-y,z+1/2)', - '(x+1/2,-y-1/2,-z+1/2)', + '(x,-y,-z+1/2)', + '(-x-1/2,y,-z)', + '(-x-1/2,-y,z+1/2)', '(-x,-y,-z)', - '(x+1/2,-y-1/2,z)', - '(x,y,-z+1/2)', - '(-x+1/2,y-1/2,z+1/2)' - ] + '(-x,y,z+1/2)', + '(x-1/2,-y,z)', + '(x-1/2,y,-z+1/2)', + ], + }, + 'e': { + 'multiplicity': 4, + 'site_symmetry': '..2', + 'coords_xyz': ['(x,1/2,1/4)', '(-x-1/2,1/2,3/4)', '(-x,1/2,3/4)', '(x-1/2,1/2,1/4)'], + }, + 'd': { + 'multiplicity': 4, + 'site_symmetry': '..2', + 'coords_xyz': ['(x,0,1/4)', '(-x-1/2,0,3/4)', '(-x,0,3/4)', '(x-1/2,0,1/4)'], }, 'c': { 'multiplicity': 4, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,y,1/4)', - '(-x+1/2,y-1/2,3/4)', - '(-x,-y,3/4)', - '(x+1/2,-y-1/2,1/4)' - ] + 'site_symmetry': '.2.', + 'coords_xyz': ['(-1/4,y,0)', '(-1/4,-y,1/2)', '(-3/4,-y,0)', '(-3/4,y,1/2)'], }, 'b': { 'multiplicity': 4, 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,-1/2,0)', - '(1/2,0,0)', - '(0,-1/2,1/2)', - '(1/2,0,1/2)' - ] + 'coords_xyz': ['(0,1/2,0)', '(0,1/2,1/2)', '(-1/2,1/2,0)', '(-1/2,1/2,1/2)'], }, 'a': { 'multiplicity': 4, 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,-1/2,0)', - '(0,0,1/2)', - '(1/2,-1/2,1/2)' - ] - } - } + 'coords_xyz': ['(0,0,0)', '(0,0,1/2)', '(-1/2,0,0)', '(-1/2,0,1/2)'], + }, + }, }, - (63, 'abc'): { - 'IT_number': 63, - 'setting': 0, - 'IT_coordinate_system_code': 'abc', - 'name_H-M_alt': 'C m c m', + (54, 'bca'): { + 'IT_number': 54, + 'setting': 4, + 'IT_coordinate_system_code': 'bca', + 'name_H-M_alt': 'P b c b', 'crystal_system': 'orthorhombic', - 'Wyckoff_positions': { - 'h': { - 'multiplicity': 16, + 'Wyckoff_positions': { + 'f': { + 'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(-x,-y,z+1/2)', '(-x,y,-z+1/2)', - '(x,-y,-z)', + '(x,-y+1/2,-z)', + '(-x,-y+1/2,z+1/2)', '(-x,-y,-z)', - '(x,y,-z+1/2)', '(x,-y,z+1/2)', - '(-x,y,z)' - ] - }, - 'g': { - 'multiplicity': 8, - 'site_symmetry': '..m', - 'coords_xyz': [ - '(x,y,1/4)', - '(-x,-y,3/4)', - '(-x,y,1/4)', - '(x,-y,3/4)' - ] - }, - 'f': { - 'multiplicity': 8, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(0,y,z)', - '(0,-y,z+1/2)', - '(0,y,-z+1/2)', - '(0,-y,-z)' - ] + '(-x,y+1/2,z)', + '(x,y+1/2,-z+1/2)', + ], }, 'e': { - 'multiplicity': 8, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,1/2)', - '(-x,0,0)', - '(x,0,1/2)' - ] + 'multiplicity': 4, + 'site_symmetry': '..2', + 'coords_xyz': ['(1/2,y,1/4)', '(1/2,-y+1/2,3/4)', '(1/2,-y,3/4)', '(1/2,y+1/2,1/4)'], }, 'd': { - 'multiplicity': 8, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/4,1/4,0)', - '(3/4,3/4,1/2)', - '(3/4,1/4,1/2)', - '(1/4,3/4,0)' - ] + 'multiplicity': 4, + 'site_symmetry': '..2', + 'coords_xyz': ['(0,y,1/4)', '(0,-y+1/2,3/4)', '(0,-y,3/4)', '(0,y+1/2,1/4)'], }, 'c': { 'multiplicity': 4, - 'site_symmetry': 'm2m', - 'coords_xyz': [ - '(0,y,1/4)', - '(0,-y,3/4)' - ] + 'site_symmetry': '.2.', + 'coords_xyz': ['(x,1/4,0)', '(-x,1/4,1/2)', '(-x,3/4,0)', '(x,3/4,1/2)'], }, 'b': { 'multiplicity': 4, - 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(0,1/2,0)', - '(0,1/2,1/2)' - ] + 'site_symmetry': '-1', + 'coords_xyz': ['(1/2,0,0)', '(1/2,0,1/2)', '(1/2,1/2,0)', '(1/2,1/2,1/2)'], }, 'a': { 'multiplicity': 4, - 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(0,0,0)', - '(0,0,1/2)' - ] - } - } + 'site_symmetry': '-1', + 'coords_xyz': ['(0,0,0)', '(0,0,1/2)', '(0,1/2,0)', '(0,1/2,1/2)'], + }, + }, }, - (63, 'ba-c'): { - 'IT_number': 63, - 'setting': 1, - 'IT_coordinate_system_code': 'ba-c', - 'name_H-M_alt': 'C c m m', + (54, 'a-cb'): { + 'IT_number': 54, + 'setting': 5, + 'IT_coordinate_system_code': 'a-cb', + 'name_H-M_alt': 'P b a b', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'h': { - 'multiplicity': 16, + 'f': { + 'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(-x,-y,z-1/2)', - '(x,-y,-z-1/2)', - '(-x,y,-z)', + '(-x+1/2,y,-z)', + '(-x,-y-1/2,z)', + '(x+1/2,-y-1/2,-z)', '(-x,-y,-z)', - '(x,y,-z-1/2)', - '(-x,y,z-1/2)', - '(x,-y,z)' - ] - }, - 'g': { - 'multiplicity': 8, - 'site_symmetry': '..m', - 'coords_xyz': [ - '(x,y,-1/4)', - '(-x,-y,-3/4)', - '(x,-y,-1/4)', - '(-x,y,-3/4)' - ] - }, - 'f': { - 'multiplicity': 8, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,0,z)', - '(-x,0,z-1/2)', - '(x,0,-z-1/2)', - '(-x,0,-z)' - ] + '(x+1/2,-y,z)', + '(x,y-1/2,-z)', + '(-x+1/2,y-1/2,z)', + ], }, 'e': { - 'multiplicity': 8, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y,-1/2)', - '(0,-y,0)', - '(0,y,-1/2)' - ] + 'multiplicity': 4, + 'site_symmetry': '..2', + 'coords_xyz': ['(1/4,y,1/2)', '(3/4,-y-1/2,1/2)', '(3/4,-y,1/2)', '(1/4,y-1/2,1/2)'], }, 'd': { - 'multiplicity': 8, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/4,1/4,0)', - '(3/4,3/4,-1/2)', - '(1/4,3/4,-1/2)', - '(3/4,1/4,0)' - ] + 'multiplicity': 4, + 'site_symmetry': '..2', + 'coords_xyz': ['(1/4,y,0)', '(3/4,-y-1/2,0)', '(3/4,-y,0)', '(1/4,y-1/2,0)'], }, 'c': { 'multiplicity': 4, - 'site_symmetry': 'm2m', - 'coords_xyz': [ - '(x,0,-1/4)', - '(-x,0,-3/4)' - ] + 'site_symmetry': '.2.', + 'coords_xyz': ['(0,-1/4,z)', '(1/2,-1/4,-z)', '(0,-3/4,-z)', '(1/2,-3/4,z)'], }, 'b': { 'multiplicity': 4, - 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(1/2,0,0)', - '(1/2,0,-1/2)' - ] + 'site_symmetry': '-1', + 'coords_xyz': ['(0,0,1/2)', '(1/2,0,1/2)', '(0,-1/2,1/2)', '(1/2,-1/2,1/2)'], }, 'a': { 'multiplicity': 4, - 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(0,0,0)', - '(0,0,-1/2)' - ] - } - } + 'site_symmetry': '-1', + 'coords_xyz': ['(0,0,0)', '(1/2,0,0)', '(0,-1/2,0)', '(1/2,-1/2,0)'], + }, + }, }, - (63, 'cab'): { - 'IT_number': 63, - 'setting': 2, - 'IT_coordinate_system_code': 'cab', - 'name_H-M_alt': 'A m m a', + (55, 'abc'): { + 'IT_number': 55, + 'setting': 0, + 'IT_coordinate_system_code': 'abc', + 'name_H-M_alt': 'P b a m', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'h': { - 'multiplicity': 16, + 'i': { + 'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(x+1/2,-y,-z)', - '(-x+1/2,-y,z)', - '(-x,y,-z)', + '(-x,-y,z)', + '(-x+1/2,y+1/2,-z)', + '(x+1/2,-y+1/2,-z)', '(-x,-y,-z)', - '(-x+1/2,y,z)', - '(x+1/2,y,-z)', - '(x,-y,z)' - ] + '(x,y,-z)', + '(x+1/2,-y+1/2,z)', + '(-x+1/2,y+1/2,z)', + ], + }, + 'h': { + 'multiplicity': 4, + 'site_symmetry': '..m', + 'coords_xyz': ['(x,y,1/2)', '(-x,-y,1/2)', '(-x+1/2,y+1/2,1/2)', '(x+1/2,-y+1/2,1/2)'], }, 'g': { - 'multiplicity': 8, + 'multiplicity': 4, 'site_symmetry': '..m', - 'coords_xyz': [ - '(1/4,y,z)', - '(3/4,-y,-z)', - '(1/4,-y,z)', - '(3/4,y,-z)' - ] + 'coords_xyz': ['(x,y,0)', '(-x,-y,0)', '(-x+1/2,y+1/2,0)', '(x+1/2,-y+1/2,0)'], }, 'f': { - 'multiplicity': 8, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,0,z)', - '(x+1/2,0,-z)', - '(-x+1/2,0,z)', - '(-x,0,-z)' - ] + 'multiplicity': 4, + 'site_symmetry': '..2', + 'coords_xyz': ['(0,1/2,z)', '(1/2,0,-z)', '(0,1/2,-z)', '(1/2,0,z)'], }, 'e': { - 'multiplicity': 8, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,y,0)', - '(1/2,-y,0)', - '(0,-y,0)', - '(1/2,y,0)' - ] + 'multiplicity': 4, + 'site_symmetry': '..2', + 'coords_xyz': ['(0,0,z)', '(1/2,1/2,-z)', '(0,0,-z)', '(1/2,1/2,z)'], }, - 'd': { + 'd': {'multiplicity': 2, 'site_symmetry': '..2/m', 'coords_xyz': ['(0,1/2,1/2)', '(1/2,0,1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '..2/m', 'coords_xyz': ['(0,1/2,0)', '(1/2,0,0)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '..2/m', 'coords_xyz': ['(0,0,1/2)', '(1/2,1/2,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '..2/m', 'coords_xyz': ['(0,0,0)', '(1/2,1/2,0)']}, + }, + }, + (55, 'ba-c'): { + 'IT_number': 55, + 'setting': 1, + 'IT_coordinate_system_code': 'ba-c', + 'name_H-M_alt': 'P b a m', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'i': { 'multiplicity': 8, - 'site_symmetry': '-1', + 'site_symmetry': '1', 'coords_xyz': [ - '(0,1/4,1/4)', - '(1/2,3/4,3/4)', - '(1/2,3/4,1/4)', - '(0,1/4,3/4)' - ] + '(x,y,z)', + '(-x,-y,z)', + '(x+1/2,-y+1/2,-z)', + '(-x+1/2,y+1/2,-z)', + '(-x,-y,-z)', + '(x,y,-z)', + '(-x+1/2,y+1/2,z)', + '(x+1/2,-y+1/2,z)', + ], }, - 'c': { + 'h': { 'multiplicity': 4, - 'site_symmetry': 'm2m', - 'coords_xyz': [ - '(1/4,0,z)', - '(3/4,0,-z)' - ] + 'site_symmetry': '..m', + 'coords_xyz': ['(x,y,-1/2)', '(-x,-y,-1/2)', '(x+1/2,-y+1/2,-1/2)', '(-x+1/2,y+1/2,-1/2)'], }, - 'b': { + 'g': { 'multiplicity': 4, - 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(0,0,1/2)', - '(1/2,0,1/2)' - ] + 'site_symmetry': '..m', + 'coords_xyz': ['(x,y,0)', '(-x,-y,0)', '(x+1/2,-y+1/2,0)', '(-x+1/2,y+1/2,0)'], }, - 'a': { + 'f': { 'multiplicity': 4, - 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,0,0)' - ] - } - } + 'site_symmetry': '..2', + 'coords_xyz': ['(1/2,0,z)', '(0,1/2,-z)', '(1/2,0,-z)', '(0,1/2,z)'], + }, + 'e': { + 'multiplicity': 4, + 'site_symmetry': '..2', + 'coords_xyz': ['(0,0,z)', '(1/2,1/2,-z)', '(0,0,-z)', '(1/2,1/2,z)'], + }, + 'd': {'multiplicity': 2, 'site_symmetry': '..2/m', 'coords_xyz': ['(1/2,0,-1/2)', '(0,1/2,-1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '..2/m', 'coords_xyz': ['(1/2,0,0)', '(0,1/2,0)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '..2/m', 'coords_xyz': ['(0,0,-1/2)', '(1/2,1/2,-1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '..2/m', 'coords_xyz': ['(0,0,0)', '(1/2,1/2,0)']}, + }, }, - (63, '-cba'): { - 'IT_number': 63, - 'setting': 3, - 'IT_coordinate_system_code': '-cba', - 'name_H-M_alt': 'A m a m', + (55, 'cab'): { + 'IT_number': 55, + 'setting': 2, + 'IT_coordinate_system_code': 'cab', + 'name_H-M_alt': 'P m c b', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'h': { - 'multiplicity': 16, + 'i': { + 'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(x-1/2,-y,-z)', - '(-x-1/2,y,-z)', - '(-x,-y,z)', + '(x,-y,-z)', + '(-x,-y+1/2,z+1/2)', + '(-x,y+1/2,-z+1/2)', '(-x,-y,-z)', - '(-x-1/2,y,z)', - '(x-1/2,-y,z)', - '(x,y,-z)' - ] + '(-x,y,z)', + '(x,y+1/2,-z+1/2)', + '(x,-y+1/2,z+1/2)', + ], + }, + 'h': { + 'multiplicity': 4, + 'site_symmetry': '..m', + 'coords_xyz': ['(1/2,y,z)', '(1/2,-y,-z)', '(1/2,-y+1/2,z+1/2)', '(1/2,y+1/2,-z+1/2)'], }, 'g': { - 'multiplicity': 8, + 'multiplicity': 4, 'site_symmetry': '..m', - 'coords_xyz': [ - '(-1/4,y,z)', - '(-3/4,-y,-z)', - '(-1/4,y,-z)', - '(-3/4,-y,z)' - ] + 'coords_xyz': ['(0,y,z)', '(0,-y,-z)', '(0,-y+1/2,z+1/2)', '(0,y+1/2,-z+1/2)'], }, 'f': { - 'multiplicity': 8, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,y,0)', - '(x-1/2,-y,0)', - '(-x-1/2,y,0)', - '(-x,-y,0)' - ] + 'multiplicity': 4, + 'site_symmetry': '..2', + 'coords_xyz': ['(x,0,1/2)', '(-x,1/2,0)', '(-x,0,1/2)', '(x,1/2,0)'], }, 'e': { - 'multiplicity': 8, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,0,z)', - '(-1/2,0,-z)', - '(0,0,-z)', - '(-1/2,0,z)' - ] + 'multiplicity': 4, + 'site_symmetry': '..2', + 'coords_xyz': ['(x,0,0)', '(-x,1/2,1/2)', '(-x,0,0)', '(x,1/2,1/2)'], }, - 'd': { + 'd': {'multiplicity': 2, 'site_symmetry': '..2/m', 'coords_xyz': ['(1/2,0,1/2)', '(1/2,1/2,0)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '..2/m', 'coords_xyz': ['(0,0,1/2)', '(0,1/2,0)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '..2/m', 'coords_xyz': ['(1/2,0,0)', '(1/2,1/2,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '..2/m', 'coords_xyz': ['(0,0,0)', '(0,1/2,1/2)']}, + }, + }, + (55, '-cba'): { + 'IT_number': 55, + 'setting': 3, + 'IT_coordinate_system_code': '-cba', + 'name_H-M_alt': 'P m c b', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'i': { 'multiplicity': 8, - 'site_symmetry': '-1', + 'site_symmetry': '1', 'coords_xyz': [ - '(0,1/4,1/4)', - '(-1/2,3/4,3/4)', - '(-1/2,1/4,3/4)', - '(0,3/4,1/4)' - ] + '(x,y,z)', + '(x,-y,-z)', + '(-x,y+1/2,-z+1/2)', + '(-x,-y+1/2,z+1/2)', + '(-x,-y,-z)', + '(-x,y,z)', + '(x,-y+1/2,z+1/2)', + '(x,y+1/2,-z+1/2)', + ], }, - 'c': { + 'h': { 'multiplicity': 4, - 'site_symmetry': 'm2m', - 'coords_xyz': [ - '(-1/4,y,0)', - '(-3/4,-y,0)' - ] + 'site_symmetry': '..m', + 'coords_xyz': ['(-1/2,y,z)', '(-1/2,-y,-z)', '(-1/2,y+1/2,-z+1/2)', '(-1/2,-y+1/2,z+1/2)'], }, - 'b': { + 'g': { 'multiplicity': 4, - 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(0,1/2,0)', - '(-1/2,1/2,0)' - ] + 'site_symmetry': '..m', + 'coords_xyz': ['(0,y,z)', '(0,-y,-z)', '(0,y+1/2,-z+1/2)', '(0,-y+1/2,z+1/2)'], }, - 'a': { + 'f': { 'multiplicity': 4, - 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(0,0,0)', - '(-1/2,0,0)' - ] - } - } + 'site_symmetry': '..2', + 'coords_xyz': ['(x,1/2,0)', '(-x,0,1/2)', '(-x,1/2,0)', '(x,0,1/2)'], + }, + 'e': { + 'multiplicity': 4, + 'site_symmetry': '..2', + 'coords_xyz': ['(x,0,0)', '(-x,1/2,1/2)', '(-x,0,0)', '(x,1/2,1/2)'], + }, + 'd': {'multiplicity': 2, 'site_symmetry': '..2/m', 'coords_xyz': ['(-1/2,1/2,0)', '(-1/2,0,1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '..2/m', 'coords_xyz': ['(0,1/2,0)', '(0,0,1/2)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '..2/m', 'coords_xyz': ['(-1/2,0,0)', '(-1/2,1/2,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '..2/m', 'coords_xyz': ['(0,0,0)', '(0,1/2,1/2)']}, + }, }, - (63, 'bca'): { - 'IT_number': 63, + (55, 'bca'): { + 'IT_number': 55, 'setting': 4, 'IT_coordinate_system_code': 'bca', - 'name_H-M_alt': 'B b m m', + 'name_H-M_alt': 'P c m a', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'h': { - 'multiplicity': 16, + 'i': { + 'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(-x,y+1/2,-z)', - '(x,-y+1/2,-z)', - '(-x,-y,z)', + '(-x,y,-z)', + '(x+1/2,-y,-z+1/2)', + '(-x+1/2,-y,z+1/2)', '(-x,-y,-z)', - '(x,-y+1/2,z)', - '(-x,y+1/2,z)', - '(x,y,-z)' - ] + '(x,-y,z)', + '(-x+1/2,y,z+1/2)', + '(x+1/2,y,-z+1/2)', + ], + }, + 'h': { + 'multiplicity': 4, + 'site_symmetry': '..m', + 'coords_xyz': ['(x,1/2,z)', '(-x,1/2,-z)', '(x+1/2,1/2,-z+1/2)', '(-x+1/2,1/2,z+1/2)'], }, 'g': { - 'multiplicity': 8, + 'multiplicity': 4, 'site_symmetry': '..m', - 'coords_xyz': [ - '(x,1/4,z)', - '(-x,3/4,-z)', - '(x,1/4,-z)', - '(-x,3/4,z)' - ] + 'coords_xyz': ['(x,0,z)', '(-x,0,-z)', '(x+1/2,0,-z+1/2)', '(-x+1/2,0,z+1/2)'], }, 'f': { - 'multiplicity': 8, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,y,0)', - '(-x,y+1/2,0)', - '(x,-y+1/2,0)', - '(-x,-y,0)' - ] - }, - 'e': { - 'multiplicity': 8, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,0,z)', - '(0,1/2,-z)', - '(0,0,-z)', - '(0,1/2,z)' - ] - }, - 'd': { - 'multiplicity': 8, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/4,0,1/4)', - '(3/4,1/2,3/4)', - '(1/4,1/2,3/4)', - '(3/4,0,1/4)' - ] - }, - 'c': { 'multiplicity': 4, - 'site_symmetry': 'm2m', - 'coords_xyz': [ - '(x,1/4,0)', - '(-x,3/4,0)' - ] + 'site_symmetry': '..2', + 'coords_xyz': ['(1/2,y,0)', '(0,-y,1/2)', '(1/2,-y,0)', '(0,y,1/2)'], }, - 'b': { + 'e': { 'multiplicity': 4, - 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(1/2,0,0)', - '(1/2,1/2,0)' - ] + 'site_symmetry': '..2', + 'coords_xyz': ['(0,y,0)', '(1/2,-y,1/2)', '(0,-y,0)', '(1/2,y,1/2)'], }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(0,0,0)', - '(0,1/2,0)' - ] - } - } + 'd': {'multiplicity': 2, 'site_symmetry': '..2/m', 'coords_xyz': ['(1/2,1/2,0)', '(0,1/2,1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '..2/m', 'coords_xyz': ['(1/2,0,0)', '(0,0,1/2)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '..2/m', 'coords_xyz': ['(0,1/2,0)', '(1/2,1/2,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '..2/m', 'coords_xyz': ['(0,0,0)', '(1/2,0,1/2)']}, + }, }, - (63, 'a-cb'): { - 'IT_number': 63, + (55, 'a-cb'): { + 'IT_number': 55, 'setting': 5, 'IT_coordinate_system_code': 'a-cb', - 'name_H-M_alt': 'B m m b', + 'name_H-M_alt': 'P c m a', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'h': { - 'multiplicity': 16, + 'i': { + 'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(-x,y-1/2,-z)', - '(-x,-y-1/2,z)', - '(x,-y,-z)', + '(-x,y,-z)', + '(-x+1/2,-y,z+1/2)', + '(x+1/2,-y,-z+1/2)', '(-x,-y,-z)', - '(x,-y-1/2,z)', - '(x,y-1/2,-z)', - '(-x,y,z)' - ] + '(x,-y,z)', + '(x+1/2,y,-z+1/2)', + '(-x+1/2,y,z+1/2)', + ], + }, + 'h': { + 'multiplicity': 4, + 'site_symmetry': '..m', + 'coords_xyz': ['(x,-1/2,z)', '(-x,-1/2,-z)', '(-x+1/2,-1/2,z+1/2)', '(x+1/2,-1/2,-z+1/2)'], }, 'g': { - 'multiplicity': 8, + 'multiplicity': 4, 'site_symmetry': '..m', - 'coords_xyz': [ - '(x,-1/4,z)', - '(-x,-3/4,-z)', - '(-x,-1/4,z)', - '(x,-3/4,-z)' - ] + 'coords_xyz': ['(x,0,z)', '(-x,0,-z)', '(-x+1/2,0,z+1/2)', '(x+1/2,0,-z+1/2)'], }, 'f': { - 'multiplicity': 8, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(0,y,z)', - '(0,y-1/2,-z)', - '(0,-y-1/2,z)', - '(0,-y,-z)' - ] - }, - 'e': { - 'multiplicity': 8, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(x,0,0)', - '(-x,-1/2,0)', - '(-x,0,0)', - '(x,-1/2,0)' - ] - }, - 'd': { - 'multiplicity': 8, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/4,0,1/4)', - '(3/4,-1/2,3/4)', - '(3/4,-1/2,1/4)', - '(1/4,0,3/4)' - ] - }, - 'c': { 'multiplicity': 4, - 'site_symmetry': 'm2m', - 'coords_xyz': [ - '(0,-1/4,z)', - '(0,-3/4,-z)' - ] + 'site_symmetry': '..2', + 'coords_xyz': ['(0,y,1/2)', '(1/2,-y,0)', '(0,-y,1/2)', '(1/2,y,0)'], }, - 'b': { + 'e': { 'multiplicity': 4, - 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(0,0,1/2)', - '(0,-1/2,1/2)' - ] + 'site_symmetry': '..2', + 'coords_xyz': ['(0,y,0)', '(1/2,-y,1/2)', '(0,-y,0)', '(1/2,y,1/2)'], }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(0,0,0)', - '(0,-1/2,0)' - ] - } - } + 'd': {'multiplicity': 2, 'site_symmetry': '..2/m', 'coords_xyz': ['(0,-1/2,1/2)', '(1/2,-1/2,0)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '..2/m', 'coords_xyz': ['(0,0,1/2)', '(1/2,0,0)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '..2/m', 'coords_xyz': ['(0,-1/2,0)', '(1/2,-1/2,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '..2/m', 'coords_xyz': ['(0,0,0)', '(1/2,0,1/2)']}, + }, }, - (64, 'abc'): { - 'IT_number': 64, + (56, 'abc'): { + 'IT_number': 56, 'setting': 0, 'IT_coordinate_system_code': 'abc', - 'name_H-M_alt': 'C m c e', + 'name_H-M_alt': 'P c c n', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'g': { - 'multiplicity': 16, + 'e': { + 'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(-x,-y+1/2,z+1/2)', + '(-x+1/2,-y+1/2,z)', '(-x,y+1/2,-z+1/2)', - '(x,-y,-z)', + '(x+1/2,-y,-z+1/2)', '(-x,-y,-z)', - '(x,y+1/2,-z+1/2)', + '(x+1/2,y+1/2,-z)', '(x,-y+1/2,z+1/2)', - '(-x,y,z)' - ] - }, - 'f': { - 'multiplicity': 8, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(0,y,z)', - '(0,-y+1/2,z+1/2)', - '(0,y+1/2,-z+1/2)', - '(0,-y,-z)' - ] - }, - 'e': { - 'multiplicity': 8, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(1/4,y,1/4)', - '(3/4,-y+1/2,3/4)', - '(3/4,-y,3/4)', - '(1/4,y+1/2,1/4)' - ] + '(-x+1/2,y,z+1/2)', + ], }, 'd': { - 'multiplicity': 8, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(x,0,0)', - '(-x,1/2,1/2)', - '(-x,0,0)', - '(x,1/2,1/2)' - ] + 'multiplicity': 4, + 'site_symmetry': '..2', + 'coords_xyz': ['(1/4,3/4,z)', '(3/4,1/4,-z+1/2)', '(3/4,1/4,-z)', '(1/4,3/4,z+1/2)'], }, 'c': { - 'multiplicity': 8, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/4,1/4,0)', - '(3/4,1/4,1/2)', - '(3/4,3/4,1/2)', - '(1/4,3/4,0)' - ] + 'multiplicity': 4, + 'site_symmetry': '..2', + 'coords_xyz': ['(1/4,1/4,z)', '(3/4,3/4,-z+1/2)', '(3/4,3/4,-z)', '(1/4,1/4,z+1/2)'], }, 'b': { 'multiplicity': 4, - 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(1/2,0,0)', - '(1/2,1/2,1/2)' - ] + 'site_symmetry': '-1', + 'coords_xyz': ['(0,0,1/2)', '(1/2,1/2,1/2)', '(0,1/2,0)', '(1/2,0,0)'], }, 'a': { 'multiplicity': 4, - 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(0,0,0)', - '(0,1/2,1/2)' - ] - } - } + 'site_symmetry': '-1', + 'coords_xyz': ['(0,0,0)', '(1/2,1/2,0)', '(0,1/2,1/2)', '(1/2,0,1/2)'], + }, + }, }, - (64, 'ba-c'): { - 'IT_number': 64, + (56, 'ba-c'): { + 'IT_number': 56, 'setting': 1, 'IT_coordinate_system_code': 'ba-c', - 'name_H-M_alt': 'C c m e', + 'name_H-M_alt': 'P c c n', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'g': { - 'multiplicity': 16, + 'e': { + 'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(-x+1/2,-y,z-1/2)', + '(-x+1/2,-y+1/2,z)', '(x+1/2,-y,-z-1/2)', - '(-x,y,-z)', + '(-x,y+1/2,-z-1/2)', '(-x,-y,-z)', - '(x+1/2,y,-z-1/2)', + '(x+1/2,y+1/2,-z)', '(-x+1/2,y,z-1/2)', - '(x,-y,z)' - ] - }, - 'f': { - 'multiplicity': 8, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,0,z)', - '(-x+1/2,0,z-1/2)', - '(x+1/2,0,-z-1/2)', - '(-x,0,-z)' - ] - }, - 'e': { - 'multiplicity': 8, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,1/4,-1/4)', - '(-x+1/2,3/4,-3/4)', - '(-x,3/4,-3/4)', - '(x+1/2,1/4,-1/4)' - ] + '(x,-y+1/2,z-1/2)', + ], }, 'd': { - 'multiplicity': 8, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,y,0)', - '(1/2,-y,-1/2)', - '(0,-y,0)', - '(1/2,y,-1/2)' - ] + 'multiplicity': 4, + 'site_symmetry': '..2', + 'coords_xyz': ['(3/4,1/4,z)', '(1/4,3/4,-z-1/2)', '(1/4,3/4,-z)', '(3/4,1/4,z-1/2)'], }, 'c': { - 'multiplicity': 8, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/4,1/4,0)', - '(1/4,3/4,-1/2)', - '(3/4,3/4,-1/2)', - '(3/4,1/4,0)' - ] + 'multiplicity': 4, + 'site_symmetry': '..2', + 'coords_xyz': ['(1/4,1/4,z)', '(3/4,3/4,-z-1/2)', '(3/4,3/4,-z)', '(1/4,1/4,z-1/2)'], }, 'b': { 'multiplicity': 4, - 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(0,1/2,0)', - '(1/2,1/2,-1/2)' - ] + 'site_symmetry': '-1', + 'coords_xyz': ['(0,0,-1/2)', '(1/2,1/2,-1/2)', '(1/2,0,0)', '(0,1/2,0)'], }, 'a': { 'multiplicity': 4, - 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,0,-1/2)' - ] - } - } + 'site_symmetry': '-1', + 'coords_xyz': ['(0,0,0)', '(1/2,1/2,0)', '(1/2,0,-1/2)', '(0,1/2,-1/2)'], + }, + }, }, - (64, 'cab'): { - 'IT_number': 64, + (56, 'cab'): { + 'IT_number': 56, 'setting': 2, 'IT_coordinate_system_code': 'cab', - 'name_H-M_alt': 'A e m a', + 'name_H-M_alt': 'P n a a', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'g': { - 'multiplicity': 16, + 'e': { + 'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(x+1/2,-y,-z+1/2)', + '(x,-y+1/2,-z+1/2)', '(-x+1/2,-y,z+1/2)', - '(-x,y,-z)', + '(-x+1/2,y+1/2,-z)', '(-x,-y,-z)', - '(-x+1/2,y,z+1/2)', + '(-x,y+1/2,z+1/2)', '(x+1/2,y,-z+1/2)', - '(x,-y,z)' - ] - }, - 'f': { - 'multiplicity': 8, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,0,z)', - '(x+1/2,0,-z+1/2)', - '(-x+1/2,0,z+1/2)', - '(-x,0,-z)' - ] - }, - 'e': { - 'multiplicity': 8, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(1/4,1/4,z)', - '(3/4,3/4,-z+1/2)', - '(3/4,3/4,-z)', - '(1/4,1/4,z+1/2)' - ] + '(x+1/2,-y+1/2,z)', + ], }, 'd': { - 'multiplicity': 8, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,y,0)', - '(1/2,-y,1/2)', - '(0,-y,0)', - '(1/2,y,1/2)' - ] + 'multiplicity': 4, + 'site_symmetry': '..2', + 'coords_xyz': ['(x,1/4,3/4)', '(-x+1/2,3/4,1/4)', '(-x,3/4,1/4)', '(x+1/2,1/4,3/4)'], }, 'c': { - 'multiplicity': 8, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,1/4,1/4)', - '(1/2,3/4,1/4)', - '(1/2,3/4,3/4)', - '(0,1/4,3/4)' - ] + 'multiplicity': 4, + 'site_symmetry': '..2', + 'coords_xyz': ['(x,1/4,1/4)', '(-x+1/2,3/4,3/4)', '(-x,3/4,3/4)', '(x+1/2,1/4,1/4)'], }, 'b': { 'multiplicity': 4, - 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(0,1/2,0)', - '(1/2,1/2,1/2)' - ] + 'site_symmetry': '-1', + 'coords_xyz': ['(1/2,0,0)', '(1/2,1/2,1/2)', '(0,0,1/2)', '(0,1/2,0)'], }, 'a': { 'multiplicity': 4, - 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,0,1/2)' - ] - } - } + 'site_symmetry': '-1', + 'coords_xyz': ['(0,0,0)', '(0,1/2,1/2)', '(1/2,0,1/2)', '(1/2,1/2,0)'], + }, + }, }, - (64, '-cba'): { - 'IT_number': 64, + (56, '-cba'): { + 'IT_number': 56, 'setting': 3, 'IT_coordinate_system_code': '-cba', - 'name_H-M_alt': 'A e a m', + 'name_H-M_alt': 'P n a a', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'g': { - 'multiplicity': 16, + 'e': { + 'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(x-1/2,-y+1/2,-z)', + '(x,-y+1/2,-z+1/2)', '(-x-1/2,y+1/2,-z)', - '(-x,-y,z)', + '(-x-1/2,-y,z+1/2)', '(-x,-y,-z)', - '(-x-1/2,y+1/2,z)', + '(-x,y+1/2,z+1/2)', '(x-1/2,-y+1/2,z)', - '(x,y,-z)' - ] - }, - 'f': { - 'multiplicity': 8, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,y,0)', - '(x-1/2,-y+1/2,0)', - '(-x-1/2,y+1/2,0)', - '(-x,-y,0)' - ] - }, - 'e': { - 'multiplicity': 8, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(-1/4,y,1/4)', - '(-3/4,-y+1/2,3/4)', - '(-3/4,-y,3/4)', - '(-1/4,y+1/2,1/4)' - ] + '(x-1/2,y,-z+1/2)', + ], }, 'd': { - 'multiplicity': 8, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,0,z)', - '(-1/2,1/2,-z)', - '(0,0,-z)', - '(-1/2,1/2,z)' - ] + 'multiplicity': 4, + 'site_symmetry': '..2', + 'coords_xyz': ['(x,3/4,1/4)', '(-x-1/2,1/4,3/4)', '(-x,1/4,3/4)', '(x-1/2,3/4,1/4)'], }, 'c': { - 'multiplicity': 8, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,1/4,1/4)', - '(-1/2,1/4,3/4)', - '(-1/2,3/4,3/4)', - '(0,3/4,1/4)' - ] + 'multiplicity': 4, + 'site_symmetry': '..2', + 'coords_xyz': ['(x,1/4,1/4)', '(-x-1/2,3/4,3/4)', '(-x,3/4,3/4)', '(x-1/2,1/4,1/4)'], }, 'b': { 'multiplicity': 4, - 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(0,0,1/2)', - '(-1/2,1/2,1/2)' - ] + 'site_symmetry': '-1', + 'coords_xyz': ['(-1/2,0,0)', '(-1/2,1/2,1/2)', '(0,1/2,0)', '(0,0,1/2)'], }, 'a': { 'multiplicity': 4, - 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(0,0,0)', - '(-1/2,1/2,0)' - ] - } - } + 'site_symmetry': '-1', + 'coords_xyz': ['(0,0,0)', '(0,1/2,1/2)', '(-1/2,1/2,0)', '(-1/2,0,1/2)'], + }, + }, }, - (64, 'bca'): { - 'IT_number': 64, + (56, 'bca'): { + 'IT_number': 56, 'setting': 4, 'IT_coordinate_system_code': 'bca', - 'name_H-M_alt': 'B b e m', + 'name_H-M_alt': 'P b n b', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'g': { - 'multiplicity': 16, + 'e': { + 'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(-x+1/2,y+1/2,-z)', + '(-x+1/2,y,-z+1/2)', '(x+1/2,-y+1/2,-z)', - '(-x,-y,z)', + '(-x,-y+1/2,z+1/2)', '(-x,-y,-z)', - '(x+1/2,-y+1/2,z)', + '(x+1/2,-y,z+1/2)', '(-x+1/2,y+1/2,z)', - '(x,y,-z)' - ] - }, - 'f': { - 'multiplicity': 8, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,y,0)', - '(-x+1/2,y+1/2,0)', - '(x+1/2,-y+1/2,0)', - '(-x,-y,0)' - ] - }, - 'e': { - 'multiplicity': 8, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,1/4,1/4)', - '(-x+1/2,3/4,3/4)', - '(-x,3/4,3/4)', - '(x+1/2,1/4,1/4)' - ] + '(x,y+1/2,-z+1/2)', + ], }, 'd': { - 'multiplicity': 8, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,0,z)', - '(1/2,1/2,-z)', - '(0,0,-z)', - '(1/2,1/2,z)' - ] + 'multiplicity': 4, + 'site_symmetry': '..2', + 'coords_xyz': ['(3/4,y,1/4)', '(1/4,-y+1/2,3/4)', '(1/4,-y,3/4)', '(3/4,y+1/2,1/4)'], }, 'c': { - 'multiplicity': 8, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/4,0,1/4)', - '(1/4,1/2,3/4)', - '(3/4,1/2,3/4)', - '(3/4,0,1/4)' - ] + 'multiplicity': 4, + 'site_symmetry': '..2', + 'coords_xyz': ['(1/4,y,1/4)', '(3/4,-y+1/2,3/4)', '(3/4,-y,3/4)', '(1/4,y+1/2,1/4)'], }, 'b': { 'multiplicity': 4, - 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(0,0,1/2)', - '(1/2,1/2,1/2)' - ] + 'site_symmetry': '-1', + 'coords_xyz': ['(0,1/2,0)', '(1/2,1/2,1/2)', '(1/2,0,0)', '(0,0,1/2)'], }, 'a': { 'multiplicity': 4, - 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,1/2,0)' - ] - } - } + 'site_symmetry': '-1', + 'coords_xyz': ['(0,0,0)', '(1/2,0,1/2)', '(1/2,1/2,0)', '(0,1/2,1/2)'], + }, + }, }, - (64, 'a-cb'): { - 'IT_number': 64, + (56, 'a-cb'): { + 'IT_number': 56, 'setting': 5, 'IT_coordinate_system_code': 'a-cb', - 'name_H-M_alt': 'B m e b', + 'name_H-M_alt': 'P b n b', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'g': { - 'multiplicity': 16, + 'e': { + 'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(-x,y-1/2,-z+1/2)', + '(-x+1/2,y,-z+1/2)', '(-x,-y-1/2,z+1/2)', - '(x,-y,-z)', + '(x+1/2,-y-1/2,-z)', '(-x,-y,-z)', - '(x,-y-1/2,z+1/2)', + '(x+1/2,-y,z+1/2)', '(x,y-1/2,-z+1/2)', - '(-x,y,z)' - ] + '(-x+1/2,y-1/2,z)', + ], }, - 'f': { - 'multiplicity': 8, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(0,y,z)', - '(0,y-1/2,-z+1/2)', - '(0,-y-1/2,z+1/2)', - '(0,-y,-z)' - ] + 'd': { + 'multiplicity': 4, + 'site_symmetry': '..2', + 'coords_xyz': ['(1/4,y,3/4)', '(3/4,-y-1/2,1/4)', '(3/4,-y,1/4)', '(1/4,y-1/2,3/4)'], + }, + 'c': { + 'multiplicity': 4, + 'site_symmetry': '..2', + 'coords_xyz': ['(1/4,y,1/4)', '(3/4,-y-1/2,3/4)', '(3/4,-y,3/4)', '(1/4,y-1/2,1/4)'], + }, + 'b': { + 'multiplicity': 4, + 'site_symmetry': '-1', + 'coords_xyz': ['(0,-1/2,0)', '(1/2,-1/2,1/2)', '(0,0,1/2)', '(1/2,0,0)'], + }, + 'a': { + 'multiplicity': 4, + 'site_symmetry': '-1', + 'coords_xyz': ['(0,0,0)', '(1/2,0,1/2)', '(0,-1/2,1/2)', '(1/2,-1/2,0)'], }, + }, + }, + (57, 'abc'): { + 'IT_number': 57, + 'setting': 0, + 'IT_coordinate_system_code': 'abc', + 'name_H-M_alt': 'P b c m', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { 'e': { 'multiplicity': 8, - 'site_symmetry': '.2.', + 'site_symmetry': '1', 'coords_xyz': [ - '(1/4,-1/4,z)', - '(3/4,-3/4,-z+1/2)', - '(3/4,-3/4,-z)', - '(1/4,-1/4,z+1/2)' - ] + '(x,y,z)', + '(-x,-y,z+1/2)', + '(-x,y+1/2,-z+1/2)', + '(x,-y+1/2,-z)', + '(-x,-y,-z)', + '(x,y,-z+1/2)', + '(x,-y+1/2,z+1/2)', + '(-x,y+1/2,z)', + ], }, 'd': { - 'multiplicity': 8, + 'multiplicity': 4, + 'site_symmetry': '..m', + 'coords_xyz': ['(x,y,1/4)', '(-x,-y,3/4)', '(-x,y+1/2,1/4)', '(x,-y+1/2,3/4)'], + }, + 'c': { + 'multiplicity': 4, 'site_symmetry': '2..', + 'coords_xyz': ['(x,1/4,0)', '(-x,3/4,1/2)', '(-x,3/4,0)', '(x,1/4,1/2)'], + }, + 'b': { + 'multiplicity': 4, + 'site_symmetry': '-1', + 'coords_xyz': ['(1/2,0,0)', '(1/2,0,1/2)', '(1/2,1/2,1/2)', '(1/2,1/2,0)'], + }, + 'a': { + 'multiplicity': 4, + 'site_symmetry': '-1', + 'coords_xyz': ['(0,0,0)', '(0,0,1/2)', '(0,1/2,1/2)', '(0,1/2,0)'], + }, + }, + }, + (57, 'ba-c'): { + 'IT_number': 57, + 'setting': 1, + 'IT_coordinate_system_code': 'ba-c', + 'name_H-M_alt': 'P c a m', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'e': { + 'multiplicity': 8, + 'site_symmetry': '1', 'coords_xyz': [ - '(x,0,0)', - '(-x,-1/2,1/2)', - '(-x,0,0)', - '(x,-1/2,1/2)' - ] + '(x,y,z)', + '(-x,-y,z-1/2)', + '(x+1/2,-y,-z-1/2)', + '(-x+1/2,y,-z)', + '(-x,-y,-z)', + '(x,y,-z-1/2)', + '(-x+1/2,y,z-1/2)', + '(x+1/2,-y,z)', + ], + }, + 'd': { + 'multiplicity': 4, + 'site_symmetry': '..m', + 'coords_xyz': ['(x,y,-1/4)', '(-x,-y,-3/4)', '(x+1/2,-y,-1/4)', '(-x+1/2,y,-3/4)'], }, 'c': { - 'multiplicity': 8, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/4,0,1/4)', - '(3/4,-1/2,1/4)', - '(3/4,-1/2,3/4)', - '(1/4,0,3/4)' - ] + 'multiplicity': 4, + 'site_symmetry': '2..', + 'coords_xyz': ['(1/4,y,0)', '(3/4,-y,-1/2)', '(3/4,-y,0)', '(1/4,y,-1/2)'], }, 'b': { 'multiplicity': 4, - 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(1/2,0,0)', - '(1/2,-1/2,1/2)' - ] + 'site_symmetry': '-1', + 'coords_xyz': ['(0,1/2,0)', '(0,1/2,-1/2)', '(1/2,1/2,-1/2)', '(1/2,1/2,0)'], }, 'a': { 'multiplicity': 4, - 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(0,0,0)', - '(0,-1/2,1/2)' - ] - } - } + 'site_symmetry': '-1', + 'coords_xyz': ['(0,0,0)', '(0,0,-1/2)', '(1/2,0,-1/2)', '(1/2,0,0)'], + }, + }, }, - (65, 'abc'): { - 'IT_number': 65, - 'setting': 0, - 'IT_coordinate_system_code': 'abc', - 'name_H-M_alt': 'C m m m', + (57, 'cab'): { + 'IT_number': 57, + 'setting': 2, + 'IT_coordinate_system_code': 'cab', + 'name_H-M_alt': 'P m c a', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'r': { - 'multiplicity': 16, + 'e': { + 'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(-x,-y,z)', - '(-x,y,-z)', - '(x,-y,-z)', + '(x+1/2,-y,-z)', + '(-x+1/2,-y,z+1/2)', + '(-x,y,-z+1/2)', '(-x,-y,-z)', - '(x,y,-z)', - '(x,-y,z)', - '(-x,y,z)' - ] - }, - 'q': { - 'multiplicity': 8, - 'site_symmetry': '..m', - 'coords_xyz': [ - '(x,y,1/2)', - '(-x,-y,1/2)', - '(-x,y,1/2)', - '(x,-y,1/2)' - ] + '(-x+1/2,y,z)', + '(x+1/2,y,-z+1/2)', + '(x,-y,z+1/2)', + ], }, - 'p': { - 'multiplicity': 8, + 'd': { + 'multiplicity': 4, 'site_symmetry': '..m', - 'coords_xyz': [ - '(x,y,0)', - '(-x,-y,0)', - '(-x,y,0)', - '(x,-y,0)' - ] - }, - 'o': { - 'multiplicity': 8, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,0,z)', - '(-x,0,z)', - '(-x,0,-z)', - '(x,0,-z)' - ] - }, - 'n': { - 'multiplicity': 8, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(0,y,z)', - '(0,-y,z)', - '(0,y,-z)', - '(0,-y,-z)' - ] - }, - 'm': { - 'multiplicity': 8, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/4,1/4,z)', - '(3/4,1/4,-z)', - '(3/4,3/4,-z)', - '(1/4,3/4,z)' - ] + 'coords_xyz': ['(1/4,y,z)', '(3/4,-y,-z)', '(1/4,-y,z+1/2)', '(3/4,y,-z+1/2)'], }, - 'l': { + 'c': { 'multiplicity': 4, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(0,1/2,z)', - '(0,1/2,-z)' - ] + 'site_symmetry': '2..', + 'coords_xyz': ['(0,y,1/4)', '(1/2,-y,3/4)', '(0,-y,3/4)', '(1/2,y,1/4)'], }, - 'k': { + 'b': { 'multiplicity': 4, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)' - ] + 'site_symmetry': '-1', + 'coords_xyz': ['(0,1/2,0)', '(1/2,1/2,0)', '(1/2,1/2,1/2)', '(0,1/2,1/2)'], }, - 'j': { + 'a': { 'multiplicity': 4, - 'site_symmetry': 'm2m', + 'site_symmetry': '-1', + 'coords_xyz': ['(0,0,0)', '(1/2,0,0)', '(1/2,0,1/2)', '(0,0,1/2)'], + }, + }, + }, + (57, '-cba'): { + 'IT_number': 57, + 'setting': 3, + 'IT_coordinate_system_code': '-cba', + 'name_H-M_alt': 'P m a b', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'e': { + 'multiplicity': 8, + 'site_symmetry': '1', 'coords_xyz': [ - '(0,y,1/2)', - '(0,-y,1/2)' - ] + '(x,y,z)', + '(x-1/2,-y,-z)', + '(-x-1/2,y+1/2,-z)', + '(-x,-y+1/2,z)', + '(-x,-y,-z)', + '(-x-1/2,y,z)', + '(x-1/2,-y+1/2,z)', + '(x,y+1/2,-z)', + ], }, - 'i': { + 'd': { 'multiplicity': 4, - 'site_symmetry': 'm2m', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y,0)' - ] + 'site_symmetry': '..m', + 'coords_xyz': ['(-1/4,y,z)', '(-3/4,-y,-z)', '(-1/4,y+1/2,-z)', '(-3/4,-y+1/2,z)'], }, - 'h': { + 'c': { 'multiplicity': 4, - 'site_symmetry': '2mm', - 'coords_xyz': [ - '(x,0,1/2)', - '(-x,0,1/2)' - ] + 'site_symmetry': '2..', + 'coords_xyz': ['(0,1/4,z)', '(-1/2,3/4,-z)', '(0,3/4,-z)', '(-1/2,1/4,z)'], }, - 'g': { + 'b': { 'multiplicity': 4, - 'site_symmetry': '2mm', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)' - ] + 'site_symmetry': '-1', + 'coords_xyz': ['(0,0,1/2)', '(-1/2,0,1/2)', '(-1/2,1/2,1/2)', '(0,1/2,1/2)'], }, - 'f': { + 'a': { 'multiplicity': 4, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(1/4,1/4,1/2)', - '(3/4,1/4,1/2)' - ] + 'site_symmetry': '-1', + 'coords_xyz': ['(0,0,0)', '(-1/2,0,0)', '(-1/2,1/2,0)', '(0,1/2,0)'], }, + }, + }, + (57, 'bca'): { + 'IT_number': 57, + 'setting': 4, + 'IT_coordinate_system_code': 'bca', + 'name_H-M_alt': 'P b m a', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { 'e': { - 'multiplicity': 4, - 'site_symmetry': '..2/m', + 'multiplicity': 8, + 'site_symmetry': '1', 'coords_xyz': [ - '(1/4,1/4,0)', - '(3/4,1/4,0)' - ] + '(x,y,z)', + '(-x,y+1/2,-z)', + '(x+1/2,-y+1/2,-z)', + '(-x+1/2,-y,z)', + '(-x,-y,-z)', + '(x,-y+1/2,z)', + '(-x+1/2,y+1/2,z)', + '(x+1/2,y,-z)', + ], }, 'd': { - 'multiplicity': 2, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(0,0,1/2)' - ] + 'multiplicity': 4, + 'site_symmetry': '..m', + 'coords_xyz': ['(x,1/4,z)', '(-x,3/4,-z)', '(x+1/2,1/4,-z)', '(-x+1/2,3/4,z)'], }, 'c': { - 'multiplicity': 2, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(1/2,0,1/2)' - ] + 'multiplicity': 4, + 'site_symmetry': '2..', + 'coords_xyz': ['(1/4,0,z)', '(3/4,1/2,-z)', '(3/4,0,-z)', '(1/4,1/2,z)'], }, 'b': { - 'multiplicity': 2, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(1/2,0,0)' - ] + 'multiplicity': 4, + 'site_symmetry': '-1', + 'coords_xyz': ['(0,0,1/2)', '(0,1/2,1/2)', '(1/2,1/2,1/2)', '(1/2,0,1/2)'], }, 'a': { - 'multiplicity': 2, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'multiplicity': 4, + 'site_symmetry': '-1', + 'coords_xyz': ['(0,0,0)', '(0,1/2,0)', '(1/2,1/2,0)', '(1/2,0,0)'], + }, + }, }, - (65, 'ba-c'): { - 'IT_number': 65, - 'setting': 1, - 'IT_coordinate_system_code': 'ba-c', - 'name_H-M_alt': 'C m m m', + (57, 'a-cb'): { + 'IT_number': 57, + 'setting': 5, + 'IT_coordinate_system_code': 'a-cb', + 'name_H-M_alt': 'P c m b', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'r': { - 'multiplicity': 16, + 'e': { + 'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(-x,-y,z)', - '(x,-y,-z)', - '(-x,y,-z)', + '(-x,y-1/2,-z)', + '(-x,-y-1/2,z+1/2)', + '(x,-y,-z+1/2)', '(-x,-y,-z)', - '(x,y,-z)', - '(-x,y,z)', - '(x,-y,z)' - ] - }, - 'q': { - 'multiplicity': 8, - 'site_symmetry': '..m', - 'coords_xyz': [ - '(x,y,-1/2)', - '(-x,-y,-1/2)', - '(x,-y,-1/2)', - '(-x,y,-1/2)' - ] - }, - 'p': { - 'multiplicity': 8, - 'site_symmetry': '..m', - 'coords_xyz': [ - '(x,y,0)', - '(-x,-y,0)', - '(x,-y,0)', - '(-x,y,0)' - ] - }, - 'o': { - 'multiplicity': 8, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(0,y,z)', - '(0,-y,z)', - '(0,-y,-z)', - '(0,y,-z)' - ] - }, - 'n': { - 'multiplicity': 8, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,0,z)', - '(-x,0,z)', - '(x,0,-z)', - '(-x,0,-z)' - ] - }, - 'm': { - 'multiplicity': 8, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/4,1/4,z)', - '(1/4,3/4,-z)', - '(3/4,3/4,-z)', - '(3/4,1/4,z)' - ] + '(x,-y-1/2,z)', + '(x,y-1/2,-z+1/2)', + '(-x,y,z+1/2)', + ], }, - 'l': { + 'd': { 'multiplicity': 4, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(1/2,0,z)', - '(1/2,0,-z)' - ] + 'site_symmetry': '..m', + 'coords_xyz': ['(x,-1/4,z)', '(-x,-3/4,-z)', '(-x,-1/4,z+1/2)', '(x,-3/4,-z+1/2)'], }, - 'k': { + 'c': { 'multiplicity': 4, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)' - ] + 'site_symmetry': '2..', + 'coords_xyz': ['(x,0,1/4)', '(-x,-1/2,3/4)', '(-x,0,3/4)', '(x,-1/2,1/4)'], }, - 'j': { + 'b': { 'multiplicity': 4, - 'site_symmetry': 'm2m', - 'coords_xyz': [ - '(x,0,-1/2)', - '(-x,0,-1/2)' - ] + 'site_symmetry': '-1', + 'coords_xyz': ['(1/2,0,0)', '(1/2,-1/2,0)', '(1/2,-1/2,1/2)', '(1/2,0,1/2)'], }, - 'i': { + 'a': { 'multiplicity': 4, - 'site_symmetry': 'm2m', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)' - ] + 'site_symmetry': '-1', + 'coords_xyz': ['(0,0,0)', '(0,-1/2,0)', '(0,-1/2,1/2)', '(0,0,1/2)'], }, + }, + }, + (58, 'abc'): { + 'IT_number': 58, + 'setting': 0, + 'IT_coordinate_system_code': 'abc', + 'name_H-M_alt': 'P n n m', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { 'h': { - 'multiplicity': 4, - 'site_symmetry': '2mm', + 'multiplicity': 8, + 'site_symmetry': '1', 'coords_xyz': [ - '(0,y,-1/2)', - '(0,-y,-1/2)' - ] + '(x,y,z)', + '(-x,-y,z)', + '(-x+1/2,y+1/2,-z+1/2)', + '(x+1/2,-y+1/2,-z+1/2)', + '(-x,-y,-z)', + '(x,y,-z)', + '(x+1/2,-y+1/2,z+1/2)', + '(-x+1/2,y+1/2,z+1/2)', + ], }, 'g': { 'multiplicity': 4, - 'site_symmetry': '2mm', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y,0)' - ] + 'site_symmetry': '..m', + 'coords_xyz': ['(x,y,0)', '(-x,-y,0)', '(-x+1/2,y+1/2,1/2)', '(x+1/2,-y+1/2,1/2)'], }, 'f': { 'multiplicity': 4, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(1/4,1/4,-1/2)', - '(1/4,3/4,-1/2)' - ] + 'site_symmetry': '..2', + 'coords_xyz': ['(0,1/2,z)', '(1/2,0,-z+1/2)', '(0,1/2,-z)', '(1/2,0,z+1/2)'], }, 'e': { 'multiplicity': 4, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(1/4,1/4,0)', - '(1/4,3/4,0)' - ] + 'site_symmetry': '..2', + 'coords_xyz': ['(0,0,z)', '(1/2,1/2,-z+1/2)', '(0,0,-z)', '(1/2,1/2,z+1/2)'], }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': 'mmm', + 'd': {'multiplicity': 2, 'site_symmetry': '..2/m', 'coords_xyz': ['(0,1/2,1/2)', '(1/2,0,0)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '..2/m', 'coords_xyz': ['(0,1/2,0)', '(1/2,0,1/2)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '..2/m', 'coords_xyz': ['(0,0,1/2)', '(1/2,1/2,0)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '..2/m', 'coords_xyz': ['(0,0,0)', '(1/2,1/2,1/2)']}, + }, + }, + (58, 'ba-c'): { + 'IT_number': 58, + 'setting': 1, + 'IT_coordinate_system_code': 'ba-c', + 'name_H-M_alt': 'P n n m', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'h': { + 'multiplicity': 8, + 'site_symmetry': '1', 'coords_xyz': [ - '(0,0,-1/2)' - ] + '(x,y,z)', + '(-x,-y,z)', + '(x+1/2,-y+1/2,-z-1/2)', + '(-x+1/2,y+1/2,-z-1/2)', + '(-x,-y,-z)', + '(x,y,-z)', + '(-x+1/2,y+1/2,z-1/2)', + '(x+1/2,-y+1/2,z-1/2)', + ], }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(0,1/2,-1/2)' - ] + 'g': { + 'multiplicity': 4, + 'site_symmetry': '..m', + 'coords_xyz': ['(x,y,0)', '(-x,-y,0)', '(x+1/2,-y+1/2,-1/2)', '(-x+1/2,y+1/2,-1/2)'], }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(0,1/2,0)' - ] + 'f': { + 'multiplicity': 4, + 'site_symmetry': '..2', + 'coords_xyz': ['(1/2,0,z)', '(0,1/2,-z-1/2)', '(1/2,0,-z)', '(0,1/2,z-1/2)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'e': { + 'multiplicity': 4, + 'site_symmetry': '..2', + 'coords_xyz': ['(0,0,z)', '(1/2,1/2,-z-1/2)', '(0,0,-z)', '(1/2,1/2,z-1/2)'], + }, + 'd': {'multiplicity': 2, 'site_symmetry': '..2/m', 'coords_xyz': ['(1/2,0,-1/2)', '(0,1/2,0)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '..2/m', 'coords_xyz': ['(1/2,0,0)', '(0,1/2,-1/2)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '..2/m', 'coords_xyz': ['(0,0,-1/2)', '(1/2,1/2,0)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '..2/m', 'coords_xyz': ['(0,0,0)', '(1/2,1/2,-1/2)']}, + }, }, - (65, 'cab'): { - 'IT_number': 65, + (58, 'cab'): { + 'IT_number': 58, 'setting': 2, 'IT_coordinate_system_code': 'cab', - 'name_H-M_alt': 'A m m m', + 'name_H-M_alt': 'P m n n', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'r': { - 'multiplicity': 16, + 'h': { + 'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', '(x,-y,-z)', - '(-x,-y,z)', - '(-x,y,-z)', + '(-x+1/2,-y+1/2,z+1/2)', + '(-x+1/2,y+1/2,-z+1/2)', '(-x,-y,-z)', '(-x,y,z)', - '(x,y,-z)', - '(x,-y,z)' - ] + '(x+1/2,y+1/2,-z+1/2)', + '(x+1/2,-y+1/2,z+1/2)', + ], }, - 'q': { - 'multiplicity': 8, + 'g': { + 'multiplicity': 4, 'site_symmetry': '..m', - 'coords_xyz': [ - '(1/2,y,z)', - '(1/2,-y,-z)', - '(1/2,-y,z)', - '(1/2,y,-z)' - ] + 'coords_xyz': ['(0,y,z)', '(0,-y,-z)', '(1/2,-y+1/2,z+1/2)', '(1/2,y+1/2,-z+1/2)'], }, - 'p': { - 'multiplicity': 8, - 'site_symmetry': '..m', - 'coords_xyz': [ - '(0,y,z)', - '(0,-y,-z)', - '(0,-y,z)', - '(0,y,-z)' - ] + 'f': { + 'multiplicity': 4, + 'site_symmetry': '..2', + 'coords_xyz': ['(x,0,1/2)', '(-x+1/2,1/2,0)', '(-x,0,1/2)', '(x+1/2,1/2,0)'], }, - 'o': { - 'multiplicity': 8, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,y,0)', - '(x,-y,0)', - '(-x,-y,0)', - '(-x,y,0)' - ] + 'e': { + 'multiplicity': 4, + 'site_symmetry': '..2', + 'coords_xyz': ['(x,0,0)', '(-x+1/2,1/2,1/2)', '(-x,0,0)', '(x+1/2,1/2,1/2)'], }, - 'n': { + 'd': {'multiplicity': 2, 'site_symmetry': '..2/m', 'coords_xyz': ['(1/2,0,1/2)', '(0,1/2,0)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '..2/m', 'coords_xyz': ['(0,0,1/2)', '(1/2,1/2,0)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '..2/m', 'coords_xyz': ['(1/2,0,0)', '(0,1/2,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '..2/m', 'coords_xyz': ['(0,0,0)', '(1/2,1/2,1/2)']}, + }, + }, + (58, '-cba'): { + 'IT_number': 58, + 'setting': 3, + 'IT_coordinate_system_code': '-cba', + 'name_H-M_alt': 'P m n n', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'h': { 'multiplicity': 8, - 'site_symmetry': 'm..', + 'site_symmetry': '1', 'coords_xyz': [ - '(x,0,z)', - '(x,0,-z)', - '(-x,0,z)', - '(-x,0,-z)' - ] + '(x,y,z)', + '(x,-y,-z)', + '(-x-1/2,y+1/2,-z+1/2)', + '(-x-1/2,-y+1/2,z+1/2)', + '(-x,-y,-z)', + '(-x,y,z)', + '(x-1/2,-y+1/2,z+1/2)', + '(x-1/2,y+1/2,-z+1/2)', + ], }, - 'm': { - 'multiplicity': 8, + 'g': { + 'multiplicity': 4, + 'site_symmetry': '..m', + 'coords_xyz': ['(0,y,z)', '(0,-y,-z)', '(-1/2,y+1/2,-z+1/2)', '(-1/2,-y+1/2,z+1/2)'], + }, + 'f': { + 'multiplicity': 4, 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,1/4,1/4)', - '(-x,3/4,1/4)', - '(-x,3/4,3/4)', - '(x,1/4,3/4)' - ] + 'coords_xyz': ['(x,1/2,0)', '(-x-1/2,0,1/2)', '(-x,1/2,0)', '(x-1/2,0,1/2)'], }, - 'l': { + 'e': { 'multiplicity': 4, - 'site_symmetry': 'mm2', + 'site_symmetry': '..2', + 'coords_xyz': ['(x,0,0)', '(-x-1/2,1/2,1/2)', '(-x,0,0)', '(x-1/2,1/2,1/2)'], + }, + 'd': {'multiplicity': 2, 'site_symmetry': '..2/m', 'coords_xyz': ['(-1/2,1/2,0)', '(0,0,1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '..2/m', 'coords_xyz': ['(0,1/2,0)', '(-1/2,0,1/2)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '..2/m', 'coords_xyz': ['(-1/2,0,0)', '(0,1/2,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '..2/m', 'coords_xyz': ['(0,0,0)', '(-1/2,1/2,1/2)']}, + }, + }, + (58, 'bca'): { + 'IT_number': 58, + 'setting': 4, + 'IT_coordinate_system_code': 'bca', + 'name_H-M_alt': 'P n m n', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'h': { + 'multiplicity': 8, + 'site_symmetry': '1', 'coords_xyz': [ - '(x,0,1/2)', - '(-x,0,1/2)' - ] + '(x,y,z)', + '(-x,y,-z)', + '(x+1/2,-y+1/2,-z+1/2)', + '(-x+1/2,-y+1/2,z+1/2)', + '(-x,-y,-z)', + '(x,-y,z)', + '(-x+1/2,y+1/2,z+1/2)', + '(x+1/2,y+1/2,-z+1/2)', + ], }, - 'k': { + 'g': { 'multiplicity': 4, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)' - ] + 'site_symmetry': '..m', + 'coords_xyz': ['(x,0,z)', '(-x,0,-z)', '(x+1/2,1/2,-z+1/2)', '(-x+1/2,1/2,z+1/2)'], }, - 'j': { + 'f': { 'multiplicity': 4, - 'site_symmetry': 'm2m', - 'coords_xyz': [ - '(1/2,0,z)', - '(1/2,0,-z)' - ] + 'site_symmetry': '..2', + 'coords_xyz': ['(1/2,y,0)', '(0,-y+1/2,1/2)', '(1/2,-y,0)', '(0,y+1/2,1/2)'], }, - 'i': { + 'e': { 'multiplicity': 4, - 'site_symmetry': 'm2m', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)' - ] + 'site_symmetry': '..2', + 'coords_xyz': ['(0,y,0)', '(1/2,-y+1/2,1/2)', '(0,-y,0)', '(1/2,y+1/2,1/2)'], }, + 'd': {'multiplicity': 2, 'site_symmetry': '..2/m', 'coords_xyz': ['(1/2,1/2,0)', '(0,0,1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '..2/m', 'coords_xyz': ['(1/2,0,0)', '(0,1/2,1/2)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '..2/m', 'coords_xyz': ['(0,1/2,0)', '(1/2,0,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '..2/m', 'coords_xyz': ['(0,0,0)', '(1/2,1/2,1/2)']}, + }, + }, + (58, 'a-cb'): { + 'IT_number': 58, + 'setting': 5, + 'IT_coordinate_system_code': 'a-cb', + 'name_H-M_alt': 'P n m n', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { 'h': { - 'multiplicity': 4, - 'site_symmetry': '2mm', + 'multiplicity': 8, + 'site_symmetry': '1', 'coords_xyz': [ - '(1/2,y,0)', - '(1/2,-y,0)' - ] + '(x,y,z)', + '(-x,y,-z)', + '(-x+1/2,-y-1/2,z+1/2)', + '(x+1/2,-y-1/2,-z+1/2)', + '(-x,-y,-z)', + '(x,-y,z)', + '(x+1/2,y-1/2,-z+1/2)', + '(-x+1/2,y-1/2,z+1/2)', + ], }, 'g': { 'multiplicity': 4, - 'site_symmetry': '2mm', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y,0)' - ] + 'site_symmetry': '..m', + 'coords_xyz': ['(x,0,z)', '(-x,0,-z)', '(-x+1/2,-1/2,z+1/2)', '(x+1/2,-1/2,-z+1/2)'], }, 'f': { 'multiplicity': 4, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(1/2,1/4,1/4)', - '(1/2,3/4,1/4)' - ] + 'site_symmetry': '..2', + 'coords_xyz': ['(0,y,1/2)', '(1/2,-y-1/2,0)', '(0,-y,1/2)', '(1/2,y-1/2,0)'], }, 'e': { 'multiplicity': 4, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(0,1/4,1/4)', - '(0,3/4,1/4)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(1/2,0,0)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(1/2,1/2,0)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(0,1/2,0)' - ] + 'site_symmetry': '..2', + 'coords_xyz': ['(0,y,0)', '(1/2,-y-1/2,1/2)', '(0,-y,0)', '(1/2,y-1/2,1/2)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'd': {'multiplicity': 2, 'site_symmetry': '..2/m', 'coords_xyz': ['(0,-1/2,1/2)', '(1/2,0,0)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '..2/m', 'coords_xyz': ['(0,0,1/2)', '(1/2,-1/2,0)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '..2/m', 'coords_xyz': ['(0,-1/2,0)', '(1/2,0,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '..2/m', 'coords_xyz': ['(0,0,0)', '(1/2,-1/2,1/2)']}, + }, }, - (65, '-cba'): { - 'IT_number': 65, - 'setting': 3, - 'IT_coordinate_system_code': '-cba', - 'name_H-M_alt': 'A m m m', + (59, '1abc'): { + 'IT_number': 59, + 'setting': 6, + 'IT_coordinate_system_code': '1abc', + 'name_H-M_alt': 'P m m n', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'r': { - 'multiplicity': 16, + 'g': { + 'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(x,-y,-z)', - '(-x,y,-z)', '(-x,-y,z)', - '(-x,-y,-z)', - '(-x,y,z)', + '(-x+1/2,y+1/2,-z)', + '(x+1/2,-y+1/2,-z)', + '(-x+1/2,-y+1/2,-z)', + '(x+1/2,y+1/2,-z)', '(x,-y,z)', - '(x,y,-z)' - ] - }, - 'q': { - 'multiplicity': 8, - 'site_symmetry': '..m', - 'coords_xyz': [ - '(-1/2,y,z)', - '(-1/2,-y,-z)', - '(-1/2,y,-z)', - '(-1/2,-y,z)' - ] - }, - 'p': { - 'multiplicity': 8, - 'site_symmetry': '..m', - 'coords_xyz': [ - '(0,y,z)', - '(0,-y,-z)', - '(0,y,-z)', - '(0,-y,z)' - ] + '(-x,y,z)', + ], }, - 'o': { - 'multiplicity': 8, + 'f': { + 'multiplicity': 4, 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,0,z)', - '(x,0,-z)', - '(-x,0,-z)', - '(-x,0,z)' - ] + 'coords_xyz': ['(x,0,z)', '(-x,0,z)', '(-x+1/2,1/2,-z)', '(x+1/2,1/2,-z)'], }, - 'n': { - 'multiplicity': 8, + 'e': { + 'multiplicity': 4, 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,y,0)', - '(x,-y,0)', - '(-x,y,0)', - '(-x,-y,0)' - ] + 'coords_xyz': ['(0,y,z)', '(0,-y,z)', '(1/2,y+1/2,-z)', '(1/2,-y+1/2,-z)'], }, - 'm': { - 'multiplicity': 8, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,1/4,1/4)', - '(-x,1/4,3/4)', - '(-x,3/4,3/4)', - '(x,3/4,1/4)' - ] + 'd': { + 'multiplicity': 4, + 'site_symmetry': '-1', + 'coords_xyz': ['(1/4,1/4,1/2)', '(3/4,3/4,1/2)', '(1/4,3/4,1/2)', '(3/4,1/4,1/2)'], }, - 'l': { + 'c': { 'multiplicity': 4, - 'site_symmetry': 'mm2', + 'site_symmetry': '-1', + 'coords_xyz': ['(1/4,1/4,0)', '(3/4,3/4,0)', '(1/4,3/4,0)', '(3/4,1/4,0)'], + }, + 'b': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(0,1/2,z)', '(1/2,0,-z)']}, + 'a': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(0,0,z)', '(1/2,1/2,-z)']}, + }, + }, + (59, '2abc'): { + 'IT_number': 59, + 'setting': 12, + 'IT_coordinate_system_code': '2abc', + 'name_H-M_alt': 'P m m n', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'g': { + 'multiplicity': 8, + 'site_symmetry': '1', 'coords_xyz': [ - '(x,1/2,0)', - '(-x,1/2,0)' - ] + '(x,y,z)', + '(-x+1/2,-y+1/2,z)', + '(-x,y+1/2,-z)', + '(x+1/2,-y,-z)', + '(-x,-y,-z)', + '(x+1/2,y+1/2,-z)', + '(x,-y+1/2,z)', + '(-x+1/2,y,z)', + ], }, - 'k': { + 'f': { 'multiplicity': 4, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)' - ] + 'site_symmetry': '.m.', + 'coords_xyz': ['(x,1/4,z)', '(-x+1/2,1/4,z)', '(-x,3/4,-z)', '(x+1/2,3/4,-z)'], }, - 'j': { + 'e': { 'multiplicity': 4, - 'site_symmetry': 'm2m', - 'coords_xyz': [ - '(-1/2,y,0)', - '(-1/2,-y,0)' - ] + 'site_symmetry': 'm..', + 'coords_xyz': ['(1/4,y,z)', '(1/4,-y+1/2,z)', '(3/4,y+1/2,-z)', '(3/4,-y,-z)'], }, - 'i': { + 'd': { 'multiplicity': 4, - 'site_symmetry': 'm2m', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y,0)' - ] + 'site_symmetry': '-1', + 'coords_xyz': ['(0,0,1/2)', '(1/2,1/2,1/2)', '(0,1/2,1/2)', '(1/2,0,1/2)'], }, - 'h': { + 'c': { 'multiplicity': 4, - 'site_symmetry': '2mm', - 'coords_xyz': [ - '(-1/2,0,z)', - '(-1/2,0,-z)' - ] + 'site_symmetry': '-1', + 'coords_xyz': ['(0,0,0)', '(1/2,1/2,0)', '(0,1/2,0)', '(1/2,0,0)'], }, + 'b': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(1/4,3/4,z)', '(3/4,1/4,-z)']}, + 'a': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(1/4,1/4,z)', '(3/4,3/4,-z)']}, + }, + }, + (59, '1ba-c'): { + 'IT_number': 59, + 'setting': 7, + 'IT_coordinate_system_code': '1ba-c', + 'name_H-M_alt': 'P m m n', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { 'g': { - 'multiplicity': 4, - 'site_symmetry': '2mm', + 'multiplicity': 8, + 'site_symmetry': '1', 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)' - ] + '(x,y,z)', + '(-x,-y,z)', + '(x+1/2,-y+1/2,-z)', + '(-x+1/2,y+1/2,-z)', + '(-x+1/2,-y+1/2,-z)', + '(x+1/2,y+1/2,-z)', + '(-x,y,z)', + '(x,-y,z)', + ], }, 'f': { 'multiplicity': 4, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(-1/2,1/4,1/4)', - '(-1/2,1/4,3/4)' - ] + 'site_symmetry': '.m.', + 'coords_xyz': ['(0,y,z)', '(0,-y,z)', '(1/2,-y+1/2,-z)', '(1/2,y+1/2,-z)'], }, 'e': { 'multiplicity': 4, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(0,1/4,1/4)', - '(0,1/4,3/4)' - ] + 'site_symmetry': 'm..', + 'coords_xyz': ['(x,0,z)', '(-x,0,z)', '(x+1/2,1/2,-z)', '(-x+1/2,1/2,-z)'], }, 'd': { - 'multiplicity': 2, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(-1/2,0,0)' - ] + 'multiplicity': 4, + 'site_symmetry': '-1', + 'coords_xyz': ['(1/4,1/4,-1/2)', '(3/4,3/4,-1/2)', '(3/4,1/4,-1/2)', '(1/4,3/4,-1/2)'], }, 'c': { - 'multiplicity': 2, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(-1/2,0,1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(0,0,1/2)' - ] + 'multiplicity': 4, + 'site_symmetry': '-1', + 'coords_xyz': ['(1/4,1/4,0)', '(3/4,3/4,0)', '(3/4,1/4,0)', '(1/4,3/4,0)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'b': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(1/2,0,z)', '(0,1/2,-z)']}, + 'a': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(0,0,z)', '(1/2,1/2,-z)']}, + }, }, - (65, 'bca'): { - 'IT_number': 65, - 'setting': 4, - 'IT_coordinate_system_code': 'bca', - 'name_H-M_alt': 'B m m m', + (59, '2ba-c'): { + 'IT_number': 59, + 'setting': 13, + 'IT_coordinate_system_code': '2ba-c', + 'name_H-M_alt': 'P m m n', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'r': { - 'multiplicity': 16, + 'g': { + 'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(-x,y,-z)', - '(x,-y,-z)', - '(-x,-y,z)', + '(-x+1/2,-y+1/2,z)', + '(x+1/2,-y,-z)', + '(-x,y+1/2,-z)', '(-x,-y,-z)', - '(x,-y,z)', - '(-x,y,z)', - '(x,y,-z)' - ] - }, - 'q': { - 'multiplicity': 8, - 'site_symmetry': '..m', - 'coords_xyz': [ - '(x,1/2,z)', - '(-x,1/2,-z)', - '(x,1/2,-z)', - '(-x,1/2,z)' - ] - }, - 'p': { - 'multiplicity': 8, - 'site_symmetry': '..m', - 'coords_xyz': [ - '(x,0,z)', - '(-x,0,-z)', - '(x,0,-z)', - '(-x,0,z)' - ] + '(x+1/2,y+1/2,-z)', + '(-x+1/2,y,z)', + '(x,-y+1/2,z)', + ], }, - 'o': { - 'multiplicity': 8, + 'f': { + 'multiplicity': 4, 'site_symmetry': '.m.', - 'coords_xyz': [ - '(0,y,z)', - '(0,y,-z)', - '(0,-y,-z)', - '(0,-y,z)' - ] + 'coords_xyz': ['(1/4,y,z)', '(1/4,-y+1/2,z)', '(3/4,-y,-z)', '(3/4,y+1/2,-z)'], }, - 'n': { - 'multiplicity': 8, + 'e': { + 'multiplicity': 4, 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,y,0)', - '(-x,y,0)', - '(x,-y,0)', - '(-x,-y,0)' - ] + 'coords_xyz': ['(x,1/4,z)', '(-x+1/2,1/4,z)', '(x+1/2,3/4,-z)', '(-x,3/4,-z)'], }, - 'm': { - 'multiplicity': 8, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/4,y,1/4)', - '(1/4,-y,3/4)', - '(3/4,-y,3/4)', - '(3/4,y,1/4)' - ] + 'd': { + 'multiplicity': 4, + 'site_symmetry': '-1', + 'coords_xyz': ['(0,0,-1/2)', '(1/2,1/2,-1/2)', '(1/2,0,-1/2)', '(0,1/2,-1/2)'], }, - 'l': { + 'c': { 'multiplicity': 4, - 'site_symmetry': 'mm2', + 'site_symmetry': '-1', + 'coords_xyz': ['(0,0,0)', '(1/2,1/2,0)', '(1/2,0,0)', '(0,1/2,0)'], + }, + 'b': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(3/4,1/4,z)', '(1/4,3/4,-z)']}, + 'a': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(1/4,1/4,z)', '(3/4,3/4,-z)']}, + }, + }, + (59, '1cab'): { + 'IT_number': 59, + 'setting': 8, + 'IT_coordinate_system_code': '1cab', + 'name_H-M_alt': 'P n m m', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'g': { + 'multiplicity': 8, + 'site_symmetry': '1', 'coords_xyz': [ - '(1/2,y,0)', - '(1/2,-y,0)' - ] + '(x,y,z)', + '(x,-y,-z)', + '(-x,-y+1/2,z+1/2)', + '(-x,y+1/2,-z+1/2)', + '(-x,-y+1/2,-z+1/2)', + '(-x,y+1/2,z+1/2)', + '(x,y,-z)', + '(x,-y,z)', + ], }, - 'k': { + 'f': { 'multiplicity': 4, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y,0)' - ] + 'site_symmetry': '.m.', + 'coords_xyz': ['(x,y,0)', '(x,-y,0)', '(-x,-y+1/2,1/2)', '(-x,y+1/2,1/2)'], }, - 'j': { + 'e': { 'multiplicity': 4, - 'site_symmetry': 'm2m', - 'coords_xyz': [ - '(x,1/2,0)', - '(-x,1/2,0)' - ] + 'site_symmetry': 'm..', + 'coords_xyz': ['(x,0,z)', '(x,0,-z)', '(-x,1/2,z+1/2)', '(-x,1/2,-z+1/2)'], }, - 'i': { + 'd': { 'multiplicity': 4, - 'site_symmetry': 'm2m', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)' - ] + 'site_symmetry': '-1', + 'coords_xyz': ['(1/2,1/4,1/4)', '(1/2,3/4,3/4)', '(1/2,1/4,3/4)', '(1/2,3/4,1/4)'], }, - 'h': { + 'c': { 'multiplicity': 4, - 'site_symmetry': '2mm', - 'coords_xyz': [ - '(0,1/2,z)', - '(0,1/2,-z)' - ] + 'site_symmetry': '-1', + 'coords_xyz': ['(0,1/4,1/4)', '(0,3/4,3/4)', '(0,1/4,3/4)', '(0,3/4,1/4)'], }, + 'b': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(x,0,1/2)', '(-x,1/2,0)']}, + 'a': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(x,0,0)', '(-x,1/2,1/2)']}, + }, + }, + (59, '2cab'): { + 'IT_number': 59, + 'setting': 14, + 'IT_coordinate_system_code': '2cab', + 'name_H-M_alt': 'P n m m', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { 'g': { - 'multiplicity': 4, - 'site_symmetry': '2mm', + 'multiplicity': 8, + 'site_symmetry': '1', 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)' - ] + '(x,y,z)', + '(x,-y+1/2,-z+1/2)', + '(-x,-y,z+1/2)', + '(-x,y+1/2,-z)', + '(-x,-y,-z)', + '(-x,y+1/2,z+1/2)', + '(x,y,-z+1/2)', + '(x,-y+1/2,z)', + ], }, 'f': { 'multiplicity': 4, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(1/4,1/2,1/4)', - '(1/4,1/2,3/4)' - ] + 'site_symmetry': '.m.', + 'coords_xyz': ['(x,y,1/4)', '(x,-y+1/2,1/4)', '(-x,-y,3/4)', '(-x,y+1/2,3/4)'], }, 'e': { 'multiplicity': 4, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(1/4,0,1/4)', - '(1/4,0,3/4)' - ] + 'site_symmetry': 'm..', + 'coords_xyz': ['(x,1/4,z)', '(x,1/4,-z+1/2)', '(-x,3/4,z+1/2)', '(-x,3/4,-z)'], }, 'd': { - 'multiplicity': 2, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(0,1/2,0)' - ] + 'multiplicity': 4, + 'site_symmetry': '-1', + 'coords_xyz': ['(1/2,0,0)', '(1/2,1/2,1/2)', '(1/2,0,1/2)', '(1/2,1/2,0)'], }, 'c': { - 'multiplicity': 2, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(0,1/2,1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(0,0,1/2)' - ] + 'multiplicity': 4, + 'site_symmetry': '-1', + 'coords_xyz': ['(0,0,0)', '(0,1/2,1/2)', '(0,0,1/2)', '(0,1/2,0)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'b': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(x,1/4,3/4)', '(-x,3/4,1/4)']}, + 'a': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(x,1/4,1/4)', '(-x,3/4,3/4)']}, + }, }, - (65, 'a-cb'): { - 'IT_number': 65, - 'setting': 5, - 'IT_coordinate_system_code': 'a-cb', - 'name_H-M_alt': 'B m m m', + (59, '1-cba'): { + 'IT_number': 59, + 'setting': 9, + 'IT_coordinate_system_code': '1-cba', + 'name_H-M_alt': 'P n m m', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'r': { - 'multiplicity': 16, + 'g': { + 'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(-x,y,-z)', - '(-x,-y,z)', '(x,-y,-z)', - '(-x,-y,-z)', + '(-x,y+1/2,-z+1/2)', + '(-x,-y+1/2,z+1/2)', + '(-x,-y+1/2,-z+1/2)', + '(-x,y+1/2,z+1/2)', '(x,-y,z)', '(x,y,-z)', - '(-x,y,z)' - ] - }, - 'q': { - 'multiplicity': 8, - 'site_symmetry': '..m', - 'coords_xyz': [ - '(x,-1/2,z)', - '(-x,-1/2,-z)', - '(-x,-1/2,z)', - '(x,-1/2,-z)' - ] - }, - 'p': { - 'multiplicity': 8, - 'site_symmetry': '..m', - 'coords_xyz': [ - '(x,0,z)', - '(-x,0,-z)', - '(-x,0,z)', - '(x,0,-z)' - ] - }, - 'o': { - 'multiplicity': 8, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,y,0)', - '(-x,y,0)', - '(-x,-y,0)', - '(x,-y,0)' - ] - }, - 'n': { - 'multiplicity': 8, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(0,y,z)', - '(0,y,-z)', - '(0,-y,z)', - '(0,-y,-z)' - ] - }, - 'm': { - 'multiplicity': 8, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/4,y,1/4)', - '(3/4,-y,1/4)', - '(3/4,-y,3/4)', - '(1/4,y,3/4)' - ] + ], }, - 'l': { - 'multiplicity': 4, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(0,y,1/2)', - '(0,-y,1/2)' - ] - }, - 'k': { + 'f': { 'multiplicity': 4, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y,0)' - ] + 'site_symmetry': '.m.', + 'coords_xyz': ['(x,0,z)', '(x,0,-z)', '(-x,1/2,-z+1/2)', '(-x,1/2,z+1/2)'], }, - 'j': { + 'e': { 'multiplicity': 4, - 'site_symmetry': 'm2m', - 'coords_xyz': [ - '(0,-1/2,z)', - '(0,-1/2,-z)' - ] + 'site_symmetry': 'm..', + 'coords_xyz': ['(x,y,0)', '(x,-y,0)', '(-x,y+1/2,1/2)', '(-x,-y+1/2,1/2)'], }, - 'i': { + 'd': { 'multiplicity': 4, - 'site_symmetry': 'm2m', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)' - ] + 'site_symmetry': '-1', + 'coords_xyz': ['(-1/2,1/4,1/4)', '(-1/2,3/4,3/4)', '(-1/2,3/4,1/4)', '(-1/2,1/4,3/4)'], }, - 'h': { + 'c': { 'multiplicity': 4, - 'site_symmetry': '2mm', - 'coords_xyz': [ - '(x,-1/2,0)', - '(-x,-1/2,0)' - ] + 'site_symmetry': '-1', + 'coords_xyz': ['(0,1/4,1/4)', '(0,3/4,3/4)', '(0,3/4,1/4)', '(0,1/4,3/4)'], }, + 'b': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(x,1/2,0)', '(-x,0,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(x,0,0)', '(-x,1/2,1/2)']}, + }, + }, + (59, '2-cba'): { + 'IT_number': 59, + 'setting': 15, + 'IT_coordinate_system_code': '2-cba', + 'name_H-M_alt': 'P n m m', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { 'g': { - 'multiplicity': 4, - 'site_symmetry': '2mm', + 'multiplicity': 8, + 'site_symmetry': '1', 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)' - ] + '(x,y,z)', + '(x,-y+1/2,-z+1/2)', + '(-x,y+1/2,-z)', + '(-x,-y,z+1/2)', + '(-x,-y,-z)', + '(-x,y+1/2,z+1/2)', + '(x,-y+1/2,z)', + '(x,y,-z+1/2)', + ], }, 'f': { 'multiplicity': 4, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(1/4,-1/2,1/4)', - '(3/4,-1/2,1/4)' - ] + 'site_symmetry': '.m.', + 'coords_xyz': ['(x,1/4,z)', '(x,1/4,-z+1/2)', '(-x,3/4,-z)', '(-x,3/4,z+1/2)'], }, 'e': { 'multiplicity': 4, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(1/4,0,1/4)', - '(3/4,0,1/4)' - ] + 'site_symmetry': 'm..', + 'coords_xyz': ['(x,y,1/4)', '(x,-y+1/2,1/4)', '(-x,y+1/2,3/4)', '(-x,-y,3/4)'], }, 'd': { - 'multiplicity': 2, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(0,-1/2,0)' - ] + 'multiplicity': 4, + 'site_symmetry': '-1', + 'coords_xyz': ['(-1/2,0,0)', '(-1/2,1/2,1/2)', '(-1/2,1/2,0)', '(-1/2,0,1/2)'], }, 'c': { - 'multiplicity': 2, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(1/2,-1/2,0)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(1/2,0,0)' - ] + 'multiplicity': 4, + 'site_symmetry': '-1', + 'coords_xyz': ['(0,0,0)', '(0,1/2,1/2)', '(0,1/2,0)', '(0,0,1/2)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'b': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(x,3/4,1/4)', '(-x,1/4,3/4)']}, + 'a': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(x,1/4,1/4)', '(-x,3/4,3/4)']}, + }, }, - (66, 'abc'): { - 'IT_number': 66, - 'setting': 0, - 'IT_coordinate_system_code': 'abc', - 'name_H-M_alt': 'C c c m', + (59, '1bca'): { + 'IT_number': 59, + 'setting': 10, + 'IT_coordinate_system_code': '1bca', + 'name_H-M_alt': 'P m n m', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'm': { - 'multiplicity': 16, + 'g': { + 'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(-x,-y,z)', - '(-x,y,-z+1/2)', - '(x,-y,-z+1/2)', - '(-x,-y,-z)', + '(-x,y,-z)', + '(x+1/2,-y,-z+1/2)', + '(-x+1/2,-y,z+1/2)', + '(-x+1/2,-y,-z+1/2)', + '(x+1/2,-y,z+1/2)', + '(-x,y,z)', '(x,y,-z)', - '(x,-y,z+1/2)', - '(-x,y,z+1/2)' - ] - }, - 'l': { - 'multiplicity': 8, - 'site_symmetry': '..m', - 'coords_xyz': [ - '(x,y,0)', - '(-x,-y,0)', - '(-x,y,1/2)', - '(x,-y,1/2)' - ] + ], }, - 'k': { - 'multiplicity': 8, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/4,1/4,z)', - '(3/4,1/4,-z+1/2)', - '(3/4,3/4,-z)', - '(1/4,3/4,z+1/2)' - ] + 'f': { + 'multiplicity': 4, + 'site_symmetry': '.m.', + 'coords_xyz': ['(0,y,z)', '(0,y,-z)', '(1/2,-y,-z+1/2)', '(1/2,-y,z+1/2)'], }, - 'j': { - 'multiplicity': 8, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,1/2,z)', - '(0,1/2,-z+1/2)', - '(0,1/2,-z)', - '(0,1/2,z+1/2)' - ] + 'e': { + 'multiplicity': 4, + 'site_symmetry': 'm..', + 'coords_xyz': ['(x,y,0)', '(-x,y,0)', '(x+1/2,-y,1/2)', '(-x+1/2,-y,1/2)'], }, - 'i': { - 'multiplicity': 8, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z+1/2)', - '(0,0,-z)', - '(0,0,z+1/2)' - ] + 'd': { + 'multiplicity': 4, + 'site_symmetry': '-1', + 'coords_xyz': ['(1/4,1/2,1/4)', '(3/4,1/2,3/4)', '(3/4,1/2,1/4)', '(1/4,1/2,3/4)'], }, - 'h': { - 'multiplicity': 8, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(0,y,1/4)', - '(0,-y,1/4)', - '(0,-y,3/4)', - '(0,y,3/4)' - ] + 'c': { + 'multiplicity': 4, + 'site_symmetry': '-1', + 'coords_xyz': ['(1/4,0,1/4)', '(3/4,0,3/4)', '(3/4,0,1/4)', '(1/4,0,3/4)'], }, + 'b': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(1/2,y,0)', '(0,-y,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(0,y,0)', '(1/2,-y,1/2)']}, + }, + }, + (59, '2bca'): { + 'IT_number': 59, + 'setting': 16, + 'IT_coordinate_system_code': '2bca', + 'name_H-M_alt': 'P m n m', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { 'g': { 'multiplicity': 8, - 'site_symmetry': '2..', + 'site_symmetry': '1', 'coords_xyz': [ - '(x,0,1/4)', - '(-x,0,1/4)', - '(-x,0,3/4)', - '(x,0,3/4)' - ] + '(x,y,z)', + '(-x+1/2,y,-z+1/2)', + '(x+1/2,-y,-z)', + '(-x,-y,z+1/2)', + '(-x,-y,-z)', + '(x+1/2,-y,z+1/2)', + '(-x+1/2,y,z)', + '(x,y,-z+1/2)', + ], }, 'f': { 'multiplicity': 4, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(1/4,3/4,0)', - '(3/4,3/4,1/2)' - ] + 'site_symmetry': '.m.', + 'coords_xyz': ['(1/4,y,z)', '(1/4,y,-z+1/2)', '(3/4,-y,-z)', '(3/4,-y,z+1/2)'], }, 'e': { 'multiplicity': 4, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(1/4,1/4,0)', - '(3/4,1/4,1/2)' - ] + 'site_symmetry': 'm..', + 'coords_xyz': ['(x,y,1/4)', '(-x+1/2,y,1/4)', '(x+1/2,-y,3/4)', '(-x,-y,3/4)'], }, 'd': { 'multiplicity': 4, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(0,1/2,0)', - '(0,1/2,1/2)' - ] + 'site_symmetry': '-1', + 'coords_xyz': ['(0,1/2,0)', '(1/2,1/2,1/2)', '(1/2,1/2,0)', '(0,1/2,1/2)'], }, 'c': { 'multiplicity': 4, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(0,0,0)', - '(0,0,1/2)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,1/2,1/4)', - '(0,1/2,3/4)' - ] + 'site_symmetry': '-1', + 'coords_xyz': ['(0,0,0)', '(1/2,0,1/2)', '(1/2,0,0)', '(0,0,1/2)'], }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,1/4)', - '(0,0,3/4)' - ] - } - } + 'b': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(3/4,y,1/4)', '(1/4,-y,3/4)']}, + 'a': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(1/4,y,1/4)', '(3/4,-y,3/4)']}, + }, }, - (66, 'ba-c'): { - 'IT_number': 66, - 'setting': 1, - 'IT_coordinate_system_code': 'ba-c', - 'name_H-M_alt': 'C c c m', + (59, '2a-cb'): { + 'IT_number': 59, + 'setting': 17, + 'IT_coordinate_system_code': '2a-cb', + 'name_H-M_alt': 'P m n m', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'm': { - 'multiplicity': 16, + 'g': { + 'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(-x,-y,z)', - '(x,-y,-z-1/2)', - '(-x,y,-z-1/2)', + '(-x+1/2,y,-z+1/2)', + '(-x,-y,z+1/2)', + '(x+1/2,-y,-z)', '(-x,-y,-z)', - '(x,y,-z)', - '(-x,y,z-1/2)', - '(x,-y,z-1/2)' - ] - }, - 'l': { - 'multiplicity': 8, - 'site_symmetry': '..m', - 'coords_xyz': [ - '(x,y,0)', - '(-x,-y,0)', - '(x,-y,-1/2)', - '(-x,y,-1/2)' - ] - }, - 'k': { - 'multiplicity': 8, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/4,1/4,z)', - '(1/4,3/4,-z-1/2)', - '(3/4,3/4,-z)', - '(3/4,1/4,z-1/2)' - ] - }, - 'j': { - 'multiplicity': 8, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/2,0,z)', - '(1/2,0,-z-1/2)', - '(1/2,0,-z)', - '(1/2,0,z-1/2)' - ] - }, - 'i': { - 'multiplicity': 8, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z-1/2)', - '(0,0,-z)', - '(0,0,z-1/2)' - ] - }, - 'h': { - 'multiplicity': 8, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,0,-1/4)', - '(-x,0,-1/4)', - '(-x,0,-3/4)', - '(x,0,-3/4)' - ] - }, - 'g': { - 'multiplicity': 8, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,y,-1/4)', - '(0,-y,-1/4)', - '(0,-y,-3/4)', - '(0,y,-3/4)' - ] + '(x+1/2,-y,z+1/2)', + '(x,y,-z+1/2)', + '(-x+1/2,y,z)', + ], }, 'f': { 'multiplicity': 4, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(3/4,1/4,0)', - '(3/4,3/4,-1/2)' - ] + 'site_symmetry': '.m.', + 'coords_xyz': ['(x,y,1/4)', '(-x+1/2,y,1/4)', '(-x,-y,3/4)', '(x+1/2,-y,3/4)'], }, 'e': { 'multiplicity': 4, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(1/4,1/4,0)', - '(1/4,3/4,-1/2)' - ] + 'site_symmetry': 'm..', + 'coords_xyz': ['(1/4,y,z)', '(1/4,y,-z+1/2)', '(3/4,-y,z+1/2)', '(3/4,-y,-z)'], }, 'd': { 'multiplicity': 4, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(1/2,0,0)', - '(1/2,0,-1/2)' - ] + 'site_symmetry': '-1', + 'coords_xyz': ['(0,-1/2,0)', '(1/2,-1/2,1/2)', '(0,-1/2,1/2)', '(1/2,-1/2,0)'], }, 'c': { 'multiplicity': 4, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(0,0,0)', - '(0,0,-1/2)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/2,0,-1/4)', - '(1/2,0,-3/4)' - ] + 'site_symmetry': '-1', + 'coords_xyz': ['(0,0,0)', '(1/2,0,1/2)', '(0,0,1/2)', '(1/2,0,0)'], }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,-1/4)', - '(0,0,-3/4)' - ] - } - } + 'b': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(1/4,y,3/4)', '(3/4,-y,1/4)']}, + 'a': {'multiplicity': 2, 'site_symmetry': 'mm2', 'coords_xyz': ['(1/4,y,1/4)', '(3/4,-y,3/4)']}, + }, }, - (66, 'cab'): { - 'IT_number': 66, - 'setting': 2, - 'IT_coordinate_system_code': 'cab', - 'name_H-M_alt': 'A m a a', + (60, 'abc'): { + 'IT_number': 60, + 'setting': 0, + 'IT_coordinate_system_code': 'abc', + 'name_H-M_alt': 'P b c n', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'm': { - 'multiplicity': 16, + 'd': { + 'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(x,-y,-z)', - '(-x+1/2,-y,z)', - '(-x+1/2,y,-z)', + '(-x+1/2,-y+1/2,z+1/2)', + '(-x,y,-z+1/2)', + '(x+1/2,-y+1/2,-z)', '(-x,-y,-z)', - '(-x,y,z)', - '(x+1/2,y,-z)', - '(x+1/2,-y,z)' - ] + '(x+1/2,y+1/2,-z+1/2)', + '(x,-y,z+1/2)', + '(-x+1/2,y+1/2,z)', + ], }, - 'l': { - 'multiplicity': 8, - 'site_symmetry': '..m', - 'coords_xyz': [ - '(0,y,z)', - '(0,-y,-z)', - '(1/2,-y,z)', - '(1/2,y,-z)' - ] + 'c': { + 'multiplicity': 4, + 'site_symmetry': '.2.', + 'coords_xyz': ['(0,y,1/4)', '(1/2,-y+1/2,3/4)', '(0,-y,3/4)', '(1/2,y+1/2,1/4)'], }, - 'k': { - 'multiplicity': 8, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,1/4,1/4)', - '(-x+1/2,3/4,1/4)', - '(-x,3/4,3/4)', - '(x+1/2,1/4,3/4)' - ] + 'b': { + 'multiplicity': 4, + 'site_symmetry': '-1', + 'coords_xyz': ['(0,1/2,0)', '(1/2,0,1/2)', '(0,1/2,1/2)', '(1/2,0,0)'], }, - 'j': { - 'multiplicity': 8, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,0,1/2)', - '(-x+1/2,0,1/2)', - '(-x,0,1/2)', - '(x+1/2,0,1/2)' - ] + 'a': { + 'multiplicity': 4, + 'site_symmetry': '-1', + 'coords_xyz': ['(0,0,0)', '(1/2,1/2,1/2)', '(0,0,1/2)', '(1/2,1/2,0)'], }, - 'i': { + }, + }, + (60, 'ba-c'): { + 'IT_number': 60, + 'setting': 1, + 'IT_coordinate_system_code': 'ba-c', + 'name_H-M_alt': 'P c a n', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'd': { 'multiplicity': 8, - 'site_symmetry': '..2', + 'site_symmetry': '1', 'coords_xyz': [ - '(x,0,0)', - '(-x+1/2,0,0)', - '(-x,0,0)', - '(x+1/2,0,0)' - ] + '(x,y,z)', + '(-x+1/2,-y+1/2,z-1/2)', + '(x,-y,-z-1/2)', + '(-x+1/2,y+1/2,-z)', + '(-x,-y,-z)', + '(x+1/2,y+1/2,-z-1/2)', + '(-x,y,z-1/2)', + '(x+1/2,-y+1/2,z)', + ], }, - 'h': { - 'multiplicity': 8, + 'c': { + 'multiplicity': 4, 'site_symmetry': '.2.', - 'coords_xyz': [ - '(1/4,0,z)', - '(1/4,0,-z)', - '(3/4,0,-z)', - '(3/4,0,z)' - ] + 'coords_xyz': ['(x,0,-1/4)', '(-x+1/2,1/2,-3/4)', '(-x,0,-3/4)', '(x+1/2,1/2,-1/4)'], }, - 'g': { - 'multiplicity': 8, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(1/4,y,0)', - '(1/4,-y,0)', - '(3/4,-y,0)', - '(3/4,y,0)' - ] - }, - 'f': { + 'b': { 'multiplicity': 4, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(0,1/4,3/4)', - '(1/2,3/4,3/4)' - ] + 'site_symmetry': '-1', + 'coords_xyz': ['(1/2,0,0)', '(0,1/2,-1/2)', '(1/2,0,-1/2)', '(0,1/2,0)'], }, - 'e': { + 'a': { 'multiplicity': 4, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(0,1/4,1/4)', - '(1/2,3/4,1/4)' - ] + 'site_symmetry': '-1', + 'coords_xyz': ['(0,0,0)', '(1/2,1/2,-1/2)', '(0,0,-1/2)', '(1/2,1/2,0)'], }, + }, + }, + (60, 'cab'): { + 'IT_number': 60, + 'setting': 2, + 'IT_coordinate_system_code': 'cab', + 'name_H-M_alt': 'P n c a', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { 'd': { - 'multiplicity': 4, - 'site_symmetry': '..2/m', + 'multiplicity': 8, + 'site_symmetry': '1', 'coords_xyz': [ - '(0,0,1/2)', - '(1/2,0,1/2)' - ] + '(x,y,z)', + '(x+1/2,-y+1/2,-z+1/2)', + '(-x+1/2,-y,z)', + '(-x,y+1/2,-z+1/2)', + '(-x,-y,-z)', + '(-x+1/2,y+1/2,z+1/2)', + '(x+1/2,y,-z)', + '(x,-y+1/2,z+1/2)', + ], }, 'c': { 'multiplicity': 4, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,0,0)' - ] + 'site_symmetry': '.2.', + 'coords_xyz': ['(1/4,0,z)', '(3/4,1/2,-z+1/2)', '(3/4,0,-z)', '(1/4,1/2,z+1/2)'], }, 'b': { 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/4,0,1/2)', - '(3/4,0,1/2)' - ] + 'site_symmetry': '-1', + 'coords_xyz': ['(0,0,1/2)', '(1/2,1/2,0)', '(1/2,0,1/2)', '(0,1/2,0)'], }, 'a': { 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/4,0,0)', - '(3/4,0,0)' - ] - } - } + 'site_symmetry': '-1', + 'coords_xyz': ['(0,0,0)', '(1/2,1/2,1/2)', '(1/2,0,0)', '(0,1/2,1/2)'], + }, + }, }, - (66, '-cba'): { - 'IT_number': 66, + (60, '-cba'): { + 'IT_number': 60, 'setting': 3, 'IT_coordinate_system_code': '-cba', - 'name_H-M_alt': 'A m a a', + 'name_H-M_alt': 'P n a b', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'm': { - 'multiplicity': 16, + 'd': { + 'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(x,-y,-z)', + '(x-1/2,-y+1/2,-z+1/2)', '(-x-1/2,y,-z)', - '(-x-1/2,-y,z)', + '(-x,-y+1/2,z+1/2)', '(-x,-y,-z)', - '(-x,y,z)', + '(-x-1/2,y+1/2,z+1/2)', '(x-1/2,-y,z)', - '(x-1/2,y,-z)' - ] + '(x,y+1/2,-z+1/2)', + ], }, - 'l': { - 'multiplicity': 8, - 'site_symmetry': '..m', - 'coords_xyz': [ - '(0,y,z)', - '(0,-y,-z)', - '(-1/2,y,-z)', - '(-1/2,-y,z)' - ] + 'c': { + 'multiplicity': 4, + 'site_symmetry': '.2.', + 'coords_xyz': ['(-1/4,y,0)', '(-3/4,-y+1/2,1/2)', '(-3/4,-y,0)', '(-1/4,y+1/2,1/2)'], }, - 'k': { - 'multiplicity': 8, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,1/4,1/4)', - '(-x-1/2,1/4,3/4)', - '(-x,3/4,3/4)', - '(x-1/2,3/4,1/4)' - ] + 'b': { + 'multiplicity': 4, + 'site_symmetry': '-1', + 'coords_xyz': ['(0,1/2,0)', '(-1/2,0,1/2)', '(-1/2,1/2,0)', '(0,0,1/2)'], }, - 'j': { - 'multiplicity': 8, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,1/2,0)', - '(-x-1/2,1/2,0)', - '(-x,1/2,0)', - '(x-1/2,1/2,0)' - ] + 'a': { + 'multiplicity': 4, + 'site_symmetry': '-1', + 'coords_xyz': ['(0,0,0)', '(-1/2,1/2,1/2)', '(-1/2,0,0)', '(0,1/2,1/2)'], }, - 'i': { + }, + }, + (60, 'bca'): { + 'IT_number': 60, + 'setting': 4, + 'IT_coordinate_system_code': 'bca', + 'name_H-M_alt': 'P b n a', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'd': { 'multiplicity': 8, - 'site_symmetry': '..2', + 'site_symmetry': '1', 'coords_xyz': [ - '(x,0,0)', - '(-x-1/2,0,0)', - '(-x,0,0)', - '(x-1/2,0,0)' - ] + '(x,y,z)', + '(-x+1/2,y+1/2,-z+1/2)', + '(x,-y+1/2,-z)', + '(-x+1/2,-y,z+1/2)', + '(-x,-y,-z)', + '(x+1/2,-y+1/2,z+1/2)', + '(-x,y+1/2,z)', + '(x+1/2,y,-z+1/2)', + ], }, - 'h': { - 'multiplicity': 8, + 'c': { + 'multiplicity': 4, 'site_symmetry': '.2.', - 'coords_xyz': [ - '(-1/4,y,0)', - '(-1/4,-y,0)', - '(-3/4,-y,0)', - '(-3/4,y,0)' - ] - }, - 'g': { - 'multiplicity': 8, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(-1/4,0,z)', - '(-1/4,0,-z)', - '(-3/4,0,-z)', - '(-3/4,0,z)' - ] + 'coords_xyz': ['(x,1/4,0)', '(-x+1/2,3/4,1/2)', '(-x,3/4,0)', '(x+1/2,1/4,1/2)'], }, - 'f': { + 'b': { 'multiplicity': 4, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(0,3/4,1/4)', - '(-1/2,3/4,3/4)' - ] + 'site_symmetry': '-1', + 'coords_xyz': ['(1/2,0,0)', '(0,1/2,1/2)', '(1/2,1/2,0)', '(0,0,1/2)'], }, - 'e': { + 'a': { 'multiplicity': 4, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(0,1/4,1/4)', - '(-1/2,1/4,3/4)' - ] + 'site_symmetry': '-1', + 'coords_xyz': ['(0,0,0)', '(1/2,1/2,1/2)', '(0,1/2,0)', '(1/2,0,1/2)'], }, + }, + }, + (60, 'a-cb'): { + 'IT_number': 60, + 'setting': 5, + 'IT_coordinate_system_code': 'a-cb', + 'name_H-M_alt': 'P c n b', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { 'd': { - 'multiplicity': 4, - 'site_symmetry': '..2/m', + 'multiplicity': 8, + 'site_symmetry': '1', 'coords_xyz': [ - '(0,1/2,0)', - '(-1/2,1/2,0)' - ] + '(x,y,z)', + '(-x+1/2,y-1/2,-z+1/2)', + '(-x,-y-1/2,z)', + '(x+1/2,-y,-z+1/2)', + '(-x,-y,-z)', + '(x+1/2,-y-1/2,z+1/2)', + '(x,y-1/2,-z)', + '(-x+1/2,y,z+1/2)', + ], }, 'c': { 'multiplicity': 4, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(0,0,0)', - '(-1/2,0,0)' - ] + 'site_symmetry': '.2.', + 'coords_xyz': ['(0,-1/4,z)', '(1/2,-3/4,-z+1/2)', '(0,-3/4,-z)', '(1/2,-1/4,z+1/2)'], }, 'b': { 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(-1/4,1/2,0)', - '(-3/4,1/2,0)' - ] + 'site_symmetry': '-1', + 'coords_xyz': ['(0,0,1/2)', '(1/2,-1/2,0)', '(0,-1/2,1/2)', '(1/2,0,0)'], }, 'a': { 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(-1/4,0,0)', - '(-3/4,0,0)' - ] - } - } + 'site_symmetry': '-1', + 'coords_xyz': ['(0,0,0)', '(1/2,-1/2,1/2)', '(0,-1/2,0)', '(1/2,0,1/2)'], + }, + }, }, - (66, 'bca'): { - 'IT_number': 66, - 'setting': 4, - 'IT_coordinate_system_code': 'bca', - 'name_H-M_alt': 'B b m b', + (61, 'abc'): { + 'IT_number': 61, + 'setting': 0, + 'IT_coordinate_system_code': 'abc', + 'name_H-M_alt': 'P b c a', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'm': { - 'multiplicity': 16, + 'c': { + 'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(-x,y,-z)', - '(x,-y+1/2,-z)', - '(-x,-y+1/2,z)', + '(-x+1/2,-y,z+1/2)', + '(-x,y+1/2,-z+1/2)', + '(x+1/2,-y+1/2,-z)', '(-x,-y,-z)', - '(x,-y,z)', - '(-x,y+1/2,z)', - '(x,y+1/2,-z)' - ] + '(x+1/2,y,-z+1/2)', + '(x,-y+1/2,z+1/2)', + '(-x+1/2,y+1/2,z)', + ], }, - 'l': { - 'multiplicity': 8, - 'site_symmetry': '..m', - 'coords_xyz': [ - '(x,0,z)', - '(-x,0,-z)', - '(x,1/2,-z)', - '(-x,1/2,z)' - ] + 'b': { + 'multiplicity': 4, + 'site_symmetry': '-1', + 'coords_xyz': ['(0,0,1/2)', '(1/2,0,0)', '(0,1/2,0)', '(1/2,1/2,1/2)'], }, - 'k': { - 'multiplicity': 8, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/4,y,1/4)', - '(1/4,-y+1/2,3/4)', - '(3/4,-y,3/4)', - '(3/4,y+1/2,1/4)' - ] + 'a': { + 'multiplicity': 4, + 'site_symmetry': '-1', + 'coords_xyz': ['(0,0,0)', '(1/2,0,1/2)', '(0,1/2,1/2)', '(1/2,1/2,0)'], }, - 'j': { + }, + }, + (61, 'ba-c'): { + 'IT_number': 61, + 'setting': 1, + 'IT_coordinate_system_code': 'ba-c', + 'name_H-M_alt': 'P c a b', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'c': { 'multiplicity': 8, - 'site_symmetry': '..2', + 'site_symmetry': '1', 'coords_xyz': [ - '(1/2,y,0)', - '(1/2,-y+1/2,0)', - '(1/2,-y,0)', - '(1/2,y+1/2,0)' - ] + '(x,y,z)', + '(-x,-y+1/2,z-1/2)', + '(x+1/2,-y,-z-1/2)', + '(-x+1/2,y+1/2,-z)', + '(-x,-y,-z)', + '(x,y+1/2,-z-1/2)', + '(-x+1/2,y,z-1/2)', + '(x+1/2,-y+1/2,z)', + ], }, - 'i': { - 'multiplicity': 8, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y+1/2,0)', - '(0,-y,0)', - '(0,y+1/2,0)' - ] + 'b': { + 'multiplicity': 4, + 'site_symmetry': '-1', + 'coords_xyz': ['(0,0,-1/2)', '(0,1/2,0)', '(1/2,0,0)', '(1/2,1/2,-1/2)'], }, - 'h': { - 'multiplicity': 8, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,1/4,0)', - '(-x,1/4,0)', - '(-x,3/4,0)', - '(x,3/4,0)' - ] + 'a': { + 'multiplicity': 4, + 'site_symmetry': '-1', + 'coords_xyz': ['(0,0,0)', '(0,1/2,-1/2)', '(1/2,0,-1/2)', '(1/2,1/2,0)'], }, - 'g': { + }, + }, + (61, 'cab'): { + 'IT_number': 61, + 'setting': 2, + 'IT_coordinate_system_code': 'cab', + 'name_H-M_alt': 'P b c a', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'c': { 'multiplicity': 8, - 'site_symmetry': '2..', + 'site_symmetry': '1', 'coords_xyz': [ - '(0,1/4,z)', - '(0,1/4,-z)', - '(0,3/4,-z)', - '(0,3/4,z)' - ] + '(x,y,z)', + '(x+1/2,-y+1/2,-z)', + '(-x+1/2,-y,z+1/2)', + '(-x,y+1/2,-z+1/2)', + '(-x,-y,-z)', + '(-x+1/2,y+1/2,z)', + '(x+1/2,y,-z+1/2)', + '(x,-y+1/2,z+1/2)', + ], }, - 'f': { + 'b': { 'multiplicity': 4, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(3/4,0,1/4)', - '(3/4,1/2,3/4)' - ] + 'site_symmetry': '-1', + 'coords_xyz': ['(1/2,0,0)', '(0,1/2,0)', '(0,0,1/2)', '(1/2,1/2,1/2)'], }, - 'e': { + 'a': { 'multiplicity': 4, - 'site_symmetry': '..2/m', + 'site_symmetry': '-1', + 'coords_xyz': ['(0,0,0)', '(1/2,1/2,0)', '(1/2,0,1/2)', '(0,1/2,1/2)'], + }, + }, + }, + (61, '-cba'): { + 'IT_number': 61, + 'setting': 3, + 'IT_coordinate_system_code': '-cba', + 'name_H-M_alt': 'P c a b', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'c': { + 'multiplicity': 8, + 'site_symmetry': '1', 'coords_xyz': [ - '(1/4,0,1/4)', - '(1/4,1/2,3/4)' - ] + '(x,y,z)', + '(x-1/2,-y,-z+1/2)', + '(-x-1/2,y+1/2,-z)', + '(-x,-y+1/2,z+1/2)', + '(-x,-y,-z)', + '(-x-1/2,y,z+1/2)', + '(x-1/2,-y+1/2,z)', + '(x,y+1/2,-z+1/2)', + ], }, - 'd': { + 'b': { 'multiplicity': 4, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(1/2,0,0)', - '(1/2,1/2,0)' - ] + 'site_symmetry': '-1', + 'coords_xyz': ['(-1/2,0,0)', '(0,0,1/2)', '(0,1/2,0)', '(-1/2,1/2,1/2)'], + }, + 'a': { + 'multiplicity': 4, + 'site_symmetry': '-1', + 'coords_xyz': ['(0,0,0)', '(-1/2,0,1/2)', '(-1/2,1/2,0)', '(0,1/2,1/2)'], }, + }, + }, + (61, 'bca'): { + 'IT_number': 61, + 'setting': 4, + 'IT_coordinate_system_code': 'bca', + 'name_H-M_alt': 'P b c a', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { 'c': { - 'multiplicity': 4, - 'site_symmetry': '..2/m', + 'multiplicity': 8, + 'site_symmetry': '1', 'coords_xyz': [ - '(0,0,0)', - '(0,1/2,0)' - ] + '(x,y,z)', + '(-x,y+1/2,-z+1/2)', + '(x+1/2,-y+1/2,-z)', + '(-x+1/2,-y,z+1/2)', + '(-x,-y,-z)', + '(x,-y+1/2,z+1/2)', + '(-x+1/2,y+1/2,z)', + '(x+1/2,y,-z+1/2)', + ], }, 'b': { 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/2,1/4,0)', - '(1/2,3/4,0)' - ] + 'site_symmetry': '-1', + 'coords_xyz': ['(0,1/2,0)', '(0,0,1/2)', '(1/2,0,0)', '(1/2,1/2,1/2)'], }, 'a': { 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,1/4,0)', - '(0,3/4,0)' - ] - } - } + 'site_symmetry': '-1', + 'coords_xyz': ['(0,0,0)', '(0,1/2,1/2)', '(1/2,1/2,0)', '(1/2,0,1/2)'], + }, + }, }, - (66, 'a-cb'): { - 'IT_number': 66, + (61, 'a-cb'): { + 'IT_number': 61, 'setting': 5, 'IT_coordinate_system_code': 'a-cb', - 'name_H-M_alt': 'B b m b', + 'name_H-M_alt': 'P c a b', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'm': { - 'multiplicity': 16, + 'c': { + 'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(-x,y,-z)', - '(-x,-y-1/2,z)', - '(x,-y-1/2,-z)', + '(-x+1/2,y-1/2,-z)', + '(-x,-y-1/2,z+1/2)', + '(x+1/2,-y,-z+1/2)', '(-x,-y,-z)', - '(x,-y,z)', - '(x,y-1/2,-z)', - '(-x,y-1/2,z)' - ] + '(x+1/2,-y-1/2,z)', + '(x,y-1/2,-z+1/2)', + '(-x+1/2,y,z+1/2)', + ], }, - 'l': { - 'multiplicity': 8, - 'site_symmetry': '..m', - 'coords_xyz': [ - '(x,0,z)', - '(-x,0,-z)', - '(-x,-1/2,z)', - '(x,-1/2,-z)' - ] + 'b': { + 'multiplicity': 4, + 'site_symmetry': '-1', + 'coords_xyz': ['(0,-1/2,0)', '(1/2,0,0)', '(0,0,1/2)', '(1/2,-1/2,1/2)'], }, - 'k': { - 'multiplicity': 8, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/4,y,1/4)', - '(3/4,-y-1/2,1/4)', - '(3/4,-y,3/4)', - '(1/4,y-1/2,3/4)' - ] + 'a': { + 'multiplicity': 4, + 'site_symmetry': '-1', + 'coords_xyz': ['(0,0,0)', '(1/2,-1/2,0)', '(0,-1/2,1/2)', '(1/2,0,1/2)'], }, - 'j': { + }, + }, + (62, 'abc'): { + 'IT_number': 62, + 'setting': 0, + 'IT_coordinate_system_code': 'abc', + 'name_H-M_alt': 'P n m a', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'd': { 'multiplicity': 8, - 'site_symmetry': '..2', + 'site_symmetry': '1', 'coords_xyz': [ - '(0,y,1/2)', - '(0,-y-1/2,1/2)', - '(0,-y,1/2)', - '(0,y-1/2,1/2)' - ] + '(x,y,z)', + '(-x+1/2,-y,z+1/2)', + '(-x,y+1/2,-z)', + '(x+1/2,-y+1/2,-z+1/2)', + '(-x,-y,-z)', + '(x+1/2,y,-z+1/2)', + '(x,-y+1/2,z)', + '(-x+1/2,y+1/2,z+1/2)', + ], }, - 'i': { - 'multiplicity': 8, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y-1/2,0)', - '(0,-y,0)', - '(0,y-1/2,0)' - ] + 'c': { + 'multiplicity': 4, + 'site_symmetry': '.m.', + 'coords_xyz': ['(x,1/4,z)', '(-x+1/2,3/4,z+1/2)', '(-x,3/4,-z)', '(x+1/2,1/4,-z+1/2)'], }, - 'h': { - 'multiplicity': 8, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(0,-1/4,z)', - '(0,-1/4,-z)', - '(0,-3/4,-z)', - '(0,-3/4,z)' - ] + 'b': { + 'multiplicity': 4, + 'site_symmetry': '-1', + 'coords_xyz': ['(0,0,1/2)', '(1/2,0,0)', '(0,1/2,1/2)', '(1/2,1/2,0)'], }, - 'g': { + 'a': { + 'multiplicity': 4, + 'site_symmetry': '-1', + 'coords_xyz': ['(0,0,0)', '(1/2,0,1/2)', '(0,1/2,0)', '(1/2,1/2,1/2)'], + }, + }, + }, + (62, 'ba-c'): { + 'IT_number': 62, + 'setting': 1, + 'IT_coordinate_system_code': 'ba-c', + 'name_H-M_alt': 'P m n b', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'd': { 'multiplicity': 8, - 'site_symmetry': '2..', + 'site_symmetry': '1', 'coords_xyz': [ - '(x,-1/4,0)', - '(-x,-1/4,0)', - '(-x,-3/4,0)', - '(x,-3/4,0)' - ] + '(x,y,z)', + '(-x,-y+1/2,z-1/2)', + '(x+1/2,-y,-z)', + '(-x+1/2,y+1/2,-z-1/2)', + '(-x,-y,-z)', + '(x,y+1/2,-z-1/2)', + '(-x+1/2,y,z)', + '(x+1/2,-y+1/2,z-1/2)', + ], }, - 'f': { + 'c': { 'multiplicity': 4, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(1/4,0,3/4)', - '(3/4,-1/2,3/4)' - ] + 'site_symmetry': '.m.', + 'coords_xyz': ['(1/4,y,z)', '(3/4,-y+1/2,z-1/2)', '(3/4,-y,-z)', '(1/4,y+1/2,-z-1/2)'], }, - 'e': { + 'b': { 'multiplicity': 4, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(1/4,0,1/4)', - '(3/4,-1/2,1/4)' - ] + 'site_symmetry': '-1', + 'coords_xyz': ['(0,0,-1/2)', '(0,1/2,0)', '(1/2,0,-1/2)', '(1/2,1/2,0)'], }, - 'd': { + 'a': { 'multiplicity': 4, - 'site_symmetry': '..2/m', + 'site_symmetry': '-1', + 'coords_xyz': ['(0,0,0)', '(0,1/2,-1/2)', '(1/2,0,0)', '(1/2,1/2,-1/2)'], + }, + }, + }, + (62, 'cab'): { + 'IT_number': 62, + 'setting': 2, + 'IT_coordinate_system_code': 'cab', + 'name_H-M_alt': 'P b n m', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'd': { + 'multiplicity': 8, + 'site_symmetry': '1', 'coords_xyz': [ - '(0,0,1/2)', - '(0,-1/2,1/2)' - ] + '(x,y,z)', + '(x+1/2,-y+1/2,-z)', + '(-x,-y,z+1/2)', + '(-x+1/2,y+1/2,-z+1/2)', + '(-x,-y,-z)', + '(-x+1/2,y+1/2,z)', + '(x,y,-z+1/2)', + '(x+1/2,-y+1/2,z+1/2)', + ], }, 'c': { 'multiplicity': 4, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(0,0,0)', - '(0,-1/2,0)' - ] + 'site_symmetry': '.m.', + 'coords_xyz': ['(x,y,1/4)', '(x+1/2,-y+1/2,3/4)', '(-x,-y,3/4)', '(-x+1/2,y+1/2,1/4)'], }, 'b': { 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,-1/4,1/2)', - '(0,-3/4,1/2)' - ] + 'site_symmetry': '-1', + 'coords_xyz': ['(1/2,0,0)', '(0,1/2,0)', '(1/2,0,1/2)', '(0,1/2,1/2)'], }, 'a': { 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,-1/4,0)', - '(0,-3/4,0)' - ] - } - } + 'site_symmetry': '-1', + 'coords_xyz': ['(0,0,0)', '(1/2,1/2,0)', '(0,0,1/2)', '(1/2,1/2,1/2)'], + }, + }, }, - (67, 'abc'): { - 'IT_number': 67, - 'setting': 0, - 'IT_coordinate_system_code': 'abc', - 'name_H-M_alt': 'C m m e', + (62, '-cba'): { + 'IT_number': 62, + 'setting': 3, + 'IT_coordinate_system_code': '-cba', + 'name_H-M_alt': 'P c m n', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'o': { - 'multiplicity': 16, + 'd': { + 'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(-x,-y+1/2,z)', + '(x-1/2,-y,-z+1/2)', '(-x,y+1/2,-z)', - '(x,-y,-z)', + '(-x-1/2,-y+1/2,z+1/2)', '(-x,-y,-z)', - '(x,y+1/2,-z)', + '(-x-1/2,y,z+1/2)', '(x,-y+1/2,z)', - '(-x,y,z)' - ] + '(x-1/2,y+1/2,-z+1/2)', + ], }, - 'n': { - 'multiplicity': 8, + 'c': { + 'multiplicity': 4, 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,1/4,z)', - '(-x,1/4,z)', - '(-x,3/4,-z)', - '(x,3/4,-z)' - ] - }, - 'm': { - 'multiplicity': 8, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(0,y,z)', - '(0,-y+1/2,z)', - '(0,y+1/2,-z)', - '(0,-y,-z)' - ] - }, - 'l': { - 'multiplicity': 8, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/4,0,z)', - '(3/4,1/2,-z)', - '(3/4,0,-z)', - '(1/4,1/2,z)' - ] - }, - 'k': { - 'multiplicity': 8, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(1/4,y,1/2)', - '(3/4,-y+1/2,1/2)', - '(3/4,-y,1/2)', - '(1/4,y+1/2,1/2)' - ] + 'coords_xyz': ['(x,1/4,z)', '(x-1/2,3/4,-z+1/2)', '(-x,3/4,-z)', '(-x-1/2,1/4,z+1/2)'], }, - 'j': { - 'multiplicity': 8, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(1/4,y,0)', - '(3/4,-y+1/2,0)', - '(3/4,-y,0)', - '(1/4,y+1/2,0)' - ] + 'b': { + 'multiplicity': 4, + 'site_symmetry': '-1', + 'coords_xyz': ['(-1/2,0,0)', '(0,0,1/2)', '(-1/2,1/2,0)', '(0,1/2,1/2)'], }, - 'i': { - 'multiplicity': 8, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(x,0,1/2)', - '(-x,1/2,1/2)', - '(-x,0,1/2)', - '(x,1/2,1/2)' - ] + 'a': { + 'multiplicity': 4, + 'site_symmetry': '-1', + 'coords_xyz': ['(0,0,0)', '(-1/2,0,1/2)', '(0,1/2,0)', '(-1/2,1/2,1/2)'], }, - 'h': { + }, + }, + (62, 'bca'): { + 'IT_number': 62, + 'setting': 4, + 'IT_coordinate_system_code': 'bca', + 'name_H-M_alt': 'P m c n', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'd': { 'multiplicity': 8, - 'site_symmetry': '2..', + 'site_symmetry': '1', 'coords_xyz': [ - '(x,0,0)', - '(-x,1/2,0)', - '(-x,0,0)', - '(x,1/2,0)' - ] + '(x,y,z)', + '(-x,y+1/2,-z+1/2)', + '(x+1/2,-y,-z)', + '(-x+1/2,-y+1/2,z+1/2)', + '(-x,-y,-z)', + '(x,-y+1/2,z+1/2)', + '(-x+1/2,y,z)', + '(x+1/2,y+1/2,-z+1/2)', + ], }, - 'g': { + 'c': { 'multiplicity': 4, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(0,1/4,z)', - '(0,3/4,-z)' - ] + 'site_symmetry': '.m.', + 'coords_xyz': ['(1/4,y,z)', '(3/4,y+1/2,-z+1/2)', '(3/4,-y,-z)', '(1/4,-y+1/2,z+1/2)'], }, - 'f': { + 'b': { 'multiplicity': 4, - 'site_symmetry': '.2/m.', - 'coords_xyz': [ - '(1/4,1/4,1/2)', - '(3/4,1/4,1/2)' - ] + 'site_symmetry': '-1', + 'coords_xyz': ['(0,1/2,0)', '(0,0,1/2)', '(1/2,1/2,0)', '(1/2,0,1/2)'], }, - 'e': { + 'a': { 'multiplicity': 4, - 'site_symmetry': '.2/m.', - 'coords_xyz': [ - '(1/4,1/4,0)', - '(3/4,1/4,0)' - ] + 'site_symmetry': '-1', + 'coords_xyz': ['(0,0,0)', '(0,1/2,1/2)', '(1/2,0,0)', '(1/2,1/2,1/2)'], }, + }, + }, + (62, 'a-cb'): { + 'IT_number': 62, + 'setting': 5, + 'IT_coordinate_system_code': 'a-cb', + 'name_H-M_alt': 'P n a m', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { 'd': { - 'multiplicity': 4, - 'site_symmetry': '2/m..', + 'multiplicity': 8, + 'site_symmetry': '1', 'coords_xyz': [ - '(0,0,1/2)', - '(0,1/2,1/2)' - ] + '(x,y,z)', + '(-x+1/2,y-1/2,-z)', + '(-x,-y,z+1/2)', + '(x+1/2,-y-1/2,-z+1/2)', + '(-x,-y,-z)', + '(x+1/2,-y-1/2,z)', + '(x,y,-z+1/2)', + '(-x+1/2,y-1/2,z+1/2)', + ], }, 'c': { 'multiplicity': 4, - 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(0,0,0)', - '(0,1/2,0)' - ] + 'site_symmetry': '.m.', + 'coords_xyz': ['(x,y,1/4)', '(-x+1/2,y-1/2,3/4)', '(-x,-y,3/4)', '(x+1/2,-y-1/2,1/4)'], }, 'b': { 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/4,0,1/2)', - '(3/4,0,1/2)' - ] + 'site_symmetry': '-1', + 'coords_xyz': ['(0,-1/2,0)', '(1/2,0,0)', '(0,-1/2,1/2)', '(1/2,0,1/2)'], }, 'a': { 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/4,0,0)', - '(3/4,0,0)' - ] - } - } + 'site_symmetry': '-1', + 'coords_xyz': ['(0,0,0)', '(1/2,-1/2,0)', '(0,0,1/2)', '(1/2,-1/2,1/2)'], + }, + }, }, - (67, 'ba-c'): { - 'IT_number': 67, - 'setting': 1, - 'IT_coordinate_system_code': 'ba-c', - 'name_H-M_alt': 'C m m e', + (63, 'abc'): { + 'IT_number': 63, + 'setting': 0, + 'IT_coordinate_system_code': 'abc', + 'name_H-M_alt': 'C m c m', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'o': { + 'h': { 'multiplicity': 16, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(-x+1/2,-y,z)', - '(x+1/2,-y,-z)', - '(-x,y,-z)', + '(-x,-y,z+1/2)', + '(-x,y,-z+1/2)', + '(x,-y,-z)', '(-x,-y,-z)', - '(x+1/2,y,-z)', - '(-x+1/2,y,z)', - '(x,-y,z)' - ] + '(x,y,-z+1/2)', + '(x,-y,z+1/2)', + '(-x,y,z)', + ], }, - 'n': { + 'g': { 'multiplicity': 8, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(1/4,y,z)', - '(1/4,-y,z)', - '(3/4,-y,-z)', - '(3/4,y,-z)' - ] + 'site_symmetry': '..m', + 'coords_xyz': ['(x,y,1/4)', '(-x,-y,3/4)', '(-x,y,1/4)', '(x,-y,3/4)'], }, - 'm': { + 'f': { 'multiplicity': 8, 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,0,z)', - '(-x+1/2,0,z)', - '(x+1/2,0,-z)', - '(-x,0,-z)' - ] + 'coords_xyz': ['(0,y,z)', '(0,-y,z+1/2)', '(0,y,-z+1/2)', '(0,-y,-z)'], }, - 'l': { + 'e': {'multiplicity': 8, 'site_symmetry': '2..', 'coords_xyz': ['(x,0,0)', '(-x,0,1/2)', '(-x,0,0)', '(x,0,1/2)']}, + 'd': { 'multiplicity': 8, - 'site_symmetry': '..2', + 'site_symmetry': '-1', + 'coords_xyz': ['(1/4,1/4,0)', '(3/4,3/4,1/2)', '(3/4,1/4,1/2)', '(1/4,3/4,0)'], + }, + 'c': {'multiplicity': 4, 'site_symmetry': 'm2m', 'coords_xyz': ['(0,y,1/4)', '(0,-y,3/4)']}, + 'b': {'multiplicity': 4, 'site_symmetry': '2/m..', 'coords_xyz': ['(0,1/2,0)', '(0,1/2,1/2)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '2/m..', 'coords_xyz': ['(0,0,0)', '(0,0,1/2)']}, + }, + }, + (63, 'ba-c'): { + 'IT_number': 63, + 'setting': 1, + 'IT_coordinate_system_code': 'ba-c', + 'name_H-M_alt': 'C c m m', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'h': { + 'multiplicity': 16, + 'site_symmetry': '1', 'coords_xyz': [ - '(0,1/4,z)', - '(1/2,3/4,-z)', - '(0,3/4,-z)', - '(1/2,1/4,z)' - ] + '(x,y,z)', + '(-x,-y,z-1/2)', + '(x,-y,-z-1/2)', + '(-x,y,-z)', + '(-x,-y,-z)', + '(x,y,-z-1/2)', + '(-x,y,z-1/2)', + '(x,-y,z)', + ], }, - 'k': { + 'g': { 'multiplicity': 8, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,1/4,-1/2)', - '(-x+1/2,3/4,-1/2)', - '(-x,3/4,-1/2)', - '(x+1/2,1/4,-1/2)' - ] + 'site_symmetry': '..m', + 'coords_xyz': ['(x,y,-1/4)', '(-x,-y,-3/4)', '(x,-y,-1/4)', '(-x,y,-3/4)'], }, - 'j': { + 'f': { 'multiplicity': 8, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,1/4,0)', - '(-x+1/2,3/4,0)', - '(-x,3/4,0)', - '(x+1/2,1/4,0)' - ] + 'site_symmetry': 'm..', + 'coords_xyz': ['(x,0,z)', '(-x,0,z-1/2)', '(x,0,-z-1/2)', '(-x,0,-z)'], }, - 'i': { + 'e': { 'multiplicity': 8, 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,y,-1/2)', - '(1/2,-y,-1/2)', - '(0,-y,-1/2)', - '(1/2,y,-1/2)' - ] + 'coords_xyz': ['(0,y,0)', '(0,-y,-1/2)', '(0,-y,0)', '(0,y,-1/2)'], }, - 'h': { + 'd': { 'multiplicity': 8, - 'site_symmetry': '2..', + 'site_symmetry': '-1', + 'coords_xyz': ['(1/4,1/4,0)', '(3/4,3/4,-1/2)', '(1/4,3/4,-1/2)', '(3/4,1/4,0)'], + }, + 'c': {'multiplicity': 4, 'site_symmetry': 'm2m', 'coords_xyz': ['(x,0,-1/4)', '(-x,0,-3/4)']}, + 'b': {'multiplicity': 4, 'site_symmetry': '2/m..', 'coords_xyz': ['(1/2,0,0)', '(1/2,0,-1/2)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '2/m..', 'coords_xyz': ['(0,0,0)', '(0,0,-1/2)']}, + }, + }, + (63, 'cab'): { + 'IT_number': 63, + 'setting': 2, + 'IT_coordinate_system_code': 'cab', + 'name_H-M_alt': 'A m m a', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'h': { + 'multiplicity': 16, + 'site_symmetry': '1', 'coords_xyz': [ - '(0,y,0)', - '(1/2,-y,0)', - '(0,-y,0)', - '(1/2,y,0)' - ] + '(x,y,z)', + '(x+1/2,-y,-z)', + '(-x+1/2,-y,z)', + '(-x,y,-z)', + '(-x,-y,-z)', + '(-x+1/2,y,z)', + '(x+1/2,y,-z)', + '(x,-y,z)', + ], }, 'g': { - 'multiplicity': 4, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(1/4,0,z)', - '(3/4,0,-z)' - ] + 'multiplicity': 8, + 'site_symmetry': '..m', + 'coords_xyz': ['(1/4,y,z)', '(3/4,-y,-z)', '(1/4,-y,z)', '(3/4,y,-z)'], }, 'f': { - 'multiplicity': 4, - 'site_symmetry': '.2/m.', - 'coords_xyz': [ - '(1/4,1/4,-1/2)', - '(1/4,3/4,-1/2)' - ] - }, - 'e': { - 'multiplicity': 4, - 'site_symmetry': '.2/m.', - 'coords_xyz': [ - '(1/4,1/4,0)', - '(1/4,3/4,0)' - ] + 'multiplicity': 8, + 'site_symmetry': 'm..', + 'coords_xyz': ['(x,0,z)', '(x+1/2,0,-z)', '(-x+1/2,0,z)', '(-x,0,-z)'], }, + 'e': {'multiplicity': 8, 'site_symmetry': '2..', 'coords_xyz': ['(0,y,0)', '(1/2,-y,0)', '(0,-y,0)', '(1/2,y,0)']}, 'd': { - 'multiplicity': 4, - 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(0,0,-1/2)', - '(1/2,0,-1/2)' - ] - }, - 'c': { - 'multiplicity': 4, - 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,0,0)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,1/4,-1/2)', - '(0,3/4,-1/2)' - ] + 'multiplicity': 8, + 'site_symmetry': '-1', + 'coords_xyz': ['(0,1/4,1/4)', '(1/2,3/4,3/4)', '(1/2,3/4,1/4)', '(0,1/4,3/4)'], }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,1/4,0)', - '(0,3/4,0)' - ] - } - } + 'c': {'multiplicity': 4, 'site_symmetry': 'm2m', 'coords_xyz': ['(1/4,0,z)', '(3/4,0,-z)']}, + 'b': {'multiplicity': 4, 'site_symmetry': '2/m..', 'coords_xyz': ['(0,0,1/2)', '(1/2,0,1/2)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '2/m..', 'coords_xyz': ['(0,0,0)', '(1/2,0,0)']}, + }, }, - (67, 'cab'): { - 'IT_number': 67, - 'setting': 2, - 'IT_coordinate_system_code': 'cab', - 'name_H-M_alt': 'A e m m', + (63, '-cba'): { + 'IT_number': 63, + 'setting': 3, + 'IT_coordinate_system_code': '-cba', + 'name_H-M_alt': 'A m a m', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'o': { + 'h': { 'multiplicity': 16, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(x,-y,-z+1/2)', - '(-x,-y,z+1/2)', - '(-x,y,-z)', + '(x-1/2,-y,-z)', + '(-x-1/2,y,-z)', + '(-x,-y,z)', '(-x,-y,-z)', - '(-x,y,z+1/2)', - '(x,y,-z+1/2)', - '(x,-y,z)' - ] + '(-x-1/2,y,z)', + '(x-1/2,-y,z)', + '(x,y,-z)', + ], }, - 'n': { + 'g': { 'multiplicity': 8, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,y,1/4)', - '(x,-y,1/4)', - '(-x,-y,3/4)', - '(-x,y,3/4)' - ] + 'site_symmetry': '..m', + 'coords_xyz': ['(-1/4,y,z)', '(-3/4,-y,-z)', '(-1/4,y,-z)', '(-3/4,-y,z)'], }, - 'm': { + 'f': { 'multiplicity': 8, 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,0,z)', - '(x,0,-z+1/2)', - '(-x,0,z+1/2)', - '(-x,0,-z)' - ] + 'coords_xyz': ['(x,y,0)', '(x-1/2,-y,0)', '(-x-1/2,y,0)', '(-x,-y,0)'], }, - 'l': { + 'e': { 'multiplicity': 8, - 'site_symmetry': '..2', + 'site_symmetry': '2..', + 'coords_xyz': ['(0,0,z)', '(-1/2,0,-z)', '(0,0,-z)', '(-1/2,0,z)'], + }, + 'd': { + 'multiplicity': 8, + 'site_symmetry': '-1', + 'coords_xyz': ['(0,1/4,1/4)', '(-1/2,3/4,3/4)', '(-1/2,1/4,3/4)', '(0,3/4,1/4)'], + }, + 'c': {'multiplicity': 4, 'site_symmetry': 'm2m', 'coords_xyz': ['(-1/4,y,0)', '(-3/4,-y,0)']}, + 'b': {'multiplicity': 4, 'site_symmetry': '2/m..', 'coords_xyz': ['(0,1/2,0)', '(-1/2,1/2,0)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '2/m..', 'coords_xyz': ['(0,0,0)', '(-1/2,0,0)']}, + }, + }, + (63, 'bca'): { + 'IT_number': 63, + 'setting': 4, + 'IT_coordinate_system_code': 'bca', + 'name_H-M_alt': 'B b m m', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'h': { + 'multiplicity': 16, + 'site_symmetry': '1', 'coords_xyz': [ - '(x,1/4,0)', - '(-x,3/4,1/2)', - '(-x,3/4,0)', - '(x,1/4,1/2)' - ] + '(x,y,z)', + '(-x,y+1/2,-z)', + '(x,-y+1/2,-z)', + '(-x,-y,z)', + '(-x,-y,-z)', + '(x,-y+1/2,z)', + '(-x,y+1/2,z)', + '(x,y,-z)', + ], }, - 'k': { + 'g': { 'multiplicity': 8, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(1/2,1/4,z)', - '(1/2,3/4,-z+1/2)', - '(1/2,3/4,-z)', - '(1/2,1/4,z+1/2)' - ] + 'site_symmetry': '..m', + 'coords_xyz': ['(x,1/4,z)', '(-x,3/4,-z)', '(x,1/4,-z)', '(-x,3/4,z)'], }, - 'j': { + 'f': { 'multiplicity': 8, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(0,1/4,z)', - '(0,3/4,-z+1/2)', - '(0,3/4,-z)', - '(0,1/4,z+1/2)' - ] + 'site_symmetry': 'm..', + 'coords_xyz': ['(x,y,0)', '(-x,y+1/2,0)', '(x,-y+1/2,0)', '(-x,-y,0)'], }, - 'i': { + 'e': {'multiplicity': 8, 'site_symmetry': '2..', 'coords_xyz': ['(0,0,z)', '(0,1/2,-z)', '(0,0,-z)', '(0,1/2,z)']}, + 'd': { 'multiplicity': 8, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(1/2,y,0)', - '(1/2,-y,1/2)', - '(1/2,-y,0)', - '(1/2,y,1/2)' - ] + 'site_symmetry': '-1', + 'coords_xyz': ['(1/4,0,1/4)', '(3/4,1/2,3/4)', '(1/4,1/2,3/4)', '(3/4,0,1/4)'], }, + 'c': {'multiplicity': 4, 'site_symmetry': 'm2m', 'coords_xyz': ['(x,1/4,0)', '(-x,3/4,0)']}, + 'b': {'multiplicity': 4, 'site_symmetry': '2/m..', 'coords_xyz': ['(1/2,0,0)', '(1/2,1/2,0)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '2/m..', 'coords_xyz': ['(0,0,0)', '(0,1/2,0)']}, + }, + }, + (63, 'a-cb'): { + 'IT_number': 63, + 'setting': 5, + 'IT_coordinate_system_code': 'a-cb', + 'name_H-M_alt': 'B m m b', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { 'h': { - 'multiplicity': 8, - 'site_symmetry': '2..', + 'multiplicity': 16, + 'site_symmetry': '1', 'coords_xyz': [ - '(0,y,0)', - '(0,-y,1/2)', - '(0,-y,0)', - '(0,y,1/2)' - ] + '(x,y,z)', + '(-x,y-1/2,-z)', + '(-x,-y-1/2,z)', + '(x,-y,-z)', + '(-x,-y,-z)', + '(x,-y-1/2,z)', + '(x,y-1/2,-z)', + '(-x,y,z)', + ], }, 'g': { - 'multiplicity': 4, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(x,0,1/4)', - '(-x,0,3/4)' - ] + 'multiplicity': 8, + 'site_symmetry': '..m', + 'coords_xyz': ['(x,-1/4,z)', '(-x,-3/4,-z)', '(-x,-1/4,z)', '(x,-3/4,-z)'], }, 'f': { - 'multiplicity': 4, - 'site_symmetry': '.2/m.', - 'coords_xyz': [ - '(1/2,1/4,1/4)', - '(1/2,3/4,1/4)' - ] + 'multiplicity': 8, + 'site_symmetry': 'm..', + 'coords_xyz': ['(0,y,z)', '(0,y-1/2,-z)', '(0,-y-1/2,z)', '(0,-y,-z)'], }, 'e': { - 'multiplicity': 4, - 'site_symmetry': '.2/m.', - 'coords_xyz': [ - '(0,1/4,1/4)', - '(0,3/4,1/4)' - ] + 'multiplicity': 8, + 'site_symmetry': '2..', + 'coords_xyz': ['(x,0,0)', '(-x,-1/2,0)', '(-x,0,0)', '(x,-1/2,0)'], }, 'd': { - 'multiplicity': 4, - 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(1/2,0,0)', - '(1/2,0,1/2)' - ] - }, - 'c': { - 'multiplicity': 4, - 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(0,0,0)', - '(0,0,1/2)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/2,1/4,0)', - '(1/2,3/4,0)' - ] + 'multiplicity': 8, + 'site_symmetry': '-1', + 'coords_xyz': ['(1/4,0,1/4)', '(3/4,-1/2,3/4)', '(3/4,-1/2,1/4)', '(1/4,0,3/4)'], }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,1/4,0)', - '(0,3/4,0)' - ] - } - } + 'c': {'multiplicity': 4, 'site_symmetry': 'm2m', 'coords_xyz': ['(0,-1/4,z)', '(0,-3/4,-z)']}, + 'b': {'multiplicity': 4, 'site_symmetry': '2/m..', 'coords_xyz': ['(0,0,1/2)', '(0,-1/2,1/2)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '2/m..', 'coords_xyz': ['(0,0,0)', '(0,-1/2,0)']}, + }, }, - (67, '-cba'): { - 'IT_number': 67, - 'setting': 3, - 'IT_coordinate_system_code': '-cba', - 'name_H-M_alt': 'A e m m', + (64, 'abc'): { + 'IT_number': 64, + 'setting': 0, + 'IT_coordinate_system_code': 'abc', + 'name_H-M_alt': 'C m c e', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'o': { + 'g': { 'multiplicity': 16, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(x,-y+1/2,-z)', - '(-x,y+1/2,-z)', - '(-x,-y,z)', + '(-x,-y+1/2,z+1/2)', + '(-x,y+1/2,-z+1/2)', + '(x,-y,-z)', '(-x,-y,-z)', - '(-x,y+1/2,z)', - '(x,-y+1/2,z)', - '(x,y,-z)' - ] - }, - 'n': { - 'multiplicity': 8, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,1/4,z)', - '(x,1/4,-z)', - '(-x,3/4,-z)', - '(-x,3/4,z)' - ] + '(x,y+1/2,-z+1/2)', + '(x,-y+1/2,z+1/2)', + '(-x,y,z)', + ], }, - 'm': { + 'f': { 'multiplicity': 8, 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,y,0)', - '(x,-y+1/2,0)', - '(-x,y+1/2,0)', - '(-x,-y,0)' - ] - }, - 'l': { - 'multiplicity': 8, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,0,1/4)', - '(-x,1/2,3/4)', - '(-x,0,3/4)', - '(x,1/2,1/4)' - ] - }, - 'k': { - 'multiplicity': 8, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(-1/2,y,1/4)', - '(-1/2,-y+1/2,3/4)', - '(-1/2,-y,3/4)', - '(-1/2,y+1/2,1/4)' - ] + 'coords_xyz': ['(0,y,z)', '(0,-y+1/2,z+1/2)', '(0,y+1/2,-z+1/2)', '(0,-y,-z)'], }, - 'j': { + 'e': { 'multiplicity': 8, 'site_symmetry': '.2.', - 'coords_xyz': [ - '(0,y,1/4)', - '(0,-y+1/2,3/4)', - '(0,-y,3/4)', - '(0,y+1/2,1/4)' - ] + 'coords_xyz': ['(1/4,y,1/4)', '(3/4,-y+1/2,3/4)', '(3/4,-y,3/4)', '(1/4,y+1/2,1/4)'], }, - 'i': { + 'd': { 'multiplicity': 8, 'site_symmetry': '2..', - 'coords_xyz': [ - '(-1/2,0,z)', - '(-1/2,1/2,-z)', - '(-1/2,0,-z)', - '(-1/2,1/2,z)' - ] + 'coords_xyz': ['(x,0,0)', '(-x,1/2,1/2)', '(-x,0,0)', '(x,1/2,1/2)'], }, - 'h': { + 'c': { 'multiplicity': 8, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,0,z)', - '(0,1/2,-z)', - '(0,0,-z)', - '(0,1/2,z)' - ] + 'site_symmetry': '-1', + 'coords_xyz': ['(1/4,1/4,0)', '(3/4,1/4,1/2)', '(3/4,3/4,1/2)', '(1/4,3/4,0)'], }, + 'b': {'multiplicity': 4, 'site_symmetry': '2/m..', 'coords_xyz': ['(1/2,0,0)', '(1/2,1/2,1/2)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '2/m..', 'coords_xyz': ['(0,0,0)', '(0,1/2,1/2)']}, + }, + }, + (64, 'ba-c'): { + 'IT_number': 64, + 'setting': 1, + 'IT_coordinate_system_code': 'ba-c', + 'name_H-M_alt': 'C c m e', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { 'g': { - 'multiplicity': 4, - 'site_symmetry': 'mm2', + 'multiplicity': 16, + 'site_symmetry': '1', 'coords_xyz': [ - '(x,1/4,0)', - '(-x,3/4,0)' - ] + '(x,y,z)', + '(-x+1/2,-y,z-1/2)', + '(x+1/2,-y,-z-1/2)', + '(-x,y,-z)', + '(-x,-y,-z)', + '(x+1/2,y,-z-1/2)', + '(-x+1/2,y,z-1/2)', + '(x,-y,z)', + ], }, 'f': { - 'multiplicity': 4, - 'site_symmetry': '.2/m.', - 'coords_xyz': [ - '(-1/2,1/4,1/4)', - '(-1/2,1/4,3/4)' - ] + 'multiplicity': 8, + 'site_symmetry': 'm..', + 'coords_xyz': ['(x,0,z)', '(-x+1/2,0,z-1/2)', '(x+1/2,0,-z-1/2)', '(-x,0,-z)'], }, 'e': { - 'multiplicity': 4, - 'site_symmetry': '.2/m.', - 'coords_xyz': [ - '(0,1/4,1/4)', - '(0,1/4,3/4)' - ] + 'multiplicity': 8, + 'site_symmetry': '.2.', + 'coords_xyz': ['(x,1/4,-1/4)', '(-x+1/2,3/4,-3/4)', '(-x,3/4,-3/4)', '(x+1/2,1/4,-1/4)'], }, 'd': { - 'multiplicity': 4, - 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(-1/2,0,0)', - '(-1/2,1/2,0)' - ] + 'multiplicity': 8, + 'site_symmetry': '2..', + 'coords_xyz': ['(0,y,0)', '(1/2,-y,-1/2)', '(0,-y,0)', '(1/2,y,-1/2)'], }, 'c': { - 'multiplicity': 4, - 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(0,0,0)', - '(0,1/2,0)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(-1/2,0,1/4)', - '(-1/2,0,3/4)' - ] + 'multiplicity': 8, + 'site_symmetry': '-1', + 'coords_xyz': ['(1/4,1/4,0)', '(1/4,3/4,-1/2)', '(3/4,3/4,-1/2)', '(3/4,1/4,0)'], }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,1/4)', - '(0,0,3/4)' - ] - } - } + 'b': {'multiplicity': 4, 'site_symmetry': '2/m..', 'coords_xyz': ['(0,1/2,0)', '(1/2,1/2,-1/2)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '2/m..', 'coords_xyz': ['(0,0,0)', '(1/2,0,-1/2)']}, + }, }, - (67, 'bca'): { - 'IT_number': 67, - 'setting': 4, - 'IT_coordinate_system_code': 'bca', - 'name_H-M_alt': 'B m e m', + (64, 'cab'): { + 'IT_number': 64, + 'setting': 2, + 'IT_coordinate_system_code': 'cab', + 'name_H-M_alt': 'A e m a', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'o': { + 'g': { 'multiplicity': 16, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(-x+1/2,y,-z)', - '(x+1/2,-y,-z)', - '(-x,-y,z)', + '(x+1/2,-y,-z+1/2)', + '(-x+1/2,-y,z+1/2)', + '(-x,y,-z)', '(-x,-y,-z)', - '(x+1/2,-y,z)', - '(-x+1/2,y,z)', - '(x,y,-z)' - ] + '(-x+1/2,y,z+1/2)', + '(x+1/2,y,-z+1/2)', + '(x,-y,z)', + ], }, - 'n': { + 'f': { 'multiplicity': 8, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(1/4,y,z)', - '(1/4,y,-z)', - '(3/4,-y,-z)', - '(3/4,-y,z)' - ] + 'site_symmetry': 'm..', + 'coords_xyz': ['(x,0,z)', '(x+1/2,0,-z+1/2)', '(-x+1/2,0,z+1/2)', '(-x,0,-z)'], }, - 'm': { + 'e': { 'multiplicity': 8, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,y,0)', - '(-x+1/2,y,0)', - '(x+1/2,-y,0)', - '(-x,-y,0)' - ] + 'site_symmetry': '.2.', + 'coords_xyz': ['(1/4,1/4,z)', '(3/4,3/4,-z+1/2)', '(3/4,3/4,-z)', '(1/4,1/4,z+1/2)'], }, - 'l': { + 'd': { 'multiplicity': 8, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,y,1/4)', - '(1/2,-y,3/4)', - '(0,-y,3/4)', - '(1/2,y,1/4)' - ] + 'site_symmetry': '2..', + 'coords_xyz': ['(0,y,0)', '(1/2,-y,1/2)', '(0,-y,0)', '(1/2,y,1/2)'], }, - 'k': { + 'c': { 'multiplicity': 8, - 'site_symmetry': '.2.', + 'site_symmetry': '-1', + 'coords_xyz': ['(0,1/4,1/4)', '(1/2,3/4,1/4)', '(1/2,3/4,3/4)', '(0,1/4,3/4)'], + }, + 'b': {'multiplicity': 4, 'site_symmetry': '2/m..', 'coords_xyz': ['(0,1/2,0)', '(1/2,1/2,1/2)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '2/m..', 'coords_xyz': ['(0,0,0)', '(1/2,0,1/2)']}, + }, + }, + (64, '-cba'): { + 'IT_number': 64, + 'setting': 3, + 'IT_coordinate_system_code': '-cba', + 'name_H-M_alt': 'A e a m', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'g': { + 'multiplicity': 16, + 'site_symmetry': '1', 'coords_xyz': [ - '(x,1/2,1/4)', - '(-x+1/2,1/2,3/4)', - '(-x,1/2,3/4)', - '(x+1/2,1/2,1/4)' - ] + '(x,y,z)', + '(x-1/2,-y+1/2,-z)', + '(-x-1/2,y+1/2,-z)', + '(-x,-y,z)', + '(-x,-y,-z)', + '(-x-1/2,y+1/2,z)', + '(x-1/2,-y+1/2,z)', + '(x,y,-z)', + ], }, - 'j': { + 'f': { + 'multiplicity': 8, + 'site_symmetry': 'm..', + 'coords_xyz': ['(x,y,0)', '(x-1/2,-y+1/2,0)', '(-x-1/2,y+1/2,0)', '(-x,-y,0)'], + }, + 'e': { 'multiplicity': 8, 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,0,1/4)', - '(-x+1/2,0,3/4)', - '(-x,0,3/4)', - '(x+1/2,0,1/4)' - ] + 'coords_xyz': ['(-1/4,y,1/4)', '(-3/4,-y+1/2,3/4)', '(-3/4,-y,3/4)', '(-1/4,y+1/2,1/4)'], }, - 'i': { + 'd': { 'multiplicity': 8, 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,1/2,z)', - '(1/2,1/2,-z)', - '(0,1/2,-z)', - '(1/2,1/2,z)' - ] + 'coords_xyz': ['(0,0,z)', '(-1/2,1/2,-z)', '(0,0,-z)', '(-1/2,1/2,z)'], }, - 'h': { + 'c': { 'multiplicity': 8, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,0,z)', - '(1/2,0,-z)', - '(0,0,-z)', - '(1/2,0,z)' - ] + 'site_symmetry': '-1', + 'coords_xyz': ['(0,1/4,1/4)', '(-1/2,1/4,3/4)', '(-1/2,3/4,3/4)', '(0,3/4,1/4)'], }, + 'b': {'multiplicity': 4, 'site_symmetry': '2/m..', 'coords_xyz': ['(0,0,1/2)', '(-1/2,1/2,1/2)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '2/m..', 'coords_xyz': ['(0,0,0)', '(-1/2,1/2,0)']}, + }, + }, + (64, 'bca'): { + 'IT_number': 64, + 'setting': 4, + 'IT_coordinate_system_code': 'bca', + 'name_H-M_alt': 'B b e m', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { 'g': { - 'multiplicity': 4, - 'site_symmetry': 'mm2', + 'multiplicity': 16, + 'site_symmetry': '1', 'coords_xyz': [ - '(1/4,y,0)', - '(3/4,-y,0)' - ] + '(x,y,z)', + '(-x+1/2,y+1/2,-z)', + '(x+1/2,-y+1/2,-z)', + '(-x,-y,z)', + '(-x,-y,-z)', + '(x+1/2,-y+1/2,z)', + '(-x+1/2,y+1/2,z)', + '(x,y,-z)', + ], }, 'f': { - 'multiplicity': 4, - 'site_symmetry': '.2/m.', - 'coords_xyz': [ - '(1/4,1/2,1/4)', - '(1/4,1/2,3/4)' - ] + 'multiplicity': 8, + 'site_symmetry': 'm..', + 'coords_xyz': ['(x,y,0)', '(-x+1/2,y+1/2,0)', '(x+1/2,-y+1/2,0)', '(-x,-y,0)'], }, 'e': { - 'multiplicity': 4, - 'site_symmetry': '.2/m.', - 'coords_xyz': [ - '(1/4,0,1/4)', - '(1/4,0,3/4)' - ] + 'multiplicity': 8, + 'site_symmetry': '.2.', + 'coords_xyz': ['(x,1/4,1/4)', '(-x+1/2,3/4,3/4)', '(-x,3/4,3/4)', '(x+1/2,1/4,1/4)'], }, 'd': { - 'multiplicity': 4, - 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(0,1/2,0)', - '(1/2,1/2,0)' - ] + 'multiplicity': 8, + 'site_symmetry': '2..', + 'coords_xyz': ['(0,0,z)', '(1/2,1/2,-z)', '(0,0,-z)', '(1/2,1/2,z)'], }, 'c': { - 'multiplicity': 4, - 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,0,0)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,1/2,1/4)', - '(0,1/2,3/4)' - ] + 'multiplicity': 8, + 'site_symmetry': '-1', + 'coords_xyz': ['(1/4,0,1/4)', '(1/4,1/2,3/4)', '(3/4,1/2,3/4)', '(3/4,0,1/4)'], }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,1/4)', - '(0,0,3/4)' - ] - } - } + 'b': {'multiplicity': 4, 'site_symmetry': '2/m..', 'coords_xyz': ['(0,0,1/2)', '(1/2,1/2,1/2)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '2/m..', 'coords_xyz': ['(0,0,0)', '(1/2,1/2,0)']}, + }, }, - (67, 'a-cb'): { - 'IT_number': 67, + (64, 'a-cb'): { + 'IT_number': 64, 'setting': 5, 'IT_coordinate_system_code': 'a-cb', - 'name_H-M_alt': 'B m e m', + 'name_H-M_alt': 'B m e b', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'o': { + 'g': { 'multiplicity': 16, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(-x,y,-z+1/2)', - '(-x,-y,z+1/2)', + '(-x,y-1/2,-z+1/2)', + '(-x,-y-1/2,z+1/2)', '(x,-y,-z)', '(-x,-y,-z)', - '(x,-y,z+1/2)', - '(x,y,-z+1/2)', - '(-x,y,z)' - ] - }, - 'n': { - 'multiplicity': 8, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,y,1/4)', - '(-x,y,1/4)', - '(-x,-y,3/4)', - '(x,-y,3/4)' - ] + '(x,-y-1/2,z+1/2)', + '(x,y-1/2,-z+1/2)', + '(-x,y,z)', + ], }, - 'm': { + 'f': { 'multiplicity': 8, 'site_symmetry': 'm..', - 'coords_xyz': [ - '(0,y,z)', - '(0,y,-z+1/2)', - '(0,-y,z+1/2)', - '(0,-y,-z)' - ] + 'coords_xyz': ['(0,y,z)', '(0,y-1/2,-z+1/2)', '(0,-y-1/2,z+1/2)', '(0,-y,-z)'], }, - 'l': { + 'e': { 'multiplicity': 8, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/4,y,0)', - '(3/4,-y,1/2)', - '(3/4,-y,0)', - '(1/4,y,1/2)' - ] + 'site_symmetry': '.2.', + 'coords_xyz': ['(1/4,-1/4,z)', '(3/4,-3/4,-z+1/2)', '(3/4,-3/4,-z)', '(1/4,-1/4,z+1/2)'], }, - 'k': { + 'd': { 'multiplicity': 8, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(1/4,-1/2,z)', - '(3/4,-1/2,-z+1/2)', - '(3/4,-1/2,-z)', - '(1/4,-1/2,z+1/2)' - ] + 'site_symmetry': '2..', + 'coords_xyz': ['(x,0,0)', '(-x,-1/2,1/2)', '(-x,0,0)', '(x,-1/2,1/2)'], }, - 'j': { + 'c': { 'multiplicity': 8, - 'site_symmetry': '.2.', + 'site_symmetry': '-1', + 'coords_xyz': ['(1/4,0,1/4)', '(3/4,-1/2,1/4)', '(3/4,-1/2,3/4)', '(1/4,0,3/4)'], + }, + 'b': {'multiplicity': 4, 'site_symmetry': '2/m..', 'coords_xyz': ['(1/2,0,0)', '(1/2,-1/2,1/2)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '2/m..', 'coords_xyz': ['(0,0,0)', '(0,-1/2,1/2)']}, + }, + }, + (65, 'abc'): { + 'IT_number': 65, + 'setting': 0, + 'IT_coordinate_system_code': 'abc', + 'name_H-M_alt': 'C m m m', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'r': { + 'multiplicity': 16, + 'site_symmetry': '1', 'coords_xyz': [ - '(1/4,0,z)', - '(3/4,0,-z+1/2)', - '(3/4,0,-z)', - '(1/4,0,z+1/2)' - ] + '(x,y,z)', + '(-x,-y,z)', + '(-x,y,-z)', + '(x,-y,-z)', + '(-x,-y,-z)', + '(x,y,-z)', + '(x,-y,z)', + '(-x,y,z)', + ], }, - 'i': { + 'q': { 'multiplicity': 8, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(x,-1/2,0)', - '(-x,-1/2,1/2)', - '(-x,-1/2,0)', - '(x,-1/2,1/2)' - ] + 'site_symmetry': '..m', + 'coords_xyz': ['(x,y,1/2)', '(-x,-y,1/2)', '(-x,y,1/2)', '(x,-y,1/2)'], }, - 'h': { + 'p': {'multiplicity': 8, 'site_symmetry': '..m', 'coords_xyz': ['(x,y,0)', '(-x,-y,0)', '(-x,y,0)', '(x,-y,0)']}, + 'o': {'multiplicity': 8, 'site_symmetry': '.m.', 'coords_xyz': ['(x,0,z)', '(-x,0,z)', '(-x,0,-z)', '(x,0,-z)']}, + 'n': {'multiplicity': 8, 'site_symmetry': 'm..', 'coords_xyz': ['(0,y,z)', '(0,-y,z)', '(0,y,-z)', '(0,-y,-z)']}, + 'm': { 'multiplicity': 8, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,1/2)', - '(-x,0,0)', - '(x,0,1/2)' - ] + 'site_symmetry': '..2', + 'coords_xyz': ['(1/4,1/4,z)', '(3/4,1/4,-z)', '(3/4,3/4,-z)', '(1/4,3/4,z)'], }, - 'g': { - 'multiplicity': 4, - 'site_symmetry': 'mm2', + 'l': {'multiplicity': 4, 'site_symmetry': 'mm2', 'coords_xyz': ['(0,1/2,z)', '(0,1/2,-z)']}, + 'k': {'multiplicity': 4, 'site_symmetry': 'mm2', 'coords_xyz': ['(0,0,z)', '(0,0,-z)']}, + 'j': {'multiplicity': 4, 'site_symmetry': 'm2m', 'coords_xyz': ['(0,y,1/2)', '(0,-y,1/2)']}, + 'i': {'multiplicity': 4, 'site_symmetry': 'm2m', 'coords_xyz': ['(0,y,0)', '(0,-y,0)']}, + 'h': {'multiplicity': 4, 'site_symmetry': '2mm', 'coords_xyz': ['(x,0,1/2)', '(-x,0,1/2)']}, + 'g': {'multiplicity': 4, 'site_symmetry': '2mm', 'coords_xyz': ['(x,0,0)', '(-x,0,0)']}, + 'f': {'multiplicity': 4, 'site_symmetry': '..2/m', 'coords_xyz': ['(1/4,1/4,1/2)', '(3/4,1/4,1/2)']}, + 'e': {'multiplicity': 4, 'site_symmetry': '..2/m', 'coords_xyz': ['(1/4,1/4,0)', '(3/4,1/4,0)']}, + 'd': {'multiplicity': 2, 'site_symmetry': 'mmm', 'coords_xyz': ['(0,0,1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': 'mmm', 'coords_xyz': ['(1/2,0,1/2)']}, + 'b': {'multiplicity': 2, 'site_symmetry': 'mmm', 'coords_xyz': ['(1/2,0,0)']}, + 'a': {'multiplicity': 2, 'site_symmetry': 'mmm', 'coords_xyz': ['(0,0,0)']}, + }, + }, + (65, 'ba-c'): { + 'IT_number': 65, + 'setting': 1, + 'IT_coordinate_system_code': 'ba-c', + 'name_H-M_alt': 'C m m m', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'r': { + 'multiplicity': 16, + 'site_symmetry': '1', 'coords_xyz': [ - '(0,y,1/4)', - '(0,-y,3/4)' - ] + '(x,y,z)', + '(-x,-y,z)', + '(x,-y,-z)', + '(-x,y,-z)', + '(-x,-y,-z)', + '(x,y,-z)', + '(-x,y,z)', + '(x,-y,z)', + ], }, - 'f': { - 'multiplicity': 4, - 'site_symmetry': '.2/m.', - 'coords_xyz': [ - '(1/4,-1/2,1/4)', - '(3/4,-1/2,1/4)' - ] + 'q': { + 'multiplicity': 8, + 'site_symmetry': '..m', + 'coords_xyz': ['(x,y,-1/2)', '(-x,-y,-1/2)', '(x,-y,-1/2)', '(-x,y,-1/2)'], }, - 'e': { - 'multiplicity': 4, - 'site_symmetry': '.2/m.', - 'coords_xyz': [ - '(1/4,0,1/4)', - '(3/4,0,1/4)' - ] + 'p': {'multiplicity': 8, 'site_symmetry': '..m', 'coords_xyz': ['(x,y,0)', '(-x,-y,0)', '(x,-y,0)', '(-x,y,0)']}, + 'o': {'multiplicity': 8, 'site_symmetry': '.m.', 'coords_xyz': ['(0,y,z)', '(0,-y,z)', '(0,-y,-z)', '(0,y,-z)']}, + 'n': {'multiplicity': 8, 'site_symmetry': 'm..', 'coords_xyz': ['(x,0,z)', '(-x,0,z)', '(x,0,-z)', '(-x,0,-z)']}, + 'm': { + 'multiplicity': 8, + 'site_symmetry': '..2', + 'coords_xyz': ['(1/4,1/4,z)', '(1/4,3/4,-z)', '(3/4,3/4,-z)', '(3/4,1/4,z)'], }, - 'd': { - 'multiplicity': 4, - 'site_symmetry': '2/m..', + 'l': {'multiplicity': 4, 'site_symmetry': 'mm2', 'coords_xyz': ['(1/2,0,z)', '(1/2,0,-z)']}, + 'k': {'multiplicity': 4, 'site_symmetry': 'mm2', 'coords_xyz': ['(0,0,z)', '(0,0,-z)']}, + 'j': {'multiplicity': 4, 'site_symmetry': 'm2m', 'coords_xyz': ['(x,0,-1/2)', '(-x,0,-1/2)']}, + 'i': {'multiplicity': 4, 'site_symmetry': 'm2m', 'coords_xyz': ['(x,0,0)', '(-x,0,0)']}, + 'h': {'multiplicity': 4, 'site_symmetry': '2mm', 'coords_xyz': ['(0,y,-1/2)', '(0,-y,-1/2)']}, + 'g': {'multiplicity': 4, 'site_symmetry': '2mm', 'coords_xyz': ['(0,y,0)', '(0,-y,0)']}, + 'f': {'multiplicity': 4, 'site_symmetry': '..2/m', 'coords_xyz': ['(1/4,1/4,-1/2)', '(1/4,3/4,-1/2)']}, + 'e': {'multiplicity': 4, 'site_symmetry': '..2/m', 'coords_xyz': ['(1/4,1/4,0)', '(1/4,3/4,0)']}, + 'd': {'multiplicity': 2, 'site_symmetry': 'mmm', 'coords_xyz': ['(0,0,-1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': 'mmm', 'coords_xyz': ['(0,1/2,-1/2)']}, + 'b': {'multiplicity': 2, 'site_symmetry': 'mmm', 'coords_xyz': ['(0,1/2,0)']}, + 'a': {'multiplicity': 2, 'site_symmetry': 'mmm', 'coords_xyz': ['(0,0,0)']}, + }, + }, + (65, 'cab'): { + 'IT_number': 65, + 'setting': 2, + 'IT_coordinate_system_code': 'cab', + 'name_H-M_alt': 'A m m m', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'r': { + 'multiplicity': 16, + 'site_symmetry': '1', 'coords_xyz': [ - '(0,-1/2,0)', - '(0,-1/2,1/2)' - ] + '(x,y,z)', + '(x,-y,-z)', + '(-x,-y,z)', + '(-x,y,-z)', + '(-x,-y,-z)', + '(-x,y,z)', + '(x,y,-z)', + '(x,-y,z)', + ], }, - 'c': { - 'multiplicity': 4, - 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(0,0,0)', - '(0,0,1/2)' - ] + 'q': { + 'multiplicity': 8, + 'site_symmetry': '..m', + 'coords_xyz': ['(1/2,y,z)', '(1/2,-y,-z)', '(1/2,-y,z)', '(1/2,y,-z)'], }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/4,-1/2,0)', - '(3/4,-1/2,0)' - ] + 'p': {'multiplicity': 8, 'site_symmetry': '..m', 'coords_xyz': ['(0,y,z)', '(0,-y,-z)', '(0,-y,z)', '(0,y,-z)']}, + 'o': {'multiplicity': 8, 'site_symmetry': '.m.', 'coords_xyz': ['(x,y,0)', '(x,-y,0)', '(-x,-y,0)', '(-x,y,0)']}, + 'n': {'multiplicity': 8, 'site_symmetry': 'm..', 'coords_xyz': ['(x,0,z)', '(x,0,-z)', '(-x,0,z)', '(-x,0,-z)']}, + 'm': { + 'multiplicity': 8, + 'site_symmetry': '..2', + 'coords_xyz': ['(x,1/4,1/4)', '(-x,3/4,1/4)', '(-x,3/4,3/4)', '(x,1/4,3/4)'], }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '222', + 'l': {'multiplicity': 4, 'site_symmetry': 'mm2', 'coords_xyz': ['(x,0,1/2)', '(-x,0,1/2)']}, + 'k': {'multiplicity': 4, 'site_symmetry': 'mm2', 'coords_xyz': ['(x,0,0)', '(-x,0,0)']}, + 'j': {'multiplicity': 4, 'site_symmetry': 'm2m', 'coords_xyz': ['(1/2,0,z)', '(1/2,0,-z)']}, + 'i': {'multiplicity': 4, 'site_symmetry': 'm2m', 'coords_xyz': ['(0,0,z)', '(0,0,-z)']}, + 'h': {'multiplicity': 4, 'site_symmetry': '2mm', 'coords_xyz': ['(1/2,y,0)', '(1/2,-y,0)']}, + 'g': {'multiplicity': 4, 'site_symmetry': '2mm', 'coords_xyz': ['(0,y,0)', '(0,-y,0)']}, + 'f': {'multiplicity': 4, 'site_symmetry': '..2/m', 'coords_xyz': ['(1/2,1/4,1/4)', '(1/2,3/4,1/4)']}, + 'e': {'multiplicity': 4, 'site_symmetry': '..2/m', 'coords_xyz': ['(0,1/4,1/4)', '(0,3/4,1/4)']}, + 'd': {'multiplicity': 2, 'site_symmetry': 'mmm', 'coords_xyz': ['(1/2,0,0)']}, + 'c': {'multiplicity': 2, 'site_symmetry': 'mmm', 'coords_xyz': ['(1/2,1/2,0)']}, + 'b': {'multiplicity': 2, 'site_symmetry': 'mmm', 'coords_xyz': ['(0,1/2,0)']}, + 'a': {'multiplicity': 2, 'site_symmetry': 'mmm', 'coords_xyz': ['(0,0,0)']}, + }, + }, + (65, '-cba'): { + 'IT_number': 65, + 'setting': 3, + 'IT_coordinate_system_code': '-cba', + 'name_H-M_alt': 'A m m m', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'r': { + 'multiplicity': 16, + 'site_symmetry': '1', 'coords_xyz': [ - '(1/4,0,0)', - '(3/4,0,0)' - ] - } - } + '(x,y,z)', + '(x,-y,-z)', + '(-x,y,-z)', + '(-x,-y,z)', + '(-x,-y,-z)', + '(-x,y,z)', + '(x,-y,z)', + '(x,y,-z)', + ], + }, + 'q': { + 'multiplicity': 8, + 'site_symmetry': '..m', + 'coords_xyz': ['(-1/2,y,z)', '(-1/2,-y,-z)', '(-1/2,y,-z)', '(-1/2,-y,z)'], + }, + 'p': {'multiplicity': 8, 'site_symmetry': '..m', 'coords_xyz': ['(0,y,z)', '(0,-y,-z)', '(0,y,-z)', '(0,-y,z)']}, + 'o': {'multiplicity': 8, 'site_symmetry': '.m.', 'coords_xyz': ['(x,0,z)', '(x,0,-z)', '(-x,0,-z)', '(-x,0,z)']}, + 'n': {'multiplicity': 8, 'site_symmetry': 'm..', 'coords_xyz': ['(x,y,0)', '(x,-y,0)', '(-x,y,0)', '(-x,-y,0)']}, + 'm': { + 'multiplicity': 8, + 'site_symmetry': '..2', + 'coords_xyz': ['(x,1/4,1/4)', '(-x,1/4,3/4)', '(-x,3/4,3/4)', '(x,3/4,1/4)'], + }, + 'l': {'multiplicity': 4, 'site_symmetry': 'mm2', 'coords_xyz': ['(x,1/2,0)', '(-x,1/2,0)']}, + 'k': {'multiplicity': 4, 'site_symmetry': 'mm2', 'coords_xyz': ['(x,0,0)', '(-x,0,0)']}, + 'j': {'multiplicity': 4, 'site_symmetry': 'm2m', 'coords_xyz': ['(-1/2,y,0)', '(-1/2,-y,0)']}, + 'i': {'multiplicity': 4, 'site_symmetry': 'm2m', 'coords_xyz': ['(0,y,0)', '(0,-y,0)']}, + 'h': {'multiplicity': 4, 'site_symmetry': '2mm', 'coords_xyz': ['(-1/2,0,z)', '(-1/2,0,-z)']}, + 'g': {'multiplicity': 4, 'site_symmetry': '2mm', 'coords_xyz': ['(0,0,z)', '(0,0,-z)']}, + 'f': {'multiplicity': 4, 'site_symmetry': '..2/m', 'coords_xyz': ['(-1/2,1/4,1/4)', '(-1/2,1/4,3/4)']}, + 'e': {'multiplicity': 4, 'site_symmetry': '..2/m', 'coords_xyz': ['(0,1/4,1/4)', '(0,1/4,3/4)']}, + 'd': {'multiplicity': 2, 'site_symmetry': 'mmm', 'coords_xyz': ['(-1/2,0,0)']}, + 'c': {'multiplicity': 2, 'site_symmetry': 'mmm', 'coords_xyz': ['(-1/2,0,1/2)']}, + 'b': {'multiplicity': 2, 'site_symmetry': 'mmm', 'coords_xyz': ['(0,0,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': 'mmm', 'coords_xyz': ['(0,0,0)']}, + }, }, - (68, '1abc'): { - 'IT_number': 68, - 'setting': 6, - 'IT_coordinate_system_code': '1abc', - 'name_H-M_alt': 'C c c e', + (65, 'bca'): { + 'IT_number': 65, + 'setting': 4, + 'IT_coordinate_system_code': 'bca', + 'name_H-M_alt': 'B m m m', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'i': { + 'r': { 'multiplicity': 16, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(-x+1/2,-y+1/2,z)', '(-x,y,-z)', - '(x+1/2,-y+1/2,-z)', - '(-x,-y+1/2,-z+1/2)', - '(x+1/2,y,-z+1/2)', - '(x,-y+1/2,z+1/2)', - '(-x+1/2,y,z+1/2)' - ] + '(x,-y,-z)', + '(-x,-y,z)', + '(-x,-y,-z)', + '(x,-y,z)', + '(-x,y,z)', + '(x,y,-z)', + ], }, - 'h': { + 'q': { 'multiplicity': 8, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/4,1/4,z)', - '(3/4,1/4,-z)', - '(3/4,1/4,-z+1/2)', - '(1/4,1/4,z+1/2)' - ] + 'site_symmetry': '..m', + 'coords_xyz': ['(x,1/2,z)', '(-x,1/2,-z)', '(x,1/2,-z)', '(-x,1/2,z)'], }, - 'g': { + 'p': {'multiplicity': 8, 'site_symmetry': '..m', 'coords_xyz': ['(x,0,z)', '(-x,0,-z)', '(x,0,-z)', '(-x,0,z)']}, + 'o': {'multiplicity': 8, 'site_symmetry': '.m.', 'coords_xyz': ['(0,y,z)', '(0,y,-z)', '(0,-y,-z)', '(0,-y,z)']}, + 'n': {'multiplicity': 8, 'site_symmetry': 'm..', 'coords_xyz': ['(x,y,0)', '(-x,y,0)', '(x,-y,0)', '(-x,-y,0)']}, + 'm': { 'multiplicity': 8, 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)', - '(0,1/2,-z+1/2)', - '(0,1/2,z+1/2)' - ] - }, - 'f': { - 'multiplicity': 8, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(0,y,0)', - '(1/2,-y+1/2,0)', - '(0,-y+1/2,1/2)', - '(1/2,y,1/2)' - ] + 'coords_xyz': ['(1/4,y,1/4)', '(1/4,-y,3/4)', '(3/4,-y,3/4)', '(3/4,y,1/4)'], }, - 'e': { - 'multiplicity': 8, - 'site_symmetry': '2..', + 'l': {'multiplicity': 4, 'site_symmetry': 'mm2', 'coords_xyz': ['(1/2,y,0)', '(1/2,-y,0)']}, + 'k': {'multiplicity': 4, 'site_symmetry': 'mm2', 'coords_xyz': ['(0,y,0)', '(0,-y,0)']}, + 'j': {'multiplicity': 4, 'site_symmetry': 'm2m', 'coords_xyz': ['(x,1/2,0)', '(-x,1/2,0)']}, + 'i': {'multiplicity': 4, 'site_symmetry': 'm2m', 'coords_xyz': ['(x,0,0)', '(-x,0,0)']}, + 'h': {'multiplicity': 4, 'site_symmetry': '2mm', 'coords_xyz': ['(0,1/2,z)', '(0,1/2,-z)']}, + 'g': {'multiplicity': 4, 'site_symmetry': '2mm', 'coords_xyz': ['(0,0,z)', '(0,0,-z)']}, + 'f': {'multiplicity': 4, 'site_symmetry': '..2/m', 'coords_xyz': ['(1/4,1/2,1/4)', '(1/4,1/2,3/4)']}, + 'e': {'multiplicity': 4, 'site_symmetry': '..2/m', 'coords_xyz': ['(1/4,0,1/4)', '(1/4,0,3/4)']}, + 'd': {'multiplicity': 2, 'site_symmetry': 'mmm', 'coords_xyz': ['(0,1/2,0)']}, + 'c': {'multiplicity': 2, 'site_symmetry': 'mmm', 'coords_xyz': ['(0,1/2,1/2)']}, + 'b': {'multiplicity': 2, 'site_symmetry': 'mmm', 'coords_xyz': ['(0,0,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': 'mmm', 'coords_xyz': ['(0,0,0)']}, + }, + }, + (65, 'a-cb'): { + 'IT_number': 65, + 'setting': 5, + 'IT_coordinate_system_code': 'a-cb', + 'name_H-M_alt': 'B m m m', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'r': { + 'multiplicity': 16, + 'site_symmetry': '1', 'coords_xyz': [ - '(x,0,0)', - '(-x+1/2,1/2,0)', - '(-x,1/2,1/2)', - '(x+1/2,0,1/2)' - ] + '(x,y,z)', + '(-x,y,-z)', + '(-x,-y,z)', + '(x,-y,-z)', + '(-x,-y,-z)', + '(x,-y,z)', + '(x,y,-z)', + '(-x,y,z)', + ], }, - 'd': { + 'q': { 'multiplicity': 8, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,1/4,1/4)', - '(1/2,1/4,1/4)', - '(0,1/4,3/4)', - '(1/2,1/4,3/4)' - ] + 'site_symmetry': '..m', + 'coords_xyz': ['(x,-1/2,z)', '(-x,-1/2,-z)', '(-x,-1/2,z)', '(x,-1/2,-z)'], }, - 'c': { + 'p': {'multiplicity': 8, 'site_symmetry': '..m', 'coords_xyz': ['(x,0,z)', '(-x,0,-z)', '(-x,0,z)', '(x,0,-z)']}, + 'o': {'multiplicity': 8, 'site_symmetry': '.m.', 'coords_xyz': ['(x,y,0)', '(-x,y,0)', '(-x,-y,0)', '(x,-y,0)']}, + 'n': {'multiplicity': 8, 'site_symmetry': 'm..', 'coords_xyz': ['(0,y,z)', '(0,y,-z)', '(0,-y,z)', '(0,-y,-z)']}, + 'm': { 'multiplicity': 8, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/4,0,1/4)', - '(1/4,1/2,1/4)', - '(3/4,0,3/4)', - '(3/4,1/2,3/4)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,1/2)', - '(0,1/2,0)' - ] + 'site_symmetry': '..2', + 'coords_xyz': ['(1/4,y,1/4)', '(3/4,-y,1/4)', '(3/4,-y,3/4)', '(1/4,y,3/4)'], }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,0)', - '(0,1/2,1/2)' - ] - } - } + 'l': {'multiplicity': 4, 'site_symmetry': 'mm2', 'coords_xyz': ['(0,y,1/2)', '(0,-y,1/2)']}, + 'k': {'multiplicity': 4, 'site_symmetry': 'mm2', 'coords_xyz': ['(0,y,0)', '(0,-y,0)']}, + 'j': {'multiplicity': 4, 'site_symmetry': 'm2m', 'coords_xyz': ['(0,-1/2,z)', '(0,-1/2,-z)']}, + 'i': {'multiplicity': 4, 'site_symmetry': 'm2m', 'coords_xyz': ['(0,0,z)', '(0,0,-z)']}, + 'h': {'multiplicity': 4, 'site_symmetry': '2mm', 'coords_xyz': ['(x,-1/2,0)', '(-x,-1/2,0)']}, + 'g': {'multiplicity': 4, 'site_symmetry': '2mm', 'coords_xyz': ['(x,0,0)', '(-x,0,0)']}, + 'f': {'multiplicity': 4, 'site_symmetry': '..2/m', 'coords_xyz': ['(1/4,-1/2,1/4)', '(3/4,-1/2,1/4)']}, + 'e': {'multiplicity': 4, 'site_symmetry': '..2/m', 'coords_xyz': ['(1/4,0,1/4)', '(3/4,0,1/4)']}, + 'd': {'multiplicity': 2, 'site_symmetry': 'mmm', 'coords_xyz': ['(0,-1/2,0)']}, + 'c': {'multiplicity': 2, 'site_symmetry': 'mmm', 'coords_xyz': ['(1/2,-1/2,0)']}, + 'b': {'multiplicity': 2, 'site_symmetry': 'mmm', 'coords_xyz': ['(1/2,0,0)']}, + 'a': {'multiplicity': 2, 'site_symmetry': 'mmm', 'coords_xyz': ['(0,0,0)']}, + }, }, - (68, '2abc'): { - 'IT_number': 68, - 'setting': 12, - 'IT_coordinate_system_code': '2abc', - 'name_H-M_alt': 'C c c e', + (66, 'abc'): { + 'IT_number': 66, + 'setting': 0, + 'IT_coordinate_system_code': 'abc', + 'name_H-M_alt': 'C c c m', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'i': { + 'm': { 'multiplicity': 16, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(-x+1/2,-y,z)', + '(-x,-y,z)', '(-x,y,-z+1/2)', - '(x+1/2,-y,-z+1/2)', + '(x,-y,-z+1/2)', '(-x,-y,-z)', - '(x+1/2,y,-z)', + '(x,y,-z)', '(x,-y,z+1/2)', - '(-x+1/2,y,z+1/2)' - ] + '(-x,y,z+1/2)', + ], }, - 'h': { + 'l': { 'multiplicity': 8, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/4,0,z)', - '(3/4,0,-z+1/2)', - '(3/4,0,-z)', - '(1/4,0,z+1/2)' - ] + 'site_symmetry': '..m', + 'coords_xyz': ['(x,y,0)', '(-x,-y,0)', '(-x,y,1/2)', '(x,-y,1/2)'], }, - 'g': { + 'k': { 'multiplicity': 8, 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,1/4,z)', - '(0,1/4,-z+1/2)', - '(0,3/4,-z)', - '(0,3/4,z+1/2)' - ] + 'coords_xyz': ['(1/4,1/4,z)', '(3/4,1/4,-z+1/2)', '(3/4,3/4,-z)', '(1/4,3/4,z+1/2)'], }, - 'f': { + 'j': { 'multiplicity': 8, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(0,y,1/4)', - '(1/2,-y,1/4)', - '(0,-y,3/4)', - '(1/2,y,3/4)' - ] + 'site_symmetry': '..2', + 'coords_xyz': ['(0,1/2,z)', '(0,1/2,-z+1/2)', '(0,1/2,-z)', '(0,1/2,z+1/2)'], }, - 'e': { + 'i': { 'multiplicity': 8, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(x,1/4,1/4)', - '(-x+1/2,3/4,1/4)', - '(-x,3/4,3/4)', - '(x+1/2,1/4,3/4)' - ] + 'site_symmetry': '..2', + 'coords_xyz': ['(0,0,z)', '(0,0,-z+1/2)', '(0,0,-z)', '(0,0,z+1/2)'], }, - 'd': { + 'h': { 'multiplicity': 8, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,0,0)', - '(0,0,1/2)', - '(1/2,0,1/2)' - ] + 'site_symmetry': '.2.', + 'coords_xyz': ['(0,y,1/4)', '(0,-y,1/4)', '(0,-y,3/4)', '(0,y,3/4)'], }, - 'c': { + 'g': { 'multiplicity': 8, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/4,3/4,0)', - '(1/4,1/4,0)', - '(3/4,3/4,1/2)', - '(3/4,1/4,1/2)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,1/4,3/4)', - '(0,3/4,1/4)' - ] + 'site_symmetry': '2..', + 'coords_xyz': ['(x,0,1/4)', '(-x,0,1/4)', '(-x,0,3/4)', '(x,0,3/4)'], }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,1/4,1/4)', - '(0,3/4,3/4)' - ] - } - } + 'f': {'multiplicity': 4, 'site_symmetry': '..2/m', 'coords_xyz': ['(1/4,3/4,0)', '(3/4,3/4,1/2)']}, + 'e': {'multiplicity': 4, 'site_symmetry': '..2/m', 'coords_xyz': ['(1/4,1/4,0)', '(3/4,1/4,1/2)']}, + 'd': {'multiplicity': 4, 'site_symmetry': '..2/m', 'coords_xyz': ['(0,1/2,0)', '(0,1/2,1/2)']}, + 'c': {'multiplicity': 4, 'site_symmetry': '..2/m', 'coords_xyz': ['(0,0,0)', '(0,0,1/2)']}, + 'b': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(0,1/2,1/4)', '(0,1/2,3/4)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(0,0,1/4)', '(0,0,3/4)']}, + }, }, - (68, '1ba-c'): { - 'IT_number': 68, - 'setting': 7, - 'IT_coordinate_system_code': '1ba-c', - 'name_H-M_alt': 'C c c e', + (66, 'ba-c'): { + 'IT_number': 66, + 'setting': 1, + 'IT_coordinate_system_code': 'ba-c', + 'name_H-M_alt': 'C c c m', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'i': { + 'm': { 'multiplicity': 16, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(-x+1/2,-y+1/2,z)', - '(x,-y,-z)', - '(-x+1/2,y+1/2,-z)', - '(-x+1/2,-y,-z-1/2)', - '(x,y+1/2,-z-1/2)', - '(-x+1/2,y,z-1/2)', - '(x,-y+1/2,z-1/2)' - ] + '(-x,-y,z)', + '(x,-y,-z-1/2)', + '(-x,y,-z-1/2)', + '(-x,-y,-z)', + '(x,y,-z)', + '(-x,y,z-1/2)', + '(x,-y,z-1/2)', + ], }, - 'h': { + 'l': { + 'multiplicity': 8, + 'site_symmetry': '..m', + 'coords_xyz': ['(x,y,0)', '(-x,-y,0)', '(x,-y,-1/2)', '(-x,y,-1/2)'], + }, + 'k': { 'multiplicity': 8, 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/4,1/4,z)', - '(1/4,3/4,-z)', - '(1/4,3/4,-z-1/2)', - '(1/4,1/4,z-1/2)' - ] + 'coords_xyz': ['(1/4,1/4,z)', '(1/4,3/4,-z-1/2)', '(3/4,3/4,-z)', '(3/4,1/4,z-1/2)'], }, - 'g': { + 'j': { 'multiplicity': 8, 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)', - '(1/2,0,-z-1/2)', - '(1/2,0,z-1/2)' - ] + 'coords_xyz': ['(1/2,0,z)', '(1/2,0,-z-1/2)', '(1/2,0,-z)', '(1/2,0,z-1/2)'], }, - 'f': { + 'i': { + 'multiplicity': 8, + 'site_symmetry': '..2', + 'coords_xyz': ['(0,0,z)', '(0,0,-z-1/2)', '(0,0,-z)', '(0,0,z-1/2)'], + }, + 'h': { 'multiplicity': 8, 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,0,0)', - '(-x+1/2,1/2,0)', - '(-x+1/2,0,-1/2)', - '(x,1/2,-1/2)' - ] + 'coords_xyz': ['(x,0,-1/4)', '(-x,0,-1/4)', '(-x,0,-3/4)', '(x,0,-3/4)'], }, - 'e': { + 'g': { 'multiplicity': 8, 'site_symmetry': '2..', + 'coords_xyz': ['(0,y,-1/4)', '(0,-y,-1/4)', '(0,-y,-3/4)', '(0,y,-3/4)'], + }, + 'f': {'multiplicity': 4, 'site_symmetry': '..2/m', 'coords_xyz': ['(3/4,1/4,0)', '(3/4,3/4,-1/2)']}, + 'e': {'multiplicity': 4, 'site_symmetry': '..2/m', 'coords_xyz': ['(1/4,1/4,0)', '(1/4,3/4,-1/2)']}, + 'd': {'multiplicity': 4, 'site_symmetry': '..2/m', 'coords_xyz': ['(1/2,0,0)', '(1/2,0,-1/2)']}, + 'c': {'multiplicity': 4, 'site_symmetry': '..2/m', 'coords_xyz': ['(0,0,0)', '(0,0,-1/2)']}, + 'b': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(1/2,0,-1/4)', '(1/2,0,-3/4)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(0,0,-1/4)', '(0,0,-3/4)']}, + }, + }, + (66, 'cab'): { + 'IT_number': 66, + 'setting': 2, + 'IT_coordinate_system_code': 'cab', + 'name_H-M_alt': 'A m a a', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'm': { + 'multiplicity': 16, + 'site_symmetry': '1', 'coords_xyz': [ - '(0,y,0)', - '(1/2,-y+1/2,0)', - '(1/2,-y,-1/2)', - '(0,y+1/2,-1/2)' - ] + '(x,y,z)', + '(x,-y,-z)', + '(-x+1/2,-y,z)', + '(-x+1/2,y,-z)', + '(-x,-y,-z)', + '(-x,y,z)', + '(x+1/2,y,-z)', + '(x+1/2,-y,z)', + ], }, - 'd': { + 'l': { 'multiplicity': 8, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/4,0,-1/4)', - '(1/4,1/2,-1/4)', - '(1/4,0,-3/4)', - '(1/4,1/2,-3/4)' - ] + 'site_symmetry': '..m', + 'coords_xyz': ['(0,y,z)', '(0,-y,-z)', '(1/2,-y,z)', '(1/2,y,-z)'], }, - 'c': { + 'k': { 'multiplicity': 8, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,1/4,-1/4)', - '(1/2,1/4,-1/4)', - '(0,3/4,-3/4)', - '(1/2,3/4,-3/4)' - ] + 'site_symmetry': '..2', + 'coords_xyz': ['(x,1/4,1/4)', '(-x+1/2,3/4,1/4)', '(-x,3/4,3/4)', '(x+1/2,1/4,3/4)'], + }, + 'j': { + 'multiplicity': 8, + 'site_symmetry': '..2', + 'coords_xyz': ['(x,0,1/2)', '(-x+1/2,0,1/2)', '(-x,0,1/2)', '(x+1/2,0,1/2)'], + }, + 'i': { + 'multiplicity': 8, + 'site_symmetry': '..2', + 'coords_xyz': ['(x,0,0)', '(-x+1/2,0,0)', '(-x,0,0)', '(x+1/2,0,0)'], + }, + 'h': { + 'multiplicity': 8, + 'site_symmetry': '.2.', + 'coords_xyz': ['(1/4,0,z)', '(1/4,0,-z)', '(3/4,0,-z)', '(3/4,0,z)'], }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,-1/2)', - '(1/2,0,0)' - ] + 'g': { + 'multiplicity': 8, + 'site_symmetry': '2..', + 'coords_xyz': ['(1/4,y,0)', '(1/4,-y,0)', '(3/4,-y,0)', '(3/4,y,0)'], }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,0,-1/2)' - ] - } - } + 'f': {'multiplicity': 4, 'site_symmetry': '..2/m', 'coords_xyz': ['(0,1/4,3/4)', '(1/2,3/4,3/4)']}, + 'e': {'multiplicity': 4, 'site_symmetry': '..2/m', 'coords_xyz': ['(0,1/4,1/4)', '(1/2,3/4,1/4)']}, + 'd': {'multiplicity': 4, 'site_symmetry': '..2/m', 'coords_xyz': ['(0,0,1/2)', '(1/2,0,1/2)']}, + 'c': {'multiplicity': 4, 'site_symmetry': '..2/m', 'coords_xyz': ['(0,0,0)', '(1/2,0,0)']}, + 'b': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(1/4,0,1/2)', '(3/4,0,1/2)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(1/4,0,0)', '(3/4,0,0)']}, + }, }, - (68, '2ba-c'): { - 'IT_number': 68, - 'setting': 13, - 'IT_coordinate_system_code': '2ba-c', - 'name_H-M_alt': 'C c c e', + (66, '-cba'): { + 'IT_number': 66, + 'setting': 3, + 'IT_coordinate_system_code': '-cba', + 'name_H-M_alt': 'A m a a', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'i': { + 'm': { 'multiplicity': 16, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(-x,-y+1/2,z)', - '(x,-y,-z-1/2)', - '(-x,y+1/2,-z-1/2)', + '(x,-y,-z)', + '(-x-1/2,y,-z)', + '(-x-1/2,-y,z)', '(-x,-y,-z)', - '(x,y+1/2,-z)', - '(-x,y,z-1/2)', - '(x,-y+1/2,z-1/2)' - ] + '(-x,y,z)', + '(x-1/2,-y,z)', + '(x-1/2,y,-z)', + ], }, - 'h': { + 'l': { 'multiplicity': 8, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,1/4,z)', - '(0,3/4,-z-1/2)', - '(0,3/4,-z)', - '(0,1/4,z-1/2)' - ] + 'site_symmetry': '..m', + 'coords_xyz': ['(0,y,z)', '(0,-y,-z)', '(-1/2,y,-z)', '(-1/2,-y,z)'], }, - 'g': { + 'k': { 'multiplicity': 8, 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/4,0,z)', - '(1/4,0,-z-1/2)', - '(3/4,0,-z)', - '(3/4,0,z-1/2)' - ] + 'coords_xyz': ['(x,1/4,1/4)', '(-x-1/2,1/4,3/4)', '(-x,3/4,3/4)', '(x-1/2,3/4,1/4)'], }, - 'f': { + 'j': { 'multiplicity': 8, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,0,-1/4)', - '(-x,1/2,-1/4)', - '(-x,0,-3/4)', - '(x,1/2,-3/4)' - ] + 'site_symmetry': '..2', + 'coords_xyz': ['(x,1/2,0)', '(-x-1/2,1/2,0)', '(-x,1/2,0)', '(x-1/2,1/2,0)'], }, - 'e': { + 'i': { 'multiplicity': 8, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(1/4,y,-1/4)', - '(3/4,-y+1/2,-1/4)', - '(3/4,-y,-3/4)', - '(1/4,y+1/2,-3/4)' - ] + 'site_symmetry': '..2', + 'coords_xyz': ['(x,0,0)', '(-x-1/2,0,0)', '(-x,0,0)', '(x-1/2,0,0)'], }, - 'd': { + 'h': { 'multiplicity': 8, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(0,1/2,0)', - '(0,0,-1/2)', - '(0,1/2,-1/2)' - ] + 'site_symmetry': '.2.', + 'coords_xyz': ['(-1/4,y,0)', '(-1/4,-y,0)', '(-3/4,-y,0)', '(-3/4,y,0)'], }, - 'c': { + 'g': { 'multiplicity': 8, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(3/4,1/4,0)', - '(1/4,1/4,0)', - '(3/4,3/4,-1/2)', - '(1/4,3/4,-1/2)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/4,0,-3/4)', - '(3/4,0,-1/4)' - ] + 'site_symmetry': '2..', + 'coords_xyz': ['(-1/4,0,z)', '(-1/4,0,-z)', '(-3/4,0,-z)', '(-3/4,0,z)'], }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/4,0,-1/4)', - '(3/4,0,-3/4)' - ] - } - } + 'f': {'multiplicity': 4, 'site_symmetry': '..2/m', 'coords_xyz': ['(0,3/4,1/4)', '(-1/2,3/4,3/4)']}, + 'e': {'multiplicity': 4, 'site_symmetry': '..2/m', 'coords_xyz': ['(0,1/4,1/4)', '(-1/2,1/4,3/4)']}, + 'd': {'multiplicity': 4, 'site_symmetry': '..2/m', 'coords_xyz': ['(0,1/2,0)', '(-1/2,1/2,0)']}, + 'c': {'multiplicity': 4, 'site_symmetry': '..2/m', 'coords_xyz': ['(0,0,0)', '(-1/2,0,0)']}, + 'b': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(-1/4,1/2,0)', '(-3/4,1/2,0)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(-1/4,0,0)', '(-3/4,0,0)']}, + }, }, - (68, '1cab'): { - 'IT_number': 68, - 'setting': 8, - 'IT_coordinate_system_code': '1cab', - 'name_H-M_alt': 'A e a a', + (66, 'bca'): { + 'IT_number': 66, + 'setting': 4, + 'IT_coordinate_system_code': 'bca', + 'name_H-M_alt': 'B b m b', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'i': { + 'm': { 'multiplicity': 16, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(x,-y+1/2,-z+1/2)', - '(-x,-y,z)', - '(-x,y+1/2,-z+1/2)', - '(-x+1/2,-y,-z+1/2)', - '(-x+1/2,y+1/2,z)', - '(x+1/2,y,-z+1/2)', - '(x+1/2,-y+1/2,z)' - ] + '(-x,y,-z)', + '(x,-y+1/2,-z)', + '(-x,-y+1/2,z)', + '(-x,-y,-z)', + '(x,-y,z)', + '(-x,y+1/2,z)', + '(x,y+1/2,-z)', + ], }, - 'h': { + 'l': { 'multiplicity': 8, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,1/4,1/4)', - '(-x,3/4,1/4)', - '(-x+1/2,3/4,1/4)', - '(x+1/2,1/4,1/4)' - ] + 'site_symmetry': '..m', + 'coords_xyz': ['(x,0,z)', '(-x,0,-z)', '(x,1/2,-z)', '(-x,1/2,z)'], }, - 'g': { + 'k': { 'multiplicity': 8, 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)', - '(-x+1/2,0,1/2)', - '(x+1/2,0,1/2)' - ] + 'coords_xyz': ['(1/4,y,1/4)', '(1/4,-y+1/2,3/4)', '(3/4,-y,3/4)', '(3/4,y+1/2,1/4)'], }, - 'f': { + 'j': { 'multiplicity': 8, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(0,0,z)', - '(0,1/2,-z+1/2)', - '(1/2,0,-z+1/2)', - '(1/2,1/2,z)' - ] + 'site_symmetry': '..2', + 'coords_xyz': ['(1/2,y,0)', '(1/2,-y+1/2,0)', '(1/2,-y,0)', '(1/2,y+1/2,0)'], }, - 'e': { + 'i': { 'multiplicity': 8, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y+1/2,1/2)', - '(1/2,-y,1/2)', - '(1/2,y+1/2,0)' - ] + 'site_symmetry': '..2', + 'coords_xyz': ['(0,y,0)', '(0,-y+1/2,0)', '(0,-y,0)', '(0,y+1/2,0)'], }, - 'd': { + 'h': { 'multiplicity': 8, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/4,0,1/4)', - '(1/4,1/2,1/4)', - '(3/4,0,1/4)', - '(3/4,1/2,1/4)' - ] + 'site_symmetry': '.2.', + 'coords_xyz': ['(x,1/4,0)', '(-x,1/4,0)', '(-x,3/4,0)', '(x,3/4,0)'], }, - 'c': { + 'g': { 'multiplicity': 8, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/4,1/4,0)', - '(1/4,1/4,1/2)', - '(3/4,3/4,0)', - '(3/4,3/4,1/2)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/2,0,0)', - '(0,0,1/2)' - ] + 'site_symmetry': '2..', + 'coords_xyz': ['(0,1/4,z)', '(0,1/4,-z)', '(0,3/4,-z)', '(0,3/4,z)'], }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,0,1/2)' - ] - } - } + 'f': {'multiplicity': 4, 'site_symmetry': '..2/m', 'coords_xyz': ['(3/4,0,1/4)', '(3/4,1/2,3/4)']}, + 'e': {'multiplicity': 4, 'site_symmetry': '..2/m', 'coords_xyz': ['(1/4,0,1/4)', '(1/4,1/2,3/4)']}, + 'd': {'multiplicity': 4, 'site_symmetry': '..2/m', 'coords_xyz': ['(1/2,0,0)', '(1/2,1/2,0)']}, + 'c': {'multiplicity': 4, 'site_symmetry': '..2/m', 'coords_xyz': ['(0,0,0)', '(0,1/2,0)']}, + 'b': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(1/2,1/4,0)', '(1/2,3/4,0)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(0,1/4,0)', '(0,3/4,0)']}, + }, }, - (68, '2cab'): { - 'IT_number': 68, - 'setting': 14, - 'IT_coordinate_system_code': '2cab', - 'name_H-M_alt': 'A e a a', + (66, 'a-cb'): { + 'IT_number': 66, + 'setting': 5, + 'IT_coordinate_system_code': 'a-cb', + 'name_H-M_alt': 'B b m b', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'i': { + 'm': { 'multiplicity': 16, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(x,-y+1/2,-z)', - '(-x+1/2,-y,z)', - '(-x+1/2,y+1/2,-z)', + '(-x,y,-z)', + '(-x,-y-1/2,z)', + '(x,-y-1/2,-z)', '(-x,-y,-z)', - '(-x,y+1/2,z)', - '(x+1/2,y,-z)', - '(x+1/2,-y+1/2,z)' - ] + '(x,-y,z)', + '(x,y-1/2,-z)', + '(-x,y-1/2,z)', + ], }, - 'h': { + 'l': { 'multiplicity': 8, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,1/4,0)', - '(-x+1/2,3/4,0)', - '(-x,3/4,0)', - '(x+1/2,1/4,0)' - ] + 'site_symmetry': '..m', + 'coords_xyz': ['(x,0,z)', '(-x,0,-z)', '(-x,-1/2,z)', '(x,-1/2,-z)'], }, - 'g': { + 'k': { 'multiplicity': 8, 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,0,1/4)', - '(-x+1/2,0,1/4)', - '(-x,0,3/4)', - '(x+1/2,0,3/4)' - ] + 'coords_xyz': ['(1/4,y,1/4)', '(3/4,-y-1/2,1/4)', '(3/4,-y,3/4)', '(1/4,y-1/2,3/4)'], }, - 'f': { + 'j': { 'multiplicity': 8, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(1/4,0,z)', - '(1/4,1/2,-z)', - '(3/4,0,-z)', - '(3/4,1/2,z)' - ] + 'site_symmetry': '..2', + 'coords_xyz': ['(0,y,1/2)', '(0,-y-1/2,1/2)', '(0,-y,1/2)', '(0,y-1/2,1/2)'], }, - 'e': { + 'i': { 'multiplicity': 8, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(1/4,y,1/4)', - '(1/4,-y+1/2,3/4)', - '(3/4,-y,3/4)', - '(3/4,y+1/2,1/4)' - ] + 'site_symmetry': '..2', + 'coords_xyz': ['(0,y,0)', '(0,-y-1/2,0)', '(0,-y,0)', '(0,y-1/2,0)'], }, - 'd': { + 'h': { 'multiplicity': 8, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(0,1/2,0)', - '(1/2,0,0)', - '(1/2,1/2,0)' - ] + 'site_symmetry': '.2.', + 'coords_xyz': ['(0,-1/4,z)', '(0,-1/4,-z)', '(0,-3/4,-z)', '(0,-3/4,z)'], }, - 'c': { + 'g': { 'multiplicity': 8, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,1/4,3/4)', - '(0,1/4,1/4)', - '(1/2,3/4,3/4)', - '(1/2,3/4,1/4)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(3/4,0,1/4)', - '(1/4,0,3/4)' - ] + 'site_symmetry': '2..', + 'coords_xyz': ['(x,-1/4,0)', '(-x,-1/4,0)', '(-x,-3/4,0)', '(x,-3/4,0)'], }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/4,0,1/4)', - '(3/4,0,3/4)' - ] - } - } + 'f': {'multiplicity': 4, 'site_symmetry': '..2/m', 'coords_xyz': ['(1/4,0,3/4)', '(3/4,-1/2,3/4)']}, + 'e': {'multiplicity': 4, 'site_symmetry': '..2/m', 'coords_xyz': ['(1/4,0,1/4)', '(3/4,-1/2,1/4)']}, + 'd': {'multiplicity': 4, 'site_symmetry': '..2/m', 'coords_xyz': ['(0,0,1/2)', '(0,-1/2,1/2)']}, + 'c': {'multiplicity': 4, 'site_symmetry': '..2/m', 'coords_xyz': ['(0,0,0)', '(0,-1/2,0)']}, + 'b': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(0,-1/4,1/2)', '(0,-3/4,1/2)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(0,-1/4,0)', '(0,-3/4,0)']}, + }, }, - (68, '1-cba'): { - 'IT_number': 68, - 'setting': 9, - 'IT_coordinate_system_code': '1-cba', - 'name_H-M_alt': 'A e a a', + (67, 'abc'): { + 'IT_number': 67, + 'setting': 0, + 'IT_coordinate_system_code': 'abc', + 'name_H-M_alt': 'C m m e', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'i': { + 'o': { 'multiplicity': 16, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(x,-y+1/2,-z+1/2)', - '(-x,y,-z)', - '(-x,-y+1/2,z+1/2)', - '(-x-1/2,-y+1/2,-z)', - '(-x-1/2,y,z+1/2)', - '(x-1/2,-y+1/2,z)', - '(x-1/2,y,-z+1/2)' - ] + '(-x,-y+1/2,z)', + '(-x,y+1/2,-z)', + '(x,-y,-z)', + '(-x,-y,-z)', + '(x,y+1/2,-z)', + '(x,-y+1/2,z)', + '(-x,y,z)', + ], + }, + 'n': { + 'multiplicity': 8, + 'site_symmetry': '.m.', + 'coords_xyz': ['(x,1/4,z)', '(-x,1/4,z)', '(-x,3/4,-z)', '(x,3/4,-z)'], }, - 'h': { + 'm': { 'multiplicity': 8, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,1/4,1/4)', - '(-x,1/4,3/4)', - '(-x-1/2,1/4,3/4)', - '(x-1/2,1/4,1/4)' - ] + 'site_symmetry': 'm..', + 'coords_xyz': ['(0,y,z)', '(0,-y+1/2,z)', '(0,y+1/2,-z)', '(0,-y,-z)'], }, - 'g': { + 'l': { 'multiplicity': 8, 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)', - '(-x-1/2,1/2,0)', - '(x-1/2,1/2,0)' - ] + 'coords_xyz': ['(1/4,0,z)', '(3/4,1/2,-z)', '(3/4,0,-z)', '(1/4,1/2,z)'], }, - 'f': { + 'k': { 'multiplicity': 8, 'site_symmetry': '.2.', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y+1/2,1/2)', - '(-1/2,-y+1/2,0)', - '(-1/2,y,1/2)' - ] + 'coords_xyz': ['(1/4,y,1/2)', '(3/4,-y+1/2,1/2)', '(3/4,-y,1/2)', '(1/4,y+1/2,1/2)'], }, - 'e': { - 'multiplicity': 8, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,0,z)', - '(0,1/2,-z+1/2)', - '(-1/2,1/2,-z)', - '(-1/2,0,z+1/2)' - ] - }, - 'd': { + 'j': { 'multiplicity': 8, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(-1/4,1/4,0)', - '(-1/4,1/4,1/2)', - '(-3/4,1/4,0)', - '(-3/4,1/4,1/2)' - ] + 'site_symmetry': '.2.', + 'coords_xyz': ['(1/4,y,0)', '(3/4,-y+1/2,0)', '(3/4,-y,0)', '(1/4,y+1/2,0)'], }, - 'c': { + 'i': { 'multiplicity': 8, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(-1/4,0,1/4)', - '(-1/4,1/2,1/4)', - '(-3/4,0,3/4)', - '(-3/4,1/2,3/4)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(-1/2,0,0)', - '(0,1/2,0)' - ] + 'site_symmetry': '2..', + 'coords_xyz': ['(x,0,1/2)', '(-x,1/2,1/2)', '(-x,0,1/2)', '(x,1/2,1/2)'], }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,0)', - '(-1/2,1/2,0)' - ] - } - } + 'h': {'multiplicity': 8, 'site_symmetry': '2..', 'coords_xyz': ['(x,0,0)', '(-x,1/2,0)', '(-x,0,0)', '(x,1/2,0)']}, + 'g': {'multiplicity': 4, 'site_symmetry': 'mm2', 'coords_xyz': ['(0,1/4,z)', '(0,3/4,-z)']}, + 'f': {'multiplicity': 4, 'site_symmetry': '.2/m.', 'coords_xyz': ['(1/4,1/4,1/2)', '(3/4,1/4,1/2)']}, + 'e': {'multiplicity': 4, 'site_symmetry': '.2/m.', 'coords_xyz': ['(1/4,1/4,0)', '(3/4,1/4,0)']}, + 'd': {'multiplicity': 4, 'site_symmetry': '2/m..', 'coords_xyz': ['(0,0,1/2)', '(0,1/2,1/2)']}, + 'c': {'multiplicity': 4, 'site_symmetry': '2/m..', 'coords_xyz': ['(0,0,0)', '(0,1/2,0)']}, + 'b': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(1/4,0,1/2)', '(3/4,0,1/2)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(1/4,0,0)', '(3/4,0,0)']}, + }, }, - (68, '2-cba'): { - 'IT_number': 68, - 'setting': 15, - 'IT_coordinate_system_code': '2-cba', - 'name_H-M_alt': 'A e a a', + (67, 'ba-c'): { + 'IT_number': 67, + 'setting': 1, + 'IT_coordinate_system_code': 'ba-c', + 'name_H-M_alt': 'C m m e', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'i': { + 'o': { 'multiplicity': 16, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(x,-y,-z+1/2)', - '(-x-1/2,y,-z)', - '(-x-1/2,-y,z+1/2)', + '(-x+1/2,-y,z)', + '(x+1/2,-y,-z)', + '(-x,y,-z)', '(-x,-y,-z)', - '(-x,y,z+1/2)', - '(x-1/2,-y,z)', - '(x-1/2,y,-z+1/2)' - ] + '(x+1/2,y,-z)', + '(-x+1/2,y,z)', + '(x,-y,z)', + ], }, - 'h': { + 'n': { 'multiplicity': 8, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,0,1/4)', - '(-x-1/2,0,3/4)', - '(-x,0,3/4)', - '(x-1/2,0,1/4)' - ] + 'site_symmetry': '.m.', + 'coords_xyz': ['(1/4,y,z)', '(1/4,-y,z)', '(3/4,-y,-z)', '(3/4,y,-z)'], }, - 'g': { + 'm': { 'multiplicity': 8, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,1/4,0)', - '(-x-1/2,1/4,0)', - '(-x,3/4,0)', - '(x-1/2,3/4,0)' - ] + 'site_symmetry': 'm..', + 'coords_xyz': ['(x,0,z)', '(-x+1/2,0,z)', '(x+1/2,0,-z)', '(-x,0,-z)'], }, - 'f': { + 'l': { 'multiplicity': 8, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(-1/4,y,0)', - '(-1/4,-y,1/2)', - '(-3/4,-y,0)', - '(-3/4,y,1/2)' - ] + 'site_symmetry': '..2', + 'coords_xyz': ['(0,1/4,z)', '(1/2,3/4,-z)', '(0,3/4,-z)', '(1/2,1/4,z)'], }, - 'e': { + 'k': { 'multiplicity': 8, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(-1/4,1/4,z)', - '(-1/4,3/4,-z+1/2)', - '(-3/4,3/4,-z)', - '(-3/4,1/4,z+1/2)' - ] + 'site_symmetry': '.2.', + 'coords_xyz': ['(x,1/4,-1/2)', '(-x+1/2,3/4,-1/2)', '(-x,3/4,-1/2)', '(x+1/2,1/4,-1/2)'], }, - 'd': { + 'j': { 'multiplicity': 8, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(0,0,1/2)', - '(-1/2,0,0)', - '(-1/2,0,1/2)' - ] + 'site_symmetry': '.2.', + 'coords_xyz': ['(x,1/4,0)', '(-x+1/2,3/4,0)', '(-x,3/4,0)', '(x+1/2,1/4,0)'], }, - 'c': { + 'i': { 'multiplicity': 8, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,3/4,1/4)', - '(0,1/4,1/4)', - '(-1/2,3/4,3/4)', - '(-1/2,1/4,3/4)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(-3/4,1/4,0)', - '(-1/4,3/4,0)' - ] + 'site_symmetry': '2..', + 'coords_xyz': ['(0,y,-1/2)', '(1/2,-y,-1/2)', '(0,-y,-1/2)', '(1/2,y,-1/2)'], }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(-1/4,1/4,0)', - '(-3/4,3/4,0)' - ] - } - } + 'h': {'multiplicity': 8, 'site_symmetry': '2..', 'coords_xyz': ['(0,y,0)', '(1/2,-y,0)', '(0,-y,0)', '(1/2,y,0)']}, + 'g': {'multiplicity': 4, 'site_symmetry': 'mm2', 'coords_xyz': ['(1/4,0,z)', '(3/4,0,-z)']}, + 'f': {'multiplicity': 4, 'site_symmetry': '.2/m.', 'coords_xyz': ['(1/4,1/4,-1/2)', '(1/4,3/4,-1/2)']}, + 'e': {'multiplicity': 4, 'site_symmetry': '.2/m.', 'coords_xyz': ['(1/4,1/4,0)', '(1/4,3/4,0)']}, + 'd': {'multiplicity': 4, 'site_symmetry': '2/m..', 'coords_xyz': ['(0,0,-1/2)', '(1/2,0,-1/2)']}, + 'c': {'multiplicity': 4, 'site_symmetry': '2/m..', 'coords_xyz': ['(0,0,0)', '(1/2,0,0)']}, + 'b': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(0,1/4,-1/2)', '(0,3/4,-1/2)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(0,1/4,0)', '(0,3/4,0)']}, + }, }, - (68, '1bca'): { - 'IT_number': 68, - 'setting': 10, - 'IT_coordinate_system_code': '1bca', - 'name_H-M_alt': 'B b e b', + (67, 'cab'): { + 'IT_number': 67, + 'setting': 2, + 'IT_coordinate_system_code': 'cab', + 'name_H-M_alt': 'A e m m', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'i': { + 'o': { 'multiplicity': 16, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(-x+1/2,y,-z+1/2)', - '(x,-y,-z)', - '(-x+1/2,-y,z+1/2)', - '(-x+1/2,-y+1/2,-z)', - '(x,-y+1/2,z+1/2)', - '(-x+1/2,y+1/2,z)', - '(x,y+1/2,-z+1/2)' - ] + '(x,-y,-z+1/2)', + '(-x,-y,z+1/2)', + '(-x,y,-z)', + '(-x,-y,-z)', + '(-x,y,z+1/2)', + '(x,y,-z+1/2)', + '(x,-y,z)', + ], }, - 'h': { + 'n': { 'multiplicity': 8, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/4,y,1/4)', - '(1/4,-y,3/4)', - '(1/4,-y+1/2,3/4)', - '(1/4,y+1/2,1/4)' - ] + 'site_symmetry': '.m.', + 'coords_xyz': ['(x,y,1/4)', '(x,-y,1/4)', '(-x,-y,3/4)', '(-x,y,3/4)'], }, - 'g': { + 'm': { 'multiplicity': 8, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y,0)', - '(1/2,-y+1/2,0)', - '(1/2,y+1/2,0)' - ] + 'site_symmetry': 'm..', + 'coords_xyz': ['(x,0,z)', '(x,0,-z+1/2)', '(-x,0,z+1/2)', '(-x,0,-z)'], }, - 'f': { + 'l': { 'multiplicity': 8, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,0,0)', - '(-x+1/2,0,1/2)', - '(-x+1/2,1/2,0)', - '(x,1/2,1/2)' - ] + 'site_symmetry': '..2', + 'coords_xyz': ['(x,1/4,0)', '(-x,3/4,1/2)', '(-x,3/4,0)', '(x,1/4,1/2)'], }, - 'e': { + 'k': { 'multiplicity': 8, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,0,z)', - '(1/2,0,-z+1/2)', - '(1/2,1/2,-z)', - '(0,1/2,z+1/2)' - ] + 'site_symmetry': '.2.', + 'coords_xyz': ['(1/2,1/4,z)', '(1/2,3/4,-z+1/2)', '(1/2,3/4,-z)', '(1/2,1/4,z+1/2)'], }, - 'd': { + 'j': { 'multiplicity': 8, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/4,1/4,0)', - '(1/4,1/4,1/2)', - '(1/4,3/4,0)', - '(1/4,3/4,1/2)' - ] + 'site_symmetry': '.2.', + 'coords_xyz': ['(0,1/4,z)', '(0,3/4,-z+1/2)', '(0,3/4,-z)', '(0,1/4,z+1/2)'], }, - 'c': { + 'i': { 'multiplicity': 8, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,1/4,1/4)', - '(1/2,1/4,1/4)', - '(0,3/4,3/4)', - '(1/2,3/4,3/4)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,1/2,0)', - '(1/2,0,0)' - ] + 'site_symmetry': '2..', + 'coords_xyz': ['(1/2,y,0)', '(1/2,-y,1/2)', '(1/2,-y,0)', '(1/2,y,1/2)'], }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,1/2,0)' - ] - } - } + 'h': {'multiplicity': 8, 'site_symmetry': '2..', 'coords_xyz': ['(0,y,0)', '(0,-y,1/2)', '(0,-y,0)', '(0,y,1/2)']}, + 'g': {'multiplicity': 4, 'site_symmetry': 'mm2', 'coords_xyz': ['(x,0,1/4)', '(-x,0,3/4)']}, + 'f': {'multiplicity': 4, 'site_symmetry': '.2/m.', 'coords_xyz': ['(1/2,1/4,1/4)', '(1/2,3/4,1/4)']}, + 'e': {'multiplicity': 4, 'site_symmetry': '.2/m.', 'coords_xyz': ['(0,1/4,1/4)', '(0,3/4,1/4)']}, + 'd': {'multiplicity': 4, 'site_symmetry': '2/m..', 'coords_xyz': ['(1/2,0,0)', '(1/2,0,1/2)']}, + 'c': {'multiplicity': 4, 'site_symmetry': '2/m..', 'coords_xyz': ['(0,0,0)', '(0,0,1/2)']}, + 'b': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(1/2,1/4,0)', '(1/2,3/4,0)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(0,1/4,0)', '(0,3/4,0)']}, + }, }, - (68, '2bca'): { - 'IT_number': 68, - 'setting': 16, - 'IT_coordinate_system_code': '2bca', - 'name_H-M_alt': 'B b e b', + (67, '-cba'): { + 'IT_number': 67, + 'setting': 3, + 'IT_coordinate_system_code': '-cba', + 'name_H-M_alt': 'A e m m', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'i': { + 'o': { 'multiplicity': 16, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(-x,y,-z+1/2)', '(x,-y+1/2,-z)', - '(-x,-y+1/2,z+1/2)', + '(-x,y+1/2,-z)', + '(-x,-y,z)', '(-x,-y,-z)', - '(x,-y,z+1/2)', '(-x,y+1/2,z)', - '(x,y+1/2,-z+1/2)' - ] + '(x,-y+1/2,z)', + '(x,y,-z)', + ], }, - 'h': { + 'n': { 'multiplicity': 8, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,y,1/4)', - '(0,-y+1/2,3/4)', - '(0,-y,3/4)', - '(0,y+1/2,1/4)' - ] + 'site_symmetry': '.m.', + 'coords_xyz': ['(x,1/4,z)', '(x,1/4,-z)', '(-x,3/4,-z)', '(-x,3/4,z)'], }, - 'g': { + 'm': { 'multiplicity': 8, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/4,y,0)', - '(1/4,-y+1/2,0)', - '(3/4,-y,0)', - '(3/4,y+1/2,0)' - ] + 'site_symmetry': 'm..', + 'coords_xyz': ['(x,y,0)', '(x,-y+1/2,0)', '(-x,y+1/2,0)', '(-x,-y,0)'], }, - 'f': { + 'l': { 'multiplicity': 8, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,1/4,0)', - '(-x,1/4,1/2)', - '(-x,3/4,0)', - '(x,3/4,1/2)' - ] + 'site_symmetry': '..2', + 'coords_xyz': ['(x,0,1/4)', '(-x,1/2,3/4)', '(-x,0,3/4)', '(x,1/2,1/4)'], }, - 'e': { + 'k': { 'multiplicity': 8, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(1/4,1/4,z)', - '(3/4,1/4,-z+1/2)', - '(3/4,3/4,-z)', - '(1/4,3/4,z+1/2)' - ] + 'site_symmetry': '.2.', + 'coords_xyz': ['(-1/2,y,1/4)', '(-1/2,-y+1/2,3/4)', '(-1/2,-y,3/4)', '(-1/2,y+1/2,1/4)'], }, - 'd': { + 'j': { 'multiplicity': 8, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(0,0,1/2)', - '(0,1/2,0)', - '(0,1/2,1/2)' - ] + 'site_symmetry': '.2.', + 'coords_xyz': ['(0,y,1/4)', '(0,-y+1/2,3/4)', '(0,-y,3/4)', '(0,y+1/2,1/4)'], }, - 'c': { + 'i': { 'multiplicity': 8, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(3/4,0,1/4)', - '(1/4,0,1/4)', - '(3/4,1/2,3/4)', - '(1/4,1/2,3/4)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/4,3/4,0)', - '(3/4,1/4,0)' - ] + 'site_symmetry': '2..', + 'coords_xyz': ['(-1/2,0,z)', '(-1/2,1/2,-z)', '(-1/2,0,-z)', '(-1/2,1/2,z)'], }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/4,1/4,0)', - '(3/4,3/4,0)' - ] - } - } + 'h': {'multiplicity': 8, 'site_symmetry': '2..', 'coords_xyz': ['(0,0,z)', '(0,1/2,-z)', '(0,0,-z)', '(0,1/2,z)']}, + 'g': {'multiplicity': 4, 'site_symmetry': 'mm2', 'coords_xyz': ['(x,1/4,0)', '(-x,3/4,0)']}, + 'f': {'multiplicity': 4, 'site_symmetry': '.2/m.', 'coords_xyz': ['(-1/2,1/4,1/4)', '(-1/2,1/4,3/4)']}, + 'e': {'multiplicity': 4, 'site_symmetry': '.2/m.', 'coords_xyz': ['(0,1/4,1/4)', '(0,1/4,3/4)']}, + 'd': {'multiplicity': 4, 'site_symmetry': '2/m..', 'coords_xyz': ['(-1/2,0,0)', '(-1/2,1/2,0)']}, + 'c': {'multiplicity': 4, 'site_symmetry': '2/m..', 'coords_xyz': ['(0,0,0)', '(0,1/2,0)']}, + 'b': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(-1/2,0,1/4)', '(-1/2,0,3/4)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(0,0,1/4)', '(0,0,3/4)']}, + }, }, - (68, '2a-cb'): { - 'IT_number': 68, - 'setting': 17, - 'IT_coordinate_system_code': '2a-cb', - 'name_H-M_alt': 'B b e b', + (67, 'bca'): { + 'IT_number': 67, + 'setting': 4, + 'IT_coordinate_system_code': 'bca', + 'name_H-M_alt': 'B m e m', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'i': { + 'o': { 'multiplicity': 16, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', '(-x+1/2,y,-z)', - '(-x,-y-1/2,z)', - '(x+1/2,-y-1/2,-z)', + '(x+1/2,-y,-z)', + '(-x,-y,z)', '(-x,-y,-z)', '(x+1/2,-y,z)', - '(x,y-1/2,-z)', - '(-x+1/2,y-1/2,z)' - ] + '(-x+1/2,y,z)', + '(x,y,-z)', + ], }, - 'h': { + 'n': { 'multiplicity': 8, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/4,y,0)', - '(3/4,-y-1/2,0)', - '(3/4,-y,0)', - '(1/4,y-1/2,0)' - ] + 'site_symmetry': '.m.', + 'coords_xyz': ['(1/4,y,z)', '(1/4,y,-z)', '(3/4,-y,-z)', '(3/4,-y,z)'], }, - 'g': { + 'm': { 'multiplicity': 8, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,y,1/4)', - '(0,-y-1/2,1/4)', - '(0,-y,3/4)', - '(0,y-1/2,3/4)' - ] + 'site_symmetry': 'm..', + 'coords_xyz': ['(x,y,0)', '(-x+1/2,y,0)', '(x+1/2,-y,0)', '(-x,-y,0)'], }, - 'f': { + 'l': { 'multiplicity': 8, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(0,-1/4,z)', - '(1/2,-1/4,-z)', - '(0,-3/4,-z)', - '(1/2,-3/4,z)' - ] + 'site_symmetry': '..2', + 'coords_xyz': ['(0,y,1/4)', '(1/2,-y,3/4)', '(0,-y,3/4)', '(1/2,y,1/4)'], }, - 'e': { + 'k': { 'multiplicity': 8, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(x,-1/4,1/4)', - '(-x+1/2,-1/4,3/4)', - '(-x,-3/4,3/4)', - '(x+1/2,-3/4,1/4)' - ] + 'site_symmetry': '.2.', + 'coords_xyz': ['(x,1/2,1/4)', '(-x+1/2,1/2,3/4)', '(-x,1/2,3/4)', '(x+1/2,1/2,1/4)'], }, - 'd': { + 'j': { 'multiplicity': 8, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,0,0)', - '(0,-1/2,0)', - '(1/2,-1/2,0)' - ] + 'site_symmetry': '.2.', + 'coords_xyz': ['(x,0,1/4)', '(-x+1/2,0,3/4)', '(-x,0,3/4)', '(x+1/2,0,1/4)'], }, - 'c': { + 'i': { 'multiplicity': 8, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/4,0,3/4)', - '(1/4,0,1/4)', - '(3/4,-1/2,3/4)', - '(3/4,-1/2,1/4)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,-3/4,1/4)', - '(0,-1/4,3/4)' - ] + 'site_symmetry': '2..', + 'coords_xyz': ['(0,1/2,z)', '(1/2,1/2,-z)', '(0,1/2,-z)', '(1/2,1/2,z)'], }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,-1/4,1/4)', - '(0,-3/4,3/4)' - ] - } - } + 'h': {'multiplicity': 8, 'site_symmetry': '2..', 'coords_xyz': ['(0,0,z)', '(1/2,0,-z)', '(0,0,-z)', '(1/2,0,z)']}, + 'g': {'multiplicity': 4, 'site_symmetry': 'mm2', 'coords_xyz': ['(1/4,y,0)', '(3/4,-y,0)']}, + 'f': {'multiplicity': 4, 'site_symmetry': '.2/m.', 'coords_xyz': ['(1/4,1/2,1/4)', '(1/4,1/2,3/4)']}, + 'e': {'multiplicity': 4, 'site_symmetry': '.2/m.', 'coords_xyz': ['(1/4,0,1/4)', '(1/4,0,3/4)']}, + 'd': {'multiplicity': 4, 'site_symmetry': '2/m..', 'coords_xyz': ['(0,1/2,0)', '(1/2,1/2,0)']}, + 'c': {'multiplicity': 4, 'site_symmetry': '2/m..', 'coords_xyz': ['(0,0,0)', '(1/2,0,0)']}, + 'b': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(0,1/2,1/4)', '(0,1/2,3/4)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(0,0,1/4)', '(0,0,3/4)']}, + }, }, - (69, 'abc'): { - 'IT_number': 69, - 'setting': 0, - 'IT_coordinate_system_code': 'abc', - 'name_H-M_alt': 'F m m m', + (67, 'a-cb'): { + 'IT_number': 67, + 'setting': 5, + 'IT_coordinate_system_code': 'a-cb', + 'name_H-M_alt': 'B m e m', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'p': { - 'multiplicity': 32, + 'o': { + 'multiplicity': 16, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(-x,-y,z)', - '(-x,y,-z)', + '(-x,y,-z+1/2)', + '(-x,-y,z+1/2)', '(x,-y,-z)', '(-x,-y,-z)', - '(x,y,-z)', - '(x,-y,z)', - '(-x,y,z)' - ] - }, - 'o': { - 'multiplicity': 16, - 'site_symmetry': '..m', - 'coords_xyz': [ - '(x,y,0)', - '(-x,-y,0)', - '(-x,y,0)', - '(x,-y,0)' - ] + '(x,-y,z+1/2)', + '(x,y,-z+1/2)', + '(-x,y,z)', + ], }, 'n': { - 'multiplicity': 16, + 'multiplicity': 8, 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,0,z)', - '(-x,0,z)', - '(-x,0,-z)', - '(x,0,-z)' - ] + 'coords_xyz': ['(x,y,1/4)', '(-x,y,1/4)', '(-x,-y,3/4)', '(x,-y,3/4)'], }, 'm': { - 'multiplicity': 16, + 'multiplicity': 8, 'site_symmetry': 'm..', - 'coords_xyz': [ - '(0,y,z)', - '(0,-y,z)', - '(0,y,-z)', - '(0,-y,-z)' - ] + 'coords_xyz': ['(0,y,z)', '(0,y,-z+1/2)', '(0,-y,z+1/2)', '(0,-y,-z)'], }, 'l': { - 'multiplicity': 16, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(x,1/4,1/4)', - '(-x,3/4,1/4)', - '(-x,3/4,3/4)', - '(x,1/4,3/4)' - ] + 'multiplicity': 8, + 'site_symmetry': '..2', + 'coords_xyz': ['(1/4,y,0)', '(3/4,-y,1/2)', '(3/4,-y,0)', '(1/4,y,1/2)'], }, 'k': { - 'multiplicity': 16, + 'multiplicity': 8, 'site_symmetry': '.2.', - 'coords_xyz': [ - '(1/4,y,1/4)', - '(3/4,-y,1/4)', - '(3/4,-y,3/4)', - '(1/4,y,3/4)' - ] + 'coords_xyz': ['(1/4,-1/2,z)', '(3/4,-1/2,-z+1/2)', '(3/4,-1/2,-z)', '(1/4,-1/2,z+1/2)'], }, 'j': { - 'multiplicity': 16, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/4,1/4,z)', - '(3/4,1/4,-z)', - '(3/4,3/4,-z)', - '(1/4,3/4,z)' - ] + 'multiplicity': 8, + 'site_symmetry': '.2.', + 'coords_xyz': ['(1/4,0,z)', '(3/4,0,-z+1/2)', '(3/4,0,-z)', '(1/4,0,z+1/2)'], }, 'i': { 'multiplicity': 8, - 'site_symmetry': 'mm2', + 'site_symmetry': '2..', + 'coords_xyz': ['(x,-1/2,0)', '(-x,-1/2,1/2)', '(-x,-1/2,0)', '(x,-1/2,1/2)'], + }, + 'h': {'multiplicity': 8, 'site_symmetry': '2..', 'coords_xyz': ['(x,0,0)', '(-x,0,1/2)', '(-x,0,0)', '(x,0,1/2)']}, + 'g': {'multiplicity': 4, 'site_symmetry': 'mm2', 'coords_xyz': ['(0,y,1/4)', '(0,-y,3/4)']}, + 'f': {'multiplicity': 4, 'site_symmetry': '.2/m.', 'coords_xyz': ['(1/4,-1/2,1/4)', '(3/4,-1/2,1/4)']}, + 'e': {'multiplicity': 4, 'site_symmetry': '.2/m.', 'coords_xyz': ['(1/4,0,1/4)', '(3/4,0,1/4)']}, + 'd': {'multiplicity': 4, 'site_symmetry': '2/m..', 'coords_xyz': ['(0,-1/2,0)', '(0,-1/2,1/2)']}, + 'c': {'multiplicity': 4, 'site_symmetry': '2/m..', 'coords_xyz': ['(0,0,0)', '(0,0,1/2)']}, + 'b': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(1/4,-1/2,0)', '(3/4,-1/2,0)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(1/4,0,0)', '(3/4,0,0)']}, + }, + }, + (68, '1abc'): { + 'IT_number': 68, + 'setting': 6, + 'IT_coordinate_system_code': '1abc', + 'name_H-M_alt': 'C c c e', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'i': { + 'multiplicity': 16, + 'site_symmetry': '1', 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)' - ] + '(x,y,z)', + '(-x+1/2,-y+1/2,z)', + '(-x,y,-z)', + '(x+1/2,-y+1/2,-z)', + '(-x,-y+1/2,-z+1/2)', + '(x+1/2,y,-z+1/2)', + '(x,-y+1/2,z+1/2)', + '(-x+1/2,y,z+1/2)', + ], }, 'h': { 'multiplicity': 8, - 'site_symmetry': 'm2m', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y,0)' - ] + 'site_symmetry': '..2', + 'coords_xyz': ['(1/4,1/4,z)', '(3/4,1/4,-z)', '(3/4,1/4,-z+1/2)', '(1/4,1/4,z+1/2)'], }, 'g': { 'multiplicity': 8, - 'site_symmetry': '2mm', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)' - ] + 'site_symmetry': '..2', + 'coords_xyz': ['(0,0,z)', '(0,0,-z)', '(0,1/2,-z+1/2)', '(0,1/2,z+1/2)'], }, 'f': { 'multiplicity': 8, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/4,1/4,1/4)', - '(3/4,3/4,3/4)' - ] + 'site_symmetry': '.2.', + 'coords_xyz': ['(0,y,0)', '(1/2,-y+1/2,0)', '(0,-y+1/2,1/2)', '(1/2,y,1/2)'], }, 'e': { 'multiplicity': 8, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(1/4,1/4,0)', - '(3/4,1/4,0)' - ] + 'site_symmetry': '2..', + 'coords_xyz': ['(x,0,0)', '(-x+1/2,1/2,0)', '(-x,1/2,1/2)', '(x+1/2,0,1/2)'], }, 'd': { 'multiplicity': 8, - 'site_symmetry': '.2/m.', - 'coords_xyz': [ - '(1/4,0,1/4)', - '(3/4,0,1/4)' - ] + 'site_symmetry': '-1', + 'coords_xyz': ['(0,1/4,1/4)', '(1/2,1/4,1/4)', '(0,1/4,3/4)', '(1/2,1/4,3/4)'], }, 'c': { 'multiplicity': 8, - 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(0,1/4,1/4)', - '(0,3/4,1/4)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(0,0,1/2)' - ] + 'site_symmetry': '-1', + 'coords_xyz': ['(1/4,0,1/4)', '(1/4,1/2,1/4)', '(3/4,0,3/4)', '(3/4,1/2,3/4)'], }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'b': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(0,0,1/2)', '(0,1/2,0)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(0,0,0)', '(0,1/2,1/2)']}, + }, }, - (69, 'ba-c'): { - 'IT_number': 69, - 'setting': 1, - 'IT_coordinate_system_code': 'ba-c', - 'name_H-M_alt': 'F m m m', + (68, '2abc'): { + 'IT_number': 68, + 'setting': 12, + 'IT_coordinate_system_code': '2abc', + 'name_H-M_alt': 'C c c e', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'p': { - 'multiplicity': 32, + 'i': { + 'multiplicity': 16, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(-x,-y,z)', - '(x,-y,-z)', - '(-x,y,-z)', - '(-x,-y,-z)', - '(x,y,-z)', - '(-x,y,z)', - '(x,-y,z)' - ] - }, - 'o': { - 'multiplicity': 16, - 'site_symmetry': '..m', - 'coords_xyz': [ - '(x,y,0)', - '(-x,-y,0)', - '(x,-y,0)', - '(-x,y,0)' - ] - }, - 'n': { - 'multiplicity': 16, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(0,y,z)', - '(0,-y,z)', - '(0,-y,-z)', - '(0,y,-z)' - ] - }, - 'm': { - 'multiplicity': 16, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,0,z)', - '(-x,0,z)', - '(x,0,-z)', - '(-x,0,-z)' - ] - }, - 'l': { - 'multiplicity': 16, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(1/4,y,-1/4)', - '(3/4,-y,-1/4)', - '(3/4,-y,-3/4)', - '(1/4,y,-3/4)' - ] - }, - 'k': { - 'multiplicity': 16, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,1/4,-1/4)', - '(-x,3/4,-1/4)', - '(-x,3/4,-3/4)', - '(x,1/4,-3/4)' - ] - }, - 'j': { - 'multiplicity': 16, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/4,1/4,z)', - '(1/4,3/4,-z)', - '(3/4,3/4,-z)', - '(3/4,1/4,z)' - ] - }, - 'i': { - 'multiplicity': 8, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)' - ] + '(-x+1/2,-y,z)', + '(-x,y,-z+1/2)', + '(x+1/2,-y,-z+1/2)', + '(-x,-y,-z)', + '(x+1/2,y,-z)', + '(x,-y,z+1/2)', + '(-x+1/2,y,z+1/2)', + ], }, 'h': { 'multiplicity': 8, - 'site_symmetry': 'm2m', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)' - ] + 'site_symmetry': '..2', + 'coords_xyz': ['(1/4,0,z)', '(3/4,0,-z+1/2)', '(3/4,0,-z)', '(1/4,0,z+1/2)'], }, 'g': { 'multiplicity': 8, - 'site_symmetry': '2mm', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y,0)' - ] + 'site_symmetry': '..2', + 'coords_xyz': ['(0,1/4,z)', '(0,1/4,-z+1/2)', '(0,3/4,-z)', '(0,3/4,z+1/2)'], }, 'f': { 'multiplicity': 8, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/4,1/4,-1/4)', - '(3/4,3/4,-3/4)' - ] + 'site_symmetry': '.2.', + 'coords_xyz': ['(0,y,1/4)', '(1/2,-y,1/4)', '(0,-y,3/4)', '(1/2,y,3/4)'], }, 'e': { 'multiplicity': 8, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(1/4,1/4,0)', - '(1/4,3/4,0)' - ] + 'site_symmetry': '2..', + 'coords_xyz': ['(x,1/4,1/4)', '(-x+1/2,3/4,1/4)', '(-x,3/4,3/4)', '(x+1/2,1/4,3/4)'], }, 'd': { 'multiplicity': 8, - 'site_symmetry': '.2/m.', - 'coords_xyz': [ - '(0,1/4,-1/4)', - '(0,3/4,-1/4)' - ] + 'site_symmetry': '-1', + 'coords_xyz': ['(0,0,0)', '(1/2,0,0)', '(0,0,1/2)', '(1/2,0,1/2)'], }, 'c': { 'multiplicity': 8, - 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(1/4,0,-1/4)', - '(3/4,0,-1/4)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(0,0,-1/2)' - ] + 'site_symmetry': '-1', + 'coords_xyz': ['(1/4,3/4,0)', '(1/4,1/4,0)', '(3/4,3/4,1/2)', '(3/4,1/4,1/2)'], }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'b': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(0,1/4,3/4)', '(0,3/4,1/4)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(0,1/4,1/4)', '(0,3/4,3/4)']}, + }, }, - (69, 'cab'): { - 'IT_number': 69, - 'setting': 2, - 'IT_coordinate_system_code': 'cab', - 'name_H-M_alt': 'F m m m', + (68, '1ba-c'): { + 'IT_number': 68, + 'setting': 7, + 'IT_coordinate_system_code': '1ba-c', + 'name_H-M_alt': 'C c c e', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'p': { - 'multiplicity': 32, + 'i': { + 'multiplicity': 16, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', + '(-x+1/2,-y+1/2,z)', '(x,-y,-z)', - '(-x,-y,z)', - '(-x,y,-z)', - '(-x,-y,-z)', - '(-x,y,z)', - '(x,y,-z)', - '(x,-y,z)' - ] + '(-x+1/2,y+1/2,-z)', + '(-x+1/2,-y,-z-1/2)', + '(x,y+1/2,-z-1/2)', + '(-x+1/2,y,z-1/2)', + '(x,-y+1/2,z-1/2)', + ], }, - 'o': { - 'multiplicity': 16, - 'site_symmetry': '..m', - 'coords_xyz': [ - '(0,y,z)', - '(0,-y,-z)', - '(0,-y,z)', - '(0,y,-z)' - ] + 'h': { + 'multiplicity': 8, + 'site_symmetry': '..2', + 'coords_xyz': ['(1/4,1/4,z)', '(1/4,3/4,-z)', '(1/4,3/4,-z-1/2)', '(1/4,1/4,z-1/2)'], }, - 'n': { - 'multiplicity': 16, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,y,0)', - '(x,-y,0)', - '(-x,-y,0)', - '(-x,y,0)' - ] + 'g': { + 'multiplicity': 8, + 'site_symmetry': '..2', + 'coords_xyz': ['(0,0,z)', '(0,0,-z)', '(1/2,0,-z-1/2)', '(1/2,0,z-1/2)'], }, - 'm': { - 'multiplicity': 16, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,0,z)', - '(x,0,-z)', - '(-x,0,z)', - '(-x,0,-z)' - ] + 'f': { + 'multiplicity': 8, + 'site_symmetry': '.2.', + 'coords_xyz': ['(x,0,0)', '(-x+1/2,1/2,0)', '(-x+1/2,0,-1/2)', '(x,1/2,-1/2)'], }, - 'l': { - 'multiplicity': 16, + 'e': { + 'multiplicity': 8, 'site_symmetry': '2..', - 'coords_xyz': [ - '(1/4,y,1/4)', - '(1/4,-y,3/4)', - '(3/4,-y,3/4)', - '(3/4,y,1/4)' - ] + 'coords_xyz': ['(0,y,0)', '(1/2,-y+1/2,0)', '(1/2,-y,-1/2)', '(0,y+1/2,-1/2)'], }, - 'k': { - 'multiplicity': 16, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(1/4,1/4,z)', - '(1/4,3/4,-z)', - '(3/4,3/4,-z)', - '(3/4,1/4,z)' - ] + 'd': { + 'multiplicity': 8, + 'site_symmetry': '-1', + 'coords_xyz': ['(1/4,0,-1/4)', '(1/4,1/2,-1/4)', '(1/4,0,-3/4)', '(1/4,1/2,-3/4)'], }, - 'j': { - 'multiplicity': 16, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,1/4,1/4)', - '(-x,3/4,1/4)', - '(-x,3/4,3/4)', - '(x,1/4,3/4)' - ] + 'c': { + 'multiplicity': 8, + 'site_symmetry': '-1', + 'coords_xyz': ['(0,1/4,-1/4)', '(1/2,1/4,-1/4)', '(0,3/4,-3/4)', '(1/2,3/4,-3/4)'], }, + 'b': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(0,0,-1/2)', '(1/2,0,0)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(0,0,0)', '(1/2,0,-1/2)']}, + }, + }, + (68, '2ba-c'): { + 'IT_number': 68, + 'setting': 13, + 'IT_coordinate_system_code': '2ba-c', + 'name_H-M_alt': 'C c c e', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { 'i': { - 'multiplicity': 8, - 'site_symmetry': 'mm2', + 'multiplicity': 16, + 'site_symmetry': '1', 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)' - ] + '(x,y,z)', + '(-x,-y+1/2,z)', + '(x,-y,-z-1/2)', + '(-x,y+1/2,-z-1/2)', + '(-x,-y,-z)', + '(x,y+1/2,-z)', + '(-x,y,z-1/2)', + '(x,-y+1/2,z-1/2)', + ], }, 'h': { 'multiplicity': 8, - 'site_symmetry': 'm2m', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)' - ] + 'site_symmetry': '..2', + 'coords_xyz': ['(0,1/4,z)', '(0,3/4,-z-1/2)', '(0,3/4,-z)', '(0,1/4,z-1/2)'], }, 'g': { 'multiplicity': 8, - 'site_symmetry': '2mm', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y,0)' - ] + 'site_symmetry': '..2', + 'coords_xyz': ['(1/4,0,z)', '(1/4,0,-z-1/2)', '(3/4,0,-z)', '(3/4,0,z-1/2)'], }, 'f': { 'multiplicity': 8, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/4,1/4,1/4)', - '(3/4,3/4,3/4)' - ] + 'site_symmetry': '.2.', + 'coords_xyz': ['(x,0,-1/4)', '(-x,1/2,-1/4)', '(-x,0,-3/4)', '(x,1/2,-3/4)'], }, 'e': { 'multiplicity': 8, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(0,1/4,1/4)', - '(0,3/4,1/4)' - ] + 'site_symmetry': '2..', + 'coords_xyz': ['(1/4,y,-1/4)', '(3/4,-y+1/2,-1/4)', '(3/4,-y,-3/4)', '(1/4,y+1/2,-3/4)'], }, 'd': { 'multiplicity': 8, - 'site_symmetry': '.2/m.', - 'coords_xyz': [ - '(1/4,1/4,0)', - '(1/4,3/4,0)' - ] + 'site_symmetry': '-1', + 'coords_xyz': ['(0,0,0)', '(0,1/2,0)', '(0,0,-1/2)', '(0,1/2,-1/2)'], }, 'c': { 'multiplicity': 8, - 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(1/4,0,1/4)', - '(1/4,0,3/4)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(1/2,0,0)' - ] + 'site_symmetry': '-1', + 'coords_xyz': ['(3/4,1/4,0)', '(1/4,1/4,0)', '(3/4,3/4,-1/2)', '(1/4,3/4,-1/2)'], }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'b': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(1/4,0,-3/4)', '(3/4,0,-1/4)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(1/4,0,-1/4)', '(3/4,0,-3/4)']}, + }, }, - (69, '-cba'): { - 'IT_number': 69, - 'setting': 3, - 'IT_coordinate_system_code': '-cba', - 'name_H-M_alt': 'F m m m', + (68, '1cab'): { + 'IT_number': 68, + 'setting': 8, + 'IT_coordinate_system_code': '1cab', + 'name_H-M_alt': 'A e a a', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'p': { - 'multiplicity': 32, + 'i': { + 'multiplicity': 16, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(x,-y,-z)', - '(-x,y,-z)', + '(x,-y+1/2,-z+1/2)', '(-x,-y,z)', - '(-x,-y,-z)', - '(-x,y,z)', - '(x,-y,z)', - '(x,y,-z)' - ] + '(-x,y+1/2,-z+1/2)', + '(-x+1/2,-y,-z+1/2)', + '(-x+1/2,y+1/2,z)', + '(x+1/2,y,-z+1/2)', + '(x+1/2,-y+1/2,z)', + ], }, - 'o': { - 'multiplicity': 16, - 'site_symmetry': '..m', - 'coords_xyz': [ - '(0,y,z)', - '(0,-y,-z)', - '(0,y,-z)', - '(0,-y,z)' - ] + 'h': { + 'multiplicity': 8, + 'site_symmetry': '..2', + 'coords_xyz': ['(x,1/4,1/4)', '(-x,3/4,1/4)', '(-x+1/2,3/4,1/4)', '(x+1/2,1/4,1/4)'], }, - 'n': { - 'multiplicity': 16, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,0,z)', - '(x,0,-z)', - '(-x,0,-z)', - '(-x,0,z)' - ] + 'g': { + 'multiplicity': 8, + 'site_symmetry': '..2', + 'coords_xyz': ['(x,0,0)', '(-x,0,0)', '(-x+1/2,0,1/2)', '(x+1/2,0,1/2)'], }, - 'm': { - 'multiplicity': 16, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,y,0)', - '(x,-y,0)', - '(-x,y,0)', - '(-x,-y,0)' - ] + 'f': { + 'multiplicity': 8, + 'site_symmetry': '.2.', + 'coords_xyz': ['(0,0,z)', '(0,1/2,-z+1/2)', '(1/2,0,-z+1/2)', '(1/2,1/2,z)'], }, - 'l': { - 'multiplicity': 16, + 'e': { + 'multiplicity': 8, 'site_symmetry': '2..', - 'coords_xyz': [ - '(-1/4,1/4,z)', - '(-1/4,3/4,-z)', - '(-3/4,3/4,-z)', - '(-3/4,1/4,z)' - ] + 'coords_xyz': ['(0,y,0)', '(0,-y+1/2,1/2)', '(1/2,-y,1/2)', '(1/2,y+1/2,0)'], }, - 'k': { - 'multiplicity': 16, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(-1/4,y,1/4)', - '(-1/4,-y,3/4)', - '(-3/4,-y,3/4)', - '(-3/4,y,1/4)' - ] + 'd': { + 'multiplicity': 8, + 'site_symmetry': '-1', + 'coords_xyz': ['(1/4,0,1/4)', '(1/4,1/2,1/4)', '(3/4,0,1/4)', '(3/4,1/2,1/4)'], }, - 'j': { - 'multiplicity': 16, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,1/4,1/4)', - '(-x,1/4,3/4)', - '(-x,3/4,3/4)', - '(x,3/4,1/4)' - ] + 'c': { + 'multiplicity': 8, + 'site_symmetry': '-1', + 'coords_xyz': ['(1/4,1/4,0)', '(1/4,1/4,1/2)', '(3/4,3/4,0)', '(3/4,3/4,1/2)'], }, + 'b': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(1/2,0,0)', '(0,0,1/2)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(0,0,0)', '(1/2,0,1/2)']}, + }, + }, + (68, '2cab'): { + 'IT_number': 68, + 'setting': 14, + 'IT_coordinate_system_code': '2cab', + 'name_H-M_alt': 'A e a a', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { 'i': { - 'multiplicity': 8, - 'site_symmetry': 'mm2', + 'multiplicity': 16, + 'site_symmetry': '1', 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)' - ] + '(x,y,z)', + '(x,-y+1/2,-z)', + '(-x+1/2,-y,z)', + '(-x+1/2,y+1/2,-z)', + '(-x,-y,-z)', + '(-x,y+1/2,z)', + '(x+1/2,y,-z)', + '(x+1/2,-y+1/2,z)', + ], }, 'h': { 'multiplicity': 8, - 'site_symmetry': 'm2m', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y,0)' - ] + 'site_symmetry': '..2', + 'coords_xyz': ['(x,1/4,0)', '(-x+1/2,3/4,0)', '(-x,3/4,0)', '(x+1/2,1/4,0)'], }, 'g': { 'multiplicity': 8, - 'site_symmetry': '2mm', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)' - ] + 'site_symmetry': '..2', + 'coords_xyz': ['(x,0,1/4)', '(-x+1/2,0,1/4)', '(-x,0,3/4)', '(x+1/2,0,3/4)'], }, 'f': { 'multiplicity': 8, - 'site_symmetry': '222', - 'coords_xyz': [ - '(-1/4,1/4,1/4)', - '(-3/4,3/4,3/4)' - ] + 'site_symmetry': '.2.', + 'coords_xyz': ['(1/4,0,z)', '(1/4,1/2,-z)', '(3/4,0,-z)', '(3/4,1/2,z)'], }, 'e': { 'multiplicity': 8, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(0,1/4,1/4)', - '(0,1/4,3/4)' - ] + 'site_symmetry': '2..', + 'coords_xyz': ['(1/4,y,1/4)', '(1/4,-y+1/2,3/4)', '(3/4,-y,3/4)', '(3/4,y+1/2,1/4)'], }, 'd': { 'multiplicity': 8, - 'site_symmetry': '.2/m.', - 'coords_xyz': [ - '(-1/4,0,1/4)', - '(-1/4,0,3/4)' - ] + 'site_symmetry': '-1', + 'coords_xyz': ['(0,0,0)', '(0,1/2,0)', '(1/2,0,0)', '(1/2,1/2,0)'], }, 'c': { 'multiplicity': 8, - 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(-1/4,1/4,0)', - '(-1/4,3/4,0)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(-1/2,0,0)' - ] + 'site_symmetry': '-1', + 'coords_xyz': ['(0,1/4,3/4)', '(0,1/4,1/4)', '(1/2,3/4,3/4)', '(1/2,3/4,1/4)'], }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'b': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(3/4,0,1/4)', '(1/4,0,3/4)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(1/4,0,1/4)', '(3/4,0,3/4)']}, + }, }, - (69, 'bca'): { - 'IT_number': 69, - 'setting': 4, - 'IT_coordinate_system_code': 'bca', - 'name_H-M_alt': 'F m m m', + (68, '1-cba'): { + 'IT_number': 68, + 'setting': 9, + 'IT_coordinate_system_code': '1-cba', + 'name_H-M_alt': 'A e a a', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'p': { - 'multiplicity': 32, + 'i': { + 'multiplicity': 16, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', + '(x,-y+1/2,-z+1/2)', '(-x,y,-z)', - '(x,-y,-z)', - '(-x,-y,z)', - '(-x,-y,-z)', - '(x,-y,z)', - '(-x,y,z)', - '(x,y,-z)' - ] - }, - 'o': { - 'multiplicity': 16, - 'site_symmetry': '..m', - 'coords_xyz': [ - '(x,0,z)', - '(-x,0,-z)', - '(x,0,-z)', - '(-x,0,z)' - ] - }, - 'n': { - 'multiplicity': 16, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(0,y,z)', - '(0,y,-z)', - '(0,-y,-z)', - '(0,-y,z)' - ] - }, - 'm': { - 'multiplicity': 16, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,y,0)', - '(-x,y,0)', - '(x,-y,0)', - '(-x,-y,0)' - ] - }, - 'l': { - 'multiplicity': 16, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(1/4,1/4,z)', - '(3/4,1/4,-z)', - '(3/4,3/4,-z)', - '(1/4,3/4,z)' - ] - }, - 'k': { - 'multiplicity': 16, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,1/4,1/4)', - '(-x,1/4,3/4)', - '(-x,3/4,3/4)', - '(x,3/4,1/4)' - ] - }, - 'j': { - 'multiplicity': 16, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/4,y,1/4)', - '(1/4,-y,3/4)', - '(3/4,-y,3/4)', - '(3/4,y,1/4)' - ] - }, - 'i': { - 'multiplicity': 8, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y,0)' - ] + '(-x,-y+1/2,z+1/2)', + '(-x-1/2,-y+1/2,-z)', + '(-x-1/2,y,z+1/2)', + '(x-1/2,-y+1/2,z)', + '(x-1/2,y,-z+1/2)', + ], }, 'h': { 'multiplicity': 8, - 'site_symmetry': 'm2m', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)' - ] + 'site_symmetry': '..2', + 'coords_xyz': ['(x,1/4,1/4)', '(-x,1/4,3/4)', '(-x-1/2,1/4,3/4)', '(x-1/2,1/4,1/4)'], }, 'g': { 'multiplicity': 8, - 'site_symmetry': '2mm', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)' - ] + 'site_symmetry': '..2', + 'coords_xyz': ['(x,0,0)', '(-x,0,0)', '(-x-1/2,1/2,0)', '(x-1/2,1/2,0)'], }, 'f': { 'multiplicity': 8, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/4,1/4,1/4)', - '(3/4,3/4,3/4)' - ] + 'site_symmetry': '.2.', + 'coords_xyz': ['(0,y,0)', '(0,-y+1/2,1/2)', '(-1/2,-y+1/2,0)', '(-1/2,y,1/2)'], }, 'e': { 'multiplicity': 8, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(1/4,0,1/4)', - '(1/4,0,3/4)' - ] + 'site_symmetry': '2..', + 'coords_xyz': ['(0,0,z)', '(0,1/2,-z+1/2)', '(-1/2,1/2,-z)', '(-1/2,0,z+1/2)'], }, 'd': { 'multiplicity': 8, - 'site_symmetry': '.2/m.', - 'coords_xyz': [ - '(0,1/4,1/4)', - '(0,1/4,3/4)' - ] + 'site_symmetry': '-1', + 'coords_xyz': ['(-1/4,1/4,0)', '(-1/4,1/4,1/2)', '(-3/4,1/4,0)', '(-3/4,1/4,1/2)'], }, 'c': { 'multiplicity': 8, - 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(1/4,1/4,0)', - '(3/4,1/4,0)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(0,1/2,0)' - ] + 'site_symmetry': '-1', + 'coords_xyz': ['(-1/4,0,1/4)', '(-1/4,1/2,1/4)', '(-3/4,0,3/4)', '(-3/4,1/2,3/4)'], }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'b': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(-1/2,0,0)', '(0,1/2,0)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(0,0,0)', '(-1/2,1/2,0)']}, + }, }, - (69, 'a-cb'): { - 'IT_number': 69, - 'setting': 5, - 'IT_coordinate_system_code': 'a-cb', - 'name_H-M_alt': 'F m m m', + (68, '2-cba'): { + 'IT_number': 68, + 'setting': 15, + 'IT_coordinate_system_code': '2-cba', + 'name_H-M_alt': 'A e a a', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'p': { - 'multiplicity': 32, + 'i': { + 'multiplicity': 16, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(-x,y,-z)', - '(-x,-y,z)', - '(x,-y,-z)', + '(x,-y,-z+1/2)', + '(-x-1/2,y,-z)', + '(-x-1/2,-y,z+1/2)', '(-x,-y,-z)', - '(x,-y,z)', - '(x,y,-z)', - '(-x,y,z)' - ] - }, - 'o': { - 'multiplicity': 16, - 'site_symmetry': '..m', - 'coords_xyz': [ - '(x,0,z)', - '(-x,0,-z)', - '(-x,0,z)', - '(x,0,-z)' - ] - }, - 'n': { - 'multiplicity': 16, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,y,0)', - '(-x,y,0)', - '(-x,-y,0)', - '(x,-y,0)' - ] - }, - 'm': { - 'multiplicity': 16, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(0,y,z)', - '(0,y,-z)', - '(0,-y,z)', - '(0,-y,-z)' - ] - }, - 'l': { - 'multiplicity': 16, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(x,-1/4,1/4)', - '(-x,-1/4,3/4)', - '(-x,-3/4,3/4)', - '(x,-3/4,1/4)' - ] - }, - 'k': { - 'multiplicity': 16, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(1/4,-1/4,z)', - '(3/4,-1/4,-z)', - '(3/4,-3/4,-z)', - '(1/4,-3/4,z)' - ] - }, - 'j': { - 'multiplicity': 16, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/4,y,1/4)', - '(3/4,-y,1/4)', - '(3/4,-y,3/4)', - '(1/4,y,3/4)' - ] - }, - 'i': { - 'multiplicity': 8, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y,0)' - ] + '(-x,y,z+1/2)', + '(x-1/2,-y,z)', + '(x-1/2,y,-z+1/2)', + ], }, 'h': { 'multiplicity': 8, - 'site_symmetry': 'm2m', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)' - ] + 'site_symmetry': '..2', + 'coords_xyz': ['(x,0,1/4)', '(-x-1/2,0,3/4)', '(-x,0,3/4)', '(x-1/2,0,1/4)'], }, 'g': { 'multiplicity': 8, - 'site_symmetry': '2mm', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)' - ] + 'site_symmetry': '..2', + 'coords_xyz': ['(x,1/4,0)', '(-x-1/2,1/4,0)', '(-x,3/4,0)', '(x-1/2,3/4,0)'], }, 'f': { 'multiplicity': 8, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/4,-1/4,1/4)', - '(3/4,-3/4,3/4)' - ] + 'site_symmetry': '.2.', + 'coords_xyz': ['(-1/4,y,0)', '(-1/4,-y,1/2)', '(-3/4,-y,0)', '(-3/4,y,1/2)'], }, 'e': { 'multiplicity': 8, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(1/4,0,1/4)', - '(3/4,0,1/4)' - ] + 'site_symmetry': '2..', + 'coords_xyz': ['(-1/4,1/4,z)', '(-1/4,3/4,-z+1/2)', '(-3/4,3/4,-z)', '(-3/4,1/4,z+1/2)'], }, 'd': { 'multiplicity': 8, - 'site_symmetry': '.2/m.', - 'coords_xyz': [ - '(1/4,-1/4,0)', - '(3/4,-1/4,0)' - ] + 'site_symmetry': '-1', + 'coords_xyz': ['(0,0,0)', '(0,0,1/2)', '(-1/2,0,0)', '(-1/2,0,1/2)'], }, 'c': { 'multiplicity': 8, - 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(0,-1/4,1/4)', - '(0,-1/4,3/4)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(0,-1/2,0)' - ] + 'site_symmetry': '-1', + 'coords_xyz': ['(0,3/4,1/4)', '(0,1/4,1/4)', '(-1/2,3/4,3/4)', '(-1/2,1/4,3/4)'], }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'b': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(-3/4,1/4,0)', '(-1/4,3/4,0)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(-1/4,1/4,0)', '(-3/4,3/4,0)']}, + }, }, - (70, '1abc'): { - 'IT_number': 70, - 'setting': 6, - 'IT_coordinate_system_code': '1abc', - 'name_H-M_alt': 'F d d d', + (68, '1bca'): { + 'IT_number': 68, + 'setting': 10, + 'IT_coordinate_system_code': '1bca', + 'name_H-M_alt': 'B b e b', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'h': { - 'multiplicity': 32, + 'i': { + 'multiplicity': 16, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(-x,-y,z)', - '(-x,y,-z)', + '(-x+1/2,y,-z+1/2)', '(x,-y,-z)', - '(-x+1/4,-y+1/4,-z+1/4)', - '(x+1/4,y+1/4,-z+1/4)', - '(x+1/4,-y+1/4,z+1/4)', - '(-x+1/4,y+1/4,z+1/4)' - ] + '(-x+1/2,-y,z+1/2)', + '(-x+1/2,-y+1/2,-z)', + '(x,-y+1/2,z+1/2)', + '(-x+1/2,y+1/2,z)', + '(x,y+1/2,-z+1/2)', + ], + }, + 'h': { + 'multiplicity': 8, + 'site_symmetry': '..2', + 'coords_xyz': ['(1/4,y,1/4)', '(1/4,-y,3/4)', '(1/4,-y+1/2,3/4)', '(1/4,y+1/2,1/4)'], }, 'g': { - 'multiplicity': 16, + 'multiplicity': 8, 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)', - '(1/4,1/4,-z+1/4)', - '(1/4,1/4,z+1/4)' - ] + 'coords_xyz': ['(0,y,0)', '(0,-y,0)', '(1/2,-y+1/2,0)', '(1/2,y+1/2,0)'], }, 'f': { - 'multiplicity': 16, + 'multiplicity': 8, 'site_symmetry': '.2.', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y,0)', - '(1/4,-y+1/4,1/4)', - '(1/4,y+1/4,1/4)' - ] + 'coords_xyz': ['(x,0,0)', '(-x+1/2,0,1/2)', '(-x+1/2,1/2,0)', '(x,1/2,1/2)'], }, 'e': { - 'multiplicity': 16, + 'multiplicity': 8, 'site_symmetry': '2..', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)', - '(-x+1/4,1/4,1/4)', - '(x+1/4,1/4,1/4)' - ] + 'coords_xyz': ['(0,0,z)', '(1/2,0,-z+1/2)', '(1/2,1/2,-z)', '(0,1/2,z+1/2)'], }, 'd': { - 'multiplicity': 16, + 'multiplicity': 8, 'site_symmetry': '-1', - 'coords_xyz': [ - '(5/8,5/8,5/8)', - '(3/8,3/8,5/8)', - '(3/8,5/8,3/8)', - '(5/8,3/8,3/8)' - ] + 'coords_xyz': ['(1/4,1/4,0)', '(1/4,1/4,1/2)', '(1/4,3/4,0)', '(1/4,3/4,1/2)'], }, 'c': { - 'multiplicity': 16, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/8,1/8,1/8)', - '(7/8,7/8,1/8)', - '(7/8,1/8,7/8)', - '(1/8,7/8,7/8)' - ] - }, - 'b': { 'multiplicity': 8, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,1/2)', - '(1/4,1/4,3/4)' - ] + 'site_symmetry': '-1', + 'coords_xyz': ['(0,1/4,1/4)', '(1/2,1/4,1/4)', '(0,3/4,3/4)', '(1/2,3/4,3/4)'], }, - 'a': { - 'multiplicity': 8, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,0)', - '(1/4,1/4,1/4)' - ] - } - } + 'b': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(0,1/2,0)', '(1/2,0,0)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(0,0,0)', '(1/2,1/2,0)']}, + }, }, - (70, '2abc'): { - 'IT_number': 70, - 'setting': 12, - 'IT_coordinate_system_code': '2abc', - 'name_H-M_alt': 'F d d d', + (68, '2bca'): { + 'IT_number': 68, + 'setting': 16, + 'IT_coordinate_system_code': '2bca', + 'name_H-M_alt': 'B b e b', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'h': { - 'multiplicity': 32, + 'i': { + 'multiplicity': 16, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(-x+3/4,-y+3/4,z)', - '(-x+3/4,y,-z+3/4)', - '(x,-y+3/4,-z+3/4)', + '(-x,y,-z+1/2)', + '(x,-y+1/2,-z)', + '(-x,-y+1/2,z+1/2)', '(-x,-y,-z)', - '(x+1/4,y+1/4,-z)', - '(x+1/4,-y,z+1/4)', - '(-x,y+1/4,z+1/4)' - ] + '(x,-y,z+1/2)', + '(-x,y+1/2,z)', + '(x,y+1/2,-z+1/2)', + ], + }, + 'h': { + 'multiplicity': 8, + 'site_symmetry': '..2', + 'coords_xyz': ['(0,y,1/4)', '(0,-y+1/2,3/4)', '(0,-y,3/4)', '(0,y+1/2,1/4)'], }, 'g': { - 'multiplicity': 16, + 'multiplicity': 8, 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/8,1/8,z)', - '(5/8,1/8,-z+3/4)', - '(7/8,7/8,-z)', - '(3/8,7/8,z+1/4)' - ] + 'coords_xyz': ['(1/4,y,0)', '(1/4,-y+1/2,0)', '(3/4,-y,0)', '(3/4,y+1/2,0)'], }, 'f': { - 'multiplicity': 16, + 'multiplicity': 8, 'site_symmetry': '.2.', - 'coords_xyz': [ - '(1/8,y,1/8)', - '(5/8,-y+3/4,1/8)', - '(7/8,-y,7/8)', - '(3/8,y+1/4,7/8)' - ] + 'coords_xyz': ['(x,1/4,0)', '(-x,1/4,1/2)', '(-x,3/4,0)', '(x,3/4,1/2)'], }, 'e': { - 'multiplicity': 16, + 'multiplicity': 8, 'site_symmetry': '2..', - 'coords_xyz': [ - '(x,1/8,1/8)', - '(-x+3/4,5/8,1/8)', - '(-x,7/8,7/8)', - '(x+1/4,3/8,7/8)' - ] + 'coords_xyz': ['(1/4,1/4,z)', '(3/4,1/4,-z+1/2)', '(3/4,3/4,-z)', '(1/4,3/4,z+1/2)'], }, 'd': { - 'multiplicity': 16, + 'multiplicity': 8, 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/2,1/2,1/2)', - '(1/4,1/4,1/2)', - '(1/4,1/2,1/4)', - '(1/2,1/4,1/4)' - ] + 'coords_xyz': ['(0,0,0)', '(0,0,1/2)', '(0,1/2,0)', '(0,1/2,1/2)'], }, 'c': { - 'multiplicity': 16, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(3/4,3/4,0)', - '(3/4,0,3/4)', - '(0,3/4,3/4)' - ] - }, - 'b': { 'multiplicity': 8, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/8,1/8,5/8)', - '(7/8,7/8,3/8)' - ] + 'site_symmetry': '-1', + 'coords_xyz': ['(3/4,0,1/4)', '(1/4,0,1/4)', '(3/4,1/2,3/4)', '(1/4,1/2,3/4)'], }, - 'a': { - 'multiplicity': 8, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/8,1/8,1/8)', - '(7/8,7/8,7/8)' - ] - } - } + 'b': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(1/4,3/4,0)', '(3/4,1/4,0)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(1/4,1/4,0)', '(3/4,3/4,0)']}, + }, }, - (70, '1ba-c'): { - 'IT_number': 70, - 'setting': 7, - 'IT_coordinate_system_code': '1ba-c', - 'name_H-M_alt': 'F d d d', + (68, '2a-cb'): { + 'IT_number': 68, + 'setting': 17, + 'IT_coordinate_system_code': '2a-cb', + 'name_H-M_alt': 'B b e b', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'h': { - 'multiplicity': 32, + 'i': { + 'multiplicity': 16, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(-x,-y,z)', - '(x,-y,-z)', - '(-x,y,-z)', - '(-x+1/4,-y+1/4,-z-1/4)', - '(x+1/4,y+1/4,-z-1/4)', - '(-x+1/4,y+1/4,z-1/4)', - '(x+1/4,-y+1/4,z-1/4)' - ] + '(-x+1/2,y,-z)', + '(-x,-y-1/2,z)', + '(x+1/2,-y-1/2,-z)', + '(-x,-y,-z)', + '(x+1/2,-y,z)', + '(x,y-1/2,-z)', + '(-x+1/2,y-1/2,z)', + ], + }, + 'h': { + 'multiplicity': 8, + 'site_symmetry': '..2', + 'coords_xyz': ['(1/4,y,0)', '(3/4,-y-1/2,0)', '(3/4,-y,0)', '(1/4,y-1/2,0)'], }, 'g': { - 'multiplicity': 16, + 'multiplicity': 8, 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)', - '(1/4,1/4,-z-1/4)', - '(1/4,1/4,z-1/4)' - ] + 'coords_xyz': ['(0,y,1/4)', '(0,-y-1/2,1/4)', '(0,-y,3/4)', '(0,y-1/2,3/4)'], }, 'f': { - 'multiplicity': 16, + 'multiplicity': 8, 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)', - '(-x+1/4,1/4,-1/4)', - '(x+1/4,1/4,-1/4)' - ] + 'coords_xyz': ['(0,-1/4,z)', '(1/2,-1/4,-z)', '(0,-3/4,-z)', '(1/2,-3/4,z)'], }, 'e': { - 'multiplicity': 16, + 'multiplicity': 8, 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y,0)', - '(1/4,-y+1/4,-1/4)', - '(1/4,y+1/4,-1/4)' - ] + 'coords_xyz': ['(x,-1/4,1/4)', '(-x+1/2,-1/4,3/4)', '(-x,-3/4,3/4)', '(x+1/2,-3/4,1/4)'], }, 'd': { - 'multiplicity': 16, + 'multiplicity': 8, 'site_symmetry': '-1', - 'coords_xyz': [ - '(5/8,5/8,-5/8)', - '(3/8,3/8,-5/8)', - '(5/8,3/8,-3/8)', - '(3/8,5/8,-3/8)' - ] + 'coords_xyz': ['(0,0,0)', '(1/2,0,0)', '(0,-1/2,0)', '(1/2,-1/2,0)'], }, 'c': { - 'multiplicity': 16, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/8,1/8,-1/8)', - '(7/8,7/8,-1/8)', - '(1/8,7/8,-7/8)', - '(7/8,1/8,-7/8)' - ] - }, - 'b': { 'multiplicity': 8, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,-1/2)', - '(1/4,1/4,-3/4)' - ] + 'site_symmetry': '-1', + 'coords_xyz': ['(1/4,0,3/4)', '(1/4,0,1/4)', '(3/4,-1/2,3/4)', '(3/4,-1/2,1/4)'], }, - 'a': { - 'multiplicity': 8, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,0)', - '(1/4,1/4,-1/4)' - ] - } - } + 'b': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(0,-3/4,1/4)', '(0,-1/4,3/4)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(0,-1/4,1/4)', '(0,-3/4,3/4)']}, + }, }, - (70, '2ba-c'): { - 'IT_number': 70, - 'setting': 13, - 'IT_coordinate_system_code': '2ba-c', - 'name_H-M_alt': 'F d d d', + (69, 'abc'): { + 'IT_number': 69, + 'setting': 0, + 'IT_coordinate_system_code': 'abc', + 'name_H-M_alt': 'F m m m', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'h': { + 'p': { 'multiplicity': 32, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(-x+3/4,-y+3/4,z)', - '(x,-y+3/4,-z-3/4)', - '(-x+3/4,y,-z-3/4)', + '(-x,-y,z)', + '(-x,y,-z)', + '(x,-y,-z)', '(-x,-y,-z)', - '(x+1/4,y+1/4,-z)', - '(-x,y+1/4,z-1/4)', - '(x+1/4,-y,z-1/4)' - ] + '(x,y,-z)', + '(x,-y,z)', + '(-x,y,z)', + ], }, - 'g': { + 'o': {'multiplicity': 16, 'site_symmetry': '..m', 'coords_xyz': ['(x,y,0)', '(-x,-y,0)', '(-x,y,0)', '(x,-y,0)']}, + 'n': {'multiplicity': 16, 'site_symmetry': '.m.', 'coords_xyz': ['(x,0,z)', '(-x,0,z)', '(-x,0,-z)', '(x,0,-z)']}, + 'm': {'multiplicity': 16, 'site_symmetry': 'm..', 'coords_xyz': ['(0,y,z)', '(0,-y,z)', '(0,y,-z)', '(0,-y,-z)']}, + 'l': { 'multiplicity': 16, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/8,1/8,z)', - '(1/8,5/8,-z-3/4)', - '(7/8,7/8,-z)', - '(7/8,3/8,z-1/4)' - ] + 'site_symmetry': '2..', + 'coords_xyz': ['(x,1/4,1/4)', '(-x,3/4,1/4)', '(-x,3/4,3/4)', '(x,1/4,3/4)'], }, - 'f': { + 'k': { 'multiplicity': 16, 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,1/8,-1/8)', - '(-x+3/4,5/8,-1/8)', - '(-x,7/8,-7/8)', - '(x+1/4,3/8,-7/8)' - ] + 'coords_xyz': ['(1/4,y,1/4)', '(3/4,-y,1/4)', '(3/4,-y,3/4)', '(1/4,y,3/4)'], }, - 'e': { + 'j': { 'multiplicity': 16, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(1/8,y,-1/8)', - '(5/8,-y+3/4,-1/8)', - '(7/8,-y,-7/8)', - '(3/8,y+1/4,-7/8)' - ] + 'site_symmetry': '..2', + 'coords_xyz': ['(1/4,1/4,z)', '(3/4,1/4,-z)', '(3/4,3/4,-z)', '(1/4,3/4,z)'], }, - 'd': { - 'multiplicity': 16, - 'site_symmetry': '-1', + 'i': {'multiplicity': 8, 'site_symmetry': 'mm2', 'coords_xyz': ['(0,0,z)', '(0,0,-z)']}, + 'h': {'multiplicity': 8, 'site_symmetry': 'm2m', 'coords_xyz': ['(0,y,0)', '(0,-y,0)']}, + 'g': {'multiplicity': 8, 'site_symmetry': '2mm', 'coords_xyz': ['(x,0,0)', '(-x,0,0)']}, + 'f': {'multiplicity': 8, 'site_symmetry': '222', 'coords_xyz': ['(1/4,1/4,1/4)', '(3/4,3/4,3/4)']}, + 'e': {'multiplicity': 8, 'site_symmetry': '..2/m', 'coords_xyz': ['(1/4,1/4,0)', '(3/4,1/4,0)']}, + 'd': {'multiplicity': 8, 'site_symmetry': '.2/m.', 'coords_xyz': ['(1/4,0,1/4)', '(3/4,0,1/4)']}, + 'c': {'multiplicity': 8, 'site_symmetry': '2/m..', 'coords_xyz': ['(0,1/4,1/4)', '(0,3/4,1/4)']}, + 'b': {'multiplicity': 4, 'site_symmetry': 'mmm', 'coords_xyz': ['(0,0,1/2)']}, + 'a': {'multiplicity': 4, 'site_symmetry': 'mmm', 'coords_xyz': ['(0,0,0)']}, + }, + }, + (69, 'ba-c'): { + 'IT_number': 69, + 'setting': 1, + 'IT_coordinate_system_code': 'ba-c', + 'name_H-M_alt': 'F m m m', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'p': { + 'multiplicity': 32, + 'site_symmetry': '1', 'coords_xyz': [ - '(1/2,1/2,-1/2)', - '(1/4,1/4,-1/2)', - '(1/2,1/4,-1/4)', - '(1/4,1/2,-1/4)' - ] + '(x,y,z)', + '(-x,-y,z)', + '(x,-y,-z)', + '(-x,y,-z)', + '(-x,-y,-z)', + '(x,y,-z)', + '(-x,y,z)', + '(x,-y,z)', + ], }, - 'c': { + 'o': {'multiplicity': 16, 'site_symmetry': '..m', 'coords_xyz': ['(x,y,0)', '(-x,-y,0)', '(x,-y,0)', '(-x,y,0)']}, + 'n': {'multiplicity': 16, 'site_symmetry': '.m.', 'coords_xyz': ['(0,y,z)', '(0,-y,z)', '(0,-y,-z)', '(0,y,-z)']}, + 'm': {'multiplicity': 16, 'site_symmetry': 'm..', 'coords_xyz': ['(x,0,z)', '(-x,0,z)', '(x,0,-z)', '(-x,0,-z)']}, + 'l': { 'multiplicity': 16, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(3/4,3/4,0)', - '(0,3/4,-3/4)', - '(3/4,0,-3/4)' - ] + 'site_symmetry': '2..', + 'coords_xyz': ['(1/4,y,-1/4)', '(3/4,-y,-1/4)', '(3/4,-y,-3/4)', '(1/4,y,-3/4)'], }, - 'b': { - 'multiplicity': 8, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/8,1/8,-5/8)', - '(7/8,7/8,-3/8)' - ] + 'k': { + 'multiplicity': 16, + 'site_symmetry': '.2.', + 'coords_xyz': ['(x,1/4,-1/4)', '(-x,3/4,-1/4)', '(-x,3/4,-3/4)', '(x,1/4,-3/4)'], }, - 'a': { - 'multiplicity': 8, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/8,1/8,-1/8)', - '(7/8,7/8,-7/8)' - ] - } - } - }, - (70, '1cab'): { - 'IT_number': 70, - 'setting': 8, - 'IT_coordinate_system_code': '1cab', - 'name_H-M_alt': 'F d d d', + 'j': { + 'multiplicity': 16, + 'site_symmetry': '..2', + 'coords_xyz': ['(1/4,1/4,z)', '(1/4,3/4,-z)', '(3/4,3/4,-z)', '(3/4,1/4,z)'], + }, + 'i': {'multiplicity': 8, 'site_symmetry': 'mm2', 'coords_xyz': ['(0,0,z)', '(0,0,-z)']}, + 'h': {'multiplicity': 8, 'site_symmetry': 'm2m', 'coords_xyz': ['(x,0,0)', '(-x,0,0)']}, + 'g': {'multiplicity': 8, 'site_symmetry': '2mm', 'coords_xyz': ['(0,y,0)', '(0,-y,0)']}, + 'f': {'multiplicity': 8, 'site_symmetry': '222', 'coords_xyz': ['(1/4,1/4,-1/4)', '(3/4,3/4,-3/4)']}, + 'e': {'multiplicity': 8, 'site_symmetry': '..2/m', 'coords_xyz': ['(1/4,1/4,0)', '(1/4,3/4,0)']}, + 'd': {'multiplicity': 8, 'site_symmetry': '.2/m.', 'coords_xyz': ['(0,1/4,-1/4)', '(0,3/4,-1/4)']}, + 'c': {'multiplicity': 8, 'site_symmetry': '2/m..', 'coords_xyz': ['(1/4,0,-1/4)', '(3/4,0,-1/4)']}, + 'b': {'multiplicity': 4, 'site_symmetry': 'mmm', 'coords_xyz': ['(0,0,-1/2)']}, + 'a': {'multiplicity': 4, 'site_symmetry': 'mmm', 'coords_xyz': ['(0,0,0)']}, + }, + }, + (69, 'cab'): { + 'IT_number': 69, + 'setting': 2, + 'IT_coordinate_system_code': 'cab', + 'name_H-M_alt': 'F m m m', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'h': { + 'p': { 'multiplicity': 32, 'site_symmetry': '1', 'coords_xyz': [ @@ -31247,262 +12496,195 @@ '(x,-y,-z)', '(-x,-y,z)', '(-x,y,-z)', - '(-x+1/4,-y+1/4,-z+1/4)', - '(-x+1/4,y+1/4,z+1/4)', - '(x+1/4,y+1/4,-z+1/4)', - '(x+1/4,-y+1/4,z+1/4)' - ] - }, - 'g': { - 'multiplicity': 16, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)', - '(-x+1/4,1/4,1/4)', - '(x+1/4,1/4,1/4)' - ] - }, - 'f': { - 'multiplicity': 16, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)', - '(1/4,1/4,-z+1/4)', - '(1/4,1/4,z+1/4)' - ] + '(-x,-y,-z)', + '(-x,y,z)', + '(x,y,-z)', + '(x,-y,z)', + ], }, - 'e': { + 'o': {'multiplicity': 16, 'site_symmetry': '..m', 'coords_xyz': ['(0,y,z)', '(0,-y,-z)', '(0,-y,z)', '(0,y,-z)']}, + 'n': {'multiplicity': 16, 'site_symmetry': '.m.', 'coords_xyz': ['(x,y,0)', '(x,-y,0)', '(-x,-y,0)', '(-x,y,0)']}, + 'm': {'multiplicity': 16, 'site_symmetry': 'm..', 'coords_xyz': ['(x,0,z)', '(x,0,-z)', '(-x,0,z)', '(-x,0,-z)']}, + 'l': { 'multiplicity': 16, 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y,0)', - '(1/4,-y+1/4,1/4)', - '(1/4,y+1/4,1/4)' - ] + 'coords_xyz': ['(1/4,y,1/4)', '(1/4,-y,3/4)', '(3/4,-y,3/4)', '(3/4,y,1/4)'], }, - 'd': { + 'k': { 'multiplicity': 16, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(5/8,5/8,5/8)', - '(5/8,3/8,3/8)', - '(3/8,3/8,5/8)', - '(3/8,5/8,3/8)' - ] + 'site_symmetry': '.2.', + 'coords_xyz': ['(1/4,1/4,z)', '(1/4,3/4,-z)', '(3/4,3/4,-z)', '(3/4,1/4,z)'], }, - 'c': { + 'j': { 'multiplicity': 16, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/8,1/8,1/8)', - '(1/8,7/8,7/8)', - '(7/8,7/8,1/8)', - '(7/8,1/8,7/8)' - ] - }, - 'b': { - 'multiplicity': 8, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/2,0,0)', - '(3/4,1/4,1/4)' - ] + 'site_symmetry': '..2', + 'coords_xyz': ['(x,1/4,1/4)', '(-x,3/4,1/4)', '(-x,3/4,3/4)', '(x,1/4,3/4)'], }, - 'a': { - 'multiplicity': 8, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,0)', - '(1/4,1/4,1/4)' - ] - } - } + 'i': {'multiplicity': 8, 'site_symmetry': 'mm2', 'coords_xyz': ['(x,0,0)', '(-x,0,0)']}, + 'h': {'multiplicity': 8, 'site_symmetry': 'm2m', 'coords_xyz': ['(0,0,z)', '(0,0,-z)']}, + 'g': {'multiplicity': 8, 'site_symmetry': '2mm', 'coords_xyz': ['(0,y,0)', '(0,-y,0)']}, + 'f': {'multiplicity': 8, 'site_symmetry': '222', 'coords_xyz': ['(1/4,1/4,1/4)', '(3/4,3/4,3/4)']}, + 'e': {'multiplicity': 8, 'site_symmetry': '..2/m', 'coords_xyz': ['(0,1/4,1/4)', '(0,3/4,1/4)']}, + 'd': {'multiplicity': 8, 'site_symmetry': '.2/m.', 'coords_xyz': ['(1/4,1/4,0)', '(1/4,3/4,0)']}, + 'c': {'multiplicity': 8, 'site_symmetry': '2/m..', 'coords_xyz': ['(1/4,0,1/4)', '(1/4,0,3/4)']}, + 'b': {'multiplicity': 4, 'site_symmetry': 'mmm', 'coords_xyz': ['(1/2,0,0)']}, + 'a': {'multiplicity': 4, 'site_symmetry': 'mmm', 'coords_xyz': ['(0,0,0)']}, + }, }, - (70, '2cab'): { - 'IT_number': 70, - 'setting': 14, - 'IT_coordinate_system_code': '2cab', - 'name_H-M_alt': 'F d d d', + (69, '-cba'): { + 'IT_number': 69, + 'setting': 3, + 'IT_coordinate_system_code': '-cba', + 'name_H-M_alt': 'F m m m', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'h': { + 'p': { 'multiplicity': 32, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(x,-y+3/4,-z+3/4)', - '(-x+3/4,-y+3/4,z)', - '(-x+3/4,y,-z+3/4)', + '(x,-y,-z)', + '(-x,y,-z)', + '(-x,-y,z)', '(-x,-y,-z)', - '(-x,y+1/4,z+1/4)', - '(x+1/4,y+1/4,-z)', - '(x+1/4,-y,z+1/4)' - ] - }, - 'g': { - 'multiplicity': 16, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,1/8,1/8)', - '(-x+3/4,5/8,1/8)', - '(-x,7/8,7/8)', - '(x+1/4,3/8,7/8)' - ] - }, - 'f': { - 'multiplicity': 16, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(1/8,1/8,z)', - '(1/8,5/8,-z+3/4)', - '(7/8,7/8,-z)', - '(7/8,3/8,z+1/4)' - ] + '(-x,y,z)', + '(x,-y,z)', + '(x,y,-z)', + ], }, - 'e': { + 'o': {'multiplicity': 16, 'site_symmetry': '..m', 'coords_xyz': ['(0,y,z)', '(0,-y,-z)', '(0,y,-z)', '(0,-y,z)']}, + 'n': {'multiplicity': 16, 'site_symmetry': '.m.', 'coords_xyz': ['(x,0,z)', '(x,0,-z)', '(-x,0,-z)', '(-x,0,z)']}, + 'm': {'multiplicity': 16, 'site_symmetry': 'm..', 'coords_xyz': ['(x,y,0)', '(x,-y,0)', '(-x,y,0)', '(-x,-y,0)']}, + 'l': { 'multiplicity': 16, 'site_symmetry': '2..', - 'coords_xyz': [ - '(1/8,y,1/8)', - '(1/8,-y+3/4,5/8)', - '(7/8,-y,7/8)', - '(7/8,y+1/4,3/8)' - ] + 'coords_xyz': ['(-1/4,1/4,z)', '(-1/4,3/4,-z)', '(-3/4,3/4,-z)', '(-3/4,1/4,z)'], }, - 'd': { + 'k': { 'multiplicity': 16, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/2,1/2,1/2)', - '(1/2,1/4,1/4)', - '(1/4,1/4,1/2)', - '(1/4,1/2,1/4)' - ] + 'site_symmetry': '.2.', + 'coords_xyz': ['(-1/4,y,1/4)', '(-1/4,-y,3/4)', '(-3/4,-y,3/4)', '(-3/4,y,1/4)'], }, - 'c': { + 'j': { 'multiplicity': 16, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(0,3/4,3/4)', - '(3/4,3/4,0)', - '(3/4,0,3/4)' - ] - }, - 'b': { - 'multiplicity': 8, - 'site_symmetry': '222', - 'coords_xyz': [ - '(5/8,1/8,1/8)', - '(3/8,7/8,7/8)' - ] + 'site_symmetry': '..2', + 'coords_xyz': ['(x,1/4,1/4)', '(-x,1/4,3/4)', '(-x,3/4,3/4)', '(x,3/4,1/4)'], }, - 'a': { - 'multiplicity': 8, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/8,1/8,1/8)', - '(7/8,7/8,7/8)' - ] - } - } + 'i': {'multiplicity': 8, 'site_symmetry': 'mm2', 'coords_xyz': ['(x,0,0)', '(-x,0,0)']}, + 'h': {'multiplicity': 8, 'site_symmetry': 'm2m', 'coords_xyz': ['(0,y,0)', '(0,-y,0)']}, + 'g': {'multiplicity': 8, 'site_symmetry': '2mm', 'coords_xyz': ['(0,0,z)', '(0,0,-z)']}, + 'f': {'multiplicity': 8, 'site_symmetry': '222', 'coords_xyz': ['(-1/4,1/4,1/4)', '(-3/4,3/4,3/4)']}, + 'e': {'multiplicity': 8, 'site_symmetry': '..2/m', 'coords_xyz': ['(0,1/4,1/4)', '(0,1/4,3/4)']}, + 'd': {'multiplicity': 8, 'site_symmetry': '.2/m.', 'coords_xyz': ['(-1/4,0,1/4)', '(-1/4,0,3/4)']}, + 'c': {'multiplicity': 8, 'site_symmetry': '2/m..', 'coords_xyz': ['(-1/4,1/4,0)', '(-1/4,3/4,0)']}, + 'b': {'multiplicity': 4, 'site_symmetry': 'mmm', 'coords_xyz': ['(-1/2,0,0)']}, + 'a': {'multiplicity': 4, 'site_symmetry': 'mmm', 'coords_xyz': ['(0,0,0)']}, + }, }, - (70, '1-cba'): { - 'IT_number': 70, - 'setting': 9, - 'IT_coordinate_system_code': '1-cba', - 'name_H-M_alt': 'F d d d', + (69, 'bca'): { + 'IT_number': 69, + 'setting': 4, + 'IT_coordinate_system_code': 'bca', + 'name_H-M_alt': 'F m m m', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'h': { + 'p': { 'multiplicity': 32, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(x,-y,-z)', '(-x,y,-z)', + '(x,-y,-z)', '(-x,-y,z)', - '(-x-1/4,-y+1/4,-z+1/4)', - '(-x-1/4,y+1/4,z+1/4)', - '(x-1/4,-y+1/4,z+1/4)', - '(x-1/4,y+1/4,-z+1/4)' - ] + '(-x,-y,-z)', + '(x,-y,z)', + '(-x,y,z)', + '(x,y,-z)', + ], }, - 'g': { + 'o': {'multiplicity': 16, 'site_symmetry': '..m', 'coords_xyz': ['(x,0,z)', '(-x,0,-z)', '(x,0,-z)', '(-x,0,z)']}, + 'n': {'multiplicity': 16, 'site_symmetry': '.m.', 'coords_xyz': ['(0,y,z)', '(0,y,-z)', '(0,-y,-z)', '(0,-y,z)']}, + 'm': {'multiplicity': 16, 'site_symmetry': 'm..', 'coords_xyz': ['(x,y,0)', '(-x,y,0)', '(x,-y,0)', '(-x,-y,0)']}, + 'l': { 'multiplicity': 16, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)', - '(-x-1/4,1/4,1/4)', - '(x-1/4,1/4,1/4)' - ] + 'site_symmetry': '2..', + 'coords_xyz': ['(1/4,1/4,z)', '(3/4,1/4,-z)', '(3/4,3/4,-z)', '(1/4,3/4,z)'], }, - 'f': { + 'k': { 'multiplicity': 16, 'site_symmetry': '.2.', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y,0)', - '(-1/4,-y+1/4,1/4)', - '(-1/4,y+1/4,1/4)' - ] + 'coords_xyz': ['(x,1/4,1/4)', '(-x,1/4,3/4)', '(-x,3/4,3/4)', '(x,3/4,1/4)'], }, - 'e': { + 'j': { 'multiplicity': 16, - 'site_symmetry': '2..', + 'site_symmetry': '..2', + 'coords_xyz': ['(1/4,y,1/4)', '(1/4,-y,3/4)', '(3/4,-y,3/4)', '(3/4,y,1/4)'], + }, + 'i': {'multiplicity': 8, 'site_symmetry': 'mm2', 'coords_xyz': ['(0,y,0)', '(0,-y,0)']}, + 'h': {'multiplicity': 8, 'site_symmetry': 'm2m', 'coords_xyz': ['(x,0,0)', '(-x,0,0)']}, + 'g': {'multiplicity': 8, 'site_symmetry': '2mm', 'coords_xyz': ['(0,0,z)', '(0,0,-z)']}, + 'f': {'multiplicity': 8, 'site_symmetry': '222', 'coords_xyz': ['(1/4,1/4,1/4)', '(3/4,3/4,3/4)']}, + 'e': {'multiplicity': 8, 'site_symmetry': '..2/m', 'coords_xyz': ['(1/4,0,1/4)', '(1/4,0,3/4)']}, + 'd': {'multiplicity': 8, 'site_symmetry': '.2/m.', 'coords_xyz': ['(0,1/4,1/4)', '(0,1/4,3/4)']}, + 'c': {'multiplicity': 8, 'site_symmetry': '2/m..', 'coords_xyz': ['(1/4,1/4,0)', '(3/4,1/4,0)']}, + 'b': {'multiplicity': 4, 'site_symmetry': 'mmm', 'coords_xyz': ['(0,1/2,0)']}, + 'a': {'multiplicity': 4, 'site_symmetry': 'mmm', 'coords_xyz': ['(0,0,0)']}, + }, + }, + (69, 'a-cb'): { + 'IT_number': 69, + 'setting': 5, + 'IT_coordinate_system_code': 'a-cb', + 'name_H-M_alt': 'F m m m', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'p': { + 'multiplicity': 32, + 'site_symmetry': '1', 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)', - '(-1/4,1/4,-z+1/4)', - '(-1/4,1/4,z+1/4)' - ] + '(x,y,z)', + '(-x,y,-z)', + '(-x,-y,z)', + '(x,-y,-z)', + '(-x,-y,-z)', + '(x,-y,z)', + '(x,y,-z)', + '(-x,y,z)', + ], }, - 'd': { + 'o': {'multiplicity': 16, 'site_symmetry': '..m', 'coords_xyz': ['(x,0,z)', '(-x,0,-z)', '(-x,0,z)', '(x,0,-z)']}, + 'n': {'multiplicity': 16, 'site_symmetry': '.m.', 'coords_xyz': ['(x,y,0)', '(-x,y,0)', '(-x,-y,0)', '(x,-y,0)']}, + 'm': {'multiplicity': 16, 'site_symmetry': 'm..', 'coords_xyz': ['(0,y,z)', '(0,y,-z)', '(0,-y,z)', '(0,-y,-z)']}, + 'l': { 'multiplicity': 16, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(-5/8,5/8,5/8)', - '(-5/8,3/8,3/8)', - '(-3/8,5/8,3/8)', - '(-3/8,3/8,5/8)' - ] + 'site_symmetry': '2..', + 'coords_xyz': ['(x,-1/4,1/4)', '(-x,-1/4,3/4)', '(-x,-3/4,3/4)', '(x,-3/4,1/4)'], }, - 'c': { + 'k': { 'multiplicity': 16, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(-1/8,1/8,1/8)', - '(-1/8,7/8,7/8)', - '(-7/8,1/8,7/8)', - '(-7/8,7/8,1/8)' - ] + 'site_symmetry': '.2.', + 'coords_xyz': ['(1/4,-1/4,z)', '(3/4,-1/4,-z)', '(3/4,-3/4,-z)', '(1/4,-3/4,z)'], }, - 'b': { - 'multiplicity': 8, - 'site_symmetry': '222', - 'coords_xyz': [ - '(-1/2,0,0)', - '(-3/4,1/4,1/4)' - ] + 'j': { + 'multiplicity': 16, + 'site_symmetry': '..2', + 'coords_xyz': ['(1/4,y,1/4)', '(3/4,-y,1/4)', '(3/4,-y,3/4)', '(1/4,y,3/4)'], }, - 'a': { - 'multiplicity': 8, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,0)', - '(-1/4,1/4,1/4)' - ] - } - } + 'i': {'multiplicity': 8, 'site_symmetry': 'mm2', 'coords_xyz': ['(0,y,0)', '(0,-y,0)']}, + 'h': {'multiplicity': 8, 'site_symmetry': 'm2m', 'coords_xyz': ['(0,0,z)', '(0,0,-z)']}, + 'g': {'multiplicity': 8, 'site_symmetry': '2mm', 'coords_xyz': ['(x,0,0)', '(-x,0,0)']}, + 'f': {'multiplicity': 8, 'site_symmetry': '222', 'coords_xyz': ['(1/4,-1/4,1/4)', '(3/4,-3/4,3/4)']}, + 'e': {'multiplicity': 8, 'site_symmetry': '..2/m', 'coords_xyz': ['(1/4,0,1/4)', '(3/4,0,1/4)']}, + 'd': {'multiplicity': 8, 'site_symmetry': '.2/m.', 'coords_xyz': ['(1/4,-1/4,0)', '(3/4,-1/4,0)']}, + 'c': {'multiplicity': 8, 'site_symmetry': '2/m..', 'coords_xyz': ['(0,-1/4,1/4)', '(0,-1/4,3/4)']}, + 'b': {'multiplicity': 4, 'site_symmetry': 'mmm', 'coords_xyz': ['(0,-1/2,0)']}, + 'a': {'multiplicity': 4, 'site_symmetry': 'mmm', 'coords_xyz': ['(0,0,0)']}, + }, }, - (70, '2-cba'): { + (70, '1abc'): { 'IT_number': 70, - 'setting': 15, - 'IT_coordinate_system_code': '2-cba', + 'setting': 6, + 'IT_coordinate_system_code': '1abc', 'name_H-M_alt': 'F d d d', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { @@ -31511,87 +12693,48 @@ 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(x,-y+3/4,-z+3/4)', - '(-x-3/4,y,-z+3/4)', - '(-x-3/4,-y+3/4,z)', - '(-x,-y,-z)', - '(-x,y+1/4,z+1/4)', - '(x-1/4,-y,z+1/4)', - '(x-1/4,y+1/4,-z)' - ] + '(-x,-y,z)', + '(-x,y,-z)', + '(x,-y,-z)', + '(-x+1/4,-y+1/4,-z+1/4)', + '(x+1/4,y+1/4,-z+1/4)', + '(x+1/4,-y+1/4,z+1/4)', + '(-x+1/4,y+1/4,z+1/4)', + ], }, 'g': { 'multiplicity': 16, 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,1/8,1/8)', - '(-x-3/4,1/8,5/8)', - '(-x,7/8,7/8)', - '(x-1/4,7/8,3/8)' - ] + 'coords_xyz': ['(0,0,z)', '(0,0,-z)', '(1/4,1/4,-z+1/4)', '(1/4,1/4,z+1/4)'], }, 'f': { 'multiplicity': 16, 'site_symmetry': '.2.', - 'coords_xyz': [ - '(-1/8,y,1/8)', - '(-1/8,-y+3/4,5/8)', - '(-7/8,-y,7/8)', - '(-7/8,y+1/4,3/8)' - ] + 'coords_xyz': ['(0,y,0)', '(0,-y,0)', '(1/4,-y+1/4,1/4)', '(1/4,y+1/4,1/4)'], }, 'e': { 'multiplicity': 16, 'site_symmetry': '2..', - 'coords_xyz': [ - '(-1/8,1/8,z)', - '(-1/8,5/8,-z+3/4)', - '(-7/8,7/8,-z)', - '(-7/8,3/8,z+1/4)' - ] + 'coords_xyz': ['(x,0,0)', '(-x,0,0)', '(-x+1/4,1/4,1/4)', '(x+1/4,1/4,1/4)'], }, 'd': { 'multiplicity': 16, 'site_symmetry': '-1', - 'coords_xyz': [ - '(-1/2,1/2,1/2)', - '(-1/2,1/4,1/4)', - '(-1/4,1/2,1/4)', - '(-1/4,1/4,1/2)' - ] + 'coords_xyz': ['(5/8,5/8,5/8)', '(3/8,3/8,5/8)', '(3/8,5/8,3/8)', '(5/8,3/8,3/8)'], }, 'c': { 'multiplicity': 16, 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(0,3/4,3/4)', - '(-3/4,0,3/4)', - '(-3/4,3/4,0)' - ] - }, - 'b': { - 'multiplicity': 8, - 'site_symmetry': '222', - 'coords_xyz': [ - '(-5/8,1/8,1/8)', - '(-3/8,7/8,7/8)' - ] + 'coords_xyz': ['(1/8,1/8,1/8)', '(7/8,7/8,1/8)', '(7/8,1/8,7/8)', '(1/8,7/8,7/8)'], }, - 'a': { - 'multiplicity': 8, - 'site_symmetry': '222', - 'coords_xyz': [ - '(-1/8,1/8,1/8)', - '(-7/8,7/8,7/8)' - ] - } - } + 'b': {'multiplicity': 8, 'site_symmetry': '222', 'coords_xyz': ['(0,0,1/2)', '(1/4,1/4,3/4)']}, + 'a': {'multiplicity': 8, 'site_symmetry': '222', 'coords_xyz': ['(0,0,0)', '(1/4,1/4,1/4)']}, + }, }, - (70, '1bca'): { + (70, '2abc'): { 'IT_number': 70, - 'setting': 10, - 'IT_coordinate_system_code': '1bca', + 'setting': 12, + 'IT_coordinate_system_code': '2abc', 'name_H-M_alt': 'F d d d', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { @@ -31600,87 +12743,48 @@ 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(-x,y,-z)', - '(x,-y,-z)', - '(-x,-y,z)', - '(-x+1/4,-y+1/4,-z+1/4)', - '(x+1/4,-y+1/4,z+1/4)', - '(-x+1/4,y+1/4,z+1/4)', - '(x+1/4,y+1/4,-z+1/4)' - ] + '(-x+3/4,-y+3/4,z)', + '(-x+3/4,y,-z+3/4)', + '(x,-y+3/4,-z+3/4)', + '(-x,-y,-z)', + '(x+1/4,y+1/4,-z)', + '(x+1/4,-y,z+1/4)', + '(-x,y+1/4,z+1/4)', + ], }, 'g': { 'multiplicity': 16, 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y,0)', - '(1/4,-y+1/4,1/4)', - '(1/4,y+1/4,1/4)' - ] + 'coords_xyz': ['(1/8,1/8,z)', '(5/8,1/8,-z+3/4)', '(7/8,7/8,-z)', '(3/8,7/8,z+1/4)'], }, 'f': { 'multiplicity': 16, 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)', - '(-x+1/4,1/4,1/4)', - '(x+1/4,1/4,1/4)' - ] + 'coords_xyz': ['(1/8,y,1/8)', '(5/8,-y+3/4,1/8)', '(7/8,-y,7/8)', '(3/8,y+1/4,7/8)'], }, 'e': { 'multiplicity': 16, 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)', - '(1/4,1/4,-z+1/4)', - '(1/4,1/4,z+1/4)' - ] + 'coords_xyz': ['(x,1/8,1/8)', '(-x+3/4,5/8,1/8)', '(-x,7/8,7/8)', '(x+1/4,3/8,7/8)'], }, 'd': { 'multiplicity': 16, 'site_symmetry': '-1', - 'coords_xyz': [ - '(5/8,5/8,5/8)', - '(3/8,5/8,3/8)', - '(5/8,3/8,3/8)', - '(3/8,3/8,5/8)' - ] + 'coords_xyz': ['(1/2,1/2,1/2)', '(1/4,1/4,1/2)', '(1/4,1/2,1/4)', '(1/2,1/4,1/4)'], }, 'c': { 'multiplicity': 16, 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/8,1/8,1/8)', - '(7/8,1/8,7/8)', - '(1/8,7/8,7/8)', - '(7/8,7/8,1/8)' - ] + 'coords_xyz': ['(0,0,0)', '(3/4,3/4,0)', '(3/4,0,3/4)', '(0,3/4,3/4)'], }, - 'b': { - 'multiplicity': 8, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,1/2,0)', - '(1/4,3/4,1/4)' - ] - }, - 'a': { - 'multiplicity': 8, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,0)', - '(1/4,1/4,1/4)' - ] - } - } + 'b': {'multiplicity': 8, 'site_symmetry': '222', 'coords_xyz': ['(1/8,1/8,5/8)', '(7/8,7/8,3/8)']}, + 'a': {'multiplicity': 8, 'site_symmetry': '222', 'coords_xyz': ['(1/8,1/8,1/8)', '(7/8,7/8,7/8)']}, + }, }, - (70, '2bca'): { + (70, '1ba-c'): { 'IT_number': 70, - 'setting': 16, - 'IT_coordinate_system_code': '2bca', + 'setting': 7, + 'IT_coordinate_system_code': '1ba-c', 'name_H-M_alt': 'F d d d', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { @@ -31689,87 +12793,48 @@ 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(-x+3/4,y,-z+3/4)', - '(x,-y+3/4,-z+3/4)', - '(-x+3/4,-y+3/4,z)', - '(-x,-y,-z)', - '(x+1/4,-y,z+1/4)', - '(-x,y+1/4,z+1/4)', - '(x+1/4,y+1/4,-z)' - ] + '(-x,-y,z)', + '(x,-y,-z)', + '(-x,y,-z)', + '(-x+1/4,-y+1/4,-z-1/4)', + '(x+1/4,y+1/4,-z-1/4)', + '(-x+1/4,y+1/4,z-1/4)', + '(x+1/4,-y+1/4,z-1/4)', + ], }, 'g': { 'multiplicity': 16, 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/8,y,1/8)', - '(1/8,-y+3/4,5/8)', - '(7/8,-y,7/8)', - '(7/8,y+1/4,3/8)' - ] + 'coords_xyz': ['(0,0,z)', '(0,0,-z)', '(1/4,1/4,-z-1/4)', '(1/4,1/4,z-1/4)'], }, 'f': { 'multiplicity': 16, 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,1/8,1/8)', - '(-x+3/4,1/8,5/8)', - '(-x,7/8,7/8)', - '(x+1/4,7/8,3/8)' - ] + 'coords_xyz': ['(x,0,0)', '(-x,0,0)', '(-x+1/4,1/4,-1/4)', '(x+1/4,1/4,-1/4)'], }, 'e': { 'multiplicity': 16, 'site_symmetry': '2..', - 'coords_xyz': [ - '(1/8,1/8,z)', - '(5/8,1/8,-z+3/4)', - '(7/8,7/8,-z)', - '(3/8,7/8,z+1/4)' - ] + 'coords_xyz': ['(0,y,0)', '(0,-y,0)', '(1/4,-y+1/4,-1/4)', '(1/4,y+1/4,-1/4)'], }, 'd': { 'multiplicity': 16, 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/2,1/2,1/2)', - '(1/4,1/2,1/4)', - '(1/2,1/4,1/4)', - '(1/4,1/4,1/2)' - ] + 'coords_xyz': ['(5/8,5/8,-5/8)', '(3/8,3/8,-5/8)', '(5/8,3/8,-3/8)', '(3/8,5/8,-3/8)'], }, 'c': { 'multiplicity': 16, 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(3/4,0,3/4)', - '(0,3/4,3/4)', - '(3/4,3/4,0)' - ] + 'coords_xyz': ['(1/8,1/8,-1/8)', '(7/8,7/8,-1/8)', '(1/8,7/8,-7/8)', '(7/8,1/8,-7/8)'], }, - 'b': { - 'multiplicity': 8, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/8,5/8,1/8)', - '(7/8,3/8,7/8)' - ] - }, - 'a': { - 'multiplicity': 8, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/8,1/8,1/8)', - '(7/8,7/8,7/8)' - ] - } - } + 'b': {'multiplicity': 8, 'site_symmetry': '222', 'coords_xyz': ['(0,0,-1/2)', '(1/4,1/4,-3/4)']}, + 'a': {'multiplicity': 8, 'site_symmetry': '222', 'coords_xyz': ['(0,0,0)', '(1/4,1/4,-1/4)']}, + }, }, - (70, '2a-cb'): { + (70, '2ba-c'): { 'IT_number': 70, - 'setting': 17, - 'IT_coordinate_system_code': '2a-cb', + 'setting': 13, + 'IT_coordinate_system_code': '2ba-c', 'name_H-M_alt': 'F d d d', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { @@ -31778,643 +12843,398 @@ 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(-x+3/4,y,-z+3/4)', - '(-x+3/4,-y-3/4,z)', - '(x,-y-3/4,-z+3/4)', + '(-x+3/4,-y+3/4,z)', + '(x,-y+3/4,-z-3/4)', + '(-x+3/4,y,-z-3/4)', '(-x,-y,-z)', - '(x+1/4,-y,z+1/4)', - '(x+1/4,y-1/4,-z)', - '(-x,y-1/4,z+1/4)' - ] + '(x+1/4,y+1/4,-z)', + '(-x,y+1/4,z-1/4)', + '(x+1/4,-y,z-1/4)', + ], }, 'g': { 'multiplicity': 16, 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/8,y,1/8)', - '(5/8,-y-3/4,1/8)', - '(7/8,-y,7/8)', - '(3/8,y-1/4,7/8)' - ] + 'coords_xyz': ['(1/8,1/8,z)', '(1/8,5/8,-z-3/4)', '(7/8,7/8,-z)', '(7/8,3/8,z-1/4)'], }, 'f': { 'multiplicity': 16, 'site_symmetry': '.2.', - 'coords_xyz': [ - '(1/8,-1/8,z)', - '(5/8,-1/8,-z+3/4)', - '(7/8,-7/8,-z)', - '(3/8,-7/8,z+1/4)' - ] + 'coords_xyz': ['(x,1/8,-1/8)', '(-x+3/4,5/8,-1/8)', '(-x,7/8,-7/8)', '(x+1/4,3/8,-7/8)'], }, 'e': { 'multiplicity': 16, 'site_symmetry': '2..', - 'coords_xyz': [ - '(x,-1/8,1/8)', - '(-x+3/4,-1/8,5/8)', - '(-x,-7/8,7/8)', - '(x+1/4,-7/8,3/8)' - ] + 'coords_xyz': ['(1/8,y,-1/8)', '(5/8,-y+3/4,-1/8)', '(7/8,-y,-7/8)', '(3/8,y+1/4,-7/8)'], }, 'd': { 'multiplicity': 16, 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/2,-1/2,1/2)', - '(1/4,-1/2,1/4)', - '(1/4,-1/4,1/2)', - '(1/2,-1/4,1/4)' - ] + 'coords_xyz': ['(1/2,1/2,-1/2)', '(1/4,1/4,-1/2)', '(1/2,1/4,-1/4)', '(1/4,1/2,-1/4)'], }, 'c': { 'multiplicity': 16, 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(3/4,0,3/4)', - '(3/4,-3/4,0)', - '(0,-3/4,3/4)' - ] - }, - 'b': { - 'multiplicity': 8, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/8,-5/8,1/8)', - '(7/8,-3/8,7/8)' - ] + 'coords_xyz': ['(0,0,0)', '(3/4,3/4,0)', '(0,3/4,-3/4)', '(3/4,0,-3/4)'], }, - 'a': { - 'multiplicity': 8, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/8,-1/8,1/8)', - '(7/8,-7/8,7/8)' - ] - } - } + 'b': {'multiplicity': 8, 'site_symmetry': '222', 'coords_xyz': ['(1/8,1/8,-5/8)', '(7/8,7/8,-3/8)']}, + 'a': {'multiplicity': 8, 'site_symmetry': '222', 'coords_xyz': ['(1/8,1/8,-1/8)', '(7/8,7/8,-7/8)']}, + }, }, - (71, 'abc'): { - 'IT_number': 71, - 'setting': 0, - 'IT_coordinate_system_code': 'abc', - 'name_H-M_alt': 'I m m m', + (70, '1cab'): { + 'IT_number': 70, + 'setting': 8, + 'IT_coordinate_system_code': '1cab', + 'name_H-M_alt': 'F d d d', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'o': { - 'multiplicity': 16, + 'h': { + 'multiplicity': 32, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', + '(x,-y,-z)', '(-x,-y,z)', '(-x,y,-z)', - '(x,-y,-z)', - '(-x,-y,-z)', - '(x,y,-z)', - '(x,-y,z)', - '(-x,y,z)' - ] - }, - 'n': { - 'multiplicity': 8, - 'site_symmetry': '..m', - 'coords_xyz': [ - '(x,y,0)', - '(-x,-y,0)', - '(-x,y,0)', - '(x,-y,0)' - ] - }, - 'm': { - 'multiplicity': 8, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,0,z)', - '(-x,0,z)', - '(-x,0,-z)', - '(x,0,-z)' - ] - }, - 'l': { - 'multiplicity': 8, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(0,y,z)', - '(0,-y,z)', - '(0,y,-z)', - '(0,-y,-z)' - ] - }, - 'k': { - 'multiplicity': 8, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/4,1/4,1/4)', - '(3/4,3/4,1/4)', - '(3/4,1/4,3/4)', - '(1/4,3/4,3/4)' - ] - }, - 'j': { - 'multiplicity': 4, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(1/2,0,z)', - '(1/2,0,-z)' - ] - }, - 'i': { - 'multiplicity': 4, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)' - ] - }, - 'h': { - 'multiplicity': 4, - 'site_symmetry': 'm2m', - 'coords_xyz': [ - '(0,y,1/2)', - '(0,-y,1/2)' - ] + '(-x+1/4,-y+1/4,-z+1/4)', + '(-x+1/4,y+1/4,z+1/4)', + '(x+1/4,y+1/4,-z+1/4)', + '(x+1/4,-y+1/4,z+1/4)', + ], }, 'g': { - 'multiplicity': 4, - 'site_symmetry': 'm2m', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y,0)' - ] + 'multiplicity': 16, + 'site_symmetry': '..2', + 'coords_xyz': ['(x,0,0)', '(-x,0,0)', '(-x+1/4,1/4,1/4)', '(x+1/4,1/4,1/4)'], }, 'f': { - 'multiplicity': 4, - 'site_symmetry': '2mm', - 'coords_xyz': [ - '(x,1/2,0)', - '(-x,1/2,0)' - ] + 'multiplicity': 16, + 'site_symmetry': '.2.', + 'coords_xyz': ['(0,0,z)', '(0,0,-z)', '(1/4,1/4,-z+1/4)', '(1/4,1/4,z+1/4)'], }, 'e': { - 'multiplicity': 4, - 'site_symmetry': '2mm', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)' - ] + 'multiplicity': 16, + 'site_symmetry': '2..', + 'coords_xyz': ['(0,y,0)', '(0,-y,0)', '(1/4,-y+1/4,1/4)', '(1/4,y+1/4,1/4)'], }, 'd': { - 'multiplicity': 2, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(1/2,0,1/2)' - ] + 'multiplicity': 16, + 'site_symmetry': '-1', + 'coords_xyz': ['(5/8,5/8,5/8)', '(5/8,3/8,3/8)', '(3/8,3/8,5/8)', '(3/8,5/8,3/8)'], }, 'c': { - 'multiplicity': 2, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(1/2,1/2,0)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(0,1/2,1/2)' - ] + 'multiplicity': 16, + 'site_symmetry': '-1', + 'coords_xyz': ['(1/8,1/8,1/8)', '(1/8,7/8,7/8)', '(7/8,7/8,1/8)', '(7/8,1/8,7/8)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'b': {'multiplicity': 8, 'site_symmetry': '222', 'coords_xyz': ['(1/2,0,0)', '(3/4,1/4,1/4)']}, + 'a': {'multiplicity': 8, 'site_symmetry': '222', 'coords_xyz': ['(0,0,0)', '(1/4,1/4,1/4)']}, + }, }, - (71, 'ba-c'): { - 'IT_number': 71, - 'setting': 1, - 'IT_coordinate_system_code': 'ba-c', - 'name_H-M_alt': 'I m m m', + (70, '2cab'): { + 'IT_number': 70, + 'setting': 14, + 'IT_coordinate_system_code': '2cab', + 'name_H-M_alt': 'F d d d', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'o': { - 'multiplicity': 16, + 'h': { + 'multiplicity': 32, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(-x,-y,z)', - '(x,-y,-z)', - '(-x,y,-z)', + '(x,-y+3/4,-z+3/4)', + '(-x+3/4,-y+3/4,z)', + '(-x+3/4,y,-z+3/4)', '(-x,-y,-z)', - '(x,y,-z)', - '(-x,y,z)', - '(x,-y,z)' - ] + '(-x,y+1/4,z+1/4)', + '(x+1/4,y+1/4,-z)', + '(x+1/4,-y,z+1/4)', + ], }, - 'n': { - 'multiplicity': 8, - 'site_symmetry': '..m', - 'coords_xyz': [ - '(x,y,0)', - '(-x,-y,0)', - '(x,-y,0)', - '(-x,y,0)' - ] + 'g': { + 'multiplicity': 16, + 'site_symmetry': '..2', + 'coords_xyz': ['(x,1/8,1/8)', '(-x+3/4,5/8,1/8)', '(-x,7/8,7/8)', '(x+1/4,3/8,7/8)'], }, - 'm': { - 'multiplicity': 8, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(0,y,z)', - '(0,-y,z)', - '(0,-y,-z)', - '(0,y,-z)' - ] + 'f': { + 'multiplicity': 16, + 'site_symmetry': '.2.', + 'coords_xyz': ['(1/8,1/8,z)', '(1/8,5/8,-z+3/4)', '(7/8,7/8,-z)', '(7/8,3/8,z+1/4)'], }, - 'l': { - 'multiplicity': 8, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,0,z)', - '(-x,0,z)', - '(x,0,-z)', - '(-x,0,-z)' - ] + 'e': { + 'multiplicity': 16, + 'site_symmetry': '2..', + 'coords_xyz': ['(1/8,y,1/8)', '(1/8,-y+3/4,5/8)', '(7/8,-y,7/8)', '(7/8,y+1/4,3/8)'], }, - 'k': { - 'multiplicity': 8, + 'd': { + 'multiplicity': 16, 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/4,1/4,-1/4)', - '(3/4,3/4,-1/4)', - '(1/4,3/4,-3/4)', - '(3/4,1/4,-3/4)' - ] + 'coords_xyz': ['(1/2,1/2,1/2)', '(1/2,1/4,1/4)', '(1/4,1/4,1/2)', '(1/4,1/2,1/4)'], }, - 'j': { - 'multiplicity': 4, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(0,1/2,z)', - '(0,1/2,-z)' - ] - }, - 'i': { - 'multiplicity': 4, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)' - ] + 'c': { + 'multiplicity': 16, + 'site_symmetry': '-1', + 'coords_xyz': ['(0,0,0)', '(0,3/4,3/4)', '(3/4,3/4,0)', '(3/4,0,3/4)'], }, + 'b': {'multiplicity': 8, 'site_symmetry': '222', 'coords_xyz': ['(5/8,1/8,1/8)', '(3/8,7/8,7/8)']}, + 'a': {'multiplicity': 8, 'site_symmetry': '222', 'coords_xyz': ['(1/8,1/8,1/8)', '(7/8,7/8,7/8)']}, + }, + }, + (70, '1-cba'): { + 'IT_number': 70, + 'setting': 9, + 'IT_coordinate_system_code': '1-cba', + 'name_H-M_alt': 'F d d d', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { 'h': { - 'multiplicity': 4, - 'site_symmetry': 'm2m', + 'multiplicity': 32, + 'site_symmetry': '1', 'coords_xyz': [ - '(x,0,-1/2)', - '(-x,0,-1/2)' - ] + '(x,y,z)', + '(x,-y,-z)', + '(-x,y,-z)', + '(-x,-y,z)', + '(-x-1/4,-y+1/4,-z+1/4)', + '(-x-1/4,y+1/4,z+1/4)', + '(x-1/4,-y+1/4,z+1/4)', + '(x-1/4,y+1/4,-z+1/4)', + ], }, 'g': { - 'multiplicity': 4, - 'site_symmetry': 'm2m', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)' - ] + 'multiplicity': 16, + 'site_symmetry': '..2', + 'coords_xyz': ['(x,0,0)', '(-x,0,0)', '(-x-1/4,1/4,1/4)', '(x-1/4,1/4,1/4)'], }, 'f': { - 'multiplicity': 4, - 'site_symmetry': '2mm', - 'coords_xyz': [ - '(1/2,y,0)', - '(1/2,-y,0)' - ] + 'multiplicity': 16, + 'site_symmetry': '.2.', + 'coords_xyz': ['(0,y,0)', '(0,-y,0)', '(-1/4,-y+1/4,1/4)', '(-1/4,y+1/4,1/4)'], }, 'e': { - 'multiplicity': 4, - 'site_symmetry': '2mm', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y,0)' - ] + 'multiplicity': 16, + 'site_symmetry': '2..', + 'coords_xyz': ['(0,0,z)', '(0,0,-z)', '(-1/4,1/4,-z+1/4)', '(-1/4,1/4,z+1/4)'], }, 'd': { - 'multiplicity': 2, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(0,1/2,-1/2)' - ] + 'multiplicity': 16, + 'site_symmetry': '-1', + 'coords_xyz': ['(-5/8,5/8,5/8)', '(-5/8,3/8,3/8)', '(-3/8,5/8,3/8)', '(-3/8,3/8,5/8)'], }, 'c': { - 'multiplicity': 2, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(1/2,1/2,0)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(1/2,0,-1/2)' - ] + 'multiplicity': 16, + 'site_symmetry': '-1', + 'coords_xyz': ['(-1/8,1/8,1/8)', '(-1/8,7/8,7/8)', '(-7/8,1/8,7/8)', '(-7/8,7/8,1/8)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'b': {'multiplicity': 8, 'site_symmetry': '222', 'coords_xyz': ['(-1/2,0,0)', '(-3/4,1/4,1/4)']}, + 'a': {'multiplicity': 8, 'site_symmetry': '222', 'coords_xyz': ['(0,0,0)', '(-1/4,1/4,1/4)']}, + }, }, - (71, 'cab'): { - 'IT_number': 71, - 'setting': 2, - 'IT_coordinate_system_code': 'cab', - 'name_H-M_alt': 'I m m m', + (70, '2-cba'): { + 'IT_number': 70, + 'setting': 15, + 'IT_coordinate_system_code': '2-cba', + 'name_H-M_alt': 'F d d d', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'o': { - 'multiplicity': 16, + 'h': { + 'multiplicity': 32, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(x,-y,-z)', - '(-x,-y,z)', - '(-x,y,-z)', + '(x,-y+3/4,-z+3/4)', + '(-x-3/4,y,-z+3/4)', + '(-x-3/4,-y+3/4,z)', '(-x,-y,-z)', - '(-x,y,z)', - '(x,y,-z)', - '(x,-y,z)' - ] + '(-x,y+1/4,z+1/4)', + '(x-1/4,-y,z+1/4)', + '(x-1/4,y+1/4,-z)', + ], }, - 'n': { - 'multiplicity': 8, - 'site_symmetry': '..m', - 'coords_xyz': [ - '(0,y,z)', - '(0,-y,-z)', - '(0,-y,z)', - '(0,y,-z)' - ] + 'g': { + 'multiplicity': 16, + 'site_symmetry': '..2', + 'coords_xyz': ['(x,1/8,1/8)', '(-x-3/4,1/8,5/8)', '(-x,7/8,7/8)', '(x-1/4,7/8,3/8)'], }, - 'm': { - 'multiplicity': 8, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,y,0)', - '(x,-y,0)', - '(-x,-y,0)', - '(-x,y,0)' - ] + 'f': { + 'multiplicity': 16, + 'site_symmetry': '.2.', + 'coords_xyz': ['(-1/8,y,1/8)', '(-1/8,-y+3/4,5/8)', '(-7/8,-y,7/8)', '(-7/8,y+1/4,3/8)'], }, - 'l': { - 'multiplicity': 8, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,0,z)', - '(x,0,-z)', - '(-x,0,z)', - '(-x,0,-z)' - ] + 'e': { + 'multiplicity': 16, + 'site_symmetry': '2..', + 'coords_xyz': ['(-1/8,1/8,z)', '(-1/8,5/8,-z+3/4)', '(-7/8,7/8,-z)', '(-7/8,3/8,z+1/4)'], }, - 'k': { - 'multiplicity': 8, + 'd': { + 'multiplicity': 16, 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/4,1/4,1/4)', - '(1/4,3/4,3/4)', - '(3/4,3/4,1/4)', - '(3/4,1/4,3/4)' - ] - }, - 'j': { - 'multiplicity': 4, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(x,1/2,0)', - '(-x,1/2,0)' - ] + 'coords_xyz': ['(-1/2,1/2,1/2)', '(-1/2,1/4,1/4)', '(-1/4,1/2,1/4)', '(-1/4,1/4,1/2)'], }, - 'i': { - 'multiplicity': 4, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)' - ] + 'c': { + 'multiplicity': 16, + 'site_symmetry': '-1', + 'coords_xyz': ['(0,0,0)', '(0,3/4,3/4)', '(-3/4,0,3/4)', '(-3/4,3/4,0)'], }, + 'b': {'multiplicity': 8, 'site_symmetry': '222', 'coords_xyz': ['(-5/8,1/8,1/8)', '(-3/8,7/8,7/8)']}, + 'a': {'multiplicity': 8, 'site_symmetry': '222', 'coords_xyz': ['(-1/8,1/8,1/8)', '(-7/8,7/8,7/8)']}, + }, + }, + (70, '1bca'): { + 'IT_number': 70, + 'setting': 10, + 'IT_coordinate_system_code': '1bca', + 'name_H-M_alt': 'F d d d', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { 'h': { - 'multiplicity': 4, - 'site_symmetry': 'm2m', + 'multiplicity': 32, + 'site_symmetry': '1', 'coords_xyz': [ - '(1/2,0,z)', - '(1/2,0,-z)' - ] + '(x,y,z)', + '(-x,y,-z)', + '(x,-y,-z)', + '(-x,-y,z)', + '(-x+1/4,-y+1/4,-z+1/4)', + '(x+1/4,-y+1/4,z+1/4)', + '(-x+1/4,y+1/4,z+1/4)', + '(x+1/4,y+1/4,-z+1/4)', + ], }, 'g': { - 'multiplicity': 4, - 'site_symmetry': 'm2m', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)' - ] + 'multiplicity': 16, + 'site_symmetry': '..2', + 'coords_xyz': ['(0,y,0)', '(0,-y,0)', '(1/4,-y+1/4,1/4)', '(1/4,y+1/4,1/4)'], }, 'f': { - 'multiplicity': 4, - 'site_symmetry': '2mm', - 'coords_xyz': [ - '(0,y,1/2)', - '(0,-y,1/2)' - ] + 'multiplicity': 16, + 'site_symmetry': '.2.', + 'coords_xyz': ['(x,0,0)', '(-x,0,0)', '(-x+1/4,1/4,1/4)', '(x+1/4,1/4,1/4)'], }, 'e': { - 'multiplicity': 4, - 'site_symmetry': '2mm', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y,0)' - ] + 'multiplicity': 16, + 'site_symmetry': '2..', + 'coords_xyz': ['(0,0,z)', '(0,0,-z)', '(1/4,1/4,-z+1/4)', '(1/4,1/4,z+1/4)'], }, 'd': { - 'multiplicity': 2, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(1/2,1/2,0)' - ] + 'multiplicity': 16, + 'site_symmetry': '-1', + 'coords_xyz': ['(5/8,5/8,5/8)', '(3/8,5/8,3/8)', '(5/8,3/8,3/8)', '(3/8,3/8,5/8)'], }, 'c': { - 'multiplicity': 2, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(0,1/2,1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(1/2,0,1/2)' - ] + 'multiplicity': 16, + 'site_symmetry': '-1', + 'coords_xyz': ['(1/8,1/8,1/8)', '(7/8,1/8,7/8)', '(1/8,7/8,7/8)', '(7/8,7/8,1/8)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'b': {'multiplicity': 8, 'site_symmetry': '222', 'coords_xyz': ['(0,1/2,0)', '(1/4,3/4,1/4)']}, + 'a': {'multiplicity': 8, 'site_symmetry': '222', 'coords_xyz': ['(0,0,0)', '(1/4,1/4,1/4)']}, + }, }, - (71, '-cba'): { - 'IT_number': 71, - 'setting': 3, - 'IT_coordinate_system_code': '-cba', - 'name_H-M_alt': 'I m m m', + (70, '2bca'): { + 'IT_number': 70, + 'setting': 16, + 'IT_coordinate_system_code': '2bca', + 'name_H-M_alt': 'F d d d', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { - 'o': { - 'multiplicity': 16, + 'h': { + 'multiplicity': 32, 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', - '(x,-y,-z)', - '(-x,y,-z)', - '(-x,-y,z)', + '(-x+3/4,y,-z+3/4)', + '(x,-y+3/4,-z+3/4)', + '(-x+3/4,-y+3/4,z)', '(-x,-y,-z)', - '(-x,y,z)', - '(x,-y,z)', - '(x,y,-z)' - ] + '(x+1/4,-y,z+1/4)', + '(-x,y+1/4,z+1/4)', + '(x+1/4,y+1/4,-z)', + ], }, - 'n': { - 'multiplicity': 8, - 'site_symmetry': '..m', - 'coords_xyz': [ - '(0,y,z)', - '(0,-y,-z)', - '(0,y,-z)', - '(0,-y,z)' - ] + 'g': { + 'multiplicity': 16, + 'site_symmetry': '..2', + 'coords_xyz': ['(1/8,y,1/8)', '(1/8,-y+3/4,5/8)', '(7/8,-y,7/8)', '(7/8,y+1/4,3/8)'], }, - 'm': { - 'multiplicity': 8, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,0,z)', - '(x,0,-z)', - '(-x,0,-z)', - '(-x,0,z)' - ] + 'f': { + 'multiplicity': 16, + 'site_symmetry': '.2.', + 'coords_xyz': ['(x,1/8,1/8)', '(-x+3/4,1/8,5/8)', '(-x,7/8,7/8)', '(x+1/4,7/8,3/8)'], }, - 'l': { - 'multiplicity': 8, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,y,0)', - '(x,-y,0)', - '(-x,y,0)', - '(-x,-y,0)' - ] + 'e': { + 'multiplicity': 16, + 'site_symmetry': '2..', + 'coords_xyz': ['(1/8,1/8,z)', '(5/8,1/8,-z+3/4)', '(7/8,7/8,-z)', '(3/8,7/8,z+1/4)'], }, - 'k': { - 'multiplicity': 8, + 'd': { + 'multiplicity': 16, 'site_symmetry': '-1', - 'coords_xyz': [ - '(-1/4,1/4,1/4)', - '(-1/4,3/4,3/4)', - '(-3/4,1/4,3/4)', - '(-3/4,3/4,1/4)' - ] - }, - 'j': { - 'multiplicity': 4, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(x,0,1/2)', - '(-x,0,1/2)' - ] + 'coords_xyz': ['(1/2,1/2,1/2)', '(1/4,1/2,1/4)', '(1/2,1/4,1/4)', '(1/4,1/4,1/2)'], }, - 'i': { - 'multiplicity': 4, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)' - ] + 'c': { + 'multiplicity': 16, + 'site_symmetry': '-1', + 'coords_xyz': ['(0,0,0)', '(3/4,0,3/4)', '(0,3/4,3/4)', '(3/4,3/4,0)'], }, + 'b': {'multiplicity': 8, 'site_symmetry': '222', 'coords_xyz': ['(1/8,5/8,1/8)', '(7/8,3/8,7/8)']}, + 'a': {'multiplicity': 8, 'site_symmetry': '222', 'coords_xyz': ['(1/8,1/8,1/8)', '(7/8,7/8,7/8)']}, + }, + }, + (70, '2a-cb'): { + 'IT_number': 70, + 'setting': 17, + 'IT_coordinate_system_code': '2a-cb', + 'name_H-M_alt': 'F d d d', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { 'h': { - 'multiplicity': 4, - 'site_symmetry': 'm2m', + 'multiplicity': 32, + 'site_symmetry': '1', 'coords_xyz': [ - '(-1/2,y,0)', - '(-1/2,-y,0)' - ] + '(x,y,z)', + '(-x+3/4,y,-z+3/4)', + '(-x+3/4,-y-3/4,z)', + '(x,-y-3/4,-z+3/4)', + '(-x,-y,-z)', + '(x+1/4,-y,z+1/4)', + '(x+1/4,y-1/4,-z)', + '(-x,y-1/4,z+1/4)', + ], }, 'g': { - 'multiplicity': 4, - 'site_symmetry': 'm2m', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y,0)' - ] + 'multiplicity': 16, + 'site_symmetry': '..2', + 'coords_xyz': ['(1/8,y,1/8)', '(5/8,-y-3/4,1/8)', '(7/8,-y,7/8)', '(3/8,y-1/4,7/8)'], }, 'f': { - 'multiplicity': 4, - 'site_symmetry': '2mm', - 'coords_xyz': [ - '(0,1/2,z)', - '(0,1/2,-z)' - ] + 'multiplicity': 16, + 'site_symmetry': '.2.', + 'coords_xyz': ['(1/8,-1/8,z)', '(5/8,-1/8,-z+3/4)', '(7/8,-7/8,-z)', '(3/8,-7/8,z+1/4)'], }, 'e': { - 'multiplicity': 4, - 'site_symmetry': '2mm', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)' - ] + 'multiplicity': 16, + 'site_symmetry': '2..', + 'coords_xyz': ['(x,-1/8,1/8)', '(-x+3/4,-1/8,5/8)', '(-x,-7/8,7/8)', '(x+1/4,-7/8,3/8)'], }, 'd': { - 'multiplicity': 2, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(-1/2,0,1/2)' - ] + 'multiplicity': 16, + 'site_symmetry': '-1', + 'coords_xyz': ['(1/2,-1/2,1/2)', '(1/4,-1/2,1/4)', '(1/4,-1/4,1/2)', '(1/2,-1/4,1/4)'], }, 'c': { - 'multiplicity': 2, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(0,1/2,1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(-1/2,1/2,0)' - ] + 'multiplicity': 16, + 'site_symmetry': '-1', + 'coords_xyz': ['(0,0,0)', '(3/4,0,3/4)', '(3/4,-3/4,0)', '(0,-3/4,3/4)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'b': {'multiplicity': 8, 'site_symmetry': '222', 'coords_xyz': ['(1/8,-5/8,1/8)', '(7/8,-3/8,7/8)']}, + 'a': {'multiplicity': 8, 'site_symmetry': '222', 'coords_xyz': ['(1/8,-1/8,1/8)', '(7/8,-7/8,7/8)']}, + }, }, - (71, 'bca'): { + (71, 'abc'): { 'IT_number': 71, - 'setting': 4, - 'IT_coordinate_system_code': 'bca', + 'setting': 0, + 'IT_coordinate_system_code': 'abc', 'name_H-M_alt': 'I m m m', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { @@ -32423,137 +13243,121 @@ 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', + '(-x,-y,z)', '(-x,y,-z)', '(x,-y,-z)', - '(-x,-y,z)', '(-x,-y,-z)', + '(x,y,-z)', '(x,-y,z)', '(-x,y,z)', - '(x,y,-z)' - ] - }, - 'n': { - 'multiplicity': 8, - 'site_symmetry': '..m', - 'coords_xyz': [ - '(x,0,z)', - '(-x,0,-z)', - '(x,0,-z)', - '(-x,0,z)' - ] + ], }, - 'm': { + 'n': {'multiplicity': 8, 'site_symmetry': '..m', 'coords_xyz': ['(x,y,0)', '(-x,-y,0)', '(-x,y,0)', '(x,-y,0)']}, + 'm': {'multiplicity': 8, 'site_symmetry': '.m.', 'coords_xyz': ['(x,0,z)', '(-x,0,z)', '(-x,0,-z)', '(x,0,-z)']}, + 'l': {'multiplicity': 8, 'site_symmetry': 'm..', 'coords_xyz': ['(0,y,z)', '(0,-y,z)', '(0,y,-z)', '(0,-y,-z)']}, + 'k': { 'multiplicity': 8, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(0,y,z)', - '(0,y,-z)', - '(0,-y,-z)', - '(0,-y,z)' - ] + 'site_symmetry': '-1', + 'coords_xyz': ['(1/4,1/4,1/4)', '(3/4,3/4,1/4)', '(3/4,1/4,3/4)', '(1/4,3/4,3/4)'], }, - 'l': { - 'multiplicity': 8, - 'site_symmetry': 'm..', + 'j': {'multiplicity': 4, 'site_symmetry': 'mm2', 'coords_xyz': ['(1/2,0,z)', '(1/2,0,-z)']}, + 'i': {'multiplicity': 4, 'site_symmetry': 'mm2', 'coords_xyz': ['(0,0,z)', '(0,0,-z)']}, + 'h': {'multiplicity': 4, 'site_symmetry': 'm2m', 'coords_xyz': ['(0,y,1/2)', '(0,-y,1/2)']}, + 'g': {'multiplicity': 4, 'site_symmetry': 'm2m', 'coords_xyz': ['(0,y,0)', '(0,-y,0)']}, + 'f': {'multiplicity': 4, 'site_symmetry': '2mm', 'coords_xyz': ['(x,1/2,0)', '(-x,1/2,0)']}, + 'e': {'multiplicity': 4, 'site_symmetry': '2mm', 'coords_xyz': ['(x,0,0)', '(-x,0,0)']}, + 'd': {'multiplicity': 2, 'site_symmetry': 'mmm', 'coords_xyz': ['(1/2,0,1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': 'mmm', 'coords_xyz': ['(1/2,1/2,0)']}, + 'b': {'multiplicity': 2, 'site_symmetry': 'mmm', 'coords_xyz': ['(0,1/2,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': 'mmm', 'coords_xyz': ['(0,0,0)']}, + }, + }, + (71, 'ba-c'): { + 'IT_number': 71, + 'setting': 1, + 'IT_coordinate_system_code': 'ba-c', + 'name_H-M_alt': 'I m m m', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'o': { + 'multiplicity': 16, + 'site_symmetry': '1', 'coords_xyz': [ - '(x,y,0)', - '(-x,y,0)', - '(x,-y,0)', - '(-x,-y,0)' - ] + '(x,y,z)', + '(-x,-y,z)', + '(x,-y,-z)', + '(-x,y,-z)', + '(-x,-y,-z)', + '(x,y,-z)', + '(-x,y,z)', + '(x,-y,z)', + ], }, + 'n': {'multiplicity': 8, 'site_symmetry': '..m', 'coords_xyz': ['(x,y,0)', '(-x,-y,0)', '(x,-y,0)', '(-x,y,0)']}, + 'm': {'multiplicity': 8, 'site_symmetry': '.m.', 'coords_xyz': ['(0,y,z)', '(0,-y,z)', '(0,-y,-z)', '(0,y,-z)']}, + 'l': {'multiplicity': 8, 'site_symmetry': 'm..', 'coords_xyz': ['(x,0,z)', '(-x,0,z)', '(x,0,-z)', '(-x,0,-z)']}, 'k': { 'multiplicity': 8, 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/4,1/4,1/4)', - '(3/4,1/4,3/4)', - '(1/4,3/4,3/4)', - '(3/4,3/4,1/4)' - ] - }, - 'j': { - 'multiplicity': 4, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(0,y,1/2)', - '(0,-y,1/2)' - ] - }, - 'i': { - 'multiplicity': 4, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y,0)' - ] - }, - 'h': { - 'multiplicity': 4, - 'site_symmetry': 'm2m', - 'coords_xyz': [ - '(x,1/2,0)', - '(-x,1/2,0)' - ] - }, - 'g': { - 'multiplicity': 4, - 'site_symmetry': 'm2m', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)' - ] - }, - 'f': { - 'multiplicity': 4, - 'site_symmetry': '2mm', - 'coords_xyz': [ - '(1/2,0,z)', - '(1/2,0,-z)' - ] - }, - 'e': { - 'multiplicity': 4, - 'site_symmetry': '2mm', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)' - ] + 'coords_xyz': ['(1/4,1/4,-1/4)', '(3/4,3/4,-1/4)', '(1/4,3/4,-3/4)', '(3/4,1/4,-3/4)'], }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(0,1/2,1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': 'mmm', + 'j': {'multiplicity': 4, 'site_symmetry': 'mm2', 'coords_xyz': ['(0,1/2,z)', '(0,1/2,-z)']}, + 'i': {'multiplicity': 4, 'site_symmetry': 'mm2', 'coords_xyz': ['(0,0,z)', '(0,0,-z)']}, + 'h': {'multiplicity': 4, 'site_symmetry': 'm2m', 'coords_xyz': ['(x,0,-1/2)', '(-x,0,-1/2)']}, + 'g': {'multiplicity': 4, 'site_symmetry': 'm2m', 'coords_xyz': ['(x,0,0)', '(-x,0,0)']}, + 'f': {'multiplicity': 4, 'site_symmetry': '2mm', 'coords_xyz': ['(1/2,y,0)', '(1/2,-y,0)']}, + 'e': {'multiplicity': 4, 'site_symmetry': '2mm', 'coords_xyz': ['(0,y,0)', '(0,-y,0)']}, + 'd': {'multiplicity': 2, 'site_symmetry': 'mmm', 'coords_xyz': ['(0,1/2,-1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': 'mmm', 'coords_xyz': ['(1/2,1/2,0)']}, + 'b': {'multiplicity': 2, 'site_symmetry': 'mmm', 'coords_xyz': ['(1/2,0,-1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': 'mmm', 'coords_xyz': ['(0,0,0)']}, + }, + }, + (71, 'cab'): { + 'IT_number': 71, + 'setting': 2, + 'IT_coordinate_system_code': 'cab', + 'name_H-M_alt': 'I m m m', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'o': { + 'multiplicity': 16, + 'site_symmetry': '1', 'coords_xyz': [ - '(1/2,0,1/2)' - ] + '(x,y,z)', + '(x,-y,-z)', + '(-x,-y,z)', + '(-x,y,-z)', + '(-x,-y,-z)', + '(-x,y,z)', + '(x,y,-z)', + '(x,-y,z)', + ], }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(1/2,1/2,0)' - ] + 'n': {'multiplicity': 8, 'site_symmetry': '..m', 'coords_xyz': ['(0,y,z)', '(0,-y,-z)', '(0,-y,z)', '(0,y,-z)']}, + 'm': {'multiplicity': 8, 'site_symmetry': '.m.', 'coords_xyz': ['(x,y,0)', '(x,-y,0)', '(-x,-y,0)', '(-x,y,0)']}, + 'l': {'multiplicity': 8, 'site_symmetry': 'm..', 'coords_xyz': ['(x,0,z)', '(x,0,-z)', '(-x,0,z)', '(-x,0,-z)']}, + 'k': { + 'multiplicity': 8, + 'site_symmetry': '-1', + 'coords_xyz': ['(1/4,1/4,1/4)', '(1/4,3/4,3/4)', '(3/4,3/4,1/4)', '(3/4,1/4,3/4)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'j': {'multiplicity': 4, 'site_symmetry': 'mm2', 'coords_xyz': ['(x,1/2,0)', '(-x,1/2,0)']}, + 'i': {'multiplicity': 4, 'site_symmetry': 'mm2', 'coords_xyz': ['(x,0,0)', '(-x,0,0)']}, + 'h': {'multiplicity': 4, 'site_symmetry': 'm2m', 'coords_xyz': ['(1/2,0,z)', '(1/2,0,-z)']}, + 'g': {'multiplicity': 4, 'site_symmetry': 'm2m', 'coords_xyz': ['(0,0,z)', '(0,0,-z)']}, + 'f': {'multiplicity': 4, 'site_symmetry': '2mm', 'coords_xyz': ['(0,y,1/2)', '(0,-y,1/2)']}, + 'e': {'multiplicity': 4, 'site_symmetry': '2mm', 'coords_xyz': ['(0,y,0)', '(0,-y,0)']}, + 'd': {'multiplicity': 2, 'site_symmetry': 'mmm', 'coords_xyz': ['(1/2,1/2,0)']}, + 'c': {'multiplicity': 2, 'site_symmetry': 'mmm', 'coords_xyz': ['(0,1/2,1/2)']}, + 'b': {'multiplicity': 2, 'site_symmetry': 'mmm', 'coords_xyz': ['(1/2,0,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': 'mmm', 'coords_xyz': ['(0,0,0)']}, + }, }, - (71, 'a-cb'): { + (71, '-cba'): { 'IT_number': 71, - 'setting': 5, - 'IT_coordinate_system_code': 'a-cb', + 'setting': 3, + 'IT_coordinate_system_code': '-cba', 'name_H-M_alt': 'I m m m', 'crystal_system': 'orthorhombic', 'Wyckoff_positions': { @@ -32562,132 +13366,116 @@ 'site_symmetry': '1', 'coords_xyz': [ '(x,y,z)', + '(x,-y,-z)', '(-x,y,-z)', '(-x,-y,z)', - '(x,-y,-z)', '(-x,-y,-z)', + '(-x,y,z)', '(x,-y,z)', '(x,y,-z)', - '(-x,y,z)' - ] - }, - 'n': { - 'multiplicity': 8, - 'site_symmetry': '..m', - 'coords_xyz': [ - '(x,0,z)', - '(-x,0,-z)', - '(-x,0,z)', - '(x,0,-z)' - ] - }, - 'm': { - 'multiplicity': 8, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,y,0)', - '(-x,y,0)', - '(-x,-y,0)', - '(x,-y,0)' - ] - }, - 'l': { - 'multiplicity': 8, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(0,y,z)', - '(0,y,-z)', - '(0,-y,z)', - '(0,-y,-z)' - ] + ], }, + 'n': {'multiplicity': 8, 'site_symmetry': '..m', 'coords_xyz': ['(0,y,z)', '(0,-y,-z)', '(0,y,-z)', '(0,-y,z)']}, + 'm': {'multiplicity': 8, 'site_symmetry': '.m.', 'coords_xyz': ['(x,0,z)', '(x,0,-z)', '(-x,0,-z)', '(-x,0,z)']}, + 'l': {'multiplicity': 8, 'site_symmetry': 'm..', 'coords_xyz': ['(x,y,0)', '(x,-y,0)', '(-x,y,0)', '(-x,-y,0)']}, 'k': { 'multiplicity': 8, 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/4,-1/4,1/4)', - '(3/4,-1/4,3/4)', - '(3/4,-3/4,1/4)', - '(1/4,-3/4,3/4)' - ] - }, - 'j': { - 'multiplicity': 4, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(1/2,y,0)', - '(1/2,-y,0)' - ] - }, - 'i': { - 'multiplicity': 4, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y,0)' - ] - }, - 'h': { - 'multiplicity': 4, - 'site_symmetry': 'm2m', - 'coords_xyz': [ - '(0,-1/2,z)', - '(0,-1/2,-z)' - ] - }, - 'g': { - 'multiplicity': 4, - 'site_symmetry': 'm2m', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)' - ] - }, - 'f': { - 'multiplicity': 4, - 'site_symmetry': '2mm', - 'coords_xyz': [ - '(x,0,1/2)', - '(-x,0,1/2)' - ] + 'coords_xyz': ['(-1/4,1/4,1/4)', '(-1/4,3/4,3/4)', '(-3/4,1/4,3/4)', '(-3/4,3/4,1/4)'], }, - 'e': { - 'multiplicity': 4, - 'site_symmetry': '2mm', + 'j': {'multiplicity': 4, 'site_symmetry': 'mm2', 'coords_xyz': ['(x,0,1/2)', '(-x,0,1/2)']}, + 'i': {'multiplicity': 4, 'site_symmetry': 'mm2', 'coords_xyz': ['(x,0,0)', '(-x,0,0)']}, + 'h': {'multiplicity': 4, 'site_symmetry': 'm2m', 'coords_xyz': ['(-1/2,y,0)', '(-1/2,-y,0)']}, + 'g': {'multiplicity': 4, 'site_symmetry': 'm2m', 'coords_xyz': ['(0,y,0)', '(0,-y,0)']}, + 'f': {'multiplicity': 4, 'site_symmetry': '2mm', 'coords_xyz': ['(0,1/2,z)', '(0,1/2,-z)']}, + 'e': {'multiplicity': 4, 'site_symmetry': '2mm', 'coords_xyz': ['(0,0,z)', '(0,0,-z)']}, + 'd': {'multiplicity': 2, 'site_symmetry': 'mmm', 'coords_xyz': ['(-1/2,0,1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': 'mmm', 'coords_xyz': ['(0,1/2,1/2)']}, + 'b': {'multiplicity': 2, 'site_symmetry': 'mmm', 'coords_xyz': ['(-1/2,1/2,0)']}, + 'a': {'multiplicity': 2, 'site_symmetry': 'mmm', 'coords_xyz': ['(0,0,0)']}, + }, + }, + (71, 'bca'): { + 'IT_number': 71, + 'setting': 4, + 'IT_coordinate_system_code': 'bca', + 'name_H-M_alt': 'I m m m', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'o': { + 'multiplicity': 16, + 'site_symmetry': '1', 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)' - ] + '(x,y,z)', + '(-x,y,-z)', + '(x,-y,-z)', + '(-x,-y,z)', + '(-x,-y,-z)', + '(x,-y,z)', + '(-x,y,z)', + '(x,y,-z)', + ], }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(1/2,-1/2,0)' - ] + 'n': {'multiplicity': 8, 'site_symmetry': '..m', 'coords_xyz': ['(x,0,z)', '(-x,0,-z)', '(x,0,-z)', '(-x,0,z)']}, + 'm': {'multiplicity': 8, 'site_symmetry': '.m.', 'coords_xyz': ['(0,y,z)', '(0,y,-z)', '(0,-y,-z)', '(0,-y,z)']}, + 'l': {'multiplicity': 8, 'site_symmetry': 'm..', 'coords_xyz': ['(x,y,0)', '(-x,y,0)', '(x,-y,0)', '(-x,-y,0)']}, + 'k': { + 'multiplicity': 8, + 'site_symmetry': '-1', + 'coords_xyz': ['(1/4,1/4,1/4)', '(3/4,1/4,3/4)', '(1/4,3/4,3/4)', '(3/4,3/4,1/4)'], }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': 'mmm', + 'j': {'multiplicity': 4, 'site_symmetry': 'mm2', 'coords_xyz': ['(0,y,1/2)', '(0,-y,1/2)']}, + 'i': {'multiplicity': 4, 'site_symmetry': 'mm2', 'coords_xyz': ['(0,y,0)', '(0,-y,0)']}, + 'h': {'multiplicity': 4, 'site_symmetry': 'm2m', 'coords_xyz': ['(x,1/2,0)', '(-x,1/2,0)']}, + 'g': {'multiplicity': 4, 'site_symmetry': 'm2m', 'coords_xyz': ['(x,0,0)', '(-x,0,0)']}, + 'f': {'multiplicity': 4, 'site_symmetry': '2mm', 'coords_xyz': ['(1/2,0,z)', '(1/2,0,-z)']}, + 'e': {'multiplicity': 4, 'site_symmetry': '2mm', 'coords_xyz': ['(0,0,z)', '(0,0,-z)']}, + 'd': {'multiplicity': 2, 'site_symmetry': 'mmm', 'coords_xyz': ['(0,1/2,1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': 'mmm', 'coords_xyz': ['(1/2,0,1/2)']}, + 'b': {'multiplicity': 2, 'site_symmetry': 'mmm', 'coords_xyz': ['(1/2,1/2,0)']}, + 'a': {'multiplicity': 2, 'site_symmetry': 'mmm', 'coords_xyz': ['(0,0,0)']}, + }, + }, + (71, 'a-cb'): { + 'IT_number': 71, + 'setting': 5, + 'IT_coordinate_system_code': 'a-cb', + 'name_H-M_alt': 'I m m m', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'o': { + 'multiplicity': 16, + 'site_symmetry': '1', 'coords_xyz': [ - '(1/2,0,1/2)' - ] + '(x,y,z)', + '(-x,y,-z)', + '(-x,-y,z)', + '(x,-y,-z)', + '(-x,-y,-z)', + '(x,-y,z)', + '(x,y,-z)', + '(-x,y,z)', + ], }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(0,-1/2,1/2)' - ] + 'n': {'multiplicity': 8, 'site_symmetry': '..m', 'coords_xyz': ['(x,0,z)', '(-x,0,-z)', '(-x,0,z)', '(x,0,-z)']}, + 'm': {'multiplicity': 8, 'site_symmetry': '.m.', 'coords_xyz': ['(x,y,0)', '(-x,y,0)', '(-x,-y,0)', '(x,-y,0)']}, + 'l': {'multiplicity': 8, 'site_symmetry': 'm..', 'coords_xyz': ['(0,y,z)', '(0,y,-z)', '(0,-y,z)', '(0,-y,-z)']}, + 'k': { + 'multiplicity': 8, + 'site_symmetry': '-1', + 'coords_xyz': ['(1/4,-1/4,1/4)', '(3/4,-1/4,3/4)', '(3/4,-3/4,1/4)', '(1/4,-3/4,3/4)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'j': {'multiplicity': 4, 'site_symmetry': 'mm2', 'coords_xyz': ['(1/2,y,0)', '(1/2,-y,0)']}, + 'i': {'multiplicity': 4, 'site_symmetry': 'mm2', 'coords_xyz': ['(0,y,0)', '(0,-y,0)']}, + 'h': {'multiplicity': 4, 'site_symmetry': 'm2m', 'coords_xyz': ['(0,-1/2,z)', '(0,-1/2,-z)']}, + 'g': {'multiplicity': 4, 'site_symmetry': 'm2m', 'coords_xyz': ['(0,0,z)', '(0,0,-z)']}, + 'f': {'multiplicity': 4, 'site_symmetry': '2mm', 'coords_xyz': ['(x,0,1/2)', '(-x,0,1/2)']}, + 'e': {'multiplicity': 4, 'site_symmetry': '2mm', 'coords_xyz': ['(x,0,0)', '(-x,0,0)']}, + 'd': {'multiplicity': 2, 'site_symmetry': 'mmm', 'coords_xyz': ['(1/2,-1/2,0)']}, + 'c': {'multiplicity': 2, 'site_symmetry': 'mmm', 'coords_xyz': ['(1/2,0,1/2)']}, + 'b': {'multiplicity': 2, 'site_symmetry': 'mmm', 'coords_xyz': ['(0,-1/2,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': 'mmm', 'coords_xyz': ['(0,0,0)']}, + }, }, (72, 'abc'): { 'IT_number': 72, @@ -32707,102 +13495,44 @@ '(-x,-y,-z)', '(x,y,-z)', '(x+1/2,-y+1/2,z)', - '(-x+1/2,y+1/2,z)' - ] + '(-x+1/2,y+1/2,z)', + ], }, 'j': { 'multiplicity': 8, 'site_symmetry': '..m', - 'coords_xyz': [ - '(x,y,0)', - '(-x,-y,0)', - '(-x+1/2,y+1/2,0)', - '(x+1/2,-y+1/2,0)' - ] + 'coords_xyz': ['(x,y,0)', '(-x,-y,0)', '(-x+1/2,y+1/2,0)', '(x+1/2,-y+1/2,0)'], }, 'i': { 'multiplicity': 8, 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,1/2,z)', - '(1/2,0,-z)', - '(0,1/2,-z)', - '(1/2,0,z)' - ] + 'coords_xyz': ['(0,1/2,z)', '(1/2,0,-z)', '(0,1/2,-z)', '(1/2,0,z)'], }, 'h': { 'multiplicity': 8, 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,0,z)', - '(1/2,1/2,-z)', - '(0,0,-z)', - '(1/2,1/2,z)' - ] + 'coords_xyz': ['(0,0,z)', '(1/2,1/2,-z)', '(0,0,-z)', '(1/2,1/2,z)'], }, 'g': { 'multiplicity': 8, 'site_symmetry': '.2.', - 'coords_xyz': [ - '(0,y,1/4)', - '(0,-y,1/4)', - '(0,-y,3/4)', - '(0,y,3/4)' - ] + 'coords_xyz': ['(0,y,1/4)', '(0,-y,1/4)', '(0,-y,3/4)', '(0,y,3/4)'], }, 'f': { 'multiplicity': 8, 'site_symmetry': '2..', - 'coords_xyz': [ - '(x,0,1/4)', - '(-x,0,1/4)', - '(-x,0,3/4)', - '(x,0,3/4)' - ] + 'coords_xyz': ['(x,0,1/4)', '(-x,0,1/4)', '(-x,0,3/4)', '(x,0,3/4)'], }, 'e': { 'multiplicity': 8, 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/4,1/4,1/4)', - '(3/4,3/4,1/4)', - '(1/4,3/4,3/4)', - '(3/4,1/4,3/4)' - ] - }, - 'd': { - 'multiplicity': 4, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(1/2,0,0)', - '(0,1/2,0)' - ] - }, - 'c': { - 'multiplicity': 4, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,1/2,0)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/2,0,1/4)', - '(1/2,0,3/4)' - ] + 'coords_xyz': ['(1/4,1/4,1/4)', '(3/4,3/4,1/4)', '(1/4,3/4,3/4)', '(3/4,1/4,3/4)'], }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,1/4)', - '(0,0,3/4)' - ] - } - } + 'd': {'multiplicity': 4, 'site_symmetry': '..2/m', 'coords_xyz': ['(1/2,0,0)', '(0,1/2,0)']}, + 'c': {'multiplicity': 4, 'site_symmetry': '..2/m', 'coords_xyz': ['(0,0,0)', '(1/2,1/2,0)']}, + 'b': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(1/2,0,1/4)', '(1/2,0,3/4)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(0,0,1/4)', '(0,0,3/4)']}, + }, }, (72, 'ba-c'): { 'IT_number': 72, @@ -32822,102 +13552,44 @@ '(-x,-y,-z)', '(x,y,-z)', '(-x+1/2,y+1/2,z)', - '(x+1/2,-y+1/2,z)' - ] + '(x+1/2,-y+1/2,z)', + ], }, 'j': { 'multiplicity': 8, 'site_symmetry': '..m', - 'coords_xyz': [ - '(x,y,0)', - '(-x,-y,0)', - '(x+1/2,-y+1/2,0)', - '(-x+1/2,y+1/2,0)' - ] + 'coords_xyz': ['(x,y,0)', '(-x,-y,0)', '(x+1/2,-y+1/2,0)', '(-x+1/2,y+1/2,0)'], }, 'i': { 'multiplicity': 8, 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/2,0,z)', - '(0,1/2,-z)', - '(1/2,0,-z)', - '(0,1/2,z)' - ] + 'coords_xyz': ['(1/2,0,z)', '(0,1/2,-z)', '(1/2,0,-z)', '(0,1/2,z)'], }, 'h': { 'multiplicity': 8, 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,0,z)', - '(1/2,1/2,-z)', - '(0,0,-z)', - '(1/2,1/2,z)' - ] + 'coords_xyz': ['(0,0,z)', '(1/2,1/2,-z)', '(0,0,-z)', '(1/2,1/2,z)'], }, 'g': { 'multiplicity': 8, 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,0,-1/4)', - '(-x,0,-1/4)', - '(-x,0,-3/4)', - '(x,0,-3/4)' - ] + 'coords_xyz': ['(x,0,-1/4)', '(-x,0,-1/4)', '(-x,0,-3/4)', '(x,0,-3/4)'], }, 'f': { 'multiplicity': 8, 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,y,-1/4)', - '(0,-y,-1/4)', - '(0,-y,-3/4)', - '(0,y,-3/4)' - ] + 'coords_xyz': ['(0,y,-1/4)', '(0,-y,-1/4)', '(0,-y,-3/4)', '(0,y,-3/4)'], }, 'e': { 'multiplicity': 8, 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/4,1/4,-1/4)', - '(3/4,3/4,-1/4)', - '(3/4,1/4,-3/4)', - '(1/4,3/4,-3/4)' - ] - }, - 'd': { - 'multiplicity': 4, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(0,1/2,0)', - '(1/2,0,0)' - ] + 'coords_xyz': ['(1/4,1/4,-1/4)', '(3/4,3/4,-1/4)', '(3/4,1/4,-3/4)', '(1/4,3/4,-3/4)'], }, - 'c': { - 'multiplicity': 4, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,1/2,0)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,1/2,-1/4)', - '(0,1/2,-3/4)' - ] - }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,-1/4)', - '(0,0,-3/4)' - ] - } - } + 'd': {'multiplicity': 4, 'site_symmetry': '..2/m', 'coords_xyz': ['(0,1/2,0)', '(1/2,0,0)']}, + 'c': {'multiplicity': 4, 'site_symmetry': '..2/m', 'coords_xyz': ['(0,0,0)', '(1/2,1/2,0)']}, + 'b': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(0,1/2,-1/4)', '(0,1/2,-3/4)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(0,0,-1/4)', '(0,0,-3/4)']}, + }, }, (72, 'cab'): { 'IT_number': 72, @@ -32937,102 +13609,44 @@ '(-x,-y,-z)', '(-x,y,z)', '(x,y+1/2,-z+1/2)', - '(x,-y+1/2,z+1/2)' - ] + '(x,-y+1/2,z+1/2)', + ], }, 'j': { 'multiplicity': 8, 'site_symmetry': '..m', - 'coords_xyz': [ - '(0,y,z)', - '(0,-y,-z)', - '(0,-y+1/2,z+1/2)', - '(0,y+1/2,-z+1/2)' - ] + 'coords_xyz': ['(0,y,z)', '(0,-y,-z)', '(0,-y+1/2,z+1/2)', '(0,y+1/2,-z+1/2)'], }, 'i': { 'multiplicity': 8, 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,0,1/2)', - '(-x,1/2,0)', - '(-x,0,1/2)', - '(x,1/2,0)' - ] + 'coords_xyz': ['(x,0,1/2)', '(-x,1/2,0)', '(-x,0,1/2)', '(x,1/2,0)'], }, 'h': { 'multiplicity': 8, 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,0,0)', - '(-x,1/2,1/2)', - '(-x,0,0)', - '(x,1/2,1/2)' - ] + 'coords_xyz': ['(x,0,0)', '(-x,1/2,1/2)', '(-x,0,0)', '(x,1/2,1/2)'], }, 'g': { 'multiplicity': 8, 'site_symmetry': '.2.', - 'coords_xyz': [ - '(1/4,0,z)', - '(1/4,0,-z)', - '(3/4,0,-z)', - '(3/4,0,z)' - ] + 'coords_xyz': ['(1/4,0,z)', '(1/4,0,-z)', '(3/4,0,-z)', '(3/4,0,z)'], }, 'f': { 'multiplicity': 8, 'site_symmetry': '2..', - 'coords_xyz': [ - '(1/4,y,0)', - '(1/4,-y,0)', - '(3/4,-y,0)', - '(3/4,y,0)' - ] + 'coords_xyz': ['(1/4,y,0)', '(1/4,-y,0)', '(3/4,-y,0)', '(3/4,y,0)'], }, 'e': { 'multiplicity': 8, 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/4,1/4,1/4)', - '(1/4,3/4,3/4)', - '(3/4,1/4,3/4)', - '(3/4,3/4,1/4)' - ] - }, - 'd': { - 'multiplicity': 4, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(0,1/2,0)', - '(0,0,1/2)' - ] - }, - 'c': { - 'multiplicity': 4, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(0,0,0)', - '(0,1/2,1/2)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/4,1/2,0)', - '(3/4,1/2,0)' - ] + 'coords_xyz': ['(1/4,1/4,1/4)', '(1/4,3/4,3/4)', '(3/4,1/4,3/4)', '(3/4,3/4,1/4)'], }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/4,0,0)', - '(3/4,0,0)' - ] - } - } + 'd': {'multiplicity': 4, 'site_symmetry': '..2/m', 'coords_xyz': ['(0,1/2,0)', '(0,0,1/2)']}, + 'c': {'multiplicity': 4, 'site_symmetry': '..2/m', 'coords_xyz': ['(0,0,0)', '(0,1/2,1/2)']}, + 'b': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(1/4,1/2,0)', '(3/4,1/2,0)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(1/4,0,0)', '(3/4,0,0)']}, + }, }, (72, '-cba'): { 'IT_number': 72, @@ -33052,102 +13666,44 @@ '(-x,-y,-z)', '(-x,y,z)', '(x,-y+1/2,z+1/2)', - '(x,y+1/2,-z+1/2)' - ] + '(x,y+1/2,-z+1/2)', + ], }, 'j': { 'multiplicity': 8, 'site_symmetry': '..m', - 'coords_xyz': [ - '(0,y,z)', - '(0,-y,-z)', - '(0,y+1/2,-z+1/2)', - '(0,-y+1/2,z+1/2)' - ] + 'coords_xyz': ['(0,y,z)', '(0,-y,-z)', '(0,y+1/2,-z+1/2)', '(0,-y+1/2,z+1/2)'], }, 'i': { 'multiplicity': 8, 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,1/2,0)', - '(-x,0,1/2)', - '(-x,1/2,0)', - '(x,0,1/2)' - ] + 'coords_xyz': ['(x,1/2,0)', '(-x,0,1/2)', '(-x,1/2,0)', '(x,0,1/2)'], }, 'h': { 'multiplicity': 8, 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,0,0)', - '(-x,1/2,1/2)', - '(-x,0,0)', - '(x,1/2,1/2)' - ] + 'coords_xyz': ['(x,0,0)', '(-x,1/2,1/2)', '(-x,0,0)', '(x,1/2,1/2)'], }, 'g': { 'multiplicity': 8, 'site_symmetry': '.2.', - 'coords_xyz': [ - '(-1/4,y,0)', - '(-1/4,-y,0)', - '(-3/4,-y,0)', - '(-3/4,y,0)' - ] + 'coords_xyz': ['(-1/4,y,0)', '(-1/4,-y,0)', '(-3/4,-y,0)', '(-3/4,y,0)'], }, 'f': { 'multiplicity': 8, 'site_symmetry': '2..', - 'coords_xyz': [ - '(-1/4,0,z)', - '(-1/4,0,-z)', - '(-3/4,0,-z)', - '(-3/4,0,z)' - ] + 'coords_xyz': ['(-1/4,0,z)', '(-1/4,0,-z)', '(-3/4,0,-z)', '(-3/4,0,z)'], }, 'e': { 'multiplicity': 8, 'site_symmetry': '-1', - 'coords_xyz': [ - '(-1/4,1/4,1/4)', - '(-1/4,3/4,3/4)', - '(-3/4,3/4,1/4)', - '(-3/4,1/4,3/4)' - ] - }, - 'd': { - 'multiplicity': 4, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(0,0,1/2)', - '(0,1/2,0)' - ] - }, - 'c': { - 'multiplicity': 4, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(0,0,0)', - '(0,1/2,1/2)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(-1/4,0,1/2)', - '(-3/4,0,1/2)' - ] + 'coords_xyz': ['(-1/4,1/4,1/4)', '(-1/4,3/4,3/4)', '(-3/4,3/4,1/4)', '(-3/4,1/4,3/4)'], }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(-1/4,0,0)', - '(-3/4,0,0)' - ] - } - } + 'd': {'multiplicity': 4, 'site_symmetry': '..2/m', 'coords_xyz': ['(0,0,1/2)', '(0,1/2,0)']}, + 'c': {'multiplicity': 4, 'site_symmetry': '..2/m', 'coords_xyz': ['(0,0,0)', '(0,1/2,1/2)']}, + 'b': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(-1/4,0,1/2)', '(-3/4,0,1/2)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(-1/4,0,0)', '(-3/4,0,0)']}, + }, }, (72, 'bca'): { 'IT_number': 72, @@ -33167,102 +13723,44 @@ '(-x,-y,-z)', '(x,-y,z)', '(-x+1/2,y,z+1/2)', - '(x+1/2,y,-z+1/2)' - ] + '(x+1/2,y,-z+1/2)', + ], }, 'j': { 'multiplicity': 8, 'site_symmetry': '..m', - 'coords_xyz': [ - '(x,0,z)', - '(-x,0,-z)', - '(x+1/2,0,-z+1/2)', - '(-x+1/2,0,z+1/2)' - ] + 'coords_xyz': ['(x,0,z)', '(-x,0,-z)', '(x+1/2,0,-z+1/2)', '(-x+1/2,0,z+1/2)'], }, 'i': { 'multiplicity': 8, 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/2,y,0)', - '(0,-y,1/2)', - '(1/2,-y,0)', - '(0,y,1/2)' - ] + 'coords_xyz': ['(1/2,y,0)', '(0,-y,1/2)', '(1/2,-y,0)', '(0,y,1/2)'], }, 'h': { 'multiplicity': 8, 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,y,0)', - '(1/2,-y,1/2)', - '(0,-y,0)', - '(1/2,y,1/2)' - ] + 'coords_xyz': ['(0,y,0)', '(1/2,-y,1/2)', '(0,-y,0)', '(1/2,y,1/2)'], }, 'g': { 'multiplicity': 8, 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,1/4,0)', - '(-x,1/4,0)', - '(-x,3/4,0)', - '(x,3/4,0)' - ] + 'coords_xyz': ['(x,1/4,0)', '(-x,1/4,0)', '(-x,3/4,0)', '(x,3/4,0)'], }, 'f': { 'multiplicity': 8, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,1/4,z)', - '(0,1/4,-z)', - '(0,3/4,-z)', - '(0,3/4,z)' - ] - }, - 'e': { - 'multiplicity': 8, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/4,1/4,1/4)', - '(3/4,1/4,3/4)', - '(3/4,3/4,1/4)', - '(1/4,3/4,3/4)' - ] - }, - 'd': { - 'multiplicity': 4, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(0,0,1/2)', - '(1/2,0,0)' - ] - }, - 'c': { - 'multiplicity': 4, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,0,1/2)' - ] + 'site_symmetry': '2..', + 'coords_xyz': ['(0,1/4,z)', '(0,1/4,-z)', '(0,3/4,-z)', '(0,3/4,z)'], }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,1/4,1/2)', - '(0,3/4,1/2)' - ] + 'e': { + 'multiplicity': 8, + 'site_symmetry': '-1', + 'coords_xyz': ['(1/4,1/4,1/4)', '(3/4,1/4,3/4)', '(3/4,3/4,1/4)', '(1/4,3/4,3/4)'], }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,1/4,0)', - '(0,3/4,0)' - ] - } - } + 'd': {'multiplicity': 4, 'site_symmetry': '..2/m', 'coords_xyz': ['(0,0,1/2)', '(1/2,0,0)']}, + 'c': {'multiplicity': 4, 'site_symmetry': '..2/m', 'coords_xyz': ['(0,0,0)', '(1/2,0,1/2)']}, + 'b': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(0,1/4,1/2)', '(0,3/4,1/2)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(0,1/4,0)', '(0,3/4,0)']}, + }, }, (72, 'a-cb'): { 'IT_number': 72, @@ -33282,102 +13780,44 @@ '(-x,-y,-z)', '(x,-y,z)', '(x+1/2,y,-z+1/2)', - '(-x+1/2,y,z+1/2)' - ] + '(-x+1/2,y,z+1/2)', + ], }, 'j': { 'multiplicity': 8, 'site_symmetry': '..m', - 'coords_xyz': [ - '(x,0,z)', - '(-x,0,-z)', - '(-x+1/2,0,z+1/2)', - '(x+1/2,0,-z+1/2)' - ] + 'coords_xyz': ['(x,0,z)', '(-x,0,-z)', '(-x+1/2,0,z+1/2)', '(x+1/2,0,-z+1/2)'], }, 'i': { 'multiplicity': 8, 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,y,1/2)', - '(1/2,-y,0)', - '(0,-y,1/2)', - '(1/2,y,0)' - ] + 'coords_xyz': ['(0,y,1/2)', '(1/2,-y,0)', '(0,-y,1/2)', '(1/2,y,0)'], }, 'h': { 'multiplicity': 8, 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,y,0)', - '(1/2,-y,1/2)', - '(0,-y,0)', - '(1/2,y,1/2)' - ] + 'coords_xyz': ['(0,y,0)', '(1/2,-y,1/2)', '(0,-y,0)', '(1/2,y,1/2)'], }, 'g': { 'multiplicity': 8, 'site_symmetry': '.2.', - 'coords_xyz': [ - '(0,-1/4,z)', - '(0,-1/4,-z)', - '(0,-3/4,-z)', - '(0,-3/4,z)' - ] + 'coords_xyz': ['(0,-1/4,z)', '(0,-1/4,-z)', '(0,-3/4,-z)', '(0,-3/4,z)'], }, 'f': { 'multiplicity': 8, 'site_symmetry': '2..', - 'coords_xyz': [ - '(x,-1/4,0)', - '(-x,-1/4,0)', - '(-x,-3/4,0)', - '(x,-3/4,0)' - ] + 'coords_xyz': ['(x,-1/4,0)', '(-x,-1/4,0)', '(-x,-3/4,0)', '(x,-3/4,0)'], }, 'e': { 'multiplicity': 8, 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/4,-1/4,1/4)', - '(3/4,-1/4,3/4)', - '(1/4,-3/4,3/4)', - '(3/4,-3/4,1/4)' - ] - }, - 'd': { - 'multiplicity': 4, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(1/2,0,0)', - '(0,0,1/2)' - ] - }, - 'c': { - 'multiplicity': 4, - 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,0,1/2)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/2,-1/4,0)', - '(1/2,-3/4,0)' - ] + 'coords_xyz': ['(1/4,-1/4,1/4)', '(3/4,-1/4,3/4)', '(1/4,-3/4,3/4)', '(3/4,-3/4,1/4)'], }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,-1/4,0)', - '(0,-3/4,0)' - ] - } - } + 'd': {'multiplicity': 4, 'site_symmetry': '..2/m', 'coords_xyz': ['(1/2,0,0)', '(0,0,1/2)']}, + 'c': {'multiplicity': 4, 'site_symmetry': '..2/m', 'coords_xyz': ['(0,0,0)', '(1/2,0,1/2)']}, + 'b': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(1/2,-1/4,0)', '(1/2,-3/4,0)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(0,-1/4,0)', '(0,-3/4,0)']}, + }, }, (73, 'abc'): { 'IT_number': 73, @@ -33397,60 +13837,35 @@ '(-x,-y,-z)', '(x+1/2,y,-z+1/2)', '(x,-y+1/2,z+1/2)', - '(-x+1/2,y+1/2,z)' - ] + '(-x+1/2,y+1/2,z)', + ], }, 'e': { 'multiplicity': 8, 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,1/4,z)', - '(0,3/4,-z+1/2)', - '(0,3/4,-z)', - '(0,1/4,z+1/2)' - ] + 'coords_xyz': ['(0,1/4,z)', '(0,3/4,-z+1/2)', '(0,3/4,-z)', '(0,1/4,z+1/2)'], }, 'd': { 'multiplicity': 8, 'site_symmetry': '.2.', - 'coords_xyz': [ - '(1/4,y,0)', - '(1/4,-y,1/2)', - '(3/4,-y,0)', - '(3/4,y,1/2)' - ] + 'coords_xyz': ['(1/4,y,0)', '(1/4,-y,1/2)', '(3/4,-y,0)', '(3/4,y,1/2)'], }, 'c': { 'multiplicity': 8, 'site_symmetry': '2..', - 'coords_xyz': [ - '(x,0,1/4)', - '(-x+1/2,0,3/4)', - '(-x,0,3/4)', - '(x+1/2,0,1/4)' - ] + 'coords_xyz': ['(x,0,1/4)', '(-x+1/2,0,3/4)', '(-x,0,3/4)', '(x+1/2,0,1/4)'], }, 'b': { 'multiplicity': 8, 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/4,1/4,1/4)', - '(1/4,3/4,3/4)', - '(3/4,3/4,1/4)', - '(3/4,1/4,3/4)' - ] + 'coords_xyz': ['(1/4,1/4,1/4)', '(1/4,3/4,3/4)', '(3/4,3/4,1/4)', '(3/4,1/4,3/4)'], }, 'a': { 'multiplicity': 8, 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,0,1/2)', - '(0,1/2,1/2)', - '(1/2,1/2,0)' - ] - } - } + 'coords_xyz': ['(0,0,0)', '(1/2,0,1/2)', '(0,1/2,1/2)', '(1/2,1/2,0)'], + }, + }, }, (73, 'ba-c'): { 'IT_number': 73, @@ -33470,60 +13885,35 @@ '(-x,-y,-z)', '(x,y+1/2,-z-1/2)', '(-x+1/2,y,z-1/2)', - '(x+1/2,-y+1/2,z)' - ] + '(x+1/2,-y+1/2,z)', + ], }, 'e': { 'multiplicity': 8, 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/4,0,z)', - '(3/4,0,-z-1/2)', - '(3/4,0,-z)', - '(1/4,0,z-1/2)' - ] + 'coords_xyz': ['(1/4,0,z)', '(3/4,0,-z-1/2)', '(3/4,0,-z)', '(1/4,0,z-1/2)'], }, 'd': { 'multiplicity': 8, 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,1/4,0)', - '(-x,1/4,-1/2)', - '(-x,3/4,0)', - '(x,3/4,-1/2)' - ] + 'coords_xyz': ['(x,1/4,0)', '(-x,1/4,-1/2)', '(-x,3/4,0)', '(x,3/4,-1/2)'], }, 'c': { 'multiplicity': 8, 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,y,-1/4)', - '(0,-y+1/2,-3/4)', - '(0,-y,-3/4)', - '(0,y+1/2,-1/4)' - ] + 'coords_xyz': ['(0,y,-1/4)', '(0,-y+1/2,-3/4)', '(0,-y,-3/4)', '(0,y+1/2,-1/4)'], }, 'b': { 'multiplicity': 8, 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/4,1/4,-1/4)', - '(3/4,1/4,-3/4)', - '(3/4,3/4,-1/4)', - '(1/4,3/4,-3/4)' - ] + 'coords_xyz': ['(1/4,1/4,-1/4)', '(3/4,1/4,-3/4)', '(3/4,3/4,-1/4)', '(1/4,3/4,-3/4)'], }, 'a': { 'multiplicity': 8, 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(0,1/2,-1/2)', - '(1/2,0,-1/2)', - '(1/2,1/2,0)' - ] - } - } + 'coords_xyz': ['(0,0,0)', '(0,1/2,-1/2)', '(1/2,0,-1/2)', '(1/2,1/2,0)'], + }, + }, }, (73, 'cab'): { 'IT_number': 73, @@ -33543,60 +13933,35 @@ '(-x,-y,-z)', '(-x+1/2,y+1/2,z)', '(x+1/2,y,-z+1/2)', - '(x,-y+1/2,z+1/2)' - ] + '(x,-y+1/2,z+1/2)', + ], }, 'e': { 'multiplicity': 8, 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,0,1/4)', - '(-x+1/2,0,3/4)', - '(-x,0,3/4)', - '(x+1/2,0,1/4)' - ] + 'coords_xyz': ['(x,0,1/4)', '(-x+1/2,0,3/4)', '(-x,0,3/4)', '(x+1/2,0,1/4)'], }, 'd': { 'multiplicity': 8, 'site_symmetry': '.2.', - 'coords_xyz': [ - '(0,1/4,z)', - '(1/2,1/4,-z)', - '(0,3/4,-z)', - '(1/2,3/4,z)' - ] + 'coords_xyz': ['(0,1/4,z)', '(1/2,1/4,-z)', '(0,3/4,-z)', '(1/2,3/4,z)'], }, 'c': { 'multiplicity': 8, 'site_symmetry': '2..', - 'coords_xyz': [ - '(1/4,y,0)', - '(3/4,-y+1/2,0)', - '(3/4,-y,0)', - '(1/4,y+1/2,0)' - ] + 'coords_xyz': ['(1/4,y,0)', '(3/4,-y+1/2,0)', '(3/4,-y,0)', '(1/4,y+1/2,0)'], }, 'b': { 'multiplicity': 8, 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/4,1/4,1/4)', - '(3/4,1/4,3/4)', - '(1/4,3/4,3/4)', - '(3/4,3/4,1/4)' - ] + 'coords_xyz': ['(1/4,1/4,1/4)', '(3/4,1/4,3/4)', '(1/4,3/4,3/4)', '(3/4,3/4,1/4)'], }, 'a': { 'multiplicity': 8, 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,1/2,0)', - '(1/2,0,1/2)', - '(0,1/2,1/2)' - ] - } - } + 'coords_xyz': ['(0,0,0)', '(1/2,1/2,0)', '(1/2,0,1/2)', '(0,1/2,1/2)'], + }, + }, }, (73, '-cba'): { 'IT_number': 73, @@ -33616,60 +13981,35 @@ '(-x,-y,-z)', '(-x-1/2,y,z+1/2)', '(x-1/2,-y+1/2,z)', - '(x,y+1/2,-z+1/2)' - ] + '(x,y+1/2,-z+1/2)', + ], }, 'e': { 'multiplicity': 8, 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,1/4,0)', - '(-x-1/2,3/4,0)', - '(-x,3/4,0)', - '(x-1/2,1/4,0)' - ] + 'coords_xyz': ['(x,1/4,0)', '(-x-1/2,3/4,0)', '(-x,3/4,0)', '(x-1/2,1/4,0)'], }, 'd': { 'multiplicity': 8, 'site_symmetry': '.2.', - 'coords_xyz': [ - '(0,y,1/4)', - '(-1/2,-y,1/4)', - '(0,-y,3/4)', - '(-1/2,y,3/4)' - ] + 'coords_xyz': ['(0,y,1/4)', '(-1/2,-y,1/4)', '(0,-y,3/4)', '(-1/2,y,3/4)'], }, 'c': { 'multiplicity': 8, 'site_symmetry': '2..', - 'coords_xyz': [ - '(-1/4,0,z)', - '(-3/4,0,-z+1/2)', - '(-3/4,0,-z)', - '(-1/4,0,z+1/2)' - ] + 'coords_xyz': ['(-1/4,0,z)', '(-3/4,0,-z+1/2)', '(-3/4,0,-z)', '(-1/4,0,z+1/2)'], }, 'b': { 'multiplicity': 8, 'site_symmetry': '-1', - 'coords_xyz': [ - '(-1/4,1/4,1/4)', - '(-3/4,3/4,1/4)', - '(-1/4,3/4,3/4)', - '(-3/4,1/4,3/4)' - ] + 'coords_xyz': ['(-1/4,1/4,1/4)', '(-3/4,3/4,1/4)', '(-1/4,3/4,3/4)', '(-3/4,1/4,3/4)'], }, 'a': { 'multiplicity': 8, 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(-1/2,0,1/2)', - '(-1/2,1/2,0)', - '(0,1/2,1/2)' - ] - } - } + 'coords_xyz': ['(0,0,0)', '(-1/2,0,1/2)', '(-1/2,1/2,0)', '(0,1/2,1/2)'], + }, + }, }, (73, 'bca'): { 'IT_number': 73, @@ -33689,60 +14029,35 @@ '(-x,-y,-z)', '(x,-y+1/2,z+1/2)', '(-x+1/2,y+1/2,z)', - '(x+1/2,y,-z+1/2)' - ] + '(x+1/2,y,-z+1/2)', + ], }, 'e': { 'multiplicity': 8, 'site_symmetry': '..2', - 'coords_xyz': [ - '(1/4,y,0)', - '(3/4,-y+1/2,0)', - '(3/4,-y,0)', - '(1/4,y+1/2,0)' - ] + 'coords_xyz': ['(1/4,y,0)', '(3/4,-y+1/2,0)', '(3/4,-y,0)', '(1/4,y+1/2,0)'], }, 'd': { 'multiplicity': 8, 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,0,1/4)', - '(-x,1/2,1/4)', - '(-x,0,3/4)', - '(x,1/2,3/4)' - ] + 'coords_xyz': ['(x,0,1/4)', '(-x,1/2,1/4)', '(-x,0,3/4)', '(x,1/2,3/4)'], }, 'c': { 'multiplicity': 8, 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,1/4,z)', - '(0,3/4,-z+1/2)', - '(0,3/4,-z)', - '(0,1/4,z+1/2)' - ] + 'coords_xyz': ['(0,1/4,z)', '(0,3/4,-z+1/2)', '(0,3/4,-z)', '(0,1/4,z+1/2)'], }, 'b': { 'multiplicity': 8, 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/4,1/4,1/4)', - '(3/4,3/4,1/4)', - '(3/4,1/4,3/4)', - '(1/4,3/4,3/4)' - ] + 'coords_xyz': ['(1/4,1/4,1/4)', '(3/4,3/4,1/4)', '(3/4,1/4,3/4)', '(1/4,3/4,3/4)'], }, 'a': { 'multiplicity': 8, 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(0,1/2,1/2)', - '(1/2,1/2,0)', - '(1/2,0,1/2)' - ] - } - } + 'coords_xyz': ['(0,0,0)', '(0,1/2,1/2)', '(1/2,1/2,0)', '(1/2,0,1/2)'], + }, + }, }, (73, 'a-cb'): { 'IT_number': 73, @@ -33762,60 +14077,35 @@ '(-x,-y,-z)', '(x+1/2,-y-1/2,z)', '(x,y-1/2,-z+1/2)', - '(-x+1/2,y,z+1/2)' - ] + '(-x+1/2,y,z+1/2)', + ], }, 'e': { 'multiplicity': 8, 'site_symmetry': '..2', - 'coords_xyz': [ - '(0,y,1/4)', - '(0,-y-1/2,3/4)', - '(0,-y,3/4)', - '(0,y-1/2,1/4)' - ] + 'coords_xyz': ['(0,y,1/4)', '(0,-y-1/2,3/4)', '(0,-y,3/4)', '(0,y-1/2,1/4)'], }, 'd': { 'multiplicity': 8, 'site_symmetry': '.2.', - 'coords_xyz': [ - '(1/4,0,z)', - '(1/4,-1/2,-z)', - '(3/4,0,-z)', - '(3/4,-1/2,z)' - ] + 'coords_xyz': ['(1/4,0,z)', '(1/4,-1/2,-z)', '(3/4,0,-z)', '(3/4,-1/2,z)'], }, 'c': { 'multiplicity': 8, 'site_symmetry': '2..', - 'coords_xyz': [ - '(x,-1/4,0)', - '(-x+1/2,-3/4,0)', - '(-x,-3/4,0)', - '(x+1/2,-1/4,0)' - ] + 'coords_xyz': ['(x,-1/4,0)', '(-x+1/2,-3/4,0)', '(-x,-3/4,0)', '(x+1/2,-1/4,0)'], }, 'b': { 'multiplicity': 8, 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/4,-1/4,1/4)', - '(1/4,-3/4,3/4)', - '(3/4,-1/4,3/4)', - '(3/4,-3/4,1/4)' - ] + 'coords_xyz': ['(1/4,-1/4,1/4)', '(1/4,-3/4,3/4)', '(3/4,-1/4,3/4)', '(3/4,-3/4,1/4)'], }, 'a': { 'multiplicity': 8, 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,-1/2,0)', - '(0,-1/2,1/2)', - '(1/2,0,1/2)' - ] - } - } + 'coords_xyz': ['(0,0,0)', '(1/2,-1/2,0)', '(0,-1/2,1/2)', '(1/2,0,1/2)'], + }, + }, }, (74, 'abc'): { 'IT_number': 74, @@ -33835,90 +14125,31 @@ '(-x,-y,-z)', '(x,y+1/2,-z)', '(x,-y+1/2,z)', - '(-x,y,z)' - ] + '(-x,y,z)', + ], }, 'i': { 'multiplicity': 8, 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,1/4,z)', - '(-x,1/4,z)', - '(-x,3/4,-z)', - '(x,3/4,-z)' - ] + 'coords_xyz': ['(x,1/4,z)', '(-x,1/4,z)', '(-x,3/4,-z)', '(x,3/4,-z)'], }, 'h': { 'multiplicity': 8, 'site_symmetry': 'm..', - 'coords_xyz': [ - '(0,y,z)', - '(0,-y+1/2,z)', - '(0,y+1/2,-z)', - '(0,-y,-z)' - ] + 'coords_xyz': ['(0,y,z)', '(0,-y+1/2,z)', '(0,y+1/2,-z)', '(0,-y,-z)'], }, 'g': { 'multiplicity': 8, 'site_symmetry': '.2.', - 'coords_xyz': [ - '(1/4,y,1/4)', - '(3/4,-y+1/2,1/4)', - '(3/4,-y,3/4)', - '(1/4,y+1/2,3/4)' - ] - }, - 'f': { - 'multiplicity': 8, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(x,0,0)', - '(-x,1/2,0)', - '(-x,0,0)', - '(x,1/2,0)' - ] - }, - 'e': { - 'multiplicity': 4, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(0,1/4,z)', - '(0,3/4,-z)' - ] - }, - 'd': { - 'multiplicity': 4, - 'site_symmetry': '.2/m.', - 'coords_xyz': [ - '(1/4,1/4,3/4)', - '(3/4,1/4,3/4)' - ] + 'coords_xyz': ['(1/4,y,1/4)', '(3/4,-y+1/2,1/4)', '(3/4,-y,3/4)', '(1/4,y+1/2,3/4)'], }, - 'c': { - 'multiplicity': 4, - 'site_symmetry': '.2/m.', - 'coords_xyz': [ - '(1/4,1/4,1/4)', - '(3/4,1/4,1/4)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(0,0,1/2)', - '(0,1/2,1/2)' - ] - }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(0,0,0)', - '(0,1/2,0)' - ] - } - } + 'f': {'multiplicity': 8, 'site_symmetry': '2..', 'coords_xyz': ['(x,0,0)', '(-x,1/2,0)', '(-x,0,0)', '(x,1/2,0)']}, + 'e': {'multiplicity': 4, 'site_symmetry': 'mm2', 'coords_xyz': ['(0,1/4,z)', '(0,3/4,-z)']}, + 'd': {'multiplicity': 4, 'site_symmetry': '.2/m.', 'coords_xyz': ['(1/4,1/4,3/4)', '(3/4,1/4,3/4)']}, + 'c': {'multiplicity': 4, 'site_symmetry': '.2/m.', 'coords_xyz': ['(1/4,1/4,1/4)', '(3/4,1/4,1/4)']}, + 'b': {'multiplicity': 4, 'site_symmetry': '2/m..', 'coords_xyz': ['(0,0,1/2)', '(0,1/2,1/2)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '2/m..', 'coords_xyz': ['(0,0,0)', '(0,1/2,0)']}, + }, }, (74, 'ba-c'): { 'IT_number': 74, @@ -33938,90 +14169,31 @@ '(-x,-y,-z)', '(x+1/2,y,-z)', '(-x+1/2,y,z)', - '(x,-y,z)' - ] + '(x,-y,z)', + ], }, 'i': { 'multiplicity': 8, 'site_symmetry': '.m.', - 'coords_xyz': [ - '(1/4,y,z)', - '(1/4,-y,z)', - '(3/4,-y,-z)', - '(3/4,y,-z)' - ] + 'coords_xyz': ['(1/4,y,z)', '(1/4,-y,z)', '(3/4,-y,-z)', '(3/4,y,-z)'], }, 'h': { 'multiplicity': 8, 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,0,z)', - '(-x+1/2,0,z)', - '(x+1/2,0,-z)', - '(-x,0,-z)' - ] + 'coords_xyz': ['(x,0,z)', '(-x+1/2,0,z)', '(x+1/2,0,-z)', '(-x,0,-z)'], }, 'g': { 'multiplicity': 8, 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,1/4,-1/4)', - '(-x+1/2,3/4,-1/4)', - '(-x,3/4,-3/4)', - '(x+1/2,1/4,-3/4)' - ] - }, - 'f': { - 'multiplicity': 8, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,y,0)', - '(1/2,-y,0)', - '(0,-y,0)', - '(1/2,y,0)' - ] - }, - 'e': { - 'multiplicity': 4, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(1/4,0,z)', - '(3/4,0,-z)' - ] - }, - 'd': { - 'multiplicity': 4, - 'site_symmetry': '.2/m.', - 'coords_xyz': [ - '(1/4,1/4,-3/4)', - '(1/4,3/4,-3/4)' - ] - }, - 'c': { - 'multiplicity': 4, - 'site_symmetry': '.2/m.', - 'coords_xyz': [ - '(1/4,1/4,-1/4)', - '(1/4,3/4,-1/4)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(0,0,-1/2)', - '(1/2,0,-1/2)' - ] + 'coords_xyz': ['(x,1/4,-1/4)', '(-x+1/2,3/4,-1/4)', '(-x,3/4,-3/4)', '(x+1/2,1/4,-3/4)'], }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,0,0)' - ] - } - } + 'f': {'multiplicity': 8, 'site_symmetry': '2..', 'coords_xyz': ['(0,y,0)', '(1/2,-y,0)', '(0,-y,0)', '(1/2,y,0)']}, + 'e': {'multiplicity': 4, 'site_symmetry': 'mm2', 'coords_xyz': ['(1/4,0,z)', '(3/4,0,-z)']}, + 'd': {'multiplicity': 4, 'site_symmetry': '.2/m.', 'coords_xyz': ['(1/4,1/4,-3/4)', '(1/4,3/4,-3/4)']}, + 'c': {'multiplicity': 4, 'site_symmetry': '.2/m.', 'coords_xyz': ['(1/4,1/4,-1/4)', '(1/4,3/4,-1/4)']}, + 'b': {'multiplicity': 4, 'site_symmetry': '2/m..', 'coords_xyz': ['(0,0,-1/2)', '(1/2,0,-1/2)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '2/m..', 'coords_xyz': ['(0,0,0)', '(1/2,0,0)']}, + }, }, (74, 'cab'): { 'IT_number': 74, @@ -34041,90 +14213,31 @@ '(-x,-y,-z)', '(-x,y,z+1/2)', '(x,y,-z+1/2)', - '(x,-y,z)' - ] - }, - 'i': { - 'multiplicity': 8, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,y,1/4)', - '(x,-y,1/4)', - '(-x,-y,3/4)', - '(-x,y,3/4)' - ] - }, - 'h': { - 'multiplicity': 8, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,0,z)', - '(x,0,-z+1/2)', - '(-x,0,z+1/2)', - '(-x,0,-z)' - ] - }, - 'g': { - 'multiplicity': 8, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(1/4,1/4,z)', - '(1/4,3/4,-z+1/2)', - '(3/4,3/4,-z)', - '(3/4,1/4,z+1/2)' - ] - }, - 'f': { - 'multiplicity': 8, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y,1/2)', - '(0,-y,0)', - '(0,y,1/2)' - ] - }, - 'e': { - 'multiplicity': 4, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(x,0,1/4)', - '(-x,0,3/4)' - ] - }, - 'd': { - 'multiplicity': 4, - 'site_symmetry': '.2/m.', - 'coords_xyz': [ - '(3/4,1/4,1/4)', - '(3/4,3/4,1/4)' - ] + '(x,-y,z)', + ], }, - 'c': { - 'multiplicity': 4, - 'site_symmetry': '.2/m.', - 'coords_xyz': [ - '(1/4,1/4,1/4)', - '(1/4,3/4,1/4)' - ] + 'i': { + 'multiplicity': 8, + 'site_symmetry': '.m.', + 'coords_xyz': ['(x,y,1/4)', '(x,-y,1/4)', '(-x,-y,3/4)', '(-x,y,3/4)'], }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(1/2,0,0)', - '(1/2,0,1/2)' - ] + 'h': { + 'multiplicity': 8, + 'site_symmetry': 'm..', + 'coords_xyz': ['(x,0,z)', '(x,0,-z+1/2)', '(-x,0,z+1/2)', '(-x,0,-z)'], }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(0,0,0)', - '(0,0,1/2)' - ] - } - } + 'g': { + 'multiplicity': 8, + 'site_symmetry': '.2.', + 'coords_xyz': ['(1/4,1/4,z)', '(1/4,3/4,-z+1/2)', '(3/4,3/4,-z)', '(3/4,1/4,z+1/2)'], + }, + 'f': {'multiplicity': 8, 'site_symmetry': '2..', 'coords_xyz': ['(0,y,0)', '(0,-y,1/2)', '(0,-y,0)', '(0,y,1/2)']}, + 'e': {'multiplicity': 4, 'site_symmetry': 'mm2', 'coords_xyz': ['(x,0,1/4)', '(-x,0,3/4)']}, + 'd': {'multiplicity': 4, 'site_symmetry': '.2/m.', 'coords_xyz': ['(3/4,1/4,1/4)', '(3/4,3/4,1/4)']}, + 'c': {'multiplicity': 4, 'site_symmetry': '.2/m.', 'coords_xyz': ['(1/4,1/4,1/4)', '(1/4,3/4,1/4)']}, + 'b': {'multiplicity': 4, 'site_symmetry': '2/m..', 'coords_xyz': ['(1/2,0,0)', '(1/2,0,1/2)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '2/m..', 'coords_xyz': ['(0,0,0)', '(0,0,1/2)']}, + }, }, (74, '-cba'): { 'IT_number': 74, @@ -34144,90 +14257,31 @@ '(-x,-y,-z)', '(-x,y+1/2,z)', '(x,-y+1/2,z)', - '(x,y,-z)' - ] + '(x,y,-z)', + ], }, 'i': { 'multiplicity': 8, 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,1/4,z)', - '(x,1/4,-z)', - '(-x,3/4,-z)', - '(-x,3/4,z)' - ] + 'coords_xyz': ['(x,1/4,z)', '(x,1/4,-z)', '(-x,3/4,-z)', '(-x,3/4,z)'], }, 'h': { 'multiplicity': 8, 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,y,0)', - '(x,-y+1/2,0)', - '(-x,y+1/2,0)', - '(-x,-y,0)' - ] + 'coords_xyz': ['(x,y,0)', '(x,-y+1/2,0)', '(-x,y+1/2,0)', '(-x,-y,0)'], }, 'g': { 'multiplicity': 8, 'site_symmetry': '.2.', - 'coords_xyz': [ - '(-1/4,y,1/4)', - '(-1/4,-y+1/2,3/4)', - '(-3/4,-y,3/4)', - '(-3/4,y+1/2,1/4)' - ] + 'coords_xyz': ['(-1/4,y,1/4)', '(-1/4,-y+1/2,3/4)', '(-3/4,-y,3/4)', '(-3/4,y+1/2,1/4)'], }, - 'f': { - 'multiplicity': 8, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,0,z)', - '(0,1/2,-z)', - '(0,0,-z)', - '(0,1/2,z)' - ] - }, - 'e': { - 'multiplicity': 4, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(x,1/4,0)', - '(-x,3/4,0)' - ] - }, - 'd': { - 'multiplicity': 4, - 'site_symmetry': '.2/m.', - 'coords_xyz': [ - '(-3/4,1/4,1/4)', - '(-3/4,1/4,3/4)' - ] - }, - 'c': { - 'multiplicity': 4, - 'site_symmetry': '.2/m.', - 'coords_xyz': [ - '(-1/4,1/4,1/4)', - '(-1/4,1/4,3/4)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(-1/2,0,0)', - '(-1/2,1/2,0)' - ] - }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(0,0,0)', - '(0,1/2,0)' - ] - } - } + 'f': {'multiplicity': 8, 'site_symmetry': '2..', 'coords_xyz': ['(0,0,z)', '(0,1/2,-z)', '(0,0,-z)', '(0,1/2,z)']}, + 'e': {'multiplicity': 4, 'site_symmetry': 'mm2', 'coords_xyz': ['(x,1/4,0)', '(-x,3/4,0)']}, + 'd': {'multiplicity': 4, 'site_symmetry': '.2/m.', 'coords_xyz': ['(-3/4,1/4,1/4)', '(-3/4,1/4,3/4)']}, + 'c': {'multiplicity': 4, 'site_symmetry': '.2/m.', 'coords_xyz': ['(-1/4,1/4,1/4)', '(-1/4,1/4,3/4)']}, + 'b': {'multiplicity': 4, 'site_symmetry': '2/m..', 'coords_xyz': ['(-1/2,0,0)', '(-1/2,1/2,0)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '2/m..', 'coords_xyz': ['(0,0,0)', '(0,1/2,0)']}, + }, }, (74, 'bca'): { 'IT_number': 74, @@ -34247,90 +14301,31 @@ '(-x,-y,-z)', '(x+1/2,-y,z)', '(-x+1/2,y,z)', - '(x,y,-z)' - ] + '(x,y,-z)', + ], }, 'i': { 'multiplicity': 8, 'site_symmetry': '.m.', - 'coords_xyz': [ - '(1/4,y,z)', - '(1/4,y,-z)', - '(3/4,-y,-z)', - '(3/4,-y,z)' - ] + 'coords_xyz': ['(1/4,y,z)', '(1/4,y,-z)', '(3/4,-y,-z)', '(3/4,-y,z)'], }, 'h': { 'multiplicity': 8, 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,y,0)', - '(-x+1/2,y,0)', - '(x+1/2,-y,0)', - '(-x,-y,0)' - ] + 'coords_xyz': ['(x,y,0)', '(-x+1/2,y,0)', '(x+1/2,-y,0)', '(-x,-y,0)'], }, 'g': { 'multiplicity': 8, 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,1/4,1/4)', - '(-x+1/2,1/4,3/4)', - '(-x,3/4,3/4)', - '(x+1/2,3/4,1/4)' - ] - }, - 'f': { - 'multiplicity': 8, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,0,z)', - '(1/2,0,-z)', - '(0,0,-z)', - '(1/2,0,z)' - ] - }, - 'e': { - 'multiplicity': 4, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(1/4,y,0)', - '(3/4,-y,0)' - ] - }, - 'd': { - 'multiplicity': 4, - 'site_symmetry': '.2/m.', - 'coords_xyz': [ - '(1/4,3/4,1/4)', - '(1/4,3/4,3/4)' - ] + 'coords_xyz': ['(x,1/4,1/4)', '(-x+1/2,1/4,3/4)', '(-x,3/4,3/4)', '(x+1/2,3/4,1/4)'], }, - 'c': { - 'multiplicity': 4, - 'site_symmetry': '.2/m.', - 'coords_xyz': [ - '(1/4,1/4,1/4)', - '(1/4,1/4,3/4)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(0,1/2,0)', - '(1/2,1/2,0)' - ] - }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,0,0)' - ] - } - } + 'f': {'multiplicity': 8, 'site_symmetry': '2..', 'coords_xyz': ['(0,0,z)', '(1/2,0,-z)', '(0,0,-z)', '(1/2,0,z)']}, + 'e': {'multiplicity': 4, 'site_symmetry': 'mm2', 'coords_xyz': ['(1/4,y,0)', '(3/4,-y,0)']}, + 'd': {'multiplicity': 4, 'site_symmetry': '.2/m.', 'coords_xyz': ['(1/4,3/4,1/4)', '(1/4,3/4,3/4)']}, + 'c': {'multiplicity': 4, 'site_symmetry': '.2/m.', 'coords_xyz': ['(1/4,1/4,1/4)', '(1/4,1/4,3/4)']}, + 'b': {'multiplicity': 4, 'site_symmetry': '2/m..', 'coords_xyz': ['(0,1/2,0)', '(1/2,1/2,0)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '2/m..', 'coords_xyz': ['(0,0,0)', '(1/2,0,0)']}, + }, }, (74, 'a-cb'): { 'IT_number': 74, @@ -34350,90 +14345,31 @@ '(-x,-y,-z)', '(x,-y,z+1/2)', '(x,y,-z+1/2)', - '(-x,y,z)' - ] + '(-x,y,z)', + ], }, 'i': { 'multiplicity': 8, 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,y,1/4)', - '(-x,y,1/4)', - '(-x,-y,3/4)', - '(x,-y,3/4)' - ] + 'coords_xyz': ['(x,y,1/4)', '(-x,y,1/4)', '(-x,-y,3/4)', '(x,-y,3/4)'], }, 'h': { 'multiplicity': 8, 'site_symmetry': 'm..', - 'coords_xyz': [ - '(0,y,z)', - '(0,y,-z+1/2)', - '(0,-y,z+1/2)', - '(0,-y,-z)' - ] + 'coords_xyz': ['(0,y,z)', '(0,y,-z+1/2)', '(0,-y,z+1/2)', '(0,-y,-z)'], }, 'g': { 'multiplicity': 8, 'site_symmetry': '.2.', - 'coords_xyz': [ - '(1/4,-1/4,z)', - '(3/4,-1/4,-z+1/2)', - '(3/4,-3/4,-z)', - '(1/4,-3/4,z+1/2)' - ] - }, - 'f': { - 'multiplicity': 8, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,1/2)', - '(-x,0,0)', - '(x,0,1/2)' - ] - }, - 'e': { - 'multiplicity': 4, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(0,y,1/4)', - '(0,-y,3/4)' - ] - }, - 'd': { - 'multiplicity': 4, - 'site_symmetry': '.2/m.', - 'coords_xyz': [ - '(1/4,-3/4,1/4)', - '(3/4,-3/4,1/4)' - ] - }, - 'c': { - 'multiplicity': 4, - 'site_symmetry': '.2/m.', - 'coords_xyz': [ - '(1/4,-1/4,1/4)', - '(3/4,-1/4,1/4)' - ] + 'coords_xyz': ['(1/4,-1/4,z)', '(3/4,-1/4,-z+1/2)', '(3/4,-3/4,-z)', '(1/4,-3/4,z+1/2)'], }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(0,-1/2,0)', - '(0,-1/2,1/2)' - ] - }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(0,0,0)', - '(0,0,1/2)' - ] - } - } + 'f': {'multiplicity': 8, 'site_symmetry': '2..', 'coords_xyz': ['(x,0,0)', '(-x,0,1/2)', '(-x,0,0)', '(x,0,1/2)']}, + 'e': {'multiplicity': 4, 'site_symmetry': 'mm2', 'coords_xyz': ['(0,y,1/4)', '(0,-y,3/4)']}, + 'd': {'multiplicity': 4, 'site_symmetry': '.2/m.', 'coords_xyz': ['(1/4,-3/4,1/4)', '(3/4,-3/4,1/4)']}, + 'c': {'multiplicity': 4, 'site_symmetry': '.2/m.', 'coords_xyz': ['(1/4,-1/4,1/4)', '(3/4,-1/4,1/4)']}, + 'b': {'multiplicity': 4, 'site_symmetry': '2/m..', 'coords_xyz': ['(0,-1/2,0)', '(0,-1/2,1/2)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '2/m..', 'coords_xyz': ['(0,0,0)', '(0,0,1/2)']}, + }, }, (79, '1'): { 'IT_number': 79, @@ -34442,32 +14378,10 @@ 'name_H-M_alt': 'I 4', 'crystal_system': 'tetragonal', 'Wyckoff_positions': { - 'c': { - 'multiplicity': 8, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z)', - '(-y,x,z)', - '(y,-x,z)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,1/2,z)', - '(1/2,0,z)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '4..', - 'coords_xyz': [ - '(0,0,z)' - ] - } - } + 'c': {'multiplicity': 8, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(-x,-y,z)', '(-y,x,z)', '(y,-x,z)']}, + 'b': {'multiplicity': 4, 'site_symmetry': '2..', 'coords_xyz': ['(0,1/2,z)', '(1/2,0,z)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '4..', 'coords_xyz': ['(0,0,z)']}, + }, }, (80, '1'): { 'IT_number': 80, @@ -34479,22 +14393,10 @@ 'b': { 'multiplicity': 8, 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x+1/2,-y+1/2,z+1/2)', - '(-y,x+1/2,z+1/4)', - '(y+1/2,-x,z+3/4)' - ] + 'coords_xyz': ['(x,y,z)', '(-x+1/2,-y+1/2,z+1/2)', '(-y,x+1/2,z+1/4)', '(y+1/2,-x,z+3/4)'], }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,0,z)', - '(0,1/2,z+1/4)' - ] - } - } + 'a': {'multiplicity': 4, 'site_symmetry': '2..', 'coords_xyz': ['(0,0,z)', '(0,1/2,z+1/4)']}, + }, }, (87, '1'): { 'IT_number': 87, @@ -34514,78 +14416,26 @@ '(-x,-y,-z)', '(x,y,-z)', '(y,-x,-z)', - '(-y,x,-z)' - ] - }, - 'h': { - 'multiplicity': 8, - 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,y,0)', - '(-x,-y,0)', - '(-y,x,0)', - '(y,-x,0)' - ] + '(-y,x,-z)', + ], }, + 'h': {'multiplicity': 8, 'site_symmetry': 'm..', 'coords_xyz': ['(x,y,0)', '(-x,-y,0)', '(-y,x,0)', '(y,-x,0)']}, 'g': { 'multiplicity': 8, 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,1/2,z)', - '(1/2,0,z)', - '(0,1/2,-z)', - '(1/2,0,-z)' - ] + 'coords_xyz': ['(0,1/2,z)', '(1/2,0,z)', '(0,1/2,-z)', '(1/2,0,-z)'], }, 'f': { 'multiplicity': 8, 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/4,1/4,1/4)', - '(3/4,3/4,1/4)', - '(3/4,1/4,1/4)', - '(1/4,3/4,1/4)' - ] - }, - 'e': { - 'multiplicity': 4, - 'site_symmetry': '4..', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)' - ] - }, - 'd': { - 'multiplicity': 4, - 'site_symmetry': '-4..', - 'coords_xyz': [ - '(0,1/2,1/4)', - '(1/2,0,1/4)' - ] - }, - 'c': { - 'multiplicity': 4, - 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(0,1/2,0)', - '(1/2,0,0)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '4/m..', - 'coords_xyz': [ - '(0,0,1/2)' - ] + 'coords_xyz': ['(1/4,1/4,1/4)', '(3/4,3/4,1/4)', '(3/4,1/4,1/4)', '(1/4,3/4,1/4)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '4/m..', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'e': {'multiplicity': 4, 'site_symmetry': '4..', 'coords_xyz': ['(0,0,z)', '(0,0,-z)']}, + 'd': {'multiplicity': 4, 'site_symmetry': '-4..', 'coords_xyz': ['(0,1/2,1/4)', '(1/2,0,1/4)']}, + 'c': {'multiplicity': 4, 'site_symmetry': '2/m..', 'coords_xyz': ['(0,1/2,0)', '(1/2,0,0)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '4/m..', 'coords_xyz': ['(0,0,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '4/m..', 'coords_xyz': ['(0,0,0)']}, + }, }, (88, '1'): { 'IT_number': 88, @@ -34605,56 +14455,27 @@ '(-x,-y+1/2,-z+1/4)', '(x+1/2,y,-z+3/4)', '(y,-x,-z)', - '(-y+1/2,x+1/2,-z+1/2)' - ] + '(-y+1/2,x+1/2,-z+1/2)', + ], }, 'e': { 'multiplicity': 8, 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,0,z)', - '(0,1/2,z+1/4)', - '(0,1/2,-z+1/4)', - '(0,0,-z)' - ] + 'coords_xyz': ['(0,0,z)', '(0,1/2,z+1/4)', '(0,1/2,-z+1/4)', '(0,0,-z)'], }, 'd': { 'multiplicity': 8, 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,1/4,5/8)', - '(1/2,1/4,1/8)', - '(3/4,1/2,7/8)', - '(3/4,0,3/8)' - ] + 'coords_xyz': ['(0,1/4,5/8)', '(1/2,1/4,1/8)', '(3/4,1/2,7/8)', '(3/4,0,3/8)'], }, 'c': { 'multiplicity': 8, 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,1/4,1/8)', - '(1/2,1/4,5/8)', - '(3/4,1/2,3/8)', - '(3/4,0,7/8)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '-4..', - 'coords_xyz': [ - '(0,0,1/2)', - '(0,1/2,3/4)' - ] + 'coords_xyz': ['(0,1/4,1/8)', '(1/2,1/4,5/8)', '(3/4,1/2,3/8)', '(3/4,0,7/8)'], }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '-4..', - 'coords_xyz': [ - '(0,0,0)', - '(0,1/2,1/4)' - ] - } - } + 'b': {'multiplicity': 4, 'site_symmetry': '-4..', 'coords_xyz': ['(0,0,1/2)', '(0,1/2,3/4)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '-4..', 'coords_xyz': ['(0,0,0)', '(0,1/2,1/4)']}, + }, }, (88, '2'): { 'IT_number': 88, @@ -34674,56 +14495,27 @@ '(-x,-y,-z)', '(x+1/2,y,-z+1/2)', '(y+1/4,-x+3/4,-z+3/4)', - '(-y+1/4,x+1/4,-z+1/4)' - ] + '(-y+1/4,x+1/4,-z+1/4)', + ], }, 'e': { 'multiplicity': 8, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,1/4,z)', - '(1/2,1/4,z+1/4)', - '(0,3/4,-z)', - '(1/2,3/4,-z+3/4)' - ] + 'site_symmetry': '2..', + 'coords_xyz': ['(0,1/4,z)', '(1/2,1/4,z+1/4)', '(0,3/4,-z)', '(1/2,3/4,-z+3/4)'], }, 'd': { 'multiplicity': 8, 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,1/2)', - '(1/2,0,0)', - '(3/4,1/4,3/4)', - '(3/4,3/4,1/4)' - ] + 'coords_xyz': ['(0,0,1/2)', '(1/2,0,0)', '(3/4,1/4,3/4)', '(3/4,3/4,1/4)'], }, 'c': { 'multiplicity': 8, 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,0,1/2)', - '(3/4,1/4,1/4)', - '(3/4,3/4,3/4)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '-4..', - 'coords_xyz': [ - '(0,1/4,5/8)', - '(1/2,1/4,7/8)' - ] + 'coords_xyz': ['(0,0,0)', '(1/2,0,1/2)', '(3/4,1/4,1/4)', '(3/4,3/4,3/4)'], }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '-4..', - 'coords_xyz': [ - '(0,1/4,1/8)', - '(1/2,1/4,3/8)' - ] - } - } + 'b': {'multiplicity': 4, 'site_symmetry': '-4..', 'coords_xyz': ['(0,1/4,5/8)', '(1/2,1/4,7/8)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '-4..', 'coords_xyz': ['(0,1/4,1/8)', '(1/2,1/4,3/8)']}, + }, }, (89, '1'): { 'IT_number': 89, @@ -34743,140 +14535,45 @@ '(-x,y,-z)', '(x,-y,-z)', '(y,x,-z)', - '(-y,-x,-z)' - ] + '(-y,-x,-z)', + ], }, 'o': { 'multiplicity': 4, 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,1/2,0)', - '(-x,1/2,0)', - '(1/2,x,0)', - '(1/2,-x,0)' - ] + 'coords_xyz': ['(x,1/2,0)', '(-x,1/2,0)', '(1/2,x,0)', '(1/2,-x,0)'], }, 'n': { 'multiplicity': 4, 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,0,1/2)', - '(-x,0,1/2)', - '(0,x,1/2)', - '(0,-x,1/2)' - ] + 'coords_xyz': ['(x,0,1/2)', '(-x,0,1/2)', '(0,x,1/2)', '(0,-x,1/2)'], }, 'm': { 'multiplicity': 4, 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,1/2,1/2)', - '(-x,1/2,1/2)', - '(1/2,x,1/2)', - '(1/2,-x,1/2)' - ] - }, - 'l': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)', - '(0,x,0)', - '(0,-x,0)' - ] + 'coords_xyz': ['(x,1/2,1/2)', '(-x,1/2,1/2)', '(1/2,x,1/2)', '(1/2,-x,1/2)'], }, + 'l': {'multiplicity': 4, 'site_symmetry': '.2.', 'coords_xyz': ['(x,0,0)', '(-x,0,0)', '(0,x,0)', '(0,-x,0)']}, 'k': { 'multiplicity': 4, 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,x,1/2)', - '(-x,-x,1/2)', - '(-x,x,1/2)', - '(x,-x,1/2)' - ] - }, - 'j': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,x,0)', - '(-x,-x,0)', - '(-x,x,0)', - '(x,-x,0)' - ] + 'coords_xyz': ['(x,x,1/2)', '(-x,-x,1/2)', '(-x,x,1/2)', '(x,-x,1/2)'], }, + 'j': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(x,x,0)', '(-x,-x,0)', '(-x,x,0)', '(x,-x,0)']}, 'i': { 'multiplicity': 4, 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,1/2,z)', - '(1/2,0,z)', - '(0,1/2,-z)', - '(1/2,0,-z)' - ] - }, - 'h': { - 'multiplicity': 2, - 'site_symmetry': '4..', - 'coords_xyz': [ - '(1/2,1/2,z)', - '(1/2,1/2,-z)' - ] - }, - 'g': { - 'multiplicity': 2, - 'site_symmetry': '4..', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)' - ] - }, - 'f': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/2,0,1/2)', - '(0,1/2,1/2)' - ] - }, - 'e': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/2,0,0)', - '(0,1/2,0)' - ] - }, - 'd': { - 'multiplicity': 1, - 'site_symmetry': '422', - 'coords_xyz': [ - '(1/2,1/2,1/2)' - ] - }, - 'c': { - 'multiplicity': 1, - 'site_symmetry': '422', - 'coords_xyz': [ - '(1/2,1/2,0)' - ] - }, - 'b': { - 'multiplicity': 1, - 'site_symmetry': '422', - 'coords_xyz': [ - '(0,0,1/2)' - ] + 'coords_xyz': ['(0,1/2,z)', '(1/2,0,z)', '(0,1/2,-z)', '(1/2,0,-z)'], }, - 'a': { - 'multiplicity': 1, - 'site_symmetry': '422', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'h': {'multiplicity': 2, 'site_symmetry': '4..', 'coords_xyz': ['(1/2,1/2,z)', '(1/2,1/2,-z)']}, + 'g': {'multiplicity': 2, 'site_symmetry': '4..', 'coords_xyz': ['(0,0,z)', '(0,0,-z)']}, + 'f': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(1/2,0,1/2)', '(0,1/2,1/2)']}, + 'e': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(1/2,0,0)', '(0,1/2,0)']}, + 'd': {'multiplicity': 1, 'site_symmetry': '422', 'coords_xyz': ['(1/2,1/2,1/2)']}, + 'c': {'multiplicity': 1, 'site_symmetry': '422', 'coords_xyz': ['(1/2,1/2,0)']}, + 'b': {'multiplicity': 1, 'site_symmetry': '422', 'coords_xyz': ['(0,0,1/2)']}, + 'a': {'multiplicity': 1, 'site_symmetry': '422', 'coords_xyz': ['(0,0,0)']}, + }, }, (90, '1'): { 'IT_number': 90, @@ -34896,64 +14593,28 @@ '(-x+1/2,y+1/2,-z)', '(x+1/2,-y+1/2,-z)', '(y,x,-z)', - '(-y,-x,-z)' - ] + '(-y,-x,-z)', + ], }, 'f': { 'multiplicity': 4, 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,x,1/2)', - '(-x,-x,1/2)', - '(-x+1/2,x+1/2,1/2)', - '(x+1/2,-x+1/2,1/2)' - ] + 'coords_xyz': ['(x,x,1/2)', '(-x,-x,1/2)', '(-x+1/2,x+1/2,1/2)', '(x+1/2,-x+1/2,1/2)'], }, 'e': { 'multiplicity': 4, 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,x,0)', - '(-x,-x,0)', - '(-x+1/2,x+1/2,0)', - '(x+1/2,-x+1/2,0)' - ] + 'coords_xyz': ['(x,x,0)', '(-x,-x,0)', '(-x+1/2,x+1/2,0)', '(x+1/2,-x+1/2,0)'], }, 'd': { 'multiplicity': 4, 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,0,z)', - '(1/2,1/2,z)', - '(1/2,1/2,-z)', - '(0,0,-z)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '4..', - 'coords_xyz': [ - '(0,1/2,z)', - '(1/2,0,-z)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '2.2', - 'coords_xyz': [ - '(0,0,1/2)', - '(1/2,1/2,1/2)' - ] + 'coords_xyz': ['(0,0,z)', '(1/2,1/2,z)', '(1/2,1/2,-z)', '(0,0,-z)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '2.2', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,1/2,0)' - ] - } - } + 'c': {'multiplicity': 2, 'site_symmetry': '4..', 'coords_xyz': ['(0,1/2,z)', '(1/2,0,-z)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '2.2', 'coords_xyz': ['(0,0,1/2)', '(1/2,1/2,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '2.2', 'coords_xyz': ['(0,0,0)', '(1/2,1/2,0)']}, + }, }, (91, '1'): { 'IT_number': 91, @@ -34973,40 +14634,25 @@ '(-x,y,-z)', '(x,-y,-z+1/2)', '(y,x,-z+3/4)', - '(-y,-x,-z+1/4)' - ] + '(-y,-x,-z+1/4)', + ], }, 'c': { 'multiplicity': 4, 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,x,3/8)', - '(-x,-x,7/8)', - '(-x,x,5/8)', - '(x,-x,1/8)' - ] + 'coords_xyz': ['(x,x,3/8)', '(-x,-x,7/8)', '(-x,x,5/8)', '(x,-x,1/8)'], }, 'b': { 'multiplicity': 4, 'site_symmetry': '.2.', - 'coords_xyz': [ - '(1/2,y,0)', - '(1/2,-y,1/2)', - '(-y,1/2,1/4)', - '(y,1/2,3/4)' - ] + 'coords_xyz': ['(1/2,y,0)', '(1/2,-y,1/2)', '(-y,1/2,1/4)', '(y,1/2,3/4)'], }, 'a': { 'multiplicity': 4, 'site_symmetry': '.2.', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y,1/2)', - '(-y,0,1/4)', - '(y,0,3/4)' - ] - } - } + 'coords_xyz': ['(0,y,0)', '(0,-y,1/2)', '(-y,0,1/4)', '(y,0,3/4)'], + }, + }, }, (92, '1'): { 'IT_number': 92, @@ -35026,20 +14672,15 @@ '(-x+1/2,y+1/2,-z+1/4)', '(x+1/2,-y+1/2,-z+3/4)', '(y,x,-z)', - '(-y,-x,-z+1/2)' - ] + '(-y,-x,-z+1/2)', + ], }, 'a': { 'multiplicity': 4, 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,x,0)', - '(-x,-x,1/2)', - '(-x+1/2,x+1/2,1/4)', - '(x+1/2,-x+1/2,3/4)' - ] - } - } + 'coords_xyz': ['(x,x,0)', '(-x,-x,1/2)', '(-x+1/2,x+1/2,1/4)', '(x+1/2,-x+1/2,3/4)'], + }, + }, }, (93, '1'): { 'IT_number': 93, @@ -35059,148 +14700,53 @@ '(-x,y,-z)', '(x,-y,-z)', '(y,x,-z+1/2)', - '(-y,-x,-z+1/2)' - ] + '(-y,-x,-z+1/2)', + ], }, 'o': { 'multiplicity': 4, 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,x,3/4)', - '(-x,-x,3/4)', - '(-x,x,1/4)', - '(x,-x,1/4)' - ] + 'coords_xyz': ['(x,x,3/4)', '(-x,-x,3/4)', '(-x,x,1/4)', '(x,-x,1/4)'], }, 'n': { 'multiplicity': 4, 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,x,1/4)', - '(-x,-x,1/4)', - '(-x,x,3/4)', - '(x,-x,3/4)' - ] + 'coords_xyz': ['(x,x,1/4)', '(-x,-x,1/4)', '(-x,x,3/4)', '(x,-x,3/4)'], }, 'm': { 'multiplicity': 4, 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,1/2,0)', - '(-x,1/2,0)', - '(1/2,x,1/2)', - '(1/2,-x,1/2)' - ] - }, - 'l': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,0,1/2)', - '(-x,0,1/2)', - '(0,x,0)', - '(0,-x,0)' - ] + 'coords_xyz': ['(x,1/2,0)', '(-x,1/2,0)', '(1/2,x,1/2)', '(1/2,-x,1/2)'], }, + 'l': {'multiplicity': 4, 'site_symmetry': '.2.', 'coords_xyz': ['(x,0,1/2)', '(-x,0,1/2)', '(0,x,0)', '(0,-x,0)']}, 'k': { 'multiplicity': 4, 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,1/2,1/2)', - '(-x,1/2,1/2)', - '(1/2,x,0)', - '(1/2,-x,0)' - ] - }, - 'j': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)', - '(0,x,1/2)', - '(0,-x,1/2)' - ] + 'coords_xyz': ['(x,1/2,1/2)', '(-x,1/2,1/2)', '(1/2,x,0)', '(1/2,-x,0)'], }, + 'j': {'multiplicity': 4, 'site_symmetry': '.2.', 'coords_xyz': ['(x,0,0)', '(-x,0,0)', '(0,x,1/2)', '(0,-x,1/2)']}, 'i': { 'multiplicity': 4, 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,1/2,z)', - '(1/2,0,z+1/2)', - '(0,1/2,-z)', - '(1/2,0,-z+1/2)' - ] + 'coords_xyz': ['(0,1/2,z)', '(1/2,0,z+1/2)', '(0,1/2,-z)', '(1/2,0,-z+1/2)'], }, 'h': { 'multiplicity': 4, 'site_symmetry': '2..', - 'coords_xyz': [ - '(1/2,1/2,z)', - '(1/2,1/2,z+1/2)', - '(1/2,1/2,-z)', - '(1/2,1/2,-z+1/2)' - ] + 'coords_xyz': ['(1/2,1/2,z)', '(1/2,1/2,z+1/2)', '(1/2,1/2,-z)', '(1/2,1/2,-z+1/2)'], }, 'g': { 'multiplicity': 4, 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,z+1/2)', - '(0,0,-z)', - '(0,0,-z+1/2)' - ] - }, - 'f': { - 'multiplicity': 2, - 'site_symmetry': '2.2', - 'coords_xyz': [ - '(1/2,1/2,1/4)', - '(1/2,1/2,3/4)' - ] - }, - 'e': { - 'multiplicity': 2, - 'site_symmetry': '2.2', - 'coords_xyz': [ - '(0,0,1/4)', - '(0,0,3/4)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,1/2,1/2)', - '(1/2,0,0)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,1/2,0)', - '(1/2,0,1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/2,1/2,0)', - '(1/2,1/2,1/2)' - ] + 'coords_xyz': ['(0,0,z)', '(0,0,z+1/2)', '(0,0,-z)', '(0,0,-z+1/2)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,0)', - '(0,0,1/2)' - ] - } - } + 'f': {'multiplicity': 2, 'site_symmetry': '2.2', 'coords_xyz': ['(1/2,1/2,1/4)', '(1/2,1/2,3/4)']}, + 'e': {'multiplicity': 2, 'site_symmetry': '2.2', 'coords_xyz': ['(0,0,1/4)', '(0,0,3/4)']}, + 'd': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(0,1/2,1/2)', '(1/2,0,0)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(0,1/2,0)', '(1/2,0,1/2)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(1/2,1/2,0)', '(1/2,1/2,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(0,0,0)', '(0,0,1/2)']}, + }, }, (94, '1'): { 'IT_number': 94, @@ -35220,66 +14766,32 @@ '(-x+1/2,y+1/2,-z+1/2)', '(x+1/2,-y+1/2,-z+1/2)', '(y,x,-z)', - '(-y,-x,-z)' - ] + '(-y,-x,-z)', + ], }, 'f': { 'multiplicity': 4, 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,x,1/2)', - '(-x,-x,1/2)', - '(-x+1/2,x+1/2,0)', - '(x+1/2,-x+1/2,0)' - ] + 'coords_xyz': ['(x,x,1/2)', '(-x,-x,1/2)', '(-x+1/2,x+1/2,0)', '(x+1/2,-x+1/2,0)'], }, 'e': { 'multiplicity': 4, 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,x,0)', - '(-x,-x,0)', - '(-x+1/2,x+1/2,1/2)', - '(x+1/2,-x+1/2,1/2)' - ] + 'coords_xyz': ['(x,x,0)', '(-x,-x,0)', '(-x+1/2,x+1/2,1/2)', '(x+1/2,-x+1/2,1/2)'], }, 'd': { 'multiplicity': 4, 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,1/2,z)', - '(0,1/2,z+1/2)', - '(1/2,0,-z+1/2)', - '(1/2,0,-z)' - ] + 'coords_xyz': ['(0,1/2,z)', '(0,1/2,z+1/2)', '(1/2,0,-z+1/2)', '(1/2,0,-z)'], }, 'c': { 'multiplicity': 4, 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,0,z)', - '(1/2,1/2,z+1/2)', - '(1/2,1/2,-z+1/2)', - '(0,0,-z)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '2.2', - 'coords_xyz': [ - '(0,0,1/2)', - '(1/2,1/2,0)' - ] + 'coords_xyz': ['(0,0,z)', '(1/2,1/2,z+1/2)', '(1/2,1/2,-z+1/2)', '(0,0,-z)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '2.2', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,1/2,1/2)' - ] - } - } + 'b': {'multiplicity': 2, 'site_symmetry': '2.2', 'coords_xyz': ['(0,0,1/2)', '(1/2,1/2,0)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '2.2', 'coords_xyz': ['(0,0,0)', '(1/2,1/2,1/2)']}, + }, }, (95, '1'): { 'IT_number': 95, @@ -35299,40 +14811,25 @@ '(-x,y,-z)', '(x,-y,-z+1/2)', '(y,x,-z+1/4)', - '(-y,-x,-z+3/4)' - ] + '(-y,-x,-z+3/4)', + ], }, 'c': { 'multiplicity': 4, 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,x,5/8)', - '(-x,-x,1/8)', - '(-x,x,3/8)', - '(x,-x,7/8)' - ] + 'coords_xyz': ['(x,x,5/8)', '(-x,-x,1/8)', '(-x,x,3/8)', '(x,-x,7/8)'], }, 'b': { 'multiplicity': 4, 'site_symmetry': '.2.', - 'coords_xyz': [ - '(1/2,y,0)', - '(1/2,-y,1/2)', - '(-y,1/2,3/4)', - '(y,1/2,1/4)' - ] + 'coords_xyz': ['(1/2,y,0)', '(1/2,-y,1/2)', '(-y,1/2,3/4)', '(y,1/2,1/4)'], }, 'a': { 'multiplicity': 4, 'site_symmetry': '.2.', - 'coords_xyz': [ - '(0,y,0)', - '(0,-y,1/2)', - '(-y,0,3/4)', - '(y,0,1/4)' - ] - } - } + 'coords_xyz': ['(0,y,0)', '(0,-y,1/2)', '(-y,0,3/4)', '(y,0,1/4)'], + }, + }, }, (96, '1'): { 'IT_number': 96, @@ -35352,20 +14849,15 @@ '(-x+1/2,y+1/2,-z+3/4)', '(x+1/2,-y+1/2,-z+1/4)', '(y,x,-z)', - '(-y,-x,-z+1/2)' - ] + '(-y,-x,-z+1/2)', + ], }, 'a': { 'multiplicity': 4, 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,x,0)', - '(-x,-x,1/2)', - '(-x+1/2,x+1/2,3/4)', - '(x+1/2,-x+1/2,1/4)' - ] - } - } + 'coords_xyz': ['(x,x,0)', '(-x,-x,1/2)', '(-x+1/2,x+1/2,3/4)', '(x+1/2,-x+1/2,1/4)'], + }, + }, }, (97, '1'): { 'IT_number': 97, @@ -35384,99 +14876,33 @@ '(y,-x,z)', '(-x,y,-z)', '(x,-y,-z)', - '(y,x,-z)', - '(-y,-x,-z)' - ] - }, - 'j': { - 'multiplicity': 8, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,x+1/2,1/4)', - '(-x,-x+1/2,1/4)', - '(-x+1/2,x,1/4)', - '(x+1/2,-x,1/4)' - ] - }, - 'i': { - 'multiplicity': 8, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,0,1/2)', - '(-x,0,1/2)', - '(0,x,1/2)', - '(0,-x,1/2)' - ] + '(y,x,-z)', + '(-y,-x,-z)', + ], }, - 'h': { + 'j': { 'multiplicity': 8, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)', - '(0,x,0)', - '(0,-x,0)' - ] + 'site_symmetry': '..2', + 'coords_xyz': ['(x,x+1/2,1/4)', '(-x,-x+1/2,1/4)', '(-x+1/2,x,1/4)', '(x+1/2,-x,1/4)'], }, - 'g': { + 'i': { 'multiplicity': 8, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,x,0)', - '(-x,-x,0)', - '(-x,x,0)', - '(x,-x,0)' - ] + 'site_symmetry': '.2.', + 'coords_xyz': ['(x,0,1/2)', '(-x,0,1/2)', '(0,x,1/2)', '(0,-x,1/2)'], }, + 'h': {'multiplicity': 8, 'site_symmetry': '.2.', 'coords_xyz': ['(x,0,0)', '(-x,0,0)', '(0,x,0)', '(0,-x,0)']}, + 'g': {'multiplicity': 8, 'site_symmetry': '..2', 'coords_xyz': ['(x,x,0)', '(-x,-x,0)', '(-x,x,0)', '(x,-x,0)']}, 'f': { 'multiplicity': 8, 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,1/2,z)', - '(1/2,0,z)', - '(0,1/2,-z)', - '(1/2,0,-z)' - ] - }, - 'e': { - 'multiplicity': 4, - 'site_symmetry': '4..', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)' - ] - }, - 'd': { - 'multiplicity': 4, - 'site_symmetry': '2.2', - 'coords_xyz': [ - '(0,1/2,1/4)', - '(1/2,0,1/4)' - ] - }, - 'c': { - 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,1/2,0)', - '(1/2,0,0)' - ] + 'coords_xyz': ['(0,1/2,z)', '(1/2,0,z)', '(0,1/2,-z)', '(1/2,0,-z)'], }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '422', - 'coords_xyz': [ - '(0,0,1/2)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '422', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'e': {'multiplicity': 4, 'site_symmetry': '4..', 'coords_xyz': ['(0,0,z)', '(0,0,-z)']}, + 'd': {'multiplicity': 4, 'site_symmetry': '2.2', 'coords_xyz': ['(0,1/2,1/4)', '(1/2,0,1/4)']}, + 'c': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(0,1/2,0)', '(1/2,0,0)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '422', 'coords_xyz': ['(0,0,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '422', 'coords_xyz': ['(0,0,0)']}, + }, }, (98, '1'): { 'IT_number': 98, @@ -35496,66 +14922,32 @@ '(-x+1/2,y,-z+3/4)', '(x,-y+1/2,-z+1/4)', '(y+1/2,x+1/2,-z+1/2)', - '(-y,-x,-z)' - ] + '(-y,-x,-z)', + ], }, 'f': { 'multiplicity': 8, 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,1/4,1/8)', - '(-x+1/2,1/4,5/8)', - '(3/4,x+1/2,3/8)', - '(3/4,-x,7/8)' - ] + 'coords_xyz': ['(x,1/4,1/8)', '(-x+1/2,1/4,5/8)', '(3/4,x+1/2,3/8)', '(3/4,-x,7/8)'], }, 'e': { 'multiplicity': 8, 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,-x,0)', - '(-x+1/2,x+1/2,1/2)', - '(x,x+1/2,1/4)', - '(-x+1/2,-x,3/4)' - ] + 'coords_xyz': ['(x,-x,0)', '(-x+1/2,x+1/2,1/2)', '(x,x+1/2,1/4)', '(-x+1/2,-x,3/4)'], }, 'd': { 'multiplicity': 8, 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,x,0)', - '(-x+1/2,-x+1/2,1/2)', - '(-x,x+1/2,1/4)', - '(x+1/2,-x,3/4)' - ] + 'coords_xyz': ['(x,x,0)', '(-x+1/2,-x+1/2,1/2)', '(-x,x+1/2,1/4)', '(x+1/2,-x,3/4)'], }, 'c': { 'multiplicity': 8, 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,0,z)', - '(0,1/2,z+1/4)', - '(1/2,0,-z+3/4)', - '(1/2,1/2,-z+1/2)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '2.2', - 'coords_xyz': [ - '(0,0,1/2)', - '(0,1/2,3/4)' - ] + 'coords_xyz': ['(0,0,z)', '(0,1/2,z+1/4)', '(1/2,0,-z+3/4)', '(1/2,1/2,-z+1/2)'], }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '2.2', - 'coords_xyz': [ - '(0,0,0)', - '(0,1/2,1/4)' - ] - } - } + 'b': {'multiplicity': 4, 'site_symmetry': '2.2', 'coords_xyz': ['(0,0,1/2)', '(0,1/2,3/4)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '2.2', 'coords_xyz': ['(0,0,0)', '(0,1/2,1/4)']}, + }, }, (99, '1'): { 'IT_number': 99, @@ -35567,70 +14959,19 @@ 'g': { 'multiplicity': 8, 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z)', - '(-y,x,z)', - '(y,-x,z)', - '(x,-y,z)', - '(-x,y,z)', - '(-y,-x,z)', - '(y,x,z)' - ] + 'coords_xyz': ['(x,y,z)', '(-x,-y,z)', '(-y,x,z)', '(y,-x,z)', '(x,-y,z)', '(-x,y,z)', '(-y,-x,z)', '(y,x,z)'], }, 'f': { 'multiplicity': 4, 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,1/2,z)', - '(-x,1/2,z)', - '(1/2,x,z)', - '(1/2,-x,z)' - ] - }, - 'e': { - 'multiplicity': 4, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,0,z)', - '(-x,0,z)', - '(0,x,z)', - '(0,-x,z)' - ] - }, - 'd': { - 'multiplicity': 4, - 'site_symmetry': '..m', - 'coords_xyz': [ - '(x,x,z)', - '(-x,-x,z)', - '(-x,x,z)', - '(x,-x,z)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '2mm', - 'coords_xyz': [ - '(1/2,0,z)', - '(0,1/2,z)' - ] - }, - 'b': { - 'multiplicity': 1, - 'site_symmetry': '4mm', - 'coords_xyz': [ - '(1/2,1/2,z)' - ] + 'coords_xyz': ['(x,1/2,z)', '(-x,1/2,z)', '(1/2,x,z)', '(1/2,-x,z)'], }, - 'a': { - 'multiplicity': 1, - 'site_symmetry': '4mm', - 'coords_xyz': [ - '(0,0,z)' - ] - } - } + 'e': {'multiplicity': 4, 'site_symmetry': '.m.', 'coords_xyz': ['(x,0,z)', '(-x,0,z)', '(0,x,z)', '(0,-x,z)']}, + 'd': {'multiplicity': 4, 'site_symmetry': '..m', 'coords_xyz': ['(x,x,z)', '(-x,-x,z)', '(-x,x,z)', '(x,-x,z)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '2mm', 'coords_xyz': ['(1/2,0,z)', '(0,1/2,z)']}, + 'b': {'multiplicity': 1, 'site_symmetry': '4mm', 'coords_xyz': ['(1/2,1/2,z)']}, + 'a': {'multiplicity': 1, 'site_symmetry': '4mm', 'coords_xyz': ['(0,0,z)']}, + }, }, (100, '1'): { 'IT_number': 100, @@ -35650,36 +14991,17 @@ '(x+1/2,-y+1/2,z)', '(-x+1/2,y+1/2,z)', '(-y+1/2,-x+1/2,z)', - '(y+1/2,x+1/2,z)' - ] + '(y+1/2,x+1/2,z)', + ], }, 'c': { 'multiplicity': 4, 'site_symmetry': '..m', - 'coords_xyz': [ - '(x,x+1/2,z)', - '(-x,-x+1/2,z)', - '(-x+1/2,x,z)', - '(x+1/2,-x,z)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '2.m', - 'coords_xyz': [ - '(1/2,0,z)', - '(0,1/2,z)' - ] + 'coords_xyz': ['(x,x+1/2,z)', '(-x,-x+1/2,z)', '(-x+1/2,x,z)', '(x+1/2,-x,z)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '4..', - 'coords_xyz': [ - '(0,0,z)', - '(1/2,1/2,z)' - ] - } - } + 'b': {'multiplicity': 2, 'site_symmetry': '2.m', 'coords_xyz': ['(1/2,0,z)', '(0,1/2,z)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '4..', 'coords_xyz': ['(0,0,z)', '(1/2,1/2,z)']}, + }, }, (101, '1'): { 'IT_number': 101, @@ -35699,46 +15021,22 @@ '(x,-y,z+1/2)', '(-x,y,z+1/2)', '(-y,-x,z)', - '(y,x,z)' - ] + '(y,x,z)', + ], }, 'd': { 'multiplicity': 4, 'site_symmetry': '..m', - 'coords_xyz': [ - '(x,x,z)', - '(-x,-x,z)', - '(-x,x,z+1/2)', - '(x,-x,z+1/2)' - ] + 'coords_xyz': ['(x,x,z)', '(-x,-x,z)', '(-x,x,z+1/2)', '(x,-x,z+1/2)'], }, 'c': { 'multiplicity': 4, 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,1/2,z)', - '(1/2,0,z+1/2)', - '(0,1/2,z+1/2)', - '(1/2,0,z)' - ] + 'coords_xyz': ['(0,1/2,z)', '(1/2,0,z+1/2)', '(0,1/2,z+1/2)', '(1/2,0,z)'], }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '2.m', - 'coords_xyz': [ - '(1/2,1/2,z)', - '(1/2,1/2,z+1/2)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '2.m', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,z+1/2)' - ] - } - } + 'b': {'multiplicity': 2, 'site_symmetry': '2.m', 'coords_xyz': ['(1/2,1/2,z)', '(1/2,1/2,z+1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '2.m', 'coords_xyz': ['(0,0,z)', '(0,0,z+1/2)']}, + }, }, (102, '1'): { 'IT_number': 102, @@ -35758,38 +15056,21 @@ '(x+1/2,-y+1/2,z+1/2)', '(-x+1/2,y+1/2,z+1/2)', '(-y,-x,z)', - '(y,x,z)' - ] + '(y,x,z)', + ], }, 'c': { 'multiplicity': 4, 'site_symmetry': '..m', - 'coords_xyz': [ - '(x,x,z)', - '(-x,-x,z)', - '(-x+1/2,x+1/2,z+1/2)', - '(x+1/2,-x+1/2,z+1/2)' - ] + 'coords_xyz': ['(x,x,z)', '(-x,-x,z)', '(-x+1/2,x+1/2,z+1/2)', '(x+1/2,-x+1/2,z+1/2)'], }, 'b': { 'multiplicity': 4, 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,1/2,z)', - '(0,1/2,z+1/2)', - '(1/2,0,z+1/2)', - '(1/2,0,z)' - ] + 'coords_xyz': ['(0,1/2,z)', '(0,1/2,z+1/2)', '(1/2,0,z+1/2)', '(1/2,0,z)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '2.m', - 'coords_xyz': [ - '(0,0,z)', - '(1/2,1/2,z+1/2)' - ] - } - } + 'a': {'multiplicity': 2, 'site_symmetry': '2.m', 'coords_xyz': ['(0,0,z)', '(1/2,1/2,z+1/2)']}, + }, }, (103, '1'): { 'IT_number': 103, @@ -35809,36 +15090,17 @@ '(x,-y,z+1/2)', '(-x,y,z+1/2)', '(-y,-x,z+1/2)', - '(y,x,z+1/2)' - ] + '(y,x,z+1/2)', + ], }, 'c': { 'multiplicity': 4, 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,1/2,z)', - '(1/2,0,z)', - '(0,1/2,z+1/2)', - '(1/2,0,z+1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '4..', - 'coords_xyz': [ - '(1/2,1/2,z)', - '(1/2,1/2,z+1/2)' - ] + 'coords_xyz': ['(0,1/2,z)', '(1/2,0,z)', '(0,1/2,z+1/2)', '(1/2,0,z+1/2)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '4..', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,z+1/2)' - ] - } - } + 'b': {'multiplicity': 2, 'site_symmetry': '4..', 'coords_xyz': ['(1/2,1/2,z)', '(1/2,1/2,z+1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '4..', 'coords_xyz': ['(0,0,z)', '(0,0,z+1/2)']}, + }, }, (104, '1'): { 'IT_number': 104, @@ -35858,28 +15120,16 @@ '(x+1/2,-y+1/2,z+1/2)', '(-x+1/2,y+1/2,z+1/2)', '(-y+1/2,-x+1/2,z+1/2)', - '(y+1/2,x+1/2,z+1/2)' - ] + '(y+1/2,x+1/2,z+1/2)', + ], }, 'b': { 'multiplicity': 4, 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,1/2,z)', - '(1/2,0,z)', - '(1/2,0,z+1/2)', - '(0,1/2,z+1/2)' - ] + 'coords_xyz': ['(0,1/2,z)', '(1/2,0,z)', '(1/2,0,z+1/2)', '(0,1/2,z+1/2)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '4..', - 'coords_xyz': [ - '(0,0,z)', - '(1/2,1/2,z+1/2)' - ] - } - } + 'a': {'multiplicity': 2, 'site_symmetry': '4..', 'coords_xyz': ['(0,0,z)', '(1/2,1/2,z+1/2)']}, + }, }, (105, '1'): { 'IT_number': 105, @@ -35899,54 +15149,23 @@ '(x,-y,z)', '(-x,y,z)', '(-y,-x,z+1/2)', - '(y,x,z+1/2)' - ] + '(y,x,z+1/2)', + ], }, 'e': { 'multiplicity': 4, 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,1/2,z)', - '(-x,1/2,z)', - '(1/2,x,z+1/2)', - '(1/2,-x,z+1/2)' - ] + 'coords_xyz': ['(x,1/2,z)', '(-x,1/2,z)', '(1/2,x,z+1/2)', '(1/2,-x,z+1/2)'], }, 'd': { 'multiplicity': 4, 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,0,z)', - '(-x,0,z)', - '(0,x,z+1/2)', - '(0,-x,z+1/2)' - ] + 'coords_xyz': ['(x,0,z)', '(-x,0,z)', '(0,x,z+1/2)', '(0,-x,z+1/2)'], }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '2mm', - 'coords_xyz': [ - '(0,1/2,z)', - '(1/2,0,z+1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '2mm', - 'coords_xyz': [ - '(1/2,1/2,z)', - '(1/2,1/2,z+1/2)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '2mm', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,z+1/2)' - ] - } - } + 'c': {'multiplicity': 2, 'site_symmetry': '2mm', 'coords_xyz': ['(0,1/2,z)', '(1/2,0,z+1/2)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '2mm', 'coords_xyz': ['(1/2,1/2,z)', '(1/2,1/2,z+1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '2mm', 'coords_xyz': ['(0,0,z)', '(0,0,z+1/2)']}, + }, }, (106, '1'): { 'IT_number': 106, @@ -35966,88 +15185,38 @@ '(x+1/2,-y+1/2,z)', '(-x+1/2,y+1/2,z)', '(-y+1/2,-x+1/2,z+1/2)', - '(y+1/2,x+1/2,z+1/2)' - ] + '(y+1/2,x+1/2,z+1/2)', + ], }, 'b': { 'multiplicity': 4, 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,1/2,z)', - '(1/2,0,z+1/2)', - '(1/2,0,z)', - '(0,1/2,z+1/2)' - ] + 'coords_xyz': ['(0,1/2,z)', '(1/2,0,z+1/2)', '(1/2,0,z)', '(0,1/2,z+1/2)'], }, 'a': { 'multiplicity': 4, 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,z+1/2)', - '(1/2,1/2,z)', - '(1/2,1/2,z+1/2)' - ] - } - } + 'coords_xyz': ['(0,0,z)', '(0,0,z+1/2)', '(1/2,1/2,z)', '(1/2,1/2,z+1/2)'], + }, + }, }, (107, '1'): { 'IT_number': 107, - 'setting': 0, - 'IT_coordinate_system_code': '1', - 'name_H-M_alt': 'I 4 m m', - 'crystal_system': 'tetragonal', - 'Wyckoff_positions': { - 'e': { - 'multiplicity': 16, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z)', - '(-y,x,z)', - '(y,-x,z)', - '(x,-y,z)', - '(-x,y,z)', - '(-y,-x,z)', - '(y,x,z)' - ] - }, - 'd': { - 'multiplicity': 8, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,0,z)', - '(-x,0,z)', - '(0,x,z)', - '(0,-x,z)' - ] - }, - 'c': { - 'multiplicity': 8, - 'site_symmetry': '..m', - 'coords_xyz': [ - '(x,x,z)', - '(-x,-x,z)', - '(-x,x,z)', - '(x,-x,z)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '2mm', - 'coords_xyz': [ - '(0,1/2,z)', - '(1/2,0,z)' - ] + 'setting': 0, + 'IT_coordinate_system_code': '1', + 'name_H-M_alt': 'I 4 m m', + 'crystal_system': 'tetragonal', + 'Wyckoff_positions': { + 'e': { + 'multiplicity': 16, + 'site_symmetry': '1', + 'coords_xyz': ['(x,y,z)', '(-x,-y,z)', '(-y,x,z)', '(y,-x,z)', '(x,-y,z)', '(-x,y,z)', '(-y,-x,z)', '(y,x,z)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '4mm', - 'coords_xyz': [ - '(0,0,z)' - ] - } - } + 'd': {'multiplicity': 8, 'site_symmetry': '.m.', 'coords_xyz': ['(x,0,z)', '(-x,0,z)', '(0,x,z)', '(0,-x,z)']}, + 'c': {'multiplicity': 8, 'site_symmetry': '..m', 'coords_xyz': ['(x,x,z)', '(-x,-x,z)', '(-x,x,z)', '(x,-x,z)']}, + 'b': {'multiplicity': 4, 'site_symmetry': '2mm', 'coords_xyz': ['(0,1/2,z)', '(1/2,0,z)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '4mm', 'coords_xyz': ['(0,0,z)']}, + }, }, (108, '1'): { 'IT_number': 108, @@ -36067,36 +15236,17 @@ '(x,-y,z+1/2)', '(-x,y,z+1/2)', '(-y,-x,z+1/2)', - '(y,x,z+1/2)' - ] + '(y,x,z+1/2)', + ], }, 'c': { 'multiplicity': 8, 'site_symmetry': '..m', - 'coords_xyz': [ - '(x,x+1/2,z)', - '(-x,-x+1/2,z)', - '(-x+1/2,x,z)', - '(x+1/2,-x,z)' - ] + 'coords_xyz': ['(x,x+1/2,z)', '(-x,-x+1/2,z)', '(-x+1/2,x,z)', '(x+1/2,-x,z)'], }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '2.m', - 'coords_xyz': [ - '(1/2,0,z)', - '(0,1/2,z)' - ] - }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '4..', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,z+1/2)' - ] - } - } + 'b': {'multiplicity': 4, 'site_symmetry': '2.m', 'coords_xyz': ['(1/2,0,z)', '(0,1/2,z)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '4..', 'coords_xyz': ['(0,0,z)', '(0,0,z+1/2)']}, + }, }, (109, '1'): { 'IT_number': 109, @@ -36116,28 +15266,16 @@ '(x,-y,z)', '(-x+1/2,y+1/2,z+1/2)', '(-y,-x+1/2,z+1/4)', - '(y+1/2,x,z+3/4)' - ] + '(y+1/2,x,z+3/4)', + ], }, 'b': { 'multiplicity': 8, 'site_symmetry': '.m.', - 'coords_xyz': [ - '(0,y,z)', - '(1/2,-y+1/2,z+1/2)', - '(-y,1/2,z+1/4)', - '(y+1/2,0,z+3/4)' - ] + 'coords_xyz': ['(0,y,z)', '(1/2,-y+1/2,z+1/2)', '(-y,1/2,z+1/4)', '(y+1/2,0,z+3/4)'], }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '2mm', - 'coords_xyz': [ - '(0,0,z)', - '(0,1/2,z+1/4)' - ] - } - } + 'a': {'multiplicity': 4, 'site_symmetry': '2mm', 'coords_xyz': ['(0,0,z)', '(0,1/2,z+1/4)']}, + }, }, (110, '1'): { 'IT_number': 110, @@ -36157,20 +15295,15 @@ '(x,-y,z+1/2)', '(-x+1/2,y+1/2,z)', '(-y,-x+1/2,z+3/4)', - '(y+1/2,x,z+1/4)' - ] + '(y+1/2,x,z+1/4)', + ], }, 'a': { 'multiplicity': 8, 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,0,z)', - '(0,1/2,z+1/4)', - '(0,0,z+1/2)', - '(0,1/2,z+3/4)' - ] - } - } + 'coords_xyz': ['(0,0,z)', '(0,1/2,z+1/4)', '(0,0,z+1/2)', '(0,1/2,z+3/4)'], + }, + }, }, (111, '1'): { 'IT_number': 111, @@ -36190,130 +15323,40 @@ '(-x,y,-z)', '(x,-y,-z)', '(-y,-x,z)', - '(y,x,z)' - ] - }, - 'n': { - 'multiplicity': 4, - 'site_symmetry': '..m', - 'coords_xyz': [ - '(x,x,z)', - '(-x,-x,z)', - '(x,-x,-z)', - '(-x,x,-z)' - ] + '(y,x,z)', + ], }, + 'n': {'multiplicity': 4, 'site_symmetry': '..m', 'coords_xyz': ['(x,x,z)', '(-x,-x,z)', '(x,-x,-z)', '(-x,x,-z)']}, 'm': { 'multiplicity': 4, 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,1/2,z)', - '(1/2,0,-z)', - '(0,1/2,-z)', - '(1/2,0,z)' - ] + 'coords_xyz': ['(0,1/2,z)', '(1/2,0,-z)', '(0,1/2,-z)', '(1/2,0,z)'], }, 'l': { 'multiplicity': 4, 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,1/2,0)', - '(-x,1/2,0)', - '(1/2,-x,0)', - '(1/2,x,0)' - ] + 'coords_xyz': ['(x,1/2,0)', '(-x,1/2,0)', '(1/2,-x,0)', '(1/2,x,0)'], }, 'k': { 'multiplicity': 4, 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,0,1/2)', - '(-x,0,1/2)', - '(0,-x,1/2)', - '(0,x,1/2)' - ] + 'coords_xyz': ['(x,0,1/2)', '(-x,0,1/2)', '(0,-x,1/2)', '(0,x,1/2)'], }, 'j': { 'multiplicity': 4, 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,1/2,1/2)', - '(-x,1/2,1/2)', - '(1/2,-x,1/2)', - '(1/2,x,1/2)' - ] - }, - 'i': { - 'multiplicity': 4, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)', - '(0,-x,0)', - '(0,x,0)' - ] - }, - 'h': { - 'multiplicity': 2, - 'site_symmetry': '2.m', - 'coords_xyz': [ - '(1/2,1/2,z)', - '(1/2,1/2,-z)' - ] - }, - 'g': { - 'multiplicity': 2, - 'site_symmetry': '2.m', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)' - ] - }, - 'f': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/2,0,1/2)', - '(0,1/2,1/2)' - ] - }, - 'e': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/2,0,0)', - '(0,1/2,0)' - ] + 'coords_xyz': ['(x,1/2,1/2)', '(-x,1/2,1/2)', '(1/2,-x,1/2)', '(1/2,x,1/2)'], }, - 'd': { - 'multiplicity': 1, - 'site_symmetry': '-42m', - 'coords_xyz': [ - '(1/2,1/2,0)' - ] - }, - 'c': { - 'multiplicity': 1, - 'site_symmetry': '-42m', - 'coords_xyz': [ - '(0,0,1/2)' - ] - }, - 'b': { - 'multiplicity': 1, - 'site_symmetry': '-42m', - 'coords_xyz': [ - '(1/2,1/2,1/2)' - ] - }, - 'a': { - 'multiplicity': 1, - 'site_symmetry': '-42m', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'i': {'multiplicity': 4, 'site_symmetry': '.2.', 'coords_xyz': ['(x,0,0)', '(-x,0,0)', '(0,-x,0)', '(0,x,0)']}, + 'h': {'multiplicity': 2, 'site_symmetry': '2.m', 'coords_xyz': ['(1/2,1/2,z)', '(1/2,1/2,-z)']}, + 'g': {'multiplicity': 2, 'site_symmetry': '2.m', 'coords_xyz': ['(0,0,z)', '(0,0,-z)']}, + 'f': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(1/2,0,1/2)', '(0,1/2,1/2)']}, + 'e': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(1/2,0,0)', '(0,1/2,0)']}, + 'd': {'multiplicity': 1, 'site_symmetry': '-42m', 'coords_xyz': ['(1/2,1/2,0)']}, + 'c': {'multiplicity': 1, 'site_symmetry': '-42m', 'coords_xyz': ['(0,0,1/2)']}, + 'b': {'multiplicity': 1, 'site_symmetry': '-42m', 'coords_xyz': ['(1/2,1/2,1/2)']}, + 'a': {'multiplicity': 1, 'site_symmetry': '-42m', 'coords_xyz': ['(0,0,0)']}, + }, }, (112, '1'): { 'IT_number': 112, @@ -36333,128 +15376,51 @@ '(-x,y,-z+1/2)', '(x,-y,-z+1/2)', '(-y,-x,z+1/2)', - '(y,x,z+1/2)' - ] + '(y,x,z+1/2)', + ], }, 'm': { 'multiplicity': 4, 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,1/2,z)', - '(1/2,0,-z)', - '(0,1/2,-z+1/2)', - '(1/2,0,z+1/2)' - ] + 'coords_xyz': ['(0,1/2,z)', '(1/2,0,-z)', '(0,1/2,-z+1/2)', '(1/2,0,z+1/2)'], }, 'l': { 'multiplicity': 4, 'site_symmetry': '2..', - 'coords_xyz': [ - '(1/2,1/2,z)', - '(1/2,1/2,-z)', - '(1/2,1/2,-z+1/2)', - '(1/2,1/2,z+1/2)' - ] + 'coords_xyz': ['(1/2,1/2,z)', '(1/2,1/2,-z)', '(1/2,1/2,-z+1/2)', '(1/2,1/2,z+1/2)'], }, 'k': { 'multiplicity': 4, 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)', - '(0,0,-z+1/2)', - '(0,0,z+1/2)' - ] + 'coords_xyz': ['(0,0,z)', '(0,0,-z)', '(0,0,-z+1/2)', '(0,0,z+1/2)'], }, 'j': { 'multiplicity': 4, 'site_symmetry': '.2.', - 'coords_xyz': [ - '(0,y,1/4)', - '(0,-y,1/4)', - '(y,0,3/4)', - '(-y,0,3/4)' - ] + 'coords_xyz': ['(0,y,1/4)', '(0,-y,1/4)', '(y,0,3/4)', '(-y,0,3/4)'], }, 'i': { 'multiplicity': 4, 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,1/2,1/4)', - '(-x,1/2,1/4)', - '(1/2,-x,3/4)', - '(1/2,x,3/4)' - ] + 'coords_xyz': ['(x,1/2,1/4)', '(-x,1/2,1/4)', '(1/2,-x,3/4)', '(1/2,x,3/4)'], }, 'h': { 'multiplicity': 4, 'site_symmetry': '.2.', - 'coords_xyz': [ - '(1/2,y,1/4)', - '(1/2,-y,1/4)', - '(y,1/2,3/4)', - '(-y,1/2,3/4)' - ] + 'coords_xyz': ['(1/2,y,1/4)', '(1/2,-y,1/4)', '(y,1/2,3/4)', '(-y,1/2,3/4)'], }, 'g': { 'multiplicity': 4, 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,0,1/4)', - '(-x,0,1/4)', - '(0,-x,3/4)', - '(0,x,3/4)' - ] - }, - 'f': { - 'multiplicity': 2, - 'site_symmetry': '-4..', - 'coords_xyz': [ - '(1/2,1/2,0)', - '(1/2,1/2,1/2)' - ] - }, - 'e': { - 'multiplicity': 2, - 'site_symmetry': '-4..', - 'coords_xyz': [ - '(0,0,0)', - '(0,0,1/2)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,1/2,1/4)', - '(1/2,0,3/4)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/2,1/2,1/4)', - '(1/2,1/2,3/4)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/2,0,1/4)', - '(0,1/2,3/4)' - ] + 'coords_xyz': ['(x,0,1/4)', '(-x,0,1/4)', '(0,-x,3/4)', '(0,x,3/4)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,1/4)', - '(0,0,3/4)' - ] - } - } + 'f': {'multiplicity': 2, 'site_symmetry': '-4..', 'coords_xyz': ['(1/2,1/2,0)', '(1/2,1/2,1/2)']}, + 'e': {'multiplicity': 2, 'site_symmetry': '-4..', 'coords_xyz': ['(0,0,0)', '(0,0,1/2)']}, + 'd': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(0,1/2,1/4)', '(1/2,0,3/4)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(1/2,1/2,1/4)', '(1/2,1/2,3/4)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(1/2,0,1/4)', '(0,1/2,3/4)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '222', 'coords_xyz': ['(0,0,1/4)', '(0,0,3/4)']}, + }, }, (113, '1'): { 'IT_number': 113, @@ -36474,54 +15440,23 @@ '(-x+1/2,y+1/2,-z)', '(x+1/2,-y+1/2,-z)', '(-y+1/2,-x+1/2,z)', - '(y+1/2,x+1/2,z)' - ] + '(y+1/2,x+1/2,z)', + ], }, 'e': { 'multiplicity': 4, 'site_symmetry': '..m', - 'coords_xyz': [ - '(x,x+1/2,z)', - '(-x,-x+1/2,z)', - '(x+1/2,-x,-z)', - '(-x+1/2,x,-z)' - ] + 'coords_xyz': ['(x,x+1/2,z)', '(-x,-x+1/2,z)', '(x+1/2,-x,-z)', '(-x+1/2,x,-z)'], }, 'd': { 'multiplicity': 4, 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)', - '(1/2,1/2,-z)', - '(1/2,1/2,z)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '2.m', - 'coords_xyz': [ - '(0,1/2,z)', - '(1/2,0,-z)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '-4..', - 'coords_xyz': [ - '(0,0,1/2)', - '(1/2,1/2,1/2)' - ] + 'coords_xyz': ['(0,0,z)', '(0,0,-z)', '(1/2,1/2,-z)', '(1/2,1/2,z)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '-4..', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,1/2,0)' - ] - } - } + 'c': {'multiplicity': 2, 'site_symmetry': '2.m', 'coords_xyz': ['(0,1/2,z)', '(1/2,0,-z)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '-4..', 'coords_xyz': ['(0,0,1/2)', '(1/2,1/2,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '-4..', 'coords_xyz': ['(0,0,0)', '(1/2,1/2,0)']}, + }, }, (114, '1'): { 'IT_number': 114, @@ -36541,46 +15476,22 @@ '(-x+1/2,y+1/2,-z+1/2)', '(x+1/2,-y+1/2,-z+1/2)', '(-y+1/2,-x+1/2,z+1/2)', - '(y+1/2,x+1/2,z+1/2)' - ] + '(y+1/2,x+1/2,z+1/2)', + ], }, 'd': { 'multiplicity': 4, 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,1/2,z)', - '(1/2,0,-z)', - '(1/2,0,-z+1/2)', - '(0,1/2,z+1/2)' - ] + 'coords_xyz': ['(0,1/2,z)', '(1/2,0,-z)', '(1/2,0,-z+1/2)', '(0,1/2,z+1/2)'], }, 'c': { 'multiplicity': 4, 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)', - '(1/2,1/2,-z+1/2)', - '(1/2,1/2,z+1/2)' - ] + 'coords_xyz': ['(0,0,z)', '(0,0,-z)', '(1/2,1/2,-z+1/2)', '(1/2,1/2,z+1/2)'], }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '-4..', - 'coords_xyz': [ - '(0,0,1/2)', - '(1/2,1/2,0)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '-4..', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,1/2,1/2)' - ] - } - } + 'b': {'multiplicity': 2, 'site_symmetry': '-4..', 'coords_xyz': ['(0,0,1/2)', '(1/2,1/2,0)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '-4..', 'coords_xyz': ['(0,0,0)', '(1/2,1/2,1/2)']}, + }, }, (115, '1'): { 'IT_number': 115, @@ -36600,102 +15511,29 @@ '(x,-y,z)', '(-x,y,z)', '(y,x,-z)', - '(-y,-x,-z)' - ] + '(-y,-x,-z)', + ], }, 'k': { 'multiplicity': 4, 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,1/2,z)', - '(-x,1/2,z)', - '(1/2,-x,-z)', - '(1/2,x,-z)' - ] - }, - 'j': { - 'multiplicity': 4, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,0,z)', - '(-x,0,z)', - '(0,-x,-z)', - '(0,x,-z)' - ] + 'coords_xyz': ['(x,1/2,z)', '(-x,1/2,z)', '(1/2,-x,-z)', '(1/2,x,-z)'], }, + 'j': {'multiplicity': 4, 'site_symmetry': '.m.', 'coords_xyz': ['(x,0,z)', '(-x,0,z)', '(0,-x,-z)', '(0,x,-z)']}, 'i': { 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,x,1/2)', - '(-x,-x,1/2)', - '(x,-x,1/2)', - '(-x,x,1/2)' - ] - }, - 'h': { - 'multiplicity': 4, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,x,0)', - '(-x,-x,0)', - '(x,-x,0)', - '(-x,x,0)' - ] - }, - 'g': { - 'multiplicity': 2, - 'site_symmetry': '2mm', - 'coords_xyz': [ - '(0,1/2,z)', - '(1/2,0,-z)' - ] - }, - 'f': { - 'multiplicity': 2, - 'site_symmetry': '2mm', - 'coords_xyz': [ - '(1/2,1/2,z)', - '(1/2,1/2,-z)' - ] - }, - 'e': { - 'multiplicity': 2, - 'site_symmetry': '2mm', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)' - ] - }, - 'd': { - 'multiplicity': 1, - 'site_symmetry': '-4m2', - 'coords_xyz': [ - '(0,0,1/2)' - ] - }, - 'c': { - 'multiplicity': 1, - 'site_symmetry': '-4m2', - 'coords_xyz': [ - '(1/2,1/2,1/2)' - ] - }, - 'b': { - 'multiplicity': 1, - 'site_symmetry': '-4m2', - 'coords_xyz': [ - '(1/2,1/2,0)' - ] - }, - 'a': { - 'multiplicity': 1, - 'site_symmetry': '-4m2', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'site_symmetry': '..2', + 'coords_xyz': ['(x,x,1/2)', '(-x,-x,1/2)', '(x,-x,1/2)', '(-x,x,1/2)'], + }, + 'h': {'multiplicity': 4, 'site_symmetry': '..2', 'coords_xyz': ['(x,x,0)', '(-x,-x,0)', '(x,-x,0)', '(-x,x,0)']}, + 'g': {'multiplicity': 2, 'site_symmetry': '2mm', 'coords_xyz': ['(0,1/2,z)', '(1/2,0,-z)']}, + 'f': {'multiplicity': 2, 'site_symmetry': '2mm', 'coords_xyz': ['(1/2,1/2,z)', '(1/2,1/2,-z)']}, + 'e': {'multiplicity': 2, 'site_symmetry': '2mm', 'coords_xyz': ['(0,0,z)', '(0,0,-z)']}, + 'd': {'multiplicity': 1, 'site_symmetry': '-4m2', 'coords_xyz': ['(0,0,1/2)']}, + 'c': {'multiplicity': 1, 'site_symmetry': '-4m2', 'coords_xyz': ['(1/2,1/2,1/2)']}, + 'b': {'multiplicity': 1, 'site_symmetry': '-4m2', 'coords_xyz': ['(1/2,1/2,0)']}, + 'a': {'multiplicity': 1, 'site_symmetry': '-4m2', 'coords_xyz': ['(0,0,0)']}, + }, }, (116, '1'): { 'IT_number': 116, @@ -36715,92 +15553,39 @@ '(x,-y,z+1/2)', '(-x,y,z+1/2)', '(y,x,-z+1/2)', - '(-y,-x,-z+1/2)' - ] + '(-y,-x,-z+1/2)', + ], }, 'i': { 'multiplicity': 4, 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,1/2,z)', - '(1/2,0,-z)', - '(0,1/2,z+1/2)', - '(1/2,0,-z+1/2)' - ] + 'coords_xyz': ['(0,1/2,z)', '(1/2,0,-z)', '(0,1/2,z+1/2)', '(1/2,0,-z+1/2)'], }, 'h': { 'multiplicity': 4, 'site_symmetry': '2..', - 'coords_xyz': [ - '(1/2,1/2,z)', - '(1/2,1/2,-z)', - '(1/2,1/2,z+1/2)', - '(1/2,1/2,-z+1/2)' - ] + 'coords_xyz': ['(1/2,1/2,z)', '(1/2,1/2,-z)', '(1/2,1/2,z+1/2)', '(1/2,1/2,-z+1/2)'], }, 'g': { 'multiplicity': 4, 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)', - '(0,0,z+1/2)', - '(0,0,-z+1/2)' - ] + 'coords_xyz': ['(0,0,z)', '(0,0,-z)', '(0,0,z+1/2)', '(0,0,-z+1/2)'], }, 'f': { 'multiplicity': 4, 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,x,3/4)', - '(-x,-x,3/4)', - '(x,-x,1/4)', - '(-x,x,1/4)' - ] + 'coords_xyz': ['(x,x,3/4)', '(-x,-x,3/4)', '(x,-x,1/4)', '(-x,x,1/4)'], }, 'e': { 'multiplicity': 4, 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,x,1/4)', - '(-x,-x,1/4)', - '(x,-x,3/4)', - '(-x,x,3/4)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '-4..', - 'coords_xyz': [ - '(1/2,1/2,0)', - '(1/2,1/2,1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '-4..', - 'coords_xyz': [ - '(0,0,0)', - '(0,0,1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '2.2', - 'coords_xyz': [ - '(1/2,1/2,1/4)', - '(1/2,1/2,3/4)' - ] + 'coords_xyz': ['(x,x,1/4)', '(-x,-x,1/4)', '(x,-x,3/4)', '(-x,x,3/4)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '2.2', - 'coords_xyz': [ - '(0,0,1/4)', - '(0,0,3/4)' - ] - } - } + 'd': {'multiplicity': 2, 'site_symmetry': '-4..', 'coords_xyz': ['(1/2,1/2,0)', '(1/2,1/2,1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '-4..', 'coords_xyz': ['(0,0,0)', '(0,0,1/2)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '2.2', 'coords_xyz': ['(1/2,1/2,1/4)', '(1/2,1/2,3/4)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '2.2', 'coords_xyz': ['(0,0,1/4)', '(0,0,3/4)']}, + }, }, (117, '1'): { 'IT_number': 117, @@ -36820,82 +15605,34 @@ '(x+1/2,-y+1/2,z)', '(-x+1/2,y+1/2,z)', '(y+1/2,x+1/2,-z)', - '(-y+1/2,-x+1/2,-z)' - ] + '(-y+1/2,-x+1/2,-z)', + ], }, 'h': { 'multiplicity': 4, 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,x+1/2,1/2)', - '(-x,-x+1/2,1/2)', - '(x+1/2,-x,1/2)', - '(-x+1/2,x,1/2)' - ] + 'coords_xyz': ['(x,x+1/2,1/2)', '(-x,-x+1/2,1/2)', '(x+1/2,-x,1/2)', '(-x+1/2,x,1/2)'], }, 'g': { 'multiplicity': 4, 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,x+1/2,0)', - '(-x,-x+1/2,0)', - '(x+1/2,-x,0)', - '(-x+1/2,x,0)' - ] + 'coords_xyz': ['(x,x+1/2,0)', '(-x,-x+1/2,0)', '(x+1/2,-x,0)', '(-x+1/2,x,0)'], }, 'f': { 'multiplicity': 4, 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,1/2,z)', - '(1/2,0,-z)', - '(1/2,0,z)', - '(0,1/2,-z)' - ] + 'coords_xyz': ['(0,1/2,z)', '(1/2,0,-z)', '(1/2,0,z)', '(0,1/2,-z)'], }, 'e': { 'multiplicity': 4, 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)', - '(1/2,1/2,z)', - '(1/2,1/2,-z)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '2.2', - 'coords_xyz': [ - '(0,1/2,1/2)', - '(1/2,0,1/2)' - ] + 'coords_xyz': ['(0,0,z)', '(0,0,-z)', '(1/2,1/2,z)', '(1/2,1/2,-z)'], }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '2.2', - 'coords_xyz': [ - '(0,1/2,0)', - '(1/2,0,0)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '-4..', - 'coords_xyz': [ - '(0,0,1/2)', - '(1/2,1/2,1/2)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '-4..', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,1/2,0)' - ] - } - } + 'd': {'multiplicity': 2, 'site_symmetry': '2.2', 'coords_xyz': ['(0,1/2,1/2)', '(1/2,0,1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '2.2', 'coords_xyz': ['(0,1/2,0)', '(1/2,0,0)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '-4..', 'coords_xyz': ['(0,0,1/2)', '(1/2,1/2,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '-4..', 'coords_xyz': ['(0,0,0)', '(1/2,1/2,0)']}, + }, }, (118, '1'): { 'IT_number': 118, @@ -36915,82 +15652,34 @@ '(x+1/2,-y+1/2,z+1/2)', '(-x+1/2,y+1/2,z+1/2)', '(y+1/2,x+1/2,-z+1/2)', - '(-y+1/2,-x+1/2,-z+1/2)' - ] + '(-y+1/2,-x+1/2,-z+1/2)', + ], }, 'h': { 'multiplicity': 4, 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,1/2,z)', - '(1/2,0,-z)', - '(1/2,0,z+1/2)', - '(0,1/2,-z+1/2)' - ] + 'coords_xyz': ['(0,1/2,z)', '(1/2,0,-z)', '(1/2,0,z+1/2)', '(0,1/2,-z+1/2)'], }, 'g': { 'multiplicity': 4, 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,x+1/2,1/4)', - '(-x,-x+1/2,1/4)', - '(x+1/2,-x,3/4)', - '(-x+1/2,x,3/4)' - ] + 'coords_xyz': ['(x,x+1/2,1/4)', '(-x,-x+1/2,1/4)', '(x+1/2,-x,3/4)', '(-x+1/2,x,3/4)'], }, 'f': { 'multiplicity': 4, 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,-x+1/2,1/4)', - '(-x,x+1/2,1/4)', - '(-x+1/2,-x,3/4)', - '(x+1/2,x,3/4)' - ] + 'coords_xyz': ['(x,-x+1/2,1/4)', '(-x,x+1/2,1/4)', '(-x+1/2,-x,3/4)', '(x+1/2,x,3/4)'], }, 'e': { 'multiplicity': 4, 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)', - '(1/2,1/2,z+1/2)', - '(1/2,1/2,-z+1/2)' - ] + 'coords_xyz': ['(0,0,z)', '(0,0,-z)', '(1/2,1/2,z+1/2)', '(1/2,1/2,-z+1/2)'], }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '2.2', - 'coords_xyz': [ - '(0,1/2,3/4)', - '(1/2,0,1/4)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '2.2', - 'coords_xyz': [ - '(0,1/2,1/4)', - '(1/2,0,3/4)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '-4..', - 'coords_xyz': [ - '(0,0,1/2)', - '(1/2,1/2,0)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '-4..', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,1/2,1/2)' - ] - } - } + 'd': {'multiplicity': 2, 'site_symmetry': '2.2', 'coords_xyz': ['(0,1/2,3/4)', '(1/2,0,1/4)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '2.2', 'coords_xyz': ['(0,1/2,1/4)', '(1/2,0,3/4)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '-4..', 'coords_xyz': ['(0,0,1/2)', '(1/2,1/2,0)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '-4..', 'coords_xyz': ['(0,0,0)', '(1/2,1/2,1/2)']}, + }, }, (119, '1'): { 'IT_number': 119, @@ -37010,84 +15699,23 @@ '(x,-y,z)', '(-x,y,z)', '(y,x,-z)', - '(-y,-x,-z)' - ] - }, - 'i': { - 'multiplicity': 8, - 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,0,z)', - '(-x,0,z)', - '(0,-x,-z)', - '(0,x,-z)' - ] + '(-y,-x,-z)', + ], }, + 'i': {'multiplicity': 8, 'site_symmetry': '.m.', 'coords_xyz': ['(x,0,z)', '(-x,0,z)', '(0,-x,-z)', '(0,x,-z)']}, 'h': { 'multiplicity': 8, 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,x+1/2,1/4)', - '(-x,-x+1/2,1/4)', - '(x+1/2,-x,3/4)', - '(-x+1/2,x,3/4)' - ] - }, - 'g': { - 'multiplicity': 8, - 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,x,0)', - '(-x,-x,0)', - '(x,-x,0)', - '(-x,x,0)' - ] - }, - 'f': { - 'multiplicity': 4, - 'site_symmetry': '2mm', - 'coords_xyz': [ - '(0,1/2,z)', - '(1/2,0,-z)' - ] - }, - 'e': { - 'multiplicity': 4, - 'site_symmetry': '2mm', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '-4m2', - 'coords_xyz': [ - '(0,1/2,3/4)' - ] + 'coords_xyz': ['(x,x+1/2,1/4)', '(-x,-x+1/2,1/4)', '(x+1/2,-x,3/4)', '(-x+1/2,x,3/4)'], }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '-4m2', - 'coords_xyz': [ - '(0,1/2,1/4)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '-4m2', - 'coords_xyz': [ - '(0,0,1/2)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '-4m2', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'g': {'multiplicity': 8, 'site_symmetry': '..2', 'coords_xyz': ['(x,x,0)', '(-x,-x,0)', '(x,-x,0)', '(-x,x,0)']}, + 'f': {'multiplicity': 4, 'site_symmetry': '2mm', 'coords_xyz': ['(0,1/2,z)', '(1/2,0,-z)']}, + 'e': {'multiplicity': 4, 'site_symmetry': '2mm', 'coords_xyz': ['(0,0,z)', '(0,0,-z)']}, + 'd': {'multiplicity': 2, 'site_symmetry': '-4m2', 'coords_xyz': ['(0,1/2,3/4)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '-4m2', 'coords_xyz': ['(0,1/2,1/4)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '-4m2', 'coords_xyz': ['(0,0,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '-4m2', 'coords_xyz': ['(0,0,0)']}, + }, }, (120, '1'): { 'IT_number': 120, @@ -37107,82 +15735,34 @@ '(x,-y,z+1/2)', '(-x,y,z+1/2)', '(y,x,-z+1/2)', - '(-y,-x,-z+1/2)' - ] + '(-y,-x,-z+1/2)', + ], }, 'h': { 'multiplicity': 8, 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,x+1/2,0)', - '(-x,-x+1/2,0)', - '(x+1/2,-x,0)', - '(-x+1/2,x,0)' - ] + 'coords_xyz': ['(x,x+1/2,0)', '(-x,-x+1/2,0)', '(x+1/2,-x,0)', '(-x+1/2,x,0)'], }, 'g': { 'multiplicity': 8, 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,1/2,z)', - '(1/2,0,-z)', - '(0,1/2,z+1/2)', - '(1/2,0,-z+1/2)' - ] + 'coords_xyz': ['(0,1/2,z)', '(1/2,0,-z)', '(0,1/2,z+1/2)', '(1/2,0,-z+1/2)'], }, 'f': { 'multiplicity': 8, 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)', - '(0,0,z+1/2)', - '(0,0,-z+1/2)' - ] + 'coords_xyz': ['(0,0,z)', '(0,0,-z)', '(0,0,z+1/2)', '(0,0,-z+1/2)'], }, 'e': { 'multiplicity': 8, 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,x,1/4)', - '(-x,-x,1/4)', - '(x,-x,3/4)', - '(-x,x,3/4)' - ] - }, - 'd': { - 'multiplicity': 4, - 'site_symmetry': '2.2', - 'coords_xyz': [ - '(0,1/2,0)', - '(1/2,0,0)' - ] - }, - 'c': { - 'multiplicity': 4, - 'site_symmetry': '-4..', - 'coords_xyz': [ - '(0,1/2,1/4)', - '(0,1/2,3/4)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '-4..', - 'coords_xyz': [ - '(0,0,0)', - '(0,0,1/2)' - ] + 'coords_xyz': ['(x,x,1/4)', '(-x,-x,1/4)', '(x,-x,3/4)', '(-x,x,3/4)'], }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '2.2', - 'coords_xyz': [ - '(0,0,1/4)', - '(0,0,3/4)' - ] - } - } + 'd': {'multiplicity': 4, 'site_symmetry': '2.2', 'coords_xyz': ['(0,1/2,0)', '(1/2,0,0)']}, + 'c': {'multiplicity': 4, 'site_symmetry': '-4..', 'coords_xyz': ['(0,1/2,1/4)', '(0,1/2,3/4)']}, + 'b': {'multiplicity': 4, 'site_symmetry': '-4..', 'coords_xyz': ['(0,0,0)', '(0,0,1/2)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '2.2', 'coords_xyz': ['(0,0,1/4)', '(0,0,3/4)']}, + }, }, (121, '1'): { 'IT_number': 121, @@ -37190,100 +15770,39 @@ 'IT_coordinate_system_code': '1', 'name_H-M_alt': 'I -4 2 m', 'crystal_system': 'tetragonal', - 'Wyckoff_positions': { - 'j': { - 'multiplicity': 16, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-x,-y,z)', - '(y,-x,-z)', - '(-y,x,-z)', - '(-x,y,-z)', - '(x,-y,-z)', - '(-y,-x,z)', - '(y,x,z)' - ] - }, - 'i': { - 'multiplicity': 8, - 'site_symmetry': '..m', - 'coords_xyz': [ - '(x,x,z)', - '(-x,-x,z)', - '(x,-x,-z)', - '(-x,x,-z)' - ] - }, - 'h': { - 'multiplicity': 8, - 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,1/2,z)', - '(1/2,0,-z)', - '(0,1/2,-z)', - '(1/2,0,z)' - ] - }, - 'g': { - 'multiplicity': 8, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,0,1/2)', - '(-x,0,1/2)', - '(0,-x,1/2)', - '(0,x,1/2)' - ] - }, - 'f': { - 'multiplicity': 8, - 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)', - '(0,-x,0)', - '(0,x,0)' - ] - }, - 'e': { - 'multiplicity': 4, - 'site_symmetry': '2.m', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)' - ] - }, - 'd': { - 'multiplicity': 4, - 'site_symmetry': '-4..', + 'Wyckoff_positions': { + 'j': { + 'multiplicity': 16, + 'site_symmetry': '1', 'coords_xyz': [ - '(0,1/2,1/4)', - '(0,1/2,3/4)' - ] + '(x,y,z)', + '(-x,-y,z)', + '(y,-x,-z)', + '(-y,x,-z)', + '(-x,y,-z)', + '(x,-y,-z)', + '(-y,-x,z)', + '(y,x,z)', + ], }, - 'c': { - 'multiplicity': 4, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,1/2,0)', - '(1/2,0,0)' - ] + 'i': {'multiplicity': 8, 'site_symmetry': '..m', 'coords_xyz': ['(x,x,z)', '(-x,-x,z)', '(x,-x,-z)', '(-x,x,-z)']}, + 'h': { + 'multiplicity': 8, + 'site_symmetry': '2..', + 'coords_xyz': ['(0,1/2,z)', '(1/2,0,-z)', '(0,1/2,-z)', '(1/2,0,z)'], }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '-42m', - 'coords_xyz': [ - '(0,0,1/2)' - ] + 'g': { + 'multiplicity': 8, + 'site_symmetry': '.2.', + 'coords_xyz': ['(x,0,1/2)', '(-x,0,1/2)', '(0,-x,1/2)', '(0,x,1/2)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '-42m', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'f': {'multiplicity': 8, 'site_symmetry': '.2.', 'coords_xyz': ['(x,0,0)', '(-x,0,0)', '(0,-x,0)', '(0,x,0)']}, + 'e': {'multiplicity': 4, 'site_symmetry': '2.m', 'coords_xyz': ['(0,0,z)', '(0,0,-z)']}, + 'd': {'multiplicity': 4, 'site_symmetry': '-4..', 'coords_xyz': ['(0,1/2,1/4)', '(0,1/2,3/4)']}, + 'c': {'multiplicity': 4, 'site_symmetry': '222', 'coords_xyz': ['(0,1/2,0)', '(1/2,0,0)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '-42m', 'coords_xyz': ['(0,0,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '-42m', 'coords_xyz': ['(0,0,0)']}, + }, }, (122, '1'): { 'IT_number': 122, @@ -37303,46 +15822,22 @@ '(-x+1/2,y,-z+3/4)', '(x+1/2,-y,-z+3/4)', '(-y+1/2,-x,z+3/4)', - '(y+1/2,x,z+3/4)' - ] + '(y+1/2,x,z+3/4)', + ], }, 'd': { 'multiplicity': 8, 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,1/4,1/8)', - '(-x,3/4,1/8)', - '(1/4,-x,7/8)', - '(3/4,x,7/8)' - ] + 'coords_xyz': ['(x,1/4,1/8)', '(-x,3/4,1/8)', '(1/4,-x,7/8)', '(3/4,x,7/8)'], }, 'c': { 'multiplicity': 8, 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)', - '(1/2,0,-z+3/4)', - '(1/2,0,z+3/4)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '-4..', - 'coords_xyz': [ - '(0,0,1/2)', - '(1/2,0,1/4)' - ] + 'coords_xyz': ['(0,0,z)', '(0,0,-z)', '(1/2,0,-z+3/4)', '(1/2,0,z+3/4)'], }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '-4..', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,0,3/4)' - ] - } - } + 'b': {'multiplicity': 4, 'site_symmetry': '-4..', 'coords_xyz': ['(0,0,1/2)', '(1/2,0,1/4)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '-4..', 'coords_xyz': ['(0,0,0)', '(1/2,0,3/4)']}, + }, }, (123, '1'): { 'IT_number': 123, @@ -37370,8 +15865,8 @@ '(x,-y,z)', '(-x,y,z)', '(-y,-x,z)', - '(y,x,z)' - ] + '(y,x,z)', + ], }, 't': { 'multiplicity': 8, @@ -37384,22 +15879,13 @@ '(-x,1/2,-z)', '(x,1/2,-z)', '(1/2,x,-z)', - '(1/2,-x,-z)' - ] + '(1/2,-x,-z)', + ], }, 's': { 'multiplicity': 8, 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,0,z)', - '(-x,0,z)', - '(0,x,z)', - '(0,-x,z)', - '(-x,0,-z)', - '(x,0,-z)', - '(0,x,-z)', - '(0,-x,-z)' - ] + 'coords_xyz': ['(x,0,z)', '(-x,0,z)', '(0,x,z)', '(0,-x,z)', '(-x,0,-z)', '(x,0,-z)', '(0,x,-z)', '(0,-x,-z)'], }, 'r': { 'multiplicity': 8, @@ -37412,8 +15898,8 @@ '(-x,x,-z)', '(x,-x,-z)', '(x,x,-z)', - '(-x,-x,-z)' - ] + '(-x,-x,-z)', + ], }, 'q': { 'multiplicity': 8, @@ -37426,154 +15912,50 @@ '(-x,y,1/2)', '(x,-y,1/2)', '(y,x,1/2)', - '(-y,-x,1/2)' - ] + '(-y,-x,1/2)', + ], }, 'p': { 'multiplicity': 8, 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,y,0)', - '(-x,-y,0)', - '(-y,x,0)', - '(y,-x,0)', - '(-x,y,0)', - '(x,-y,0)', - '(y,x,0)', - '(-y,-x,0)' - ] + 'coords_xyz': ['(x,y,0)', '(-x,-y,0)', '(-y,x,0)', '(y,-x,0)', '(-x,y,0)', '(x,-y,0)', '(y,x,0)', '(-y,-x,0)'], }, 'o': { 'multiplicity': 4, 'site_symmetry': 'm2m', - 'coords_xyz': [ - '(x,1/2,1/2)', - '(-x,1/2,1/2)', - '(1/2,x,1/2)', - '(1/2,-x,1/2)' - ] + 'coords_xyz': ['(x,1/2,1/2)', '(-x,1/2,1/2)', '(1/2,x,1/2)', '(1/2,-x,1/2)'], }, 'n': { 'multiplicity': 4, 'site_symmetry': 'm2m', - 'coords_xyz': [ - '(x,1/2,0)', - '(-x,1/2,0)', - '(1/2,x,0)', - '(1/2,-x,0)' - ] + 'coords_xyz': ['(x,1/2,0)', '(-x,1/2,0)', '(1/2,x,0)', '(1/2,-x,0)'], }, 'm': { 'multiplicity': 4, 'site_symmetry': 'm2m', - 'coords_xyz': [ - '(x,0,1/2)', - '(-x,0,1/2)', - '(0,x,1/2)', - '(0,-x,1/2)' - ] - }, - 'l': { - 'multiplicity': 4, - 'site_symmetry': 'm2m', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)', - '(0,x,0)', - '(0,-x,0)' - ] + 'coords_xyz': ['(x,0,1/2)', '(-x,0,1/2)', '(0,x,1/2)', '(0,-x,1/2)'], }, + 'l': {'multiplicity': 4, 'site_symmetry': 'm2m', 'coords_xyz': ['(x,0,0)', '(-x,0,0)', '(0,x,0)', '(0,-x,0)']}, 'k': { 'multiplicity': 4, 'site_symmetry': 'm.2', - 'coords_xyz': [ - '(x,x,1/2)', - '(-x,-x,1/2)', - '(-x,x,1/2)', - '(x,-x,1/2)' - ] - }, - 'j': { - 'multiplicity': 4, - 'site_symmetry': 'm.2', - 'coords_xyz': [ - '(x,x,0)', - '(-x,-x,0)', - '(-x,x,0)', - '(x,-x,0)' - ] + 'coords_xyz': ['(x,x,1/2)', '(-x,-x,1/2)', '(-x,x,1/2)', '(x,-x,1/2)'], }, + 'j': {'multiplicity': 4, 'site_symmetry': 'm.2', 'coords_xyz': ['(x,x,0)', '(-x,-x,0)', '(-x,x,0)', '(x,-x,0)']}, 'i': { 'multiplicity': 4, 'site_symmetry': '2mm', - 'coords_xyz': [ - '(0,1/2,z)', - '(1/2,0,z)', - '(0,1/2,-z)', - '(1/2,0,-z)' - ] - }, - 'h': { - 'multiplicity': 2, - 'site_symmetry': '4mm', - 'coords_xyz': [ - '(1/2,1/2,z)', - '(1/2,1/2,-z)' - ] - }, - 'g': { - 'multiplicity': 2, - 'site_symmetry': '4mm', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)' - ] - }, - 'f': { - 'multiplicity': 2, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(0,1/2,0)', - '(1/2,0,0)' - ] - }, - 'e': { - 'multiplicity': 2, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(0,1/2,1/2)', - '(1/2,0,1/2)' - ] - }, - 'd': { - 'multiplicity': 1, - 'site_symmetry': '4/mmm', - 'coords_xyz': [ - '(1/2,1/2,1/2)' - ] - }, - 'c': { - 'multiplicity': 1, - 'site_symmetry': '4/mmm', - 'coords_xyz': [ - '(1/2,1/2,0)' - ] - }, - 'b': { - 'multiplicity': 1, - 'site_symmetry': '4/mmm', - 'coords_xyz': [ - '(0,0,1/2)' - ] - }, - 'a': { - 'multiplicity': 1, - 'site_symmetry': '4/mmm', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'coords_xyz': ['(0,1/2,z)', '(1/2,0,z)', '(0,1/2,-z)', '(1/2,0,-z)'], + }, + 'h': {'multiplicity': 2, 'site_symmetry': '4mm', 'coords_xyz': ['(1/2,1/2,z)', '(1/2,1/2,-z)']}, + 'g': {'multiplicity': 2, 'site_symmetry': '4mm', 'coords_xyz': ['(0,0,z)', '(0,0,-z)']}, + 'f': {'multiplicity': 2, 'site_symmetry': 'mmm', 'coords_xyz': ['(0,1/2,0)', '(1/2,0,0)']}, + 'e': {'multiplicity': 2, 'site_symmetry': 'mmm', 'coords_xyz': ['(0,1/2,1/2)', '(1/2,0,1/2)']}, + 'd': {'multiplicity': 1, 'site_symmetry': '4/mmm', 'coords_xyz': ['(1/2,1/2,1/2)']}, + 'c': {'multiplicity': 1, 'site_symmetry': '4/mmm', 'coords_xyz': ['(1/2,1/2,0)']}, + 'b': {'multiplicity': 1, 'site_symmetry': '4/mmm', 'coords_xyz': ['(0,0,1/2)']}, + 'a': {'multiplicity': 1, 'site_symmetry': '4/mmm', 'coords_xyz': ['(0,0,0)']}, + }, }, (124, '1'): { 'IT_number': 124, @@ -37601,8 +15983,8 @@ '(x,-y,z+1/2)', '(-x,y,z+1/2)', '(-y,-x,z+1/2)', - '(y,x,z+1/2)' - ] + '(y,x,z+1/2)', + ], }, 'm': { 'multiplicity': 8, @@ -37615,8 +15997,8 @@ '(-x,y,1/2)', '(x,-y,1/2)', '(y,x,1/2)', - '(-y,-x,1/2)' - ] + '(-y,-x,1/2)', + ], }, 'l': { 'multiplicity': 8, @@ -37629,8 +16011,8 @@ '(-x,1/2,3/4)', '(x,1/2,3/4)', '(1/2,-x,3/4)', - '(1/2,x,3/4)' - ] + '(1/2,x,3/4)', + ], }, 'k': { 'multiplicity': 8, @@ -37643,8 +16025,8 @@ '(-x,0,3/4)', '(x,0,3/4)', '(0,-x,3/4)', - '(0,x,3/4)' - ] + '(0,x,3/4)', + ], }, 'j': { 'multiplicity': 8, @@ -37657,8 +16039,8 @@ '(-x,-x,3/4)', '(x,x,3/4)', '(x,-x,3/4)', - '(-x,x,3/4)' - ] + '(-x,x,3/4)', + ], }, 'i': { 'multiplicity': 8, @@ -37671,82 +16053,34 @@ '(0,1/2,-z)', '(1/2,0,-z)', '(0,1/2,z+1/2)', - '(1/2,0,z+1/2)' - ] + '(1/2,0,z+1/2)', + ], }, 'h': { 'multiplicity': 4, 'site_symmetry': '4..', - 'coords_xyz': [ - '(1/2,1/2,z)', - '(1/2,1/2,-z+1/2)', - '(1/2,1/2,-z)', - '(1/2,1/2,z+1/2)' - ] + 'coords_xyz': ['(1/2,1/2,z)', '(1/2,1/2,-z+1/2)', '(1/2,1/2,-z)', '(1/2,1/2,z+1/2)'], }, 'g': { 'multiplicity': 4, 'site_symmetry': '4..', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z+1/2)', - '(0,0,-z)', - '(0,0,z+1/2)' - ] + 'coords_xyz': ['(0,0,z)', '(0,0,-z+1/2)', '(0,0,-z)', '(0,0,z+1/2)'], }, 'f': { 'multiplicity': 4, 'site_symmetry': '222', - 'coords_xyz': [ - '(0,1/2,1/4)', - '(1/2,0,1/4)', - '(0,1/2,3/4)', - '(1/2,0,3/4)' - ] + 'coords_xyz': ['(0,1/2,1/4)', '(1/2,0,1/4)', '(0,1/2,3/4)', '(1/2,0,3/4)'], }, 'e': { 'multiplicity': 4, 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(0,1/2,0)', - '(1/2,0,0)', - '(0,1/2,1/2)', - '(1/2,0,1/2)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '4/m..', - 'coords_xyz': [ - '(1/2,1/2,0)', - '(1/2,1/2,1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '422', - 'coords_xyz': [ - '(1/2,1/2,1/4)', - '(1/2,1/2,3/4)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '4/m..', - 'coords_xyz': [ - '(0,0,0)', - '(0,0,1/2)' - ] + 'coords_xyz': ['(0,1/2,0)', '(1/2,0,0)', '(0,1/2,1/2)', '(1/2,0,1/2)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '422', - 'coords_xyz': [ - '(0,0,1/4)', - '(0,0,3/4)' - ] - } - } + 'd': {'multiplicity': 2, 'site_symmetry': '4/m..', 'coords_xyz': ['(1/2,1/2,0)', '(1/2,1/2,1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '422', 'coords_xyz': ['(1/2,1/2,1/4)', '(1/2,1/2,3/4)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '4/m..', 'coords_xyz': ['(0,0,0)', '(0,0,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '422', 'coords_xyz': ['(0,0,1/4)', '(0,0,3/4)']}, + }, }, (125, '1'): { 'IT_number': 125, @@ -37774,8 +16108,8 @@ '(x+1/2,-y+1/2,z)', '(-x+1/2,y+1/2,z)', '(-y+1/2,-x+1/2,z)', - '(y+1/2,x+1/2,z)' - ] + '(y+1/2,x+1/2,z)', + ], }, 'm': { 'multiplicity': 8, @@ -37788,8 +16122,8 @@ '(-x,x+1/2,-z)', '(x,-x+1/2,-z)', '(x+1/2,x,-z)', - '(-x+1/2,-x,-z)' - ] + '(-x+1/2,-x,-z)', + ], }, 'l': { 'multiplicity': 8, @@ -37802,8 +16136,8 @@ '(-x+1/2,1/2,1/2)', '(x+1/2,1/2,1/2)', '(1/2,-x+1/2,1/2)', - '(1/2,x+1/2,1/2)' - ] + '(1/2,x+1/2,1/2)', + ], }, 'k': { 'multiplicity': 8, @@ -37816,8 +16150,8 @@ '(-x+1/2,1/2,0)', '(x+1/2,1/2,0)', '(1/2,-x+1/2,0)', - '(1/2,x+1/2,0)' - ] + '(1/2,x+1/2,0)', + ], }, 'j': { 'multiplicity': 8, @@ -37830,8 +16164,8 @@ '(-x+1/2,-x+1/2,1/2)', '(x+1/2,x+1/2,1/2)', '(x+1/2,-x+1/2,1/2)', - '(-x+1/2,x+1/2,1/2)' - ] + '(-x+1/2,x+1/2,1/2)', + ], }, 'i': { 'multiplicity': 8, @@ -37844,82 +16178,34 @@ '(-x+1/2,-x+1/2,0)', '(x+1/2,x+1/2,0)', '(x+1/2,-x+1/2,0)', - '(-x+1/2,x+1/2,0)' - ] + '(-x+1/2,x+1/2,0)', + ], }, 'h': { 'multiplicity': 4, 'site_symmetry': '2.m', - 'coords_xyz': [ - '(0,1/2,z)', - '(1/2,0,z)', - '(0,1/2,-z)', - '(1/2,0,-z)' - ] + 'coords_xyz': ['(0,1/2,z)', '(1/2,0,z)', '(0,1/2,-z)', '(1/2,0,-z)'], }, 'g': { 'multiplicity': 4, 'site_symmetry': '4..', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)', - '(1/2,1/2,-z)', - '(1/2,1/2,z)' - ] + 'coords_xyz': ['(0,0,z)', '(0,0,-z)', '(1/2,1/2,-z)', '(1/2,1/2,z)'], }, 'f': { 'multiplicity': 4, 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(1/4,1/4,1/2)', - '(3/4,3/4,1/2)', - '(3/4,1/4,1/2)', - '(1/4,3/4,1/2)' - ] + 'coords_xyz': ['(1/4,1/4,1/2)', '(3/4,3/4,1/2)', '(3/4,1/4,1/2)', '(1/4,3/4,1/2)'], }, 'e': { 'multiplicity': 4, 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(1/4,1/4,0)', - '(3/4,3/4,0)', - '(3/4,1/4,0)', - '(1/4,3/4,0)' - ] + 'coords_xyz': ['(1/4,1/4,0)', '(3/4,3/4,0)', '(3/4,1/4,0)', '(1/4,3/4,0)'], }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '-42m', - 'coords_xyz': [ - '(0,1/2,1/2)', - '(1/2,0,1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '-42m', - 'coords_xyz': [ - '(0,1/2,0)', - '(1/2,0,0)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '422', - 'coords_xyz': [ - '(0,0,1/2)', - '(1/2,1/2,1/2)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '422', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,1/2,0)' - ] - } - } + 'd': {'multiplicity': 2, 'site_symmetry': '-42m', 'coords_xyz': ['(0,1/2,1/2)', '(1/2,0,1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '-42m', 'coords_xyz': ['(0,1/2,0)', '(1/2,0,0)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '422', 'coords_xyz': ['(0,0,1/2)', '(1/2,1/2,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '422', 'coords_xyz': ['(0,0,0)', '(1/2,1/2,0)']}, + }, }, (125, '2'): { 'IT_number': 125, @@ -37947,8 +16233,8 @@ '(x+1/2,-y,z)', '(-x,y+1/2,z)', '(-y,-x,z)', - '(y+1/2,x+1/2,z)' - ] + '(y+1/2,x+1/2,z)', + ], }, 'm': { 'multiplicity': 8, @@ -37961,8 +16247,8 @@ '(-x+1/2,-x,-z)', '(x,x+1/2,-z)', '(-x,x,-z)', - '(x+1/2,-x+1/2,-z)' - ] + '(x+1/2,-x+1/2,-z)', + ], }, 'l': { 'multiplicity': 8, @@ -37975,8 +16261,8 @@ '(-x,3/4,1/2)', '(x+1/2,3/4,1/2)', '(3/4,-x,1/2)', - '(3/4,x+1/2,1/2)' - ] + '(3/4,x+1/2,1/2)', + ], }, 'k': { 'multiplicity': 8, @@ -37989,8 +16275,8 @@ '(-x,3/4,0)', '(x+1/2,3/4,0)', '(3/4,-x,0)', - '(3/4,x+1/2,0)' - ] + '(3/4,x+1/2,0)', + ], }, 'j': { 'multiplicity': 8, @@ -38003,8 +16289,8 @@ '(-x,-x,1/2)', '(x+1/2,x+1/2,1/2)', '(x+1/2,-x,1/2)', - '(-x,x+1/2,1/2)' - ] + '(-x,x+1/2,1/2)', + ], }, 'i': { 'multiplicity': 8, @@ -38017,82 +16303,34 @@ '(-x,-x,0)', '(x+1/2,x+1/2,0)', '(x+1/2,-x,0)', - '(-x,x+1/2,0)' - ] + '(-x,x+1/2,0)', + ], }, 'h': { 'multiplicity': 4, 'site_symmetry': '2.m', - 'coords_xyz': [ - '(3/4,1/4,z)', - '(1/4,3/4,z)', - '(3/4,1/4,-z)', - '(1/4,3/4,-z)' - ] + 'coords_xyz': ['(3/4,1/4,z)', '(1/4,3/4,z)', '(3/4,1/4,-z)', '(1/4,3/4,-z)'], }, 'g': { 'multiplicity': 4, 'site_symmetry': '4..', - 'coords_xyz': [ - '(1/4,1/4,z)', - '(1/4,1/4,-z)', - '(3/4,3/4,-z)', - '(3/4,3/4,z)' - ] + 'coords_xyz': ['(1/4,1/4,z)', '(1/4,1/4,-z)', '(3/4,3/4,-z)', '(3/4,3/4,z)'], }, 'f': { 'multiplicity': 4, 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(0,0,1/2)', - '(1/2,1/2,1/2)', - '(1/2,0,1/2)', - '(0,1/2,1/2)' - ] + 'coords_xyz': ['(0,0,1/2)', '(1/2,1/2,1/2)', '(1/2,0,1/2)', '(0,1/2,1/2)'], }, 'e': { 'multiplicity': 4, 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,1/2,0)', - '(1/2,0,0)', - '(0,1/2,0)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '-42m', - 'coords_xyz': [ - '(3/4,1/4,1/2)', - '(1/4,3/4,1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '-42m', - 'coords_xyz': [ - '(3/4,1/4,0)', - '(1/4,3/4,0)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '422', - 'coords_xyz': [ - '(1/4,1/4,1/2)', - '(3/4,3/4,1/2)' - ] + 'coords_xyz': ['(0,0,0)', '(1/2,1/2,0)', '(1/2,0,0)', '(0,1/2,0)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '422', - 'coords_xyz': [ - '(1/4,1/4,0)', - '(3/4,3/4,0)' - ] - } - } + 'd': {'multiplicity': 2, 'site_symmetry': '-42m', 'coords_xyz': ['(3/4,1/4,1/2)', '(1/4,3/4,1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '-42m', 'coords_xyz': ['(3/4,1/4,0)', '(1/4,3/4,0)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '422', 'coords_xyz': ['(1/4,1/4,1/2)', '(3/4,3/4,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '422', 'coords_xyz': ['(1/4,1/4,0)', '(3/4,3/4,0)']}, + }, }, (126, '1'): { 'IT_number': 126, @@ -38120,8 +16358,8 @@ '(x+1/2,-y+1/2,z+1/2)', '(-x+1/2,y+1/2,z+1/2)', '(-y+1/2,-x+1/2,z+1/2)', - '(y+1/2,x+1/2,z+1/2)' - ] + '(y+1/2,x+1/2,z+1/2)', + ], }, 'j': { 'multiplicity': 8, @@ -38134,8 +16372,8 @@ '(-x+1/2,1/2,0)', '(x+1/2,1/2,0)', '(1/2,-x+1/2,0)', - '(1/2,x+1/2,0)' - ] + '(1/2,x+1/2,0)', + ], }, 'i': { 'multiplicity': 8, @@ -38148,8 +16386,8 @@ '(-x+1/2,1/2,1/2)', '(x+1/2,1/2,1/2)', '(1/2,-x+1/2,1/2)', - '(1/2,x+1/2,1/2)' - ] + '(1/2,x+1/2,1/2)', + ], }, 'h': { 'multiplicity': 8, @@ -38162,8 +16400,8 @@ '(-x+1/2,-x+1/2,1/2)', '(x+1/2,x+1/2,1/2)', '(x+1/2,-x+1/2,1/2)', - '(-x+1/2,x+1/2,1/2)' - ] + '(-x+1/2,x+1/2,1/2)', + ], }, 'g': { 'multiplicity': 8, @@ -38176,8 +16414,8 @@ '(0,1/2,-z+1/2)', '(1/2,0,-z+1/2)', '(0,1/2,z+1/2)', - '(1/2,0,z+1/2)' - ] + '(1/2,0,z+1/2)', + ], }, 'f': { 'multiplicity': 8, @@ -38190,56 +16428,27 @@ '(3/4,1/4,3/4)', '(1/4,3/4,3/4)', '(1/4,1/4,3/4)', - '(3/4,3/4,3/4)' - ] + '(3/4,3/4,3/4)', + ], }, 'e': { 'multiplicity': 4, 'site_symmetry': '4..', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)', - '(1/2,1/2,-z+1/2)', - '(1/2,1/2,z+1/2)' - ] + 'coords_xyz': ['(0,0,z)', '(0,0,-z)', '(1/2,1/2,-z+1/2)', '(1/2,1/2,z+1/2)'], }, 'd': { 'multiplicity': 4, - 'site_symmetry': '-4..', - 'coords_xyz': [ - '(1/2,0,1/4)', - '(0,1/2,1/4)', - '(1/2,0,3/4)', - '(0,1/2,3/4)' - ] + 'site_symmetry': '-4..', + 'coords_xyz': ['(1/2,0,1/4)', '(0,1/2,1/4)', '(1/2,0,3/4)', '(0,1/2,3/4)'], }, 'c': { 'multiplicity': 4, 'site_symmetry': '222', - 'coords_xyz': [ - '(1/2,0,0)', - '(0,1/2,0)', - '(0,1/2,1/2)', - '(1/2,0,1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '422', - 'coords_xyz': [ - '(0,0,1/2)', - '(1/2,1/2,0)' - ] + 'coords_xyz': ['(1/2,0,0)', '(0,1/2,0)', '(0,1/2,1/2)', '(1/2,0,1/2)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '422', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,1/2,1/2)' - ] - } - } + 'b': {'multiplicity': 2, 'site_symmetry': '422', 'coords_xyz': ['(0,0,1/2)', '(1/2,1/2,0)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '422', 'coords_xyz': ['(0,0,0)', '(1/2,1/2,1/2)']}, + }, }, (126, '2'): { 'IT_number': 126, @@ -38267,8 +16476,8 @@ '(x+1/2,-y,z+1/2)', '(-x,y+1/2,z+1/2)', '(-y,-x,z+1/2)', - '(y+1/2,x+1/2,z+1/2)' - ] + '(y+1/2,x+1/2,z+1/2)', + ], }, 'j': { 'multiplicity': 8, @@ -38281,8 +16490,8 @@ '(-x,1/4,3/4)', '(x+1/2,1/4,3/4)', '(1/4,-x,3/4)', - '(1/4,x+1/2,3/4)' - ] + '(1/4,x+1/2,3/4)', + ], }, 'i': { 'multiplicity': 8, @@ -38295,8 +16504,8 @@ '(-x,3/4,3/4)', '(x+1/2,3/4,3/4)', '(3/4,-x,3/4)', - '(3/4,x+1/2,3/4)' - ] + '(3/4,x+1/2,3/4)', + ], }, 'h': { 'multiplicity': 8, @@ -38309,8 +16518,8 @@ '(-x,-x,3/4)', '(x+1/2,x+1/2,3/4)', '(x+1/2,-x,3/4)', - '(-x,x+1/2,3/4)' - ] + '(-x,x+1/2,3/4)', + ], }, 'g': { 'multiplicity': 8, @@ -38323,8 +16532,8 @@ '(3/4,1/4,-z)', '(1/4,3/4,-z)', '(3/4,1/4,z+1/2)', - '(1/4,3/4,z+1/2)' - ] + '(1/4,3/4,z+1/2)', + ], }, 'f': { 'multiplicity': 8, @@ -38337,56 +16546,27 @@ '(1/2,0,1/2)', '(0,1/2,1/2)', '(0,0,1/2)', - '(1/2,1/2,1/2)' - ] + '(1/2,1/2,1/2)', + ], }, 'e': { 'multiplicity': 4, 'site_symmetry': '4..', - 'coords_xyz': [ - '(1/4,1/4,z)', - '(1/4,1/4,-z+1/2)', - '(3/4,3/4,-z)', - '(3/4,3/4,z+1/2)' - ] + 'coords_xyz': ['(1/4,1/4,z)', '(1/4,1/4,-z+1/2)', '(3/4,3/4,-z)', '(3/4,3/4,z+1/2)'], }, 'd': { 'multiplicity': 4, 'site_symmetry': '-4..', - 'coords_xyz': [ - '(1/4,3/4,0)', - '(3/4,1/4,0)', - '(1/4,3/4,1/2)', - '(3/4,1/4,1/2)' - ] + 'coords_xyz': ['(1/4,3/4,0)', '(3/4,1/4,0)', '(1/4,3/4,1/2)', '(3/4,1/4,1/2)'], }, 'c': { 'multiplicity': 4, 'site_symmetry': '222', - 'coords_xyz': [ - '(1/4,3/4,3/4)', - '(3/4,1/4,3/4)', - '(3/4,1/4,1/4)', - '(1/4,3/4,1/4)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '422', - 'coords_xyz': [ - '(1/4,1/4,3/4)', - '(3/4,3/4,1/4)' - ] + 'coords_xyz': ['(1/4,3/4,3/4)', '(3/4,1/4,3/4)', '(3/4,1/4,1/4)', '(1/4,3/4,1/4)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '422', - 'coords_xyz': [ - '(1/4,1/4,1/4)', - '(3/4,3/4,3/4)' - ] - } - } + 'b': {'multiplicity': 2, 'site_symmetry': '422', 'coords_xyz': ['(1/4,1/4,3/4)', '(3/4,3/4,1/4)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '422', 'coords_xyz': ['(1/4,1/4,1/4)', '(3/4,3/4,3/4)']}, + }, }, (127, '1'): { 'IT_number': 127, @@ -38414,8 +16594,8 @@ '(x+1/2,-y+1/2,z)', '(-x+1/2,y+1/2,z)', '(-y+1/2,-x+1/2,z)', - '(y+1/2,x+1/2,z)' - ] + '(y+1/2,x+1/2,z)', + ], }, 'k': { 'multiplicity': 8, @@ -38428,8 +16608,8 @@ '(-x+1/2,x,-z)', '(x+1/2,-x,-z)', '(x,x+1/2,-z)', - '(-x,-x+1/2,-z)' - ] + '(-x,-x+1/2,-z)', + ], }, 'j': { 'multiplicity': 8, @@ -38442,8 +16622,8 @@ '(-x+1/2,y+1/2,1/2)', '(x+1/2,-y+1/2,1/2)', '(y+1/2,x+1/2,1/2)', - '(-y+1/2,-x+1/2,1/2)' - ] + '(-y+1/2,-x+1/2,1/2)', + ], }, 'i': { 'multiplicity': 8, @@ -38456,82 +16636,34 @@ '(-x+1/2,y+1/2,0)', '(x+1/2,-y+1/2,0)', '(y+1/2,x+1/2,0)', - '(-y+1/2,-x+1/2,0)' - ] + '(-y+1/2,-x+1/2,0)', + ], }, 'h': { 'multiplicity': 4, 'site_symmetry': 'm.2', - 'coords_xyz': [ - '(x,x+1/2,1/2)', - '(-x,-x+1/2,1/2)', - '(-x+1/2,x,1/2)', - '(x+1/2,-x,1/2)' - ] + 'coords_xyz': ['(x,x+1/2,1/2)', '(-x,-x+1/2,1/2)', '(-x+1/2,x,1/2)', '(x+1/2,-x,1/2)'], }, 'g': { 'multiplicity': 4, 'site_symmetry': 'm.2', - 'coords_xyz': [ - '(x,x+1/2,0)', - '(-x,-x+1/2,0)', - '(-x+1/2,x,0)', - '(x+1/2,-x,0)' - ] + 'coords_xyz': ['(x,x+1/2,0)', '(-x,-x+1/2,0)', '(-x+1/2,x,0)', '(x+1/2,-x,0)'], }, 'f': { 'multiplicity': 4, 'site_symmetry': '2.m', - 'coords_xyz': [ - '(0,1/2,z)', - '(1/2,0,z)', - '(1/2,0,-z)', - '(0,1/2,-z)' - ] + 'coords_xyz': ['(0,1/2,z)', '(1/2,0,z)', '(1/2,0,-z)', '(0,1/2,-z)'], }, 'e': { 'multiplicity': 4, 'site_symmetry': '4..', - 'coords_xyz': [ - '(0,0,z)', - '(1/2,1/2,-z)', - '(0,0,-z)', - '(1/2,1/2,z)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': 'm.m', - 'coords_xyz': [ - '(0,1/2,0)', - '(1/2,0,0)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': 'm.m', - 'coords_xyz': [ - '(0,1/2,1/2)', - '(1/2,0,1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '4/m..', - 'coords_xyz': [ - '(0,0,1/2)', - '(1/2,1/2,1/2)' - ] + 'coords_xyz': ['(0,0,z)', '(1/2,1/2,-z)', '(0,0,-z)', '(1/2,1/2,z)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '4/m..', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,1/2,0)' - ] - } - } + 'd': {'multiplicity': 2, 'site_symmetry': 'm.m', 'coords_xyz': ['(0,1/2,0)', '(1/2,0,0)']}, + 'c': {'multiplicity': 2, 'site_symmetry': 'm.m', 'coords_xyz': ['(0,1/2,1/2)', '(1/2,0,1/2)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '4/m..', 'coords_xyz': ['(0,0,1/2)', '(1/2,1/2,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '4/m..', 'coords_xyz': ['(0,0,0)', '(1/2,1/2,0)']}, + }, }, (128, '1'): { 'IT_number': 128, @@ -38559,8 +16691,8 @@ '(x+1/2,-y+1/2,z+1/2)', '(-x+1/2,y+1/2,z+1/2)', '(-y+1/2,-x+1/2,z+1/2)', - '(y+1/2,x+1/2,z+1/2)' - ] + '(y+1/2,x+1/2,z+1/2)', + ], }, 'h': { 'multiplicity': 8, @@ -38573,8 +16705,8 @@ '(-x+1/2,y+1/2,1/2)', '(x+1/2,-y+1/2,1/2)', '(y+1/2,x+1/2,1/2)', - '(-y+1/2,-x+1/2,1/2)' - ] + '(-y+1/2,-x+1/2,1/2)', + ], }, 'g': { 'multiplicity': 8, @@ -38587,8 +16719,8 @@ '(-x,-x+1/2,3/4)', '(x,x+1/2,3/4)', '(x+1/2,-x,3/4)', - '(-x+1/2,x,3/4)' - ] + '(-x+1/2,x,3/4)', + ], }, 'f': { 'multiplicity': 8, @@ -38601,56 +16733,27 @@ '(0,1/2,-z)', '(1/2,0,-z)', '(1/2,0,z+1/2)', - '(0,1/2,z+1/2)' - ] + '(0,1/2,z+1/2)', + ], }, 'e': { 'multiplicity': 4, 'site_symmetry': '4..', - 'coords_xyz': [ - '(0,0,z)', - '(1/2,1/2,-z+1/2)', - '(0,0,-z)', - '(1/2,1/2,z+1/2)' - ] + 'coords_xyz': ['(0,0,z)', '(1/2,1/2,-z+1/2)', '(0,0,-z)', '(1/2,1/2,z+1/2)'], }, 'd': { 'multiplicity': 4, 'site_symmetry': '2.2', - 'coords_xyz': [ - '(0,1/2,1/4)', - '(1/2,0,1/4)', - '(0,1/2,3/4)', - '(1/2,0,3/4)' - ] + 'coords_xyz': ['(0,1/2,1/4)', '(1/2,0,1/4)', '(0,1/2,3/4)', '(1/2,0,3/4)'], }, 'c': { 'multiplicity': 4, 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(0,1/2,0)', - '(1/2,0,0)', - '(1/2,0,1/2)', - '(0,1/2,1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '4/m..', - 'coords_xyz': [ - '(0,0,1/2)', - '(1/2,1/2,0)' - ] + 'coords_xyz': ['(0,1/2,0)', '(1/2,0,0)', '(1/2,0,1/2)', '(0,1/2,1/2)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '4/m..', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,1/2,1/2)' - ] - } - } + 'b': {'multiplicity': 2, 'site_symmetry': '4/m..', 'coords_xyz': ['(0,0,1/2)', '(1/2,1/2,0)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '4/m..', 'coords_xyz': ['(0,0,0)', '(1/2,1/2,1/2)']}, + }, }, (129, '1'): { 'IT_number': 129, @@ -38678,8 +16781,8 @@ '(x,-y,z)', '(-x,y,z)', '(-y+1/2,-x+1/2,z)', - '(y+1/2,x+1/2,z)' - ] + '(y+1/2,x+1/2,z)', + ], }, 'j': { 'multiplicity': 8, @@ -38692,8 +16795,8 @@ '(-x+1/2,x,-z)', '(x+1/2,-x,-z)', '(x+1/2,x,-z)', - '(-x+1/2,-x,-z)' - ] + '(-x+1/2,-x,-z)', + ], }, 'i': { 'multiplicity': 8, @@ -38706,8 +16809,8 @@ '(1/2,y+1/2,-z)', '(1/2,-y+1/2,-z)', '(y,0,-z)', - '(-y,0,-z)' - ] + '(-y,0,-z)', + ], }, 'h': { 'multiplicity': 8, @@ -38720,8 +16823,8 @@ '(-x+1/2,-x+1/2,1/2)', '(x+1/2,x+1/2,1/2)', '(x,-x,1/2)', - '(-x,x,1/2)' - ] + '(-x,x,1/2)', + ], }, 'g': { 'multiplicity': 8, @@ -38734,64 +16837,28 @@ '(-x+1/2,-x+1/2,0)', '(x+1/2,x+1/2,0)', '(x,-x,0)', - '(-x,x,0)' - ] + '(-x,x,0)', + ], }, 'f': { 'multiplicity': 4, 'site_symmetry': '2mm', - 'coords_xyz': [ - '(0,0,z)', - '(1/2,1/2,z)', - '(1/2,1/2,-z)', - '(0,0,-z)' - ] + 'coords_xyz': ['(0,0,z)', '(1/2,1/2,z)', '(1/2,1/2,-z)', '(0,0,-z)'], }, 'e': { 'multiplicity': 4, 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(1/4,1/4,1/2)', - '(3/4,3/4,1/2)', - '(1/4,3/4,1/2)', - '(3/4,1/4,1/2)' - ] + 'coords_xyz': ['(1/4,1/4,1/2)', '(3/4,3/4,1/2)', '(1/4,3/4,1/2)', '(3/4,1/4,1/2)'], }, 'd': { 'multiplicity': 4, 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(1/4,1/4,0)', - '(3/4,3/4,0)', - '(1/4,3/4,0)', - '(3/4,1/4,0)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '4mm', - 'coords_xyz': [ - '(0,1/2,z)', - '(1/2,0,-z)' - ] + 'coords_xyz': ['(1/4,1/4,0)', '(3/4,3/4,0)', '(1/4,3/4,0)', '(3/4,1/4,0)'], }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '-4m2', - 'coords_xyz': [ - '(0,0,1/2)', - '(1/2,1/2,1/2)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '-4m2', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,1/2,0)' - ] - } - } + 'c': {'multiplicity': 2, 'site_symmetry': '4mm', 'coords_xyz': ['(0,1/2,z)', '(1/2,0,-z)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '-4m2', 'coords_xyz': ['(0,0,1/2)', '(1/2,1/2,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '-4m2', 'coords_xyz': ['(0,0,0)', '(1/2,1/2,0)']}, + }, }, (129, '2'): { 'IT_number': 129, @@ -38819,8 +16886,8 @@ '(x,-y+1/2,z)', '(-x+1/2,y,z)', '(-y+1/2,-x+1/2,z)', - '(y,x,z)' - ] + '(y,x,z)', + ], }, 'j': { 'multiplicity': 8, @@ -38833,8 +16900,8 @@ '(-x,x+1/2,-z)', '(x+1/2,-x,-z)', '(x+1/2,x+1/2,-z)', - '(-x,-x,-z)' - ] + '(-x,-x,-z)', + ], }, 'i': { 'multiplicity': 8, @@ -38847,8 +16914,8 @@ '(3/4,y+1/2,-z)', '(3/4,-y,-z)', '(y+1/2,3/4,-z)', - '(-y,3/4,-z)' - ] + '(-y,3/4,-z)', + ], }, 'h': { 'multiplicity': 8, @@ -38861,8 +16928,8 @@ '(-x,x,1/2)', '(x+1/2,-x+1/2,1/2)', '(-x+1/2,-x,1/2)', - '(x,x+1/2,1/2)' - ] + '(x,x+1/2,1/2)', + ], }, 'g': { 'multiplicity': 8, @@ -38875,64 +16942,28 @@ '(-x,x,0)', '(x+1/2,-x+1/2,0)', '(-x+1/2,-x,0)', - '(x,x+1/2,0)' - ] + '(x,x+1/2,0)', + ], }, 'f': { 'multiplicity': 4, 'site_symmetry': '2mm', - 'coords_xyz': [ - '(3/4,1/4,z)', - '(1/4,3/4,z)', - '(1/4,3/4,-z)', - '(3/4,1/4,-z)' - ] + 'coords_xyz': ['(3/4,1/4,z)', '(1/4,3/4,z)', '(1/4,3/4,-z)', '(3/4,1/4,-z)'], }, 'e': { 'multiplicity': 4, 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(0,0,1/2)', - '(1/2,1/2,1/2)', - '(1/2,0,1/2)', - '(0,1/2,1/2)' - ] + 'coords_xyz': ['(0,0,1/2)', '(1/2,1/2,1/2)', '(1/2,0,1/2)', '(0,1/2,1/2)'], }, 'd': { 'multiplicity': 4, 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,1/2,0)', - '(1/2,0,0)', - '(0,1/2,0)' - ] + 'coords_xyz': ['(0,0,0)', '(1/2,1/2,0)', '(1/2,0,0)', '(0,1/2,0)'], }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '4mm', - 'coords_xyz': [ - '(1/4,1/4,z)', - '(3/4,3/4,-z)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '-4m2', - 'coords_xyz': [ - '(3/4,1/4,1/2)', - '(1/4,3/4,1/2)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '-4m2', - 'coords_xyz': [ - '(3/4,1/4,0)', - '(1/4,3/4,0)' - ] - } - } + 'c': {'multiplicity': 2, 'site_symmetry': '4mm', 'coords_xyz': ['(1/4,1/4,z)', '(3/4,3/4,-z)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '-4m2', 'coords_xyz': ['(3/4,1/4,1/2)', '(1/4,3/4,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '-4m2', 'coords_xyz': ['(3/4,1/4,0)', '(1/4,3/4,0)']}, + }, }, (130, '1'): { 'IT_number': 130, @@ -38960,8 +16991,8 @@ '(x,-y,z+1/2)', '(-x,y,z+1/2)', '(-y+1/2,-x+1/2,z+1/2)', - '(y+1/2,x+1/2,z+1/2)' - ] + '(y+1/2,x+1/2,z+1/2)', + ], }, 'f': { 'multiplicity': 8, @@ -38974,8 +17005,8 @@ '(-x+1/2,-x+1/2,3/4)', '(x+1/2,x+1/2,3/4)', '(x,-x,3/4)', - '(-x,x,3/4)' - ] + '(-x,x,3/4)', + ], }, 'e': { 'multiplicity': 8, @@ -38988,8 +17019,8 @@ '(1/2,1/2,-z)', '(0,0,-z)', '(0,0,z+1/2)', - '(1/2,1/2,z+1/2)' - ] + '(1/2,1/2,z+1/2)', + ], }, 'd': { 'multiplicity': 8, @@ -39002,40 +17033,25 @@ '(1/4,3/4,1/2)', '(3/4,1/4,1/2)', '(1/4,1/4,1/2)', - '(3/4,3/4,1/2)' - ] + '(3/4,3/4,1/2)', + ], }, 'c': { 'multiplicity': 4, 'site_symmetry': '4..', - 'coords_xyz': [ - '(0,1/2,z)', - '(1/2,0,-z+1/2)', - '(1/2,0,-z)', - '(0,1/2,z+1/2)' - ] + 'coords_xyz': ['(0,1/2,z)', '(1/2,0,-z+1/2)', '(1/2,0,-z)', '(0,1/2,z+1/2)'], }, 'b': { 'multiplicity': 4, 'site_symmetry': '-4..', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,1/2,0)', - '(1/2,1/2,1/2)', - '(0,0,1/2)' - ] + 'coords_xyz': ['(0,0,0)', '(1/2,1/2,0)', '(1/2,1/2,1/2)', '(0,0,1/2)'], }, 'a': { 'multiplicity': 4, 'site_symmetry': '2.2', - 'coords_xyz': [ - '(0,0,1/4)', - '(1/2,1/2,1/4)', - '(1/2,1/2,3/4)', - '(0,0,3/4)' - ] - } - } + 'coords_xyz': ['(0,0,1/4)', '(1/2,1/2,1/4)', '(1/2,1/2,3/4)', '(0,0,3/4)'], + }, + }, }, (130, '2'): { 'IT_number': 130, @@ -39063,8 +17079,8 @@ '(x,-y+1/2,z+1/2)', '(-x+1/2,y,z+1/2)', '(-y+1/2,-x+1/2,z+1/2)', - '(y,x,z+1/2)' - ] + '(y,x,z+1/2)', + ], }, 'f': { 'multiplicity': 8, @@ -39077,8 +17093,8 @@ '(-x,x,3/4)', '(x+1/2,-x+1/2,3/4)', '(-x+1/2,-x,3/4)', - '(x,x+1/2,3/4)' - ] + '(x,x+1/2,3/4)', + ], }, 'e': { 'multiplicity': 8, @@ -39091,8 +17107,8 @@ '(1/4,3/4,-z)', '(3/4,1/4,-z)', '(3/4,1/4,z+1/2)', - '(1/4,3/4,z+1/2)' - ] + '(1/4,3/4,z+1/2)', + ], }, 'd': { 'multiplicity': 8, @@ -39105,40 +17121,25 @@ '(0,1/2,1/2)', '(1/2,0,1/2)', '(1/2,1/2,1/2)', - '(0,0,1/2)' - ] + '(0,0,1/2)', + ], }, 'c': { 'multiplicity': 4, 'site_symmetry': '4..', - 'coords_xyz': [ - '(1/4,1/4,z)', - '(3/4,3/4,-z+1/2)', - '(3/4,3/4,-z)', - '(1/4,1/4,z+1/2)' - ] + 'coords_xyz': ['(1/4,1/4,z)', '(3/4,3/4,-z+1/2)', '(3/4,3/4,-z)', '(1/4,1/4,z+1/2)'], }, 'b': { 'multiplicity': 4, 'site_symmetry': '-4..', - 'coords_xyz': [ - '(3/4,1/4,0)', - '(1/4,3/4,0)', - '(1/4,3/4,1/2)', - '(3/4,1/4,1/2)' - ] + 'coords_xyz': ['(3/4,1/4,0)', '(1/4,3/4,0)', '(1/4,3/4,1/2)', '(3/4,1/4,1/2)'], }, 'a': { 'multiplicity': 4, 'site_symmetry': '2.2', - 'coords_xyz': [ - '(3/4,1/4,1/4)', - '(1/4,3/4,1/4)', - '(1/4,3/4,3/4)', - '(3/4,1/4,3/4)' - ] - } - } + 'coords_xyz': ['(3/4,1/4,1/4)', '(1/4,3/4,1/4)', '(1/4,3/4,3/4)', '(3/4,1/4,3/4)'], + }, + }, }, (131, '1'): { 'IT_number': 131, @@ -39166,8 +17167,8 @@ '(x,-y,z)', '(-x,y,z)', '(-y,-x,z+1/2)', - '(y,x,z+1/2)' - ] + '(y,x,z+1/2)', + ], }, 'q': { 'multiplicity': 8, @@ -39180,8 +17181,8 @@ '(-x,y,0)', '(x,-y,0)', '(y,x,1/2)', - '(-y,-x,1/2)' - ] + '(-y,-x,1/2)', + ], }, 'p': { 'multiplicity': 8, @@ -39194,8 +17195,8 @@ '(1/2,y,-z)', '(1/2,-y,-z)', '(y,1/2,-z+1/2)', - '(-y,1/2,-z+1/2)' - ] + '(-y,1/2,-z+1/2)', + ], }, 'o': { 'multiplicity': 8, @@ -39208,8 +17209,8 @@ '(0,y,-z)', '(0,-y,-z)', '(y,0,-z+1/2)', - '(-y,0,-z+1/2)' - ] + '(-y,0,-z+1/2)', + ], }, 'n': { 'multiplicity': 8, @@ -39222,128 +17223,43 @@ '(-x,-x,3/4)', '(x,x,3/4)', '(x,-x,1/4)', - '(-x,x,1/4)' - ] + '(-x,x,1/4)', + ], }, 'm': { 'multiplicity': 4, 'site_symmetry': 'm2m', - 'coords_xyz': [ - '(x,1/2,0)', - '(-x,1/2,0)', - '(1/2,x,1/2)', - '(1/2,-x,1/2)' - ] - }, - 'l': { - 'multiplicity': 4, - 'site_symmetry': 'm2m', - 'coords_xyz': [ - '(x,0,1/2)', - '(-x,0,1/2)', - '(0,x,0)', - '(0,-x,0)' - ] + 'coords_xyz': ['(x,1/2,0)', '(-x,1/2,0)', '(1/2,x,1/2)', '(1/2,-x,1/2)'], }, + 'l': {'multiplicity': 4, 'site_symmetry': 'm2m', 'coords_xyz': ['(x,0,1/2)', '(-x,0,1/2)', '(0,x,0)', '(0,-x,0)']}, 'k': { 'multiplicity': 4, 'site_symmetry': 'm2m', - 'coords_xyz': [ - '(x,1/2,1/2)', - '(-x,1/2,1/2)', - '(1/2,x,0)', - '(1/2,-x,0)' - ] - }, - 'j': { - 'multiplicity': 4, - 'site_symmetry': 'm2m', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)', - '(0,x,1/2)', - '(0,-x,1/2)' - ] + 'coords_xyz': ['(x,1/2,1/2)', '(-x,1/2,1/2)', '(1/2,x,0)', '(1/2,-x,0)'], }, + 'j': {'multiplicity': 4, 'site_symmetry': 'm2m', 'coords_xyz': ['(x,0,0)', '(-x,0,0)', '(0,x,1/2)', '(0,-x,1/2)']}, 'i': { 'multiplicity': 4, 'site_symmetry': '2mm', - 'coords_xyz': [ - '(0,1/2,z)', - '(1/2,0,z+1/2)', - '(0,1/2,-z)', - '(1/2,0,-z+1/2)' - ] + 'coords_xyz': ['(0,1/2,z)', '(1/2,0,z+1/2)', '(0,1/2,-z)', '(1/2,0,-z+1/2)'], }, 'h': { 'multiplicity': 4, 'site_symmetry': '2mm', - 'coords_xyz': [ - '(1/2,1/2,z)', - '(1/2,1/2,z+1/2)', - '(1/2,1/2,-z)', - '(1/2,1/2,-z+1/2)' - ] + 'coords_xyz': ['(1/2,1/2,z)', '(1/2,1/2,z+1/2)', '(1/2,1/2,-z)', '(1/2,1/2,-z+1/2)'], }, 'g': { 'multiplicity': 4, 'site_symmetry': '2mm', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,z+1/2)', - '(0,0,-z)', - '(0,0,-z+1/2)' - ] - }, - 'f': { - 'multiplicity': 2, - 'site_symmetry': '-4m2', - 'coords_xyz': [ - '(1/2,1/2,1/4)', - '(1/2,1/2,3/4)' - ] - }, - 'e': { - 'multiplicity': 2, - 'site_symmetry': '-4m2', - 'coords_xyz': [ - '(0,0,1/4)', - '(0,0,3/4)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(0,1/2,1/2)', - '(1/2,0,0)' - ] + 'coords_xyz': ['(0,0,z)', '(0,0,z+1/2)', '(0,0,-z)', '(0,0,-z+1/2)'], }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(0,1/2,0)', - '(1/2,0,1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(1/2,1/2,0)', - '(1/2,1/2,1/2)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(0,0,0)', - '(0,0,1/2)' - ] - } - } + 'f': {'multiplicity': 2, 'site_symmetry': '-4m2', 'coords_xyz': ['(1/2,1/2,1/4)', '(1/2,1/2,3/4)']}, + 'e': {'multiplicity': 2, 'site_symmetry': '-4m2', 'coords_xyz': ['(0,0,1/4)', '(0,0,3/4)']}, + 'd': {'multiplicity': 2, 'site_symmetry': 'mmm', 'coords_xyz': ['(0,1/2,1/2)', '(1/2,0,0)']}, + 'c': {'multiplicity': 2, 'site_symmetry': 'mmm', 'coords_xyz': ['(0,1/2,0)', '(1/2,0,1/2)']}, + 'b': {'multiplicity': 2, 'site_symmetry': 'mmm', 'coords_xyz': ['(1/2,1/2,0)', '(1/2,1/2,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': 'mmm', 'coords_xyz': ['(0,0,0)', '(0,0,1/2)']}, + }, }, (132, '1'): { 'IT_number': 132, @@ -39371,8 +17287,8 @@ '(x,-y,z+1/2)', '(-x,y,z+1/2)', '(-y,-x,z)', - '(y,x,z)' - ] + '(y,x,z)', + ], }, 'o': { 'multiplicity': 8, @@ -39385,8 +17301,8 @@ '(-x,x,-z+1/2)', '(x,-x,-z+1/2)', '(x,x,-z)', - '(-x,-x,-z)' - ] + '(-x,-x,-z)', + ], }, 'n': { 'multiplicity': 8, @@ -39399,8 +17315,8 @@ '(-x,y,1/2)', '(x,-y,1/2)', '(y,x,0)', - '(-y,-x,0)' - ] + '(-y,-x,0)', + ], }, 'm': { 'multiplicity': 8, @@ -39413,8 +17329,8 @@ '(-x,1/2,3/4)', '(x,1/2,3/4)', '(1/2,-x,1/4)', - '(1/2,x,1/4)' - ] + '(1/2,x,1/4)', + ], }, 'l': { 'multiplicity': 8, @@ -39427,8 +17343,8 @@ '(-x,0,3/4)', '(x,0,3/4)', '(0,-x,1/4)', - '(0,x,1/4)' - ] + '(0,x,1/4)', + ], }, 'k': { 'multiplicity': 8, @@ -39441,102 +17357,44 @@ '(0,1/2,-z)', '(1/2,0,-z+1/2)', '(0,1/2,z+1/2)', - '(1/2,0,z)' - ] + '(1/2,0,z)', + ], }, 'j': { 'multiplicity': 4, 'site_symmetry': 'm.2', - 'coords_xyz': [ - '(x,x,1/2)', - '(-x,-x,1/2)', - '(-x,x,0)', - '(x,-x,0)' - ] + 'coords_xyz': ['(x,x,1/2)', '(-x,-x,1/2)', '(-x,x,0)', '(x,-x,0)'], }, 'i': { 'multiplicity': 4, 'site_symmetry': 'm.2', - 'coords_xyz': [ - '(x,x,0)', - '(-x,-x,0)', - '(-x,x,1/2)', - '(x,-x,1/2)' - ] + 'coords_xyz': ['(x,x,0)', '(-x,-x,0)', '(-x,x,1/2)', '(x,-x,1/2)'], }, 'h': { 'multiplicity': 4, 'site_symmetry': '2.m', - 'coords_xyz': [ - '(1/2,1/2,z)', - '(1/2,1/2,z+1/2)', - '(1/2,1/2,-z+1/2)', - '(1/2,1/2,-z)' - ] + 'coords_xyz': ['(1/2,1/2,z)', '(1/2,1/2,z+1/2)', '(1/2,1/2,-z+1/2)', '(1/2,1/2,-z)'], }, 'g': { 'multiplicity': 4, 'site_symmetry': '2.m', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,z+1/2)', - '(0,0,-z+1/2)', - '(0,0,-z)' - ] + 'coords_xyz': ['(0,0,z)', '(0,0,z+1/2)', '(0,0,-z+1/2)', '(0,0,-z)'], }, 'f': { 'multiplicity': 4, 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(0,1/2,0)', - '(1/2,0,1/2)', - '(0,1/2,1/2)', - '(1/2,0,0)' - ] + 'coords_xyz': ['(0,1/2,0)', '(1/2,0,1/2)', '(0,1/2,1/2)', '(1/2,0,0)'], }, 'e': { 'multiplicity': 4, 'site_symmetry': '222', - 'coords_xyz': [ - '(0,1/2,1/4)', - '(1/2,0,3/4)', - '(0,1/2,3/4)', - '(1/2,0,1/4)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '-42m', - 'coords_xyz': [ - '(1/2,1/2,1/4)', - '(1/2,1/2,3/4)' - ] + 'coords_xyz': ['(0,1/2,1/4)', '(1/2,0,3/4)', '(0,1/2,3/4)', '(1/2,0,1/4)'], }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': 'm.m', - 'coords_xyz': [ - '(1/2,1/2,0)', - '(1/2,1/2,1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '-42m', - 'coords_xyz': [ - '(0,0,1/4)', - '(0,0,3/4)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': 'm.m', - 'coords_xyz': [ - '(0,0,0)', - '(0,0,1/2)' - ] - } - } + 'd': {'multiplicity': 2, 'site_symmetry': '-42m', 'coords_xyz': ['(1/2,1/2,1/4)', '(1/2,1/2,3/4)']}, + 'c': {'multiplicity': 2, 'site_symmetry': 'm.m', 'coords_xyz': ['(1/2,1/2,0)', '(1/2,1/2,1/2)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '-42m', 'coords_xyz': ['(0,0,1/4)', '(0,0,3/4)']}, + 'a': {'multiplicity': 2, 'site_symmetry': 'm.m', 'coords_xyz': ['(0,0,0)', '(0,0,1/2)']}, + }, }, (133, '1'): { 'IT_number': 133, @@ -39564,8 +17422,8 @@ '(x+1/2,-y+1/2,z)', '(-x+1/2,y+1/2,z)', '(-y,-x,z+1/2)', - '(y,x,z+1/2)' - ] + '(y,x,z+1/2)', + ], }, 'j': { 'multiplicity': 8, @@ -39578,8 +17436,8 @@ '(-x+1/2,-x,1/2)', '(x+1/2,x,1/2)', '(x+1/2,-x,0)', - '(-x+1/2,x,0)' - ] + '(-x+1/2,x,0)', + ], }, 'i': { 'multiplicity': 8, @@ -39592,8 +17450,8 @@ '(-x+1/2,1/2,3/4)', '(x+1/2,1/2,3/4)', '(0,-x,1/4)', - '(0,x,1/4)' - ] + '(0,x,1/4)', + ], }, 'h': { 'multiplicity': 8, @@ -39606,8 +17464,8 @@ '(-x+1/2,1/2,1/4)', '(x+1/2,1/2,1/4)', '(0,-x,3/4)', - '(0,x,3/4)' - ] + '(0,x,3/4)', + ], }, 'g': { 'multiplicity': 8, @@ -39620,8 +17478,8 @@ '(1/2,1/2,-z+1/2)', '(0,0,-z)', '(1/2,1/2,z)', - '(0,0,z+1/2)' - ] + '(0,0,z+1/2)', + ], }, 'f': { 'multiplicity': 8, @@ -39634,8 +17492,8 @@ '(1/2,0,-z+1/2)', '(1/2,0,-z)', '(1/2,0,z)', - '(1/2,0,z+1/2)' - ] + '(1/2,0,z+1/2)', + ], }, 'e': { 'multiplicity': 8, @@ -39648,50 +17506,30 @@ '(3/4,1/4,1/4)', '(1/4,3/4,1/4)', '(3/4,3/4,3/4)', - '(1/4,1/4,3/4)' - ] + '(1/4,1/4,3/4)', + ], }, 'd': { 'multiplicity': 4, 'site_symmetry': '-4..', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,1/2,1/2)', - '(0,0,1/2)', - '(1/2,1/2,0)' - ] + 'coords_xyz': ['(0,0,0)', '(1/2,1/2,1/2)', '(0,0,1/2)', '(1/2,1/2,0)'], }, 'c': { 'multiplicity': 4, 'site_symmetry': '2.2', - 'coords_xyz': [ - '(0,1/2,0)', - '(0,1/2,1/2)', - '(1/2,0,1/2)', - '(1/2,0,0)' - ] + 'coords_xyz': ['(0,1/2,0)', '(0,1/2,1/2)', '(1/2,0,1/2)', '(1/2,0,0)'], }, 'b': { 'multiplicity': 4, 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,1/4)', - '(1/2,1/2,3/4)', - '(1/2,1/2,1/4)', - '(0,0,3/4)' - ] + 'coords_xyz': ['(0,0,1/4)', '(1/2,1/2,3/4)', '(1/2,1/2,1/4)', '(0,0,3/4)'], }, 'a': { 'multiplicity': 4, 'site_symmetry': '222', - 'coords_xyz': [ - '(0,1/2,1/4)', - '(0,1/2,3/4)', - '(1/2,0,1/4)', - '(1/2,0,3/4)' - ] - } - } + 'coords_xyz': ['(0,1/2,1/4)', '(0,1/2,3/4)', '(1/2,0,1/4)', '(1/2,0,3/4)'], + }, + }, }, (133, '2'): { 'IT_number': 133, @@ -39719,8 +17557,8 @@ '(x+1/2,-y,z)', '(-x,y+1/2,z)', '(-y,-x,z+1/2)', - '(y+1/2,x+1/2,z+1/2)' - ] + '(y+1/2,x+1/2,z+1/2)', + ], }, 'j': { 'multiplicity': 8, @@ -39733,8 +17571,8 @@ '(-x,-x,3/4)', '(x+1/2,x+1/2,3/4)', '(x+1/2,-x,1/4)', - '(-x,x+1/2,1/4)' - ] + '(-x,x+1/2,1/4)', + ], }, 'i': { 'multiplicity': 8, @@ -39747,8 +17585,8 @@ '(-x,3/4,1/2)', '(x+1/2,3/4,1/2)', '(3/4,-x,0)', - '(3/4,x+1/2,0)' - ] + '(3/4,x+1/2,0)', + ], }, 'h': { 'multiplicity': 8, @@ -39761,8 +17599,8 @@ '(-x,3/4,0)', '(x+1/2,3/4,0)', '(3/4,-x,1/2)', - '(3/4,x+1/2,1/2)' - ] + '(3/4,x+1/2,1/2)', + ], }, 'g': { 'multiplicity': 8, @@ -39775,8 +17613,8 @@ '(1/4,3/4,-z)', '(3/4,1/4,-z+1/2)', '(1/4,3/4,z)', - '(3/4,1/4,z+1/2)' - ] + '(3/4,1/4,z+1/2)', + ], }, 'f': { 'multiplicity': 8, @@ -39789,8 +17627,8 @@ '(3/4,3/4,-z)', '(3/4,3/4,-z+1/2)', '(3/4,3/4,z)', - '(3/4,3/4,z+1/2)' - ] + '(3/4,3/4,z+1/2)', + ], }, 'e': { 'multiplicity': 8, @@ -39803,50 +17641,30 @@ '(1/2,0,0)', '(0,1/2,0)', '(0,0,1/2)', - '(1/2,1/2,1/2)' - ] + '(1/2,1/2,1/2)', + ], }, 'd': { 'multiplicity': 4, 'site_symmetry': '-4..', - 'coords_xyz': [ - '(3/4,1/4,3/4)', - '(1/4,3/4,1/4)', - '(3/4,1/4,1/4)', - '(1/4,3/4,3/4)' - ] + 'coords_xyz': ['(3/4,1/4,3/4)', '(1/4,3/4,1/4)', '(3/4,1/4,1/4)', '(1/4,3/4,3/4)'], }, 'c': { 'multiplicity': 4, 'site_symmetry': '2.2', - 'coords_xyz': [ - '(1/4,1/4,1/4)', - '(1/4,1/4,3/4)', - '(3/4,3/4,3/4)', - '(3/4,3/4,1/4)' - ] + 'coords_xyz': ['(1/4,1/4,1/4)', '(1/4,1/4,3/4)', '(3/4,3/4,3/4)', '(3/4,3/4,1/4)'], }, 'b': { 'multiplicity': 4, 'site_symmetry': '222', - 'coords_xyz': [ - '(3/4,1/4,0)', - '(1/4,3/4,1/2)', - '(1/4,3/4,0)', - '(3/4,1/4,1/2)' - ] + 'coords_xyz': ['(3/4,1/4,0)', '(1/4,3/4,1/2)', '(1/4,3/4,0)', '(3/4,1/4,1/2)'], }, 'a': { 'multiplicity': 4, 'site_symmetry': '222', - 'coords_xyz': [ - '(1/4,1/4,0)', - '(1/4,1/4,1/2)', - '(3/4,3/4,0)', - '(3/4,3/4,1/2)' - ] - } - } + 'coords_xyz': ['(1/4,1/4,0)', '(1/4,1/4,1/2)', '(3/4,3/4,0)', '(3/4,3/4,1/2)'], + }, + }, }, (134, '1'): { 'IT_number': 134, @@ -39874,8 +17692,8 @@ '(x+1/2,-y+1/2,z+1/2)', '(-x+1/2,y+1/2,z+1/2)', '(-y,-x,z)', - '(y,x,z)' - ] + '(y,x,z)', + ], }, 'm': { 'multiplicity': 8, @@ -39888,8 +17706,8 @@ '(-x,x,-z)', '(x,-x,-z)', '(x+1/2,x+1/2,-z+1/2)', - '(-x+1/2,-x+1/2,-z+1/2)' - ] + '(-x+1/2,-x+1/2,-z+1/2)', + ], }, 'l': { 'multiplicity': 8, @@ -39902,8 +17720,8 @@ '(-x+1/2,-x,3/4)', '(x+1/2,x,3/4)', '(x+1/2,-x,1/4)', - '(-x+1/2,x,1/4)' - ] + '(-x+1/2,x,1/4)', + ], }, 'k': { 'multiplicity': 8, @@ -39916,8 +17734,8 @@ '(-x+1/2,-x,1/4)', '(x+1/2,x,1/4)', '(x+1/2,-x,3/4)', - '(-x+1/2,x,3/4)' - ] + '(-x+1/2,x,3/4)', + ], }, 'j': { 'multiplicity': 8, @@ -39930,8 +17748,8 @@ '(-x+1/2,1/2,0)', '(x+1/2,1/2,0)', '(0,-x,1/2)', - '(0,x,1/2)' - ] + '(0,x,1/2)', + ], }, 'i': { 'multiplicity': 8, @@ -39944,8 +17762,8 @@ '(-x+1/2,1/2,1/2)', '(x+1/2,1/2,1/2)', '(0,-x,0)', - '(0,x,0)' - ] + '(0,x,0)', + ], }, 'h': { 'multiplicity': 8, @@ -39958,76 +17776,37 @@ '(1/2,0,-z+1/2)', '(1/2,0,-z)', '(1/2,0,z+1/2)', - '(1/2,0,z)' - ] + '(1/2,0,z)', + ], }, 'g': { 'multiplicity': 4, 'site_symmetry': '2.m', - 'coords_xyz': [ - '(0,0,z)', - '(1/2,1/2,z+1/2)', - '(0,0,-z)', - '(1/2,1/2,-z+1/2)' - ] + 'coords_xyz': ['(0,0,z)', '(1/2,1/2,z+1/2)', '(0,0,-z)', '(1/2,1/2,-z+1/2)'], }, 'f': { 'multiplicity': 4, 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(3/4,3/4,3/4)', - '(1/4,1/4,3/4)', - '(3/4,1/4,1/4)', - '(1/4,3/4,1/4)' - ] + 'coords_xyz': ['(3/4,3/4,3/4)', '(1/4,1/4,3/4)', '(3/4,1/4,1/4)', '(1/4,3/4,1/4)'], }, 'e': { 'multiplicity': 4, 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(1/4,1/4,1/4)', - '(3/4,3/4,1/4)', - '(1/4,3/4,3/4)', - '(3/4,1/4,3/4)' - ] + 'coords_xyz': ['(1/4,1/4,1/4)', '(3/4,3/4,1/4)', '(1/4,3/4,3/4)', '(3/4,1/4,3/4)'], }, 'd': { 'multiplicity': 4, 'site_symmetry': '2.2', - 'coords_xyz': [ - '(0,1/2,1/4)', - '(0,1/2,3/4)', - '(1/2,0,1/4)', - '(1/2,0,3/4)' - ] + 'coords_xyz': ['(0,1/2,1/4)', '(0,1/2,3/4)', '(1/2,0,1/4)', '(1/2,0,3/4)'], }, 'c': { 'multiplicity': 4, 'site_symmetry': '222', - 'coords_xyz': [ - '(0,1/2,0)', - '(0,1/2,1/2)', - '(1/2,0,1/2)', - '(1/2,0,0)' - ] + 'coords_xyz': ['(0,1/2,0)', '(0,1/2,1/2)', '(1/2,0,1/2)', '(1/2,0,0)'], }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '-42m', - 'coords_xyz': [ - '(0,0,1/2)', - '(1/2,1/2,0)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '-42m', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,1/2,1/2)' - ] - } - } + 'b': {'multiplicity': 2, 'site_symmetry': '-42m', 'coords_xyz': ['(0,0,1/2)', '(1/2,1/2,0)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '-42m', 'coords_xyz': ['(0,0,0)', '(1/2,1/2,1/2)']}, + }, }, (134, '2'): { 'IT_number': 134, @@ -40055,8 +17834,8 @@ '(x+1/2,-y,z+1/2)', '(-x,y+1/2,z+1/2)', '(-y,-x,z)', - '(y+1/2,x+1/2,z)' - ] + '(y+1/2,x+1/2,z)', + ], }, 'm': { 'multiplicity': 8, @@ -40069,8 +17848,8 @@ '(-x+1/2,-x,-z+1/2)', '(x,x+1/2,-z+1/2)', '(-x,x,-z)', - '(x+1/2,-x+1/2,-z)' - ] + '(x+1/2,-x+1/2,-z)', + ], }, 'l': { 'multiplicity': 8, @@ -40083,8 +17862,8 @@ '(-x,-x,1/2)', '(x+1/2,x+1/2,1/2)', '(x+1/2,-x,0)', - '(-x,x+1/2,0)' - ] + '(-x,x+1/2,0)', + ], }, 'k': { 'multiplicity': 8, @@ -40097,8 +17876,8 @@ '(-x,-x,0)', '(x+1/2,x+1/2,0)', '(x+1/2,-x,1/2)', - '(-x,x+1/2,1/2)' - ] + '(-x,x+1/2,1/2)', + ], }, 'j': { 'multiplicity': 8, @@ -40111,8 +17890,8 @@ '(-x,3/4,3/4)', '(x+1/2,3/4,3/4)', '(3/4,-x,1/4)', - '(3/4,x+1/2,1/4)' - ] + '(3/4,x+1/2,1/4)', + ], }, 'i': { 'multiplicity': 8, @@ -40125,8 +17904,8 @@ '(-x,3/4,1/4)', '(x+1/2,3/4,1/4)', '(3/4,-x,3/4)', - '(3/4,x+1/2,3/4)' - ] + '(3/4,x+1/2,3/4)', + ], }, 'h': { 'multiplicity': 8, @@ -40139,76 +17918,37 @@ '(3/4,3/4,-z)', '(3/4,3/4,-z+1/2)', '(3/4,3/4,z+1/2)', - '(3/4,3/4,z)' - ] + '(3/4,3/4,z)', + ], }, 'g': { 'multiplicity': 4, 'site_symmetry': '2.m', - 'coords_xyz': [ - '(3/4,1/4,z)', - '(1/4,3/4,z+1/2)', - '(3/4,1/4,-z+1/2)', - '(1/4,3/4,-z)' - ] + 'coords_xyz': ['(3/4,1/4,z)', '(1/4,3/4,z+1/2)', '(3/4,1/4,-z+1/2)', '(1/4,3/4,-z)'], }, 'f': { 'multiplicity': 4, 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,1/2,0)', - '(1/2,0,1/2)', - '(0,1/2,1/2)' - ] + 'coords_xyz': ['(0,0,0)', '(1/2,1/2,0)', '(1/2,0,1/2)', '(0,1/2,1/2)'], }, 'e': { 'multiplicity': 4, 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(0,0,1/2)', - '(1/2,1/2,1/2)', - '(1/2,0,0)', - '(0,1/2,0)' - ] + 'coords_xyz': ['(0,0,1/2)', '(1/2,1/2,1/2)', '(1/2,0,0)', '(0,1/2,0)'], }, 'd': { 'multiplicity': 4, 'site_symmetry': '2.2', - 'coords_xyz': [ - '(1/4,1/4,0)', - '(1/4,1/4,1/2)', - '(3/4,3/4,0)', - '(3/4,3/4,1/2)' - ] + 'coords_xyz': ['(1/4,1/4,0)', '(1/4,1/4,1/2)', '(3/4,3/4,0)', '(3/4,3/4,1/2)'], }, 'c': { 'multiplicity': 4, 'site_symmetry': '222', - 'coords_xyz': [ - '(1/4,1/4,1/4)', - '(1/4,1/4,3/4)', - '(3/4,3/4,3/4)', - '(3/4,3/4,1/4)' - ] + 'coords_xyz': ['(1/4,1/4,1/4)', '(1/4,1/4,3/4)', '(3/4,3/4,3/4)', '(3/4,3/4,1/4)'], }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '-42m', - 'coords_xyz': [ - '(3/4,1/4,1/4)', - '(1/4,3/4,3/4)' - ] - }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '-42m', - 'coords_xyz': [ - '(1/4,3/4,1/4)', - '(3/4,1/4,3/4)' - ] - } - } + 'b': {'multiplicity': 2, 'site_symmetry': '-42m', 'coords_xyz': ['(3/4,1/4,1/4)', '(1/4,3/4,3/4)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '-42m', 'coords_xyz': ['(1/4,3/4,1/4)', '(3/4,1/4,3/4)']}, + }, }, (135, '1'): { 'IT_number': 135, @@ -40236,8 +17976,8 @@ '(x+1/2,-y+1/2,z)', '(-x+1/2,y+1/2,z)', '(-y+1/2,-x+1/2,z+1/2)', - '(y+1/2,x+1/2,z+1/2)' - ] + '(y+1/2,x+1/2,z+1/2)', + ], }, 'h': { 'multiplicity': 8, @@ -40250,8 +17990,8 @@ '(-x+1/2,y+1/2,0)', '(x+1/2,-y+1/2,0)', '(y+1/2,x+1/2,1/2)', - '(-y+1/2,-x+1/2,1/2)' - ] + '(-y+1/2,-x+1/2,1/2)', + ], }, 'g': { 'multiplicity': 8, @@ -40264,8 +18004,8 @@ '(-x,-x+1/2,3/4)', '(x,x+1/2,3/4)', '(x+1/2,-x,1/4)', - '(-x+1/2,x,1/4)' - ] + '(-x+1/2,x,1/4)', + ], }, 'f': { 'multiplicity': 8, @@ -40278,8 +18018,8 @@ '(0,1/2,-z)', '(1/2,0,-z+1/2)', '(1/2,0,z)', - '(0,1/2,z+1/2)' - ] + '(0,1/2,z+1/2)', + ], }, 'e': { 'multiplicity': 8, @@ -40292,50 +18032,30 @@ '(0,0,-z)', '(0,0,-z+1/2)', '(1/2,1/2,z)', - '(1/2,1/2,z+1/2)' - ] + '(1/2,1/2,z+1/2)', + ], }, 'd': { 'multiplicity': 4, 'site_symmetry': '2.2', - 'coords_xyz': [ - '(0,1/2,1/4)', - '(1/2,0,3/4)', - '(0,1/2,3/4)', - '(1/2,0,1/4)' - ] + 'coords_xyz': ['(0,1/2,1/4)', '(1/2,0,3/4)', '(0,1/2,3/4)', '(1/2,0,1/4)'], }, 'c': { 'multiplicity': 4, 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(0,1/2,0)', - '(1/2,0,1/2)', - '(1/2,0,0)', - '(0,1/2,1/2)' - ] + 'coords_xyz': ['(0,1/2,0)', '(1/2,0,1/2)', '(1/2,0,0)', '(0,1/2,1/2)'], }, 'b': { 'multiplicity': 4, 'site_symmetry': '-4..', - 'coords_xyz': [ - '(0,0,1/4)', - '(0,0,3/4)', - '(1/2,1/2,3/4)', - '(1/2,1/2,1/4)' - ] + 'coords_xyz': ['(0,0,1/4)', '(0,0,3/4)', '(1/2,1/2,3/4)', '(1/2,1/2,1/4)'], }, 'a': { 'multiplicity': 4, 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(0,0,0)', - '(0,0,1/2)', - '(1/2,1/2,0)', - '(1/2,1/2,1/2)' - ] - } - } + 'coords_xyz': ['(0,0,0)', '(0,0,1/2)', '(1/2,1/2,0)', '(1/2,1/2,1/2)'], + }, + }, }, (136, '1'): { 'IT_number': 136, @@ -40363,8 +18083,8 @@ '(x+1/2,-y+1/2,z+1/2)', '(-x+1/2,y+1/2,z+1/2)', '(-y,-x,z)', - '(y,x,z)' - ] + '(y,x,z)', + ], }, 'j': { 'multiplicity': 8, @@ -40377,8 +18097,8 @@ '(-x+1/2,x+1/2,-z+1/2)', '(x+1/2,-x+1/2,-z+1/2)', '(x,x,-z)', - '(-x,-x,-z)' - ] + '(-x,-x,-z)', + ], }, 'i': { 'multiplicity': 8, @@ -40391,8 +18111,8 @@ '(-x+1/2,y+1/2,1/2)', '(x+1/2,-y+1/2,1/2)', '(y,x,0)', - '(-y,-x,0)' - ] + '(-y,-x,0)', + ], }, 'h': { 'multiplicity': 8, @@ -40405,76 +18125,37 @@ '(0,1/2,-z)', '(0,1/2,-z+1/2)', '(1/2,0,z+1/2)', - '(1/2,0,z)' - ] + '(1/2,0,z)', + ], }, 'g': { 'multiplicity': 4, 'site_symmetry': 'm.2', - 'coords_xyz': [ - '(x,-x,0)', - '(-x,x,0)', - '(x+1/2,x+1/2,1/2)', - '(-x+1/2,-x+1/2,1/2)' - ] + 'coords_xyz': ['(x,-x,0)', '(-x,x,0)', '(x+1/2,x+1/2,1/2)', '(-x+1/2,-x+1/2,1/2)'], }, 'f': { 'multiplicity': 4, 'site_symmetry': 'm.2', - 'coords_xyz': [ - '(x,x,0)', - '(-x,-x,0)', - '(-x+1/2,x+1/2,1/2)', - '(x+1/2,-x+1/2,1/2)' - ] + 'coords_xyz': ['(x,x,0)', '(-x,-x,0)', '(-x+1/2,x+1/2,1/2)', '(x+1/2,-x+1/2,1/2)'], }, 'e': { 'multiplicity': 4, 'site_symmetry': '2.m', - 'coords_xyz': [ - '(0,0,z)', - '(1/2,1/2,z+1/2)', - '(1/2,1/2,-z+1/2)', - '(0,0,-z)' - ] + 'coords_xyz': ['(0,0,z)', '(1/2,1/2,z+1/2)', '(1/2,1/2,-z+1/2)', '(0,0,-z)'], }, 'd': { 'multiplicity': 4, 'site_symmetry': '-4..', - 'coords_xyz': [ - '(0,1/2,1/4)', - '(0,1/2,3/4)', - '(1/2,0,1/4)', - '(1/2,0,3/4)' - ] + 'coords_xyz': ['(0,1/2,1/4)', '(0,1/2,3/4)', '(1/2,0,1/4)', '(1/2,0,3/4)'], }, 'c': { 'multiplicity': 4, 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(0,1/2,0)', - '(0,1/2,1/2)', - '(1/2,0,1/2)', - '(1/2,0,0)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': 'm.m', - 'coords_xyz': [ - '(0,0,1/2)', - '(1/2,1/2,0)' - ] + 'coords_xyz': ['(0,1/2,0)', '(0,1/2,1/2)', '(1/2,0,1/2)', '(1/2,0,0)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': 'm.m', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,1/2,1/2)' - ] - } - } + 'b': {'multiplicity': 2, 'site_symmetry': 'm.m', 'coords_xyz': ['(0,0,1/2)', '(1/2,1/2,0)']}, + 'a': {'multiplicity': 2, 'site_symmetry': 'm.m', 'coords_xyz': ['(0,0,0)', '(1/2,1/2,1/2)']}, + }, }, (137, '1'): { 'IT_number': 137, @@ -40502,8 +18183,8 @@ '(x,-y,z)', '(-x,y,z)', '(-y+1/2,-x+1/2,z+1/2)', - '(y+1/2,x+1/2,z+1/2)' - ] + '(y+1/2,x+1/2,z+1/2)', + ], }, 'g': { 'multiplicity': 8, @@ -40516,8 +18197,8 @@ '(1/2,y+1/2,-z+1/2)', '(1/2,-y+1/2,-z+1/2)', '(y,0,-z)', - '(-y,0,-z)' - ] + '(-y,0,-z)', + ], }, 'f': { 'multiplicity': 8, @@ -40530,8 +18211,8 @@ '(-x+1/2,-x+1/2,1/2)', '(x+1/2,x+1/2,1/2)', '(x,-x,0)', - '(-x,x,0)' - ] + '(-x,x,0)', + ], }, 'e': { 'multiplicity': 8, @@ -40544,46 +18225,22 @@ '(1/4,3/4,1/4)', '(3/4,1/4,1/4)', '(1/4,1/4,3/4)', - '(3/4,3/4,3/4)' - ] + '(3/4,3/4,3/4)', + ], }, 'd': { 'multiplicity': 4, 'site_symmetry': '2mm', - 'coords_xyz': [ - '(0,1/2,z)', - '(0,1/2,z+1/2)', - '(1/2,0,-z+1/2)', - '(1/2,0,-z)' - ] + 'coords_xyz': ['(0,1/2,z)', '(0,1/2,z+1/2)', '(1/2,0,-z+1/2)', '(1/2,0,-z)'], }, 'c': { 'multiplicity': 4, 'site_symmetry': '2mm', - 'coords_xyz': [ - '(0,0,z)', - '(1/2,1/2,z+1/2)', - '(1/2,1/2,-z+1/2)', - '(0,0,-z)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '-4m2', - 'coords_xyz': [ - '(0,0,1/2)', - '(1/2,1/2,0)' - ] + 'coords_xyz': ['(0,0,z)', '(1/2,1/2,z+1/2)', '(1/2,1/2,-z+1/2)', '(0,0,-z)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '-4m2', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,1/2,1/2)' - ] - } - } + 'b': {'multiplicity': 2, 'site_symmetry': '-4m2', 'coords_xyz': ['(0,0,1/2)', '(1/2,1/2,0)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '-4m2', 'coords_xyz': ['(0,0,0)', '(1/2,1/2,1/2)']}, + }, }, (137, '2'): { 'IT_number': 137, @@ -40611,8 +18268,8 @@ '(x,-y+1/2,z)', '(-x+1/2,y,z)', '(-y+1/2,-x+1/2,z+1/2)', - '(y,x,z+1/2)' - ] + '(y,x,z+1/2)', + ], }, 'g': { 'multiplicity': 8, @@ -40625,8 +18282,8 @@ '(3/4,y+1/2,-z)', '(3/4,-y,-z)', '(y+1/2,3/4,-z+1/2)', - '(-y,3/4,-z+1/2)' - ] + '(-y,3/4,-z+1/2)', + ], }, 'f': { 'multiplicity': 8, @@ -40639,8 +18296,8 @@ '(-x,x,3/4)', '(x+1/2,-x+1/2,3/4)', '(-x+1/2,-x,1/4)', - '(x,x+1/2,1/4)' - ] + '(x,x+1/2,1/4)', + ], }, 'e': { 'multiplicity': 8, @@ -40653,46 +18310,22 @@ '(0,1/2,0)', '(1/2,0,0)', '(1/2,1/2,1/2)', - '(0,0,1/2)' - ] + '(0,0,1/2)', + ], }, 'd': { 'multiplicity': 4, 'site_symmetry': '2mm', - 'coords_xyz': [ - '(1/4,1/4,z)', - '(1/4,1/4,z+1/2)', - '(3/4,3/4,-z)', - '(3/4,3/4,-z+1/2)' - ] + 'coords_xyz': ['(1/4,1/4,z)', '(1/4,1/4,z+1/2)', '(3/4,3/4,-z)', '(3/4,3/4,-z+1/2)'], }, 'c': { 'multiplicity': 4, 'site_symmetry': '2mm', - 'coords_xyz': [ - '(3/4,1/4,z)', - '(1/4,3/4,z+1/2)', - '(1/4,3/4,-z)', - '(3/4,1/4,-z+1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '-4m2', - 'coords_xyz': [ - '(3/4,1/4,1/4)', - '(1/4,3/4,3/4)' - ] + 'coords_xyz': ['(3/4,1/4,z)', '(1/4,3/4,z+1/2)', '(1/4,3/4,-z)', '(3/4,1/4,-z+1/2)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '-4m2', - 'coords_xyz': [ - '(3/4,1/4,3/4)', - '(1/4,3/4,1/4)' - ] - } - } + 'b': {'multiplicity': 2, 'site_symmetry': '-4m2', 'coords_xyz': ['(3/4,1/4,1/4)', '(1/4,3/4,3/4)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '-4m2', 'coords_xyz': ['(3/4,1/4,3/4)', '(1/4,3/4,1/4)']}, + }, }, (138, '1'): { 'IT_number': 138, @@ -40720,8 +18353,8 @@ '(x,-y,z+1/2)', '(-x,y,z+1/2)', '(-y+1/2,-x+1/2,z)', - '(y+1/2,x+1/2,z)' - ] + '(y+1/2,x+1/2,z)', + ], }, 'i': { 'multiplicity': 8, @@ -40734,8 +18367,8 @@ '(-x+1/2,x,-z)', '(x+1/2,-x,-z)', '(x+1/2,x,-z+1/2)', - '(-x+1/2,-x,-z+1/2)' - ] + '(-x+1/2,-x,-z+1/2)', + ], }, 'h': { 'multiplicity': 8, @@ -40748,8 +18381,8 @@ '(-x+1/2,-x+1/2,3/4)', '(x+1/2,x+1/2,3/4)', '(x,-x,1/4)', - '(-x,x,1/4)' - ] + '(-x,x,1/4)', + ], }, 'g': { 'multiplicity': 8, @@ -40762,8 +18395,8 @@ '(-x+1/2,-x+1/2,1/4)', '(x+1/2,x+1/2,1/4)', '(x,-x,3/4)', - '(-x,x,3/4)' - ] + '(-x,x,3/4)', + ], }, 'f': { 'multiplicity': 8, @@ -40776,60 +18409,35 @@ '(1/2,1/2,-z+1/2)', '(0,0,-z)', '(0,0,z+1/2)', - '(1/2,1/2,z)' - ] + '(1/2,1/2,z)', + ], }, 'e': { 'multiplicity': 4, 'site_symmetry': '2.m', - 'coords_xyz': [ - '(0,1/2,z)', - '(0,1/2,z+1/2)', - '(1/2,0,-z)', - '(1/2,0,-z+1/2)' - ] + 'coords_xyz': ['(0,1/2,z)', '(0,1/2,z+1/2)', '(1/2,0,-z)', '(1/2,0,-z+1/2)'], }, 'd': { 'multiplicity': 4, 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(1/4,1/4,3/4)', - '(3/4,3/4,3/4)', - '(1/4,3/4,1/4)', - '(3/4,1/4,1/4)' - ] + 'coords_xyz': ['(1/4,1/4,3/4)', '(3/4,3/4,3/4)', '(1/4,3/4,1/4)', '(3/4,1/4,1/4)'], }, 'c': { 'multiplicity': 4, 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(1/4,1/4,1/4)', - '(3/4,3/4,1/4)', - '(1/4,3/4,3/4)', - '(3/4,1/4,3/4)' - ] + 'coords_xyz': ['(1/4,1/4,1/4)', '(3/4,3/4,1/4)', '(1/4,3/4,3/4)', '(3/4,1/4,3/4)'], }, 'b': { 'multiplicity': 4, 'site_symmetry': '-4..', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,1/2,1/2)', - '(1/2,1/2,0)', - '(0,0,1/2)' - ] + 'coords_xyz': ['(0,0,0)', '(1/2,1/2,1/2)', '(1/2,1/2,0)', '(0,0,1/2)'], }, 'a': { 'multiplicity': 4, 'site_symmetry': '2.2', - 'coords_xyz': [ - '(0,0,1/4)', - '(1/2,1/2,3/4)', - '(1/2,1/2,1/4)', - '(0,0,3/4)' - ] - } - } + 'coords_xyz': ['(0,0,1/4)', '(1/2,1/2,3/4)', '(1/2,1/2,1/4)', '(0,0,3/4)'], + }, + }, }, (138, '2'): { 'IT_number': 138, @@ -40857,8 +18465,8 @@ '(x,-y+1/2,z+1/2)', '(-x+1/2,y,z+1/2)', '(-y+1/2,-x+1/2,z)', - '(y,x,z)' - ] + '(y,x,z)', + ], }, 'i': { 'multiplicity': 8, @@ -40871,8 +18479,8 @@ '(-x,x+1/2,-z+1/2)', '(x+1/2,-x,-z+1/2)', '(x+1/2,x+1/2,-z)', - '(-x,-x,-z)' - ] + '(-x,-x,-z)', + ], }, 'h': { 'multiplicity': 8, @@ -40885,8 +18493,8 @@ '(-x,x,0)', '(x+1/2,-x+1/2,0)', '(-x+1/2,-x,1/2)', - '(x,x+1/2,1/2)' - ] + '(x,x+1/2,1/2)', + ], }, 'g': { 'multiplicity': 8, @@ -40899,8 +18507,8 @@ '(-x,x,1/2)', '(x+1/2,-x+1/2,1/2)', '(-x+1/2,-x,0)', - '(x,x+1/2,0)' - ] + '(x,x+1/2,0)', + ], }, 'f': { 'multiplicity': 8, @@ -40913,60 +18521,35 @@ '(1/4,3/4,-z)', '(3/4,1/4,-z+1/2)', '(3/4,1/4,z+1/2)', - '(1/4,3/4,z)' - ] + '(1/4,3/4,z)', + ], }, 'e': { 'multiplicity': 4, 'site_symmetry': '2.m', - 'coords_xyz': [ - '(1/4,1/4,z)', - '(1/4,1/4,z+1/2)', - '(3/4,3/4,-z+1/2)', - '(3/4,3/4,-z)' - ] + 'coords_xyz': ['(1/4,1/4,z)', '(1/4,1/4,z+1/2)', '(3/4,3/4,-z+1/2)', '(3/4,3/4,-z)'], }, 'd': { 'multiplicity': 4, 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,1/2,0)', - '(1/2,0,1/2)', - '(0,1/2,1/2)' - ] + 'coords_xyz': ['(0,0,0)', '(1/2,1/2,0)', '(1/2,0,1/2)', '(0,1/2,1/2)'], }, 'c': { 'multiplicity': 4, 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(0,0,1/2)', - '(1/2,1/2,1/2)', - '(1/2,0,0)', - '(0,1/2,0)' - ] + 'coords_xyz': ['(0,0,1/2)', '(1/2,1/2,1/2)', '(1/2,0,0)', '(0,1/2,0)'], }, 'b': { 'multiplicity': 4, 'site_symmetry': '-4..', - 'coords_xyz': [ - '(3/4,1/4,3/4)', - '(1/4,3/4,1/4)', - '(1/4,3/4,3/4)', - '(3/4,1/4,1/4)' - ] + 'coords_xyz': ['(3/4,1/4,3/4)', '(1/4,3/4,1/4)', '(1/4,3/4,3/4)', '(3/4,1/4,1/4)'], }, 'a': { 'multiplicity': 4, 'site_symmetry': '2.2', - 'coords_xyz': [ - '(3/4,1/4,0)', - '(1/4,3/4,1/2)', - '(1/4,3/4,0)', - '(3/4,1/4,1/2)' - ] - } - } + 'coords_xyz': ['(3/4,1/4,0)', '(1/4,3/4,1/2)', '(1/4,3/4,0)', '(3/4,1/4,1/2)'], + }, + }, }, (139, '1'): { 'IT_number': 139, @@ -40994,22 +18577,13 @@ '(x,-y,z)', '(-x,y,z)', '(-y,-x,z)', - '(y,x,z)' - ] + '(y,x,z)', + ], }, 'n': { 'multiplicity': 16, 'site_symmetry': '.m.', - 'coords_xyz': [ - '(0,y,z)', - '(0,-y,z)', - '(-y,0,z)', - '(y,0,z)', - '(0,y,-z)', - '(0,-y,-z)', - '(y,0,-z)', - '(-y,0,-z)' - ] + 'coords_xyz': ['(0,y,z)', '(0,-y,z)', '(-y,0,z)', '(y,0,z)', '(0,y,-z)', '(0,-y,-z)', '(y,0,-z)', '(-y,0,-z)'], }, 'm': { 'multiplicity': 16, @@ -41022,22 +18596,13 @@ '(-x,x,-z)', '(x,-x,-z)', '(x,x,-z)', - '(-x,-x,-z)' - ] + '(-x,-x,-z)', + ], }, 'l': { 'multiplicity': 16, 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,y,0)', - '(-x,-y,0)', - '(-y,x,0)', - '(y,-x,0)', - '(-x,y,0)', - '(x,-y,0)', - '(y,x,0)', - '(-y,-x,0)' - ] + 'coords_xyz': ['(x,y,0)', '(-x,-y,0)', '(-y,x,0)', '(y,-x,0)', '(-x,y,0)', '(x,-y,0)', '(y,x,0)', '(-y,-x,0)'], }, 'k': { 'multiplicity': 16, @@ -41050,98 +18615,32 @@ '(-x,-x+1/2,3/4)', '(x,x+1/2,3/4)', '(x+1/2,-x,3/4)', - '(-x+1/2,x,3/4)' - ] + '(-x+1/2,x,3/4)', + ], }, 'j': { 'multiplicity': 8, 'site_symmetry': 'm2m', - 'coords_xyz': [ - '(x,1/2,0)', - '(-x,1/2,0)', - '(1/2,x,0)', - '(1/2,-x,0)' - ] - }, - 'i': { - 'multiplicity': 8, - 'site_symmetry': 'm2m', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)', - '(0,x,0)', - '(0,-x,0)' - ] - }, - 'h': { - 'multiplicity': 8, - 'site_symmetry': 'm.2', - 'coords_xyz': [ - '(x,x,0)', - '(-x,-x,0)', - '(-x,x,0)', - '(x,-x,0)' - ] + 'coords_xyz': ['(x,1/2,0)', '(-x,1/2,0)', '(1/2,x,0)', '(1/2,-x,0)'], }, + 'i': {'multiplicity': 8, 'site_symmetry': 'm2m', 'coords_xyz': ['(x,0,0)', '(-x,0,0)', '(0,x,0)', '(0,-x,0)']}, + 'h': {'multiplicity': 8, 'site_symmetry': 'm.2', 'coords_xyz': ['(x,x,0)', '(-x,-x,0)', '(-x,x,0)', '(x,-x,0)']}, 'g': { 'multiplicity': 8, 'site_symmetry': '2mm', - 'coords_xyz': [ - '(0,1/2,z)', - '(1/2,0,z)', - '(0,1/2,-z)', - '(1/2,0,-z)' - ] + 'coords_xyz': ['(0,1/2,z)', '(1/2,0,z)', '(0,1/2,-z)', '(1/2,0,-z)'], }, 'f': { 'multiplicity': 8, 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(1/4,1/4,1/4)', - '(3/4,3/4,1/4)', - '(3/4,1/4,1/4)', - '(1/4,3/4,1/4)' - ] - }, - 'e': { - 'multiplicity': 4, - 'site_symmetry': '4mm', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)' - ] - }, - 'd': { - 'multiplicity': 4, - 'site_symmetry': '-4m2', - 'coords_xyz': [ - '(0,1/2,1/4)', - '(1/2,0,1/4)' - ] - }, - 'c': { - 'multiplicity': 4, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(0,1/2,0)', - '(1/2,0,0)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '4/mmm', - 'coords_xyz': [ - '(0,0,1/2)' - ] + 'coords_xyz': ['(1/4,1/4,1/4)', '(3/4,3/4,1/4)', '(3/4,1/4,1/4)', '(1/4,3/4,1/4)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '4/mmm', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'e': {'multiplicity': 4, 'site_symmetry': '4mm', 'coords_xyz': ['(0,0,z)', '(0,0,-z)']}, + 'd': {'multiplicity': 4, 'site_symmetry': '-4m2', 'coords_xyz': ['(0,1/2,1/4)', '(1/2,0,1/4)']}, + 'c': {'multiplicity': 4, 'site_symmetry': 'mmm', 'coords_xyz': ['(0,1/2,0)', '(1/2,0,0)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '4/mmm', 'coords_xyz': ['(0,0,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '4/mmm', 'coords_xyz': ['(0,0,0)']}, + }, }, (140, '1'): { 'IT_number': 140, @@ -41169,8 +18668,8 @@ '(x,-y,z+1/2)', '(-x,y,z+1/2)', '(-y,-x,z+1/2)', - '(y,x,z+1/2)' - ] + '(y,x,z+1/2)', + ], }, 'l': { 'multiplicity': 16, @@ -41183,8 +18682,8 @@ '(-x,x+1/2,-z+1/2)', '(x,-x+1/2,-z+1/2)', '(x+1/2,x,-z+1/2)', - '(-x+1/2,-x,-z+1/2)' - ] + '(-x+1/2,-x,-z+1/2)', + ], }, 'k': { 'multiplicity': 16, @@ -41197,8 +18696,8 @@ '(-x,y,1/2)', '(x,-y,1/2)', '(y,x,1/2)', - '(-y,-x,1/2)' - ] + '(-y,-x,1/2)', + ], }, 'j': { 'multiplicity': 16, @@ -41211,8 +18710,8 @@ '(-x,0,3/4)', '(x,0,3/4)', '(0,-x,3/4)', - '(0,x,3/4)' - ] + '(0,x,3/4)', + ], }, 'i': { 'multiplicity': 16, @@ -41225,82 +18724,34 @@ '(-x,-x,3/4)', '(x,x,3/4)', '(x,-x,3/4)', - '(-x,x,3/4)' - ] + '(-x,x,3/4)', + ], }, 'h': { 'multiplicity': 8, 'site_symmetry': 'm.2', - 'coords_xyz': [ - '(x,x+1/2,0)', - '(-x,-x+1/2,0)', - '(-x+1/2,x,0)', - '(x+1/2,-x,0)' - ] + 'coords_xyz': ['(x,x+1/2,0)', '(-x,-x+1/2,0)', '(-x+1/2,x,0)', '(x+1/2,-x,0)'], }, 'g': { 'multiplicity': 8, 'site_symmetry': '2.m', - 'coords_xyz': [ - '(0,1/2,z)', - '(1/2,0,z)', - '(0,1/2,-z+1/2)', - '(1/2,0,-z+1/2)' - ] + 'coords_xyz': ['(0,1/2,z)', '(1/2,0,z)', '(0,1/2,-z+1/2)', '(1/2,0,-z+1/2)'], }, 'f': { 'multiplicity': 8, 'site_symmetry': '4..', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z+1/2)', - '(0,0,-z)', - '(0,0,z+1/2)' - ] + 'coords_xyz': ['(0,0,z)', '(0,0,-z+1/2)', '(0,0,-z)', '(0,0,z+1/2)'], }, 'e': { 'multiplicity': 8, 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(1/4,1/4,1/4)', - '(3/4,3/4,1/4)', - '(3/4,1/4,1/4)', - '(1/4,3/4,1/4)' - ] - }, - 'd': { - 'multiplicity': 4, - 'site_symmetry': 'm.m', - 'coords_xyz': [ - '(0,1/2,0)', - '(1/2,0,0)' - ] - }, - 'c': { - 'multiplicity': 4, - 'site_symmetry': '4/m..', - 'coords_xyz': [ - '(0,0,0)', - '(0,0,1/2)' - ] + 'coords_xyz': ['(1/4,1/4,1/4)', '(3/4,3/4,1/4)', '(3/4,1/4,1/4)', '(1/4,3/4,1/4)'], }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '-42m', - 'coords_xyz': [ - '(0,1/2,1/4)', - '(1/2,0,1/4)' - ] - }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '422', - 'coords_xyz': [ - '(0,0,1/4)', - '(0,0,3/4)' - ] - } - } + 'd': {'multiplicity': 4, 'site_symmetry': 'm.m', 'coords_xyz': ['(0,1/2,0)', '(1/2,0,0)']}, + 'c': {'multiplicity': 4, 'site_symmetry': '4/m..', 'coords_xyz': ['(0,0,0)', '(0,0,1/2)']}, + 'b': {'multiplicity': 4, 'site_symmetry': '-42m', 'coords_xyz': ['(0,1/2,1/4)', '(1/2,0,1/4)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '422', 'coords_xyz': ['(0,0,1/4)', '(0,0,3/4)']}, + }, }, (141, '1'): { 'IT_number': 141, @@ -41328,8 +18779,8 @@ '(x+1/2,-y+1/2,z+1/2)', '(-x,y,z)', '(-y+1/2,-x,z+3/4)', - '(y,x+1/2,z+1/4)' - ] + '(y,x+1/2,z+1/4)', + ], }, 'h': { 'multiplicity': 16, @@ -41342,8 +18793,8 @@ '(1/2,y,-z+3/4)', '(0,-y+1/2,-z+1/4)', '(y+1/2,1/2,-z+1/2)', - '(-y,0,-z)' - ] + '(-y,0,-z)', + ], }, 'g': { 'multiplicity': 16, @@ -41356,8 +18807,8 @@ '(-x,-x+1/2,1/4)', '(x+1/2,x,3/4)', '(x,-x,0)', - '(-x+1/2,x+1/2,1/2)' - ] + '(-x+1/2,x+1/2,1/2)', + ], }, 'f': { 'multiplicity': 16, @@ -41370,56 +18821,27 @@ '(-x,1/4,1/8)', '(x+1/2,1/4,5/8)', '(1/4,-x,7/8)', - '(1/4,x+1/2,3/8)' - ] + '(1/4,x+1/2,3/8)', + ], }, 'e': { 'multiplicity': 8, 'site_symmetry': '2mm', - 'coords_xyz': [ - '(0,0,z)', - '(0,1/2,z+1/4)', - '(1/2,0,-z+3/4)', - '(1/2,1/2,-z+1/2)' - ] + 'coords_xyz': ['(0,0,z)', '(0,1/2,z+1/4)', '(1/2,0,-z+3/4)', '(1/2,1/2,-z+1/2)'], }, 'd': { 'multiplicity': 8, 'site_symmetry': '.2/m.', - 'coords_xyz': [ - '(0,1/4,5/8)', - '(1/2,1/4,1/8)', - '(3/4,1/2,7/8)', - '(3/4,0,3/8)' - ] + 'coords_xyz': ['(0,1/4,5/8)', '(1/2,1/4,1/8)', '(3/4,1/2,7/8)', '(3/4,0,3/8)'], }, 'c': { 'multiplicity': 8, 'site_symmetry': '.2/m.', - 'coords_xyz': [ - '(0,1/4,1/8)', - '(1/2,1/4,5/8)', - '(3/4,1/2,3/8)', - '(3/4,0,7/8)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '-4m2', - 'coords_xyz': [ - '(0,0,1/2)', - '(0,1/2,3/4)' - ] + 'coords_xyz': ['(0,1/4,1/8)', '(1/2,1/4,5/8)', '(3/4,1/2,3/8)', '(3/4,0,7/8)'], }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '-4m2', - 'coords_xyz': [ - '(0,0,0)', - '(0,1/2,1/4)' - ] - } - } + 'b': {'multiplicity': 4, 'site_symmetry': '-4m2', 'coords_xyz': ['(0,0,1/2)', '(0,1/2,3/4)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '-4m2', 'coords_xyz': ['(0,0,0)', '(0,1/2,1/4)']}, + }, }, (141, '2'): { 'IT_number': 141, @@ -41447,8 +18869,8 @@ '(x+1/2,-y,z+1/2)', '(-x,y,z)', '(-y+3/4,-x+1/4,z+3/4)', - '(y+3/4,x+3/4,z+1/4)' - ] + '(y+3/4,x+3/4,z+1/4)', + ], }, 'h': { 'multiplicity': 16, @@ -41461,8 +18883,8 @@ '(1/2,y,-z+1/2)', '(0,-y,-z)', '(y+1/4,3/4,-z+1/4)', - '(-y+1/4,1/4,-z+3/4)' - ] + '(-y+1/4,1/4,-z+3/4)', + ], }, 'g': { 'multiplicity': 16, @@ -41475,8 +18897,8 @@ '(-x,-x+3/4,1/8)', '(x+1/2,x+1/4,5/8)', '(x,-x+1/4,7/8)', - '(-x+1/2,x+3/4,3/8)' - ] + '(-x+1/2,x+3/4,3/8)', + ], }, 'f': { 'multiplicity': 16, @@ -41489,56 +18911,27 @@ '(-x,0,0)', '(x+1/2,0,1/2)', '(3/4,-x+1/4,3/4)', - '(3/4,x+3/4,1/4)' - ] + '(3/4,x+3/4,1/4)', + ], }, 'e': { 'multiplicity': 8, 'site_symmetry': '2mm', - 'coords_xyz': [ - '(0,1/4,z)', - '(0,3/4,z+1/4)', - '(1/2,1/4,-z+1/2)', - '(1/2,3/4,-z+1/4)' - ] + 'coords_xyz': ['(0,1/4,z)', '(0,3/4,z+1/4)', '(1/2,1/4,-z+1/2)', '(1/2,3/4,-z+1/4)'], }, 'd': { 'multiplicity': 8, 'site_symmetry': '.2/m.', - 'coords_xyz': [ - '(0,0,1/2)', - '(1/2,0,0)', - '(1/4,3/4,3/4)', - '(1/4,1/4,1/4)' - ] + 'coords_xyz': ['(0,0,1/2)', '(1/2,0,0)', '(1/4,3/4,3/4)', '(1/4,1/4,1/4)'], }, 'c': { 'multiplicity': 8, 'site_symmetry': '.2/m.', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,0,1/2)', - '(1/4,3/4,1/4)', - '(1/4,1/4,3/4)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '-4m2', - 'coords_xyz': [ - '(0,1/4,3/8)', - '(0,3/4,5/8)' - ] + 'coords_xyz': ['(0,0,0)', '(1/2,0,1/2)', '(1/4,3/4,1/4)', '(1/4,1/4,3/4)'], }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '-4m2', - 'coords_xyz': [ - '(0,3/4,1/8)', - '(1/2,3/4,3/8)' - ] - } - } + 'b': {'multiplicity': 4, 'site_symmetry': '-4m2', 'coords_xyz': ['(0,1/4,3/8)', '(0,3/4,5/8)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '-4m2', 'coords_xyz': ['(0,3/4,1/8)', '(1/2,3/4,3/8)']}, + }, }, (142, '1'): { 'IT_number': 142, @@ -41566,8 +18959,8 @@ '(x+1/2,-y+1/2,z)', '(-x,y,z+1/2)', '(-y+1/2,-x,z+1/4)', - '(y,x+1/2,z+3/4)' - ] + '(y,x+1/2,z+3/4)', + ], }, 'f': { 'multiplicity': 16, @@ -41580,8 +18973,8 @@ '(-x,-x+1/2,0)', '(x+1/2,x,1/2)', '(x,-x,3/4)', - '(-x+1/2,x+1/2,1/4)' - ] + '(-x+1/2,x+1/2,1/4)', + ], }, 'e': { 'multiplicity': 16, @@ -41594,8 +18987,8 @@ '(3/4,-y+1/2,1/8)', '(3/4,y,5/8)', '(y,3/4,7/8)', - '(-y+1/2,3/4,3/8)' - ] + '(-y+1/2,3/4,3/8)', + ], }, 'd': { 'multiplicity': 16, @@ -41608,8 +19001,8 @@ '(0,1/2,-z+1/4)', '(0,0,-z)', '(1/2,1/2,z)', - '(1/2,0,z+1/4)' - ] + '(1/2,0,z+1/4)', + ], }, 'c': { 'multiplicity': 16, @@ -41622,30 +19015,20 @@ '(1/2,1/4,1/8)', '(0,1/4,5/8)', '(3/4,1/2,7/8)', - '(3/4,0,3/8)' - ] + '(3/4,0,3/8)', + ], }, 'b': { 'multiplicity': 8, 'site_symmetry': '2.2', - 'coords_xyz': [ - '(0,0,1/4)', - '(0,1/2,1/2)', - '(0,1/2,0)', - '(0,0,3/4)' - ] + 'coords_xyz': ['(0,0,1/4)', '(0,1/2,1/2)', '(0,1/2,0)', '(0,0,3/4)'], }, 'a': { 'multiplicity': 8, 'site_symmetry': '-4..', - 'coords_xyz': [ - '(0,0,0)', - '(0,1/2,1/4)', - '(1/2,0,1/4)', - '(1/2,1/2,0)' - ] - } - } + 'coords_xyz': ['(0,0,0)', '(0,1/2,1/4)', '(1/2,0,1/4)', '(1/2,1/2,0)'], + }, + }, }, (142, '2'): { 'IT_number': 142, @@ -41673,8 +19056,8 @@ '(x+1/2,-y,z)', '(-x,y,z+1/2)', '(-y+3/4,-x+1/4,z+1/4)', - '(y+3/4,x+3/4,z+3/4)' - ] + '(y+3/4,x+3/4,z+3/4)', + ], }, 'f': { 'multiplicity': 16, @@ -41687,8 +19070,8 @@ '(-x,-x+3/4,7/8)', '(x+1/2,x+1/4,3/8)', '(x,-x+1/4,5/8)', - '(-x+1/2,x+3/4,1/8)' - ] + '(-x+1/2,x+3/4,1/8)', + ], }, 'e': { 'multiplicity': 16, @@ -41701,8 +19084,8 @@ '(-x,0,3/4)', '(x+1/2,0,1/4)', '(3/4,-x+1/4,1/2)', - '(3/4,x+3/4,0)' - ] + '(3/4,x+3/4,0)', + ], }, 'd': { 'multiplicity': 16, @@ -41715,8 +19098,8 @@ '(0,3/4,-z)', '(0,1/4,-z+3/4)', '(1/2,3/4,z)', - '(1/2,1/4,z+1/4)' - ] + '(1/2,1/4,z+1/4)', + ], }, 'c': { 'multiplicity': 16, @@ -41729,30 +19112,20 @@ '(1/2,0,0)', '(0,0,1/2)', '(1/4,3/4,3/4)', - '(1/4,1/4,1/4)' - ] + '(1/4,1/4,1/4)', + ], }, 'b': { 'multiplicity': 8, 'site_symmetry': '2.2', - 'coords_xyz': [ - '(0,1/4,1/8)', - '(0,3/4,3/8)', - '(0,3/4,7/8)', - '(0,1/4,5/8)' - ] + 'coords_xyz': ['(0,1/4,1/8)', '(0,3/4,3/8)', '(0,3/4,7/8)', '(0,1/4,5/8)'], }, 'a': { 'multiplicity': 8, 'site_symmetry': '-4..', - 'coords_xyz': [ - '(0,1/4,3/8)', - '(0,3/4,5/8)', - '(1/2,1/4,5/8)', - '(1/2,3/4,3/8)' - ] - } - } + 'coords_xyz': ['(0,1/4,3/8)', '(0,3/4,5/8)', '(1/2,1/4,5/8)', '(1/2,3/4,3/8)'], + }, + }, }, (146, 'r'): { 'IT_number': 146, @@ -41761,48 +19134,20 @@ 'name_H-M_alt': 'R 3', 'crystal_system': 'trigonal', 'Wyckoff_positions': { - 'b': { - 'multiplicity': 3, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(z,x,y)', - '(y,z,x)' - ] - }, - 'a': { - 'multiplicity': 1, - 'site_symmetry': '3.', - 'coords_xyz': [ - '(x,x,x)' - ] - } - } - }, - (146, 'h'): { - 'IT_number': 146, - 'setting': 0, - 'IT_coordinate_system_code': 'h', - 'name_H-M_alt': 'R 3', - 'crystal_system': 'trigonal', - 'Wyckoff_positions': { - 'b': { - 'multiplicity': 9, - 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-y,x-y,z)', - '(-x+y,-x,z)' - ] - }, - 'a': { - 'multiplicity': 3, - 'site_symmetry': '3.', - 'coords_xyz': [ - '(0,0,z)' - ] - } - } + 'b': {'multiplicity': 3, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(z,x,y)', '(y,z,x)']}, + 'a': {'multiplicity': 1, 'site_symmetry': '3.', 'coords_xyz': ['(x,x,x)']}, + }, + }, + (146, 'h'): { + 'IT_number': 146, + 'setting': 0, + 'IT_coordinate_system_code': 'h', + 'name_H-M_alt': 'R 3', + 'crystal_system': 'trigonal', + 'Wyckoff_positions': { + 'b': {'multiplicity': 9, 'site_symmetry': '1', 'coords_xyz': ['(x,y,z)', '(-y,x-y,z)', '(-x+y,-x,z)']}, + 'a': {'multiplicity': 3, 'site_symmetry': '3.', 'coords_xyz': ['(0,0,z)']}, + }, }, (148, 'r'): { 'IT_number': 148, @@ -41814,56 +19159,14 @@ 'f': { 'multiplicity': 6, 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(z,x,y)', - '(y,z,x)', - '(-x,-y,-z)', - '(-z,-x,-y)', - '(-y,-z,-x)' - ] - }, - 'e': { - 'multiplicity': 3, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(0,1/2,1/2)', - '(1/2,0,1/2)', - '(1/2,1/2,0)' - ] - }, - 'd': { - 'multiplicity': 3, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/2,0,0)', - '(0,1/2,0)', - '(0,0,1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '3.', - 'coords_xyz': [ - '(x,x,x)', - '(-x,-x,-x)' - ] - }, - 'b': { - 'multiplicity': 1, - 'site_symmetry': '-3.', - 'coords_xyz': [ - '(1/2,1/2,1/2)' - ] + 'coords_xyz': ['(x,y,z)', '(z,x,y)', '(y,z,x)', '(-x,-y,-z)', '(-z,-x,-y)', '(-y,-z,-x)'], }, - 'a': { - 'multiplicity': 1, - 'site_symmetry': '-3.', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'e': {'multiplicity': 3, 'site_symmetry': '-1', 'coords_xyz': ['(0,1/2,1/2)', '(1/2,0,1/2)', '(1/2,1/2,0)']}, + 'd': {'multiplicity': 3, 'site_symmetry': '-1', 'coords_xyz': ['(1/2,0,0)', '(0,1/2,0)', '(0,0,1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '3.', 'coords_xyz': ['(x,x,x)', '(-x,-x,-x)']}, + 'b': {'multiplicity': 1, 'site_symmetry': '-3.', 'coords_xyz': ['(1/2,1/2,1/2)']}, + 'a': {'multiplicity': 1, 'site_symmetry': '-3.', 'coords_xyz': ['(0,0,0)']}, + }, }, (148, 'h'): { 'IT_number': 148, @@ -41875,56 +19178,14 @@ 'f': { 'multiplicity': 18, 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-y,x-y,z)', - '(-x+y,-x,z)', - '(-x,-y,-z)', - '(y,-x+y,-z)', - '(x-y,x,-z)' - ] - }, - 'e': { - 'multiplicity': 9, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/2,0,0)', - '(0,1/2,0)', - '(1/2,1/2,0)' - ] - }, - 'd': { - 'multiplicity': 9, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/2,0,1/2)', - '(0,1/2,1/2)', - '(1/2,1/2,1/2)' - ] - }, - 'c': { - 'multiplicity': 6, - 'site_symmetry': '3.', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)' - ] - }, - 'b': { - 'multiplicity': 3, - 'site_symmetry': '-3.', - 'coords_xyz': [ - '(0,0,1/2)' - ] + 'coords_xyz': ['(x,y,z)', '(-y,x-y,z)', '(-x+y,-x,z)', '(-x,-y,-z)', '(y,-x+y,-z)', '(x-y,x,-z)'], }, - 'a': { - 'multiplicity': 3, - 'site_symmetry': '-3.', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'e': {'multiplicity': 9, 'site_symmetry': '-1', 'coords_xyz': ['(1/2,0,0)', '(0,1/2,0)', '(1/2,1/2,0)']}, + 'd': {'multiplicity': 9, 'site_symmetry': '-1', 'coords_xyz': ['(1/2,0,1/2)', '(0,1/2,1/2)', '(1/2,1/2,1/2)']}, + 'c': {'multiplicity': 6, 'site_symmetry': '3.', 'coords_xyz': ['(0,0,z)', '(0,0,-z)']}, + 'b': {'multiplicity': 3, 'site_symmetry': '-3.', 'coords_xyz': ['(0,0,1/2)']}, + 'a': {'multiplicity': 3, 'site_symmetry': '-3.', 'coords_xyz': ['(0,0,0)']}, + }, }, (155, 'r'): { 'IT_number': 155, @@ -41936,56 +19197,14 @@ 'f': { 'multiplicity': 6, 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(z,x,y)', - '(y,z,x)', - '(-z,-y,-x)', - '(-y,-x,-z)', - '(-x,-z,-y)' - ] - }, - 'e': { - 'multiplicity': 3, - 'site_symmetry': '.2', - 'coords_xyz': [ - '(1/2,y,-y)', - '(-y,1/2,y)', - '(y,-y,1/2)' - ] - }, - 'd': { - 'multiplicity': 3, - 'site_symmetry': '.2', - 'coords_xyz': [ - '(0,y,-y)', - '(-y,0,y)', - '(y,-y,0)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '3.', - 'coords_xyz': [ - '(x,x,x)', - '(-x,-x,-x)' - ] - }, - 'b': { - 'multiplicity': 1, - 'site_symmetry': '32', - 'coords_xyz': [ - '(1/2,1/2,1/2)' - ] + 'coords_xyz': ['(x,y,z)', '(z,x,y)', '(y,z,x)', '(-z,-y,-x)', '(-y,-x,-z)', '(-x,-z,-y)'], }, - 'a': { - 'multiplicity': 1, - 'site_symmetry': '32', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'e': {'multiplicity': 3, 'site_symmetry': '.2', 'coords_xyz': ['(1/2,y,-y)', '(-y,1/2,y)', '(y,-y,1/2)']}, + 'd': {'multiplicity': 3, 'site_symmetry': '.2', 'coords_xyz': ['(0,y,-y)', '(-y,0,y)', '(y,-y,0)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '3.', 'coords_xyz': ['(x,x,x)', '(-x,-x,-x)']}, + 'b': {'multiplicity': 1, 'site_symmetry': '32', 'coords_xyz': ['(1/2,1/2,1/2)']}, + 'a': {'multiplicity': 1, 'site_symmetry': '32', 'coords_xyz': ['(0,0,0)']}, + }, }, (155, 'h'): { 'IT_number': 155, @@ -41997,56 +19216,14 @@ 'f': { 'multiplicity': 18, 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-y,x-y,z)', - '(-x+y,-x,z)', - '(y,x,-z)', - '(x-y,-y,-z)', - '(-x,-x+y,-z)' - ] - }, - 'e': { - 'multiplicity': 9, - 'site_symmetry': '.2', - 'coords_xyz': [ - '(x,0,1/2)', - '(0,x,1/2)', - '(-x,-x,1/2)' - ] - }, - 'd': { - 'multiplicity': 9, - 'site_symmetry': '.2', - 'coords_xyz': [ - '(x,0,0)', - '(0,x,0)', - '(-x,-x,0)' - ] - }, - 'c': { - 'multiplicity': 6, - 'site_symmetry': '3.', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)' - ] + 'coords_xyz': ['(x,y,z)', '(-y,x-y,z)', '(-x+y,-x,z)', '(y,x,-z)', '(x-y,-y,-z)', '(-x,-x+y,-z)'], }, - 'b': { - 'multiplicity': 3, - 'site_symmetry': '32', - 'coords_xyz': [ - '(0,0,1/2)' - ] - }, - 'a': { - 'multiplicity': 3, - 'site_symmetry': '32', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'e': {'multiplicity': 9, 'site_symmetry': '.2', 'coords_xyz': ['(x,0,1/2)', '(0,x,1/2)', '(-x,-x,1/2)']}, + 'd': {'multiplicity': 9, 'site_symmetry': '.2', 'coords_xyz': ['(x,0,0)', '(0,x,0)', '(-x,-x,0)']}, + 'c': {'multiplicity': 6, 'site_symmetry': '3.', 'coords_xyz': ['(0,0,z)', '(0,0,-z)']}, + 'b': {'multiplicity': 3, 'site_symmetry': '32', 'coords_xyz': ['(0,0,1/2)']}, + 'a': {'multiplicity': 3, 'site_symmetry': '32', 'coords_xyz': ['(0,0,0)']}, + }, }, (160, 'r'): { 'IT_number': 160, @@ -42058,32 +19235,11 @@ 'c': { 'multiplicity': 6, 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(z,x,y)', - '(y,z,x)', - '(z,y,x)', - '(y,x,z)', - '(x,z,y)' - ] - }, - 'b': { - 'multiplicity': 3, - 'site_symmetry': '.m', - 'coords_xyz': [ - '(x,x,z)', - '(z,x,x)', - '(x,z,x)' - ] + 'coords_xyz': ['(x,y,z)', '(z,x,y)', '(y,z,x)', '(z,y,x)', '(y,x,z)', '(x,z,y)'], }, - 'a': { - 'multiplicity': 1, - 'site_symmetry': '3m', - 'coords_xyz': [ - '(x,x,x)' - ] - } - } + 'b': {'multiplicity': 3, 'site_symmetry': '.m', 'coords_xyz': ['(x,x,z)', '(z,x,x)', '(x,z,x)']}, + 'a': {'multiplicity': 1, 'site_symmetry': '3m', 'coords_xyz': ['(x,x,x)']}, + }, }, (160, 'h'): { 'IT_number': 160, @@ -42095,32 +19251,11 @@ 'c': { 'multiplicity': 18, 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-y,x-y,z)', - '(-x+y,-x,z)', - '(-y,-x,z)', - '(-x+y,y,z)', - '(x,x-y,z)' - ] - }, - 'b': { - 'multiplicity': 9, - 'site_symmetry': '.m', - 'coords_xyz': [ - '(x,-x,z)', - '(x,2x,z)', - '(-2x,-x,z)' - ] + 'coords_xyz': ['(x,y,z)', '(-y,x-y,z)', '(-x+y,-x,z)', '(-y,-x,z)', '(-x+y,y,z)', '(x,x-y,z)'], }, - 'a': { - 'multiplicity': 3, - 'site_symmetry': '3m', - 'coords_xyz': [ - '(0,0,z)' - ] - } - } + 'b': {'multiplicity': 9, 'site_symmetry': '.m', 'coords_xyz': ['(x,-x,z)', '(x,2x,z)', '(-2x,-x,z)']}, + 'a': {'multiplicity': 3, 'site_symmetry': '3m', 'coords_xyz': ['(0,0,z)']}, + }, }, (161, 'r'): { 'IT_number': 161, @@ -42138,18 +19273,11 @@ '(y,z,x)', '(z+1/2,y+1/2,x+1/2)', '(y+1/2,x+1/2,z+1/2)', - '(x+1/2,z+1/2,y+1/2)' - ] + '(x+1/2,z+1/2,y+1/2)', + ], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '3.', - 'coords_xyz': [ - '(x,x,x)', - '(x+1/2,x+1/2,x+1/2)' - ] - } - } + 'a': {'multiplicity': 2, 'site_symmetry': '3.', 'coords_xyz': ['(x,x,x)', '(x+1/2,x+1/2,x+1/2)']}, + }, }, (161, 'h'): { 'IT_number': 161, @@ -42161,24 +19289,10 @@ 'b': { 'multiplicity': 18, 'site_symmetry': '1', - 'coords_xyz': [ - '(x,y,z)', - '(-y,x-y,z)', - '(-x+y,-x,z)', - '(-y,-x,z+1/2)', - '(-x+y,y,z+1/2)', - '(x,x-y,z+1/2)' - ] + 'coords_xyz': ['(x,y,z)', '(-y,x-y,z)', '(-x+y,-x,z)', '(-y,-x,z+1/2)', '(-x+y,y,z+1/2)', '(x,x-y,z+1/2)'], }, - 'a': { - 'multiplicity': 6, - 'site_symmetry': '3.', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,z+1/2)' - ] - } - } + 'a': {'multiplicity': 6, 'site_symmetry': '3.', 'coords_xyz': ['(0,0,z)', '(0,0,z+1/2)']}, + }, }, (166, 'r'): { 'IT_number': 166, @@ -42202,86 +19316,30 @@ '(-y,-z,-x)', '(z,y,x)', '(y,x,z)', - '(x,z,y)' - ] + '(x,z,y)', + ], }, 'h': { 'multiplicity': 6, 'site_symmetry': '.m', - 'coords_xyz': [ - '(x,x,z)', - '(z,x,x)', - '(x,z,x)', - '(-z,-x,-x)', - '(-x,-x,-z)', - '(-x,-z,-x)' - ] + 'coords_xyz': ['(x,x,z)', '(z,x,x)', '(x,z,x)', '(-z,-x,-x)', '(-x,-x,-z)', '(-x,-z,-x)'], }, 'g': { 'multiplicity': 6, 'site_symmetry': '.2', - 'coords_xyz': [ - '(x,-x,1/2)', - '(1/2,x,-x)', - '(-x,1/2,x)', - '(-x,x,1/2)', - '(1/2,-x,x)', - '(x,1/2,-x)' - ] + 'coords_xyz': ['(x,-x,1/2)', '(1/2,x,-x)', '(-x,1/2,x)', '(-x,x,1/2)', '(1/2,-x,x)', '(x,1/2,-x)'], }, 'f': { 'multiplicity': 6, 'site_symmetry': '.2', - 'coords_xyz': [ - '(x,-x,0)', - '(0,x,-x)', - '(-x,0,x)', - '(-x,x,0)', - '(0,-x,x)', - '(x,0,-x)' - ] - }, - 'e': { - 'multiplicity': 3, - 'site_symmetry': '.2/m', - 'coords_xyz': [ - '(0,1/2,1/2)', - '(1/2,0,1/2)', - '(1/2,1/2,0)' - ] + 'coords_xyz': ['(x,-x,0)', '(0,x,-x)', '(-x,0,x)', '(-x,x,0)', '(0,-x,x)', '(x,0,-x)'], }, - 'd': { - 'multiplicity': 3, - 'site_symmetry': '.2/m', - 'coords_xyz': [ - '(1/2,0,0)', - '(0,1/2,0)', - '(0,0,1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '3m', - 'coords_xyz': [ - '(x,x,x)', - '(-x,-x,-x)' - ] - }, - 'b': { - 'multiplicity': 1, - 'site_symmetry': '-3m', - 'coords_xyz': [ - '(1/2,1/2,1/2)' - ] - }, - 'a': { - 'multiplicity': 1, - 'site_symmetry': '-3m', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'e': {'multiplicity': 3, 'site_symmetry': '.2/m', 'coords_xyz': ['(0,1/2,1/2)', '(1/2,0,1/2)', '(1/2,1/2,0)']}, + 'd': {'multiplicity': 3, 'site_symmetry': '.2/m', 'coords_xyz': ['(1/2,0,0)', '(0,1/2,0)', '(0,0,1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '3m', 'coords_xyz': ['(x,x,x)', '(-x,-x,-x)']}, + 'b': {'multiplicity': 1, 'site_symmetry': '-3m', 'coords_xyz': ['(1/2,1/2,1/2)']}, + 'a': {'multiplicity': 1, 'site_symmetry': '-3m', 'coords_xyz': ['(0,0,0)']}, + }, }, (166, 'h'): { 'IT_number': 166, @@ -42305,86 +19363,30 @@ '(x-y,x,-z)', '(-y,-x,z)', '(-x+y,y,z)', - '(x,x-y,z)' - ] + '(x,x-y,z)', + ], }, 'h': { 'multiplicity': 18, 'site_symmetry': '.m', - 'coords_xyz': [ - '(x,-x,z)', - '(x,2x,z)', - '(-2x,-x,z)', - '(-x,x,-z)', - '(2x,x,-z)', - '(-x,-2x,-z)' - ] + 'coords_xyz': ['(x,-x,z)', '(x,2x,z)', '(-2x,-x,z)', '(-x,x,-z)', '(2x,x,-z)', '(-x,-2x,-z)'], }, 'g': { 'multiplicity': 18, 'site_symmetry': '.2', - 'coords_xyz': [ - '(x,0,1/2)', - '(0,x,1/2)', - '(-x,-x,1/2)', - '(-x,0,1/2)', - '(0,-x,1/2)', - '(x,x,1/2)' - ] + 'coords_xyz': ['(x,0,1/2)', '(0,x,1/2)', '(-x,-x,1/2)', '(-x,0,1/2)', '(0,-x,1/2)', '(x,x,1/2)'], }, 'f': { 'multiplicity': 18, 'site_symmetry': '.2', - 'coords_xyz': [ - '(x,0,0)', - '(0,x,0)', - '(-x,-x,0)', - '(-x,0,0)', - '(0,-x,0)', - '(x,x,0)' - ] - }, - 'e': { - 'multiplicity': 9, - 'site_symmetry': '.2/m', - 'coords_xyz': [ - '(1/2,0,0)', - '(0,1/2,0)', - '(1/2,1/2,0)' - ] - }, - 'd': { - 'multiplicity': 9, - 'site_symmetry': '.2/m', - 'coords_xyz': [ - '(1/2,0,1/2)', - '(0,1/2,1/2)', - '(1/2,1/2,1/2)' - ] - }, - 'c': { - 'multiplicity': 6, - 'site_symmetry': '3m', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)' - ] - }, - 'b': { - 'multiplicity': 3, - 'site_symmetry': '-3m', - 'coords_xyz': [ - '(0,0,1/2)' - ] + 'coords_xyz': ['(x,0,0)', '(0,x,0)', '(-x,-x,0)', '(-x,0,0)', '(0,-x,0)', '(x,x,0)'], }, - 'a': { - 'multiplicity': 3, - 'site_symmetry': '-3m', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'e': {'multiplicity': 9, 'site_symmetry': '.2/m', 'coords_xyz': ['(1/2,0,0)', '(0,1/2,0)', '(1/2,1/2,0)']}, + 'd': {'multiplicity': 9, 'site_symmetry': '.2/m', 'coords_xyz': ['(1/2,0,1/2)', '(0,1/2,1/2)', '(1/2,1/2,1/2)']}, + 'c': {'multiplicity': 6, 'site_symmetry': '3m', 'coords_xyz': ['(0,0,z)', '(0,0,-z)']}, + 'b': {'multiplicity': 3, 'site_symmetry': '-3m', 'coords_xyz': ['(0,0,1/2)']}, + 'a': {'multiplicity': 3, 'site_symmetry': '-3m', 'coords_xyz': ['(0,0,0)']}, + }, }, (167, 'r'): { 'IT_number': 167, @@ -42408,8 +19410,8 @@ '(-y,-z,-x)', '(z+1/2,y+1/2,x+1/2)', '(y+1/2,x+1/2,z+1/2)', - '(x+1/2,z+1/2,y+1/2)' - ] + '(x+1/2,z+1/2,y+1/2)', + ], }, 'e': { 'multiplicity': 6, @@ -42420,48 +19422,22 @@ '(-x+1/2,1/4,x)', '(-x,x+1/2,3/4)', '(3/4,-x,x+1/2)', - '(x+1/2,3/4,-x)' - ] + '(x+1/2,3/4,-x)', + ], }, 'd': { - 'multiplicity': 6, - 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/2,0,0)', - '(0,1/2,0)', - '(0,0,1/2)', - '(1/2,1/2,0)', - '(1/2,0,1/2)', - '(0,1/2,1/2)' - ] + 'multiplicity': 6, + 'site_symmetry': '-1', + 'coords_xyz': ['(1/2,0,0)', '(0,1/2,0)', '(0,0,1/2)', '(1/2,1/2,0)', '(1/2,0,1/2)', '(0,1/2,1/2)'], }, 'c': { 'multiplicity': 4, 'site_symmetry': '3.', - 'coords_xyz': [ - '(x,x,x)', - '(-x+1/2,-x+1/2,-x+1/2)', - '(-x,-x,-x)', - '(x+1/2,x+1/2,x+1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '-3.', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,1/2,1/2)' - ] + 'coords_xyz': ['(x,x,x)', '(-x+1/2,-x+1/2,-x+1/2)', '(-x,-x,-x)', '(x+1/2,x+1/2,x+1/2)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '32', - 'coords_xyz': [ - '(1/4,1/4,1/4)', - '(3/4,3/4,3/4)' - ] - } - } + 'b': {'multiplicity': 2, 'site_symmetry': '-3.', 'coords_xyz': ['(0,0,0)', '(1/2,1/2,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '32', 'coords_xyz': ['(1/4,1/4,1/4)', '(3/4,3/4,3/4)']}, + }, }, (167, 'h'): { 'IT_number': 167, @@ -42485,60 +19461,27 @@ '(x-y,x,-z)', '(-y,-x,z+1/2)', '(-x+y,y,z+1/2)', - '(x,x-y,z+1/2)' - ] + '(x,x-y,z+1/2)', + ], }, 'e': { 'multiplicity': 18, 'site_symmetry': '.2', - 'coords_xyz': [ - '(x,0,1/4)', - '(0,x,1/4)', - '(-x,-x,1/4)', - '(-x,0,3/4)', - '(0,-x,3/4)', - '(x,x,3/4)' - ] + 'coords_xyz': ['(x,0,1/4)', '(0,x,1/4)', '(-x,-x,1/4)', '(-x,0,3/4)', '(0,-x,3/4)', '(x,x,3/4)'], }, 'd': { 'multiplicity': 18, 'site_symmetry': '-1', - 'coords_xyz': [ - '(1/2,0,0)', - '(0,1/2,0)', - '(1/2,1/2,0)', - '(0,1/2,1/2)', - '(1/2,0,1/2)', - '(1/2,1/2,1/2)' - ] + 'coords_xyz': ['(1/2,0,0)', '(0,1/2,0)', '(1/2,1/2,0)', '(0,1/2,1/2)', '(1/2,0,1/2)', '(1/2,1/2,1/2)'], }, 'c': { 'multiplicity': 12, 'site_symmetry': '3.', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z+1/2)', - '(0,0,-z)', - '(0,0,z+1/2)' - ] - }, - 'b': { - 'multiplicity': 6, - 'site_symmetry': '-3.', - 'coords_xyz': [ - '(0,0,0)', - '(0,0,1/2)' - ] + 'coords_xyz': ['(0,0,z)', '(0,0,-z+1/2)', '(0,0,-z)', '(0,0,z+1/2)'], }, - 'a': { - 'multiplicity': 6, - 'site_symmetry': '32', - 'coords_xyz': [ - '(0,0,1/4)', - '(0,0,3/4)' - ] - } - } + 'b': {'multiplicity': 6, 'site_symmetry': '-3.', 'coords_xyz': ['(0,0,0)', '(0,0,1/2)']}, + 'a': {'multiplicity': 6, 'site_symmetry': '32', 'coords_xyz': ['(0,0,1/4)', '(0,0,3/4)']}, + }, }, (177, 'h'): { 'IT_number': 177, @@ -42562,136 +19505,47 @@ '(-x,-x+y,-z)', '(-y,-x,-z)', '(-x+y,y,-z)', - '(x,x-y,-z)' - ] + '(x,x-y,-z)', + ], }, 'm': { 'multiplicity': 6, 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,-x,1/2)', - '(x,2x,1/2)', - '(-2x,-x,1/2)', - '(-x,x,1/2)', - '(-x,-2x,1/2)', - '(2x,x,1/2)' - ] + 'coords_xyz': ['(x,-x,1/2)', '(x,2x,1/2)', '(-2x,-x,1/2)', '(-x,x,1/2)', '(-x,-2x,1/2)', '(2x,x,1/2)'], }, 'l': { 'multiplicity': 6, 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,-x,0)', - '(x,2x,0)', - '(-2x,-x,0)', - '(-x,x,0)', - '(-x,-2x,0)', - '(2x,x,0)' - ] + 'coords_xyz': ['(x,-x,0)', '(x,2x,0)', '(-2x,-x,0)', '(-x,x,0)', '(-x,-2x,0)', '(2x,x,0)'], }, 'k': { 'multiplicity': 6, 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,0,1/2)', - '(0,x,1/2)', - '(-x,-x,1/2)', - '(-x,0,1/2)', - '(0,-x,1/2)', - '(x,x,1/2)' - ] + 'coords_xyz': ['(x,0,1/2)', '(0,x,1/2)', '(-x,-x,1/2)', '(-x,0,1/2)', '(0,-x,1/2)', '(x,x,1/2)'], }, 'j': { 'multiplicity': 6, 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,0,0)', - '(0,x,0)', - '(-x,-x,0)', - '(-x,0,0)', - '(0,-x,0)', - '(x,x,0)' - ] + 'coords_xyz': ['(x,0,0)', '(0,x,0)', '(-x,-x,0)', '(-x,0,0)', '(0,-x,0)', '(x,x,0)'], }, 'i': { 'multiplicity': 6, 'site_symmetry': '2..', - 'coords_xyz': [ - '(1/2,0,z)', - '(0,1/2,z)', - '(1/2,1/2,z)', - '(0,1/2,-z)', - '(1/2,0,-z)', - '(1/2,1/2,-z)' - ] + 'coords_xyz': ['(1/2,0,z)', '(0,1/2,z)', '(1/2,1/2,z)', '(0,1/2,-z)', '(1/2,0,-z)', '(1/2,1/2,-z)'], }, 'h': { 'multiplicity': 4, 'site_symmetry': '3..', - 'coords_xyz': [ - '(1/3,2/3,z)', - '(2/3,1/3,z)', - '(2/3,1/3,-z)', - '(1/3,2/3,-z)' - ] - }, - 'g': { - 'multiplicity': 3, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/2,0,1/2)', - '(0,1/2,1/2)', - '(1/2,1/2,1/2)' - ] - }, - 'f': { - 'multiplicity': 3, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/2,0,0)', - '(0,1/2,0)', - '(1/2,1/2,0)' - ] - }, - 'e': { - 'multiplicity': 2, - 'site_symmetry': '6..', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '3.2', - 'coords_xyz': [ - '(1/3,2/3,1/2)', - '(2/3,1/3,1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '3.2', - 'coords_xyz': [ - '(1/3,2/3,0)', - '(2/3,1/3,0)' - ] - }, - 'b': { - 'multiplicity': 1, - 'site_symmetry': '622', - 'coords_xyz': [ - '(0,0,1/2)' - ] + 'coords_xyz': ['(1/3,2/3,z)', '(2/3,1/3,z)', '(2/3,1/3,-z)', '(1/3,2/3,-z)'], }, - 'a': { - 'multiplicity': 1, - 'site_symmetry': '622', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'g': {'multiplicity': 3, 'site_symmetry': '222', 'coords_xyz': ['(1/2,0,1/2)', '(0,1/2,1/2)', '(1/2,1/2,1/2)']}, + 'f': {'multiplicity': 3, 'site_symmetry': '222', 'coords_xyz': ['(1/2,0,0)', '(0,1/2,0)', '(1/2,1/2,0)']}, + 'e': {'multiplicity': 2, 'site_symmetry': '6..', 'coords_xyz': ['(0,0,z)', '(0,0,-z)']}, + 'd': {'multiplicity': 2, 'site_symmetry': '3.2', 'coords_xyz': ['(1/3,2/3,1/2)', '(2/3,1/3,1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '3.2', 'coords_xyz': ['(1/3,2/3,0)', '(2/3,1/3,0)']}, + 'b': {'multiplicity': 1, 'site_symmetry': '622', 'coords_xyz': ['(0,0,1/2)']}, + 'a': {'multiplicity': 1, 'site_symmetry': '622', 'coords_xyz': ['(0,0,0)']}, + }, }, (178, 'h'): { 'IT_number': 178, @@ -42715,34 +19569,20 @@ '(-x,-x+y,-z+2/3)', '(-y,-x,-z+5/6)', '(-x+y,y,-z+1/2)', - '(x,x-y,-z+1/6)' - ] + '(x,x-y,-z+1/6)', + ], }, 'b': { 'multiplicity': 6, 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,2x,1/4)', - '(-2x,-x,4/7)', - '(x,-x,9/10)', - '(-x,-2x,3/4)', - '(2x,x,1/10)', - '(-x,x,3/7)' - ] + 'coords_xyz': ['(x,2x,1/4)', '(-2x,-x,4/7)', '(x,-x,9/10)', '(-x,-2x,3/4)', '(2x,x,1/10)', '(-x,x,3/7)'], }, 'a': { 'multiplicity': 6, 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,0,0)', - '(0,x,1/3)', - '(-x,-x,2/3)', - '(-x,0,1/2)', - '(0,-x,5/6)', - '(x,x,1/6)' - ] - } - } + 'coords_xyz': ['(x,0,0)', '(0,x,1/3)', '(-x,-x,2/3)', '(-x,0,1/2)', '(0,-x,5/6)', '(x,x,1/6)'], + }, + }, }, (179, 'h'): { 'IT_number': 179, @@ -42766,34 +19606,20 @@ '(-x,-x+y,-z+1/3)', '(-y,-x,-z+1/6)', '(-x+y,y,-z+1/2)', - '(x,x-y,-z+5/6)' - ] + '(x,x-y,-z+5/6)', + ], }, 'b': { 'multiplicity': 6, 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,2x,3/4)', - '(-2x,-x,3/7)', - '(x,-x,1/10)', - '(-x,-2x,1/4)', - '(2x,x,9/10)', - '(-x,x,4/7)' - ] + 'coords_xyz': ['(x,2x,3/4)', '(-2x,-x,3/7)', '(x,-x,1/10)', '(-x,-2x,1/4)', '(2x,x,9/10)', '(-x,x,4/7)'], }, 'a': { 'multiplicity': 6, 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,0,0)', - '(0,x,2/3)', - '(-x,-x,1/3)', - '(-x,0,1/2)', - '(0,-x,1/6)', - '(x,x,5/6)' - ] - } - } + 'coords_xyz': ['(x,0,0)', '(0,x,2/3)', '(-x,-x,1/3)', '(-x,0,1/2)', '(0,-x,1/6)', '(x,x,5/6)'], + }, + }, }, (180, 'h'): { 'IT_number': 180, @@ -42817,56 +19643,28 @@ '(-x,-x+y,-z+1/3)', '(-y,-x,-z+2/3)', '(-x+y,y,-z)', - '(x,x-y,-z+1/3)' - ] + '(x,x-y,-z+1/3)', + ], }, 'j': { 'multiplicity': 6, 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,2x,1/2)', - '(-2x,-x,1/6)', - '(x,-x,5/6)', - '(-x,-2x,1/2)', - '(2x,x,1/6)', - '(-x,x,5/6)' - ] + 'coords_xyz': ['(x,2x,1/2)', '(-2x,-x,1/6)', '(x,-x,5/6)', '(-x,-2x,1/2)', '(2x,x,1/6)', '(-x,x,5/6)'], }, 'i': { 'multiplicity': 6, 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,2x,0)', - '(-2x,-x,2/3)', - '(x,-x,1/3)', - '(-x,-2x,0)', - '(2x,x,2/3)', - '(-x,x,1/3)' - ] + 'coords_xyz': ['(x,2x,0)', '(-2x,-x,2/3)', '(x,-x,1/3)', '(-x,-2x,0)', '(2x,x,2/3)', '(-x,x,1/3)'], }, 'h': { 'multiplicity': 6, 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,0,1/2)', - '(0,x,1/6)', - '(-x,-x,5/6)', - '(-x,0,1/2)', - '(0,-x,1/6)', - '(x,x,5/6)' - ] + 'coords_xyz': ['(x,0,1/2)', '(0,x,1/6)', '(-x,-x,5/6)', '(-x,0,1/2)', '(0,-x,1/6)', '(x,x,5/6)'], }, 'g': { 'multiplicity': 6, 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,0,0)', - '(0,x,2/3)', - '(-x,-x,1/3)', - '(-x,0,0)', - '(0,-x,2/3)', - '(x,x,1/3)' - ] + 'coords_xyz': ['(x,0,0)', '(0,x,2/3)', '(-x,-x,1/3)', '(-x,0,0)', '(0,-x,2/3)', '(x,x,1/3)'], }, 'f': { 'multiplicity': 6, @@ -42877,58 +19675,19 @@ '(1/2,1/2,z+1/3)', '(0,1/2,-z+2/3)', '(1/2,0,-z)', - '(1/2,1/2,-z+1/3)' - ] + '(1/2,1/2,-z+1/3)', + ], }, 'e': { 'multiplicity': 6, 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,z+2/3)', - '(0,0,z+1/3)', - '(0,0,-z+2/3)', - '(0,0,-z)', - '(0,0,-z+1/3)' - ] - }, - 'd': { - 'multiplicity': 3, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/2,0,1/2)', - '(0,1/2,1/6)', - '(1/2,1/2,5/6)' - ] - }, - 'c': { - 'multiplicity': 3, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/2,0,0)', - '(0,1/2,2/3)', - '(1/2,1/2,1/3)' - ] - }, - 'b': { - 'multiplicity': 3, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,1/2)', - '(0,0,1/6)', - '(0,0,5/6)' - ] + 'coords_xyz': ['(0,0,z)', '(0,0,z+2/3)', '(0,0,z+1/3)', '(0,0,-z+2/3)', '(0,0,-z)', '(0,0,-z+1/3)'], }, - 'a': { - 'multiplicity': 3, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,0)', - '(0,0,2/3)', - '(0,0,1/3)' - ] - } - } + 'd': {'multiplicity': 3, 'site_symmetry': '222', 'coords_xyz': ['(1/2,0,1/2)', '(0,1/2,1/6)', '(1/2,1/2,5/6)']}, + 'c': {'multiplicity': 3, 'site_symmetry': '222', 'coords_xyz': ['(1/2,0,0)', '(0,1/2,2/3)', '(1/2,1/2,1/3)']}, + 'b': {'multiplicity': 3, 'site_symmetry': '222', 'coords_xyz': ['(0,0,1/2)', '(0,0,1/6)', '(0,0,5/6)']}, + 'a': {'multiplicity': 3, 'site_symmetry': '222', 'coords_xyz': ['(0,0,0)', '(0,0,2/3)', '(0,0,1/3)']}, + }, }, (181, 'h'): { 'IT_number': 181, @@ -42952,56 +19711,28 @@ '(-x,-x+y,-z+2/3)', '(-y,-x,-z+1/3)', '(-x+y,y,-z)', - '(x,x-y,-z+2/3)' - ] + '(x,x-y,-z+2/3)', + ], }, 'j': { 'multiplicity': 6, 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,2x,1/2)', - '(-2x,-x,5/6)', - '(x,-x,1/6)', - '(-x,-2x,1/2)', - '(2x,x,5/6)', - '(-x,x,1/6)' - ] + 'coords_xyz': ['(x,2x,1/2)', '(-2x,-x,5/6)', '(x,-x,1/6)', '(-x,-2x,1/2)', '(2x,x,5/6)', '(-x,x,1/6)'], }, 'i': { 'multiplicity': 6, 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,2x,0)', - '(-2x,-x,1/3)', - '(x,-x,2/3)', - '(-x,-2x,0)', - '(2x,x,1/3)', - '(-x,x,2/3)' - ] + 'coords_xyz': ['(x,2x,0)', '(-2x,-x,1/3)', '(x,-x,2/3)', '(-x,-2x,0)', '(2x,x,1/3)', '(-x,x,2/3)'], }, 'h': { 'multiplicity': 6, 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,0,1/2)', - '(0,x,5/6)', - '(-x,-x,1/6)', - '(-x,0,1/2)', - '(0,-x,5/6)', - '(x,x,1/6)' - ] + 'coords_xyz': ['(x,0,1/2)', '(0,x,5/6)', '(-x,-x,1/6)', '(-x,0,1/2)', '(0,-x,5/6)', '(x,x,1/6)'], }, 'g': { 'multiplicity': 6, 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,0,0)', - '(0,x,1/3)', - '(-x,-x,2/3)', - '(-x,0,0)', - '(0,-x,1/3)', - '(x,x,2/3)' - ] + 'coords_xyz': ['(x,0,0)', '(0,x,1/3)', '(-x,-x,2/3)', '(-x,0,0)', '(0,-x,1/3)', '(x,x,2/3)'], }, 'f': { 'multiplicity': 6, @@ -43012,58 +19743,19 @@ '(1/2,1/2,z+2/3)', '(0,1/2,-z+1/3)', '(1/2,0,-z)', - '(1/2,1/2,-z+2/3)' - ] + '(1/2,1/2,-z+2/3)', + ], }, 'e': { 'multiplicity': 6, 'site_symmetry': '2..', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,z+1/3)', - '(0,0,z+2/3)', - '(0,0,-z+1/3)', - '(0,0,-z)', - '(0,0,-z+2/3)' - ] - }, - 'd': { - 'multiplicity': 3, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/2,0,1/2)', - '(0,1/2,5/6)', - '(1/2,1/2,1/6)' - ] - }, - 'c': { - 'multiplicity': 3, - 'site_symmetry': '222', - 'coords_xyz': [ - '(1/2,0,0)', - '(0,1/2,1/3)', - '(1/2,1/2,2/3)' - ] - }, - 'b': { - 'multiplicity': 3, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,1/2)', - '(0,0,5/6)', - '(0,0,1/6)' - ] + 'coords_xyz': ['(0,0,z)', '(0,0,z+1/3)', '(0,0,z+2/3)', '(0,0,-z+1/3)', '(0,0,-z)', '(0,0,-z+2/3)'], }, - 'a': { - 'multiplicity': 3, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,0,0)', - '(0,0,1/3)', - '(0,0,2/3)' - ] - } - } + 'd': {'multiplicity': 3, 'site_symmetry': '222', 'coords_xyz': ['(1/2,0,1/2)', '(0,1/2,5/6)', '(1/2,1/2,1/6)']}, + 'c': {'multiplicity': 3, 'site_symmetry': '222', 'coords_xyz': ['(1/2,0,0)', '(0,1/2,1/3)', '(1/2,1/2,2/3)']}, + 'b': {'multiplicity': 3, 'site_symmetry': '222', 'coords_xyz': ['(0,0,1/2)', '(0,0,5/6)', '(0,0,1/6)']}, + 'a': {'multiplicity': 3, 'site_symmetry': '222', 'coords_xyz': ['(0,0,0)', '(0,0,1/3)', '(0,0,2/3)']}, + }, }, (182, 'h'): { 'IT_number': 182, @@ -43087,86 +19779,34 @@ '(-x,-x+y,-z)', '(-y,-x,-z+1/2)', '(-x+y,y,-z+1/2)', - '(x,x-y,-z+1/2)' - ] + '(x,x-y,-z+1/2)', + ], }, 'h': { 'multiplicity': 6, 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,2x,1/4)', - '(-2x,-x,1/4)', - '(x,-x,1/4)', - '(-x,-2x,3/4)', - '(2x,x,3/4)', - '(-x,x,3/4)' - ] + 'coords_xyz': ['(x,2x,1/4)', '(-2x,-x,1/4)', '(x,-x,1/4)', '(-x,-2x,3/4)', '(2x,x,3/4)', '(-x,x,3/4)'], }, 'g': { 'multiplicity': 6, 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,0,0)', - '(0,x,0)', - '(-x,-x,0)', - '(-x,0,1/2)', - '(0,-x,1/2)', - '(x,x,1/2)' - ] + 'coords_xyz': ['(x,0,0)', '(0,x,0)', '(-x,-x,0)', '(-x,0,1/2)', '(0,-x,1/2)', '(x,x,1/2)'], }, 'f': { 'multiplicity': 4, 'site_symmetry': '3..', - 'coords_xyz': [ - '(1/3,2/3,z)', - '(2/3,1/3,z+1/2)', - '(2/3,1/3,-z)', - '(1/3,2/3,-z+1/2)' - ] + 'coords_xyz': ['(1/3,2/3,z)', '(2/3,1/3,z+1/2)', '(2/3,1/3,-z)', '(1/3,2/3,-z+1/2)'], }, 'e': { 'multiplicity': 4, 'site_symmetry': '3..', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,z+1/2)', - '(0,0,-z)', - '(0,0,-z+1/2)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '3.2', - 'coords_xyz': [ - '(1/3,2/3,3/4)', - '(2/3,1/3,1/4)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '3.2', - 'coords_xyz': [ - '(1/3,2/3,1/4)', - '(2/3,1/3,3/4)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '3.2', - 'coords_xyz': [ - '(0,0,1/4)', - '(0,0,3/4)' - ] + 'coords_xyz': ['(0,0,z)', '(0,0,z+1/2)', '(0,0,-z)', '(0,0,-z+1/2)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '32.', - 'coords_xyz': [ - '(0,0,0)', - '(0,0,1/2)' - ] - } - } + 'd': {'multiplicity': 2, 'site_symmetry': '3.2', 'coords_xyz': ['(1/3,2/3,3/4)', '(2/3,1/3,1/4)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '3.2', 'coords_xyz': ['(1/3,2/3,1/4)', '(2/3,1/3,3/4)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '3.2', 'coords_xyz': ['(0,0,1/4)', '(0,0,3/4)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '32.', 'coords_xyz': ['(0,0,0)', '(0,0,1/2)']}, + }, }, (183, 'h'): { 'IT_number': 183, @@ -43190,58 +19830,23 @@ '(x,x-y,z)', '(y,x,z)', '(x-y,-y,z)', - '(-x,-x+y,z)' - ] + '(-x,-x+y,z)', + ], }, 'e': { 'multiplicity': 6, 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,-x,z)', - '(x,2x,z)', - '(-2x,-x,z)', - '(-x,x,z)', - '(-x,-2x,z)', - '(2x,x,z)' - ] + 'coords_xyz': ['(x,-x,z)', '(x,2x,z)', '(-2x,-x,z)', '(-x,x,z)', '(-x,-2x,z)', '(2x,x,z)'], }, 'd': { - 'multiplicity': 6, - 'site_symmetry': '..m', - 'coords_xyz': [ - '(x,0,z)', - '(0,x,z)', - '(-x,-x,z)', - '(-x,0,z)', - '(0,-x,z)', - '(x,x,z)' - ] - }, - 'c': { - 'multiplicity': 3, - 'site_symmetry': '2mm', - 'coords_xyz': [ - '(1/2,0,z)', - '(0,1/2,z)', - '(1/2,1/2,z)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '3m.', - 'coords_xyz': [ - '(1/3,2/3,z)', - '(2/3,1/3,z)' - ] + 'multiplicity': 6, + 'site_symmetry': '..m', + 'coords_xyz': ['(x,0,z)', '(0,x,z)', '(-x,-x,z)', '(-x,0,z)', '(0,-x,z)', '(x,x,z)'], }, - 'a': { - 'multiplicity': 1, - 'site_symmetry': '6mm', - 'coords_xyz': [ - '(0,0,z)' - ] - } - } + 'c': {'multiplicity': 3, 'site_symmetry': '2mm', 'coords_xyz': ['(1/2,0,z)', '(0,1/2,z)', '(1/2,1/2,z)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '3m.', 'coords_xyz': ['(1/3,2/3,z)', '(2/3,1/3,z)']}, + 'a': {'multiplicity': 1, 'site_symmetry': '6mm', 'coords_xyz': ['(0,0,z)']}, + }, }, (184, 'h'): { 'IT_number': 184, @@ -43265,40 +19870,21 @@ '(x,x-y,z+1/2)', '(y,x,z+1/2)', '(x-y,-y,z+1/2)', - '(-x,-x+y,z+1/2)' - ] + '(-x,-x+y,z+1/2)', + ], }, 'c': { 'multiplicity': 6, 'site_symmetry': '2..', - 'coords_xyz': [ - '(1/2,0,z)', - '(0,1/2,z)', - '(1/2,1/2,z)', - '(0,1/2,z+1/2)', - '(1/2,0,z+1/2)', - '(1/2,1/2,z+1/2)' - ] + 'coords_xyz': ['(1/2,0,z)', '(0,1/2,z)', '(1/2,1/2,z)', '(0,1/2,z+1/2)', '(1/2,0,z+1/2)', '(1/2,1/2,z+1/2)'], }, 'b': { 'multiplicity': 4, 'site_symmetry': '3..', - 'coords_xyz': [ - '(1/3,2/3,z)', - '(2/3,1/3,z)', - '(1/3,2/3,z+1/2)', - '(2/3,1/3,z+1/2)' - ] + 'coords_xyz': ['(1/3,2/3,z)', '(2/3,1/3,z)', '(1/3,2/3,z+1/2)', '(2/3,1/3,z+1/2)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '6..', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,z+1/2)' - ] - } - } + 'a': {'multiplicity': 2, 'site_symmetry': '6..', 'coords_xyz': ['(0,0,z)', '(0,0,z+1/2)']}, + }, }, (185, 'h'): { 'IT_number': 185, @@ -43322,40 +19908,21 @@ '(x,x-y,z+1/2)', '(y,x,z)', '(x-y,-y,z)', - '(-x,-x+y,z)' - ] + '(-x,-x+y,z)', + ], }, 'c': { 'multiplicity': 6, 'site_symmetry': '..m', - 'coords_xyz': [ - '(x,0,z)', - '(0,x,z)', - '(-x,-x,z)', - '(-x,0,z+1/2)', - '(0,-x,z+1/2)', - '(x,x,z+1/2)' - ] + 'coords_xyz': ['(x,0,z)', '(0,x,z)', '(-x,-x,z)', '(-x,0,z+1/2)', '(0,-x,z+1/2)', '(x,x,z+1/2)'], }, 'b': { 'multiplicity': 4, 'site_symmetry': '3..', - 'coords_xyz': [ - '(1/3,2/3,z)', - '(2/3,1/3,z+1/2)', - '(1/3,2/3,z+1/2)', - '(2/3,1/3,z)' - ] + 'coords_xyz': ['(1/3,2/3,z)', '(2/3,1/3,z+1/2)', '(1/3,2/3,z+1/2)', '(2/3,1/3,z)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '3.m', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,z+1/2)' - ] - } - } + 'a': {'multiplicity': 2, 'site_symmetry': '3.m', 'coords_xyz': ['(0,0,z)', '(0,0,z+1/2)']}, + }, }, (186, 'h'): { 'IT_number': 186, @@ -43379,38 +19946,17 @@ '(x,x-y,z)', '(y,x,z+1/2)', '(x-y,-y,z+1/2)', - '(-x,-x+y,z+1/2)' - ] + '(-x,-x+y,z+1/2)', + ], }, 'c': { 'multiplicity': 6, 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,-x,z)', - '(x,2x,z)', - '(-2x,-x,z)', - '(-x,x,z+1/2)', - '(-x,-2x,z+1/2)', - '(2x,x,z+1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '3m.', - 'coords_xyz': [ - '(1/3,2/3,z)', - '(2/3,1/3,z+1/2)' - ] + 'coords_xyz': ['(x,-x,z)', '(x,2x,z)', '(-2x,-x,z)', '(-x,x,z+1/2)', '(-x,-2x,z+1/2)', '(2x,x,z+1/2)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '3m.', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,z+1/2)' - ] - } - } + 'b': {'multiplicity': 2, 'site_symmetry': '3m.', 'coords_xyz': ['(1/3,2/3,z)', '(2/3,1/3,z+1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '3m.', 'coords_xyz': ['(0,0,z)', '(0,0,z+1/2)']}, + }, }, (187, 'h'): { 'IT_number': 187, @@ -43434,130 +19980,36 @@ '(x,x-y,z)', '(-y,-x,-z)', '(-x+y,y,-z)', - '(x,x-y,-z)' - ] + '(x,x-y,-z)', + ], }, 'n': { 'multiplicity': 6, 'site_symmetry': '.m.', - 'coords_xyz': [ - '(x,-x,z)', - '(x,2x,z)', - '(-2x,-x,z)', - '(x,-x,-z)', - '(x,2x,-z)', - '(-2x,-x,-z)' - ] + 'coords_xyz': ['(x,-x,z)', '(x,2x,z)', '(-2x,-x,z)', '(x,-x,-z)', '(x,2x,-z)', '(-2x,-x,-z)'], }, 'm': { 'multiplicity': 6, 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,y,1/2)', - '(-y,x-y,1/2)', - '(-x+y,-x,1/2)', - '(-y,-x,1/2)', - '(-x+y,y,1/2)', - '(x,x-y,1/2)' - ] + 'coords_xyz': ['(x,y,1/2)', '(-y,x-y,1/2)', '(-x+y,-x,1/2)', '(-y,-x,1/2)', '(-x+y,y,1/2)', '(x,x-y,1/2)'], }, 'l': { 'multiplicity': 6, 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,y,0)', - '(-y,x-y,0)', - '(-x+y,-x,0)', - '(-y,-x,0)', - '(-x+y,y,0)', - '(x,x-y,0)' - ] - }, - 'k': { - 'multiplicity': 3, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(x,-x,1/2)', - '(x,2x,1/2)', - '(-2x,-x,1/2)' - ] - }, - 'j': { - 'multiplicity': 3, - 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(x,-x,0)', - '(x,2x,0)', - '(-2x,-x,0)' - ] - }, - 'i': { - 'multiplicity': 2, - 'site_symmetry': '3m.', - 'coords_xyz': [ - '(2/3,1/3,z)', - '(2/3,1/3,-z)' - ] - }, - 'h': { - 'multiplicity': 2, - 'site_symmetry': '3m.', - 'coords_xyz': [ - '(1/3,2/3,z)', - '(1/3,2/3,-z)' - ] - }, - 'g': { - 'multiplicity': 2, - 'site_symmetry': '3m.', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)' - ] - }, - 'f': { - 'multiplicity': 1, - 'site_symmetry': '-6m2', - 'coords_xyz': [ - '(2/3,1/3,1/2)' - ] - }, - 'e': { - 'multiplicity': 1, - 'site_symmetry': '-6m2', - 'coords_xyz': [ - '(2/3,1/3,0)' - ] - }, - 'd': { - 'multiplicity': 1, - 'site_symmetry': '-6m2', - 'coords_xyz': [ - '(1/3,2/3,1/2)' - ] - }, - 'c': { - 'multiplicity': 1, - 'site_symmetry': '-6m2', - 'coords_xyz': [ - '(1/3,2/3,0)' - ] - }, - 'b': { - 'multiplicity': 1, - 'site_symmetry': '-6m2', - 'coords_xyz': [ - '(0,0,1/2)' - ] - }, - 'a': { - 'multiplicity': 1, - 'site_symmetry': '-6m2', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'coords_xyz': ['(x,y,0)', '(-y,x-y,0)', '(-x+y,-x,0)', '(-y,-x,0)', '(-x+y,y,0)', '(x,x-y,0)'], + }, + 'k': {'multiplicity': 3, 'site_symmetry': 'mm2', 'coords_xyz': ['(x,-x,1/2)', '(x,2x,1/2)', '(-2x,-x,1/2)']}, + 'j': {'multiplicity': 3, 'site_symmetry': 'mm2', 'coords_xyz': ['(x,-x,0)', '(x,2x,0)', '(-2x,-x,0)']}, + 'i': {'multiplicity': 2, 'site_symmetry': '3m.', 'coords_xyz': ['(2/3,1/3,z)', '(2/3,1/3,-z)']}, + 'h': {'multiplicity': 2, 'site_symmetry': '3m.', 'coords_xyz': ['(1/3,2/3,z)', '(1/3,2/3,-z)']}, + 'g': {'multiplicity': 2, 'site_symmetry': '3m.', 'coords_xyz': ['(0,0,z)', '(0,0,-z)']}, + 'f': {'multiplicity': 1, 'site_symmetry': '-6m2', 'coords_xyz': ['(2/3,1/3,1/2)']}, + 'e': {'multiplicity': 1, 'site_symmetry': '-6m2', 'coords_xyz': ['(2/3,1/3,0)']}, + 'd': {'multiplicity': 1, 'site_symmetry': '-6m2', 'coords_xyz': ['(1/3,2/3,1/2)']}, + 'c': {'multiplicity': 1, 'site_symmetry': '-6m2', 'coords_xyz': ['(1/3,2/3,0)']}, + 'b': {'multiplicity': 1, 'site_symmetry': '-6m2', 'coords_xyz': ['(0,0,1/2)']}, + 'a': {'multiplicity': 1, 'site_symmetry': '-6m2', 'coords_xyz': ['(0,0,0)']}, + }, }, (188, 'h'): { 'IT_number': 188, @@ -43581,112 +20033,41 @@ '(x,x-y,z+1/2)', '(-y,-x,-z)', '(-x+y,y,-z)', - '(x,x-y,-z)' - ] + '(x,x-y,-z)', + ], }, 'k': { 'multiplicity': 6, 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,y,1/4)', - '(-y,x-y,1/4)', - '(-x+y,-x,1/4)', - '(-y,-x,3/4)', - '(-x+y,y,3/4)', - '(x,x-y,3/4)' - ] + 'coords_xyz': ['(x,y,1/4)', '(-y,x-y,1/4)', '(-x+y,-x,1/4)', '(-y,-x,3/4)', '(-x+y,y,3/4)', '(x,x-y,3/4)'], }, 'j': { 'multiplicity': 6, 'site_symmetry': '..2', - 'coords_xyz': [ - '(x,-x,0)', - '(x,2x,0)', - '(-2x,-x,0)', - '(x,-x,1/2)', - '(x,2x,1/2)', - '(-2x,-x,1/2)' - ] + 'coords_xyz': ['(x,-x,0)', '(x,2x,0)', '(-2x,-x,0)', '(x,-x,1/2)', '(x,2x,1/2)', '(-2x,-x,1/2)'], }, 'i': { 'multiplicity': 4, 'site_symmetry': '3..', - 'coords_xyz': [ - '(2/3,1/3,z)', - '(2/3,1/3,-z+1/2)', - '(2/3,1/3,z+1/2)', - '(2/3,1/3,-z)' - ] + 'coords_xyz': ['(2/3,1/3,z)', '(2/3,1/3,-z+1/2)', '(2/3,1/3,z+1/2)', '(2/3,1/3,-z)'], }, 'h': { 'multiplicity': 4, 'site_symmetry': '3..', - 'coords_xyz': [ - '(1/3,2/3,z)', - '(1/3,2/3,-z+1/2)', - '(1/3,2/3,z+1/2)', - '(1/3,2/3,-z)' - ] + 'coords_xyz': ['(1/3,2/3,z)', '(1/3,2/3,-z+1/2)', '(1/3,2/3,z+1/2)', '(1/3,2/3,-z)'], }, 'g': { 'multiplicity': 4, 'site_symmetry': '3..', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z+1/2)', - '(0,0,z+1/2)', - '(0,0,-z)' - ] - }, - 'f': { - 'multiplicity': 2, - 'site_symmetry': '-6..', - 'coords_xyz': [ - '(2/3,1/3,1/4)', - '(2/3,1/3,3/4)' - ] - }, - 'e': { - 'multiplicity': 2, - 'site_symmetry': '3.2', - 'coords_xyz': [ - '(2/3,1/3,0)', - '(2/3,1/3,1/2)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '-6..', - 'coords_xyz': [ - '(1/3,2/3,1/4)', - '(1/3,2/3,3/4)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '3.2', - 'coords_xyz': [ - '(1/3,2/3,0)', - '(1/3,2/3,1/2)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '-6..', - 'coords_xyz': [ - '(0,0,1/4)', - '(0,0,3/4)' - ] + 'coords_xyz': ['(0,0,z)', '(0,0,-z+1/2)', '(0,0,z+1/2)', '(0,0,-z)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '3.2', - 'coords_xyz': [ - '(0,0,0)', - '(0,0,1/2)' - ] - } - } + 'f': {'multiplicity': 2, 'site_symmetry': '-6..', 'coords_xyz': ['(2/3,1/3,1/4)', '(2/3,1/3,3/4)']}, + 'e': {'multiplicity': 2, 'site_symmetry': '3.2', 'coords_xyz': ['(2/3,1/3,0)', '(2/3,1/3,1/2)']}, + 'd': {'multiplicity': 2, 'site_symmetry': '-6..', 'coords_xyz': ['(1/3,2/3,1/4)', '(1/3,2/3,3/4)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '3.2', 'coords_xyz': ['(1/3,2/3,0)', '(1/3,2/3,1/2)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '-6..', 'coords_xyz': ['(0,0,1/4)', '(0,0,3/4)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '3.2', 'coords_xyz': ['(0,0,0)', '(0,0,1/2)']}, + }, }, (189, 'h'): { 'IT_number': 189, @@ -43710,112 +20091,37 @@ '(-x,-x+y,-z)', '(y,x,z)', '(x-y,-y,z)', - '(-x,-x+y,z)' - ] + '(-x,-x+y,z)', + ], }, 'k': { 'multiplicity': 6, 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,y,1/2)', - '(-y,x-y,1/2)', - '(-x+y,-x,1/2)', - '(y,x,1/2)', - '(x-y,-y,1/2)', - '(-x,-x+y,1/2)' - ] + 'coords_xyz': ['(x,y,1/2)', '(-y,x-y,1/2)', '(-x+y,-x,1/2)', '(y,x,1/2)', '(x-y,-y,1/2)', '(-x,-x+y,1/2)'], }, 'j': { 'multiplicity': 6, 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,y,0)', - '(-y,x-y,0)', - '(-x+y,-x,0)', - '(y,x,0)', - '(x-y,-y,0)', - '(-x,-x+y,0)' - ] + 'coords_xyz': ['(x,y,0)', '(-y,x-y,0)', '(-x+y,-x,0)', '(y,x,0)', '(x-y,-y,0)', '(-x,-x+y,0)'], }, 'i': { 'multiplicity': 6, 'site_symmetry': '..m', - 'coords_xyz': [ - '(x,0,z)', - '(0,x,z)', - '(-x,-x,z)', - '(x,0,-z)', - '(0,x,-z)', - '(-x,-x,-z)' - ] + 'coords_xyz': ['(x,0,z)', '(0,x,z)', '(-x,-x,z)', '(x,0,-z)', '(0,x,-z)', '(-x,-x,-z)'], }, 'h': { 'multiplicity': 4, 'site_symmetry': '3..', - 'coords_xyz': [ - '(1/3,2/3,z)', - '(1/3,2/3,-z)', - '(2/3,1/3,-z)', - '(2/3,1/3,z)' - ] - }, - 'g': { - 'multiplicity': 3, - 'site_symmetry': 'm2m', - 'coords_xyz': [ - '(x,0,1/2)', - '(0,x,1/2)', - '(-x,-x,1/2)' - ] - }, - 'f': { - 'multiplicity': 3, - 'site_symmetry': 'm2m', - 'coords_xyz': [ - '(x,0,0)', - '(0,x,0)', - '(-x,-x,0)' - ] - }, - 'e': { - 'multiplicity': 2, - 'site_symmetry': '3.m', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '-6..', - 'coords_xyz': [ - '(1/3,2/3,1/2)', - '(2/3,1/3,1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '-6..', - 'coords_xyz': [ - '(1/3,2/3,0)', - '(2/3,1/3,0)' - ] - }, - 'b': { - 'multiplicity': 1, - 'site_symmetry': '-62m', - 'coords_xyz': [ - '(0,0,1/2)' - ] + 'coords_xyz': ['(1/3,2/3,z)', '(1/3,2/3,-z)', '(2/3,1/3,-z)', '(2/3,1/3,z)'], }, - 'a': { - 'multiplicity': 1, - 'site_symmetry': '-62m', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'g': {'multiplicity': 3, 'site_symmetry': 'm2m', 'coords_xyz': ['(x,0,1/2)', '(0,x,1/2)', '(-x,-x,1/2)']}, + 'f': {'multiplicity': 3, 'site_symmetry': 'm2m', 'coords_xyz': ['(x,0,0)', '(0,x,0)', '(-x,-x,0)']}, + 'e': {'multiplicity': 2, 'site_symmetry': '3.m', 'coords_xyz': ['(0,0,z)', '(0,0,-z)']}, + 'd': {'multiplicity': 2, 'site_symmetry': '-6..', 'coords_xyz': ['(1/3,2/3,1/2)', '(2/3,1/3,1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '-6..', 'coords_xyz': ['(1/3,2/3,0)', '(2/3,1/3,0)']}, + 'b': {'multiplicity': 1, 'site_symmetry': '-62m', 'coords_xyz': ['(0,0,1/2)']}, + 'a': {'multiplicity': 1, 'site_symmetry': '-62m', 'coords_xyz': ['(0,0,0)']}, + }, }, (190, 'h'): { 'IT_number': 190, @@ -43839,86 +20145,34 @@ '(-x,-x+y,-z)', '(y,x,z+1/2)', '(x-y,-y,z+1/2)', - '(-x,-x+y,z+1/2)' - ] + '(-x,-x+y,z+1/2)', + ], }, 'h': { 'multiplicity': 6, 'site_symmetry': 'm..', - 'coords_xyz': [ - '(x,y,1/4)', - '(-y,x-y,1/4)', - '(-x+y,-x,1/4)', - '(y,x,3/4)', - '(x-y,-y,3/4)', - '(-x,-x+y,3/4)' - ] + 'coords_xyz': ['(x,y,1/4)', '(-y,x-y,1/4)', '(-x+y,-x,1/4)', '(y,x,3/4)', '(x-y,-y,3/4)', '(-x,-x+y,3/4)'], }, 'g': { 'multiplicity': 6, 'site_symmetry': '.2.', - 'coords_xyz': [ - '(x,0,0)', - '(0,x,0)', - '(-x,-x,0)', - '(x,0,1/2)', - '(0,x,1/2)', - '(-x,-x,1/2)' - ] - }, - 'f': { - 'multiplicity': 4, - 'site_symmetry': '3..', - 'coords_xyz': [ - '(1/3,2/3,z)', - '(1/3,2/3,-z+1/2)', - '(2/3,1/3,-z)', - '(2/3,1/3,z+1/2)' - ] - }, - 'e': { - 'multiplicity': 4, - 'site_symmetry': '3..', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z+1/2)', - '(0,0,-z)', - '(0,0,z+1/2)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '-6..', - 'coords_xyz': [ - '(2/3,1/3,1/4)', - '(1/3,2/3,3/4)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '-6..', - 'coords_xyz': [ - '(1/3,2/3,1/4)', - '(2/3,1/3,3/4)' - ] + 'coords_xyz': ['(x,0,0)', '(0,x,0)', '(-x,-x,0)', '(x,0,1/2)', '(0,x,1/2)', '(-x,-x,1/2)'], }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '-6..', - 'coords_xyz': [ - '(0,0,1/4)', - '(0,0,3/4)' - ] + 'f': { + 'multiplicity': 4, + 'site_symmetry': '3..', + 'coords_xyz': ['(1/3,2/3,z)', '(1/3,2/3,-z+1/2)', '(2/3,1/3,-z)', '(2/3,1/3,z+1/2)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '32.', - 'coords_xyz': [ - '(0,0,0)', - '(0,0,1/2)' - ] - } - } + 'e': { + 'multiplicity': 4, + 'site_symmetry': '3..', + 'coords_xyz': ['(0,0,z)', '(0,0,-z+1/2)', '(0,0,-z)', '(0,0,z+1/2)'], + }, + 'd': {'multiplicity': 2, 'site_symmetry': '-6..', 'coords_xyz': ['(2/3,1/3,1/4)', '(1/3,2/3,3/4)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '-6..', 'coords_xyz': ['(1/3,2/3,1/4)', '(2/3,1/3,3/4)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '-6..', 'coords_xyz': ['(0,0,1/4)', '(0,0,3/4)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '32.', 'coords_xyz': ['(0,0,0)', '(0,0,1/2)']}, + }, }, (191, 'h'): { 'IT_number': 191, @@ -43954,8 +20208,8 @@ '(x,x-y,z)', '(y,x,z)', '(x-y,-y,z)', - '(-x,-x+y,z)' - ] + '(-x,-x+y,z)', + ], }, 'q': { 'multiplicity': 12, @@ -43972,8 +20226,8 @@ '(-x,-x+y,1/2)', '(-y,-x,1/2)', '(-x+y,y,1/2)', - '(x,x-y,1/2)' - ] + '(x,x-y,1/2)', + ], }, 'p': { 'multiplicity': 12, @@ -43990,8 +20244,8 @@ '(-x,-x+y,0)', '(-y,-x,0)', '(-x+y,y,0)', - '(x,x-y,0)' - ] + '(x,x-y,0)', + ], }, 'o': { 'multiplicity': 12, @@ -44008,8 +20262,8 @@ '(-x,x,-z)', '(-2x,-x,-z)', '(x,2x,-z)', - '(x,-x,-z)' - ] + '(x,-x,-z)', + ], }, 'n': { 'multiplicity': 12, @@ -44026,136 +20280,47 @@ '(-x,-x,-z)', '(0,-x,-z)', '(-x,0,-z)', - '(x,x,-z)' - ] + '(x,x,-z)', + ], }, 'm': { 'multiplicity': 6, 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(x,2x,1/2)', - '(-2x,-x,1/2)', - '(x,-x,1/2)', - '(-x,-2x,1/2)', - '(2x,x,1/2)', - '(-x,x,1/2)' - ] + 'coords_xyz': ['(x,2x,1/2)', '(-2x,-x,1/2)', '(x,-x,1/2)', '(-x,-2x,1/2)', '(2x,x,1/2)', '(-x,x,1/2)'], }, 'l': { 'multiplicity': 6, 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(x,2x,0)', - '(-2x,-x,0)', - '(x,-x,0)', - '(-x,-2x,0)', - '(2x,x,0)', - '(-x,x,0)' - ] + 'coords_xyz': ['(x,2x,0)', '(-2x,-x,0)', '(x,-x,0)', '(-x,-2x,0)', '(2x,x,0)', '(-x,x,0)'], }, 'k': { 'multiplicity': 6, 'site_symmetry': 'm2m', - 'coords_xyz': [ - '(x,0,1/2)', - '(0,x,1/2)', - '(-x,-x,1/2)', - '(-x,0,1/2)', - '(0,-x,1/2)', - '(x,x,1/2)' - ] + 'coords_xyz': ['(x,0,1/2)', '(0,x,1/2)', '(-x,-x,1/2)', '(-x,0,1/2)', '(0,-x,1/2)', '(x,x,1/2)'], }, 'j': { 'multiplicity': 6, 'site_symmetry': 'm2m', - 'coords_xyz': [ - '(x,0,0)', - '(0,x,0)', - '(-x,-x,0)', - '(-x,0,0)', - '(0,-x,0)', - '(x,x,0)' - ] + 'coords_xyz': ['(x,0,0)', '(0,x,0)', '(-x,-x,0)', '(-x,0,0)', '(0,-x,0)', '(x,x,0)'], }, 'i': { 'multiplicity': 6, 'site_symmetry': '2mm', - 'coords_xyz': [ - '(1/2,0,z)', - '(0,1/2,z)', - '(1/2,1/2,z)', - '(0,1/2,-z)', - '(1/2,0,-z)', - '(1/2,1/2,-z)' - ] + 'coords_xyz': ['(1/2,0,z)', '(0,1/2,z)', '(1/2,1/2,z)', '(0,1/2,-z)', '(1/2,0,-z)', '(1/2,1/2,-z)'], }, 'h': { 'multiplicity': 4, 'site_symmetry': '3m.', - 'coords_xyz': [ - '(1/3,2/3,z)', - '(2/3,1/3,z)', - '(2/3,1/3,-z)', - '(1/3,2/3,-z)' - ] - }, - 'g': { - 'multiplicity': 3, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(1/2,0,1/2)', - '(0,1/2,1/2)', - '(1/2,1/2,1/2)' - ] - }, - 'f': { - 'multiplicity': 3, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(1/2,0,0)', - '(0,1/2,0)', - '(1/2,1/2,0)' - ] - }, - 'e': { - 'multiplicity': 2, - 'site_symmetry': '6mm', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '-6m2', - 'coords_xyz': [ - '(1/3,2/3,1/2)', - '(2/3,1/3,1/2)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '-6m2', - 'coords_xyz': [ - '(1/3,2/3,0)', - '(2/3,1/3,0)' - ] - }, - 'b': { - 'multiplicity': 1, - 'site_symmetry': '6/mmm', - 'coords_xyz': [ - '(0,0,1/2)' - ] + 'coords_xyz': ['(1/3,2/3,z)', '(2/3,1/3,z)', '(2/3,1/3,-z)', '(1/3,2/3,-z)'], }, - 'a': { - 'multiplicity': 1, - 'site_symmetry': '6/mmm', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'g': {'multiplicity': 3, 'site_symmetry': 'mmm', 'coords_xyz': ['(1/2,0,1/2)', '(0,1/2,1/2)', '(1/2,1/2,1/2)']}, + 'f': {'multiplicity': 3, 'site_symmetry': 'mmm', 'coords_xyz': ['(1/2,0,0)', '(0,1/2,0)', '(1/2,1/2,0)']}, + 'e': {'multiplicity': 2, 'site_symmetry': '6mm', 'coords_xyz': ['(0,0,z)', '(0,0,-z)']}, + 'd': {'multiplicity': 2, 'site_symmetry': '-6m2', 'coords_xyz': ['(1/3,2/3,1/2)', '(2/3,1/3,1/2)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '-6m2', 'coords_xyz': ['(1/3,2/3,0)', '(2/3,1/3,0)']}, + 'b': {'multiplicity': 1, 'site_symmetry': '6/mmm', 'coords_xyz': ['(0,0,1/2)']}, + 'a': {'multiplicity': 1, 'site_symmetry': '6/mmm', 'coords_xyz': ['(0,0,0)']}, + }, }, (192, 'h'): { 'IT_number': 192, @@ -44191,8 +20356,8 @@ '(x,x-y,z+1/2)', '(y,x,z+1/2)', '(x-y,-y,z+1/2)', - '(-x,-x+y,z+1/2)' - ] + '(-x,-x+y,z+1/2)', + ], }, 'l': { 'multiplicity': 12, @@ -44209,8 +20374,8 @@ '(-x,-x+y,1/2)', '(-y,-x,1/2)', '(-x+y,y,1/2)', - '(x,x-y,1/2)' - ] + '(x,x-y,1/2)', + ], }, 'k': { 'multiplicity': 12, @@ -44227,8 +20392,8 @@ '(-x,x,3/4)', '(x,2x,3/4)', '(-2x,-x,3/4)', - '(x,-x,3/4)' - ] + '(x,-x,3/4)', + ], }, 'j': { 'multiplicity': 12, @@ -44245,8 +20410,8 @@ '(x,x,3/4)', '(x,0,3/4)', '(0,x,3/4)', - '(-x,-x,3/4)' - ] + '(-x,-x,3/4)', + ], }, 'i': { 'multiplicity': 12, @@ -44263,8 +20428,8 @@ '(1/2,1/2,-z)', '(0,1/2,z+1/2)', '(1/2,0,z+1/2)', - '(1/2,1/2,z+1/2)' - ] + '(1/2,1/2,z+1/2)', + ], }, 'h': { 'multiplicity': 8, @@ -44277,80 +20442,37 @@ '(2/3,1/3,-z)', '(1/3,2/3,-z)', '(1/3,2/3,z+1/2)', - '(2/3,1/3,z+1/2)' - ] + '(2/3,1/3,z+1/2)', + ], }, 'g': { 'multiplicity': 6, 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(1/2,0,0)', - '(0,1/2,0)', - '(1/2,1/2,0)', - '(0,1/2,1/2)', - '(1/2,0,1/2)', - '(1/2,1/2,1/2)' - ] + 'coords_xyz': ['(1/2,0,0)', '(0,1/2,0)', '(1/2,1/2,0)', '(0,1/2,1/2)', '(1/2,0,1/2)', '(1/2,1/2,1/2)'], }, 'f': { 'multiplicity': 6, 'site_symmetry': '222', - 'coords_xyz': [ - '(1/2,0,1/4)', - '(0,1/2,1/4)', - '(1/2,1/2,1/4)', - '(1/2,0,3/4)', - '(0,1/2,3/4)', - '(1/2,1/2,3/4)' - ] + 'coords_xyz': ['(1/2,0,1/4)', '(0,1/2,1/4)', '(1/2,1/2,1/4)', '(1/2,0,3/4)', '(0,1/2,3/4)', '(1/2,1/2,3/4)'], }, 'e': { 'multiplicity': 4, 'site_symmetry': '6..', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,-z+1/2)', - '(0,0,-z)', - '(0,0,z+1/2)' - ] + 'coords_xyz': ['(0,0,z)', '(0,0,-z+1/2)', '(0,0,-z)', '(0,0,z+1/2)'], }, 'd': { 'multiplicity': 4, 'site_symmetry': '-6..', - 'coords_xyz': [ - '(1/3,2/3,0)', - '(2/3,1/3,0)', - '(2/3,1/3,1/2)', - '(1/3,2/3,1/2)' - ] + 'coords_xyz': ['(1/3,2/3,0)', '(2/3,1/3,0)', '(2/3,1/3,1/2)', '(1/3,2/3,1/2)'], }, 'c': { 'multiplicity': 4, 'site_symmetry': '3.2', - 'coords_xyz': [ - '(1/3,2/3,1/4)', - '(2/3,1/3,1/4)', - '(2/3,1/3,3/4)', - '(1/3,2/3,3/4)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '6/m..', - 'coords_xyz': [ - '(0,0,0)', - '(0,0,1/2)' - ] + 'coords_xyz': ['(1/3,2/3,1/4)', '(2/3,1/3,1/4)', '(2/3,1/3,3/4)', '(1/3,2/3,3/4)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '622', - 'coords_xyz': [ - '(0,0,1/4)', - '(0,0,3/4)' - ] - } - } + 'b': {'multiplicity': 2, 'site_symmetry': '6/m..', 'coords_xyz': ['(0,0,0)', '(0,0,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '622', 'coords_xyz': ['(0,0,1/4)', '(0,0,3/4)']}, + }, }, (193, 'h'): { 'IT_number': 193, @@ -44386,8 +20508,8 @@ '(x,x-y,z+1/2)', '(y,x,z)', '(x-y,-y,z)', - '(-x,-x+y,z)' - ] + '(-x,-x+y,z)', + ], }, 'k': { 'multiplicity': 12, @@ -44404,8 +20526,8 @@ '(-x,-x,-z+1/2)', '(0,-x,-z)', '(-x,0,-z)', - '(x,x,-z)' - ] + '(x,x,-z)', + ], }, 'j': { 'multiplicity': 12, @@ -44422,8 +20544,8 @@ '(-x,-x+y,1/4)', '(-y,-x,3/4)', '(-x+y,y,3/4)', - '(x,x-y,3/4)' - ] + '(x,x-y,3/4)', + ], }, 'i': { 'multiplicity': 12, @@ -44440,8 +20562,8 @@ '(-x,x,0)', '(x,2x,1/2)', '(-2x,-x,1/2)', - '(x,-x,1/2)' - ] + '(x,-x,1/2)', + ], }, 'h': { 'multiplicity': 8, @@ -44454,80 +20576,37 @@ '(2/3,1/3,-z)', '(1/3,2/3,-z+1/2)', '(1/3,2/3,z+1/2)', - '(2/3,1/3,z)' - ] + '(2/3,1/3,z)', + ], }, 'g': { 'multiplicity': 6, 'site_symmetry': 'm2m', - 'coords_xyz': [ - '(x,0,1/4)', - '(0,x,1/4)', - '(-x,-x,1/4)', - '(-x,0,3/4)', - '(0,-x,3/4)', - '(x,x,3/4)' - ] + 'coords_xyz': ['(x,0,1/4)', '(0,x,1/4)', '(-x,-x,1/4)', '(-x,0,3/4)', '(0,-x,3/4)', '(x,x,3/4)'], }, 'f': { 'multiplicity': 6, 'site_symmetry': '..2/m', - 'coords_xyz': [ - '(1/2,0,0)', - '(0,1/2,0)', - '(1/2,1/2,0)', - '(1/2,0,1/2)', - '(0,1/2,1/2)', - '(1/2,1/2,1/2)' - ] + 'coords_xyz': ['(1/2,0,0)', '(0,1/2,0)', '(1/2,1/2,0)', '(1/2,0,1/2)', '(0,1/2,1/2)', '(1/2,1/2,1/2)'], }, 'e': { 'multiplicity': 4, 'site_symmetry': '3.m', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,z+1/2)', - '(0,0,-z+1/2)', - '(0,0,-z)' - ] + 'coords_xyz': ['(0,0,z)', '(0,0,z+1/2)', '(0,0,-z+1/2)', '(0,0,-z)'], }, 'd': { 'multiplicity': 4, 'site_symmetry': '3.2', - 'coords_xyz': [ - '(1/3,2/3,0)', - '(2/3,1/3,1/2)', - '(2/3,1/3,0)', - '(1/3,2/3,1/2)' - ] + 'coords_xyz': ['(1/3,2/3,0)', '(2/3,1/3,1/2)', '(2/3,1/3,0)', '(1/3,2/3,1/2)'], }, 'c': { 'multiplicity': 4, 'site_symmetry': '-6..', - 'coords_xyz': [ - '(1/3,2/3,1/4)', - '(2/3,1/3,3/4)', - '(2/3,1/3,1/4)', - '(1/3,2/3,3/4)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '-3.m', - 'coords_xyz': [ - '(0,0,0)', - '(0,0,1/2)' - ] + 'coords_xyz': ['(1/3,2/3,1/4)', '(2/3,1/3,3/4)', '(2/3,1/3,1/4)', '(1/3,2/3,3/4)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '-62m', - 'coords_xyz': [ - '(0,0,1/4)', - '(0,0,3/4)' - ] - } - } + 'b': {'multiplicity': 2, 'site_symmetry': '-3.m', 'coords_xyz': ['(0,0,0)', '(0,0,1/2)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '-62m', 'coords_xyz': ['(0,0,1/4)', '(0,0,3/4)']}, + }, }, (194, 'h'): { 'IT_number': 194, @@ -44563,8 +20642,8 @@ '(x,x-y,z)', '(y,x,z+1/2)', '(x-y,-y,z+1/2)', - '(-x,-x+y,z+1/2)' - ] + '(-x,-x+y,z+1/2)', + ], }, 'k': { 'multiplicity': 12, @@ -44581,8 +20660,8 @@ '(-x,x,-z)', '(-2x,-x,-z+1/2)', '(x,2x,-z+1/2)', - '(x,-x,-z+1/2)' - ] + '(x,-x,-z+1/2)', + ], }, 'j': { 'multiplicity': 12, @@ -44599,8 +20678,8 @@ '(-x,-x+y,3/4)', '(-y,-x,1/4)', '(-x+y,y,1/4)', - '(x,x-y,1/4)' - ] + '(x,x-y,1/4)', + ], }, 'i': { 'multiplicity': 12, @@ -44617,86 +20696,34 @@ '(x,x,0)', '(x,0,1/2)', '(0,x,1/2)', - '(-x,-x,1/2)' - ] + '(-x,-x,1/2)', + ], }, 'h': { 'multiplicity': 6, 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(x,2x,1/4)', - '(-2x,-x,1/4)', - '(x,-x,1/4)', - '(-x,-2x,3/4)', - '(2x,x,3/4)', - '(-x,x,3/4)' - ] + 'coords_xyz': ['(x,2x,1/4)', '(-2x,-x,1/4)', '(x,-x,1/4)', '(-x,-2x,3/4)', '(2x,x,3/4)', '(-x,x,3/4)'], }, 'g': { 'multiplicity': 6, 'site_symmetry': '.2/m.', - 'coords_xyz': [ - '(1/2,0,0)', - '(0,1/2,0)', - '(1/2,1/2,0)', - '(1/2,0,1/2)', - '(0,1/2,1/2)', - '(1/2,1/2,1/2)' - ] + 'coords_xyz': ['(1/2,0,0)', '(0,1/2,0)', '(1/2,1/2,0)', '(1/2,0,1/2)', '(0,1/2,1/2)', '(1/2,1/2,1/2)'], }, 'f': { 'multiplicity': 4, 'site_symmetry': '3m.', - 'coords_xyz': [ - '(1/3,2/3,z)', - '(2/3,1/3,z+1/2)', - '(2/3,1/3,-z)', - '(1/3,2/3,-z+1/2)' - ] + 'coords_xyz': ['(1/3,2/3,z)', '(2/3,1/3,z+1/2)', '(2/3,1/3,-z)', '(1/3,2/3,-z+1/2)'], }, 'e': { 'multiplicity': 4, 'site_symmetry': '3m.', - 'coords_xyz': [ - '(0,0,z)', - '(0,0,z+1/2)', - '(0,0,-z)', - '(0,0,-z+1/2)' - ] - }, - 'd': { - 'multiplicity': 2, - 'site_symmetry': '-6m2', - 'coords_xyz': [ - '(1/3,2/3,3/4)', - '(2/3,1/3,1/4)' - ] - }, - 'c': { - 'multiplicity': 2, - 'site_symmetry': '-6m2', - 'coords_xyz': [ - '(1/3,2/3,1/4)', - '(2/3,1/3,3/4)' - ] - }, - 'b': { - 'multiplicity': 2, - 'site_symmetry': '-6m2', - 'coords_xyz': [ - '(0,0,1/4)', - '(0,0,3/4)' - ] + 'coords_xyz': ['(0,0,z)', '(0,0,z+1/2)', '(0,0,-z)', '(0,0,-z+1/2)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '-3m.', - 'coords_xyz': [ - '(0,0,0)', - '(0,0,1/2)' - ] - } - } + 'd': {'multiplicity': 2, 'site_symmetry': '-6m2', 'coords_xyz': ['(1/3,2/3,3/4)', '(2/3,1/3,1/4)']}, + 'c': {'multiplicity': 2, 'site_symmetry': '-6m2', 'coords_xyz': ['(1/3,2/3,1/4)', '(2/3,1/3,3/4)']}, + 'b': {'multiplicity': 2, 'site_symmetry': '-6m2', 'coords_xyz': ['(0,0,1/4)', '(0,0,3/4)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '-3m.', 'coords_xyz': ['(0,0,0)', '(0,0,1/2)']}, + }, }, (196, '1'): { 'IT_number': 196, @@ -44720,72 +20747,29 @@ '(y,z,x)', '(-y,z,-x)', '(y,-z,-x)', - '(-y,-z,x)' - ] + '(-y,-z,x)', + ], }, 'g': { 'multiplicity': 24, 'site_symmetry': '2..', - 'coords_xyz': [ - '(x,1/4,1/4)', - '(-x,3/4,1/4)', - '(1/4,x,1/4)', - '(1/4,-x,3/4)', - '(1/4,1/4,x)', - '(3/4,1/4,-x)' - ] + 'coords_xyz': ['(x,1/4,1/4)', '(-x,3/4,1/4)', '(1/4,x,1/4)', '(1/4,-x,3/4)', '(1/4,1/4,x)', '(3/4,1/4,-x)'], }, 'f': { 'multiplicity': 24, 'site_symmetry': '2..', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)', - '(0,x,0)', - '(0,-x,0)', - '(0,0,x)', - '(0,0,-x)' - ] + 'coords_xyz': ['(x,0,0)', '(-x,0,0)', '(0,x,0)', '(0,-x,0)', '(0,0,x)', '(0,0,-x)'], }, 'e': { 'multiplicity': 16, 'site_symmetry': '.3.', - 'coords_xyz': [ - '(x,x,x)', - '(-x,-x,x)', - '(-x,x,-x)', - '(x,-x,-x)' - ] - }, - 'd': { - 'multiplicity': 4, - 'site_symmetry': '23.', - 'coords_xyz': [ - '(3/4,3/4,3/4)' - ] - }, - 'c': { - 'multiplicity': 4, - 'site_symmetry': '23.', - 'coords_xyz': [ - '(1/4,1/4,1/4)' - ] + 'coords_xyz': ['(x,x,x)', '(-x,-x,x)', '(-x,x,-x)', '(x,-x,-x)'], }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '23.', - 'coords_xyz': [ - '(1/2,1/2,1/2)' - ] - }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '23.', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'd': {'multiplicity': 4, 'site_symmetry': '23.', 'coords_xyz': ['(3/4,3/4,3/4)']}, + 'c': {'multiplicity': 4, 'site_symmetry': '23.', 'coords_xyz': ['(1/4,1/4,1/4)']}, + 'b': {'multiplicity': 4, 'site_symmetry': '23.', 'coords_xyz': ['(1/2,1/2,1/2)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '23.', 'coords_xyz': ['(0,0,0)']}, + }, }, (197, '1'): { 'IT_number': 197, @@ -44809,60 +20793,23 @@ '(y,z,x)', '(-y,z,-x)', '(y,-z,-x)', - '(-y,-z,x)' - ] + '(-y,-z,x)', + ], }, 'e': { 'multiplicity': 12, 'site_symmetry': '2..', - 'coords_xyz': [ - '(x,1/2,0)', - '(-x,1/2,0)', - '(0,x,1/2)', - '(0,-x,1/2)', - '(1/2,0,x)', - '(1/2,0,-x)' - ] + 'coords_xyz': ['(x,1/2,0)', '(-x,1/2,0)', '(0,x,1/2)', '(0,-x,1/2)', '(1/2,0,x)', '(1/2,0,-x)'], }, 'd': { 'multiplicity': 12, 'site_symmetry': '2..', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)', - '(0,x,0)', - '(0,-x,0)', - '(0,0,x)', - '(0,0,-x)' - ] - }, - 'c': { - 'multiplicity': 8, - 'site_symmetry': '.3.', - 'coords_xyz': [ - '(x,x,x)', - '(-x,-x,x)', - '(-x,x,-x)', - '(x,-x,-x)' - ] - }, - 'b': { - 'multiplicity': 6, - 'site_symmetry': '222', - 'coords_xyz': [ - '(0,1/2,1/2)', - '(1/2,0,1/2)', - '(1/2,1/2,0)' - ] + 'coords_xyz': ['(x,0,0)', '(-x,0,0)', '(0,x,0)', '(0,-x,0)', '(0,0,x)', '(0,0,-x)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '23.', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'c': {'multiplicity': 8, 'site_symmetry': '.3.', 'coords_xyz': ['(x,x,x)', '(-x,-x,x)', '(-x,x,-x)', '(x,-x,-x)']}, + 'b': {'multiplicity': 6, 'site_symmetry': '222', 'coords_xyz': ['(0,1/2,1/2)', '(1/2,0,1/2)', '(1/2,1/2,0)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '23.', 'coords_xyz': ['(0,0,0)']}, + }, }, (199, '1'): { 'IT_number': 199, @@ -44886,32 +20833,20 @@ '(y,z,x)', '(-y,z+1/2,-x+1/2)', '(y+1/2,-z+1/2,-x)', - '(-y+1/2,-z,x+1/2)' - ] + '(-y+1/2,-z,x+1/2)', + ], }, 'b': { 'multiplicity': 12, 'site_symmetry': '2..', - 'coords_xyz': [ - '(x,0,1/4)', - '(-x+1/2,0,3/4)', - '(1/4,x,0)', - '(3/4,-x+1/2,0)', - '(0,1/4,x)', - '(0,3/4,-x+1/2)' - ] + 'coords_xyz': ['(x,0,1/4)', '(-x+1/2,0,3/4)', '(1/4,x,0)', '(3/4,-x+1/2,0)', '(0,1/4,x)', '(0,3/4,-x+1/2)'], }, 'a': { 'multiplicity': 8, 'site_symmetry': '.3.', - 'coords_xyz': [ - '(x,x,x)', - '(-x+1/2,-x,x+1/2)', - '(-x,x+1/2,-x+1/2)', - '(x+1/2,-x+1/2,-x)' - ] - } - } + 'coords_xyz': ['(x,x,x)', '(-x+1/2,-x,x+1/2)', '(-x,x+1/2,-x+1/2)', '(x+1/2,-x+1/2,-x)'], + }, + }, }, (202, '1'): { 'IT_number': 202, @@ -44947,8 +20882,8 @@ '(-y,-z,-x)', '(y,-z,x)', '(-y,z,x)', - '(y,z,-x)' - ] + '(y,z,-x)', + ], }, 'h': { 'multiplicity': 48, @@ -44965,8 +20900,8 @@ '(y,z,0)', '(-y,z,0)', '(y,-z,0)', - '(-y,-z,0)' - ] + '(-y,-z,0)', + ], }, 'g': { 'multiplicity': 48, @@ -44983,8 +20918,8 @@ '(3/4,-x,3/4)', '(3/4,x,1/4)', '(3/4,3/4,-x)', - '(1/4,3/4,x)' - ] + '(1/4,3/4,x)', + ], }, 'f': { 'multiplicity': 32, @@ -44997,56 +20932,23 @@ '(-x,-x,-x)', '(x,x,-x)', '(x,-x,x)', - '(-x,x,x)' - ] + '(-x,x,x)', + ], }, 'e': { 'multiplicity': 24, 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)', - '(0,x,0)', - '(0,-x,0)', - '(0,0,x)', - '(0,0,-x)' - ] + 'coords_xyz': ['(x,0,0)', '(-x,0,0)', '(0,x,0)', '(0,-x,0)', '(0,0,x)', '(0,0,-x)'], }, 'd': { 'multiplicity': 24, 'site_symmetry': '2/m..', - 'coords_xyz': [ - '(0,1/4,1/4)', - '(0,3/4,1/4)', - '(1/4,0,1/4)', - '(1/4,0,3/4)', - '(1/4,1/4,0)', - '(3/4,1/4,0)' - ] - }, - 'c': { - 'multiplicity': 8, - 'site_symmetry': '23.', - 'coords_xyz': [ - '(1/4,1/4,1/4)', - '(3/4,3/4,3/4)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': 'm-3.', - 'coords_xyz': [ - '(1/2,1/2,1/2)' - ] + 'coords_xyz': ['(0,1/4,1/4)', '(0,3/4,1/4)', '(1/4,0,1/4)', '(1/4,0,3/4)', '(1/4,1/4,0)', '(3/4,1/4,0)'], }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': 'm-3.', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'c': {'multiplicity': 8, 'site_symmetry': '23.', 'coords_xyz': ['(1/4,1/4,1/4)', '(3/4,3/4,3/4)']}, + 'b': {'multiplicity': 4, 'site_symmetry': 'm-3.', 'coords_xyz': ['(1/2,1/2,1/2)']}, + 'a': {'multiplicity': 4, 'site_symmetry': 'm-3.', 'coords_xyz': ['(0,0,0)']}, + }, }, (203, '1'): { 'IT_number': 203, @@ -45082,8 +20984,8 @@ '(-y+1/4,-z+1/4,-x+1/4)', '(y+1/4,-z+1/4,x+1/4)', '(-y+1/4,z+1/4,x+1/4)', - '(y+1/4,z+1/4,-x+1/4)' - ] + '(y+1/4,z+1/4,-x+1/4)', + ], }, 'f': { 'multiplicity': 48, @@ -45100,8 +21002,8 @@ '(1/4,-x+1/4,1/4)', '(1/4,x+1/4,1/4)', '(1/4,1/4,-x+1/4)', - '(1/4,1/4,x+1/4)' - ] + '(1/4,1/4,x+1/4)', + ], }, 'e': { 'multiplicity': 32, @@ -45114,46 +21016,22 @@ '(-x+1/4,-x+1/4,-x+1/4)', '(x+1/4,x+1/4,-x+1/4)', '(x+1/4,-x+1/4,x+1/4)', - '(-x+1/4,x+1/4,x+1/4)' - ] + '(-x+1/4,x+1/4,x+1/4)', + ], }, 'd': { 'multiplicity': 16, 'site_symmetry': '.-3.', - 'coords_xyz': [ - '(5/8,5/8,5/8)', - '(3/8,3/8,5/8)', - '(3/8,5/8,3/8)', - '(5/8,3/8,3/8)' - ] + 'coords_xyz': ['(5/8,5/8,5/8)', '(3/8,3/8,5/8)', '(3/8,5/8,3/8)', '(5/8,3/8,3/8)'], }, 'c': { 'multiplicity': 16, 'site_symmetry': '.-3.', - 'coords_xyz': [ - '(1/8,1/8,1/8)', - '(7/8,7/8,1/8)', - '(7/8,1/8,7/8)', - '(1/8,7/8,7/8)' - ] + 'coords_xyz': ['(1/8,1/8,1/8)', '(7/8,7/8,1/8)', '(7/8,1/8,7/8)', '(1/8,7/8,7/8)'], }, - 'b': { - 'multiplicity': 8, - 'site_symmetry': '23.', - 'coords_xyz': [ - '(1/2,1/2,1/2)', - '(3/4,3/4,3/4)' - ] - }, - 'a': { - 'multiplicity': 8, - 'site_symmetry': '23.', - 'coords_xyz': [ - '(0,0,0)', - '(1/4,1/4,1/4)' - ] - } - } + 'b': {'multiplicity': 8, 'site_symmetry': '23.', 'coords_xyz': ['(1/2,1/2,1/2)', '(3/4,3/4,3/4)']}, + 'a': {'multiplicity': 8, 'site_symmetry': '23.', 'coords_xyz': ['(0,0,0)', '(1/4,1/4,1/4)']}, + }, }, (203, '2'): { 'IT_number': 203, @@ -45189,8 +21067,8 @@ '(-y,-z,-x)', '(y+1/4,-z,x+1/4)', '(-y,z+1/4,x+1/4)', - '(y+1/4,z+1/4,-x)' - ] + '(y+1/4,z+1/4,-x)', + ], }, 'f': { 'multiplicity': 48, @@ -45207,8 +21085,8 @@ '(7/8,-x,7/8)', '(7/8,x+1/4,3/8)', '(7/8,7/8,-x)', - '(3/8,7/8,x+1/4)' - ] + '(3/8,7/8,x+1/4)', + ], }, 'e': { 'multiplicity': 32, @@ -45221,46 +21099,22 @@ '(-x,-x,-x)', '(x+1/4,x+1/4,-x)', '(x+1/4,-x,x+1/4)', - '(-x,x+1/4,x+1/4)' - ] + '(-x,x+1/4,x+1/4)', + ], }, 'd': { 'multiplicity': 16, 'site_symmetry': '.-3.', - 'coords_xyz': [ - '(1/2,1/2,1/2)', - '(1/4,1/4,1/2)', - '(1/4,1/2,1/4)', - '(1/2,1/4,1/4)' - ] + 'coords_xyz': ['(1/2,1/2,1/2)', '(1/4,1/4,1/2)', '(1/4,1/2,1/4)', '(1/2,1/4,1/4)'], }, 'c': { 'multiplicity': 16, 'site_symmetry': '.-3.', - 'coords_xyz': [ - '(0,0,0)', - '(3/4,3/4,0)', - '(3/4,0,3/4)', - '(0,3/4,3/4)' - ] - }, - 'b': { - 'multiplicity': 8, - 'site_symmetry': '23.', - 'coords_xyz': [ - '(5/8,5/8,5/8)', - '(3/8,3/8,3/8)' - ] + 'coords_xyz': ['(0,0,0)', '(3/4,3/4,0)', '(3/4,0,3/4)', '(0,3/4,3/4)'], }, - 'a': { - 'multiplicity': 8, - 'site_symmetry': '23.', - 'coords_xyz': [ - '(1/8,1/8,1/8)', - '(7/8,7/8,7/8)' - ] - } - } + 'b': {'multiplicity': 8, 'site_symmetry': '23.', 'coords_xyz': ['(5/8,5/8,5/8)', '(3/8,3/8,3/8)']}, + 'a': {'multiplicity': 8, 'site_symmetry': '23.', 'coords_xyz': ['(1/8,1/8,1/8)', '(7/8,7/8,7/8)']}, + }, }, (204, '1'): { 'IT_number': 204, @@ -45296,8 +21150,8 @@ '(-y,-z,-x)', '(y,-z,x)', '(-y,z,x)', - '(y,z,-x)' - ] + '(y,z,-x)', + ], }, 'g': { 'multiplicity': 24, @@ -45314,8 +21168,8 @@ '(y,z,0)', '(-y,z,0)', '(y,-z,0)', - '(-y,-z,0)' - ] + '(-y,-z,0)', + ], }, 'f': { 'multiplicity': 16, @@ -45328,60 +21182,27 @@ '(-x,-x,-x)', '(x,x,-x)', '(x,-x,x)', - '(-x,x,x)' - ] + '(-x,x,x)', + ], }, 'e': { 'multiplicity': 12, 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(x,0,1/2)', - '(-x,0,1/2)', - '(1/2,x,0)', - '(1/2,-x,0)', - '(0,1/2,x)', - '(0,1/2,-x)' - ] + 'coords_xyz': ['(x,0,1/2)', '(-x,0,1/2)', '(1/2,x,0)', '(1/2,-x,0)', '(0,1/2,x)', '(0,1/2,-x)'], }, 'd': { 'multiplicity': 12, 'site_symmetry': 'mm2', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)', - '(0,x,0)', - '(0,-x,0)', - '(0,0,x)', - '(0,0,-x)' - ] + 'coords_xyz': ['(x,0,0)', '(-x,0,0)', '(0,x,0)', '(0,-x,0)', '(0,0,x)', '(0,0,-x)'], }, 'c': { 'multiplicity': 8, 'site_symmetry': '.-3.', - 'coords_xyz': [ - '(1/4,1/4,1/4)', - '(3/4,3/4,1/4)', - '(3/4,1/4,3/4)', - '(1/4,3/4,3/4)' - ] - }, - 'b': { - 'multiplicity': 6, - 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(0,1/2,1/2)', - '(1/2,0,1/2)', - '(1/2,1/2,0)' - ] + 'coords_xyz': ['(1/4,1/4,1/4)', '(3/4,3/4,1/4)', '(3/4,1/4,3/4)', '(1/4,3/4,3/4)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': 'm-3.', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'b': {'multiplicity': 6, 'site_symmetry': 'mmm', 'coords_xyz': ['(0,1/2,1/2)', '(1/2,0,1/2)', '(1/2,1/2,0)']}, + 'a': {'multiplicity': 2, 'site_symmetry': 'm-3.', 'coords_xyz': ['(0,0,0)']}, + }, }, (206, '1'): { 'IT_number': 206, @@ -45417,8 +21238,8 @@ '(-y,-z,-x)', '(y,-z+1/2,x+1/2)', '(-y+1/2,z+1/2,x)', - '(y+1/2,z,-x+1/2)' - ] + '(y+1/2,z,-x+1/2)', + ], }, 'd': { 'multiplicity': 24, @@ -45435,8 +21256,8 @@ '(3/4,-x,0)', '(1/4,x+1/2,0)', '(0,3/4,-x)', - '(0,1/4,x+1/2)' - ] + '(0,1/4,x+1/2)', + ], }, 'c': { 'multiplicity': 16, @@ -45449,30 +21270,20 @@ '(-x,-x,-x)', '(x+1/2,x,-x+1/2)', '(x,-x+1/2,x+1/2)', - '(-x+1/2,x+1/2,x)' - ] + '(-x+1/2,x+1/2,x)', + ], }, 'b': { 'multiplicity': 8, 'site_symmetry': '.-3.', - 'coords_xyz': [ - '(1/4,1/4,1/4)', - '(1/4,3/4,3/4)', - '(3/4,3/4,1/4)', - '(3/4,1/4,3/4)' - ] + 'coords_xyz': ['(1/4,1/4,1/4)', '(1/4,3/4,3/4)', '(3/4,3/4,1/4)', '(3/4,1/4,3/4)'], }, 'a': { 'multiplicity': 8, 'site_symmetry': '.-3.', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,0,1/2)', - '(0,1/2,1/2)', - '(1/2,1/2,0)' - ] - } - } + 'coords_xyz': ['(0,0,0)', '(1/2,0,1/2)', '(0,1/2,1/2)', '(1/2,1/2,0)'], + }, + }, }, (207, '1'): { 'IT_number': 207, @@ -45508,8 +21319,8 @@ '(z,y,-x)', '(z,-y,x)', '(-z,y,x)', - '(-z,-y,-x)' - ] + '(-z,-y,-x)', + ], }, 'j': { 'multiplicity': 12, @@ -45526,8 +21337,8 @@ '(y,y,1/2)', '(-y,y,1/2)', '(y,-y,1/2)', - '(-y,-y,1/2)' - ] + '(-y,-y,1/2)', + ], }, 'i': { 'multiplicity': 12, @@ -45544,8 +21355,8 @@ '(y,y,0)', '(-y,y,0)', '(y,-y,0)', - '(-y,-y,0)' - ] + '(-y,-y,0)', + ], }, 'h': { 'multiplicity': 12, @@ -45562,8 +21373,8 @@ '(x,0,1/2)', '(-x,0,1/2)', '(0,1/2,-x)', - '(0,1/2,x)' - ] + '(0,1/2,x)', + ], }, 'g': { 'multiplicity': 8, @@ -45576,66 +21387,24 @@ '(x,x,-x)', '(-x,-x,-x)', '(x,-x,x)', - '(-x,x,x)' - ] + '(-x,x,x)', + ], }, 'f': { 'multiplicity': 6, 'site_symmetry': '4..', - 'coords_xyz': [ - '(x,1/2,1/2)', - '(-x,1/2,1/2)', - '(1/2,x,1/2)', - '(1/2,-x,1/2)', - '(1/2,1/2,x)', - '(1/2,1/2,-x)' - ] + 'coords_xyz': ['(x,1/2,1/2)', '(-x,1/2,1/2)', '(1/2,x,1/2)', '(1/2,-x,1/2)', '(1/2,1/2,x)', '(1/2,1/2,-x)'], }, 'e': { 'multiplicity': 6, 'site_symmetry': '4..', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)', - '(0,x,0)', - '(0,-x,0)', - '(0,0,x)', - '(0,0,-x)' - ] - }, - 'd': { - 'multiplicity': 3, - 'site_symmetry': '42.', - 'coords_xyz': [ - '(1/2,0,0)', - '(0,1/2,0)', - '(0,0,1/2)' - ] - }, - 'c': { - 'multiplicity': 3, - 'site_symmetry': '42.', - 'coords_xyz': [ - '(0,1/2,1/2)', - '(1/2,0,1/2)', - '(1/2,1/2,0)' - ] - }, - 'b': { - 'multiplicity': 1, - 'site_symmetry': '432', - 'coords_xyz': [ - '(1/2,1/2,1/2)' - ] + 'coords_xyz': ['(x,0,0)', '(-x,0,0)', '(0,x,0)', '(0,-x,0)', '(0,0,x)', '(0,0,-x)'], }, - 'a': { - 'multiplicity': 1, - 'site_symmetry': '432', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'd': {'multiplicity': 3, 'site_symmetry': '42.', 'coords_xyz': ['(1/2,0,0)', '(0,1/2,0)', '(0,0,1/2)']}, + 'c': {'multiplicity': 3, 'site_symmetry': '42.', 'coords_xyz': ['(0,1/2,1/2)', '(1/2,0,1/2)', '(1/2,1/2,0)']}, + 'b': {'multiplicity': 1, 'site_symmetry': '432', 'coords_xyz': ['(1/2,1/2,1/2)']}, + 'a': {'multiplicity': 1, 'site_symmetry': '432', 'coords_xyz': ['(0,0,0)']}, + }, }, (208, '1'): { 'IT_number': 208, @@ -45671,8 +21440,8 @@ '(z+1/2,y+1/2,-x+1/2)', '(z+1/2,-y+1/2,x+1/2)', '(-z+1/2,y+1/2,x+1/2)', - '(-z+1/2,-y+1/2,-x+1/2)' - ] + '(-z+1/2,-y+1/2,-x+1/2)', + ], }, 'l': { 'multiplicity': 12, @@ -45689,8 +21458,8 @@ '(y,y+1/2,1/4)', '(-y,y+1/2,3/4)', '(y,-y+1/2,3/4)', - '(-y,-y+1/2,1/4)' - ] + '(-y,-y+1/2,1/4)', + ], }, 'k': { 'multiplicity': 12, @@ -45707,8 +21476,8 @@ '(y,-y+1/2,1/4)', '(-y,-y+1/2,3/4)', '(y,y+1/2,3/4)', - '(-y,y+1/2,1/4)' - ] + '(-y,y+1/2,1/4)', + ], }, 'j': { 'multiplicity': 12, @@ -45725,8 +21494,8 @@ '(x+1/2,1/2,0)', '(-x+1/2,1/2,0)', '(1/2,0,-x+1/2)', - '(1/2,0,x+1/2)' - ] + '(1/2,0,x+1/2)', + ], }, 'i': { 'multiplicity': 12, @@ -45743,8 +21512,8 @@ '(x+1/2,0,1/2)', '(-x+1/2,0,1/2)', '(0,1/2,-x+1/2)', - '(0,1/2,x+1/2)' - ] + '(0,1/2,x+1/2)', + ], }, 'h': { 'multiplicity': 12, @@ -45761,8 +21530,8 @@ '(x+1/2,1/2,1/2)', '(-x+1/2,1/2,1/2)', '(1/2,1/2,-x+1/2)', - '(1/2,1/2,x+1/2)' - ] + '(1/2,1/2,x+1/2)', + ], }, 'g': { 'multiplicity': 8, @@ -45775,74 +21544,36 @@ '(x+1/2,x+1/2,-x+1/2)', '(-x+1/2,-x+1/2,-x+1/2)', '(x+1/2,-x+1/2,x+1/2)', - '(-x+1/2,x+1/2,x+1/2)' - ] + '(-x+1/2,x+1/2,x+1/2)', + ], }, 'f': { 'multiplicity': 6, 'site_symmetry': '2.2', - 'coords_xyz': [ - '(1/4,1/2,0)', - '(3/4,1/2,0)', - '(0,1/4,1/2)', - '(0,3/4,1/2)', - '(1/2,0,1/4)', - '(1/2,0,3/4)' - ] + 'coords_xyz': ['(1/4,1/2,0)', '(3/4,1/2,0)', '(0,1/4,1/2)', '(0,3/4,1/2)', '(1/2,0,1/4)', '(1/2,0,3/4)'], }, 'e': { 'multiplicity': 6, 'site_symmetry': '2.2', - 'coords_xyz': [ - '(1/4,0,1/2)', - '(3/4,0,1/2)', - '(1/2,1/4,0)', - '(1/2,3/4,0)', - '(0,1/2,1/4)', - '(0,1/2,3/4)' - ] + 'coords_xyz': ['(1/4,0,1/2)', '(3/4,0,1/2)', '(1/2,1/4,0)', '(1/2,3/4,0)', '(0,1/2,1/4)', '(0,1/2,3/4)'], }, 'd': { 'multiplicity': 6, 'site_symmetry': '222', - 'coords_xyz': [ - '(0,1/2,1/2)', - '(1/2,0,1/2)', - '(1/2,1/2,0)', - '(0,1/2,0)', - '(1/2,0,0)', - '(0,0,1/2)' - ] + 'coords_xyz': ['(0,1/2,1/2)', '(1/2,0,1/2)', '(1/2,1/2,0)', '(0,1/2,0)', '(1/2,0,0)', '(0,0,1/2)'], }, 'c': { 'multiplicity': 4, 'site_symmetry': '.32', - 'coords_xyz': [ - '(3/4,3/4,3/4)', - '(1/4,1/4,3/4)', - '(1/4,3/4,1/4)', - '(3/4,1/4,1/4)' - ] + 'coords_xyz': ['(3/4,3/4,3/4)', '(1/4,1/4,3/4)', '(1/4,3/4,1/4)', '(3/4,1/4,1/4)'], }, 'b': { 'multiplicity': 4, 'site_symmetry': '.32', - 'coords_xyz': [ - '(1/4,1/4,1/4)', - '(3/4,3/4,1/4)', - '(3/4,1/4,3/4)', - '(1/4,3/4,3/4)' - ] + 'coords_xyz': ['(1/4,1/4,1/4)', '(3/4,3/4,1/4)', '(3/4,1/4,3/4)', '(1/4,3/4,3/4)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '23.', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,1/2,1/2)' - ] - } - } + 'a': {'multiplicity': 2, 'site_symmetry': '23.', 'coords_xyz': ['(0,0,0)', '(1/2,1/2,1/2)']}, + }, }, (209, '1'): { 'IT_number': 209, @@ -45878,8 +21609,8 @@ '(z,y,-x)', '(z,-y,x)', '(-z,y,x)', - '(-z,-y,-x)' - ] + '(-z,-y,-x)', + ], }, 'i': { 'multiplicity': 48, @@ -45896,8 +21627,8 @@ '(x,1/4,3/4)', '(-x,1/4,1/4)', '(1/4,1/4,-x)', - '(1/4,3/4,x)' - ] + '(1/4,3/4,x)', + ], }, 'h': { 'multiplicity': 48, @@ -45914,8 +21645,8 @@ '(y,y,1/2)', '(-y,y,1/2)', '(y,-y,1/2)', - '(-y,-y,1/2)' - ] + '(-y,-y,1/2)', + ], }, 'g': { 'multiplicity': 48, @@ -45932,8 +21663,8 @@ '(y,y,0)', '(-y,y,0)', '(y,-y,0)', - '(-y,-y,0)' - ] + '(-y,-y,0)', + ], }, 'f': { 'multiplicity': 32, @@ -45946,56 +21677,23 @@ '(x,x,-x)', '(-x,-x,-x)', '(x,-x,x)', - '(-x,x,x)' - ] + '(-x,x,x)', + ], }, 'e': { 'multiplicity': 24, 'site_symmetry': '4..', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)', - '(0,x,0)', - '(0,-x,0)', - '(0,0,x)', - '(0,0,-x)' - ] + 'coords_xyz': ['(x,0,0)', '(-x,0,0)', '(0,x,0)', '(0,-x,0)', '(0,0,x)', '(0,0,-x)'], }, 'd': { 'multiplicity': 24, 'site_symmetry': '2.2', - 'coords_xyz': [ - '(0,1/4,1/4)', - '(0,3/4,1/4)', - '(1/4,0,1/4)', - '(1/4,0,3/4)', - '(1/4,1/4,0)', - '(3/4,1/4,0)' - ] - }, - 'c': { - 'multiplicity': 8, - 'site_symmetry': '23.', - 'coords_xyz': [ - '(1/4,1/4,1/4)', - '(1/4,1/4,3/4)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '432', - 'coords_xyz': [ - '(1/2,1/2,1/2)' - ] + 'coords_xyz': ['(0,1/4,1/4)', '(0,3/4,1/4)', '(1/4,0,1/4)', '(1/4,0,3/4)', '(1/4,1/4,0)', '(3/4,1/4,0)'], }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '432', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'c': {'multiplicity': 8, 'site_symmetry': '23.', 'coords_xyz': ['(1/4,1/4,1/4)', '(1/4,1/4,3/4)']}, + 'b': {'multiplicity': 4, 'site_symmetry': '432', 'coords_xyz': ['(1/2,1/2,1/2)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '432', 'coords_xyz': ['(0,0,0)']}, + }, }, (210, '1'): { 'IT_number': 210, @@ -46031,8 +21729,8 @@ '(z+3/4,y+1/4,-x+3/4)', '(z+1/4,-y+3/4,x+3/4)', '(-z+3/4,y+3/4,x+1/4)', - '(-z+1/4,-y+1/4,-x+1/4)' - ] + '(-z+1/4,-y+1/4,-x+1/4)', + ], }, 'g': { 'multiplicity': 48, @@ -46049,8 +21747,8 @@ '(y,-y+1/4,1/8)', '(-y+1/2,-y+3/4,7/8)', '(y+1/2,y+3/4,3/8)', - '(-y,y+1/4,5/8)' - ] + '(-y,y+1/4,5/8)', + ], }, 'f': { 'multiplicity': 48, @@ -46067,8 +21765,8 @@ '(x+3/4,1/4,3/4)', '(-x+3/4,3/4,1/4)', '(3/4,1/4,-x+3/4)', - '(1/4,3/4,x+3/4)' - ] + '(1/4,3/4,x+3/4)', + ], }, 'e': { 'multiplicity': 32, @@ -46081,46 +21779,22 @@ '(x+3/4,x+1/4,-x+3/4)', '(-x+1/4,-x+1/4,-x+1/4)', '(x+1/4,-x+3/4,x+3/4)', - '(-x+3/4,x+3/4,x+1/4)' - ] + '(-x+3/4,x+3/4,x+1/4)', + ], }, 'd': { 'multiplicity': 16, 'site_symmetry': '.32', - 'coords_xyz': [ - '(5/8,5/8,5/8)', - '(3/8,7/8,1/8)', - '(7/8,1/8,3/8)', - '(1/8,3/8,7/8)' - ] + 'coords_xyz': ['(5/8,5/8,5/8)', '(3/8,7/8,1/8)', '(7/8,1/8,3/8)', '(1/8,3/8,7/8)'], }, 'c': { 'multiplicity': 16, 'site_symmetry': '.32', - 'coords_xyz': [ - '(1/8,1/8,1/8)', - '(7/8,3/8,5/8)', - '(3/8,5/8,7/8)', - '(5/8,7/8,3/8)' - ] - }, - 'b': { - 'multiplicity': 8, - 'site_symmetry': '23.', - 'coords_xyz': [ - '(1/2,1/2,1/2)', - '(1/4,3/4,1/4)' - ] + 'coords_xyz': ['(1/8,1/8,1/8)', '(7/8,3/8,5/8)', '(3/8,5/8,7/8)', '(5/8,7/8,3/8)'], }, - 'a': { - 'multiplicity': 8, - 'site_symmetry': '23.', - 'coords_xyz': [ - '(0,0,0)', - '(3/4,1/4,3/4)' - ] - } - } + 'b': {'multiplicity': 8, 'site_symmetry': '23.', 'coords_xyz': ['(1/2,1/2,1/2)', '(1/4,3/4,1/4)']}, + 'a': {'multiplicity': 8, 'site_symmetry': '23.', 'coords_xyz': ['(0,0,0)', '(3/4,1/4,3/4)']}, + }, }, (211, '1'): { 'IT_number': 211, @@ -46156,8 +21830,8 @@ '(z,y,-x)', '(z,-y,x)', '(-z,y,x)', - '(-z,-y,-x)' - ] + '(-z,-y,-x)', + ], }, 'i': { 'multiplicity': 24, @@ -46174,8 +21848,8 @@ '(y,-y+1/2,1/4)', '(-y,-y+1/2,3/4)', '(y,y+1/2,3/4)', - '(-y,y+1/2,1/4)' - ] + '(-y,y+1/2,1/4)', + ], }, 'h': { 'multiplicity': 24, @@ -46192,8 +21866,8 @@ '(y,y,0)', '(-y,y,0)', '(y,-y,0)', - '(-y,-y,0)' - ] + '(-y,-y,0)', + ], }, 'g': { 'multiplicity': 24, @@ -46210,8 +21884,8 @@ '(x,0,1/2)', '(-x,0,1/2)', '(0,1/2,-x)', - '(0,1/2,x)' - ] + '(0,1/2,x)', + ], }, 'f': { 'multiplicity': 16, @@ -46224,60 +21898,27 @@ '(x,x,-x)', '(-x,-x,-x)', '(x,-x,x)', - '(-x,x,x)' - ] + '(-x,x,x)', + ], }, 'e': { 'multiplicity': 12, 'site_symmetry': '4..', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)', - '(0,x,0)', - '(0,-x,0)', - '(0,0,x)', - '(0,0,-x)' - ] + 'coords_xyz': ['(x,0,0)', '(-x,0,0)', '(0,x,0)', '(0,-x,0)', '(0,0,x)', '(0,0,-x)'], }, 'd': { 'multiplicity': 12, 'site_symmetry': '2.2', - 'coords_xyz': [ - '(1/4,1/2,0)', - '(3/4,1/2,0)', - '(0,1/4,1/2)', - '(0,3/4,1/2)', - '(1/2,0,1/4)', - '(1/2,0,3/4)' - ] - }, - 'c': { - 'multiplicity': 8, - 'site_symmetry': '.32', - 'coords_xyz': [ - '(1/4,1/4,1/4)', - '(3/4,3/4,1/4)', - '(3/4,1/4,3/4)', - '(1/4,3/4,3/4)' - ] - }, - 'b': { - 'multiplicity': 6, - 'site_symmetry': '42.', - 'coords_xyz': [ - '(0,1/2,1/2)', - '(1/2,0,1/2)', - '(1/2,1/2,0)' - ] + 'coords_xyz': ['(1/4,1/2,0)', '(3/4,1/2,0)', '(0,1/4,1/2)', '(0,3/4,1/2)', '(1/2,0,1/4)', '(1/2,0,3/4)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '432', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'c': { + 'multiplicity': 8, + 'site_symmetry': '.32', + 'coords_xyz': ['(1/4,1/4,1/4)', '(3/4,3/4,1/4)', '(3/4,1/4,3/4)', '(1/4,3/4,3/4)'], + }, + 'b': {'multiplicity': 6, 'site_symmetry': '42.', 'coords_xyz': ['(0,1/2,1/2)', '(1/2,0,1/2)', '(1/2,1/2,0)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '432', 'coords_xyz': ['(0,0,0)']}, + }, }, (212, '1'): { 'IT_number': 212, @@ -46313,8 +21954,8 @@ '(z+1/4,y+3/4,-x+3/4)', '(z+3/4,-y+3/4,x+1/4)', '(-z+3/4,y+1/4,x+3/4)', - '(-z+1/4,-y+1/4,-x+1/4)' - ] + '(-z+1/4,-y+1/4,-x+1/4)', + ], }, 'd': { 'multiplicity': 12, @@ -46331,8 +21972,8 @@ '(y,-y+1/4,1/8)', '(-y,-y+3/4,3/8)', '(y+1/2,y+1/4,7/8)', - '(-y+1/2,y+3/4,5/8)' - ] + '(-y+1/2,y+3/4,5/8)', + ], }, 'c': { 'multiplicity': 8, @@ -46345,30 +21986,20 @@ '(x+1/4,x+3/4,-x+3/4)', '(-x+1/4,-x+1/4,-x+1/4)', '(x+3/4,-x+3/4,x+1/4)', - '(-x+3/4,x+1/4,x+3/4)' - ] + '(-x+3/4,x+1/4,x+3/4)', + ], }, 'b': { 'multiplicity': 4, 'site_symmetry': '.32', - 'coords_xyz': [ - '(5/8,5/8,5/8)', - '(7/8,3/8,1/8)', - '(3/8,1/8,7/8)', - '(1/8,7/8,3/8)' - ] + 'coords_xyz': ['(5/8,5/8,5/8)', '(7/8,3/8,1/8)', '(3/8,1/8,7/8)', '(1/8,7/8,3/8)'], }, 'a': { 'multiplicity': 4, 'site_symmetry': '.32', - 'coords_xyz': [ - '(1/8,1/8,1/8)', - '(3/8,7/8,5/8)', - '(7/8,5/8,3/8)', - '(5/8,3/8,7/8)' - ] - } - } + 'coords_xyz': ['(1/8,1/8,1/8)', '(3/8,7/8,5/8)', '(7/8,5/8,3/8)', '(5/8,3/8,7/8)'], + }, + }, }, (213, '1'): { 'IT_number': 213, @@ -46404,8 +22035,8 @@ '(z+3/4,y+1/4,-x+1/4)', '(z+1/4,-y+1/4,x+3/4)', '(-z+1/4,y+3/4,x+1/4)', - '(-z+3/4,-y+3/4,-x+3/4)' - ] + '(-z+3/4,-y+3/4,-x+3/4)', + ], }, 'd': { 'multiplicity': 12, @@ -46422,8 +22053,8 @@ '(y,y+1/4,1/8)', '(-y,y+3/4,3/8)', '(y+1/2,-y+1/4,7/8)', - '(-y+1/2,-y+3/4,5/8)' - ] + '(-y+1/2,-y+3/4,5/8)', + ], }, 'c': { 'multiplicity': 8, @@ -46436,30 +22067,20 @@ '(x+3/4,x+1/4,-x+1/4)', '(-x+3/4,-x+3/4,-x+3/4)', '(x+1/4,-x+1/4,x+3/4)', - '(-x+1/4,x+3/4,x+1/4)' - ] + '(-x+1/4,x+3/4,x+1/4)', + ], }, 'b': { 'multiplicity': 4, 'site_symmetry': '.32', - 'coords_xyz': [ - '(7/8,7/8,7/8)', - '(5/8,1/8,3/8)', - '(1/8,3/8,5/8)', - '(3/8,5/8,1/8)' - ] + 'coords_xyz': ['(7/8,7/8,7/8)', '(5/8,1/8,3/8)', '(1/8,3/8,5/8)', '(3/8,5/8,1/8)'], }, 'a': { 'multiplicity': 4, 'site_symmetry': '.32', - 'coords_xyz': [ - '(3/8,3/8,3/8)', - '(1/8,5/8,7/8)', - '(5/8,7/8,1/8)', - '(7/8,1/8,5/8)' - ] - } - } + 'coords_xyz': ['(3/8,3/8,3/8)', '(1/8,5/8,7/8)', '(5/8,7/8,1/8)', '(7/8,1/8,5/8)'], + }, + }, }, (214, '1'): { 'IT_number': 214, @@ -46495,8 +22116,8 @@ '(z+3/4,y+1/4,-x+1/4)', '(z+1/4,-y+1/4,x+3/4)', '(-z+1/4,y+3/4,x+1/4)', - '(-z+3/4,-y+3/4,-x+3/4)' - ] + '(-z+3/4,-y+3/4,-x+3/4)', + ], }, 'h': { 'multiplicity': 24, @@ -46513,8 +22134,8 @@ '(y,-y+1/4,1/8)', '(-y,-y+3/4,3/8)', '(y+1/2,y+1/4,7/8)', - '(-y+1/2,y+3/4,5/8)' - ] + '(-y+1/2,y+3/4,5/8)', + ], }, 'g': { 'multiplicity': 24, @@ -46531,8 +22152,8 @@ '(y,y+1/4,1/8)', '(-y,y+3/4,3/8)', '(y+1/2,-y+1/4,7/8)', - '(-y+1/2,-y+3/4,5/8)' - ] + '(-y+1/2,-y+3/4,5/8)', + ], }, 'f': { 'multiplicity': 24, @@ -46549,8 +22170,8 @@ '(x+3/4,1/2,1/4)', '(-x+1/4,0,1/4)', '(0,1/4,-x+1/4)', - '(1/2,1/4,x+3/4)' - ] + '(1/2,1/4,x+3/4)', + ], }, 'e': { 'multiplicity': 16, @@ -46563,54 +22184,30 @@ '(x+3/4,x+1/4,-x+1/4)', '(-x+3/4,-x+3/4,-x+3/4)', '(x+1/4,-x+1/4,x+3/4)', - '(-x+1/4,x+3/4,x+1/4)' - ] + '(-x+1/4,x+3/4,x+1/4)', + ], }, 'd': { 'multiplicity': 12, 'site_symmetry': '2.2', - 'coords_xyz': [ - '(5/8,0,1/4)', - '(7/8,0,3/4)', - '(1/4,5/8,0)', - '(3/4,7/8,0)', - '(0,1/4,5/8)', - '(0,3/4,7/8)' - ] + 'coords_xyz': ['(5/8,0,1/4)', '(7/8,0,3/4)', '(1/4,5/8,0)', '(3/4,7/8,0)', '(0,1/4,5/8)', '(0,3/4,7/8)'], }, 'c': { 'multiplicity': 12, 'site_symmetry': '2.2', - 'coords_xyz': [ - '(1/8,0,1/4)', - '(3/8,0,3/4)', - '(1/4,1/8,0)', - '(3/4,3/8,0)', - '(0,1/4,1/8)', - '(0,3/4,3/8)' - ] + 'coords_xyz': ['(1/8,0,1/4)', '(3/8,0,3/4)', '(1/4,1/8,0)', '(3/4,3/8,0)', '(0,1/4,1/8)', '(0,3/4,3/8)'], }, 'b': { 'multiplicity': 8, 'site_symmetry': '.32', - 'coords_xyz': [ - '(7/8,7/8,7/8)', - '(5/8,1/8,3/8)', - '(1/8,3/8,5/8)', - '(3/8,5/8,1/8)' - ] + 'coords_xyz': ['(7/8,7/8,7/8)', '(5/8,1/8,3/8)', '(1/8,3/8,5/8)', '(3/8,5/8,1/8)'], }, 'a': { 'multiplicity': 8, 'site_symmetry': '.32', - 'coords_xyz': [ - '(1/8,1/8,1/8)', - '(3/8,7/8,5/8)', - '(7/8,5/8,3/8)', - '(5/8,3/8,7/8)' - ] - } - } + 'coords_xyz': ['(1/8,1/8,1/8)', '(3/8,7/8,5/8)', '(7/8,5/8,3/8)', '(5/8,3/8,7/8)'], + }, + }, }, (215, '1'): { 'IT_number': 215, @@ -46646,8 +22243,8 @@ '(z,y,x)', '(z,-y,-x)', '(-z,y,-x)', - '(-z,-y,x)' - ] + '(-z,-y,x)', + ], }, 'i': { 'multiplicity': 12, @@ -46664,8 +22261,8 @@ '(x,z,x)', '(-x,z,-x)', '(x,-z,-x)', - '(-x,-z,x)' - ] + '(-x,-z,x)', + ], }, 'h': { 'multiplicity': 12, @@ -46682,76 +22279,25 @@ '(x,0,1/2)', '(-x,0,1/2)', '(0,1/2,x)', - '(0,1/2,-x)' - ] + '(0,1/2,-x)', + ], }, 'g': { 'multiplicity': 6, 'site_symmetry': '2.m', - 'coords_xyz': [ - '(x,1/2,1/2)', - '(-x,1/2,1/2)', - '(1/2,x,1/2)', - '(1/2,-x,1/2)', - '(1/2,1/2,x)', - '(1/2,1/2,-x)' - ] + 'coords_xyz': ['(x,1/2,1/2)', '(-x,1/2,1/2)', '(1/2,x,1/2)', '(1/2,-x,1/2)', '(1/2,1/2,x)', '(1/2,1/2,-x)'], }, 'f': { 'multiplicity': 6, 'site_symmetry': '2.m', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)', - '(0,x,0)', - '(0,-x,0)', - '(0,0,x)', - '(0,0,-x)' - ] - }, - 'e': { - 'multiplicity': 4, - 'site_symmetry': '.3m', - 'coords_xyz': [ - '(x,x,x)', - '(-x,-x,x)', - '(-x,x,-x)', - '(x,-x,-x)' - ] - }, - 'd': { - 'multiplicity': 3, - 'site_symmetry': '-42.', - 'coords_xyz': [ - '(1/2,0,0)', - '(0,1/2,0)', - '(0,0,1/2)' - ] - }, - 'c': { - 'multiplicity': 3, - 'site_symmetry': '-42.', - 'coords_xyz': [ - '(0,1/2,1/2)', - '(1/2,0,1/2)', - '(1/2,1/2,0)' - ] - }, - 'b': { - 'multiplicity': 1, - 'site_symmetry': '-43m', - 'coords_xyz': [ - '(1/2,1/2,1/2)' - ] + 'coords_xyz': ['(x,0,0)', '(-x,0,0)', '(0,x,0)', '(0,-x,0)', '(0,0,x)', '(0,0,-x)'], }, - 'a': { - 'multiplicity': 1, - 'site_symmetry': '-43m', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'e': {'multiplicity': 4, 'site_symmetry': '.3m', 'coords_xyz': ['(x,x,x)', '(-x,-x,x)', '(-x,x,-x)', '(x,-x,-x)']}, + 'd': {'multiplicity': 3, 'site_symmetry': '-42.', 'coords_xyz': ['(1/2,0,0)', '(0,1/2,0)', '(0,0,1/2)']}, + 'c': {'multiplicity': 3, 'site_symmetry': '-42.', 'coords_xyz': ['(0,1/2,1/2)', '(1/2,0,1/2)', '(1/2,1/2,0)']}, + 'b': {'multiplicity': 1, 'site_symmetry': '-43m', 'coords_xyz': ['(1/2,1/2,1/2)']}, + 'a': {'multiplicity': 1, 'site_symmetry': '-43m', 'coords_xyz': ['(0,0,0)']}, + }, }, (216, '1'): { 'IT_number': 216, @@ -46787,8 +22333,8 @@ '(z,y,x)', '(z,-y,-x)', '(-z,y,-x)', - '(-z,-y,x)' - ] + '(-z,-y,x)', + ], }, 'h': { 'multiplicity': 48, @@ -46805,72 +22351,29 @@ '(x,z,x)', '(-x,z,-x)', '(x,-z,-x)', - '(-x,-z,x)' - ] + '(-x,-z,x)', + ], }, 'g': { 'multiplicity': 24, 'site_symmetry': '2.m', - 'coords_xyz': [ - '(x,1/4,1/4)', - '(-x,3/4,1/4)', - '(1/4,x,1/4)', - '(1/4,-x,3/4)', - '(1/4,1/4,x)', - '(3/4,1/4,-x)' - ] + 'coords_xyz': ['(x,1/4,1/4)', '(-x,3/4,1/4)', '(1/4,x,1/4)', '(1/4,-x,3/4)', '(1/4,1/4,x)', '(3/4,1/4,-x)'], }, 'f': { 'multiplicity': 24, 'site_symmetry': '2.m', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)', - '(0,x,0)', - '(0,-x,0)', - '(0,0,x)', - '(0,0,-x)' - ] + 'coords_xyz': ['(x,0,0)', '(-x,0,0)', '(0,x,0)', '(0,-x,0)', '(0,0,x)', '(0,0,-x)'], }, 'e': { 'multiplicity': 16, 'site_symmetry': '.3m', - 'coords_xyz': [ - '(x,x,x)', - '(-x,-x,x)', - '(-x,x,-x)', - '(x,-x,-x)' - ] - }, - 'd': { - 'multiplicity': 4, - 'site_symmetry': '-43m', - 'coords_xyz': [ - '(3/4,3/4,3/4)' - ] - }, - 'c': { - 'multiplicity': 4, - 'site_symmetry': '-43m', - 'coords_xyz': [ - '(1/4,1/4,1/4)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': '-43m', - 'coords_xyz': [ - '(1/2,1/2,1/2)' - ] + 'coords_xyz': ['(x,x,x)', '(-x,-x,x)', '(-x,x,-x)', '(x,-x,-x)'], }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': '-43m', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'd': {'multiplicity': 4, 'site_symmetry': '-43m', 'coords_xyz': ['(3/4,3/4,3/4)']}, + 'c': {'multiplicity': 4, 'site_symmetry': '-43m', 'coords_xyz': ['(1/4,1/4,1/4)']}, + 'b': {'multiplicity': 4, 'site_symmetry': '-43m', 'coords_xyz': ['(1/2,1/2,1/2)']}, + 'a': {'multiplicity': 4, 'site_symmetry': '-43m', 'coords_xyz': ['(0,0,0)']}, + }, }, (217, '1'): { 'IT_number': 217, @@ -46906,8 +22409,8 @@ '(z,y,x)', '(z,-y,-x)', '(-z,y,-x)', - '(-z,-y,x)' - ] + '(-z,-y,x)', + ], }, 'g': { 'multiplicity': 24, @@ -46924,8 +22427,8 @@ '(x,z,x)', '(-x,z,-x)', '(x,-z,-x)', - '(-x,-z,x)' - ] + '(-x,-z,x)', + ], }, 'f': { 'multiplicity': 24, @@ -46942,60 +22445,23 @@ '(x,0,1/2)', '(-x,0,1/2)', '(0,1/2,x)', - '(0,1/2,-x)' - ] + '(0,1/2,-x)', + ], }, 'e': { 'multiplicity': 12, 'site_symmetry': '2.m', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)', - '(0,x,0)', - '(0,-x,0)', - '(0,0,x)', - '(0,0,-x)' - ] + 'coords_xyz': ['(x,0,0)', '(-x,0,0)', '(0,x,0)', '(0,-x,0)', '(0,0,x)', '(0,0,-x)'], }, 'd': { 'multiplicity': 12, 'site_symmetry': '-4..', - 'coords_xyz': [ - '(1/4,1/2,0)', - '(3/4,1/2,0)', - '(0,1/4,1/2)', - '(0,3/4,1/2)', - '(1/2,0,1/4)', - '(1/2,0,3/4)' - ] - }, - 'c': { - 'multiplicity': 8, - 'site_symmetry': '.3m', - 'coords_xyz': [ - '(x,x,x)', - '(-x,-x,x)', - '(-x,x,-x)', - '(x,-x,-x)' - ] - }, - 'b': { - 'multiplicity': 6, - 'site_symmetry': '-42.', - 'coords_xyz': [ - '(0,1/2,1/2)', - '(1/2,0,1/2)', - '(1/2,1/2,0)' - ] + 'coords_xyz': ['(1/4,1/2,0)', '(3/4,1/2,0)', '(0,1/4,1/2)', '(0,3/4,1/2)', '(1/2,0,1/4)', '(1/2,0,3/4)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '-43m', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'c': {'multiplicity': 8, 'site_symmetry': '.3m', 'coords_xyz': ['(x,x,x)', '(-x,-x,x)', '(-x,x,-x)', '(x,-x,-x)']}, + 'b': {'multiplicity': 6, 'site_symmetry': '-42.', 'coords_xyz': ['(0,1/2,1/2)', '(1/2,0,1/2)', '(1/2,1/2,0)']}, + 'a': {'multiplicity': 2, 'site_symmetry': '-43m', 'coords_xyz': ['(0,0,0)']}, + }, }, (218, '1'): { 'IT_number': 218, @@ -47031,8 +22497,8 @@ '(z+1/2,y+1/2,x+1/2)', '(z+1/2,-y+1/2,-x+1/2)', '(-z+1/2,y+1/2,-x+1/2)', - '(-z+1/2,-y+1/2,x+1/2)' - ] + '(-z+1/2,-y+1/2,x+1/2)', + ], }, 'h': { 'multiplicity': 12, @@ -47049,8 +22515,8 @@ '(x+1/2,0,1/2)', '(-x+1/2,0,1/2)', '(0,1/2,x+1/2)', - '(0,1/2,-x+1/2)' - ] + '(0,1/2,-x+1/2)', + ], }, 'g': { 'multiplicity': 12, @@ -47067,8 +22533,8 @@ '(x+1/2,1/2,0)', '(-x+1/2,1/2,0)', '(1/2,0,x+1/2)', - '(1/2,0,-x+1/2)' - ] + '(1/2,0,-x+1/2)', + ], }, 'f': { 'multiplicity': 12, @@ -47085,8 +22551,8 @@ '(x+1/2,1/2,1/2)', '(-x+1/2,1/2,1/2)', '(1/2,1/2,x+1/2)', - '(1/2,1/2,-x+1/2)' - ] + '(1/2,1/2,-x+1/2)', + ], }, 'e': { 'multiplicity': 8, @@ -47099,54 +22565,26 @@ '(x+1/2,x+1/2,x+1/2)', '(-x+1/2,-x+1/2,x+1/2)', '(x+1/2,-x+1/2,-x+1/2)', - '(-x+1/2,x+1/2,-x+1/2)' - ] + '(-x+1/2,x+1/2,-x+1/2)', + ], }, 'd': { 'multiplicity': 6, 'site_symmetry': '-4..', - 'coords_xyz': [ - '(1/4,0,1/2)', - '(3/4,0,1/2)', - '(1/2,1/4,0)', - '(1/2,3/4,0)', - '(0,1/2,1/4)', - '(0,1/2,3/4)' - ] + 'coords_xyz': ['(1/4,0,1/2)', '(3/4,0,1/2)', '(1/2,1/4,0)', '(1/2,3/4,0)', '(0,1/2,1/4)', '(0,1/2,3/4)'], }, 'c': { 'multiplicity': 6, 'site_symmetry': '-4..', - 'coords_xyz': [ - '(1/4,1/2,0)', - '(3/4,1/2,0)', - '(0,1/4,1/2)', - '(0,3/4,1/2)', - '(1/2,0,1/4)', - '(1/2,0,3/4)' - ] + 'coords_xyz': ['(1/4,1/2,0)', '(3/4,1/2,0)', '(0,1/4,1/2)', '(0,3/4,1/2)', '(1/2,0,1/4)', '(1/2,0,3/4)'], }, 'b': { 'multiplicity': 6, 'site_symmetry': '222', - 'coords_xyz': [ - '(0,1/2,1/2)', - '(1/2,0,1/2)', - '(1/2,1/2,0)', - '(0,1/2,0)', - '(1/2,0,0)', - '(0,0,1/2)' - ] + 'coords_xyz': ['(0,1/2,1/2)', '(1/2,0,1/2)', '(1/2,1/2,0)', '(0,1/2,0)', '(1/2,0,0)', '(0,0,1/2)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '23.', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,1/2,1/2)' - ] - } - } + 'a': {'multiplicity': 2, 'site_symmetry': '23.', 'coords_xyz': ['(0,0,0)', '(1/2,1/2,1/2)']}, + }, }, (219, '1'): { 'IT_number': 219, @@ -47182,8 +22620,8 @@ '(z+1/2,y+1/2,x+1/2)', '(z+1/2,-y+1/2,-x+1/2)', '(-z+1/2,y+1/2,-x+1/2)', - '(-z+1/2,-y+1/2,x+1/2)' - ] + '(-z+1/2,-y+1/2,x+1/2)', + ], }, 'g': { 'multiplicity': 48, @@ -47200,8 +22638,8 @@ '(x+1/2,3/4,3/4)', '(-x+1/2,3/4,1/4)', '(3/4,3/4,x+1/2)', - '(3/4,1/4,-x+1/2)' - ] + '(3/4,1/4,-x+1/2)', + ], }, 'f': { 'multiplicity': 48, @@ -47218,8 +22656,8 @@ '(x+1/2,1/2,1/2)', '(-x+1/2,1/2,1/2)', '(1/2,1/2,x+1/2)', - '(1/2,1/2,-x+1/2)' - ] + '(1/2,1/2,-x+1/2)', + ], }, 'e': { 'multiplicity': 32, @@ -47232,50 +22670,22 @@ '(x+1/2,x+1/2,x+1/2)', '(-x+1/2,-x+1/2,x+1/2)', '(x+1/2,-x+1/2,-x+1/2)', - '(-x+1/2,x+1/2,-x+1/2)' - ] + '(-x+1/2,x+1/2,-x+1/2)', + ], }, 'd': { 'multiplicity': 24, 'site_symmetry': '-4..', - 'coords_xyz': [ - '(1/4,0,0)', - '(3/4,0,0)', - '(0,1/4,0)', - '(0,3/4,0)', - '(0,0,1/4)', - '(0,0,3/4)' - ] + 'coords_xyz': ['(1/4,0,0)', '(3/4,0,0)', '(0,1/4,0)', '(0,3/4,0)', '(0,0,1/4)', '(0,0,3/4)'], }, 'c': { 'multiplicity': 24, 'site_symmetry': '-4..', - 'coords_xyz': [ - '(0,1/4,1/4)', - '(0,3/4,1/4)', - '(1/4,0,1/4)', - '(1/4,0,3/4)', - '(1/4,1/4,0)', - '(3/4,1/4,0)' - ] - }, - 'b': { - 'multiplicity': 8, - 'site_symmetry': '23.', - 'coords_xyz': [ - '(1/4,1/4,1/4)', - '(3/4,3/4,3/4)' - ] + 'coords_xyz': ['(0,1/4,1/4)', '(0,3/4,1/4)', '(1/4,0,1/4)', '(1/4,0,3/4)', '(1/4,1/4,0)', '(3/4,1/4,0)'], }, - 'a': { - 'multiplicity': 8, - 'site_symmetry': '23.', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,1/2,1/2)' - ] - } - } + 'b': {'multiplicity': 8, 'site_symmetry': '23.', 'coords_xyz': ['(1/4,1/4,1/4)', '(3/4,3/4,3/4)']}, + 'a': {'multiplicity': 8, 'site_symmetry': '23.', 'coords_xyz': ['(0,0,0)', '(1/2,1/2,1/2)']}, + }, }, (220, '1'): { 'IT_number': 220, @@ -47311,8 +22721,8 @@ '(z+1/4,y+1/4,x+1/4)', '(z+3/4,-y+1/4,-x+3/4)', '(-z+3/4,y+3/4,-x+1/4)', - '(-z+1/4,-y+3/4,x+3/4)' - ] + '(-z+1/4,-y+3/4,x+3/4)', + ], }, 'd': { 'multiplicity': 24, @@ -47329,8 +22739,8 @@ '(x+1/4,1/2,1/4)', '(-x+3/4,0,1/4)', '(1/2,1/4,x+1/4)', - '(0,1/4,-x+3/4)' - ] + '(0,1/4,-x+3/4)', + ], }, 'c': { 'multiplicity': 16, @@ -47343,34 +22753,20 @@ '(x+1/4,x+1/4,x+1/4)', '(-x+1/4,-x+3/4,x+3/4)', '(x+3/4,-x+1/4,-x+3/4)', - '(-x+3/4,x+3/4,-x+1/4)' - ] + '(-x+3/4,x+3/4,-x+1/4)', + ], }, 'b': { 'multiplicity': 12, 'site_symmetry': '-4..', - 'coords_xyz': [ - '(7/8,0,1/4)', - '(5/8,0,3/4)', - '(1/4,7/8,0)', - '(3/4,5/8,0)', - '(0,1/4,7/8)', - '(0,3/4,5/8)' - ] + 'coords_xyz': ['(7/8,0,1/4)', '(5/8,0,3/4)', '(1/4,7/8,0)', '(3/4,5/8,0)', '(0,1/4,7/8)', '(0,3/4,5/8)'], }, 'a': { 'multiplicity': 12, 'site_symmetry': '-4..', - 'coords_xyz': [ - '(3/8,0,1/4)', - '(1/8,0,3/4)', - '(1/4,3/8,0)', - '(3/4,1/8,0)', - '(0,1/4,3/8)', - '(0,3/4,1/8)' - ] - } - } + 'coords_xyz': ['(3/8,0,1/4)', '(1/8,0,3/4)', '(1/4,3/8,0)', '(3/4,1/8,0)', '(0,1/4,3/8)', '(0,3/4,1/8)'], + }, + }, }, (221, '1'): { 'IT_number': 221, @@ -47430,8 +22826,8 @@ '(-z,-y,x)', '(-z,y,-x)', '(z,-y,-x)', - '(z,y,x)' - ] + '(z,y,x)', + ], }, 'm': { 'multiplicity': 24, @@ -47460,8 +22856,8 @@ '(z,x,-x)', '(z,-x,x)', '(-z,x,x)', - '(-z,-x,-x)' - ] + '(-z,-x,-x)', + ], }, 'l': { 'multiplicity': 24, @@ -47490,8 +22886,8 @@ '(z,y,1/2)', '(z,-y,1/2)', '(-z,y,1/2)', - '(-z,-y,1/2)' - ] + '(-z,-y,1/2)', + ], }, 'k': { 'multiplicity': 24, @@ -47520,8 +22916,8 @@ '(z,y,0)', '(z,-y,0)', '(-z,y,0)', - '(-z,-y,0)' - ] + '(-z,-y,0)', + ], }, 'j': { 'multiplicity': 12, @@ -47538,8 +22934,8 @@ '(y,y,1/2)', '(-y,y,1/2)', '(y,-y,1/2)', - '(-y,-y,1/2)' - ] + '(-y,-y,1/2)', + ], }, 'i': { 'multiplicity': 12, @@ -47556,8 +22952,8 @@ '(y,y,0)', '(-y,y,0)', '(y,-y,0)', - '(-y,-y,0)' - ] + '(-y,-y,0)', + ], }, 'h': { 'multiplicity': 12, @@ -47574,8 +22970,8 @@ '(x,0,1/2)', '(-x,0,1/2)', '(0,1/2,-x)', - '(0,1/2,x)' - ] + '(0,1/2,x)', + ], }, 'g': { 'multiplicity': 8, @@ -47585,69 +22981,27 @@ '(-x,-x,x)', '(-x,x,-x)', '(x,-x,-x)', - '(x,x,-x)', - '(-x,-x,-x)', - '(x,-x,x)', - '(-x,x,x)' - ] - }, - 'f': { - 'multiplicity': 6, - 'site_symmetry': '4m.', - 'coords_xyz': [ - '(x,1/2,1/2)', - '(-x,1/2,1/2)', - '(1/2,x,1/2)', - '(1/2,-x,1/2)', - '(1/2,1/2,x)', - '(1/2,1/2,-x)' - ] - }, - 'e': { - 'multiplicity': 6, - 'site_symmetry': '4m.', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)', - '(0,x,0)', - '(0,-x,0)', - '(0,0,x)', - '(0,0,-x)' - ] - }, - 'd': { - 'multiplicity': 3, - 'site_symmetry': '4/mm.', - 'coords_xyz': [ - '(1/2,0,0)', - '(0,1/2,0)', - '(0,0,1/2)' - ] + '(x,x,-x)', + '(-x,-x,-x)', + '(x,-x,x)', + '(-x,x,x)', + ], }, - 'c': { - 'multiplicity': 3, - 'site_symmetry': '4/mm.', - 'coords_xyz': [ - '(0,1/2,1/2)', - '(1/2,0,1/2)', - '(1/2,1/2,0)' - ] + 'f': { + 'multiplicity': 6, + 'site_symmetry': '4m.', + 'coords_xyz': ['(x,1/2,1/2)', '(-x,1/2,1/2)', '(1/2,x,1/2)', '(1/2,-x,1/2)', '(1/2,1/2,x)', '(1/2,1/2,-x)'], }, - 'b': { - 'multiplicity': 1, - 'site_symmetry': 'm-3m', - 'coords_xyz': [ - '(1/2,1/2,1/2)' - ] + 'e': { + 'multiplicity': 6, + 'site_symmetry': '4m.', + 'coords_xyz': ['(x,0,0)', '(-x,0,0)', '(0,x,0)', '(0,-x,0)', '(0,0,x)', '(0,0,-x)'], }, - 'a': { - 'multiplicity': 1, - 'site_symmetry': 'm-3m', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'd': {'multiplicity': 3, 'site_symmetry': '4/mm.', 'coords_xyz': ['(1/2,0,0)', '(0,1/2,0)', '(0,0,1/2)']}, + 'c': {'multiplicity': 3, 'site_symmetry': '4/mm.', 'coords_xyz': ['(0,1/2,1/2)', '(1/2,0,1/2)', '(1/2,1/2,0)']}, + 'b': {'multiplicity': 1, 'site_symmetry': 'm-3m', 'coords_xyz': ['(1/2,1/2,1/2)']}, + 'a': {'multiplicity': 1, 'site_symmetry': 'm-3m', 'coords_xyz': ['(0,0,0)']}, + }, }, (222, '1'): { 'IT_number': 222, @@ -47707,8 +23061,8 @@ '(-z+1/2,-y+1/2,x+1/2)', '(-z+1/2,y+1/2,-x+1/2)', '(z+1/2,-y+1/2,-x+1/2)', - '(z+1/2,y+1/2,x+1/2)' - ] + '(z+1/2,y+1/2,x+1/2)', + ], }, 'h': { 'multiplicity': 24, @@ -47737,8 +23091,8 @@ '(-y+1/2,-y+1/2,1/2)', '(y+1/2,-y+1/2,1/2)', '(-y+1/2,y+1/2,1/2)', - '(y+1/2,y+1/2,1/2)' - ] + '(y+1/2,y+1/2,1/2)', + ], }, 'g': { 'multiplicity': 24, @@ -47767,8 +23121,8 @@ '(-x+1/2,0,1/2)', '(x+1/2,0,1/2)', '(0,1/2,x+1/2)', - '(0,1/2,-x+1/2)' - ] + '(0,1/2,-x+1/2)', + ], }, 'f': { 'multiplicity': 16, @@ -47789,8 +23143,8 @@ '(-x+1/2,-x+1/2,x+1/2)', '(x+1/2,x+1/2,x+1/2)', '(-x+1/2,x+1/2,-x+1/2)', - '(x+1/2,-x+1/2,-x+1/2)' - ] + '(x+1/2,-x+1/2,-x+1/2)', + ], }, 'e': { 'multiplicity': 12, @@ -47807,8 +23161,8 @@ '(1/2,-x+1/2,1/2)', '(1/2,x+1/2,1/2)', '(1/2,1/2,-x+1/2)', - '(1/2,1/2,x+1/2)' - ] + '(1/2,1/2,x+1/2)', + ], }, 'd': { 'multiplicity': 12, @@ -47825,8 +23179,8 @@ '(1/4,1/2,0)', '(3/4,1/2,0)', '(1/2,0,3/4)', - '(1/2,0,1/4)' - ] + '(1/2,0,1/4)', + ], }, 'c': { 'multiplicity': 8, @@ -47839,30 +23193,16 @@ '(1/4,1/4,3/4)', '(3/4,3/4,3/4)', '(1/4,3/4,1/4)', - '(3/4,1/4,1/4)' - ] + '(3/4,1/4,1/4)', + ], }, 'b': { 'multiplicity': 6, 'site_symmetry': '42.', - 'coords_xyz': [ - '(0,1/2,1/2)', - '(1/2,0,1/2)', - '(1/2,1/2,0)', - '(1/2,0,0)', - '(0,1/2,0)', - '(0,0,1/2)' - ] + 'coords_xyz': ['(0,1/2,1/2)', '(1/2,0,1/2)', '(1/2,1/2,0)', '(1/2,0,0)', '(0,1/2,0)', '(0,0,1/2)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '432', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,1/2,1/2)' - ] - } - } + 'a': {'multiplicity': 2, 'site_symmetry': '432', 'coords_xyz': ['(0,0,0)', '(1/2,1/2,1/2)']}, + }, }, (222, '2'): { 'IT_number': 222, @@ -47922,8 +23262,8 @@ '(-z,-y,x+1/2)', '(-z,y+1/2,-x)', '(z+1/2,-y,-x)', - '(z+1/2,y+1/2,x+1/2)' - ] + '(z+1/2,y+1/2,x+1/2)', + ], }, 'h': { 'multiplicity': 24, @@ -47952,8 +23292,8 @@ '(-y,-y,3/4)', '(y+1/2,-y,3/4)', '(-y,y+1/2,3/4)', - '(y+1/2,y+1/2,3/4)' - ] + '(y+1/2,y+1/2,3/4)', + ], }, 'g': { 'multiplicity': 24, @@ -47982,8 +23322,8 @@ '(-x,3/4,1/4)', '(x+1/2,3/4,1/4)', '(3/4,1/4,x+1/2)', - '(3/4,1/4,-x)' - ] + '(3/4,1/4,-x)', + ], }, 'f': { 'multiplicity': 16, @@ -48004,8 +23344,8 @@ '(-x,-x,x+1/2)', '(x+1/2,x+1/2,x+1/2)', '(-x,x+1/2,-x)', - '(x+1/2,-x,-x)' - ] + '(x+1/2,-x,-x)', + ], }, 'e': { 'multiplicity': 12, @@ -48022,8 +23362,8 @@ '(3/4,-x,3/4)', '(3/4,x+1/2,3/4)', '(3/4,3/4,-x)', - '(3/4,3/4,x+1/2)' - ] + '(3/4,3/4,x+1/2)', + ], }, 'd': { 'multiplicity': 12, @@ -48040,8 +23380,8 @@ '(0,1/4,3/4)', '(1/2,1/4,3/4)', '(1/4,3/4,1/2)', - '(1/4,3/4,0)' - ] + '(1/4,3/4,0)', + ], }, 'c': { 'multiplicity': 8, @@ -48054,8 +23394,8 @@ '(0,0,1/2)', '(1/2,1/2,1/2)', '(0,1/2,0)', - '(1/2,0,0)' - ] + '(1/2,0,0)', + ], }, 'b': { 'multiplicity': 6, @@ -48066,18 +23406,11 @@ '(1/4,1/4,3/4)', '(1/4,3/4,3/4)', '(3/4,1/4,3/4)', - '(3/4,3/4,1/4)' - ] + '(3/4,3/4,1/4)', + ], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '432', - 'coords_xyz': [ - '(1/4,1/4,1/4)', - '(3/4,3/4,3/4)' - ] - } - } + 'a': {'multiplicity': 2, 'site_symmetry': '432', 'coords_xyz': ['(1/4,1/4,1/4)', '(3/4,3/4,3/4)']}, + }, }, (223, '1'): { 'IT_number': 223, @@ -48137,8 +23470,8 @@ '(-z+1/2,-y+1/2,x+1/2)', '(-z+1/2,y+1/2,-x+1/2)', '(z+1/2,-y+1/2,-x+1/2)', - '(z+1/2,y+1/2,x+1/2)' - ] + '(z+1/2,y+1/2,x+1/2)', + ], }, 'k': { 'multiplicity': 24, @@ -48167,8 +23500,8 @@ '(z+1/2,y+1/2,1/2)', '(z+1/2,-y+1/2,1/2)', '(-z+1/2,y+1/2,1/2)', - '(-z+1/2,-y+1/2,1/2)' - ] + '(-z+1/2,-y+1/2,1/2)', + ], }, 'j': { 'multiplicity': 24, @@ -48197,8 +23530,8 @@ '(-y,-y+1/2,3/4)', '(y,-y+1/2,1/4)', '(-y,y+1/2,1/4)', - '(y,y+1/2,3/4)' - ] + '(y,y+1/2,3/4)', + ], }, 'i': { 'multiplicity': 16, @@ -48219,8 +23552,8 @@ '(-x+1/2,-x+1/2,x+1/2)', '(x+1/2,x+1/2,x+1/2)', '(-x+1/2,x+1/2,-x+1/2)', - '(x+1/2,-x+1/2,-x+1/2)' - ] + '(x+1/2,-x+1/2,-x+1/2)', + ], }, 'h': { 'multiplicity': 12, @@ -48237,8 +23570,8 @@ '(x+1/2,1/2,0)', '(-x+1/2,1/2,0)', '(1/2,0,-x+1/2)', - '(1/2,0,x+1/2)' - ] + '(1/2,0,x+1/2)', + ], }, 'g': { 'multiplicity': 12, @@ -48255,8 +23588,8 @@ '(x+1/2,0,1/2)', '(-x+1/2,0,1/2)', '(0,1/2,-x+1/2)', - '(0,1/2,x+1/2)' - ] + '(0,1/2,x+1/2)', + ], }, 'f': { 'multiplicity': 12, @@ -48273,8 +23606,8 @@ '(x+1/2,1/2,1/2)', '(-x+1/2,1/2,1/2)', '(1/2,1/2,-x+1/2)', - '(1/2,1/2,x+1/2)' - ] + '(1/2,1/2,x+1/2)', + ], }, 'e': { 'multiplicity': 8, @@ -48287,54 +23620,26 @@ '(3/4,3/4,3/4)', '(1/4,1/4,3/4)', '(1/4,3/4,1/4)', - '(3/4,1/4,1/4)' - ] + '(3/4,1/4,1/4)', + ], }, 'd': { 'multiplicity': 6, 'site_symmetry': '-4m.', - 'coords_xyz': [ - '(1/4,1/2,0)', - '(3/4,1/2,0)', - '(0,1/4,1/2)', - '(0,3/4,1/2)', - '(1/2,0,1/4)', - '(1/2,0,3/4)' - ] + 'coords_xyz': ['(1/4,1/2,0)', '(3/4,1/2,0)', '(0,1/4,1/2)', '(0,3/4,1/2)', '(1/2,0,1/4)', '(1/2,0,3/4)'], }, 'c': { 'multiplicity': 6, 'site_symmetry': '-4m.', - 'coords_xyz': [ - '(1/4,0,1/2)', - '(3/4,0,1/2)', - '(1/2,1/4,0)', - '(1/2,3/4,0)', - '(0,1/2,1/4)', - '(0,1/2,3/4)' - ] + 'coords_xyz': ['(1/4,0,1/2)', '(3/4,0,1/2)', '(1/2,1/4,0)', '(1/2,3/4,0)', '(0,1/2,1/4)', '(0,1/2,3/4)'], }, 'b': { 'multiplicity': 6, 'site_symmetry': 'mmm', - 'coords_xyz': [ - '(0,1/2,1/2)', - '(1/2,0,1/2)', - '(1/2,1/2,0)', - '(0,1/2,0)', - '(1/2,0,0)', - '(0,0,1/2)' - ] + 'coords_xyz': ['(0,1/2,1/2)', '(1/2,0,1/2)', '(1/2,1/2,0)', '(0,1/2,0)', '(1/2,0,0)', '(0,0,1/2)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': 'm-3.', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,1/2,1/2)' - ] - } - } + 'a': {'multiplicity': 2, 'site_symmetry': 'm-3.', 'coords_xyz': ['(0,0,0)', '(1/2,1/2,1/2)']}, + }, }, (224, '1'): { 'IT_number': 224, @@ -48394,8 +23699,8 @@ '(-z,-y,x)', '(-z,y,-x)', '(z,-y,-x)', - '(z,y,x)' - ] + '(z,y,x)', + ], }, 'k': { 'multiplicity': 24, @@ -48424,8 +23729,8 @@ '(z+1/2,x+1/2,-x+1/2)', '(z+1/2,-x+1/2,x+1/2)', '(-z+1/2,x+1/2,x+1/2)', - '(-z+1/2,-x+1/2,-x+1/2)' - ] + '(-z+1/2,-x+1/2,-x+1/2)', + ], }, 'j': { 'multiplicity': 24, @@ -48454,8 +23759,8 @@ '(-y+1/2,-y,1/4)', '(y+1/2,-y,3/4)', '(-y+1/2,y,3/4)', - '(y+1/2,y,1/4)' - ] + '(y+1/2,y,1/4)', + ], }, 'i': { 'multiplicity': 24, @@ -48484,8 +23789,8 @@ '(-y+1/2,y,1/4)', '(y+1/2,y,3/4)', '(-y+1/2,-y,3/4)', - '(y+1/2,-y,1/4)' - ] + '(y+1/2,-y,1/4)', + ], }, 'h': { 'multiplicity': 24, @@ -48514,8 +23819,8 @@ '(-x,1/2,0)', '(x,1/2,0)', '(1/2,0,x)', - '(1/2,0,-x)' - ] + '(1/2,0,-x)', + ], }, 'g': { 'multiplicity': 12, @@ -48532,8 +23837,8 @@ '(x+1/2,1/2,1/2)', '(-x+1/2,1/2,1/2)', '(1/2,1/2,-x+1/2)', - '(1/2,1/2,x+1/2)' - ] + '(1/2,1/2,x+1/2)', + ], }, 'f': { 'multiplicity': 12, @@ -48550,8 +23855,8 @@ '(0,1/4,1/2)', '(0,3/4,1/2)', '(1/2,0,1/4)', - '(1/2,0,3/4)' - ] + '(1/2,0,3/4)', + ], }, 'e': { 'multiplicity': 8, @@ -48564,50 +23869,26 @@ '(x+1/2,x+1/2,-x+1/2)', '(-x+1/2,-x+1/2,-x+1/2)', '(x+1/2,-x+1/2,x+1/2)', - '(-x+1/2,x+1/2,x+1/2)' - ] + '(-x+1/2,x+1/2,x+1/2)', + ], }, 'd': { 'multiplicity': 6, 'site_symmetry': '-42.', - 'coords_xyz': [ - '(0,1/2,1/2)', - '(1/2,0,1/2)', - '(1/2,1/2,0)', - '(0,1/2,0)', - '(1/2,0,0)', - '(0,0,1/2)' - ] + 'coords_xyz': ['(0,1/2,1/2)', '(1/2,0,1/2)', '(1/2,1/2,0)', '(0,1/2,0)', '(1/2,0,0)', '(0,0,1/2)'], }, 'c': { 'multiplicity': 4, 'site_symmetry': '.-3m', - 'coords_xyz': [ - '(3/4,3/4,3/4)', - '(1/4,1/4,3/4)', - '(1/4,3/4,1/4)', - '(3/4,1/4,1/4)' - ] + 'coords_xyz': ['(3/4,3/4,3/4)', '(1/4,1/4,3/4)', '(1/4,3/4,1/4)', '(3/4,1/4,1/4)'], }, 'b': { 'multiplicity': 4, 'site_symmetry': '.-3m', - 'coords_xyz': [ - '(1/4,1/4,1/4)', - '(3/4,3/4,1/4)', - '(3/4,1/4,3/4)', - '(1/4,3/4,3/4)' - ] + 'coords_xyz': ['(1/4,1/4,1/4)', '(3/4,3/4,1/4)', '(3/4,1/4,3/4)', '(1/4,3/4,3/4)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '-43m', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,1/2,1/2)' - ] - } - } + 'a': {'multiplicity': 2, 'site_symmetry': '-43m', 'coords_xyz': ['(0,0,0)', '(1/2,1/2,1/2)']}, + }, }, (224, '2'): { 'IT_number': 224, @@ -48667,8 +23948,8 @@ '(-z+1/2,-y+1/2,x)', '(-z+1/2,y,-x+1/2)', '(z,-y+1/2,-x+1/2)', - '(z,y,x)' - ] + '(z,y,x)', + ], }, 'k': { 'multiplicity': 24, @@ -48697,8 +23978,8 @@ '(z+1/2,x+1/2,-x)', '(z+1/2,-x,x+1/2)', '(-z,x+1/2,x+1/2)', - '(-z,-x,-x)' - ] + '(-z,-x,-x)', + ], }, 'j': { 'multiplicity': 24, @@ -48727,8 +24008,8 @@ '(-y,y,1/2)', '(y+1/2,y,0)', '(-y,-y+1/2,0)', - '(y+1/2,-y+1/2,1/2)' - ] + '(y+1/2,-y+1/2,1/2)', + ], }, 'i': { 'multiplicity': 24, @@ -48757,8 +24038,8 @@ '(-y,-y+1/2,1/2)', '(y+1/2,-y+1/2,0)', '(-y,y,0)', - '(y+1/2,y,1/2)' - ] + '(y+1/2,y,1/2)', + ], }, 'h': { 'multiplicity': 24, @@ -48787,8 +24068,8 @@ '(-x+1/2,3/4,1/4)', '(x,3/4,1/4)', '(3/4,1/4,x)', - '(3/4,1/4,-x+1/2)' - ] + '(3/4,1/4,-x+1/2)', + ], }, 'g': { 'multiplicity': 12, @@ -48805,8 +24086,8 @@ '(x+1/2,3/4,3/4)', '(-x,3/4,3/4)', '(3/4,3/4,-x)', - '(3/4,3/4,x+1/2)' - ] + '(3/4,3/4,x+1/2)', + ], }, 'f': { 'multiplicity': 12, @@ -48823,8 +24104,8 @@ '(1/4,1/2,3/4)', '(1/4,0,3/4)', '(3/4,1/4,1/2)', - '(3/4,1/4,0)' - ] + '(3/4,1/4,0)', + ], }, 'e': { 'multiplicity': 8, @@ -48837,8 +24118,8 @@ '(x+1/2,x+1/2,-x)', '(-x,-x,-x)', '(x+1/2,-x,x+1/2)', - '(-x,x+1/2,x+1/2)' - ] + '(-x,x+1/2,x+1/2)', + ], }, 'd': { 'multiplicity': 6, @@ -48849,38 +24130,21 @@ '(3/4,3/4,1/4)', '(1/4,3/4,1/4)', '(3/4,1/4,1/4)', - '(1/4,1/4,3/4)' - ] + '(1/4,1/4,3/4)', + ], }, 'c': { 'multiplicity': 4, 'site_symmetry': '.-3m', - 'coords_xyz': [ - '(1/2,1/2,1/2)', - '(0,0,1/2)', - '(0,1/2,0)', - '(1/2,0,0)' - ] + 'coords_xyz': ['(1/2,1/2,1/2)', '(0,0,1/2)', '(0,1/2,0)', '(1/2,0,0)'], }, 'b': { 'multiplicity': 4, 'site_symmetry': '.-3m', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,1/2,0)', - '(1/2,0,1/2)', - '(0,1/2,1/2)' - ] + 'coords_xyz': ['(0,0,0)', '(1/2,1/2,0)', '(1/2,0,1/2)', '(0,1/2,1/2)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': '-43m', - 'coords_xyz': [ - '(1/4,1/4,1/4)', - '(3/4,3/4,3/4)' - ] - } - } + 'a': {'multiplicity': 2, 'site_symmetry': '-43m', 'coords_xyz': ['(1/4,1/4,1/4)', '(3/4,3/4,3/4)']}, + }, }, (225, '1'): { 'IT_number': 225, @@ -48940,8 +24204,8 @@ '(-z,-y,x)', '(-z,y,-x)', '(z,-y,-x)', - '(z,y,x)' - ] + '(z,y,x)', + ], }, 'k': { 'multiplicity': 96, @@ -48970,8 +24234,8 @@ '(z,x,-x)', '(z,-x,x)', '(-z,x,x)', - '(-z,-x,-x)' - ] + '(-z,-x,-x)', + ], }, 'j': { 'multiplicity': 96, @@ -49000,8 +24264,8 @@ '(z,y,0)', '(z,-y,0)', '(-z,y,0)', - '(-z,-y,0)' - ] + '(-z,-y,0)', + ], }, 'i': { 'multiplicity': 48, @@ -49018,8 +24282,8 @@ '(y,y,1/2)', '(-y,y,1/2)', '(y,-y,1/2)', - '(-y,-y,1/2)' - ] + '(-y,-y,1/2)', + ], }, 'h': { 'multiplicity': 48, @@ -49036,8 +24300,8 @@ '(y,y,0)', '(-y,y,0)', '(y,-y,0)', - '(-y,-y,0)' - ] + '(-y,-y,0)', + ], }, 'g': { 'multiplicity': 48, @@ -49054,8 +24318,8 @@ '(x,1/4,3/4)', '(-x,1/4,1/4)', '(1/4,1/4,-x)', - '(1/4,3/4,x)' - ] + '(1/4,3/4,x)', + ], }, 'f': { 'multiplicity': 32, @@ -49068,56 +24332,23 @@ '(x,x,-x)', '(-x,-x,-x)', '(x,-x,x)', - '(-x,x,x)' - ] + '(-x,x,x)', + ], }, 'e': { 'multiplicity': 24, 'site_symmetry': '4m.', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)', - '(0,x,0)', - '(0,-x,0)', - '(0,0,x)', - '(0,0,-x)' - ] + 'coords_xyz': ['(x,0,0)', '(-x,0,0)', '(0,x,0)', '(0,-x,0)', '(0,0,x)', '(0,0,-x)'], }, 'd': { 'multiplicity': 24, 'site_symmetry': 'm.m', - 'coords_xyz': [ - '(0,1/4,1/4)', - '(0,3/4,1/4)', - '(1/4,0,1/4)', - '(1/4,0,3/4)', - '(1/4,1/4,0)', - '(3/4,1/4,0)' - ] - }, - 'c': { - 'multiplicity': 8, - 'site_symmetry': '-43m', - 'coords_xyz': [ - '(1/4,1/4,1/4)', - '(1/4,1/4,3/4)' - ] - }, - 'b': { - 'multiplicity': 4, - 'site_symmetry': 'm-3m', - 'coords_xyz': [ - '(1/2,1/2,1/2)' - ] + 'coords_xyz': ['(0,1/4,1/4)', '(0,3/4,1/4)', '(1/4,0,1/4)', '(1/4,0,3/4)', '(1/4,1/4,0)', '(3/4,1/4,0)'], }, - 'a': { - 'multiplicity': 4, - 'site_symmetry': 'm-3m', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'c': {'multiplicity': 8, 'site_symmetry': '-43m', 'coords_xyz': ['(1/4,1/4,1/4)', '(1/4,1/4,3/4)']}, + 'b': {'multiplicity': 4, 'site_symmetry': 'm-3m', 'coords_xyz': ['(1/2,1/2,1/2)']}, + 'a': {'multiplicity': 4, 'site_symmetry': 'm-3m', 'coords_xyz': ['(0,0,0)']}, + }, }, (226, '1'): { 'IT_number': 226, @@ -49177,8 +24408,8 @@ '(-z+1/2,-y+1/2,x+1/2)', '(-z+1/2,y+1/2,-x+1/2)', '(z+1/2,-y+1/2,-x+1/2)', - '(z+1/2,y+1/2,x+1/2)' - ] + '(z+1/2,y+1/2,x+1/2)', + ], }, 'i': { 'multiplicity': 96, @@ -49207,8 +24438,8 @@ '(z+1/2,y+1/2,1/2)', '(z+1/2,-y+1/2,1/2)', '(-z+1/2,y+1/2,1/2)', - '(-z+1/2,-y+1/2,1/2)' - ] + '(-z+1/2,-y+1/2,1/2)', + ], }, 'h': { 'multiplicity': 96, @@ -49237,8 +24468,8 @@ '(-y,-y,3/4)', '(y,-y,1/4)', '(-y,y,1/4)', - '(y,y,3/4)' - ] + '(y,y,3/4)', + ], }, 'g': { 'multiplicity': 64, @@ -49259,8 +24490,8 @@ '(-x+1/2,-x+1/2,x+1/2)', '(x+1/2,x+1/2,x+1/2)', '(-x+1/2,x+1/2,-x+1/2)', - '(x+1/2,-x+1/2,-x+1/2)' - ] + '(x+1/2,-x+1/2,-x+1/2)', + ], }, 'f': { 'multiplicity': 48, @@ -49277,8 +24508,8 @@ '(3/4,-x,3/4)', '(3/4,x,1/4)', '(3/4,3/4,-x)', - '(1/4,3/4,x)' - ] + '(1/4,3/4,x)', + ], }, 'e': { 'multiplicity': 48, @@ -49295,50 +24526,22 @@ '(x+1/2,1/2,1/2)', '(-x+1/2,1/2,1/2)', '(1/2,1/2,-x+1/2)', - '(1/2,1/2,x+1/2)' - ] + '(1/2,1/2,x+1/2)', + ], }, 'd': { 'multiplicity': 24, 'site_symmetry': '4/m..', - 'coords_xyz': [ - '(0,1/4,1/4)', - '(0,3/4,1/4)', - '(1/4,0,1/4)', - '(1/4,0,3/4)', - '(1/4,1/4,0)', - '(3/4,1/4,0)' - ] + 'coords_xyz': ['(0,1/4,1/4)', '(0,3/4,1/4)', '(1/4,0,1/4)', '(1/4,0,3/4)', '(1/4,1/4,0)', '(3/4,1/4,0)'], }, 'c': { 'multiplicity': 24, 'site_symmetry': '-4m.', - 'coords_xyz': [ - '(1/4,0,0)', - '(3/4,0,0)', - '(0,1/4,0)', - '(0,3/4,0)', - '(0,0,1/4)', - '(0,0,3/4)' - ] - }, - 'b': { - 'multiplicity': 8, - 'site_symmetry': 'm-3.', - 'coords_xyz': [ - '(0,0,0)', - '(1/2,1/2,1/2)' - ] + 'coords_xyz': ['(1/4,0,0)', '(3/4,0,0)', '(0,1/4,0)', '(0,3/4,0)', '(0,0,1/4)', '(0,0,3/4)'], }, - 'a': { - 'multiplicity': 8, - 'site_symmetry': '432', - 'coords_xyz': [ - '(1/4,1/4,1/4)', - '(3/4,3/4,3/4)' - ] - } - } + 'b': {'multiplicity': 8, 'site_symmetry': 'm-3.', 'coords_xyz': ['(0,0,0)', '(1/2,1/2,1/2)']}, + 'a': {'multiplicity': 8, 'site_symmetry': '432', 'coords_xyz': ['(1/4,1/4,1/4)', '(3/4,3/4,3/4)']}, + }, }, (227, '1'): { 'IT_number': 227, @@ -49398,8 +24601,8 @@ '(-z+1/2,-y,x+1/2)', '(-z,y+1/2,-x+1/2)', '(z+1/2,-y+1/2,-x)', - '(z,y,x)' - ] + '(z,y,x)', + ], }, 'h': { 'multiplicity': 96, @@ -49428,8 +24631,8 @@ '(-y+1/4,y,1/8)', '(y+3/4,y+1/2,3/8)', '(-y+3/4,-y+1/2,7/8)', - '(y+1/4,-y,5/8)' - ] + '(y+1/4,-y,5/8)', + ], }, 'g': { 'multiplicity': 96, @@ -49458,8 +24661,8 @@ '(z+3/4,x+1/4,-x+3/4)', '(z+1/4,-x+3/4,x+3/4)', '(-z+3/4,x+3/4,x+1/4)', - '(-z+1/4,-x+1/4,-x+1/4)' - ] + '(-z+1/4,-x+1/4,-x+1/4)', + ], }, 'f': { 'multiplicity': 48, @@ -49476,8 +24679,8 @@ '(x+3/4,1/4,3/4)', '(-x+3/4,3/4,1/4)', '(3/4,1/4,-x+3/4)', - '(1/4,3/4,x+3/4)' - ] + '(1/4,3/4,x+3/4)', + ], }, 'e': { 'multiplicity': 32, @@ -49490,46 +24693,22 @@ '(x+3/4,x+1/4,-x+3/4)', '(-x+1/4,-x+1/4,-x+1/4)', '(x+1/4,-x+3/4,x+3/4)', - '(-x+3/4,x+3/4,x+1/4)' - ] + '(-x+3/4,x+3/4,x+1/4)', + ], }, 'd': { 'multiplicity': 16, 'site_symmetry': '.-3m', - 'coords_xyz': [ - '(5/8,5/8,5/8)', - '(3/8,7/8,1/8)', - '(7/8,1/8,3/8)', - '(1/8,3/8,7/8)' - ] + 'coords_xyz': ['(5/8,5/8,5/8)', '(3/8,7/8,1/8)', '(7/8,1/8,3/8)', '(1/8,3/8,7/8)'], }, 'c': { 'multiplicity': 16, 'site_symmetry': '.-3m', - 'coords_xyz': [ - '(1/8,1/8,1/8)', - '(7/8,3/8,5/8)', - '(3/8,5/8,7/8)', - '(5/8,7/8,3/8)' - ] - }, - 'b': { - 'multiplicity': 8, - 'site_symmetry': '-43m', - 'coords_xyz': [ - '(1/2,1/2,1/2)', - '(1/4,3/4,1/4)' - ] + 'coords_xyz': ['(1/8,1/8,1/8)', '(7/8,3/8,5/8)', '(3/8,5/8,7/8)', '(5/8,7/8,3/8)'], }, - 'a': { - 'multiplicity': 8, - 'site_symmetry': '-43m', - 'coords_xyz': [ - '(0,0,0)', - '(3/4,1/4,3/4)' - ] - } - } + 'b': {'multiplicity': 8, 'site_symmetry': '-43m', 'coords_xyz': ['(1/2,1/2,1/2)', '(1/4,3/4,1/4)']}, + 'a': {'multiplicity': 8, 'site_symmetry': '-43m', 'coords_xyz': ['(0,0,0)', '(3/4,1/4,3/4)']}, + }, }, (227, '2'): { 'IT_number': 227, @@ -49589,8 +24768,8 @@ '(-z+1/4,-y+3/4,x+1/2)', '(-z+3/4,y+1/2,-x+1/4)', '(z+1/2,-y+1/4,-x+3/4)', - '(z,y,x)' - ] + '(z,y,x)', + ], }, 'h': { 'multiplicity': 96, @@ -49619,8 +24798,8 @@ '(-y,y,0)', '(y+3/4,y+1/2,1/4)', '(-y+1/2,-y+1/4,3/4)', - '(y+1/4,-y+3/4,1/2)' - ] + '(y+1/4,-y+3/4,1/2)', + ], }, 'g': { 'multiplicity': 96, @@ -49649,8 +24828,8 @@ '(z+3/4,x+1/4,-x+1/2)', '(z+1/4,-x+1/2,x+3/4)', '(-z+1/2,x+3/4,x+1/4)', - '(-z,-x,-x)' - ] + '(-z,-x,-x)', + ], }, 'f': { 'multiplicity': 48, @@ -49667,8 +24846,8 @@ '(x+3/4,3/8,3/8)', '(-x+1/2,7/8,3/8)', '(7/8,3/8,-x+1/2)', - '(3/8,3/8,x+3/4)' - ] + '(3/8,3/8,x+3/4)', + ], }, 'e': { 'multiplicity': 32, @@ -49681,46 +24860,22 @@ '(x+3/4,x+1/4,-x+1/2)', '(-x,-x,-x)', '(x+1/4,-x+1/2,x+3/4)', - '(-x+1/2,x+3/4,x+1/4)' - ] + '(-x+1/2,x+3/4,x+1/4)', + ], }, 'd': { 'multiplicity': 16, 'site_symmetry': '.-3m', - 'coords_xyz': [ - '(1/2,1/2,1/2)', - '(1/4,3/4,0)', - '(3/4,0,1/4)', - '(0,1/4,3/4)' - ] + 'coords_xyz': ['(1/2,1/2,1/2)', '(1/4,3/4,0)', '(3/4,0,1/4)', '(0,1/4,3/4)'], }, 'c': { 'multiplicity': 16, 'site_symmetry': '.-3m', - 'coords_xyz': [ - '(0,0,0)', - '(3/4,1/4,1/2)', - '(1/4,1/2,3/4)', - '(1/2,3/4,1/4)' - ] - }, - 'b': { - 'multiplicity': 8, - 'site_symmetry': '-43m', - 'coords_xyz': [ - '(3/8,3/8,3/8)', - '(1/8,5/8,1/8)' - ] + 'coords_xyz': ['(0,0,0)', '(3/4,1/4,1/2)', '(1/4,1/2,3/4)', '(1/2,3/4,1/4)'], }, - 'a': { - 'multiplicity': 8, - 'site_symmetry': '-43m', - 'coords_xyz': [ - '(1/8,1/8,1/8)', - '(7/8,3/8,3/8)' - ] - } - } + 'b': {'multiplicity': 8, 'site_symmetry': '-43m', 'coords_xyz': ['(3/8,3/8,3/8)', '(1/8,5/8,1/8)']}, + 'a': {'multiplicity': 8, 'site_symmetry': '-43m', 'coords_xyz': ['(1/8,1/8,1/8)', '(7/8,3/8,3/8)']}, + }, }, (228, '1'): { 'IT_number': 228, @@ -49780,8 +24935,8 @@ '(-z,-y+1/2,x)', '(-z+1/2,y,-x)', '(z,-y,-x+1/2)', - '(z+1/2,y+1/2,x+1/2)' - ] + '(z+1/2,y+1/2,x+1/2)', + ], }, 'g': { 'multiplicity': 96, @@ -49810,8 +24965,8 @@ '(-y+3/4,y+1/2,5/8)', '(y+1/4,y,7/8)', '(-y+1/4,-y,3/8)', - '(y+3/4,-y+1/2,1/8)' - ] + '(y+3/4,-y+1/2,1/8)', + ], }, 'f': { 'multiplicity': 96, @@ -49840,8 +24995,8 @@ '(-x,1/2,0)', '(x,0,1/2)', '(0,1/2,x)', - '(1/2,0,-x)' - ] + '(1/2,0,-x)', + ], }, 'e': { 'multiplicity': 64, @@ -49862,8 +25017,8 @@ '(-x,-x+1/2,x)', '(x+1/2,x+1/2,x+1/2)', '(-x+1/2,x,-x)', - '(x,-x,-x+1/2)' - ] + '(x,-x,-x+1/2)', + ], }, 'd': { 'multiplicity': 48, @@ -49880,8 +25035,8 @@ '(0,1/4,3/4)', '(1/2,3/4,1/4)', '(3/4,1/4,1/2)', - '(1/4,3/4,0)' - ] + '(1/4,3/4,0)', + ], }, 'c': { 'multiplicity': 32, @@ -49894,8 +25049,8 @@ '(1/8,5/8,3/8)', '(7/8,7/8,7/8)', '(5/8,3/8,1/8)', - '(3/8,1/8,5/8)' - ] + '(3/8,1/8,5/8)', + ], }, 'b': { 'multiplicity': 32, @@ -49908,20 +25063,15 @@ '(5/8,5/8,5/8)', '(7/8,3/8,1/8)', '(3/8,1/8,7/8)', - '(1/8,7/8,3/8)' - ] + '(1/8,7/8,3/8)', + ], }, 'a': { 'multiplicity': 16, 'site_symmetry': '23.', - 'coords_xyz': [ - '(0,0,0)', - '(3/4,1/4,3/4)', - '(3/4,3/4,3/4)', - '(0,1/2,0)' - ] - } - } + 'coords_xyz': ['(0,0,0)', '(3/4,1/4,3/4)', '(3/4,3/4,3/4)', '(0,1/2,0)'], + }, + }, }, (229, '1'): { 'IT_number': 229, @@ -49981,8 +25131,8 @@ '(-z,-y,x)', '(-z,y,-x)', '(z,-y,-x)', - '(z,y,x)' - ] + '(z,y,x)', + ], }, 'k': { 'multiplicity': 48, @@ -50011,8 +25161,8 @@ '(z,x,-x)', '(z,-x,x)', '(-z,x,x)', - '(-z,-x,-x)' - ] + '(-z,-x,-x)', + ], }, 'j': { 'multiplicity': 48, @@ -50041,8 +25191,8 @@ '(z,y,0)', '(z,-y,0)', '(-z,y,0)', - '(-z,-y,0)' - ] + '(-z,-y,0)', + ], }, 'i': { 'multiplicity': 48, @@ -50071,8 +25221,8 @@ '(-y,y+1/2,3/4)', '(y,y+1/2,1/4)', '(-y,-y+1/2,1/4)', - '(y,-y+1/2,3/4)' - ] + '(y,-y+1/2,3/4)', + ], }, 'h': { 'multiplicity': 24, @@ -50089,8 +25239,8 @@ '(y,y,0)', '(-y,y,0)', '(y,-y,0)', - '(-y,-y,0)' - ] + '(-y,-y,0)', + ], }, 'g': { 'multiplicity': 24, @@ -50107,8 +25257,8 @@ '(x,1/2,0)', '(-x,1/2,0)', '(1/2,0,-x)', - '(1/2,0,x)' - ] + '(1/2,0,x)', + ], }, 'f': { 'multiplicity': 16, @@ -50121,60 +25271,27 @@ '(x,x,-x)', '(-x,-x,-x)', '(x,-x,x)', - '(-x,x,x)' - ] + '(-x,x,x)', + ], }, 'e': { 'multiplicity': 12, 'site_symmetry': '4m.', - 'coords_xyz': [ - '(x,0,0)', - '(-x,0,0)', - '(0,x,0)', - '(0,-x,0)', - '(0,0,x)', - '(0,0,-x)' - ] + 'coords_xyz': ['(x,0,0)', '(-x,0,0)', '(0,x,0)', '(0,-x,0)', '(0,0,x)', '(0,0,-x)'], }, 'd': { 'multiplicity': 12, 'site_symmetry': '-4m.', - 'coords_xyz': [ - '(1/4,0,1/2)', - '(3/4,0,1/2)', - '(1/2,1/4,0)', - '(1/2,3/4,0)', - '(0,1/2,1/4)', - '(0,1/2,3/4)' - ] + 'coords_xyz': ['(1/4,0,1/2)', '(3/4,0,1/2)', '(1/2,1/4,0)', '(1/2,3/4,0)', '(0,1/2,1/4)', '(0,1/2,3/4)'], }, 'c': { 'multiplicity': 8, 'site_symmetry': '.-3m', - 'coords_xyz': [ - '(1/4,1/4,1/4)', - '(3/4,3/4,1/4)', - '(3/4,1/4,3/4)', - '(1/4,3/4,3/4)' - ] - }, - 'b': { - 'multiplicity': 6, - 'site_symmetry': '4/mm.', - 'coords_xyz': [ - '(0,1/2,1/2)', - '(1/2,0,1/2)', - '(1/2,1/2,0)' - ] + 'coords_xyz': ['(1/4,1/4,1/4)', '(3/4,3/4,1/4)', '(3/4,1/4,3/4)', '(1/4,3/4,3/4)'], }, - 'a': { - 'multiplicity': 2, - 'site_symmetry': 'm-3m', - 'coords_xyz': [ - '(0,0,0)' - ] - } - } + 'b': {'multiplicity': 6, 'site_symmetry': '4/mm.', 'coords_xyz': ['(0,1/2,1/2)', '(1/2,0,1/2)', '(1/2,1/2,0)']}, + 'a': {'multiplicity': 2, 'site_symmetry': 'm-3m', 'coords_xyz': ['(0,0,0)']}, + }, }, (230, '1'): { 'IT_number': 230, @@ -50234,8 +25351,8 @@ '(-z+1/4,-y+3/4,x+3/4)', '(-z+3/4,y+3/4,-x+1/4)', '(z+3/4,-y+1/4,-x+3/4)', - '(z+1/4,y+1/4,x+1/4)' - ] + '(z+1/4,y+1/4,x+1/4)', + ], }, 'g': { 'multiplicity': 48, @@ -50264,8 +25381,8 @@ '(-y,y+3/4,7/8)', '(y,y+1/4,5/8)', '(-y+1/2,-y+3/4,1/8)', - '(y+1/2,-y+1/4,3/8)' - ] + '(y+1/2,-y+1/4,3/8)', + ], }, 'f': { 'multiplicity': 48, @@ -50294,8 +25411,8 @@ '(-x+1/4,1/2,3/4)', '(x+3/4,0,3/4)', '(0,3/4,x+3/4)', - '(1/2,3/4,-x+1/4)' - ] + '(1/2,3/4,-x+1/4)', + ], }, 'e': { 'multiplicity': 32, @@ -50316,8 +25433,8 @@ '(-x+1/4,-x+3/4,x+3/4)', '(x+1/4,x+1/4,x+1/4)', '(-x+3/4,x+3/4,-x+1/4)', - '(x+3/4,-x+1/4,-x+3/4)' - ] + '(x+3/4,-x+1/4,-x+3/4)', + ], }, 'd': { 'multiplicity': 24, @@ -50334,8 +25451,8 @@ '(1/8,1/2,1/4)', '(7/8,0,1/4)', '(0,1/4,7/8)', - '(1/2,1/4,1/8)' - ] + '(1/2,1/4,1/8)', + ], }, 'c': { 'multiplicity': 24, @@ -50352,8 +25469,8 @@ '(3/4,7/8,0)', '(1/4,5/8,0)', '(0,3/4,7/8)', - '(0,1/4,5/8)' - ] + '(0,1/4,5/8)', + ], }, 'b': { 'multiplicity': 16, @@ -50366,8 +25483,8 @@ '(7/8,7/8,7/8)', '(5/8,1/8,3/8)', '(1/8,3/8,5/8)', - '(3/8,5/8,1/8)' - ] + '(3/8,5/8,1/8)', + ], }, 'a': { 'multiplicity': 16, @@ -50380,9 +25497,9 @@ '(3/4,1/4,1/4)', '(3/4,3/4,3/4)', '(1/4,1/4,3/4)', - '(1/4,3/4,1/4)' - ] - } - } - } + '(1/4,3/4,1/4)', + ], + }, + }, + }, } diff --git a/src/easydiffraction/experiments/collections/background.py b/src/easydiffraction/experiments/collections/background.py index 240c9481..1efa7e9a 100644 --- a/src/easydiffraction/experiments/collections/background.py +++ b/src/easydiffraction/experiments/collections/background.py @@ -22,28 +22,26 @@ class Point(Component): @property def category_key(self) -> str: - return "background" + return 'background' @property def cif_category_key(self) -> str: - return "pd_background" + return 'pd_background' - def __init__(self, - x: float, - y: float): + def __init__(self, x: float, y: float): super().__init__() self.x = Descriptor( value=x, name='x', cif_name='line_segment_X', - description="X-coordinates used to create many straight-line segments representing the background in a calculated diffractogram." + description='X-coordinates used to create many straight-line segments representing the background in a calculated diffractogram.', ) self.y = Parameter( value=y, # TODO: rename to intensity name='y', # TODO: rename to intensity cif_name='line_segment_intensity', - description="Intensity used to create many straight-line segments representing the background in a calculated diffractogram" + description='Intensity used to create many straight-line segments representing the background in a calculated diffractogram', ) # Select which of the input parameters is used for the @@ -60,28 +58,26 @@ class PolynomialTerm(Component): # before or after the __init__ method @property def category_key(self) -> str: - return "background" + return 'background' @property def cif_category_key(self): - return "pd_background" + return 'pd_background' - def __init__(self, - order: int, - coef: float) -> None: + def __init__(self, order: int, coef: float) -> None: super().__init__() self.order = Descriptor( value=order, name='chebyshev_order', cif_name='Chebyshev_order', - description="The value of an order used in a Chebyshev polynomial equation representing the background in a calculated diffractogram" + description='The value of an order used in a Chebyshev polynomial equation representing the background in a calculated diffractogram', ) self.coef = Parameter( value=coef, name='chebyshev_coef', cif_name='Chebyshev_coef', - description="The value of a coefficient used in a Chebyshev polynomial equation representing the background in a calculated diffractogram" + description='The value of a coefficient used in a Chebyshev polynomial equation representing the background in a calculated diffractogram', ) # Select which of the input parameters is used for the @@ -96,7 +92,7 @@ def __init__(self, class BackgroundBase(Collection): @property def _type(self) -> str: - return "category" # datablock or category + return 'category' # datablock or category @abstractmethod def calculate(self, x_data: np.ndarray) -> np.ndarray: @@ -123,27 +119,33 @@ def calculate(self, x_data: np.ndarray) -> np.ndarray: background_x = np.array([point.x.value for point in self._items.values()]) background_y = np.array([point.y.value for point in self._items.values()]) interp_func = interp1d( - background_x, background_y, + background_x, + background_y, kind='linear', bounds_error=False, - fill_value=(background_y[0], background_y[-1]) + fill_value=( + background_y[0], + background_y[-1], + ), ) y_data = interp_func(x_data) return y_data def show(self) -> None: - columns_headers: List[str] = ["X", "Intensity"] - columns_alignment = ["left", "left"] + columns_headers: List[str] = ['X', 'Intensity'] + columns_alignment = ['left', 'left'] columns_data: List[List[float]] = [] for point in self._items.values(): x = point.x.value y = point.y.value columns_data.append([x, y]) - print(paragraph("Line-segment background points")) - render_table(columns_headers=columns_headers, - columns_alignment=columns_alignment, - columns_data=columns_data) + print(paragraph('Line-segment background points')) + render_table( + columns_headers=columns_headers, + columns_alignment=columns_alignment, + columns_data=columns_data, + ) class ChebyshevPolynomialBackground(BackgroundBase): @@ -165,34 +167,38 @@ def calculate(self, x_data: np.ndarray) -> np.ndarray: return y_data def show(self) -> None: - columns_headers: List[str] = ["Order", "Coefficient"] - columns_alignment = ["left", "left"] + columns_headers: List[str] = ['Order', 'Coefficient'] + columns_alignment = ['left', 'left'] columns_data: List[List[Union[int, float]]] = [] for term in self._items.values(): order = term.order.value coef = term.coef.value columns_data.append([order, coef]) - print(paragraph("Chebyshev polynomial background terms")) - render_table(columns_headers=columns_headers, - columns_alignment=columns_alignment, - columns_data=columns_data) + print(paragraph('Chebyshev polynomial background terms')) + render_table( + columns_headers=columns_headers, + columns_alignment=columns_alignment, + columns_data=columns_data, + ) class BackgroundFactory: _supported: Dict[str, Type[BackgroundBase]] = { - "line-segment": LineSegmentBackground, - "chebyshev polynomial": ChebyshevPolynomialBackground + 'line-segment': LineSegmentBackground, + 'chebyshev polynomial': ChebyshevPolynomialBackground, } @classmethod - def create(cls, background_type: str = DEFAULT_BACKGROUND_TYPE) -> BackgroundBase: + def create( + cls, + background_type: str = DEFAULT_BACKGROUND_TYPE, + ) -> BackgroundBase: if background_type not in cls._supported: supported_types = list(cls._supported.keys()) raise ValueError( - f"Unsupported background type: '{background_type}'.\n " - f"Supported background types: {supported_types}" + f"Unsupported background type: '{background_type}'.\n Supported background types: {supported_types}" ) background_class = cls._supported[background_type] diff --git a/src/easydiffraction/experiments/collections/datastore.py b/src/easydiffraction/experiments/collections/datastore.py index 0977cfdb..b8f5500f 100644 --- a/src/easydiffraction/experiments/collections/datastore.py +++ b/src/easydiffraction/experiments/collections/datastore.py @@ -38,6 +38,7 @@ class PowderPattern(Pattern): """ Specialized pattern for powder diffraction (can be extended in the future). """ + # TODO: Check if this class is needed or if it can be merged with Pattern def __init__(self, experiment: Experiment) -> None: super().__init__(experiment) @@ -52,9 +53,9 @@ class Datastore: def __init__(self, sample_form: str, experiment: Experiment) -> None: self.sample_form: str = sample_form - if sample_form == "powder": + if sample_form == 'powder': self.pattern: Pattern = PowderPattern(experiment) - elif sample_form == "single_crystal": + elif sample_form == 'single_crystal': self.pattern: Pattern = Pattern(experiment) # TODO: Find better name for single crystal pattern else: raise ValueError(f"Unknown sample form '{sample_form}'") @@ -63,16 +64,16 @@ def load_measured_data(self, file_path: str) -> None: """Load measured data from an ASCII file.""" # TODO: Check if this method is used... # Looks like _load_ascii_data_to_experiment from experiments.py is used instead - print(f"Loading measured data for {self.sample_form} diffraction from {file_path}") + print(f'Loading measured data for {self.sample_form} diffraction from {file_path}') try: data: np.ndarray = np.loadtxt(file_path) except Exception as e: - print(f"Failed to load data: {e}") + print(f'Failed to load data: {e}') return if data.shape[1] < 2: - raise ValueError("Data file must have at least two columns (x and y).") + raise ValueError('Data file must have at least two columns (x and y).') x: np.ndarray = data[:, 0] y: np.ndarray = data[:, 1] @@ -87,15 +88,15 @@ def load_measured_data(self, file_path: str) -> None: def show_measured_data(self) -> None: """Display measured data in console.""" - print(f"\nMeasured data ({self.sample_form}):") - print(f"x: {self.pattern.x}") - print(f"meas: {self.pattern.meas}") - print(f"meas_su: {self.pattern.meas_su}") + print(f'\nMeasured data ({self.sample_form}):') + print(f'x: {self.pattern.x}') + print(f'meas: {self.pattern.meas}') + print(f'meas_su: {self.pattern.meas_su}') def show_calculated_data(self) -> None: """Display calculated data in console.""" - print(f"\nCalculated data ({self.sample_form}):") - print(f"calc: {self.pattern.calc}") + print(f'\nCalculated data ({self.sample_form}):') + print(f'calc: {self.pattern.calc}') class DatastoreFactory: diff --git a/src/easydiffraction/experiments/collections/excluded_regions.py b/src/easydiffraction/experiments/collections/excluded_regions.py index 41fa0791..cb685b3e 100644 --- a/src/easydiffraction/experiments/collections/excluded_regions.py +++ b/src/easydiffraction/experiments/collections/excluded_regions.py @@ -12,26 +12,24 @@ class ExcludedRegion(Component): @property def category_key(self) -> str: - return "excluded_regions" + return 'excluded_regions' @property def cif_category_key(self) -> str: - return "excluded_region" + return 'excluded_region' - def __init__(self, - minimum: float, - maximum: float): + def __init__(self, minimum: float, maximum: float): super().__init__() self.minimum = Descriptor( value=minimum, - name="minimum", - cif_name="minimum" + name='minimum', + cif_name='minimum', ) self.maximum = Parameter( value=maximum, - name="maximum", - cif_name="maximum" + name='maximum', + cif_name='maximum', ) # Select which of the input parameters is used for the @@ -47,9 +45,10 @@ class ExcludedRegions(Collection): """ Collection of ExcludedRegion instances. """ + @property def _type(self) -> str: - return "category" # datablock or category + return 'category' # datablock or category @property def _child_class(self) -> Type[ExcludedRegion]: @@ -63,8 +62,7 @@ def on_item_added(self, item: ExcludedRegion) -> None: pattern = experiment.datastore.pattern # Boolean mask for points within the new excluded region - in_region = ((pattern.full_x >= item.minimum.value) & - (pattern.full_x <= item.maximum.value)) + in_region = (pattern.full_x >= item.minimum.value) & (pattern.full_x <= item.maximum.value) # Update the exclusion mask pattern.excluded[in_region] = True @@ -78,15 +76,17 @@ def show(self) -> None: # TODO: Consider moving this to the base class # to avoid code duplication with implementations in Background, etc. # Consider using parameter names as column headers - columns_headers: List[str] = ["minimum", "maximum"] - columns_alignment = ["left", "left"] + columns_headers: List[str] = ['minimum', 'maximum'] + columns_alignment = ['left', 'left'] columns_data: List[List[float]] = [] for region in self._items.values(): minimum = region.minimum.value maximum = region.maximum.value columns_data.append([minimum, maximum]) - print(paragraph("Excluded regions")) - render_table(columns_headers=columns_headers, - columns_alignment=columns_alignment, - columns_data=columns_data) + print(paragraph('Excluded regions')) + render_table( + columns_headers=columns_headers, + columns_alignment=columns_alignment, + columns_data=columns_data, + ) diff --git a/src/easydiffraction/experiments/collections/linked_phases.py b/src/easydiffraction/experiments/collections/linked_phases.py index b0333789..a9fc843d 100644 --- a/src/easydiffraction/experiments/collections/linked_phases.py +++ b/src/easydiffraction/experiments/collections/linked_phases.py @@ -9,26 +9,24 @@ class LinkedPhase(Component): @property def category_key(self) -> str: - return "linked_phases" + return 'linked_phases' @property def cif_category_key(self) -> str: - return "pd_phase_block" + return 'pd_phase_block' - def __init__(self, - id: str, - scale: float): + def __init__(self, id: str, scale: float): super().__init__() self.id = Descriptor( value=id, - name="id", - cif_name="id" + name='id', + cif_name='id', ) self.scale = Parameter( value=scale, - name="scale", - cif_name="scale" + name='scale', + cif_name='scale', ) # Select which of the input parameters is used for the @@ -44,9 +42,10 @@ class LinkedPhases(Collection): """ Collection of LinkedPhase instances. """ + @property def _type(self) -> str: - return "category" # datablock or category + return 'category' # datablock or category @property def _child_class(self) -> Type[LinkedPhase]: diff --git a/src/easydiffraction/experiments/components/experiment_type.py b/src/easydiffraction/experiments/components/experiment_type.py index 2db47f2d..2b75736e 100644 --- a/src/easydiffraction/experiments/components/experiment_type.py +++ b/src/easydiffraction/experiments/components/experiment_type.py @@ -5,43 +5,45 @@ class ExperimentType(Component): @property def cif_category_key(self) -> str: - return "expt_type" + return 'expt_type' @property def category_key(self) -> str: - return "expt_type" + return 'expt_type' - def __init__(self, - sample_form: str, - beam_mode: str, - radiation_probe: str, - scattering_type: str): + def __init__( + self, + sample_form: str, + beam_mode: str, + radiation_probe: str, + scattering_type: str, + ): super().__init__() self.sample_form: Descriptor = Descriptor( value=sample_form, - name="sample_form", - cif_name="sample_form", - description="Specifies whether the diffraction data corresponds to powder diffraction or single crystal diffraction" + name='sample_form', + cif_name='sample_form', + description='Specifies whether the diffraction data corresponds to powder diffraction or single crystal diffraction', ) self.beam_mode: Descriptor = Descriptor( value=beam_mode, - name="beam_mode", - cif_name="beam_mode", - description="Defines whether the measurement is performed with a constant wavelength (CW) or time-of-flight (TOF) method" + name='beam_mode', + cif_name='beam_mode', + description='Defines whether the measurement is performed with a constant wavelength (CW) or time-of-flight (TOF) method', ) self.radiation_probe: Descriptor = Descriptor( value=radiation_probe, - name="radiation_probe", - cif_name="radiation_probe", - description="Specifies whether the measurement uses neutrons or X-rays" + name='radiation_probe', + cif_name='radiation_probe', + description='Specifies whether the measurement uses neutrons or X-rays', ) self.scattering_type: Descriptor = Descriptor( value=scattering_type, - name="scattering_type", - cif_name="scattering_type", - description="Specifies whether the experiment uses Bragg scattering (for conventional structure refinement) or " - "total scattering (for pair distribution function analysis - PDF)" + name='scattering_type', + cif_name='scattering_type', + description='Specifies whether the experiment uses Bragg scattering (for conventional structure refinement) or ' + 'total scattering (for pair distribution function analysis - PDF)', ) # Lock further attribute additions to prevent diff --git a/src/easydiffraction/experiments/components/instrument.py b/src/easydiffraction/experiments/components/instrument.py index 64c55998..8a20e959 100644 --- a/src/easydiffraction/experiments/components/instrument.py +++ b/src/easydiffraction/experiments/components/instrument.py @@ -7,32 +7,34 @@ class InstrumentBase(Component): @property def category_key(self) -> str: - return "instrument" + return 'instrument' @property def cif_category_key(self) -> str: - return "instr" + return 'instr' class ConstantWavelengthInstrument(InstrumentBase): - def __init__(self, - setup_wavelength: float = 1.5406, - calib_twotheta_offset: float = 0.0) -> None: + def __init__( + self, + setup_wavelength: float = 1.5406, + calib_twotheta_offset: float = 0.0, + ) -> None: super().__init__() self.setup_wavelength: Parameter = Parameter( value=setup_wavelength, - name="wavelength", - cif_name="wavelength", - units="Å", - description="Incident neutron or X-ray wavelength" + name='wavelength', + cif_name='wavelength', + units='Å', + description='Incident neutron or X-ray wavelength', ) self.calib_twotheta_offset: Parameter = Parameter( value=calib_twotheta_offset, - name="twotheta_offset", - cif_name="2theta_offset", - units="deg", - description="Instrument misalignment offset" + name='twotheta_offset', + cif_name='2theta_offset', + units='deg', + description='Instrument misalignment offset', ) # Lock further attribute additions to prevent @@ -41,48 +43,50 @@ def __init__(self, class TimeOfFlightInstrument(InstrumentBase): - def __init__(self, - setup_twotheta_bank: float = 150.0, - calib_d_to_tof_offset: float = 0.0, - calib_d_to_tof_linear: float = 10000.0, - calib_d_to_tof_quad: float = -0.00001, - calib_d_to_tof_recip: float = 0.0) -> None: + def __init__( + self, + setup_twotheta_bank: float = 150.0, + calib_d_to_tof_offset: float = 0.0, + calib_d_to_tof_linear: float = 10000.0, + calib_d_to_tof_quad: float = -0.00001, + calib_d_to_tof_recip: float = 0.0, + ) -> None: super().__init__() self.setup_twotheta_bank: Parameter = Parameter( value=setup_twotheta_bank, - name="twotheta_bank", - cif_name="2theta_bank", - units="deg", - description="Detector bank position" + name='twotheta_bank', + cif_name='2theta_bank', + units='deg', + description='Detector bank position', ) self.calib_d_to_tof_offset: Parameter = Parameter( value=calib_d_to_tof_offset, - name="d_to_tof_offset", - cif_name="d_to_tof_offset", - units="µs", - description="TOF offset" + name='d_to_tof_offset', + cif_name='d_to_tof_offset', + units='µs', + description='TOF offset', ) self.calib_d_to_tof_linear: Parameter = Parameter( value=calib_d_to_tof_linear, - name="d_to_tof_linear", - cif_name="d_to_tof_linear", - units="µs/Å", - description="TOF linear conversion" + name='d_to_tof_linear', + cif_name='d_to_tof_linear', + units='µs/Å', + description='TOF linear conversion', ) self.calib_d_to_tof_quad: Parameter = Parameter( value=calib_d_to_tof_quad, - name="d_to_tof_quad", - cif_name="d_to_tof_quad", - units="µs/Ų", - description="TOF quadratic correction" + name='d_to_tof_quad', + cif_name='d_to_tof_quad', + units='µs/Ų', + description='TOF quadratic correction', ) self.calib_d_to_tof_recip: Parameter = Parameter( value=calib_d_to_tof_recip, - name="d_to_tof_recip", - cif_name="d_to_tof_recip", - units="µs·Å", - description="TOF reciprocal velocity correction" + name='d_to_tof_recip', + cif_name='d_to_tof_recip', + units='µs·Å', + description='TOF reciprocal velocity correction', ) # Lock further attribute additions to prevent @@ -92,29 +96,29 @@ def __init__(self, class InstrumentFactory: _supported = { - "bragg": { - "constant wavelength": ConstantWavelengthInstrument, - "time-of-flight": TimeOfFlightInstrument, + 'bragg': { + 'constant wavelength': ConstantWavelengthInstrument, + 'time-of-flight': TimeOfFlightInstrument, } } @classmethod - def create(cls, - scattering_type=DEFAULT_SCATTERING_TYPE, - beam_mode=DEFAULT_BEAM_MODE): - + def create( + cls, + scattering_type=DEFAULT_SCATTERING_TYPE, + beam_mode=DEFAULT_BEAM_MODE, + ): supported_scattering_types = list(cls._supported.keys()) if scattering_type not in supported_scattering_types: raise ValueError( - f"Unsupported scattering type: '{scattering_type}'.\n " - f"Supported scattering types: {supported_scattering_types}" + f"Unsupported scattering type: '{scattering_type}'.\n Supported scattering types: {supported_scattering_types}" ) supported_beam_modes = list(cls._supported[scattering_type].keys()) if beam_mode not in supported_beam_modes: raise ValueError( f"Unsupported beam mode: '{beam_mode}' for scattering type: '{scattering_type}'.\n " - f"Supported beam modes: {supported_beam_modes}" + f'Supported beam modes: {supported_beam_modes}' ) instrument_class = cls._supported[scattering_type][beam_mode] diff --git a/src/easydiffraction/experiments/components/peak.py b/src/easydiffraction/experiments/components/peak.py index df74dff5..6079763c 100644 --- a/src/easydiffraction/experiments/components/peak.py +++ b/src/easydiffraction/experiments/components/peak.py @@ -1,4 +1,3 @@ - from easydiffraction.core.constants import DEFAULT_BEAM_MODE from easydiffraction.core.constants import DEFAULT_PEAK_PROFILE_TYPE from easydiffraction.core.constants import DEFAULT_SCATTERING_TYPE @@ -11,38 +10,38 @@ class ConstantWavelengthBroadeningMixin: def _add_constant_wavelength_broadening(self) -> None: self.broad_gauss_u: Parameter = Parameter( value=0.01, - name="broad_gauss_u", - cif_name="broad_gauss_u", - units="deg²", - description="Gaussian broadening coefficient (dependent on sample size and instrument resolution)" + name='broad_gauss_u', + cif_name='broad_gauss_u', + units='deg²', + description='Gaussian broadening coefficient (dependent on sample size and instrument resolution)', ) self.broad_gauss_v: Parameter = Parameter( value=-0.01, - name="broad_gauss_v", - cif_name="broad_gauss_v", - units="deg²", - description="Gaussian broadening coefficient (instrumental broadening contribution)" + name='broad_gauss_v', + cif_name='broad_gauss_v', + units='deg²', + description='Gaussian broadening coefficient (instrumental broadening contribution)', ) self.broad_gauss_w: Parameter = Parameter( value=0.02, - name="broad_gauss_w", - cif_name="broad_gauss_w", - units="deg²", - description="Gaussian broadening coefficient (instrumental broadening contribution)" + name='broad_gauss_w', + cif_name='broad_gauss_w', + units='deg²', + description='Gaussian broadening coefficient (instrumental broadening contribution)', ) self.broad_lorentz_x: Parameter = Parameter( value=0.0, - name="broad_lorentz_x", - cif_name="broad_lorentz_x", - units="deg", - description="Lorentzian broadening coefficient (dependent on sample strain effects)" + name='broad_lorentz_x', + cif_name='broad_lorentz_x', + units='deg', + description='Lorentzian broadening coefficient (dependent on sample strain effects)', ) self.broad_lorentz_y: Parameter = Parameter( value=0.0, - name="broad_lorentz_y", - cif_name="broad_lorentz_y", - units="deg", - description="Lorentzian broadening coefficient (dependent on microstructural defects and strain)" + name='broad_lorentz_y', + cif_name='broad_lorentz_y', + units='deg', + description='Lorentzian broadening coefficient (dependent on microstructural defects and strain)', ) @@ -50,59 +49,59 @@ class TimeOfFlightBroadeningMixin: def _add_time_of_flight_broadening(self) -> None: self.broad_gauss_sigma_0: Parameter = Parameter( value=0.0, - name="gauss_sigma_0", - cif_name="gauss_sigma_0", - units="µs²", - description="Gaussian broadening coefficient (instrumental resolution)" + name='gauss_sigma_0', + cif_name='gauss_sigma_0', + units='µs²', + description='Gaussian broadening coefficient (instrumental resolution)', ) self.broad_gauss_sigma_1: Parameter = Parameter( value=0.0, - name="gauss_sigma_1", - cif_name="gauss_sigma_1", - units="µs/Å", - description="Gaussian broadening coefficient (dependent on d-spacing)" + name='gauss_sigma_1', + cif_name='gauss_sigma_1', + units='µs/Å', + description='Gaussian broadening coefficient (dependent on d-spacing)', ) self.broad_gauss_sigma_2: Parameter = Parameter( value=0.0, - name="gauss_sigma_2", - cif_name="gauss_sigma_2", - units="µs²/Ų", - description="Gaussian broadening coefficient (instrument-dependent term)" + name='gauss_sigma_2', + cif_name='gauss_sigma_2', + units='µs²/Ų', + description='Gaussian broadening coefficient (instrument-dependent term)', ) self.broad_lorentz_gamma_0: Parameter = Parameter( value=0.0, - name="lorentz_gamma_0", - cif_name="lorentz_gamma_0", - units="µs", - description="Lorentzian broadening coefficient (dependent on microstrain effects)" + name='lorentz_gamma_0', + cif_name='lorentz_gamma_0', + units='µs', + description='Lorentzian broadening coefficient (dependent on microstrain effects)', ) self.broad_lorentz_gamma_1: Parameter = Parameter( value=0.0, - name="lorentz_gamma_1", - cif_name="lorentz_gamma_1", - units="µs/Å", - description="Lorentzian broadening coefficient (dependent on d-spacing)" + name='lorentz_gamma_1', + cif_name='lorentz_gamma_1', + units='µs/Å', + description='Lorentzian broadening coefficient (dependent on d-spacing)', ) self.broad_lorentz_gamma_2: Parameter = Parameter( value=0.0, - name="lorentz_gamma_2", - cif_name="lorentz_gamma_2", - units="µs²/Ų", - description="Lorentzian broadening coefficient (instrumental-dependent term)" + name='lorentz_gamma_2', + cif_name='lorentz_gamma_2', + units='µs²/Ų', + description='Lorentzian broadening coefficient (instrumental-dependent term)', ) self.broad_mix_beta_0: Parameter = Parameter( value=0.0, - name="mix_beta_0", - cif_name="mix_beta_0", - units="deg", - description="Mixing parameter. Defines the ratio of Gaussian to Lorentzian contributions in TOF profiles" + name='mix_beta_0', + cif_name='mix_beta_0', + units='deg', + description='Mixing parameter. Defines the ratio of Gaussian to Lorentzian contributions in TOF profiles', ) self.broad_mix_beta_1: Parameter = Parameter( value=0.0, - name="mix_beta_1", - cif_name="mix_beta_1", - units="deg", - description="Mixing parameter. Defines the ratio of Gaussian to Lorentzian contributions in TOF profiles" + name='mix_beta_1', + cif_name='mix_beta_1', + units='deg', + description='Mixing parameter. Defines the ratio of Gaussian to Lorentzian contributions in TOF profiles', ) @@ -110,31 +109,31 @@ class EmpiricalAsymmetryMixin: def _add_empirical_asymmetry(self) -> None: self.asym_empir_1: Parameter = Parameter( value=0.1, - name="asym_empir_1", - cif_name="asym_empir_1", - units="", - description="Empirical asymmetry coefficient p1" + name='asym_empir_1', + cif_name='asym_empir_1', + units='', + description='Empirical asymmetry coefficient p1', ) self.asym_empir_2: Parameter = Parameter( value=0.2, - name="asym_empir_2", - cif_name="asym_empir_2", - units="", - description="Empirical asymmetry coefficient p2" + name='asym_empir_2', + cif_name='asym_empir_2', + units='', + description='Empirical asymmetry coefficient p2', ) self.asym_empir_3: Parameter = Parameter( value=0.3, - name="asym_empir_3", - cif_name="asym_empir_3", - units="", - description="Empirical asymmetry coefficient p3" + name='asym_empir_3', + cif_name='asym_empir_3', + units='', + description='Empirical asymmetry coefficient p3', ) self.asym_empir_4: Parameter = Parameter( value=0.4, - name="asym_empir_4", - cif_name="asym_empir_4", - units="", - description="Empirical asymmetry coefficient p4" + name='asym_empir_4', + cif_name='asym_empir_4', + units='', + description='Empirical asymmetry coefficient p4', ) @@ -142,17 +141,17 @@ class FcjAsymmetryMixin: def _add_fcj_asymmetry(self) -> None: self.asym_fcj_1: Parameter = Parameter( value=0.01, - name="asym_fcj_1", - cif_name="asym_fcj_1", - units="", - description="FCJ asymmetry coefficient 1" + name='asym_fcj_1', + cif_name='asym_fcj_1', + units='', + description='FCJ asymmetry coefficient 1', ) self.asym_fcj_2: Parameter = Parameter( value=0.02, - name="asym_fcj_2", - cif_name="asym_fcj_2", - units="", - description="FCJ asymmetry coefficient 2" + name='asym_fcj_2', + cif_name='asym_fcj_2', + units='', + description='FCJ asymmetry coefficient 2', ) @@ -160,17 +159,17 @@ class IkedaCarpenterAsymmetryMixin: def _add_ikeda_carpenter_asymmetry(self) -> None: self.asym_alpha_0: Parameter = Parameter( value=0.01, - name="asym_alpha_0", - cif_name="asym_alpha_0", - units="", - description="Ikeda-Carpenter asymmetry parameter α₀" + name='asym_alpha_0', + cif_name='asym_alpha_0', + units='', + description='Ikeda-Carpenter asymmetry parameter α₀', ) self.asym_alpha_1: Parameter = Parameter( value=0.02, - name="asym_alpha_1", - cif_name="asym_alpha_1", - units="", - description="Ikeda-Carpenter asymmetry parameter α₁" + name='asym_alpha_1', + cif_name='asym_alpha_1', + units='', + description='Ikeda-Carpenter asymmetry parameter α₁', ) @@ -178,45 +177,45 @@ class PairDistributionFunctionBroadeningMixin: def _add_pair_distribution_function_broadening(self): self.damp_q = Parameter( value=0.05, - name="damp_q", - cif_name="damp_q", - units="Å⁻¹", - description="Instrumental Q-resolution damping factor (affects high-r PDF peak amplitude)" + name='damp_q', + cif_name='damp_q', + units='Å⁻¹', + description='Instrumental Q-resolution damping factor (affects high-r PDF peak amplitude)', ) self.broad_q = Parameter( value=0.0, - name="broad_q", - cif_name="broad_q", - units="Å⁻²", - description="Quadratic PDF peak broadening coefficient (thermal and model uncertainty contribution)" + name='broad_q', + cif_name='broad_q', + units='Å⁻²', + description='Quadratic PDF peak broadening coefficient (thermal and model uncertainty contribution)', ) self.cutoff_q = Parameter( value=25.0, - name="cutoff_q", - cif_name="cutoff_q", - units="Å⁻¹", - description="Q-value cutoff applied to model PDF for Fourier transform (controls real-space resolution)" + name='cutoff_q', + cif_name='cutoff_q', + units='Å⁻¹', + description='Q-value cutoff applied to model PDF for Fourier transform (controls real-space resolution)', ) self.sharp_delta_1 = Parameter( value=0.0, - name="sharp_delta_1", - cif_name="sharp_delta_1", - units="Å", - description="PDF peak sharpening coefficient (1/r dependence)" + name='sharp_delta_1', + cif_name='sharp_delta_1', + units='Å', + description='PDF peak sharpening coefficient (1/r dependence)', ) self.sharp_delta_2 = Parameter( value=0.0, - name="sharp_delta_2", - cif_name="sharp_delta_2", - units="Ų", - description="PDF peak sharpening coefficient (1/r² dependence)" + name='sharp_delta_2', + cif_name='sharp_delta_2', + units='Ų', + description='PDF peak sharpening coefficient (1/r² dependence)', ) self.damp_particle_diameter = Parameter( value=0.0, - name="damp_particle_diameter", - cif_name="damp_particle_diameter", - units="Å", - description="Particle diameter for spherical envelope damping correction in PDF" + name='damp_particle_diameter', + cif_name='damp_particle_diameter', + units='Å', + description='Particle diameter for spherical envelope damping correction in PDF', ) @@ -224,16 +223,19 @@ def _add_pair_distribution_function_broadening(self): class PeakBase(Component): @property def category_key(self) -> str: - return "peak" + return 'peak' @property def cif_category_key(self) -> str: - return "peak" + return 'peak' # --- Derived peak classes --- -class ConstantWavelengthPseudoVoigt(PeakBase, ConstantWavelengthBroadeningMixin): - _description: str = "Pseudo-Voigt profile" +class ConstantWavelengthPseudoVoigt( + PeakBase, + ConstantWavelengthBroadeningMixin, +): + _description: str = 'Pseudo-Voigt profile' def __init__(self) -> None: super().__init__() @@ -245,8 +247,12 @@ def __init__(self) -> None: self._locked: bool = True -class ConstantWavelengthSplitPseudoVoigt(PeakBase, ConstantWavelengthBroadeningMixin, EmpiricalAsymmetryMixin): - _description: str = "Split pseudo-Voigt profile" +class ConstantWavelengthSplitPseudoVoigt( + PeakBase, + ConstantWavelengthBroadeningMixin, + EmpiricalAsymmetryMixin, +): + _description: str = 'Split pseudo-Voigt profile' def __init__(self) -> None: super().__init__() @@ -259,8 +265,12 @@ def __init__(self) -> None: self._locked: bool = True -class ConstantWavelengthThompsonCoxHastings(PeakBase, ConstantWavelengthBroadeningMixin, FcjAsymmetryMixin): - _description: str = "Thompson-Cox-Hastings profile" +class ConstantWavelengthThompsonCoxHastings( + PeakBase, + ConstantWavelengthBroadeningMixin, + FcjAsymmetryMixin, +): + _description: str = 'Thompson-Cox-Hastings profile' def __init__(self) -> None: super().__init__() @@ -273,8 +283,11 @@ def __init__(self) -> None: self._locked: bool = True -class TimeOfFlightPseudoVoigt(PeakBase, TimeOfFlightBroadeningMixin): - _description: str = "Pseudo-Voigt profile" +class TimeOfFlightPseudoVoigt( + PeakBase, + TimeOfFlightBroadeningMixin, +): + _description: str = 'Pseudo-Voigt profile' def __init__(self) -> None: super().__init__() @@ -286,8 +299,12 @@ def __init__(self) -> None: self._locked: bool = True -class TimeOfFlightPseudoVoigtIkedaCarpenter(PeakBase, TimeOfFlightBroadeningMixin, IkedaCarpenterAsymmetryMixin): - _description: str = "Pseudo-Voigt * Ikeda-Carpenter profile" +class TimeOfFlightPseudoVoigtIkedaCarpenter( + PeakBase, + TimeOfFlightBroadeningMixin, + IkedaCarpenterAsymmetryMixin, +): + _description: str = 'Pseudo-Voigt * Ikeda-Carpenter profile' def __init__(self) -> None: super().__init__() @@ -300,8 +317,12 @@ def __init__(self) -> None: self._locked: bool = True -class TimeOfFlightPseudoVoigtBackToBackExponential(PeakBase, TimeOfFlightBroadeningMixin, IkedaCarpenterAsymmetryMixin): - _description: str = "Pseudo-Voigt * Back-to-Back Exponential profile" +class TimeOfFlightPseudoVoigtBackToBackExponential( + PeakBase, + TimeOfFlightBroadeningMixin, + IkedaCarpenterAsymmetryMixin, +): + _description: str = 'Pseudo-Voigt * Back-to-Back Exponential profile' def __init__(self) -> None: super().__init__() @@ -313,9 +334,13 @@ def __init__(self) -> None: # accidental modifications by users self._locked: bool = True -class PairDistributionFunctionGaussianDampedSinc(PeakBase, - PairDistributionFunctionBroadeningMixin): - _description = "Gaussian-damped sinc PDF profile" + +class PairDistributionFunctionGaussianDampedSinc( + PeakBase, + PairDistributionFunctionBroadeningMixin, +): + _description = 'Gaussian-damped sinc PDF profile' + def __init__(self): super().__init__() self._add_pair_distribution_function_broadening() @@ -325,53 +350,53 @@ def __init__(self): # --- Peak factory --- class PeakFactory: _supported = { - "bragg": { - "constant wavelength": { - "pseudo-voigt": ConstantWavelengthPseudoVoigt, - "split pseudo-voigt": ConstantWavelengthSplitPseudoVoigt, - "thompson-cox-hastings": ConstantWavelengthThompsonCoxHastings + 'bragg': { + 'constant wavelength': { + 'pseudo-voigt': ConstantWavelengthPseudoVoigt, + 'split pseudo-voigt': ConstantWavelengthSplitPseudoVoigt, + 'thompson-cox-hastings': ConstantWavelengthThompsonCoxHastings, + }, + 'time-of-flight': { + 'pseudo-voigt': TimeOfFlightPseudoVoigt, + 'pseudo-voigt * ikeda-carpenter': TimeOfFlightPseudoVoigtIkedaCarpenter, + 'pseudo-voigt * back-to-back': TimeOfFlightPseudoVoigtBackToBackExponential, }, - "time-of-flight": { - "pseudo-voigt": TimeOfFlightPseudoVoigt, - "pseudo-voigt * ikeda-carpenter": TimeOfFlightPseudoVoigtIkedaCarpenter, - "pseudo-voigt * back-to-back": TimeOfFlightPseudoVoigtBackToBackExponential - } }, - "total": { - "constant wavelength": { - "gaussian-damped-sinc": PairDistributionFunctionGaussianDampedSinc + 'total': { + 'constant wavelength': { + 'gaussian-damped-sinc': PairDistributionFunctionGaussianDampedSinc, }, - "time-of-flight": { - "gaussian-damped-sinc": PairDistributionFunctionGaussianDampedSinc - } - } + 'time-of-flight': { + 'gaussian-damped-sinc': PairDistributionFunctionGaussianDampedSinc, + }, + }, } @classmethod - def create(cls, - scattering_type=DEFAULT_SCATTERING_TYPE, - beam_mode=DEFAULT_BEAM_MODE, - profile_type=DEFAULT_PEAK_PROFILE_TYPE[DEFAULT_SCATTERING_TYPE][DEFAULT_BEAM_MODE]): - + def create( + cls, + scattering_type=DEFAULT_SCATTERING_TYPE, + beam_mode=DEFAULT_BEAM_MODE, + profile_type=DEFAULT_PEAK_PROFILE_TYPE[DEFAULT_SCATTERING_TYPE][DEFAULT_BEAM_MODE], + ): supported_scattering_types = list(cls._supported.keys()) if scattering_type not in supported_scattering_types: raise ValueError( - f"Unsupported scattering type: '{scattering_type}'.\n " - f"Supported scattering types: {supported_scattering_types}" + f"Unsupported scattering type: '{scattering_type}'.\n Supported scattering types: {supported_scattering_types}" ) supported_beam_modes = list(cls._supported[scattering_type].keys()) if beam_mode not in supported_beam_modes: raise ValueError( f"Unsupported beam mode: '{beam_mode}' for scattering type: '{scattering_type}'.\n " - f"Supported beam modes: {supported_beam_modes}" + f'Supported beam modes: {supported_beam_modes}' ) supported_profile_types = list(cls._supported[scattering_type][beam_mode].keys()) if profile_type not in supported_profile_types: raise ValueError( f"Unsupported profile type '{profile_type}' for beam mode '{beam_mode}'.\n" - f"Supported profile types: {supported_profile_types}" + f'Supported profile types: {supported_profile_types}' ) peak_class = cls._supported[scattering_type][beam_mode][profile_type] diff --git a/src/easydiffraction/experiments/experiment.py b/src/easydiffraction/experiments/experiment.py index 2e8f6d44..16fc366f 100644 --- a/src/easydiffraction/experiments/experiment.py +++ b/src/easydiffraction/experiments/experiment.py @@ -28,11 +28,11 @@ class InstrumentMixin: def __init__(self, *args, **kwargs): - expt_type = kwargs.get("type") + expt_type = kwargs.get('type') super().__init__(*args, **kwargs) self._instrument = InstrumentFactory.create( scattering_type=expt_type.scattering_type.value, - beam_mode=expt_type.beam_mode.value + beam_mode=expt_type.beam_mode.value, ) @property @@ -54,14 +54,13 @@ class BaseExperiment(Datablock): # TODO: Find better name for the attribute 'type'. # 1. It shadows the built-in type() function. # 2. It is not very clear what it refers to. - def __init__(self, - name: str, - type: ExperimentType): + def __init__(self, name: str, type: ExperimentType): self.name = name self.type = type self.datastore = DatastoreFactory.create( sample_form=self.type.sample_form.value, - experiment=self) + experiment=self, + ) # --------------------------- # Name (ID) of the experiment @@ -93,68 +92,71 @@ def type(self, new_experiment_type: ExperimentType): # Misc. Need to be sorted # ---------------- - def as_cif(self, max_points: Optional[int] = None) -> str: + def as_cif( + self, + max_points: Optional[int] = None, + ) -> str: """ Export the sample model to CIF format. Returns: str: CIF string representation of the experiment. """ # Data block header - cif_lines: List[str] = [f"data_{self.name}"] + cif_lines: List[str] = [f'data_{self.name}'] # Experiment type - cif_lines += ["", self.type.as_cif()] + cif_lines += ['', self.type.as_cif()] # Instrument setup and calibration - if hasattr(self, "instrument"): - cif_lines += ["", self.instrument.as_cif()] + if hasattr(self, 'instrument'): + cif_lines += ['', self.instrument.as_cif()] # Peak profile, broadening and asymmetry - if hasattr(self, "peak"): - cif_lines += ["", self.peak.as_cif()] + if hasattr(self, 'peak'): + cif_lines += ['', self.peak.as_cif()] # Phase scale factors for powder experiments - if hasattr(self, "linked_phases") and self.linked_phases._items: - cif_lines += ["", self.linked_phases.as_cif()] + if hasattr(self, 'linked_phases') and self.linked_phases._items: + cif_lines += ['', self.linked_phases.as_cif()] # Crystal scale factor for single crystal experiments - if hasattr(self, "linked_crystal"): - cif_lines += ["", self.linked_crystal.as_cif()] + if hasattr(self, 'linked_crystal'): + cif_lines += ['', self.linked_crystal.as_cif()] # Background points - if hasattr(self, "background") and self.background._items: - cif_lines += ["", self.background.as_cif()] + if hasattr(self, 'background') and self.background._items: + cif_lines += ['', self.background.as_cif()] # Excluded regions - if hasattr(self, "excluded_regions") and self.excluded_regions._items: - cif_lines += ["", self.excluded_regions.as_cif()] + if hasattr(self, 'excluded_regions') and self.excluded_regions._items: + cif_lines += ['', self.excluded_regions.as_cif()] # Measured data - if hasattr(self, "datastore") and hasattr(self.datastore, "pattern"): - cif_lines.append("") - cif_lines.append("loop_") + if hasattr(self, 'datastore') and hasattr(self.datastore, 'pattern'): + cif_lines.append('') + cif_lines.append('loop_') category = '_pd_meas' # TODO: Add category to pattern component attributes = ('2theta_scan', 'intensity_total', 'intensity_total_su') for attribute in attributes: - cif_lines.append(f"{category}.{attribute}") + cif_lines.append(f'{category}.{attribute}') pattern = self.datastore.pattern if max_points is not None and len(pattern.x) > 2 * max_points: for i in range(max_points): x = pattern.x[i] meas = pattern.meas[i] meas_su = pattern.meas_su[i] - cif_lines.append(f"{x} {meas} {meas_su}") - cif_lines.append("...") + cif_lines.append(f'{x} {meas} {meas_su}') + cif_lines.append('...') for i in range(-max_points, 0): x = pattern.x[i] meas = pattern.meas[i] meas_su = pattern.meas_su[i] - cif_lines.append(f"{x} {meas} {meas_su}") + cif_lines.append(f'{x} {meas} {meas_su}') else: for x, meas, meas_su in zip(pattern.x, pattern.meas, pattern.meas_su): - cif_lines.append(f"{x} {meas} {meas_su}") + cif_lines.append(f'{x} {meas} {meas_su}') - return "\n".join(cif_lines) + return '\n'.join(cif_lines) def show_as_cif(self) -> None: cif_text: str = self.as_cif(max_points=5) @@ -171,17 +173,19 @@ class BasePowderExperiment(BaseExperiment): Base class for all powder experiments. """ - def __init__(self, - name: str, - type: ExperimentType) -> None: - super().__init__(name=name, - type=type) + def __init__( + self, + name: str, + type: ExperimentType, + ) -> None: + super().__init__(name=name, type=type) self._peak_profile_type: str = DEFAULT_PEAK_PROFILE_TYPE[self.type.scattering_type.value][self.type.beam_mode.value] self.peak = PeakFactory.create( scattering_type=self.type.scattering_type.value, beam_mode=self.type.beam_mode.value, - profile_type=self._peak_profile_type) + profile_type=self._peak_profile_type, + ) self.linked_phases: LinkedPhases = LinkedPhases() self.excluded_regions: ExcludedRegions = ExcludedRegions(parent=self) @@ -203,47 +207,46 @@ def peak_profile_type(self, new_type: str): print("For more information, use 'show_supported_peak_profile_types()'") return self.peak = PeakFactory.create( - scattering_type=self.type.scattering_type.value, - beam_mode=self.type.beam_mode.value, - profile_type=new_type) + scattering_type=self.type.scattering_type.value, beam_mode=self.type.beam_mode.value, profile_type=new_type + ) self._peak_profile_type = new_type print(paragraph(f"Peak profile type for experiment '{self.name}' changed to")) print(new_type) def show_supported_peak_profile_types(self): - columns_headers = ["Peak profile type", "Description"] - columns_alignment = ["left", "left"] + columns_headers = ['Peak profile type', 'Description'] + columns_alignment = ['left', 'left'] columns_data = [] for name, config in PeakFactory._supported[self.type.scattering_type.value][self.type.beam_mode.value].items(): description = getattr(config, '_description', 'No description provided.') columns_data.append([name, description]) - print(paragraph("Supported peak profile types")) - render_table(columns_headers=columns_headers, - columns_alignment=columns_alignment, - columns_data=columns_data) + print(paragraph('Supported peak profile types')) + render_table(columns_headers=columns_headers, columns_alignment=columns_alignment, columns_data=columns_data) def show_current_peak_profile_type(self): - print(paragraph("Current peak profile type")) + print(paragraph('Current peak profile type')) print(self.peak_profile_type) -class PowderExperiment(InstrumentMixin, - BasePowderExperiment): +class PowderExperiment( + InstrumentMixin, + BasePowderExperiment, +): """ Powder experiment class with specific attributes. Wraps background, peak profile, and linked phases. """ - def __init__(self, - name: str, - type: ExperimentType) -> None: - super().__init__(name=name, - type=type) + def __init__( + self, + name: str, + type: ExperimentType, + ) -> None: + super().__init__(name=name, type=type) self._background_type: str = DEFAULT_BACKGROUND_TYPE - self.background = BackgroundFactory.create( - background_type=self.background_type) + self.background = BackgroundFactory.create(background_type=self.background_type) # ------------- # Measured data @@ -259,13 +262,13 @@ def _load_ascii_data_to_experiment(self, data_path: str) -> None: try: data = np.loadtxt(data_path) except Exception as e: - raise IOError(f"Failed to read data from {data_path}: {e}") + raise IOError(f'Failed to read data from {data_path}: {e}') if data.shape[1] < 2: - raise ValueError("Data file must have at least two columns: x and y.") + raise ValueError('Data file must have at least two columns: x and y.') if data.shape[1] < 3: - print("Warning: No uncertainty (sy) column provided. Defaulting to sqrt(y).") + print('Warning: No uncertainty (sy) column provided. Defaulting to sqrt(y).') # Extract x, y data x: np.ndarray = data[:, 0] @@ -299,11 +302,9 @@ def _load_ascii_data_to_experiment(self, data_path: str) -> None: # Excluded mask # No excluded points by default - self.datastore.pattern.excluded = np.full(x.shape, - fill_value=False, - dtype=bool) + self.datastore.pattern.excluded = np.full(x.shape, fill_value=False, dtype=bool) - print(paragraph("Data loaded successfully")) + print(paragraph('Data loaded successfully')) print(f"Experiment 🔬 '{self.name}'. Number of data points: {len(x)}") @property @@ -324,33 +325,33 @@ def background_type(self, new_type): print(new_type) def show_supported_background_types(self): - columns_headers = ["Background type", "Description"] - columns_alignment = ["left", "left"] + columns_headers = ['Background type', 'Description'] + columns_alignment = ['left', 'left'] columns_data = [] for name, config in BackgroundFactory._supported.items(): description = getattr(config, '_description', 'No description provided.') columns_data.append([name, description]) - print(paragraph("Supported background types")) - render_table(columns_headers=columns_headers, - columns_alignment=columns_alignment, - columns_data=columns_data) + print(paragraph('Supported background types')) + render_table(columns_headers=columns_headers, columns_alignment=columns_alignment, columns_data=columns_data) def show_current_background_type(self): - print(paragraph("Current background type")) + print(paragraph('Current background type')) print(self.background_type) + # TODO: Refactor this class to reuse PowderExperiment # TODO: This is not a specific experiment, but rather processed data from # PowderExperiment. So, we should think of a better design. class PairDistributionFunctionExperiment(BasePowderExperiment): """PDF experiment class with specific attributes.""" - def __init__(self, - name: str, - type: ExperimentType): - super().__init__(name=name, - type=type) + def __init__( + self, + name: str, + type: ExperimentType, + ): + super().__init__(name=name, type=type) def _load_ascii_data_to_experiment(self, data_path): """ @@ -362,18 +363,18 @@ def _load_ascii_data_to_experiment(self, data_path): try: from diffpy.utils.parsers.loaddata import loadData except ImportError: - raise ImportError("diffpy module not found.") + raise ImportError('diffpy module not found.') try: data = loadData(data_path) except Exception as e: - raise IOError(f"Failed to read data from {data_path}: {e}") + raise IOError(f'Failed to read data from {data_path}: {e}') if data.shape[1] < 2: - raise ValueError("Data file must have at least two columns: x and y.") + raise ValueError('Data file must have at least two columns: x and y.') default_sy = 0.03 if data.shape[1] < 3: - print(f"Warning: No uncertainty (sy) column provided. Defaulting to {default_sy}.") + print(f'Warning: No uncertainty (sy) column provided. Defaulting to {default_sy}.') # Extract x, y, and sy data x = data[:, 0] @@ -384,7 +385,7 @@ def _load_ascii_data_to_experiment(self, data_path): # and includes both positive and negative values. For now, set the # e.s.d. to a fixed value of 0.03 if it’s not included in the measured # data file. We should improve this later. - #sy = data[:, 3] if data.shape[1] > 2 else np.sqrt(y) + # sy = data[:, 3] if data.shape[1] > 2 else np.sqrt(y) sy = data[:, 2] if data.shape[1] > 2 else np.full_like(y, fill_value=default_sy) # Attach the data to the experiment's datastore @@ -392,18 +393,19 @@ def _load_ascii_data_to_experiment(self, data_path): self.datastore.pattern.meas = y self.datastore.pattern.meas_su = sy - print(paragraph("Data loaded successfully")) + print(paragraph('Data loaded successfully')) print(f"Experiment 🔬 '{self.name}'. Number of data points: {len(x)}") class SingleCrystalExperiment(BaseExperiment): """Single crystal experiment class with specific attributes.""" - def __init__(self, - name: str, - type: ExperimentType) -> None: - super().__init__(name=name, - type=type) + def __init__( + self, + name: str, + type: ExperimentType, + ) -> None: + super().__init__(name=name, type=type) self.linked_crystal = None def show_meas_chart(self) -> None: @@ -414,32 +416,37 @@ class ExperimentFactory: """Creates Experiment instances with only relevant attributes.""" _supported = { - "bragg": { - "powder": PowderExperiment, - "single crystal": SingleCrystalExperiment, + 'bragg': { + 'powder': PowderExperiment, + 'single crystal': SingleCrystalExperiment, + }, + 'total': { + 'powder': PairDistributionFunctionExperiment, }, - "total": { - "powder": PairDistributionFunctionExperiment, - } } @classmethod - def create(cls, - name: str, - sample_form: DEFAULT_SAMPLE_FORM, - beam_mode: DEFAULT_BEAM_MODE, - radiation_probe: DEFAULT_RADIATION_PROBE, - scattering_type: DEFAULT_SCATTERING_TYPE, - ) -> BaseExperiment: - + def create( + cls, + name: str, + sample_form: DEFAULT_SAMPLE_FORM, + beam_mode: DEFAULT_BEAM_MODE, + radiation_probe: DEFAULT_RADIATION_PROBE, + scattering_type: DEFAULT_SCATTERING_TYPE, + ) -> BaseExperiment: # TODO: Add checks for expt_type and expt_class - expt_type = ExperimentType(sample_form=sample_form, - beam_mode=beam_mode, - radiation_probe=radiation_probe, - scattering_type=scattering_type) + expt_type = ExperimentType( + sample_form=sample_form, + beam_mode=beam_mode, + radiation_probe=radiation_probe, + scattering_type=scattering_type, + ) expt_class = cls._supported[scattering_type][sample_form] - expt_obj = expt_class(name=name, type=expt_type) + expt_obj = expt_class( + name=name, + type=expt_type, + ) return expt_obj @@ -448,18 +455,20 @@ def create(cls, # TODO: Refactor based on the implementation of method add() in class Experiments # TODO: Think of where to keep default values for sample_form, beam_mode, radiation_probe, as they are also defined in the # class ExperimentType -def Experiment(name: str, - sample_form: str = DEFAULT_SAMPLE_FORM, - beam_mode: str = DEFAULT_BEAM_MODE, - radiation_probe: str = DEFAULT_RADIATION_PROBE, - scattering_type: str = DEFAULT_SCATTERING_TYPE, - data_path: str = None): +def Experiment( + name: str, + sample_form: str = DEFAULT_SAMPLE_FORM, + beam_mode: str = DEFAULT_BEAM_MODE, + radiation_probe: str = DEFAULT_RADIATION_PROBE, + scattering_type: str = DEFAULT_SCATTERING_TYPE, + data_path: str = None, +): experiment = ExperimentFactory.create( name=name, sample_form=sample_form, beam_mode=beam_mode, radiation_probe=radiation_probe, - scattering_type=scattering_type + scattering_type=scattering_type, ) if data_path: experiment._load_ascii_data_to_experiment(data_path) diff --git a/src/easydiffraction/experiments/experiments.py b/src/easydiffraction/experiments/experiments.py index 1e949454..4a7686fb 100644 --- a/src/easydiffraction/experiments/experiments.py +++ b/src/easydiffraction/experiments/experiments.py @@ -32,61 +32,71 @@ def add( scattering_type=None, cif_path=None, cif_str=None, - data_path=None + data_path=None, ): """ Add a new experiment to the collection. """ if scattering_type is None: - scattering_type = "bragg" + scattering_type = 'bragg' if experiment: self._add_prebuilt_experiment(experiment) elif cif_path: self._add_from_cif_path(cif_path) elif cif_str: self._add_from_cif_string(cif_str) - elif all([name, sample_form, beam_mode, radiation_probe, data_path]): + elif all( + [ + name, + sample_form, + beam_mode, + radiation_probe, + data_path, + ] + ): self._add_from_data_path( name=name, sample_form=sample_form, beam_mode=beam_mode, radiation_probe=radiation_probe, scattering_type=scattering_type, - data_path=data_path + data_path=data_path, ) else: - raise ValueError("Provide either experiment, type parameters, cif_path, cif_str, or data_path") + raise ValueError('Provide either experiment, type parameters, cif_path, cif_str, or data_path') @enforce_type def _add_prebuilt_experiment(self, experiment: BaseExperiment): self._experiments[experiment.name] = experiment def _add_from_cif_path(self, cif_path: str) -> None: - print("Loading Experiment from CIF path...") - raise NotImplementedError("CIF loading not implemented.") + print('Loading Experiment from CIF path...') + raise NotImplementedError('CIF loading not implemented.') def _add_from_cif_string(self, cif_str: str) -> None: - print("Loading Experiment from CIF string...") - raise NotImplementedError("CIF loading not implemented.") + print('Loading Experiment from CIF string...') + raise NotImplementedError('CIF loading not implemented.') - def _add_from_data_path(self, - name, - sample_form, - beam_mode, - radiation_probe, - scattering_type, - data_path): + def _add_from_data_path( + self, + name, + sample_form, + beam_mode, + radiation_probe, + scattering_type, + data_path, + ): """ Load an experiment from raw data ASCII file. """ - print(paragraph("Loading measured data from ASCII file")) + print(paragraph('Loading measured data from ASCII file')) print(os.path.abspath(data_path)) experiment = ExperimentFactory.create( name=name, sample_form=sample_form, beam_mode=beam_mode, radiation_probe=radiation_probe, - scattering_type=scattering_type + scattering_type=scattering_type, ) experiment._load_ascii_data_to_experiment(data_path) self._experiments[experiment.name] = experiment @@ -96,7 +106,7 @@ def remove(self, experiment_id: str) -> None: del self._experiments[experiment_id] def show_names(self) -> None: - print(paragraph("Defined experiments" + " 🔬")) + print(paragraph('Defined experiments' + ' 🔬')) print(self.ids) @property @@ -108,4 +118,4 @@ def show_params(self) -> None: print(exp) def as_cif(self) -> str: - return "\n\n".join([exp.as_cif() for exp in self._experiments.values()]) + return '\n\n'.join([exp.as_cif() for exp in self._experiments.values()]) diff --git a/src/easydiffraction/plotting/plotters/plotter_ascii.py b/src/easydiffraction/plotting/plotters/plotter_ascii.py index 05b85aac..cab76acc 100644 --- a/src/easydiffraction/plotting/plotters/plotter_ascii.py +++ b/src/easydiffraction/plotting/plotters/plotter_ascii.py @@ -9,30 +9,30 @@ DEFAULT_COLORS = { 'meas': asciichartpy.blue, 'calc': asciichartpy.red, - 'resid': asciichartpy.green + 'resid': asciichartpy.green, } class AsciiPlotter(PlotterBase): - def _get_legend_item(self, label): color_start = DEFAULT_COLORS[label] color_end = asciichartpy.reset - line = "────" + line = '────' name = SERIES_CONFIG[label]['name'] - item = f"{color_start}{line}{color_end} {name}" + item = f'{color_start}{line}{color_end} {name}' return item - def plot(self, - x, - y_series, - labels, - axes_labels, - title, - height=None): - + def plot( + self, + x, + y_series, + labels, + axes_labels, + title, + height=None, + ): title = paragraph(title) - legend = "\n".join([self._get_legend_item(label) for label in labels]) + legend = '\n'.join([self._get_legend_item(label) for label in labels]) if height is None: height = DEFAULT_HEIGHT @@ -42,7 +42,7 @@ def plot(self, chart = asciichartpy.plot(y_series, config) - print(f"{title}") - print(f"Displaying data for selected x-range from {x[0]} to {x[-1]} ({len(x)} points)") - print(f"Legend:\n{legend}") + print(f'{title}') + print(f'Displaying data for selected x-range from {x[0]} to {x[-1]} ({len(x)} points)') + print(f'Legend:\n{legend}') print(chart) diff --git a/src/easydiffraction/plotting/plotters/plotter_base.py b/src/easydiffraction/plotting/plotters/plotter_base.py index 032e703d..12c7298f 100644 --- a/src/easydiffraction/plotting/plotters/plotter_base.py +++ b/src/easydiffraction/plotting/plotters/plotter_base.py @@ -14,27 +14,28 @@ SERIES_CONFIG = dict( calc=dict( mode='lines', - name='Total calculated (Icalc)' + name='Total calculated (Icalc)', ), meas=dict( mode='lines+markers', - name='Measured (Imeas)' + name='Measured (Imeas)', ), resid=dict( mode='lines', - name='Residual (Imeas - Icalc)' - ) + name='Residual (Imeas - Icalc)', + ), ) class PlotterBase(ABC): - @abstractmethod - def plot(self, - x, - y_series, - labels, - axes_labels, - title, - height): + def plot( + self, + x, + y_series, + labels, + axes_labels, + title, + height, + ): pass diff --git a/src/easydiffraction/plotting/plotters/plotter_plotly.py b/src/easydiffraction/plotting/plotters/plotter_plotly.py index 23f96425..4f87acb2 100644 --- a/src/easydiffraction/plotting/plotters/plotter_plotly.py +++ b/src/easydiffraction/plotting/plotters/plotter_plotly.py @@ -18,7 +18,7 @@ DEFAULT_COLORS = { 'meas': 'rgb(31, 119, 180)', 'calc': 'rgb(214, 39, 40)', - 'resid': 'rgb(44, 160, 44)' + 'resid': 'rgb(44, 160, 44)', } @@ -41,14 +41,15 @@ def _get_trace(self, x, y, label): return trace - def plot(self, - x, - y_series, - labels, - axes_labels, - title, - height=None): - + def plot( + self, + x, + y_series, + labels, + axes_labels, + title, + height=None, + ): data = [] for idx, y in enumerate(y_series): label = labels[idx] @@ -60,22 +61,22 @@ def plot(self, autoexpand=True, r=30, t=40, - b=45 + b=45, ), title=dict( - text=title, + text=title, ), legend=dict( xanchor='right', x=1.0, yanchor='top', - y=1.0 + y=1.0, ), xaxis=dict( title_text=axes_labels[0], showline=True, mirror=True, - zeroline=False + zeroline=False, ), yaxis=dict( title_text=axes_labels[1], @@ -85,13 +86,15 @@ def plot(self, ), ) - config=dict( + config = dict( displaylogo=False, - modeBarButtonsToRemove=['select2d', - 'lasso2d', - 'zoomIn2d', - 'zoomOut2d', - 'autoScale2d'], + modeBarButtonsToRemove=[ + 'select2d', + 'lasso2d', + 'zoomIn2d', + 'zoomOut2d', + 'autoScale2d', + ], ) fig = go.Figure( @@ -110,10 +113,12 @@ def plot(self, # display it in the notebook. else: # Convert figure to HTML - html_fig = pio.to_html(fig, - include_plotlyjs="cdn", - full_html=False, - config=config) + html_fig = pio.to_html( + fig, + include_plotlyjs='cdn', + full_html=False, + config=config, + ) # Display it in the notebook display(HTML(html_fig)) diff --git a/src/easydiffraction/plotting/plotting.py b/src/easydiffraction/plotting/plotting.py index 27dc1eb1..340542ab 100644 --- a/src/easydiffraction/plotting/plotting.py +++ b/src/easydiffraction/plotting/plotting.py @@ -10,8 +10,7 @@ from easydiffraction.utils.utils import render_table -class Plotter(): - +class Plotter: def __init__(self): # Plotting engine self._engine = DEFAULT_ENGINE @@ -39,7 +38,7 @@ def engine(self, new_engine): return self._engine = new_engine self._plotter = new_plotter - print(paragraph("Current plotter changed to")) + print(paragraph('Current plotter changed to')) print(self._engine) @property @@ -85,61 +84,63 @@ def show_config(self): """ Displays the current configuration settings. """ - columns_headers = ["Parameter", "Value"] - columns_alignment = ["left", "left"] + columns_headers = ['Parameter', 'Value'] + columns_alignment = ['left', 'left'] columns_data = [ - ["Plotting engine", self.engine], - ["x-axis limits", f'[{self.x_min}, {self.x_max}]'], - ["Chart height", self.height] + ['Plotting engine', self.engine], + ['x-axis limits', f'[{self.x_min}, {self.x_max}]'], + ['Chart height', self.height], ] - print(paragraph("Current plotter configuration")) - render_table(columns_headers=columns_headers, - columns_alignment=columns_alignment, - columns_data=columns_data) + print(paragraph('Current plotter configuration')) + render_table( + columns_headers=columns_headers, + columns_alignment=columns_alignment, + columns_data=columns_data, + ) def show_supported_engines(self): """ Displays the supported plotting engines. """ - columns_headers = ["Engine", "Description"] - columns_alignment = ["left", "left"] + columns_headers = ['Engine', 'Description'] + columns_alignment = ['left', 'left'] columns_data = [] for name, config in PlotterFactory._SUPPORTED_ENGINES_DICT.items(): description = config.get('description', 'No description provided.') columns_data.append([name, description]) - print(paragraph("Supported plotter engines")) - render_table(columns_headers=columns_headers, - columns_alignment=columns_alignment, - columns_data=columns_data) - - def plot_meas(self, - pattern, - expt_name, - expt_type, - x_min=None, - x_max=None, - d_spacing=False): + print(paragraph('Supported plotter engines')) + render_table( + columns_headers=columns_headers, + columns_alignment=columns_alignment, + columns_data=columns_data, + ) + + def plot_meas(self, pattern, expt_name, expt_type, x_min=None, x_max=None, d_spacing=False): if pattern.x is None: - error(f"No data available for experiment {expt_name}") + error(f'No data available for experiment {expt_name}') return if pattern.meas is None: - error(f"No measured data available for experiment {expt_name}") + error(f'No measured data available for experiment {expt_name}') return if d_spacing: x_array = pattern.d else: x_array = pattern.x - x = self._filtered_y_array(y_array=x_array, - x_array=x_array, - x_min=x_min, - x_max=x_max) - y_meas = self._filtered_y_array(y_array=pattern.meas, - x_array=x_array, - x_min=x_min, - x_max=x_max) + x = self._filtered_y_array( + y_array=x_array, + x_array=x_array, + x_min=x_min, + x_max=x_max, + ) + y_meas = self._filtered_y_array( + y_array=pattern.meas, + x_array=x_array, + x_min=x_min, + x_max=x_max, + ) y_series = [y_meas] y_labels = ['meas'] @@ -155,35 +156,41 @@ def plot_meas(self, labels=y_labels, axes_labels=axes_labels, title=f"Measured data for experiment 🔬 '{expt_name}'", - height=self.height + height=self.height, ) - def plot_calc(self, - pattern, - expt_name, - expt_type, - x_min=None, - x_max=None, - d_spacing=False): + def plot_calc( + self, + pattern, + expt_name, + expt_type, + x_min=None, + x_max=None, + d_spacing=False, + ): if pattern.x is None: - error(f"No data available for experiment {expt_name}") + error(f'No data available for experiment {expt_name}') return if pattern.calc is None: - print(f"No calculated data available for experiment {expt_name}") + print(f'No calculated data available for experiment {expt_name}') return if d_spacing: x_array = pattern.d else: x_array = pattern.x - x = self._filtered_y_array(y_array=x_array, - x_array=x_array, - x_min=x_min, - x_max=x_max) - y_calc = self._filtered_y_array(y_array=pattern.calc, - x_array=x_array, - x_min=x_min, - x_max=x_max) + x = self._filtered_y_array( + y_array=x_array, + x_array=x_array, + x_min=x_min, + x_max=x_max, + ) + y_calc = self._filtered_y_array( + y_array=pattern.calc, + x_array=x_array, + x_min=x_min, + x_max=x_max, + ) y_series = [y_calc] y_labels = ['calc'] @@ -199,43 +206,51 @@ def plot_calc(self, labels=y_labels, axes_labels=axes_labels, title=f"Calculated data for experiment 🔬 '{expt_name}'", - height=self.height + height=self.height, ) - def plot_meas_vs_calc(self, - pattern, - expt_name, - expt_type, - x_min=None, - x_max=None, - show_residual=False, - d_spacing=False): + def plot_meas_vs_calc( + self, + pattern, + expt_name, + expt_type, + x_min=None, + x_max=None, + show_residual=False, + d_spacing=False, + ): if pattern.x is None: - print(error(f"No data available for experiment {expt_name}")) + print(error(f'No data available for experiment {expt_name}')) return if pattern.meas is None: - print(error(f"No measured data available for experiment {expt_name}")) + print(error(f'No measured data available for experiment {expt_name}')) return if pattern.calc is None: - print(error(f"No calculated data available for experiment {expt_name}")) + print(error(f'No calculated data available for experiment {expt_name}')) return if d_spacing: x_array = pattern.d else: x_array = pattern.x - x = self._filtered_y_array(y_array=x_array, - x_array=x_array, - x_min=x_min, - x_max=x_max) - y_meas = self._filtered_y_array(y_array=pattern.meas, - x_array=x_array, - x_min=x_min, - x_max=x_max) - y_calc = self._filtered_y_array(y_array=pattern.calc, - x_array=x_array, - x_min=x_min, - x_max=x_max) + x = self._filtered_y_array( + y_array=x_array, + x_array=x_array, + x_min=x_min, + x_max=x_max, + ) + y_meas = self._filtered_y_array( + y_array=pattern.meas, + x_array=x_array, + x_min=x_min, + x_max=x_max, + ) + y_calc = self._filtered_y_array( + y_array=pattern.calc, + x_array=x_array, + x_min=x_min, + x_max=x_max, + ) y_series = [y_meas, y_calc] y_labels = ['meas', 'calc'] @@ -256,14 +271,16 @@ def plot_meas_vs_calc(self, labels=y_labels, axes_labels=axes_labels, title=f"Measured vs Calculated data for experiment 🔬 '{expt_name}'", - height=self.height + height=self.height, ) - def _filtered_y_array(self, - y_array, - x_array, - x_min, - x_max): + def _filtered_y_array( + self, + y_array, + x_array, + x_min, + x_max, + ): if x_min is None: x_min = self.x_min if x_max is None: @@ -279,12 +296,12 @@ class PlotterFactory: _SUPPORTED_ENGINES_DICT = { 'asciichartpy': { 'description': 'Console ASCII line charts', - 'class': AsciiPlotter + 'class': AsciiPlotter, }, 'plotly': { 'description': 'Interactive browser-based graphing library', - 'class': PlotlyPlotter - } + 'class': PlotlyPlotter, + }, } @classmethod diff --git a/src/easydiffraction/project.py b/src/easydiffraction/project.py index b631bc3e..68db52ff 100644 --- a/src/easydiffraction/project.py +++ b/src/easydiffraction/project.py @@ -25,9 +25,9 @@ class ProjectInfo: """ def __init__(self) -> None: - self._name: str = "untitled_project" - self._title: str = "Untitled Project" - self._description: str = "" + self._name: str = 'untitled_project' + self._title: str = 'Untitled Project' + self._description: str = '' self._path: str = os.getcwd() self._created: datetime.datetime = datetime.datetime.now() self._last_modified: datetime.datetime = datetime.datetime.now() @@ -92,19 +92,19 @@ def as_cif(self) -> str: title_str += f"\n{' ' * 27}'{line}'" if wrapped_description: - base_indent: str = "_project.description " - indent_spaces: str = " " * len(base_indent) + base_indent: str = '_project.description ' + indent_spaces: str = ' ' * len(base_indent) formatted_description: str = f"{base_indent}'{wrapped_description[0]}" for line in wrapped_description[1:]: - formatted_description += f"\n{indent_spaces}{line}" + formatted_description += f'\n{indent_spaces}{line}' formatted_description += "'" else: formatted_description: str = "_project.description ''" return ( - f"_project.id {self.name}\n" - f"{title_str}\n" - f"{formatted_description}\n" + f'_project.id {self.name}\n' + f'{title_str}\n' + f'{formatted_description}\n' f"_project.created '{self._created.strftime('%d %b %Y %H:%M:%S')}'\n" f"_project.last_modified '{self._last_modified.strftime('%d %b %Y %H:%M:%S')}'\n" ) @@ -121,10 +121,12 @@ class Project: Provides access to sample models, experiments, analysis, and summary. """ - def __init__(self, - name: str = "untitled_project", - title: str = "Untitled Project", - description: str = "") -> None: + def __init__( + self, + name: str = 'untitled_project', + title: str = 'Untitled Project', + description: str = '', + ) -> None: self.info: ProjectInfo = ProjectInfo() self.info.name = name self.info.title = title @@ -151,14 +153,18 @@ def load(self, dir_path: str) -> None: Load a project from a given directory. Loads project info, sample models, experiments, etc. """ - print(paragraph(f"Loading project 📦 from {dir_path}")) + print(paragraph(f'Loading project 📦 from {dir_path}')) print(dir_path) self.info.path = dir_path # TODO: load project components from files inside dir_path print('Loading project is not implemented yet.') self._saved = True - def save_as(self, dir_path: str, temporary: bool = False) -> None: + def save_as( + self, + dir_path: str, + temporary: bool = False, + ) -> None: """ Save the project into a new directory. """ @@ -173,7 +179,7 @@ def save(self) -> None: Save the project into the existing project directory. """ if not self.info.path: - print(error("Project path not specified. Use save_as() to define the path first.")) + print(error('Project path not specified. Use save_as() to define the path first.')) return print(paragraph(f"Saving project 📦 '{self.name}' to")) @@ -182,39 +188,39 @@ def save(self) -> None: os.makedirs(self.info.path, exist_ok=True) # Save project info - with open(os.path.join(self.info.path, "project.cif"), "w") as f: + with open(os.path.join(self.info.path, 'project.cif'), 'w') as f: f.write(self.info.as_cif()) - print("✅ project.cif") + print('✅ project.cif') # Save sample models - sm_dir: str = os.path.join(self.info.path, "sample_models") + sm_dir: str = os.path.join(self.info.path, 'sample_models') os.makedirs(sm_dir, exist_ok=True) for model in self.sample_models: - file_name: str = f"{model.name}.cif" + file_name: str = f'{model.name}.cif' file_path: str = os.path.join(sm_dir, file_name) - with open(file_path, "w") as f: + with open(file_path, 'w') as f: f.write(model.as_cif()) - print(f"✅ sample_models/{file_name}") + print(f'✅ sample_models/{file_name}') # Save experiments - expt_dir: str = os.path.join(self.info.path, "experiments") + expt_dir: str = os.path.join(self.info.path, 'experiments') os.makedirs(expt_dir, exist_ok=True) for experiment in self.experiments: - file_name: str = f"{experiment.name}.cif" + file_name: str = f'{experiment.name}.cif' file_path: str = os.path.join(expt_dir, file_name) - with open(file_path, "w") as f: + with open(file_path, 'w') as f: f.write(experiment.as_cif()) - print(f"✅ experiments/{file_name}") + print(f'✅ experiments/{file_name}') # Save analysis - with open(os.path.join(self.info.path, "analysis.cif"), "w") as f: + with open(os.path.join(self.info.path, 'analysis.cif'), 'w') as f: f.write(self.analysis.as_cif()) - print("✅ analysis.cif") + print('✅ analysis.cif') # Save summary - with open(os.path.join(self.info.path, "summary.cif"), "w") as f: + with open(os.path.join(self.info.path, 'summary.cif'), 'w') as f: f.write(self.summary.as_cif()) - print("✅ summary.cif") + print('✅ summary.cif') self.info.update_last_modified() self._saved = True @@ -235,11 +241,13 @@ def set_experiments(self, experiments: Experiments) -> None: # Plotting # ------------------------------------------ - def plot_meas(self, - expt_name, - x_min=None, - x_max=None, - d_spacing=False): + def plot_meas( + self, + expt_name, + x_min=None, + x_max=None, + d_spacing=False, + ): experiment = self.experiments[expt_name] pattern = experiment.datastore.pattern expt_type = experiment.type @@ -253,19 +261,23 @@ def plot_meas(self, self.update_pattern_d_spacing(expt_name) # Plot measured pattern - self.plotter.plot_meas(pattern, - expt_name, - expt_type, - x_min=x_min, - x_max=x_max, - d_spacing=d_spacing) - - def plot_calc(self, - expt_name, - x_min=None, - x_max=None, - d_spacing=False): - self.analysis.calculate_pattern(expt_name) # Recalculate pattern + self.plotter.plot_meas( + pattern, + expt_name, + expt_type, + x_min=x_min, + x_max=x_max, + d_spacing=d_spacing, + ) + + def plot_calc( + self, + expt_name, + x_min=None, + x_max=None, + d_spacing=False, + ): + self.analysis.calculate_pattern(expt_name) # Recalculate pattern experiment = self.experiments[expt_name] pattern = experiment.datastore.pattern expt_type = experiment.type @@ -279,20 +291,24 @@ def plot_calc(self, self.update_pattern_d_spacing(expt_name) # Plot calculated pattern - self.plotter.plot_calc(pattern, - expt_name, - expt_type, - x_min=x_min, - x_max=x_max, - d_spacing=d_spacing) - - def plot_meas_vs_calc(self, - expt_name, - x_min=None, - x_max=None, - show_residual=False, - d_spacing=False): - self.analysis.calculate_pattern(expt_name) # Recalculate pattern + self.plotter.plot_calc( + pattern, + expt_name, + expt_type, + x_min=x_min, + x_max=x_max, + d_spacing=d_spacing, + ) + + def plot_meas_vs_calc( + self, + expt_name, + x_min=None, + x_max=None, + show_residual=False, + d_spacing=False, + ): + self.analysis.calculate_pattern(expt_name) # Recalculate pattern experiment = self.experiments[expt_name] pattern = experiment.datastore.pattern expt_type = experiment.type @@ -306,13 +322,15 @@ def plot_meas_vs_calc(self, self.update_pattern_d_spacing(expt_name) # Plot measured vs calculated - self.plotter.plot_meas_vs_calc(pattern, - expt_name, - expt_type, - x_min=x_min, - x_max=x_max, - show_residual=show_residual, - d_spacing=d_spacing) + self.plotter.plot_meas_vs_calc( + pattern, + expt_name, + expt_type, + x_min=x_min, + x_max=x_max, + show_residual=show_residual, + d_spacing=d_spacing, + ) def update_pattern_d_spacing(self, expt_name: str) -> None: """ @@ -324,12 +342,13 @@ def update_pattern_d_spacing(self, expt_name: str) -> None: beam_mode = expt_type.beam_mode.value if beam_mode == 'time-of-flight': - pattern.d = tof_to_d(pattern.x, - experiment.instrument.calib_d_to_tof_offset.value, - experiment.instrument.calib_d_to_tof_linear.value, - experiment.instrument.calib_d_to_tof_quad.value) + pattern.d = tof_to_d( + pattern.x, + experiment.instrument.calib_d_to_tof_offset.value, + experiment.instrument.calib_d_to_tof_linear.value, + experiment.instrument.calib_d_to_tof_quad.value, + ) elif beam_mode == 'constant wavelength': - pattern.d = twotheta_to_d(pattern.x, - experiment.instrument.setup_wavelength.value) + pattern.d = twotheta_to_d(pattern.x, experiment.instrument.setup_wavelength.value) else: - print(error(f"Unsupported beam mode: {beam_mode} for d-spacing update.")) + print(error(f'Unsupported beam mode: {beam_mode} for d-spacing update.')) diff --git a/src/easydiffraction/sample_models/collections/atom_sites.py b/src/easydiffraction/sample_models/collections/atom_sites.py index 210e7cc4..f6915f61 100644 --- a/src/easydiffraction/sample_models/collections/atom_sites.py +++ b/src/easydiffraction/sample_models/collections/atom_sites.py @@ -8,71 +8,74 @@ class AtomSite(Component): """ Represents a single atom site within the crystal structure. """ + @property def category_key(self): - return "atom_sites" + return 'atom_sites' @property def cif_category_key(self): - return "atom_site" + return 'atom_site' - def __init__(self, - label: str, - type_symbol: str, - fract_x: float, - fract_y: float, - fract_z: float, - wyckoff_letter: str = None, - occupancy: float = 1.0, - b_iso: float = 0.0, - adp_type: str = "Biso"): # TODO: add support for Uiso, Uani and Bani + def __init__( + self, + label: str, + type_symbol: str, + fract_x: float, + fract_y: float, + fract_z: float, + wyckoff_letter: str = None, + occupancy: float = 1.0, + b_iso: float = 0.0, + adp_type: str = 'Biso', + ): # TODO: add support for Uiso, Uani and Bani super().__init__() self.label = Descriptor( value=label, - name="label", - cif_name="label", + name='label', + cif_name='label', ) self.type_symbol = Descriptor( value=type_symbol, - name="type_symbol", - cif_name="type_symbol", + name='type_symbol', + cif_name='type_symbol', ) self.adp_type = Descriptor( value=adp_type, - name="adp_type", - cif_name="ADP_type", + name='adp_type', + cif_name='ADP_type', ) self.wyckoff_letter = Descriptor( value=wyckoff_letter, - name="wyckoff_letter", - cif_name="Wyckoff_letter" + name='wyckoff_letter', + cif_name='Wyckoff_letter', ) self.fract_x = Parameter( value=fract_x, - name="fract_x", - cif_name="fract_x", + name='fract_x', + cif_name='fract_x', ) self.fract_y = Parameter( value=fract_y, - name="fract_y", - cif_name="fract_y", + name='fract_y', + cif_name='fract_y', ) self.fract_z = Parameter( value=fract_z, - name="fract_z", - cif_name="fract_z", + name='fract_z', + cif_name='fract_z', ) self.occupancy = Parameter( value=occupancy, - name="occupancy", - cif_name="occupancy", + name='occupancy', + cif_name='occupancy', ) self.b_iso = Parameter( value=b_iso, - name="b_iso", - units="Ų", - cif_name="B_iso_or_equiv", + name='b_iso', + units='Ų', + cif_name='B_iso_or_equiv', ) # Select which of the input parameters is used for the # as ID for the whole object @@ -87,11 +90,12 @@ class AtomSites(Collection): """ Collection of AtomSite instances. """ + # TODO: Check, if we can get rid of this property # We could use class name instead @property def _type(self): - return "category" # datablock or category + return 'category' # datablock or category @property def _child_class(self): diff --git a/src/easydiffraction/sample_models/components/cell.py b/src/easydiffraction/sample_models/components/cell.py index 8749bfa4..c0c04ebb 100644 --- a/src/easydiffraction/sample_models/components/cell.py +++ b/src/easydiffraction/sample_models/components/cell.py @@ -1,4 +1,3 @@ - from easydiffraction.core.objects import Component from easydiffraction.core.objects import Parameter @@ -7,58 +6,61 @@ class Cell(Component): """ Represents the unit cell parameters of a sample model. """ + @property def category_key(self) -> str: - return "cell" + return 'cell' @property def cif_category_key(self) -> str: - return "cell" + return 'cell' - def __init__(self, - length_a: float = 10.0, - length_b: float = 10.0, - length_c: float = 10.0, - angle_alpha: float = 90.0, - angle_beta: float = 90.0, - angle_gamma: float = 90.0) -> None: + def __init__( + self, + length_a: float = 10.0, + length_b: float = 10.0, + length_c: float = 10.0, + angle_alpha: float = 90.0, + angle_beta: float = 90.0, + angle_gamma: float = 90.0, + ) -> None: super().__init__() self.length_a = Parameter( value=length_a, - name="length_a", - cif_name="length_a", - units="Å" + name='length_a', + cif_name='length_a', + units='Å', ) self.length_b = Parameter( value=length_b, - name="length_b", - cif_name="length_b", - units="Å" + name='length_b', + cif_name='length_b', + units='Å', ) self.length_c = Parameter( value=length_c, - name="length_c", - cif_name="length_c", - units="Å" + name='length_c', + cif_name='length_c', + units='Å', ) self.angle_alpha = Parameter( value=angle_alpha, - name="angle_alpha", - cif_name="angle_alpha", - units="deg" + name='angle_alpha', + cif_name='angle_alpha', + units='deg', ) self.angle_beta = Parameter( value=angle_beta, - name="angle_beta", - cif_name="angle_beta", - units="deg" + name='angle_beta', + cif_name='angle_beta', + units='deg', ) self.angle_gamma = Parameter( value=angle_gamma, - name="angle_gamma", - cif_name="angle_gamma", - units="deg" + name='angle_gamma', + cif_name='angle_gamma', + units='deg', ) # Lock further attribute additions to prevent diff --git a/src/easydiffraction/sample_models/components/space_group.py b/src/easydiffraction/sample_models/components/space_group.py index 7b705993..f4557840 100644 --- a/src/easydiffraction/sample_models/components/space_group.py +++ b/src/easydiffraction/sample_models/components/space_group.py @@ -8,28 +8,31 @@ class SpaceGroup(Component): """ Represents the space group of a sample model. """ + @property def category_key(self) -> str: - return "space_group" + return 'space_group' @property def cif_category_key(self) -> str: - return "space_group" + return 'space_group' - def __init__(self, - name_h_m : str = "P 1", - it_coordinate_system_code: Optional[int] = None) -> None: + def __init__( + self, + name_h_m: str = 'P 1', + it_coordinate_system_code: Optional[int] = None, + ) -> None: super().__init__() self.name_h_m = Descriptor( value=name_h_m, - name="name_h_m", - cif_name = "name_H-M_alt" + name='name_h_m', + cif_name='name_H-M_alt', ) self.it_coordinate_system_code = Descriptor( value=it_coordinate_system_code, - name="it_coordinate_system_code", - cif_name="IT_coordinate_system_code" + name='it_coordinate_system_code', + cif_name='IT_coordinate_system_code', ) # Lock further attribute additions to prevent diff --git a/src/easydiffraction/sample_models/sample_model.py b/src/easydiffraction/sample_models/sample_model.py index d5e48624..1b7f25ad 100644 --- a/src/easydiffraction/sample_models/sample_model.py +++ b/src/easydiffraction/sample_models/sample_model.py @@ -16,10 +16,7 @@ class SampleModel(Datablock): """ # TODO: Move cif_path and cif_str out of __init__ and into separate methods - def __init__(self, - name: str, - cif_path: str = None, - cif_str: str = None): + def __init__(self, name: str, cif_path: str = None, cif_str: str = None): super().__init__() self._name = name self.space_group = SpaceGroup() @@ -88,15 +85,16 @@ def atom_sites(self, new_atom_sites: AtomSites): # -------------------- def _apply_cell_symmetry_constraints(self): - dummy_cell = {'lattice_a': self.cell.length_a.value, - 'lattice_b': self.cell.length_b.value, - 'lattice_c': self.cell.length_c.value, - 'angle_alpha': self.cell.angle_alpha.value, - 'angle_beta': self.cell.angle_beta.value, - 'angle_gamma': self.cell.angle_gamma.value} + dummy_cell = { + 'lattice_a': self.cell.length_a.value, + 'lattice_b': self.cell.length_b.value, + 'lattice_c': self.cell.length_c.value, + 'angle_alpha': self.cell.angle_alpha.value, + 'angle_beta': self.cell.angle_beta.value, + 'angle_gamma': self.cell.angle_gamma.value, + } space_group_name = self.space_group.name_h_m.value - ecr.apply_cell_symmetry_constraints(cell=dummy_cell, - name_hm=space_group_name) + ecr.apply_cell_symmetry_constraints(cell=dummy_cell, name_hm=space_group_name) self.cell.length_a.value = dummy_cell['lattice_a'] self.cell.length_b.value = dummy_cell['lattice_b'] self.cell.length_c.value = dummy_cell['lattice_c'] @@ -108,17 +106,21 @@ def _apply_atomic_coordinates_symmetry_constraints(self): space_group_name = self.space_group.name_h_m.value space_group_coord_code = self.space_group.it_coordinate_system_code.value for atom in self.atom_sites: - dummy_atom = {"fract_x": atom.fract_x.value, - "fract_y": atom.fract_y.value, - "fract_z": atom.fract_z.value} + dummy_atom = { + 'fract_x': atom.fract_x.value, + 'fract_y': atom.fract_y.value, + 'fract_z': atom.fract_z.value, + } wl = atom.wyckoff_letter.value if not wl: - #raise ValueError("Wyckoff letter is not defined for atom.") + # raise ValueError("Wyckoff letter is not defined for atom.") continue - ecr.apply_atom_site_symmetry_constraints(atom_site=dummy_atom, - name_hm=space_group_name, - coord_code=space_group_coord_code, - wyckoff_letter=wl) + ecr.apply_atom_site_symmetry_constraints( + atom_site=dummy_atom, + name_hm=space_group_name, + coord_code=space_group_coord_code, + wyckoff_letter=wl, + ) atom.fract_x.value = dummy_atom['fract_x'] atom.fract_y.value = dummy_atom['fract_y'] atom.fract_z.value = dummy_atom['fract_z'] @@ -138,13 +140,13 @@ def apply_symmetry_constraints(self): def load_from_cif_file(self, cif_path: str): """Load model data from a CIF file.""" # TODO: Implement CIF parsing here - print(f"Loading SampleModel from CIF file: {cif_path}") + print(f'Loading SampleModel from CIF file: {cif_path}') # Example: self.id = extract_id_from_cif(cif_path) def load_from_cif_string(self, cif_str: str): """Load model data from a CIF string.""" # TODO: Implement CIF parsing from a string - print("Loading SampleModel from CIF string.") + print('Loading SampleModel from CIF string.') # ----------------- # Convertion to CIF @@ -157,18 +159,18 @@ def as_cif(self) -> str: str: CIF string representation of the sample model. """ # Data block header - cif_lines = [f"data_{self.name}"] + cif_lines = [f'data_{self.name}'] # Space Group - cif_lines += ["", self.space_group.as_cif()] + cif_lines += ['', self.space_group.as_cif()] # Unit Cell - cif_lines += ["", self.cell.as_cif()] + cif_lines += ['', self.cell.as_cif()] # Atom Sites - cif_lines += ["", self.atom_sites.as_cif()] + cif_lines += ['', self.atom_sites.as_cif()] - return "\n".join(cif_lines) + return '\n'.join(cif_lines) # ------------ # Show methods @@ -184,14 +186,14 @@ def show_structure(self, plane='xy', grid_size=20): """ print(paragraph(f"Sample model 🧩 '{self.name}' structure view")) - print("Not implemented yet.") + print('Not implemented yet.') def show_params(self): """Display structural parameters (space group, unit cell, atomic sites).""" - print(f"\nSampleModel ID: {self.name}") - print(f"Space group: {self.space_group.name_h_m}") - print(f"Cell parameters: {self.cell.as_dict()}") - print("Atom sites:") + print(f'\nSampleModel ID: {self.name}') + print(f'Space group: {self.space_group.name_h_m}') + print(f'Cell parameters: {self.cell.as_dict()}') + print('Atom sites:') self.atom_sites.show() def show_as_cif(self) -> None: diff --git a/src/easydiffraction/sample_models/sample_models.py b/src/easydiffraction/sample_models/sample_models.py index 5e4e3a78..12d61f89 100644 --- a/src/easydiffraction/sample_models/sample_models.py +++ b/src/easydiffraction/sample_models/sample_models.py @@ -20,11 +20,13 @@ def __init__(self) -> None: super().__init__() # Initialize Collection self._models = self._items # Alias for legacy support - def add(self, - model: Optional[SampleModel] = None, - name: Optional[str] = None, - cif_path: Optional[str] = None, - cif_str: Optional[str] = None) -> None: + def add( + self, + model: Optional[SampleModel] = None, + name: Optional[str] = None, + cif_path: Optional[str] = None, + cif_str: Optional[str] = None, + ) -> None: """ Add a new sample model to the collection. Dispatches based on input type: pre-built model or parameters for new creation. @@ -66,7 +68,7 @@ def ids(self) -> List[str]: def show_names(self) -> None: """List all model IDs in the collection.""" - print(paragraph("Defined sample models" + " 🧩")) + print(paragraph('Defined sample models' + ' 🧩')) print(self.get_ids()) def show_params(self) -> None: @@ -81,7 +83,7 @@ def as_cif(self) -> str: Returns: CIF string representation of all sample models. """ - return "\n".join([model.as_cif() for model in self._models.values()]) + return '\n'.join([model.as_cif() for model in self._models.values()]) @enforce_type def _add_prebuilt_sample_model(self, sample_model: SampleModel) -> None: @@ -96,10 +98,12 @@ def _add_prebuilt_sample_model(self, sample_model: SampleModel) -> None: """ self._models[sample_model.name] = sample_model - def _create_and_add_sample_model(self, - name: Optional[str] = None, - cif_path: Optional[str] = None, - cif_str: Optional[str] = None) -> None: + def _create_and_add_sample_model( + self, + name: Optional[str] = None, + cif_path: Optional[str] = None, + cif_str: Optional[str] = None, + ) -> None: """ Create a SampleModel instance and add it to the collection. @@ -118,6 +122,6 @@ def _create_and_add_sample_model(self, elif name: model = SampleModel(name=name) else: - raise ValueError("You must provide a name, cif_path, or cif_str.") + raise ValueError('You must provide a name, cif_path, or cif_str.') self._models[model.name] = model diff --git a/src/easydiffraction/summary.py b/src/easydiffraction/summary.py index 6f41738f..c4a016e2 100644 --- a/src/easydiffraction/summary.py +++ b/src/easydiffraction/summary.py @@ -37,13 +37,13 @@ def show_project_info(self) -> None: """ Print the project title and description. """ - print(section("Project info")) + print(section('Project info')) - print(paragraph("Title")) + print(paragraph('Title')) print(self.project.info.title) if self.project.info.description: - print(paragraph("Description")) + print(paragraph('Description')) print('\n'.join(wrap(self.project.info.description, width=60))) def show_crystallographic_data(self) -> None: @@ -51,103 +51,137 @@ def show_crystallographic_data(self) -> None: Print crystallographic data including phase datablocks, space groups, cell parameters, and atom sites. """ - print(section("Crystallographic data")) + print(section('Crystallographic data')) for model in self.project.sample_models._models.values(): - print(paragraph("Phase datablock")) + print(paragraph('Phase datablock')) print(f'🧩 {model.name}') - print(paragraph("Space group")) + print(paragraph('Space group')) print(model.space_group.name_h_m.value) - print(paragraph("Cell parameters")) - columns_alignment: List[str] = ["left", "right"] - cell_data = [[k.replace('length_', '').replace('angle_', ''), f"{v:.5f}"] - for k, v in model.cell.as_dict().items()] - render_table(columns_alignment=columns_alignment, - columns_data=cell_data) - - print(paragraph("Atom sites")) - columns_headers = ["Label", "Type", "fract_x", "fract_y", "fract_z", "Occupancy", "B_iso"] - columns_alignment = ["left", "left", "right", "right", "right", "right", "right"] + print(paragraph('Cell parameters')) + columns_alignment: List[str] = ['left', 'right'] + cell_data = [[k.replace('length_', '').replace('angle_', ''), f'{v:.5f}'] for k, v in model.cell.as_dict().items()] + render_table( + columns_alignment=columns_alignment, + columns_data=cell_data, + ) + + print(paragraph('Atom sites')) + columns_headers = [ + 'Label', + 'Type', + 'fract_x', + 'fract_y', + 'fract_z', + 'Occupancy', + 'B_iso', + ] + columns_alignment = [ + 'left', + 'left', + 'right', + 'right', + 'right', + 'right', + 'right', + ] atom_table = [] for site in model.atom_sites: - atom_table.append([ - site.label.value, site.type_symbol.value, - f"{site.fract_x.value:.5f}", f"{site.fract_y.value:.5f}", f"{site.fract_z.value:.5f}", - f"{site.occupancy.value:.5f}", f"{site.b_iso.value:.5f}" - ]) - render_table(columns_headers=columns_headers, - columns_alignment=columns_alignment, - columns_data=atom_table) + atom_table.append( + [ + site.label.value, + site.type_symbol.value, + f'{site.fract_x.value:.5f}', + f'{site.fract_y.value:.5f}', + f'{site.fract_z.value:.5f}', + f'{site.occupancy.value:.5f}', + f'{site.b_iso.value:.5f}', + ] + ) + render_table( + columns_headers=columns_headers, + columns_alignment=columns_alignment, + columns_data=atom_table, + ) def show_experimental_data(self) -> None: """ Print experimental data including experiment datablocks, types, instrument settings, and peak profile information. """ - print(section("Experiments")) + print(section('Experiments')) for expt in self.project.experiments._experiments.values(): - print(paragraph("Experiment datablock")) + print(paragraph('Experiment datablock')) print(f'🔬 {expt.name}') - print(paragraph("Experiment type")) + print(paragraph('Experiment type')) print(f'{expt.type.sample_form.value}, {expt.type.radiation_probe.value}, {expt.type.beam_mode.value}') if hasattr(expt, 'instrument'): if hasattr(expt.instrument, 'setup_wavelength'): - print(paragraph("Wavelength")) - print(f"{expt.instrument.setup_wavelength.value:.5f}") + print(paragraph('Wavelength')) + print(f'{expt.instrument.setup_wavelength.value:.5f}') if hasattr(expt.instrument, 'calib_twotheta_offset'): - print(paragraph("2θ offset")) - print(f"{expt.instrument.calib_twotheta_offset.value:.5f}") + print(paragraph('2θ offset')) + print(f'{expt.instrument.calib_twotheta_offset.value:.5f}') if hasattr(expt, 'peak_profile_type'): - print(paragraph("Profile type")) + print(paragraph('Profile type')) print(expt.peak_profile_type) if hasattr(expt, 'peak'): if hasattr(expt.peak, 'broad_gauss_u'): - print(paragraph("Peak broadening (Gaussian)")) - columns_alignment = ["left", "right"] + print(paragraph('Peak broadening (Gaussian)')) + columns_alignment = ['left', 'right'] columns_data = [ - ["U", f"{expt.peak.broad_gauss_u.value:.5f}"], - ["V", f"{expt.peak.broad_gauss_v.value:.5f}"], - ["W", f"{expt.peak.broad_gauss_w.value:.5f}"] + ['U', f'{expt.peak.broad_gauss_u.value:.5f}'], + ['V', f'{expt.peak.broad_gauss_v.value:.5f}'], + ['W', f'{expt.peak.broad_gauss_w.value:.5f}'], ] - render_table(columns_alignment=columns_alignment, - columns_data=columns_data) + render_table( + columns_alignment=columns_alignment, + columns_data=columns_data, + ) if hasattr(expt.peak, 'broad_lorentz_x'): - print(paragraph("Peak broadening (Lorentzian)")) - columns_alignment = ["left", "right"] + print(paragraph('Peak broadening (Lorentzian)')) + columns_alignment = ['left', 'right'] columns_data = [ - ["X", f"{expt.peak.broad_lorentz_x.value:.5f}"], - ["Y", f"{expt.peak.broad_lorentz_y.value:.5f}"] + ['X', f'{expt.peak.broad_lorentz_x.value:.5f}'], + ['Y', f'{expt.peak.broad_lorentz_y.value:.5f}'], ] - render_table(columns_alignment=columns_alignment, - columns_data=columns_data) + render_table( + columns_alignment=columns_alignment, + columns_data=columns_data, + ) def show_fitting_details(self) -> None: """ Print fitting details including calculation and minimization engines, and fit quality metrics. """ - print(section("Fitting")) + print(section('Fitting')) - print(paragraph("Calculation engine")) + print(paragraph('Calculation engine')) print(self.project.analysis.current_calculator) - print(paragraph("Minimization engine")) + print(paragraph('Minimization engine')) print(self.project.analysis.current_minimizer) - print(paragraph("Fit quality")) - columns_alignment = ["left", "right"] + print(paragraph('Fit quality')) + columns_alignment = ['left', 'right'] fit_metrics = [ - ["Goodness-of-fit (reduced χ²)", f"{self.project.analysis.fit_results.reduced_chi_square:.2f}"] + [ + 'Goodness-of-fit (reduced χ²)', + f'{self.project.analysis.fit_results.reduced_chi_square:.2f}', + ] ] - render_table(columns_alignment=columns_alignment, - columns_data=fit_metrics) + render_table( + columns_alignment=columns_alignment, + columns_data=fit_metrics, + ) # ------------------------------------------ # Exporting @@ -157,4 +191,4 @@ def as_cif(self) -> str: """ Export the final fitted data and analysis results as CIF format. """ - return "To be added..." + return 'To be added...' diff --git a/src/easydiffraction/utils/decorators.py b/src/easydiffraction/utils/decorators.py index 3c044f00..68c8c4fa 100644 --- a/src/easydiffraction/utils/decorators.py +++ b/src/easydiffraction/utils/decorators.py @@ -7,17 +7,17 @@ def enforce_type(func): # Find the first argument that isn't 'self' for name, param in params: - if name != "self": + if name != 'self': expected_type = param.annotation if expected_type is inspect._empty: raise TypeError(f"Missing type annotation for parameter '{name}' in {func.__qualname__}") break else: - raise TypeError(f"No annotated parameter found in {func.__qualname__}") + raise TypeError(f'No annotated parameter found in {func.__qualname__}') def wrapper(self, value): if not isinstance(value, expected_type): - raise TypeError(f"Expected {expected_type.__name__}, got {type(value).__name__}.") + raise TypeError(f'Expected {expected_type.__name__}, got {type(value).__name__}.') return func(self, value) return wrapper diff --git a/src/easydiffraction/utils/formatting.py b/src/easydiffraction/utils/formatting.py index b0b437d8..62de5bf6 100644 --- a/src/easydiffraction/utils/formatting.py +++ b/src/easydiffraction/utils/formatting.py @@ -2,44 +2,51 @@ from colorama import Style WIDTH = 100 -SYMBOL = "═" +SYMBOL = '═' + def chapter(title: str) -> str: """Formats a chapter header with bold magenta text, uppercase, and padding.""" - full_title = f" {title.upper()} " + full_title = f' {title.upper()} ' pad_len = (WIDTH - len(full_title)) // 2 padding = SYMBOL * pad_len - line = f"{Fore.LIGHTMAGENTA_EX + Style.BRIGHT}{padding}{full_title}{padding}{Style.RESET_ALL}" + line = f'{Fore.LIGHTMAGENTA_EX + Style.BRIGHT}{padding}{full_title}{padding}{Style.RESET_ALL}' if len(line) < WIDTH: line += SYMBOL return f'\n{line}' + def section(title: str) -> str: """Formats a section header with bold green text.""" full_title = f'*** {title.upper()} ***' - return f"\n{Fore.LIGHTGREEN_EX + Style.BRIGHT}{full_title}{Style.RESET_ALL}" + return f'\n{Fore.LIGHTGREEN_EX + Style.BRIGHT}{full_title}{Style.RESET_ALL}' + def paragraph(title: str) -> str: """Formats a subsection header with bold blue text while keeping quoted text unformatted.""" import re + parts = re.split(r"('.*?')", title) - formatted = f"{Fore.LIGHTBLUE_EX + Style.BRIGHT}" + formatted = f'{Fore.LIGHTBLUE_EX + Style.BRIGHT}' for part in parts: if part.startswith("'") and part.endswith("'"): formatted += Style.RESET_ALL + part + Fore.LIGHTBLUE_EX + Style.BRIGHT else: formatted += part formatted += Style.RESET_ALL - return f"\n{formatted}" + return f'\n{formatted}' + def error(title: str) -> str: """Formats an error message with red text.""" - return f"\n❌ {Fore.LIGHTRED_EX}Error{Style.RESET_ALL}\n{title}" + return f'\n❌ {Fore.LIGHTRED_EX}Error{Style.RESET_ALL}\n{title}' + def warning(title: str) -> str: """Formats a warning message with yellow text.""" - return f"\n⚠️ {Fore.LIGHTYELLOW_EX}Warning{Style.RESET_ALL}\n{title}" + return f'\n⚠️ {Fore.LIGHTYELLOW_EX}Warning{Style.RESET_ALL}\n{title}' + def info(title: str) -> str: """Formats an info message with cyan text.""" - return f"\nℹ️ {Fore.LIGHTCYAN_EX}Info{Style.RESET_ALL}\n{title}" + return f'\nℹ️ {Fore.LIGHTCYAN_EX}Info{Style.RESET_ALL}\n{title}' diff --git a/src/easydiffraction/utils/utils.py b/src/easydiffraction/utils/utils.py index ddea6c7a..35d6c55e 100644 --- a/src/easydiffraction/utils/utils.py +++ b/src/easydiffraction/utils/utils.py @@ -22,15 +22,15 @@ # Single source of truth for the data repository branch. # This can be overridden in CI or development environments. DATA_REPO_BRANCH = ( - os.environ.get("CI_BRANCH") # CI/dev override - or "master" # Default branch for the data repository + os.environ.get('CI_BRANCH') # CI/dev override + or 'master' # Default branch for the data repository ) def download_from_repository( - file_name: str, - branch: str | None = None, - destination: str = 'data' + file_name: str, + branch: str | None = None, + destination: str = 'data', ) -> None: """Download a data file from the EasyDiffraction repository on GitHub. @@ -50,7 +50,7 @@ def download_from_repository( url=url, known_hash=None, fname=file_name, - path=destination + path=destination, ) @@ -66,9 +66,9 @@ def is_notebook() -> bool: try: shell = get_ipython().__class__.__name__ # noqa: F821 - if shell == "ZMQInteractiveShell": - return True # Jupyter notebook or qtconsole - elif shell == "TerminalInteractiveShell": + if shell == 'ZMQInteractiveShell': + return True # Jupyter notebook or qtconsole + elif shell == 'TerminalInteractiveShell': return False # Terminal running IPython else: return False # Other type (unlikely) @@ -83,14 +83,16 @@ def is_pycharm() -> bool: Returns: bool: True if running inside PyCharm, False otherwise. """ - return os.environ.get("PYCHARM_HOSTED") == "1" + return os.environ.get('PYCHARM_HOSTED') == '1' -def render_table(columns_data, - columns_alignment, - columns_headers=None, - show_index=False, - display_handle=None): +def render_table( + columns_data, + columns_alignment, + columns_headers=None, + show_index=False, + display_handle=None, +): """ Renders a table either as an HTML (in Jupyter Notebook) or ASCII (in terminal), with aligned columns. @@ -111,8 +113,7 @@ def render_table(columns_data, columns_headers = df.columns.tolist() skip_headers = True else: - df = pd.DataFrame(columns_data, - columns=columns_headers) + df = pd.DataFrame(columns_data, columns=columns_headers) skip_headers = False # Force starting index from 1 @@ -120,40 +121,34 @@ def render_table(columns_data, df.index += 1 # Replace None/NaN values with empty strings - df.fillna("", inplace=True) + df.fillna('', inplace=True) # Formatters for data cell alignment and replacing None with empty string def make_formatter(align): return lambda x: f'
{x}
' - formatters = { - col: make_formatter(align) - for col, align in zip(columns_headers, columns_alignment) - } + formatters = {col: make_formatter(align) for col, align in zip(columns_headers, columns_alignment)} # Convert DataFrame to HTML - html = df.to_html(escape=False, - index=show_index, - formatters=formatters, - border=0, - header=not skip_headers) + html = df.to_html(escape=False, index=show_index, formatters=formatters, border=0, header=not skip_headers) # Add inline CSS to align the entire table to the left and show border - html = html.replace('', - '
') + html = html.replace( + '
', + '
', + ) # Manually apply text alignment to headers if not skip_headers: for col, align in zip(columns_headers, columns_alignment): - html = html.replace(f'
{col}', - f'{col}') + html = html.replace(f'{col}', f'{col}') # Display or update the table in Jupyter Notebook if display_handle is not None: @@ -174,10 +169,10 @@ def make_formatter(align): table = tabulate( columns_data, headers=columns_headers, - tablefmt="fancy_outline", - numalign="left", - stralign="left", - showindex=indices + tablefmt='fancy_outline', + numalign='left', + stralign='left', + showindex=indices, ) print(table) @@ -202,16 +197,15 @@ def render_cif(cif_text, paragraph_title) -> None: print(paragraph_title) # Render the table using left alignment and no headers - render_table(columns_data=columns, - columns_alignment=["left"]) + render_table(columns_data=columns, columns_alignment=['left']) def tof_to_d( - tof: np.ndarray, - offset: float, - linear: float, - quad: float, - quad_eps=1e-20 + tof: np.ndarray, + offset: float, + linear: float, + quad: float, + quad_eps=1e-20, ) -> np.ndarray: """Convert time-of-flight (TOF) to d-spacing using a quadratic calibration. @@ -240,7 +234,7 @@ def tof_to_d( # Type checks if not isinstance(tof, np.ndarray): raise TypeError(f"'tof' must be a NumPy array, got {type(tof).__name__}") - for name, val in (("offset", offset), ("linear", linear), ("quad", quad), ("quad_eps", quad_eps)): + for name, val in (('offset', offset), ('linear', linear), ('quad', quad), ('quad_eps', quad_eps)): if not isinstance(val, (int, float, np.integer, np.floating)): raise TypeError(f"'{name}' must be a real number, got {type(val).__name__}") @@ -268,7 +262,7 @@ def tof_to_d( if np.any(has_real_roots): sqrt_discr = np.sqrt(discr[has_real_roots]) - root_1 = (-linear + sqrt_discr) / (2 * quad) + root_1 = (-linear + sqrt_discr) / (2 * quad) root_2 = (-linear - sqrt_discr) / (2 * quad) # Pick smallest positive, finite root per element @@ -315,7 +309,7 @@ def get_value_from_xye_header(file_path, key): Raises: ValueError: If the key is not found. """ - pattern = rf"{key}\s*=\s*([-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?)" + pattern = rf'{key}\s*=\s*([-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?)' with open(file_path, 'r') as f: first_line = f.readline() @@ -324,4 +318,4 @@ def get_value_from_xye_header(file_path, key): if match: return float(match.group(1)) else: - raise ValueError(f"{key} not found in the header.") + raise ValueError(f'{key} not found in the header.') diff --git a/tests/functional_tests/fitting/test_pair-distribution-function.py b/tests/functional_tests/fitting/test_pair-distribution-function.py index c2fd7a78..4e57620f 100644 --- a/tests/functional_tests/fitting/test_pair-distribution-function.py +++ b/tests/functional_tests/fitting/test_pair-distribution-function.py @@ -17,31 +17,24 @@ def test_single_fit_pdf_xray_pd_cw_nacl() -> None: sample_model.space_group.name_h_m = 'F m -3 m' sample_model.space_group.it_coordinate_system_code = '1' sample_model.cell.length_a = 5.6018 - sample_model.atom_sites.add(label='Na', - type_symbol='Na', - fract_x=0, - fract_y=0, - fract_z=0, - wyckoff_letter='a', - b_iso=1.1053) - sample_model.atom_sites.add(label='Cl', - type_symbol='Cl', - fract_x=0.5, - fract_y=0.5, - fract_z=0.5, - wyckoff_letter='b', - b_iso=0.5708) + sample_model.atom_sites.add( + label='Na', type_symbol='Na', fract_x=0, fract_y=0, fract_z=0, wyckoff_letter='a', b_iso=1.1053 + ) + sample_model.atom_sites.add( + label='Cl', type_symbol='Cl', fract_x=0.5, fract_y=0.5, fract_z=0.5, wyckoff_letter='b', b_iso=0.5708 + ) # Set experiment data_file = 'NaCl.gr' - ed.download_from_repository(data_file, - destination=TEMP_DIR) - project.experiments.add(name='xray_pdf', - sample_form='powder', - beam_mode='constant wavelength', - radiation_probe='xray', - scattering_type='total', - data_path = os.path.join(TEMP_DIR, data_file)) + ed.download_from_repository(data_file, destination=TEMP_DIR) + project.experiments.add( + name='xray_pdf', + sample_form='powder', + beam_mode='constant wavelength', + radiation_probe='xray', + scattering_type='total', + data_path=os.path.join(TEMP_DIR, data_file), + ) experiment = project.experiments['xray_pdf'] experiment.peak_profile_type = 'gaussian-damped-sinc' experiment.peak.damp_q = 0.0606 @@ -65,9 +58,7 @@ def test_single_fit_pdf_xray_pd_cw_nacl() -> None: project.analysis.fit() # Compare fit quality - assert_almost_equal(project.analysis.fit_results.reduced_chi_square, - desired=1.48, - decimal=2) + assert_almost_equal(project.analysis.fit_results.reduced_chi_square, desired=1.48, decimal=2) def test_single_fit_pdf_neutron_pd_cw_ni(): @@ -79,24 +70,21 @@ def test_single_fit_pdf_neutron_pd_cw_ni(): sample_model.space_group.name_h_m.value = 'F m -3 m' sample_model.space_group.it_coordinate_system_code = '1' sample_model.cell.length_a = 3.526 - sample_model.atom_sites.add(label='Ni', - type_symbol='Ni', - fract_x=0, - fract_y=0, - fract_z=0, - wyckoff_letter='a', - b_iso=0.4281) + sample_model.atom_sites.add( + label='Ni', type_symbol='Ni', fract_x=0, fract_y=0, fract_z=0, wyckoff_letter='a', b_iso=0.4281 + ) # Set experiment data_file = 'ni-q27r100-neutron_from-2.gr' - ed.download_from_repository(data_file, - destination=TEMP_DIR) - project.experiments.add(name='pdf', - sample_form='powder', - beam_mode='constant wavelength', - radiation_probe='neutron', - scattering_type='total', - data_path = os.path.join(TEMP_DIR, data_file)) + ed.download_from_repository(data_file, destination=TEMP_DIR) + project.experiments.add( + name='pdf', + sample_form='powder', + beam_mode='constant wavelength', + radiation_probe='neutron', + scattering_type='total', + data_path=os.path.join(TEMP_DIR, data_file), + ) experiment = project.experiments['pdf'] experiment.peak.damp_q = 0 experiment.peak.broad_q = 0.022 @@ -118,9 +106,7 @@ def test_single_fit_pdf_neutron_pd_cw_ni(): project.analysis.fit() # Compare fit quality - assert_almost_equal(project.analysis.fit_results.reduced_chi_square, - desired=207.1, - decimal=1) + assert_almost_equal(project.analysis.fit_results.reduced_chi_square, desired=207.1, decimal=1) def test_single_fit_pdf_neutron_pd_tof_si(): @@ -132,24 +118,19 @@ def test_single_fit_pdf_neutron_pd_tof_si(): sample_model.space_group.name_h_m.value = 'F d -3 m' sample_model.space_group.it_coordinate_system_code = '1' sample_model.cell.length_a = 5.4306 - sample_model.atom_sites.add(label='Si', - type_symbol='Si', - fract_x=0, - fract_y=0, - fract_z=0, - wyckoff_letter='a', - b_iso=0.717) + sample_model.atom_sites.add(label='Si', type_symbol='Si', fract_x=0, fract_y=0, fract_z=0, wyckoff_letter='a', b_iso=0.717) # Set experiment data_file = 'NOM_9999_Si_640g_PAC_50_ff_ftfrgr_up-to-50.gr' - ed.download_from_repository(data_file, - destination=TEMP_DIR) - project.experiments.add(name='nomad', - sample_form='powder', - beam_mode='time-of-flight', - radiation_probe='neutron', - scattering_type='total', - data_path = os.path.join(TEMP_DIR, data_file)) + ed.download_from_repository(data_file, destination=TEMP_DIR) + project.experiments.add( + name='nomad', + sample_form='powder', + beam_mode='time-of-flight', + radiation_probe='neutron', + scattering_type='total', + data_path=os.path.join(TEMP_DIR, data_file), + ) experiment = project.experiments['nomad'] experiment.peak.damp_q = 0.0251 experiment.peak.broad_q = 0.0183 @@ -173,9 +154,8 @@ def test_single_fit_pdf_neutron_pd_tof_si(): project.analysis.fit() # Compare fit quality - assert_almost_equal(project.analysis.fit_results.reduced_chi_square, - desired=170.54, - decimal=1) + assert_almost_equal(project.analysis.fit_results.reduced_chi_square, desired=170.54, decimal=1) + if __name__ == '__main__': test_single_fit_pdf_xray_pd_cw_nacl() diff --git a/tests/functional_tests/fitting/test_powder-diffraction_constant-wavelength.py b/tests/functional_tests/fitting/test_powder-diffraction_constant-wavelength.py index 794edc5d..5c6e321c 100644 --- a/tests/functional_tests/fitting/test_powder-diffraction_constant-wavelength.py +++ b/tests/functional_tests/fitting/test_powder-diffraction_constant-wavelength.py @@ -58,9 +58,7 @@ def test_single_fit_neutron_pd_cwl_lbco() -> None: project.analysis.fit() # Compare fit quality - assert_almost_equal(project.analysis.fit_results.reduced_chi_square, - desired=5.79, - decimal=1) + assert_almost_equal(project.analysis.fit_results.reduced_chi_square, desired=5.79, decimal=1) # ------------ 2nd fitting ------------ @@ -74,9 +72,7 @@ def test_single_fit_neutron_pd_cwl_lbco() -> None: project.analysis.fit() # Compare fit quality - assert_almost_equal(project.analysis.fit_results.reduced_chi_square, - desired=4.41, - decimal=1) + assert_almost_equal(project.analysis.fit_results.reduced_chi_square, desired=4.41, decimal=1) # ------------ 3rd fitting ------------ @@ -90,9 +86,7 @@ def test_single_fit_neutron_pd_cwl_lbco() -> None: project.analysis.fit() # Compare fit quality - assert_almost_equal(project.analysis.fit_results.reduced_chi_square, - desired=1.3, - decimal=1) + assert_almost_equal(project.analysis.fit_results.reduced_chi_square, desired=1.3, decimal=1) def test_single_fit_neutron_pd_cwl_lbco_with_constraints() -> None: @@ -181,27 +175,19 @@ def test_single_fit_neutron_pd_cwl_lbco_with_constraints() -> None: assert_almost_equal(atom_sites['Ba'].occupancy.value, desired=1.3206, decimal=2) # Compare fit quality - assert_almost_equal(project.analysis.fit_results.reduced_chi_square, - desired=1.24, - decimal=1) + assert_almost_equal(project.analysis.fit_results.reduced_chi_square, desired=1.24, decimal=1) # ------------ 2nd fitting ------------ # Set aliases for parameters - project.analysis.aliases.add(label='biso_La', - param_uid=atom_sites['La'].b_iso.uid) - project.analysis.aliases.add(label='biso_Ba', - param_uid=atom_sites['Ba'].b_iso.uid) - project.analysis.aliases.add(label='occ_La', - param_uid=atom_sites['La'].occupancy.uid) - project.analysis.aliases.add(label='occ_Ba', - param_uid=atom_sites['Ba'].occupancy.uid) + project.analysis.aliases.add(label='biso_La', param_uid=atom_sites['La'].b_iso.uid) + project.analysis.aliases.add(label='biso_Ba', param_uid=atom_sites['Ba'].b_iso.uid) + project.analysis.aliases.add(label='occ_La', param_uid=atom_sites['La'].occupancy.uid) + project.analysis.aliases.add(label='occ_Ba', param_uid=atom_sites['Ba'].occupancy.uid) # Set constraints - project.analysis.constraints.add(lhs_alias='biso_Ba', - rhs_expr='biso_La') - project.analysis.constraints.add(lhs_alias='occ_Ba', - rhs_expr='1 - occ_La') + project.analysis.constraints.add(lhs_alias='biso_Ba', rhs_expr='biso_La') + project.analysis.constraints.add(lhs_alias='occ_Ba', rhs_expr='1 - occ_La') # Apply constraints project.analysis.apply_constraints() @@ -218,9 +204,7 @@ def test_single_fit_neutron_pd_cwl_lbco_with_constraints() -> None: assert_almost_equal(atom_sites['Ba'].occupancy.value, desired=0.4726, decimal=2) # Compare fit quality - assert_almost_equal(project.analysis.fit_results.reduced_chi_square, - desired=1.24, - decimal=1) + assert_almost_equal(project.analysis.fit_results.reduced_chi_square, desired=1.24, decimal=1) def test_fit_neutron_pd_cwl_hs() -> None: @@ -280,8 +264,7 @@ def test_fit_neutron_pd_cwl_hs() -> None: project.analysis.fit() # Compare fit quality - assert_almost_equal(project.analysis.fit_results.reduced_chi_square, - desired=2.11, decimal=1) + assert_almost_equal(project.analysis.fit_results.reduced_chi_square, desired=2.11, decimal=1) # ------------ 2nd fitting ------------ @@ -297,9 +280,7 @@ def test_fit_neutron_pd_cwl_hs() -> None: project.analysis.fit() # Compare fit quality - assert_almost_equal(project.analysis.fit_results.reduced_chi_square, - desired=2.11, - decimal=1) + assert_almost_equal(project.analysis.fit_results.reduced_chi_square, desired=2.11, decimal=1) # ------------ 3rd fitting ------------ @@ -314,9 +295,7 @@ def test_fit_neutron_pd_cwl_hs() -> None: project.analysis.fit() # Compare fit quality - assert_almost_equal(project.analysis.fit_results.reduced_chi_square, - desired=2.11, - decimal=1) + assert_almost_equal(project.analysis.fit_results.reduced_chi_square, desired=2.11, decimal=1) # ------------ 3rd fitting ------------ @@ -331,9 +310,7 @@ def test_fit_neutron_pd_cwl_hs() -> None: project.analysis.fit() # Compare fit quality - assert_almost_equal(project.analysis.fit_results.reduced_chi_square, - desired=2.11, - decimal=1) + assert_almost_equal(project.analysis.fit_results.reduced_chi_square, desired=2.11, decimal=1) if __name__ == '__main__': diff --git a/tests/functional_tests/fitting/test_powder-diffraction_joint-fit.py b/tests/functional_tests/fitting/test_powder-diffraction_joint-fit.py index dc04e66d..c460d468 100644 --- a/tests/functional_tests/fitting/test_powder-diffraction_joint-fit.py +++ b/tests/functional_tests/fitting/test_powder-diffraction_joint-fit.py @@ -13,16 +13,16 @@ def test_joint_fit_split_dataset_neutron_pd_cwl_pbso4() -> None: # Set sample model - model = SampleModel("pbso4") - model.space_group.name_h_m.value = "P n m a" + model = SampleModel('pbso4') + model.space_group.name_h_m.value = 'P n m a' model.cell.length_a.value = 8.47 model.cell.length_b.value = 5.39 model.cell.length_c.value = 6.95 - model.atom_sites.add("Pb", "Pb", 0.1876, 0.25, 0.167, b_iso=1.37) - model.atom_sites.add("S", "S", 0.0654, 0.25, 0.684, b_iso=0.3777) - model.atom_sites.add("O1", "O", 0.9082, 0.25, 0.5954, b_iso=1.9764) - model.atom_sites.add("O2", "O", 0.1935, 0.25, 0.5432, b_iso=1.4456) - model.atom_sites.add("O3", "O", 0.0811, 0.0272, 0.8086, b_iso=1.2822) + model.atom_sites.add('Pb', 'Pb', 0.1876, 0.25, 0.167, b_iso=1.37) + model.atom_sites.add('S', 'S', 0.0654, 0.25, 0.684, b_iso=0.3777) + model.atom_sites.add('O1', 'O', 0.9082, 0.25, 0.5954, b_iso=1.9764) + model.atom_sites.add('O2', 'O', 0.1935, 0.25, 0.5432, b_iso=1.4456) + model.atom_sites.add('O3', 'O', 0.0811, 0.0272, 0.8086, b_iso=1.2822) # Set experiments data_file = 'd1a_pbso4_first-half.dat' @@ -35,8 +35,8 @@ def test_joint_fit_split_dataset_neutron_pd_cwl_pbso4() -> None: expt1.peak.broad_gauss_w = 0.386 expt1.peak.broad_lorentz_x = 0 expt1.peak.broad_lorentz_y = 0.0878 - expt1.linked_phases.add("pbso4", scale=1.46) - expt1.background_type = "line-segment" + expt1.linked_phases.add('pbso4', scale=1.46) + expt1.background_type = 'line-segment' for x, y in [ (11.0, 206.1624), (15.0, 194.75), @@ -59,8 +59,8 @@ def test_joint_fit_split_dataset_neutron_pd_cwl_pbso4() -> None: expt2.peak.broad_gauss_w = 0.386 expt2.peak.broad_lorentz_x = 0 expt2.peak.broad_lorentz_y = 0.0878 - expt2.linked_phases.add("pbso4", scale=1.46) - expt2.background_type = "line-segment" + expt2.linked_phases.add('pbso4', scale=1.46) + expt2.background_type = 'line-segment' for x, y in [ (11.0, 206.1624), (15.0, 194.75), @@ -93,9 +93,7 @@ def test_joint_fit_split_dataset_neutron_pd_cwl_pbso4() -> None: project.analysis.fit() # Compare fit quality - assert_almost_equal(project.analysis.fit_results.reduced_chi_square, - desired=4.66, - decimal=1) + assert_almost_equal(project.analysis.fit_results.reduced_chi_square, desired=4.66, decimal=1) def test_joint_fit_neutron_xray_pd_cwl_pbso4() -> None: @@ -182,9 +180,7 @@ def test_joint_fit_neutron_xray_pd_cwl_pbso4() -> None: project.analysis.fit() # Compare fit quality - assert_almost_equal(project.analysis.fit_results.reduced_chi_square, - desired=26.05, - decimal=1) + assert_almost_equal(project.analysis.fit_results.reduced_chi_square, desired=26.05, decimal=1) # ------------ 2nd fitting ------------ @@ -193,9 +189,7 @@ def test_joint_fit_neutron_xray_pd_cwl_pbso4() -> None: project.analysis.fit() # Compare fit quality - assert_almost_equal(project.analysis.fit_results.reduced_chi_square, - desired=21.09, - decimal=1) + assert_almost_equal(project.analysis.fit_results.reduced_chi_square, desired=21.09, decimal=1) # ------------ 3rd fitting ------------ @@ -206,9 +200,7 @@ def test_joint_fit_neutron_xray_pd_cwl_pbso4() -> None: project.analysis.fit() # Compare fit quality - assert_almost_equal(project.analysis.fit_results.reduced_chi_square, - desired=21.09, - decimal=1) + assert_almost_equal(project.analysis.fit_results.reduced_chi_square, desired=21.09, decimal=1) # ------------ 4th fitting ------------ @@ -219,9 +211,7 @@ def test_joint_fit_neutron_xray_pd_cwl_pbso4() -> None: project.analysis.fit() # Compare fit quality - assert_almost_equal(project.analysis.fit_results.reduced_chi_square, - desired=14.39, - decimal=1) + assert_almost_equal(project.analysis.fit_results.reduced_chi_square, desired=14.39, decimal=1) if __name__ == '__main__': diff --git a/tests/functional_tests/fitting/test_powder-diffraction_multiphase.py b/tests/functional_tests/fitting/test_powder-diffraction_multiphase.py index 81ce4688..517ffed9 100644 --- a/tests/functional_tests/fitting/test_powder-diffraction_multiphase.py +++ b/tests/functional_tests/fitting/test_powder-diffraction_multiphase.py @@ -85,9 +85,7 @@ def test_single_fit_neutron_pd_tof_mcstas_lbco_si() -> None: project.analysis.fit() # Compare fit quality - assert_almost_equal(project.analysis.fit_results.reduced_chi_square, - desired=2.87, - decimal=1) + assert_almost_equal(project.analysis.fit_results.reduced_chi_square, desired=2.87, decimal=1) if __name__ == '__main__': diff --git a/tests/functional_tests/fitting/test_powder-diffraction_time-of-flight.py b/tests/functional_tests/fitting/test_powder-diffraction_time-of-flight.py index 8a3feb22..22451122 100644 --- a/tests/functional_tests/fitting/test_powder-diffraction_time-of-flight.py +++ b/tests/functional_tests/fitting/test_powder-diffraction_time-of-flight.py @@ -61,9 +61,7 @@ def test_single_fit_neutron_pd_tof_si() -> None: project.analysis.fit() # Compare fit quality - assert_almost_equal(project.analysis.fit_results.reduced_chi_square, - desired=3.19, - decimal=1) + assert_almost_equal(project.analysis.fit_results.reduced_chi_square, desired=3.19, decimal=1) def test_single_fit_neutron_pd_tof_ncaf() -> None: @@ -72,12 +70,12 @@ def test_single_fit_neutron_pd_tof_ncaf() -> None: model.space_group.name_h_m = 'I 21 3' model.space_group.it_coordinate_system_code = '1' model.cell.length_a = 10.250256 - model.atom_sites.add('Ca', 'Ca', 0.4661, 0.0, 0.25, wyckoff_letter="b", b_iso=0.9) - model.atom_sites.add('Al', 'Al', 0.25171, 0.25171, 0.25171, wyckoff_letter="a", b_iso=0.66) - model.atom_sites.add('Na', 'Na', 0.08481, 0.08481, 0.08481, wyckoff_letter="a", b_iso=1.9) - model.atom_sites.add('F1', 'F', 0.1375, 0.3053, 0.1195, wyckoff_letter="c", b_iso=0.9) - model.atom_sites.add('F2', 'F', 0.3626, 0.3634, 0.1867, wyckoff_letter="c", b_iso=1.28) - model.atom_sites.add('F3', 'F', 0.4612, 0.4612, 0.4612, wyckoff_letter="a", b_iso=0.79) + model.atom_sites.add('Ca', 'Ca', 0.4661, 0.0, 0.25, wyckoff_letter='b', b_iso=0.9) + model.atom_sites.add('Al', 'Al', 0.25171, 0.25171, 0.25171, wyckoff_letter='a', b_iso=0.66) + model.atom_sites.add('Na', 'Na', 0.08481, 0.08481, 0.08481, wyckoff_letter='a', b_iso=1.9) + model.atom_sites.add('F1', 'F', 0.1375, 0.3053, 0.1195, wyckoff_letter='c', b_iso=0.9) + model.atom_sites.add('F2', 'F', 0.3626, 0.3634, 0.1867, wyckoff_letter='c', b_iso=1.28) + model.atom_sites.add('F3', 'F', 0.4612, 0.4612, 0.4612, wyckoff_letter='a', b_iso=0.79) # Set experiment data_file = 'wish_ncaf.xye' @@ -124,7 +122,7 @@ def test_single_fit_neutron_pd_tof_ncaf() -> None: (74204, 262), (82103, 268), (91958, 268), - (102712, 262) + (102712, 262), ]: expt.background.add(x, y) @@ -148,9 +146,7 @@ def test_single_fit_neutron_pd_tof_ncaf() -> None: project.analysis.fit() # Compare fit quality - assert_almost_equal(project.analysis.fit_results.reduced_chi_square, - desired=15.25, - decimal=1) + assert_almost_equal(project.analysis.fit_results.reduced_chi_square, desired=15.25, decimal=1) if __name__ == '__main__': diff --git a/tests/unit_tests/analysis/calculators/test_calculator_base.py b/tests/unit_tests/analysis/calculators/test_calculator_base.py index db645b42..990197fc 100644 --- a/tests/unit_tests/analysis/calculators/test_calculator_base.py +++ b/tests/unit_tests/analysis/calculators/test_calculator_base.py @@ -11,24 +11,24 @@ class MockCalculator(CalculatorBase): @property def name(self): - return "MockCalculator" + return 'MockCalculator' @property def engine_imported(self): return True def calculate_structure_factors(self, sample_model, experiment): - return np.array([1., 2., 3.]) + return np.array([1.0, 2.0, 3.0]) def _calculate_single_model_pattern(self, sample_model, experiment, called_by_minimizer): - return np.array([1., 2., 3.]) + return np.array([1.0, 2.0, 3.0]) @pytest.fixture def mock_sample_models(): sample_models = MagicMock() - sample_models.get_all_params.return_value = {"param1": 1, "param2": 2} - sample_models.get_ids.return_value = ["phase1", "phase2"] + sample_models.get_all_params.return_value = {'param1': 1, 'param2': 2} + sample_models.get_ids.return_value = ['phase1', 'phase2'] sample_models.__getitem__.side_effect = lambda key: MagicMock(apply_symmetry_constraints=MagicMock()) return sample_models @@ -36,18 +36,18 @@ def mock_sample_models(): @pytest.fixture def mock_experiment(): experiment = MagicMock() - experiment.datastore.pattern.x = np.array([1., 2., 3.]) + experiment.datastore.pattern.x = np.array([1.0, 2.0, 3.0]) experiment.datastore.pattern.bkg = None experiment.datastore.pattern.calc = None experiment.linked_phases = [ - MagicMock(_entry_id="phase1", scale=MagicMock(value=2.0)), - MagicMock(_entry_id="phase2", scale=MagicMock(value=1.5)), + MagicMock(_entry_id='phase1', scale=MagicMock(value=2.0)), + MagicMock(_entry_id='phase2', scale=MagicMock(value=1.5)), ] experiment.background.calculate.return_value = np.array([0.1, 0.2, 0.3]) return experiment -@patch("easydiffraction.core.singletons.ConstraintsHandler.get") +@patch('easydiffraction.core.singletons.ConstraintsHandler.get') def test_calculate_pattern(mock_constraints_handler, mock_sample_models, mock_experiment): mock_constraints_handler.return_value.apply = MagicMock() @@ -68,8 +68,8 @@ def test_get_valid_linked_phases(mock_sample_models, mock_experiment): # Assertions assert len(valid_phases) == 2 - assert valid_phases[0]._entry_id == "phase1" - assert valid_phases[1]._entry_id == "phase2" + assert valid_phases[0]._entry_id == 'phase1' + assert valid_phases[1]._entry_id == 'phase2' def test_calculate_structure_factors(mock_sample_models, mock_experiment): @@ -79,4 +79,4 @@ def test_calculate_structure_factors(mock_sample_models, mock_experiment): result = calculator.calculate_structure_factors(mock_sample_models, mock_experiment) # Assertions - assert np.allclose(result, np.array([1., 2., 3.])) + assert np.allclose(result, np.array([1.0, 2.0, 3.0])) diff --git a/tests/unit_tests/analysis/calculators/test_calculator_cryspy.py b/tests/unit_tests/analysis/calculators/test_calculator_cryspy.py index 94ffe53c..086ba171 100644 --- a/tests/unit_tests/analysis/calculators/test_calculator_cryspy.py +++ b/tests/unit_tests/analysis/calculators/test_calculator_cryspy.py @@ -10,7 +10,7 @@ @pytest.fixture def mock_sample_model(): sample_model = MagicMock() - sample_model.name = "sample1" + sample_model.name = 'sample1' sample_model.cell.length_a.value = 1.0 sample_model.cell.length_b.value = 2.0 sample_model.cell.length_c.value = 3.0 @@ -18,8 +18,13 @@ def mock_sample_model(): sample_model.cell.angle_beta.value = 90.0 sample_model.cell.angle_gamma.value = 90.0 sample_model.atom_sites = [ - MagicMock(fract_x=MagicMock(value=0.1), fract_y=MagicMock(value=0.2), fract_z=MagicMock(value=0.3), - occupancy=MagicMock(value=1.0), b_iso=MagicMock(value=0.5)) + MagicMock( + fract_x=MagicMock(value=0.1), + fract_y=MagicMock(value=0.2), + fract_z=MagicMock(value=0.3), + occupancy=MagicMock(value=1.0), + b_iso=MagicMock(value=0.5), + ) ] return sample_model @@ -27,8 +32,8 @@ def mock_sample_model(): @pytest.fixture def mock_experiment(): experiment = MagicMock() - experiment.name = "experiment1" - experiment.type.beam_mode.value = "constant wavelength" + experiment.name = 'experiment1' + experiment.type.beam_mode.value = 'constant wavelength' experiment.datastore.pattern.x = np.array([1.0, 2.0, 3.0]) experiment.datastore.pattern.meas = np.array([10.0, 20.0, 30.0]) experiment.datastore.pattern.meas_su = np.array([0.1, 0.2, 0.3]) @@ -42,7 +47,7 @@ def mock_experiment(): return experiment -@patch("easydiffraction.analysis.calculators.calculator_cryspy.str_to_globaln") +@patch('easydiffraction.analysis.calculators.calculator_cryspy.str_to_globaln') def test_recreate_cryspy_obj(mock_str_to_globaln, mock_sample_model, mock_experiment): mock_str_to_globaln.return_value = MagicMock(add_items=MagicMock()) @@ -54,12 +59,12 @@ def test_recreate_cryspy_obj(mock_str_to_globaln, mock_sample_model, mock_experi assert cryspy_obj.add_items.called -@patch("easydiffraction.analysis.calculators.calculator_cryspy.rhochi_calc_chi_sq_by_dictionary") +@patch('easydiffraction.analysis.calculators.calculator_cryspy.rhochi_calc_chi_sq_by_dictionary') def test_calculate_single_model_pattern(mock_rhochi_calc, mock_sample_model, mock_experiment): mock_rhochi_calc.return_value = None calculator = CryspyCalculator() - calculator._cryspy_dicts = {"experiment1": {"mock_key": "mock_value"}} + calculator._cryspy_dicts = {'experiment1': {'mock_key': 'mock_value'}} result = calculator._calculate_single_model_pattern(mock_sample_model, mock_experiment, called_by_minimizer=False) @@ -71,29 +76,28 @@ def test_calculate_single_model_pattern(mock_rhochi_calc, mock_sample_model, moc def test_recreate_cryspy_dict(mock_sample_model, mock_experiment): calculator = CryspyCalculator() calculator._cryspy_dicts = { - "sample1_experiment1": { - "pd_experiment1": { - "offset_ttheta": [0.1], - "wavelength": [1.54], - "resolution_parameters": [0.1, 0.2, 0.3, 0.4, 0.5], + 'sample1_experiment1': { + 'pd_experiment1': { + 'offset_ttheta': [0.1], + 'wavelength': [1.54], + 'resolution_parameters': [0.1, 0.2, 0.3, 0.4, 0.5], + }, + 'crystal_sample1': { + 'unit_cell_parameters': [0, 0, 0, 0, 0, 0], + 'atom_fract_xyz': [[0], [0], [0]], + 'atom_occupancy': [0], + 'atom_b_iso': [0], }, - "crystal_sample1": { - "unit_cell_parameters": [0, 0, 0, 0, 0, 0], - "atom_fract_xyz": [[0], [0], [0]], - "atom_occupancy": [0], - "atom_b_iso": [0], - } } } cryspy_dict = calculator._recreate_cryspy_dict(mock_sample_model, mock_experiment) # Assertions - assert cryspy_dict["crystal_sample1"]["unit_cell_parameters"][:3] == [1.0, 2.0, 3.0] - assert cryspy_dict["crystal_sample1"]["atom_fract_xyz"][0][0] == 0.1 - assert cryspy_dict["crystal_sample1"]["atom_occupancy"][0] == 1.0 - assert cryspy_dict["crystal_sample1"]["atom_b_iso"][0] == 0.5 - assert cryspy_dict["pd_experiment1"]["offset_ttheta"][0] == 0.0 - assert cryspy_dict["pd_experiment1"]["wavelength"][0] == 1.54 - assert cryspy_dict["pd_experiment1"]["resolution_parameters"] == [0.1, 0.2, 0.3, 0.4, 0.5] - + assert cryspy_dict['crystal_sample1']['unit_cell_parameters'][:3] == [1.0, 2.0, 3.0] + assert cryspy_dict['crystal_sample1']['atom_fract_xyz'][0][0] == 0.1 + assert cryspy_dict['crystal_sample1']['atom_occupancy'][0] == 1.0 + assert cryspy_dict['crystal_sample1']['atom_b_iso'][0] == 0.5 + assert cryspy_dict['pd_experiment1']['offset_ttheta'][0] == 0.0 + assert cryspy_dict['pd_experiment1']['wavelength'][0] == 1.54 + assert cryspy_dict['pd_experiment1']['resolution_parameters'] == [0.1, 0.2, 0.3, 0.4, 0.5] diff --git a/tests/unit_tests/analysis/calculators/test_calculator_factory.py b/tests/unit_tests/analysis/calculators/test_calculator_factory.py index 27b7f733..c7d5ff8c 100644 --- a/tests/unit_tests/analysis/calculators/test_calculator_factory.py +++ b/tests/unit_tests/analysis/calculators/test_calculator_factory.py @@ -11,9 +11,11 @@ @pytest.fixture def mock_calculators(): - with patch.object(CrysfmlCalculator, 'engine_imported', True), \ - patch.object(CryspyCalculator, 'engine_imported', True), \ - patch.object(PdffitCalculator, 'engine_imported', False): + with ( + patch.object(CrysfmlCalculator, 'engine_imported', True), + patch.object(CryspyCalculator, 'engine_imported', True), + patch.object(PdffitCalculator, 'engine_imported', False), + ): yield @@ -35,14 +37,14 @@ def test_list_supported_calculators(mock_calculators): assert 'pdffit' not in supported_list # Engine not imported -@patch("builtins.print") +@patch('builtins.print') def test_show_supported_calculators(mock_print, mock_calculators): CalculatorFactory.show_supported_calculators() # Assertions - mock_print.assert_any_call(paragraph("Supported calculators")) - assert any("CrysFML library for crystallographic calculations" in call.args[0] for call in mock_print.call_args_list) - assert any("CrysPy library for crystallographic calculations" in call.args[0] for call in mock_print.call_args_list) + mock_print.assert_any_call(paragraph('Supported calculators')) + assert any('CrysFML library for crystallographic calculations' in call.args[0] for call in mock_print.call_args_list) + assert any('CrysPy library for crystallographic calculations' in call.args[0] for call in mock_print.call_args_list) def test_create_calculator(mock_calculators): @@ -67,11 +69,7 @@ def no_test_register_calculator(): class MockCalculator: engine_imported = True - CalculatorFactory.register_calculator( - 'mock_calculator', - MockCalculator, - description='Mock calculator for testing' - ) + CalculatorFactory.register_calculator('mock_calculator', MockCalculator, description='Mock calculator for testing') supported = CalculatorFactory._supported_calculators() diff --git a/tests/unit_tests/analysis/collections/test_joint_fit_experiment.py b/tests/unit_tests/analysis/collections/test_joint_fit_experiment.py index 47d57de1..bb6d9d02 100644 --- a/tests/unit_tests/analysis/collections/test_joint_fit_experiment.py +++ b/tests/unit_tests/analysis/collections/test_joint_fit_experiment.py @@ -5,18 +5,18 @@ def test_joint_fit_experiment_initialization(): # Test initialization of JointFitExperiment - expt = JointFitExperiment(id="exp1", weight=1.5) - assert expt.id.value == "exp1" - assert expt.id.name == "id" - assert expt.id.cif_name == "id" + expt = JointFitExperiment(id='exp1', weight=1.5) + assert expt.id.value == 'exp1' + assert expt.id.name == 'id' + assert expt.id.cif_name == 'id' assert expt.weight.value == 1.5 - assert expt.weight.name == "weight" - assert expt.weight.cif_name == "weight" + assert expt.weight.name == 'weight' + assert expt.weight.cif_name == 'weight' def test_joint_fit_experiment_properties(): # Test properties of JointFitExperiment - expt = JointFitExperiment(id="exp2", weight=2.0) - assert expt.cif_category_key == "joint_fit_experiment" - assert expt.category_key == "joint_fit_experiment" - assert expt._entry_id == "exp2" + expt = JointFitExperiment(id='exp2', weight=2.0) + assert expt.cif_category_key == 'joint_fit_experiment' + assert expt.category_key == 'joint_fit_experiment' + assert expt._entry_id == 'exp2' diff --git a/tests/unit_tests/analysis/minimizers/test_fitting_progress_tracker.py b/tests/unit_tests/analysis/minimizers/test_fitting_progress_tracker.py index e1ee8d2f..25afe741 100644 --- a/tests/unit_tests/analysis/minimizers/test_fitting_progress_tracker.py +++ b/tests/unit_tests/analysis/minimizers/test_fitting_progress_tracker.py @@ -9,15 +9,15 @@ def test_format_cell(): # Test center alignment - assert format_cell("test", width=10, align="center") == " test " + assert format_cell('test', width=10, align='center') == ' test ' # Test left alignment - assert format_cell("test", width=10, align="left") == "test " + assert format_cell('test', width=10, align='left') == 'test ' # Test right alignment - assert format_cell("test", width=10, align="right") == " test" + assert format_cell('test', width=10, align='right') == ' test' # Test default alignment (center) - assert format_cell("test", width=10) == " test " + assert format_cell('test', width=10) == ' test ' # Test invalid alignment - assert format_cell("test", width=10, align="invalid") == "test" + assert format_cell('test', width=10, align='invalid') == 'test' @pytest.fixture @@ -25,26 +25,26 @@ def tracker(): return FittingProgressTracker() -@patch("builtins.print") +@patch('builtins.print') def test_start_tracking(mock_print, tracker): - tracker.start_tracking("MockMinimizer") + tracker.start_tracking('MockMinimizer') # Assertions mock_print.assert_any_call("🚀 Starting fit process with 'MockMinimizer'...") - mock_print.assert_any_call("📈 Goodness-of-fit (reduced χ²) change:") + mock_print.assert_any_call('📈 Goodness-of-fit (reduced χ²) change:') assert mock_print.call_count > 2 # Ensure headers and borders are printed -@patch("builtins.print") +@patch('builtins.print') def test_add_tracking_info(mock_print, tracker): - tracker.add_tracking_info([1, "9.0", "10% ↓"]) + tracker.add_tracking_info([1, '9.0', '10% ↓']) # Assertions mock_print.assert_called_once() - assert "│ 1 │ 9.0 │ 10% ↓ │" in mock_print.call_args[0][0] + assert '│ 1 │ 9.0 │ 10% ↓ │' in mock_print.call_args[0][0] -@patch("builtins.print") +@patch('builtins.print') def test_finish_tracking(mock_print, tracker): tracker._last_iteration = 5 tracker._last_chi2 = 1.23 @@ -54,8 +54,8 @@ def test_finish_tracking(mock_print, tracker): tracker.finish_tracking() # Assertions - mock_print.assert_any_call("🏆 Best goodness-of-fit (reduced χ²) is 1.23 at iteration 5") - mock_print.assert_any_call("✅ Fitting complete.") + mock_print.assert_any_call('🏆 Best goodness-of-fit (reduced χ²) is 1.23 at iteration 5') + mock_print.assert_any_call('✅ Fitting complete.') def test_reset(tracker): @@ -68,16 +68,16 @@ def test_reset(tracker): assert tracker._previous_chi2 is None -@patch("easydiffraction.analysis.reliability_factors.calculate_reduced_chi_square", return_value=1.23) -@patch("builtins.print") +@patch('easydiffraction.analysis.reliability_factors.calculate_reduced_chi_square', return_value=1.23) +@patch('builtins.print') def test_track(mock_print, mock_calculate_chi2, tracker): residuals = np.array([1.1, 2.1, 3.1, 4.1, 5.1]) - parameters = [1., 2., 3.] + parameters = [1.0, 2.0, 3.0] tracker.track(residuals, parameters) # Assertions - #mock_calculate_chi2.assert_called_once_with(residuals, len(parameters)) + # mock_calculate_chi2.assert_called_once_with(residuals, len(parameters)) assert tracker._iteration == 1 assert tracker._previous_chi2 == 29.025 assert tracker._best_chi2 == 29.025 @@ -86,13 +86,13 @@ def test_track(mock_print, mock_calculate_chi2, tracker): def test_start_timer(tracker): - with patch("time.perf_counter", return_value=100.0): + with patch('time.perf_counter', return_value=100.0): tracker.start_timer() assert tracker._start_time == 100.0 def test_stop_timer(tracker): - with patch("time.perf_counter", side_effect=[100.0, 105.0]): + with patch('time.perf_counter', side_effect=[100.0, 105.0]): tracker.start_timer() tracker.stop_timer() assert tracker._fitting_time == 5.0 diff --git a/tests/unit_tests/analysis/minimizers/test_minimizer_base.py b/tests/unit_tests/analysis/minimizers/test_minimizer_base.py index c638b242..52f9b2b9 100644 --- a/tests/unit_tests/analysis/minimizers/test_minimizer_base.py +++ b/tests/unit_tests/analysis/minimizers/test_minimizer_base.py @@ -10,41 +10,41 @@ # Mock subclass of MinimizerBase to test its methods class MockMinimizer(MinimizerBase): def _prepare_solver_args(self, parameters): - return {"mock_arg": "mock_value"} + return {'mock_arg': 'mock_value'} def _run_solver(self, objective_function, **engine_parameters): - return {"success": True, "raw_result": "mock_result"} + return {'success': True, 'raw_result': 'mock_result'} def _sync_result_to_parameters(self, raw_result, parameters): for param in parameters: param.value = 1.0 # Mock synchronization def _check_success(self, raw_result): - return raw_result.get("success", False) + return raw_result.get('success', False) def _finalize_fit(self, parameters, raw_result): return FitResults( - success=raw_result.get("success", False), + success=raw_result.get('success', False), parameters=parameters, - chi_square=raw_result.get("chi_square", 0.0), - reduced_chi_square=raw_result.get("reduced_chi_square", 0.0), - message=raw_result.get("message", ""), - iterations=raw_result.get("iterations", 0), - engine_result=raw_result.get("raw_result", None), + chi_square=raw_result.get('chi_square', 0.0), + reduced_chi_square=raw_result.get('reduced_chi_square', 0.0), + message=raw_result.get('message', ''), + iterations=raw_result.get('iterations', 0), + engine_result=raw_result.get('raw_result', None), starting_parameters=[p.start_value for p in parameters], - fitting_time=raw_result.get("fitting_time", 0.0), + fitting_time=raw_result.get('fitting_time', 0.0), ) @pytest.fixture def mock_minimizer(): - return MockMinimizer(name="MockMinimizer", method="mock_method", max_iterations=100) + return MockMinimizer(name='MockMinimizer', method='mock_method', max_iterations=100) @pytest.fixture def mock_parameters(): - param1 = MagicMock(name="param1", value=None, start_value=0.5, uncertainty=None) - param2 = MagicMock(name="param2", value=None, start_value=1.0, uncertainty=None) + param1 = MagicMock(name='param1', value=None, start_value=0.5, uncertainty=None) + param2 = MagicMock(name='param2', value=None, start_value=1.0, uncertainty=None) return [param1, param2] @@ -55,16 +55,16 @@ def mock_objective_function(): def test_prepare_solver_args(mock_minimizer, mock_parameters): solver_args = mock_minimizer._prepare_solver_args(mock_parameters) - assert solver_args == {"mock_arg": "mock_value"} + assert solver_args == {'mock_arg': 'mock_value'} def test_run_solver(mock_minimizer, mock_objective_function): - raw_result = mock_minimizer._run_solver(mock_objective_function, mock_arg="mock_value") - assert raw_result == {"success": True, "raw_result": "mock_result"} + raw_result = mock_minimizer._run_solver(mock_objective_function, mock_arg='mock_value') + assert raw_result == {'success': True, 'raw_result': 'mock_result'} def test_sync_result_to_parameters(mock_minimizer, mock_parameters): - raw_result = {"success": True} + raw_result = {'success': True} mock_minimizer._sync_result_to_parameters(raw_result, mock_parameters) # Assertions @@ -73,15 +73,15 @@ def test_sync_result_to_parameters(mock_minimizer, mock_parameters): def test_check_success(mock_minimizer): - raw_result = {"success": True} + raw_result = {'success': True} assert mock_minimizer._check_success(raw_result) is True - raw_result = {"success": False} + raw_result = {'success': False} assert mock_minimizer._check_success(raw_result) is False def test_finalize_fit(mock_minimizer, mock_parameters): - raw_result = {"success": True} + raw_result = {'success': True} result = mock_minimizer._finalize_fit(mock_parameters, raw_result) # Assertions @@ -90,7 +90,7 @@ def test_finalize_fit(mock_minimizer, mock_parameters): assert result.parameters == mock_parameters -@patch("easydiffraction.analysis.minimizers.fitting_progress_tracker.FittingProgressTracker") +@patch('easydiffraction.analysis.minimizers.fitting_progress_tracker.FittingProgressTracker') def test_fit(mock_tracker, mock_minimizer, mock_parameters, mock_objective_function): mock_minimizer.tracker.finish_tracking = MagicMock() result = mock_minimizer.fit(mock_parameters, mock_objective_function) @@ -106,15 +106,11 @@ def test_create_objective_function(mock_minimizer): experiments = MagicMock() calculator = MagicMock() - objective_function = mock_minimizer._create_objective_function( - parameters, sample_models, experiments, calculator - ) + objective_function = mock_minimizer._create_objective_function(parameters, sample_models, experiments, calculator) # Assertions assert callable(objective_function) - with patch.object(mock_minimizer, "_objective_function", return_value=[1.0, 2.0, 3.0]) as mock_objective: - residuals = objective_function({"param1": 1.0}) - mock_objective.assert_called_once_with( - {"param1": 1.0}, parameters, sample_models, experiments, calculator - ) + with patch.object(mock_minimizer, '_objective_function', return_value=[1.0, 2.0, 3.0]) as mock_objective: + residuals = objective_function({'param1': 1.0}) + mock_objective.assert_called_once_with({'param1': 1.0}, parameters, sample_models, experiments, calculator) assert residuals == [1.0, 2.0, 3.0] diff --git a/tests/unit_tests/analysis/minimizers/test_minimizer_dfols.py b/tests/unit_tests/analysis/minimizers/test_minimizer_dfols.py index e141a5e7..db26f0bc 100644 --- a/tests/unit_tests/analysis/minimizers/test_minimizer_dfols.py +++ b/tests/unit_tests/analysis/minimizers/test_minimizer_dfols.py @@ -9,8 +9,8 @@ @pytest.fixture def mock_parameters(): - param1 = MagicMock(name="param1", value=1.0, min=0.0, max=2.0, uncertainty=None) - param2 = MagicMock(name="param2", value=2.0, min=1.0, max=3.0, uncertainty=None) + param1 = MagicMock(name='param1', value=1.0, min=0.0, max=2.0, uncertainty=None) + param2 = MagicMock(name='param2', value=2.0, min=1.0, max=3.0, uncertainty=None) return [param1, param2] @@ -21,7 +21,7 @@ def mock_objective_function(): @pytest.fixture def dfols_minimizer(): - return DfolsMinimizer(name="dfols", max_iterations=100) + return DfolsMinimizer(name='dfols', max_iterations=100) def test_prepare_solver_args(dfols_minimizer, mock_parameters): @@ -33,7 +33,7 @@ def test_prepare_solver_args(dfols_minimizer, mock_parameters): assert np.allclose(solver_args['bounds'][1], [2.0, 3.0]) # Upper bounds -@patch("easydiffraction.analysis.minimizers.minimizer_dfols.solve") +@patch('easydiffraction.analysis.minimizers.minimizer_dfols.solve') def test_run_solver(mock_solve, dfols_minimizer, mock_objective_function): mock_solve.return_value = MagicMock(x=np.array([1.5, 2.5]), flag=0) @@ -42,10 +42,7 @@ def test_run_solver(mock_solve, dfols_minimizer, mock_objective_function): # Assertions mock_solve.assert_called_once_with( - mock_objective_function, - x0=solver_args['x0'], - bounds=solver_args['bounds'], - maxfun=dfols_minimizer.max_iterations + mock_objective_function, x0=solver_args['x0'], bounds=solver_args['bounds'], maxfun=dfols_minimizer.max_iterations ) assert np.allclose(raw_result.x, [1.5, 2.5]) @@ -70,7 +67,7 @@ def test_check_success(dfols_minimizer): assert dfols_minimizer._check_success(raw_result) is False -@patch("easydiffraction.analysis.minimizers.minimizer_dfols.solve") +@patch('easydiffraction.analysis.minimizers.minimizer_dfols.solve') def test_fit(mock_solve, dfols_minimizer, mock_parameters, mock_objective_function): mock_solve.return_value = MagicMock(x=np.array([1.5, 2.5]), flag=0) dfols_minimizer.tracker.finish_tracking = MagicMock() diff --git a/tests/unit_tests/analysis/minimizers/test_minimizer_factory.py b/tests/unit_tests/analysis/minimizers/test_minimizer_factory.py index 3ed5518e..a0d5caed 100644 --- a/tests/unit_tests/analysis/minimizers/test_minimizer_factory.py +++ b/tests/unit_tests/analysis/minimizers/test_minimizer_factory.py @@ -16,16 +16,19 @@ def test_list_available_minimizers(): assert 'dfols' in minimizers -@patch("builtins.print") +@patch('builtins.print') def test_show_available_minimizers(mock_print): MinimizerFactory.show_available_minimizers() # Assertions - #mock_print.assert_any_call("Available minimizers") - assert any("LMFIT library using the default Levenberg-Marquardt least squares method" in call.args[0] - for call in mock_print.call_args_list) - assert any("DFO-LS library for derivative-free least-squares optimization" in call.args[0] - for call in mock_print.call_args_list) + # mock_print.assert_any_call("Available minimizers") + assert any( + 'LMFIT library using the default Levenberg-Marquardt least squares method' in call.args[0] + for call in mock_print.call_args_list + ) + assert any( + 'DFO-LS library for derivative-free least-squares optimization' in call.args[0] for call in mock_print.call_args_list + ) def test_create_minimizer(): @@ -50,10 +53,7 @@ def __init__(self, method=None): self.method = method MinimizerFactory.register_minimizer( - name='mock_minimizer', - minimizer_cls=MockMinimizer, - method='mock_method', - description='Mock minimizer for testing' + name='mock_minimizer', minimizer_cls=MockMinimizer, method='mock_method', description='Mock minimizer for testing' ) # Assertions diff --git a/tests/unit_tests/analysis/minimizers/test_minimizer_lmfit.py b/tests/unit_tests/analysis/minimizers/test_minimizer_lmfit.py index 3abf3563..5a0e5938 100644 --- a/tests/unit_tests/analysis/minimizers/test_minimizer_lmfit.py +++ b/tests/unit_tests/analysis/minimizers/test_minimizer_lmfit.py @@ -10,8 +10,8 @@ @pytest.fixture def mock_parameters(): - param1 = Parameter(name="param1", cif_name='param1', value=1.0, free=True, min_value=0.0, max_value=2.0, uncertainty=None) - param2 = Parameter(name="param2", cif_name='param2', value=2.0, free=False, min_value=1.0, max_value=3.0, uncertainty=None) + param1 = Parameter(name='param1', cif_name='param1', value=1.0, free=True, min_value=0.0, max_value=2.0, uncertainty=None) + param2 = Parameter(name='param2', cif_name='param2', value=2.0, free=False, min_value=1.0, max_value=3.0, uncertainty=None) return [param1, param2] @@ -22,7 +22,7 @@ def mock_objective_function(): @pytest.fixture def lmfit_minimizer(): - return LmfitMinimizer(name="lmfit", method="leastsq", max_iterations=100) + return LmfitMinimizer(name='lmfit', method='leastsq', max_iterations=100) def test_prepare_solver_args(lmfit_minimizer, mock_parameters): @@ -40,9 +40,9 @@ def test_prepare_solver_args(lmfit_minimizer, mock_parameters): assert solver_args['engine_parameters']['None__param2'].vary is False -@patch("easydiffraction.analysis.minimizers.minimizer_lmfit.lmfit.minimize") +@patch('easydiffraction.analysis.minimizers.minimizer_lmfit.lmfit.minimize') def test_run_solver(mock_minimize, lmfit_minimizer, mock_objective_function, mock_parameters): - mock_minimize.return_value = MagicMock(params={"param1": MagicMock(value=1.5), "param2": MagicMock(value=2.5)}) + mock_minimize.return_value = MagicMock(params={'param1': MagicMock(value=1.5), 'param2': MagicMock(value=2.5)}) solver_args = lmfit_minimizer._prepare_solver_args(mock_parameters) raw_result = lmfit_minimizer._run_solver(mock_objective_function, **solver_args) @@ -51,19 +51,18 @@ def test_run_solver(mock_minimize, lmfit_minimizer, mock_objective_function, moc mock_minimize.assert_called_once_with( mock_objective_function, params=solver_args['engine_parameters'], - method="leastsq", + method='leastsq', nan_policy='propagate', - max_nfev=lmfit_minimizer.max_iterations + max_nfev=lmfit_minimizer.max_iterations, ) - assert raw_result.params["param1"].value == 1.5 - assert raw_result.params["param2"].value == 2.5 + assert raw_result.params['param1'].value == 1.5 + assert raw_result.params['param2'].value == 2.5 def test_sync_result_to_parameters(lmfit_minimizer, mock_parameters): - raw_result = MagicMock(params={ - "None__param1": MagicMock(value=1.5, stderr=0.1), - "None__param2": MagicMock(value=2.5, stderr=0.2) - }) + raw_result = MagicMock( + params={'None__param1': MagicMock(value=1.5, stderr=0.1), 'None__param2': MagicMock(value=2.5, stderr=0.2)} + ) lmfit_minimizer._sync_result_to_parameters(mock_parameters, raw_result) @@ -82,12 +81,11 @@ def test_check_success(lmfit_minimizer): assert lmfit_minimizer._check_success(raw_result) is False -@patch("easydiffraction.analysis.minimizers.minimizer_lmfit.lmfit.minimize") +@patch('easydiffraction.analysis.minimizers.minimizer_lmfit.lmfit.minimize') def test_fit(mock_minimize, lmfit_minimizer, mock_parameters, mock_objective_function): mock_minimize.return_value = MagicMock( - params={"None__param1": MagicMock(value=1.5, stderr=0.1), - "None__param2": MagicMock(value=2.5, stderr=0.2)}, - success=True + params={'None__param1': MagicMock(value=1.5, stderr=0.1), 'None__param2': MagicMock(value=2.5, stderr=0.2)}, + success=True, ) lmfit_minimizer.tracker.finish_tracking = MagicMock() result = lmfit_minimizer.fit(mock_parameters, mock_objective_function) diff --git a/tests/unit_tests/analysis/test_analysis.py b/tests/unit_tests/analysis/test_analysis.py index 6696c50a..245a57b0 100644 --- a/tests/unit_tests/analysis/test_analysis.py +++ b/tests/unit_tests/analysis/test_analysis.py @@ -10,17 +10,39 @@ def mock_project(): project = MagicMock() project.sample_models.get_all_params.return_value = [ - MagicMock(datablock_id="block1", category_key="cat1", collection_entry_id="entry1", name="param1", value=1.0, units="unit1", free=True, min=0.0, max=2.0, uncertainty=0.1) + MagicMock( + datablock_id='block1', + category_key='cat1', + collection_entry_id='entry1', + name='param1', + value=1.0, + units='unit1', + free=True, + min=0.0, + max=2.0, + uncertainty=0.1, + ) ] project.experiments.get_all_params.return_value = [ - MagicMock(datablock_id="block2", category_key="cat2", collection_entry_id="entry2", name="param2", value=2.0, units="unit2", free=False, min=1.0, max=3.0, uncertainty=0.2) + MagicMock( + datablock_id='block2', + category_key='cat2', + collection_entry_id='entry2', + name='param2', + value=2.0, + units='unit2', + free=False, + min=1.0, + max=3.0, + uncertainty=0.2, + ) ] project.sample_models.get_fittable_params.return_value = project.sample_models.get_all_params() project.experiments.get_fittable_params.return_value = project.experiments.get_all_params() project.sample_models.get_free_params.return_value = project.sample_models.get_all_params() project.experiments.get_free_params.return_value = project.experiments.get_all_params() - project.experiments.ids = ["experiment1", "experiment2"] - project._varname = "project" + project.experiments.ids = ['experiment1', 'experiment2'] + project._varname = 'project' return project @@ -29,24 +51,24 @@ def analysis(mock_project): return Analysis(project=mock_project) -#@patch("builtins.print") -#def test_show_all_params(mock_print, analysis): +# @patch("builtins.print") +# def test_show_all_params(mock_print, analysis): # analysis._show_params = MagicMock() # analysis.show_all_params() # # # Assertions # assert('parameters for all experiments' in mock_print.call_args[0][0]) # -#@patch("builtins.print") -#def test_show_fittable_params(mock_print, analysis): +# @patch("builtins.print") +# def test_show_fittable_params(mock_print, analysis): # analysis._show_params = MagicMock() # analysis.show_fittable_params() # # # Assertions # assert('Fittable parameters for all experiments' in mock_print.call_args[0][0]) # -#@patch("builtins.print") -#def test_show_free_params(mock_print, analysis): +# @patch("builtins.print") +# def test_show_free_params(mock_print, analysis): # analysis._show_params = MagicMock() # analysis.show_free_params() # @@ -55,77 +77,77 @@ def analysis(mock_project): # # mock_print.assert_any_call("Free parameters for both sample models (🧩 data blocks) and experiments (🔬 data blocks)") -@patch("builtins.print") +@patch('builtins.print') def test_show_current_calculator(mock_print, analysis): analysis.show_current_calculator() # Assertions # mock_print.assert_any_call("Current calculator") - mock_print.assert_any_call("cryspy") + mock_print.assert_any_call('cryspy') -@patch("builtins.print") +@patch('builtins.print') def test_show_current_minimizer(mock_print, analysis): analysis.show_current_minimizer() # Assertions # mock_print.assert_any_call("Current minimizer") - mock_print.assert_any_call("lmfit (leastsq)") + mock_print.assert_any_call('lmfit (leastsq)') -@patch("easydiffraction.analysis.calculators.calculator_factory.CalculatorFactory.create_calculator") -@patch("builtins.print") +@patch('easydiffraction.analysis.calculators.calculator_factory.CalculatorFactory.create_calculator') +@patch('builtins.print') def test_current_calculator_setter(mock_print, mock_create_calculator, analysis): mock_create_calculator.return_value = MagicMock() - analysis.current_calculator = "pdffit2" + analysis.current_calculator = 'pdffit2' # Assertions - mock_create_calculator.assert_called_once_with("pdffit2") + mock_create_calculator.assert_called_once_with('pdffit2') -@patch("easydiffraction.analysis.minimizers.minimizer_factory.MinimizerFactory.create_minimizer") -@patch("builtins.print") +@patch('easydiffraction.analysis.minimizers.minimizer_factory.MinimizerFactory.create_minimizer') +@patch('builtins.print') def test_current_minimizer_setter(mock_print, mock_create_minimizer, analysis): mock_create_minimizer.return_value = MagicMock() - analysis.current_minimizer = "dfols" + analysis.current_minimizer = 'dfols' # Assertions - mock_print.assert_any_call("dfols") + mock_print.assert_any_call('dfols') -@patch("builtins.print") +@patch('builtins.print') def test_fit_mode_setter(mock_print, analysis): - analysis.fit_mode = "joint" + analysis.fit_mode = 'joint' # Assertions - assert analysis.fit_mode == "joint" - mock_print.assert_any_call("joint") + assert analysis.fit_mode == 'joint' + mock_print.assert_any_call('joint') -@patch("easydiffraction.analysis.minimization.DiffractionMinimizer.fit") -@patch("builtins.print") +@patch('easydiffraction.analysis.minimization.DiffractionMinimizer.fit') +@patch('builtins.print') def no_test_fit_single_mode(mock_print, mock_fit, analysis, mock_project): - analysis.fit_mode = "single" + analysis.fit_mode = 'single' analysis.fit() # Assertions mock_fit.assert_called() - mock_print.assert_any_call("single") + mock_print.assert_any_call('single') -@patch("easydiffraction.analysis.minimization.DiffractionMinimizer.fit") -@patch("builtins.print") +@patch('easydiffraction.analysis.minimization.DiffractionMinimizer.fit') +@patch('builtins.print') def test_fit_joint_mode(mock_print, mock_fit, analysis, mock_project): - analysis.fit_mode = "joint" + analysis.fit_mode = 'joint' analysis.fit() # Assertions mock_fit.assert_called_once() -@patch("builtins.print") +@patch('builtins.print') def test_as_cif(mock_print, analysis): cif_text = analysis.as_cif() @@ -133,4 +155,3 @@ def test_as_cif(mock_print, analysis): assert '_analysis.calculator_engine cryspy' in cif_text assert '_analysis.fitting_engine "lmfit (leastsq)"' in cif_text assert '_analysis.fit_mode single' in cif_text - diff --git a/tests/unit_tests/analysis/test_minimization.py b/tests/unit_tests/analysis/test_minimization.py index 3bd17ac3..9fe3ac51 100644 --- a/tests/unit_tests/analysis/test_minimization.py +++ b/tests/unit_tests/analysis/test_minimization.py @@ -11,8 +11,8 @@ def mock_sample_models(): sample_models = MagicMock() sample_models.get_free_params.return_value = [ - MagicMock(name="param1", value=1.0, start_value=None, min=0.0, max=2.0, free=True), - MagicMock(name="param2", value=2.0, start_value=None, min=1.0, max=3.0, free=True), + MagicMock(name='param1', value=1.0, start_value=None, min=0.0, max=2.0, free=True), + MagicMock(name='param2', value=2.0, start_value=None, min=1.0, max=3.0, free=True), ] return sample_models @@ -21,15 +21,17 @@ def mock_sample_models(): def mock_experiments(): experiments = MagicMock() experiments.get_free_params.return_value = [ - MagicMock(name="param3", value=3.0, start_value=None, min=2.0, max=4.0, free=True), + MagicMock(name='param3', value=3.0, start_value=None, min=2.0, max=4.0, free=True), ] - experiments.ids = ["experiment1"] + experiments.ids = ['experiment1'] experiments._items = { - "experiment1": MagicMock( + 'experiment1': MagicMock( datastore=MagicMock( - pattern=MagicMock(meas=np.array([10.0, 20.0, 30.0]), - meas_su=np.array([1.0, 1.0, 1.0]), - excluded=np.array([False, False, False])) + pattern=MagicMock( + meas=np.array([10.0, 20.0, 30.0]), + meas_su=np.array([1.0, 1.0, 1.0]), + excluded=np.array([False, False, False]), + ) ) ) } @@ -54,8 +56,10 @@ def mock_minimizer(): @pytest.fixture def diffraction_minimizer(mock_minimizer): - with patch("easydiffraction.analysis.minimizers.minimizer_factory.MinimizerFactory.create_minimizer", return_value=mock_minimizer): - return DiffractionMinimizer(selection="lmfit (leastsq)") + with patch( + 'easydiffraction.analysis.minimizers.minimizer_factory.MinimizerFactory.create_minimizer', return_value=mock_minimizer + ): + return DiffractionMinimizer(selection='lmfit (leastsq)') def test_fit_no_params(diffraction_minimizer, mock_sample_models, mock_experiments, mock_calculator): @@ -97,8 +101,13 @@ def test_residual_function(diffraction_minimizer, mock_sample_models, mock_exper assert diffraction_minimizer.minimizer._sync_result_to_parameters.called -@patch("easydiffraction.analysis.reliability_factors.get_reliability_inputs", return_value=(np.array([10.0]), np.array([9.0]), np.array([1.0]))) -def test_process_fit_results(mock_get_reliability_inputs, diffraction_minimizer, mock_sample_models, mock_experiments, mock_calculator): +@patch( + 'easydiffraction.analysis.reliability_factors.get_reliability_inputs', + return_value=(np.array([10.0]), np.array([9.0]), np.array([1.0])), +) +def test_process_fit_results( + mock_get_reliability_inputs, diffraction_minimizer, mock_sample_models, mock_experiments, mock_calculator +): diffraction_minimizer.results = MagicMock() diffraction_minimizer._process_fit_results(mock_sample_models, mock_experiments, mock_calculator) @@ -109,10 +118,10 @@ def test_process_fit_results(mock_get_reliability_inputs, diffraction_minimizer, _, kwargs = diffraction_minimizer.results.display_results.call_args # Assertions for arrays - np.testing.assert_array_equal(kwargs['y_calc'], np.array([9., 19., 29.])) - np.testing.assert_array_equal(kwargs['y_err'], np.array([1., 1., 1.])) - np.testing.assert_array_equal(kwargs['y_obs'], np.array([10., 20., 30.])) + np.testing.assert_array_equal(kwargs['y_calc'], np.array([9.0, 19.0, 29.0])) + np.testing.assert_array_equal(kwargs['y_err'], np.array([1.0, 1.0, 1.0])) + np.testing.assert_array_equal(kwargs['y_obs'], np.array([10.0, 20.0, 30.0])) # Assertions for other arguments - assert kwargs["f_obs"] is None - assert kwargs["f_calc"] is None + assert kwargs['f_obs'] is None + assert kwargs['f_calc'] is None diff --git a/tests/unit_tests/analysis/test_reliability_factors.py b/tests/unit_tests/analysis/test_reliability_factors.py index bd47726c..a352f1e8 100644 --- a/tests/unit_tests/analysis/test_reliability_factors.py +++ b/tests/unit_tests/analysis/test_reliability_factors.py @@ -88,12 +88,12 @@ def test_get_reliability_inputs(): calculator = Mock() experiments._items = { - "experiment1": Mock( + 'experiment1': Mock( datastore=Mock( pattern=Mock( meas=np.array([10.0, 20.0, 30.0]), meas_su=np.array([1.0, 1.0, 1.0]), - excluded=np.array([False, False, False]) + excluded=np.array([False, False, False]), ) ) ) diff --git a/tests/unit_tests/core/test_objects.py b/tests/unit_tests/core/test_objects.py index c8756683..7873e85b 100644 --- a/tests/unit_tests/core/test_objects.py +++ b/tests/unit_tests/core/test_objects.py @@ -8,19 +8,19 @@ def test_descriptor_initialization(): - desc = Descriptor(value=10, name="test", cif_name="test_cif", editable=True) + desc = Descriptor(value=10, name='test', cif_name='test_cif', editable=True) assert desc.value == 10 - assert desc.name == "test" - assert desc.cif_name == "test_cif" + assert desc.name == 'test' + assert desc.cif_name == 'test_cif' assert desc.editable is True def test_descriptor_value_setter(): - desc = Descriptor(value=10, name="test", cif_name="test_cif", editable=True) + desc = Descriptor(value=10, name='test', cif_name='test_cif', editable=True) desc.value = 20 assert desc.value == 20 - desc_non_editable = Descriptor(value=10, name="test", cif_name="test_cif", editable=False) + desc_non_editable = Descriptor(value=10, name='test', cif_name='test_cif', editable=False) desc_non_editable.value = 30 assert desc_non_editable.value == 10 # Value should not change @@ -28,8 +28,8 @@ def test_descriptor_value_setter(): def test_parameter_initialization(): param = Parameter( value=5.0, - name="param", - cif_name="param_cif", + name='param', + cif_name='param_cif', uncertainty=0.1, free=True, constrained=False, @@ -48,27 +48,29 @@ def test_component_abstract_methods(): class TestComponent(Component): @property def category_key(self): - return "test_category" + return 'test_category' + @property def cif_category_key(self): - return "test_cif_category" + return 'test_cif_category' comp = TestComponent() - assert comp.category_key == "test_category" - assert comp.cif_category_key == "test_cif_category" + assert comp.category_key == 'test_category' + assert comp.cif_category_key == 'test_cif_category' def test_component_attribute_handling(): class TestComponent(Component): @property def category_key(self): - return "test_category" + return 'test_category' + @property def cif_category_key(self): - return "test_cif_category" + return 'test_cif_category' comp = TestComponent() - desc = Descriptor(value=10, name="test", cif_name="test_cif") + desc = Descriptor(value=10, name='test', cif_name='test_cif') comp.test_attr = desc assert comp.test_attr.value == 10 # Access Descriptor value directly @@ -81,11 +83,11 @@ def _child_class(self): collection = TestCollection() - collection._items["item1"] = "value1" - collection._items["item2"] = "value2" + collection._items['item1'] = 'value1' + collection._items['item2'] = 'value2' - assert collection["item1"] == "value1" - assert collection["item2"] == "value2" + assert collection['item1'] == 'value1' + assert collection['item2'] == 'value2' def test_collection_iteration(): @@ -96,21 +98,22 @@ def _child_class(self): collection = TestCollection() - collection._items["item1"] = "value1" - collection._items["item2"] = "value2" + collection._items['item1'] = 'value1' + collection._items['item2'] = 'value2' items = list(collection) - assert items == ["value1", "value2"] + assert items == ['value1', 'value2'] def test_datablock_components(): class TestComponent(Component): @property def category_key(self): - return "test_category" + return 'test_category' + @property def cif_category_key(self): - return "test_cif_category" + return 'test_cif_category' class TestDatablock(Datablock): def __init__(self): diff --git a/tests/unit_tests/core/test_singletons.py b/tests/unit_tests/core/test_singletons.py index f6fed329..f7f22212 100644 --- a/tests/unit_tests/core/test_singletons.py +++ b/tests/unit_tests/core/test_singletons.py @@ -10,12 +10,8 @@ @pytest.fixture def params(): - param1 = Parameter(value=1.0, - name='param1', - cif_name='param1_cif') - param2 = Parameter(value=2.0, - name='param2', - cif_name='param2_cif') + param1 = Parameter(value=1.0, name='param1', cif_name='param1_cif') + param2 = Parameter(value=2.0, name='param2', cif_name='param2_cif') return param1, param2 @@ -24,10 +20,8 @@ def mock_aliases(params): param1, param2 = params mock = MagicMock() mock._items = { - 'alias1': MagicMock(label=MagicMock(value='alias1'), - param_uid=MagicMock(value=param1.uid)), - 'alias2': MagicMock(label=MagicMock(value='alias2'), - param_uid=MagicMock(value=param2.uid)), + 'alias1': MagicMock(label=MagicMock(value='alias1'), param_uid=MagicMock(value=param1.uid)), + 'alias2': MagicMock(label=MagicMock(value='alias2'), param_uid=MagicMock(value=param2.uid)), } return mock @@ -36,10 +30,8 @@ def mock_aliases(params): def mock_constraints(): mock = MagicMock() mock._items = { - 'expr1': MagicMock(lhs_alias=MagicMock(value='alias1'), - rhs_expr=MagicMock(value='alias2 + 1')), - 'expr2': MagicMock(lhs_alias=MagicMock(value='alias2'), - rhs_expr=MagicMock(value='alias1 * 2')), + 'expr1': MagicMock(lhs_alias=MagicMock(value='alias1'), rhs_expr=MagicMock(value='alias2 + 1')), + 'expr2': MagicMock(lhs_alias=MagicMock(value='alias2'), rhs_expr=MagicMock(value='alias1 * 2')), } return mock diff --git a/tests/unit_tests/experiments/collections/test_background.py b/tests/unit_tests/experiments/collections/test_background.py index 6d0ad1b1..0e6fc527 100644 --- a/tests/unit_tests/experiments/collections/test_background.py +++ b/tests/unit_tests/experiments/collections/test_background.py @@ -14,18 +14,18 @@ def test_point_initialization(): point = Point(x=1.0, y=2.0) assert point.x.value == 1.0 assert point.y.value == 2.0 - assert point.cif_category_key == "pd_background" - assert point.category_key == "background" - assert point._entry_id == "1.0" + assert point.cif_category_key == 'pd_background' + assert point.category_key == 'background' + assert point._entry_id == '1.0' def test_polynomial_term_initialization(): term = PolynomialTerm(order=2, coef=3.0) assert term.order.value == 2 assert term.coef.value == 3.0 - assert term.cif_category_key == "pd_background" - assert term.category_key == "background" - assert term._entry_id == "2" + assert term.cif_category_key == 'pd_background' + assert term.category_key == 'background' + assert term._entry_id == '2' def test_line_segment_background_add_and_calculate(): @@ -43,10 +43,11 @@ def test_line_segment_background_calculate_no_points(): background = LineSegmentBackground() x_data = np.array([1.0, 2.0, 3.0]) - with patch("builtins.print") as mock_print: + with patch('builtins.print') as mock_print: y_data = background.calculate(x_data) assert np.array_equal(y_data, np.zeros_like(x_data)) - assert("No background points found. Setting background to zero." in str(mock_print.call_args.args[0])) + assert 'No background points found. Setting background to zero.' in str(mock_print.call_args.args[0]) + def test_line_segment_background_show(capsys): background = LineSegmentBackground() @@ -55,7 +56,8 @@ def test_line_segment_background_show(capsys): background.show() captured = capsys.readouterr() - assert "Line-segment background points" in captured.out + assert 'Line-segment background points' in captured.out + def test_chebyshev_polynomial_background_add_and_calculate(): background = ChebyshevPolynomialBackground() @@ -75,10 +77,11 @@ def test_chebyshev_polynomial_background_calculate_no_terms(): background = ChebyshevPolynomialBackground() x_data = np.array([0.0, 0.5, 1.0]) - with patch("builtins.print") as mock_print: + with patch('builtins.print') as mock_print: y_data = background.calculate(x_data) assert np.array_equal(y_data, np.zeros_like(x_data)) - assert("No background points found. Setting background to zero." in str(mock_print.call_args.args[0])) + assert 'No background points found. Setting background to zero.' in str(mock_print.call_args.args[0]) + def test_chebyshev_polynomial_background_show(capsys): background = ChebyshevPolynomialBackground() @@ -87,16 +90,17 @@ def test_chebyshev_polynomial_background_show(capsys): background.show() captured = capsys.readouterr() - assert "Chebyshev polynomial background terms" in captured.out + assert 'Chebyshev polynomial background terms' in captured.out + def test_background_factory_create_supported_types(): - line_segment_background = BackgroundFactory.create("line-segment") + line_segment_background = BackgroundFactory.create('line-segment') assert isinstance(line_segment_background, LineSegmentBackground) - chebyshev_background = BackgroundFactory.create("chebyshev polynomial") + chebyshev_background = BackgroundFactory.create('chebyshev polynomial') assert isinstance(chebyshev_background, ChebyshevPolynomialBackground) def test_background_factory_create_unsupported_type(): with pytest.raises(ValueError, match="Unsupported background type: 'unsupported'.*"): - BackgroundFactory.create("unsupported") + BackgroundFactory.create('unsupported') diff --git a/tests/unit_tests/experiments/collections/test_datastore.py b/tests/unit_tests/experiments/collections/test_datastore.py index c18dbb12..97d0e6d0 100644 --- a/tests/unit_tests/experiments/collections/test_datastore.py +++ b/tests/unit_tests/experiments/collections/test_datastore.py @@ -41,34 +41,34 @@ def test_powder_pattern_initialization(): def test_datastore_initialization_powder(): mock_experiment = MagicMock() - datastore = Datastore(sample_form="powder", experiment=mock_experiment) + datastore = Datastore(sample_form='powder', experiment=mock_experiment) - assert datastore.sample_form == "powder" + assert datastore.sample_form == 'powder' assert isinstance(datastore.pattern, PowderPattern) def test_datastore_initialization_single_crystal(): mock_experiment = MagicMock() - datastore = Datastore(sample_form="single_crystal", experiment=mock_experiment) + datastore = Datastore(sample_form='single_crystal', experiment=mock_experiment) - assert datastore.sample_form == "single_crystal" + assert datastore.sample_form == 'single_crystal' assert isinstance(datastore.pattern, Pattern) def test_datastore_initialization_invalid_sample_form(): mock_experiment = MagicMock() with pytest.raises(ValueError, match="Unknown sample form 'invalid'"): - Datastore(sample_form="invalid", experiment=mock_experiment) + Datastore(sample_form='invalid', experiment=mock_experiment) def test_datastore_load_measured_data_valid(): mock_experiment = MagicMock() - mock_experiment.name = "TestExperiment" - datastore = Datastore(sample_form="powder", experiment=mock_experiment) + mock_experiment.name = 'TestExperiment' + datastore = Datastore(sample_form='powder', experiment=mock_experiment) mock_data = np.array([[1.0, 2.0, 0.1], [2.0, 3.0, 0.2]]) - with patch("numpy.loadtxt", return_value=mock_data): - datastore.load_measured_data("mock_path") + with patch('numpy.loadtxt', return_value=mock_data): + datastore.load_measured_data('mock_path') assert np.array_equal(datastore.pattern.x, mock_data[:, 0]) assert np.array_equal(datastore.pattern.meas, mock_data[:, 1]) @@ -77,12 +77,12 @@ def test_datastore_load_measured_data_valid(): def test_datastore_load_measured_data_no_uncertainty(): mock_experiment = MagicMock() - mock_experiment.name = "TestExperiment" - datastore = Datastore(sample_form="powder", experiment=mock_experiment) + mock_experiment.name = 'TestExperiment' + datastore = Datastore(sample_form='powder', experiment=mock_experiment) mock_data = np.array([[1.0, 2.0], [2.0, 3.0]]) - with patch("numpy.loadtxt", return_value=mock_data): - datastore.load_measured_data("mock_path") + with patch('numpy.loadtxt', return_value=mock_data): + datastore.load_measured_data('mock_path') assert np.array_equal(datastore.pattern.x, mock_data[:, 0]) assert np.array_equal(datastore.pattern.meas, mock_data[:, 1]) @@ -91,15 +91,15 @@ def test_datastore_load_measured_data_no_uncertainty(): def test_datastore_load_measured_data_invalid_file(): mock_experiment = MagicMock() - datastore = Datastore(sample_form="powder", experiment=mock_experiment) + datastore = Datastore(sample_form='powder', experiment=mock_experiment) - with patch("numpy.loadtxt", side_effect=Exception("File not found")): - datastore.load_measured_data("invalid_path") + with patch('numpy.loadtxt', side_effect=Exception('File not found')): + datastore.load_measured_data('invalid_path') def test_datastore_show_measured_data(capsys): mock_experiment = MagicMock() - datastore = Datastore(sample_form="powder", experiment=mock_experiment) + datastore = Datastore(sample_form='powder', experiment=mock_experiment) datastore.pattern.x = [1.0, 2.0, 3.0] datastore.pattern.meas = [10.0, 20.0, 30.0] @@ -108,44 +108,44 @@ def test_datastore_show_measured_data(capsys): datastore.show_measured_data() captured = capsys.readouterr() - assert "Measured data (powder):" in captured.out - assert "x: [1.0, 2.0, 3.0]" in captured.out - assert "meas: [10.0, 20.0, 30.0]" in captured.out - assert "meas_su: [0.1, 0.2, 0.3]" in captured.out + assert 'Measured data (powder):' in captured.out + assert 'x: [1.0, 2.0, 3.0]' in captured.out + assert 'meas: [10.0, 20.0, 30.0]' in captured.out + assert 'meas_su: [0.1, 0.2, 0.3]' in captured.out def test_datastore_show_calculated_data(capsys): mock_experiment = MagicMock() - datastore = Datastore(sample_form="powder", experiment=mock_experiment) + datastore = Datastore(sample_form='powder', experiment=mock_experiment) datastore.pattern.calc = [100.0, 200.0, 300.0] datastore.show_calculated_data() captured = capsys.readouterr() - assert "Calculated data (powder):" in captured.out - assert "calc: [100.0, 200.0, 300.0]" in captured.out + assert 'Calculated data (powder):' in captured.out + assert 'calc: [100.0, 200.0, 300.0]' in captured.out def test_datastore_factory_create_powder(): mock_experiment = MagicMock() - datastore = DatastoreFactory.create(sample_form="powder", experiment=mock_experiment) + datastore = DatastoreFactory.create(sample_form='powder', experiment=mock_experiment) assert isinstance(datastore, Datastore) - assert datastore.sample_form == "powder" + assert datastore.sample_form == 'powder' assert isinstance(datastore.pattern, PowderPattern) def test_datastore_factory_create_single_crystal(): mock_experiment = MagicMock() - datastore = DatastoreFactory.create(sample_form="single_crystal", experiment=mock_experiment) + datastore = DatastoreFactory.create(sample_form='single_crystal', experiment=mock_experiment) assert isinstance(datastore, Datastore) - assert datastore.sample_form == "single_crystal" + assert datastore.sample_form == 'single_crystal' assert isinstance(datastore.pattern, Pattern) def test_datastore_factory_create_invalid_sample_form(): mock_experiment = MagicMock() with pytest.raises(ValueError, match="Unknown sample form 'invalid'"): - DatastoreFactory.create(sample_form="invalid", experiment=mock_experiment) + DatastoreFactory.create(sample_form='invalid', experiment=mock_experiment) diff --git a/tests/unit_tests/experiments/collections/test_linked_phases.py b/tests/unit_tests/experiments/collections/test_linked_phases.py index c18dbb12..97d0e6d0 100644 --- a/tests/unit_tests/experiments/collections/test_linked_phases.py +++ b/tests/unit_tests/experiments/collections/test_linked_phases.py @@ -41,34 +41,34 @@ def test_powder_pattern_initialization(): def test_datastore_initialization_powder(): mock_experiment = MagicMock() - datastore = Datastore(sample_form="powder", experiment=mock_experiment) + datastore = Datastore(sample_form='powder', experiment=mock_experiment) - assert datastore.sample_form == "powder" + assert datastore.sample_form == 'powder' assert isinstance(datastore.pattern, PowderPattern) def test_datastore_initialization_single_crystal(): mock_experiment = MagicMock() - datastore = Datastore(sample_form="single_crystal", experiment=mock_experiment) + datastore = Datastore(sample_form='single_crystal', experiment=mock_experiment) - assert datastore.sample_form == "single_crystal" + assert datastore.sample_form == 'single_crystal' assert isinstance(datastore.pattern, Pattern) def test_datastore_initialization_invalid_sample_form(): mock_experiment = MagicMock() with pytest.raises(ValueError, match="Unknown sample form 'invalid'"): - Datastore(sample_form="invalid", experiment=mock_experiment) + Datastore(sample_form='invalid', experiment=mock_experiment) def test_datastore_load_measured_data_valid(): mock_experiment = MagicMock() - mock_experiment.name = "TestExperiment" - datastore = Datastore(sample_form="powder", experiment=mock_experiment) + mock_experiment.name = 'TestExperiment' + datastore = Datastore(sample_form='powder', experiment=mock_experiment) mock_data = np.array([[1.0, 2.0, 0.1], [2.0, 3.0, 0.2]]) - with patch("numpy.loadtxt", return_value=mock_data): - datastore.load_measured_data("mock_path") + with patch('numpy.loadtxt', return_value=mock_data): + datastore.load_measured_data('mock_path') assert np.array_equal(datastore.pattern.x, mock_data[:, 0]) assert np.array_equal(datastore.pattern.meas, mock_data[:, 1]) @@ -77,12 +77,12 @@ def test_datastore_load_measured_data_valid(): def test_datastore_load_measured_data_no_uncertainty(): mock_experiment = MagicMock() - mock_experiment.name = "TestExperiment" - datastore = Datastore(sample_form="powder", experiment=mock_experiment) + mock_experiment.name = 'TestExperiment' + datastore = Datastore(sample_form='powder', experiment=mock_experiment) mock_data = np.array([[1.0, 2.0], [2.0, 3.0]]) - with patch("numpy.loadtxt", return_value=mock_data): - datastore.load_measured_data("mock_path") + with patch('numpy.loadtxt', return_value=mock_data): + datastore.load_measured_data('mock_path') assert np.array_equal(datastore.pattern.x, mock_data[:, 0]) assert np.array_equal(datastore.pattern.meas, mock_data[:, 1]) @@ -91,15 +91,15 @@ def test_datastore_load_measured_data_no_uncertainty(): def test_datastore_load_measured_data_invalid_file(): mock_experiment = MagicMock() - datastore = Datastore(sample_form="powder", experiment=mock_experiment) + datastore = Datastore(sample_form='powder', experiment=mock_experiment) - with patch("numpy.loadtxt", side_effect=Exception("File not found")): - datastore.load_measured_data("invalid_path") + with patch('numpy.loadtxt', side_effect=Exception('File not found')): + datastore.load_measured_data('invalid_path') def test_datastore_show_measured_data(capsys): mock_experiment = MagicMock() - datastore = Datastore(sample_form="powder", experiment=mock_experiment) + datastore = Datastore(sample_form='powder', experiment=mock_experiment) datastore.pattern.x = [1.0, 2.0, 3.0] datastore.pattern.meas = [10.0, 20.0, 30.0] @@ -108,44 +108,44 @@ def test_datastore_show_measured_data(capsys): datastore.show_measured_data() captured = capsys.readouterr() - assert "Measured data (powder):" in captured.out - assert "x: [1.0, 2.0, 3.0]" in captured.out - assert "meas: [10.0, 20.0, 30.0]" in captured.out - assert "meas_su: [0.1, 0.2, 0.3]" in captured.out + assert 'Measured data (powder):' in captured.out + assert 'x: [1.0, 2.0, 3.0]' in captured.out + assert 'meas: [10.0, 20.0, 30.0]' in captured.out + assert 'meas_su: [0.1, 0.2, 0.3]' in captured.out def test_datastore_show_calculated_data(capsys): mock_experiment = MagicMock() - datastore = Datastore(sample_form="powder", experiment=mock_experiment) + datastore = Datastore(sample_form='powder', experiment=mock_experiment) datastore.pattern.calc = [100.0, 200.0, 300.0] datastore.show_calculated_data() captured = capsys.readouterr() - assert "Calculated data (powder):" in captured.out - assert "calc: [100.0, 200.0, 300.0]" in captured.out + assert 'Calculated data (powder):' in captured.out + assert 'calc: [100.0, 200.0, 300.0]' in captured.out def test_datastore_factory_create_powder(): mock_experiment = MagicMock() - datastore = DatastoreFactory.create(sample_form="powder", experiment=mock_experiment) + datastore = DatastoreFactory.create(sample_form='powder', experiment=mock_experiment) assert isinstance(datastore, Datastore) - assert datastore.sample_form == "powder" + assert datastore.sample_form == 'powder' assert isinstance(datastore.pattern, PowderPattern) def test_datastore_factory_create_single_crystal(): mock_experiment = MagicMock() - datastore = DatastoreFactory.create(sample_form="single_crystal", experiment=mock_experiment) + datastore = DatastoreFactory.create(sample_form='single_crystal', experiment=mock_experiment) assert isinstance(datastore, Datastore) - assert datastore.sample_form == "single_crystal" + assert datastore.sample_form == 'single_crystal' assert isinstance(datastore.pattern, Pattern) def test_datastore_factory_create_invalid_sample_form(): mock_experiment = MagicMock() with pytest.raises(ValueError, match="Unknown sample form 'invalid'"): - DatastoreFactory.create(sample_form="invalid", experiment=mock_experiment) + DatastoreFactory.create(sample_form='invalid', experiment=mock_experiment) diff --git a/tests/unit_tests/experiments/components/test_experiment_type.py b/tests/unit_tests/experiments/components/test_experiment_type.py index 9f92a8b2..ca7ceae7 100644 --- a/tests/unit_tests/experiments/components/test_experiment_type.py +++ b/tests/unit_tests/experiments/components/test_experiment_type.py @@ -3,39 +3,31 @@ def test_experiment_type_initialization(): - experiment_type = ExperimentType( - sample_form="powder", - beam_mode="CW", - radiation_probe="neutron", - scattering_type="bragg" - ) + experiment_type = ExperimentType(sample_form='powder', beam_mode='CW', radiation_probe='neutron', scattering_type='bragg') assert isinstance(experiment_type.sample_form, Descriptor) - assert experiment_type.sample_form.value == "powder" - assert experiment_type.sample_form.name == "sample_form" - assert experiment_type.sample_form.cif_name == "sample_form" + assert experiment_type.sample_form.value == 'powder' + assert experiment_type.sample_form.name == 'sample_form' + assert experiment_type.sample_form.cif_name == 'sample_form' assert isinstance(experiment_type.beam_mode, Descriptor) - assert experiment_type.beam_mode.value == "CW" - assert experiment_type.beam_mode.name == "beam_mode" - assert experiment_type.beam_mode.cif_name == "beam_mode" + assert experiment_type.beam_mode.value == 'CW' + assert experiment_type.beam_mode.name == 'beam_mode' + assert experiment_type.beam_mode.cif_name == 'beam_mode' assert isinstance(experiment_type.radiation_probe, Descriptor) - assert experiment_type.radiation_probe.value == "neutron" - assert experiment_type.radiation_probe.name == "radiation_probe" - assert experiment_type.radiation_probe.cif_name == "radiation_probe" + assert experiment_type.radiation_probe.value == 'neutron' + assert experiment_type.radiation_probe.name == 'radiation_probe' + assert experiment_type.radiation_probe.cif_name == 'radiation_probe' def test_experiment_type_properties(): experiment_type = ExperimentType( - sample_form="single_crystal", - beam_mode="TOF", - radiation_probe="x-ray", - scattering_type="bragg" + sample_form='single_crystal', beam_mode='TOF', radiation_probe='x-ray', scattering_type='bragg' ) - assert experiment_type.category_key == "expt_type" - assert experiment_type.cif_category_key == "expt_type" + assert experiment_type.category_key == 'expt_type' + assert experiment_type.cif_category_key == 'expt_type' assert experiment_type.datablock_id is None assert experiment_type.entry_id is None assert experiment_type._locked is True @@ -43,12 +35,7 @@ def test_experiment_type_properties(): def no_test_experiment_type_locking_attributes(): # TODO: hmm this doesn't work as expected. - experiment_type = ExperimentType( - sample_form="powder", - beam_mode="CW", - radiation_probe="neutron", - scattering_type="bragg" - ) + experiment_type = ExperimentType(sample_form='powder', beam_mode='CW', radiation_probe='neutron', scattering_type='bragg') experiment_type._locked = True # Disallow adding new attributes - experiment_type.new_attribute = "value" - assert not hasattr(experiment_type, "new_attribute") + experiment_type.new_attribute = 'value' + assert not hasattr(experiment_type, 'new_attribute') diff --git a/tests/unit_tests/experiments/components/test_instrument.py b/tests/unit_tests/experiments/components/test_instrument.py index b0637a35..084dc41e 100644 --- a/tests/unit_tests/experiments/components/test_instrument.py +++ b/tests/unit_tests/experiments/components/test_instrument.py @@ -9,28 +9,25 @@ def test_instrument_base_properties(): instrument = InstrumentBase() - assert instrument.category_key == "instrument" - assert instrument.cif_category_key == "instr" + assert instrument.category_key == 'instrument' + assert instrument.cif_category_key == 'instr' assert instrument._entry_id is None def test_constant_wavelength_instrument_initialization(): - instrument = ConstantWavelengthInstrument( - setup_wavelength=1.5406, - calib_twotheta_offset=0.1 - ) + instrument = ConstantWavelengthInstrument(setup_wavelength=1.5406, calib_twotheta_offset=0.1) assert isinstance(instrument.setup_wavelength, Parameter) assert instrument.setup_wavelength.value == 1.5406 - assert instrument.setup_wavelength.name == "wavelength" - assert instrument.setup_wavelength.cif_name == "wavelength" - assert instrument.setup_wavelength.units == "Å" + assert instrument.setup_wavelength.name == 'wavelength' + assert instrument.setup_wavelength.cif_name == 'wavelength' + assert instrument.setup_wavelength.units == 'Å' assert isinstance(instrument.calib_twotheta_offset, Parameter) assert instrument.calib_twotheta_offset.value == 0.1 - assert instrument.calib_twotheta_offset.name == "twotheta_offset" - assert instrument.calib_twotheta_offset.cif_name == "2theta_offset" - assert instrument.calib_twotheta_offset.units == "deg" + assert instrument.calib_twotheta_offset.name == 'twotheta_offset' + assert instrument.calib_twotheta_offset.cif_name == '2theta_offset' + assert instrument.calib_twotheta_offset.units == 'deg' def test_time_of_flight_instrument_initialization(): @@ -39,50 +36,50 @@ def test_time_of_flight_instrument_initialization(): calib_d_to_tof_offset=0.5, calib_d_to_tof_linear=10000.0, calib_d_to_tof_quad=-1.0, - calib_d_to_tof_recip=0.1 + calib_d_to_tof_recip=0.1, ) assert isinstance(instrument.setup_twotheta_bank, Parameter) assert instrument.setup_twotheta_bank.value == 150.0 - assert instrument.setup_twotheta_bank.name == "twotheta_bank" - assert instrument.setup_twotheta_bank.cif_name == "2theta_bank" - assert instrument.setup_twotheta_bank.units == "deg" + assert instrument.setup_twotheta_bank.name == 'twotheta_bank' + assert instrument.setup_twotheta_bank.cif_name == '2theta_bank' + assert instrument.setup_twotheta_bank.units == 'deg' assert isinstance(instrument.calib_d_to_tof_offset, Parameter) assert instrument.calib_d_to_tof_offset.value == 0.5 - assert instrument.calib_d_to_tof_offset.name == "d_to_tof_offset" - assert instrument.calib_d_to_tof_offset.cif_name == "d_to_tof_offset" - assert instrument.calib_d_to_tof_offset.units == "µs" + assert instrument.calib_d_to_tof_offset.name == 'd_to_tof_offset' + assert instrument.calib_d_to_tof_offset.cif_name == 'd_to_tof_offset' + assert instrument.calib_d_to_tof_offset.units == 'µs' assert isinstance(instrument.calib_d_to_tof_linear, Parameter) assert instrument.calib_d_to_tof_linear.value == 10000.0 - assert instrument.calib_d_to_tof_linear.name == "d_to_tof_linear" - assert instrument.calib_d_to_tof_linear.cif_name == "d_to_tof_linear" - assert instrument.calib_d_to_tof_linear.units == "µs/Å" + assert instrument.calib_d_to_tof_linear.name == 'd_to_tof_linear' + assert instrument.calib_d_to_tof_linear.cif_name == 'd_to_tof_linear' + assert instrument.calib_d_to_tof_linear.units == 'µs/Å' assert isinstance(instrument.calib_d_to_tof_quad, Parameter) assert instrument.calib_d_to_tof_quad.value == -1.0 - assert instrument.calib_d_to_tof_quad.name == "d_to_tof_quad" - assert instrument.calib_d_to_tof_quad.cif_name == "d_to_tof_quad" - assert instrument.calib_d_to_tof_quad.units == "µs/Ų" + assert instrument.calib_d_to_tof_quad.name == 'd_to_tof_quad' + assert instrument.calib_d_to_tof_quad.cif_name == 'd_to_tof_quad' + assert instrument.calib_d_to_tof_quad.units == 'µs/Ų' assert isinstance(instrument.calib_d_to_tof_recip, Parameter) assert instrument.calib_d_to_tof_recip.value == 0.1 - assert instrument.calib_d_to_tof_recip.name == "d_to_tof_recip" - assert instrument.calib_d_to_tof_recip.cif_name == "d_to_tof_recip" - assert instrument.calib_d_to_tof_recip.units == "µs·Å" + assert instrument.calib_d_to_tof_recip.name == 'd_to_tof_recip' + assert instrument.calib_d_to_tof_recip.cif_name == 'd_to_tof_recip' + assert instrument.calib_d_to_tof_recip.units == 'µs·Å' def test_instrument_factory_create_constant_wavelength(): - instrument = InstrumentFactory.create(beam_mode="constant wavelength") + instrument = InstrumentFactory.create(beam_mode='constant wavelength') assert isinstance(instrument, ConstantWavelengthInstrument) def test_instrument_factory_create_time_of_flight(): - instrument = InstrumentFactory.create(beam_mode="time-of-flight") + instrument = InstrumentFactory.create(beam_mode='time-of-flight') assert isinstance(instrument, TimeOfFlightInstrument) def test_instrument_factory_create_invalid_beam_mode(): with pytest.raises(ValueError, match="Unsupported beam mode: 'invalid'.*"): - InstrumentFactory.create(beam_mode="invalid") + InstrumentFactory.create(beam_mode='invalid') diff --git a/tests/unit_tests/experiments/components/test_peak.py b/tests/unit_tests/experiments/components/test_peak.py index eb9d722f..88ae007e 100644 --- a/tests/unit_tests/experiments/components/test_peak.py +++ b/tests/unit_tests/experiments/components/test_peak.py @@ -86,8 +86,8 @@ def __init__(self): # --- Tests for Base and Derived Peak Classes --- def test_peak_base_properties(): peak = PeakBase() - assert peak.cif_category_key == "peak" - assert peak.category_key == "peak" + assert peak.cif_category_key == 'peak' + assert peak.category_key == 'peak' assert peak._entry_id is None @@ -131,15 +131,15 @@ def test_time_of_flight_pseudo_voigt_back_to_back_exponential_initialization(): # --- Tests for PeakFactory --- def test_peak_factory_create_constant_wavelength_pseudo_voigt(): - peak = PeakFactory.create(beam_mode="constant wavelength", profile_type="pseudo-voigt") + peak = PeakFactory.create(beam_mode='constant wavelength', profile_type='pseudo-voigt') assert isinstance(peak, ConstantWavelengthPseudoVoigt) def test_peak_factory_create_invalid_beam_mode(): with pytest.raises(ValueError, match="Unsupported beam mode: 'invalid'.*"): - PeakFactory.create(beam_mode="invalid", profile_type="pseudo-voigt") + PeakFactory.create(beam_mode='invalid', profile_type='pseudo-voigt') def test_peak_factory_create_invalid_profile_type(): with pytest.raises(ValueError, match="Unsupported profile type 'invalid' for beam mode 'constant wavelength'.*"): - PeakFactory.create(beam_mode="constant wavelength", profile_type="invalid") + PeakFactory.create(beam_mode='constant wavelength', profile_type='invalid') diff --git a/tests/unit_tests/experiments/test_experiment.py b/tests/unit_tests/experiments/test_experiment.py index 450dd27b..d075d9d1 100644 --- a/tests/unit_tests/experiments/test_experiment.py +++ b/tests/unit_tests/experiments/test_experiment.py @@ -19,10 +19,7 @@ @pytest.fixture def expt_type(): return ExperimentType( - sample_form=DEFAULT_SAMPLE_FORM, - beam_mode=DEFAULT_BEAM_MODE, - radiation_probe='xray', - scattering_type='bragg' + sample_form=DEFAULT_SAMPLE_FORM, beam_mode=DEFAULT_BEAM_MODE, radiation_probe='xray', scattering_type='bragg' ) @@ -44,14 +41,14 @@ def _load_ascii_data_to_experiment(self, data_path): def test_base_experiment_initialization(expt_type): - experiment = ConcreteBaseExperiment(name="TestExperiment", type=expt_type) - assert experiment.name == "TestExperiment" + experiment = ConcreteBaseExperiment(name='TestExperiment', type=expt_type) + assert experiment.name == 'TestExperiment' assert experiment.type == expt_type def test_powder_experiment_initialization(expt_type): - experiment = PowderExperiment(name="PowderTest", type=expt_type) - assert experiment.name == "PowderTest" + experiment = PowderExperiment(name='PowderTest', type=expt_type) + assert experiment.name == 'PowderTest' assert experiment.type == expt_type assert experiment.background is not None assert experiment.peak is not None @@ -59,66 +56,67 @@ def test_powder_experiment_initialization(expt_type): def test_powder_experiment_load_ascii_data(expt_type): - experiment = PowderExperiment(name="PowderTest", type=expt_type) + experiment = PowderExperiment(name='PowderTest', type=expt_type) experiment.datastore = MagicMock() experiment.datastore.pattern = MagicMock() mock_data = np.array([[1.0, 2.0, 0.1], [2.0, 3.0, 0.2]]) - with patch("numpy.loadtxt", return_value=mock_data): - experiment._load_ascii_data_to_experiment("mock_path") + with patch('numpy.loadtxt', return_value=mock_data): + experiment._load_ascii_data_to_experiment('mock_path') assert np.array_equal(experiment.datastore.pattern.x, mock_data[:, 0]) assert np.array_equal(experiment.datastore.pattern.meas, mock_data[:, 1]) assert np.array_equal(experiment.datastore.pattern.meas_su, mock_data[:, 2]) def test_single_crystal_experiment_initialization(expt_type): - experiment = ConcreteSingleCrystalExperiment(name="SingleCrystalTest", type=expt_type) - assert experiment.name == "SingleCrystalTest" + experiment = ConcreteSingleCrystalExperiment(name='SingleCrystalTest', type=expt_type) + assert experiment.name == 'SingleCrystalTest' assert experiment.type == expt_type assert experiment.linked_crystal is None def test_single_crystal_experiment_show_meas_chart(expt_type): - experiment = ConcreteSingleCrystalExperiment(name="SingleCrystalTest", type=expt_type) - with patch("builtins.print") as mock_print: + experiment = ConcreteSingleCrystalExperiment(name='SingleCrystalTest', type=expt_type) + with patch('builtins.print') as mock_print: experiment.show_meas_chart() - mock_print.assert_called_once_with("Showing measured data chart is not implemented yet.") + mock_print.assert_called_once_with('Showing measured data chart is not implemented yet.') def test_experiment_factory_create_powder(): experiment = ExperimentFactory.create( - name="PowderTest", - sample_form="powder", + name='PowderTest', + sample_form='powder', beam_mode=DEFAULT_BEAM_MODE, radiation_probe=DEFAULT_RADIATION_PROBE, - scattering_type=DEFAULT_SCATTERING_TYPE + scattering_type=DEFAULT_SCATTERING_TYPE, ) assert isinstance(experiment, PowderExperiment) - assert experiment.name == "PowderTest" + assert experiment.name == 'PowderTest' + # to be added once single crystal works def no_test_experiment_factory_create_single_crystal(): experiment = ExperimentFactory.create( - name="SingleCrystalTest", - sample_form="single crystal", + name='SingleCrystalTest', + sample_form='single crystal', beam_mode=DEFAULT_BEAM_MODE, radiation_probe=DEFAULT_RADIATION_PROBE, ) assert isinstance(experiment, SingleCrystalExperiment) - assert experiment.name == "SingleCrystalTest" + assert experiment.name == 'SingleCrystalTest' def test_experiment_method(): mock_data = np.array([[1.0, 2.0, 0.1], [2.0, 3.0, 0.2]]) - with patch("numpy.loadtxt", return_value=mock_data): + with patch('numpy.loadtxt', return_value=mock_data): experiment = Experiment( - name="ExperimentTest", - sample_form="powder", + name='ExperimentTest', + sample_form='powder', beam_mode=DEFAULT_BEAM_MODE, radiation_probe=DEFAULT_RADIATION_PROBE, - data_path="mock_path", + data_path='mock_path', ) assert isinstance(experiment, PowderExperiment) - assert experiment.name == "ExperimentTest" + assert experiment.name == 'ExperimentTest' assert np.array_equal(experiment.datastore.pattern.x, mock_data[:, 0]) assert np.array_equal(experiment.datastore.pattern.meas, mock_data[:, 1]) assert np.array_equal(experiment.datastore.pattern.meas_su, mock_data[:, 2]) diff --git a/tests/unit_tests/experiments/test_experiments.py b/tests/unit_tests/experiments/test_experiments.py index 76398617..93cfa0d6 100644 --- a/tests/unit_tests/experiments/test_experiments.py +++ b/tests/unit_tests/experiments/test_experiments.py @@ -26,71 +26,71 @@ def test_experiments_initialization(): def test_experiments_add_prebuilt_experiment(): experiments = Experiments() mock_experiment = MagicMock(spec=BaseExperiment) - mock_experiment.name = "TestExperiment" + mock_experiment.name = 'TestExperiment' experiments.add(experiment=mock_experiment) - assert "TestExperiment" in experiments.ids - assert experiments._experiments["TestExperiment"] == mock_experiment + assert 'TestExperiment' in experiments.ids + assert experiments._experiments['TestExperiment'] == mock_experiment def test_experiments_add_from_data_path(): experiments = Experiments() mock_experiment = MagicMock(spec=ConcreteBaseExperiment) - mock_experiment.name = "TestExperiment" + mock_experiment.name = 'TestExperiment' - with patch("easydiffraction.experiments.experiment.ExperimentFactory.create", return_value=mock_experiment): + with patch('easydiffraction.experiments.experiment.ExperimentFactory.create', return_value=mock_experiment): experiments.add( - name="TestExperiment", - sample_form="powder", - beam_mode="default", - radiation_probe="x-ray", - data_path="mock_path", + name='TestExperiment', + sample_form='powder', + beam_mode='default', + radiation_probe='x-ray', + data_path='mock_path', ) - assert "TestExperiment" in experiments.ids - assert experiments._experiments["TestExperiment"] == mock_experiment - mock_experiment._load_ascii_data_to_experiment.assert_called_once_with("mock_path") + assert 'TestExperiment' in experiments.ids + assert experiments._experiments['TestExperiment'] == mock_experiment + mock_experiment._load_ascii_data_to_experiment.assert_called_once_with('mock_path') def test_experiments_add_invalid_input(): experiments = Experiments() - with pytest.raises(ValueError, match="Provide either experiment, type parameters, cif_path, cif_str, or data_path"): + with pytest.raises(ValueError, match='Provide either experiment, type parameters, cif_path, cif_str, or data_path'): experiments.add() def test_experiments_remove(): experiments = Experiments() mock_experiment = MagicMock(spec=BaseExperiment) - mock_experiment.name = "TestExperiment" + mock_experiment.name = 'TestExperiment' experiments.add(experiment=mock_experiment) - assert "TestExperiment" in experiments.ids + assert 'TestExperiment' in experiments.ids - experiments.remove("TestExperiment") - assert "TestExperiment" not in experiments.ids + experiments.remove('TestExperiment') + assert 'TestExperiment' not in experiments.ids def test_experiments_show_names(capsys): experiments = Experiments() mock_experiment = MagicMock(spec=BaseExperiment) - mock_experiment.name = "TestExperiment" + mock_experiment.name = 'TestExperiment' experiments.add(experiment=mock_experiment) experiments.show_names() captured = capsys.readouterr() - assert "Defined experiments 🔬" in captured.out - assert "TestExperiment" in captured.out + assert 'Defined experiments 🔬' in captured.out + assert 'TestExperiment' in captured.out def test_experiments_as_cif(): experiments = Experiments() mock_experiment = MagicMock(spec=BaseExperiment) - mock_experiment.name = "TestExperiment" - mock_experiment.as_cif.return_value = "mock_cif_content" + mock_experiment.name = 'TestExperiment' + mock_experiment.as_cif.return_value = 'mock_cif_content' experiments.add(experiment=mock_experiment) cif_output = experiments.as_cif() - assert "mock_cif_content" in cif_output + assert 'mock_cif_content' in cif_output diff --git a/tests/unit_tests/sample_models/collections/test_atom_sites.py b/tests/unit_tests/sample_models/collections/test_atom_sites.py index 070206c7..5514e5b6 100644 --- a/tests/unit_tests/sample_models/collections/test_atom_sites.py +++ b/tests/unit_tests/sample_models/collections/test_atom_sites.py @@ -6,42 +6,36 @@ def test_atom_site_initialization(): atom_site = AtomSite( - label="O1", - type_symbol="O", + label='O1', + type_symbol='O', fract_x=0.1, fract_y=0.2, fract_z=0.3, - wyckoff_letter="a", + wyckoff_letter='a', occupancy=0.8, b_iso=1.2, - adp_type="Biso" + adp_type='Biso', ) # Assertions - assert atom_site.label.value == "O1" - assert atom_site.type_symbol.value == "O" + assert atom_site.label.value == 'O1' + assert atom_site.type_symbol.value == 'O' assert atom_site.fract_x.value == 0.1 assert atom_site.fract_y.value == 0.2 assert atom_site.fract_z.value == 0.3 - assert atom_site.wyckoff_letter.value == "a" + assert atom_site.wyckoff_letter.value == 'a' assert atom_site.occupancy.value == 0.8 assert atom_site.b_iso.value == 1.2 - assert atom_site.adp_type.value == "Biso" + assert atom_site.adp_type.value == 'Biso' def test_atom_site_properties(): - atom_site = AtomSite( - label="O1", - type_symbol="O", - fract_x=0.1, - fract_y=0.2, - fract_z=0.3 - ) + atom_site = AtomSite(label='O1', type_symbol='O', fract_x=0.1, fract_y=0.2, fract_z=0.3) # Assertions - assert atom_site.cif_category_key == "atom_site" - assert atom_site.category_key == "atom_sites" - assert atom_site._entry_id == "O1" + assert atom_site.cif_category_key == 'atom_site' + assert atom_site.category_key == 'atom_sites' + assert atom_site._entry_id == 'O1' @pytest.fixture @@ -51,54 +45,42 @@ def atom_sites_collection(): def test_atom_sites_add(atom_sites_collection): atom_sites_collection.add( - label="O1", - type_symbol="O", + label='O1', + type_symbol='O', fract_x=0.1, fract_y=0.2, fract_z=0.3, - wyckoff_letter="a", + wyckoff_letter='a', occupancy=0.8, b_iso=1.2, - adp_type="Biso" + adp_type='Biso', ) # Assertions - assert "O1" in atom_sites_collection._items - atom_site = atom_sites_collection._items["O1"] + assert 'O1' in atom_sites_collection._items + atom_site = atom_sites_collection._items['O1'] assert isinstance(atom_site, AtomSite) - assert atom_site.label.value == "O1" - assert atom_site.type_symbol.value == "O" + assert atom_site.label.value == 'O1' + assert atom_site.type_symbol.value == 'O' assert atom_site.fract_x.value == 0.1 assert atom_site.fract_y.value == 0.2 assert atom_site.fract_z.value == 0.3 - assert atom_site.wyckoff_letter.value == "a" + assert atom_site.wyckoff_letter.value == 'a' assert atom_site.occupancy.value == 0.8 assert atom_site.b_iso.value == 1.2 - assert atom_site.adp_type.value == "Biso" + assert atom_site.adp_type.value == 'Biso' def test_atom_sites_add_multiple(atom_sites_collection): - atom_sites_collection.add( - label="O1", - type_symbol="O", - fract_x=0.1, - fract_y=0.2, - fract_z=0.3 - ) - atom_sites_collection.add( - label="C1", - type_symbol="C", - fract_x=0.4, - fract_y=0.5, - fract_z=0.6 - ) + atom_sites_collection.add(label='O1', type_symbol='O', fract_x=0.1, fract_y=0.2, fract_z=0.3) + atom_sites_collection.add(label='C1', type_symbol='C', fract_x=0.4, fract_y=0.5, fract_z=0.6) # Assertions - assert "O1" in atom_sites_collection._items - assert "C1" in atom_sites_collection._items + assert 'O1' in atom_sites_collection._items + assert 'C1' in atom_sites_collection._items assert len(atom_sites_collection._items) == 2 def test_atom_sites_type(atom_sites_collection): # Assertions - assert atom_sites_collection._type == "category" + assert atom_sites_collection._type == 'category' diff --git a/tests/unit_tests/sample_models/components/test_cell.py b/tests/unit_tests/sample_models/components/test_cell.py index d28f8f15..a7cdf2f8 100644 --- a/tests/unit_tests/sample_models/components/test_cell.py +++ b/tests/unit_tests/sample_models/components/test_cell.py @@ -2,14 +2,7 @@ def test_cell_initialization(): - cell = Cell( - length_a=5.0, - length_b=6.0, - length_c=7.0, - angle_alpha=80.0, - angle_beta=85.0, - angle_gamma=95.0 - ) + cell = Cell(length_a=5.0, length_b=6.0, length_c=7.0, angle_alpha=80.0, angle_beta=85.0, angle_gamma=95.0) # Assertions assert cell.length_a.value == 5.0 @@ -19,8 +12,8 @@ def test_cell_initialization(): assert cell.angle_beta.value == 85.0 assert cell.angle_gamma.value == 95.0 - assert cell.length_a.units == "Å" - assert cell.angle_alpha.units == "deg" + assert cell.length_a.units == 'Å' + assert cell.angle_alpha.units == 'deg' def test_cell_default_initialization(): @@ -39,6 +32,6 @@ def test_cell_properties(): cell = Cell() # Assertions - assert cell.cif_category_key == "cell" - assert cell.category_key == "cell" + assert cell.cif_category_key == 'cell' + assert cell.category_key == 'cell' assert cell._entry_id is None diff --git a/tests/unit_tests/sample_models/components/test_space_group.py b/tests/unit_tests/sample_models/components/test_space_group.py index c9ac2d77..5e0d6a1b 100644 --- a/tests/unit_tests/sample_models/components/test_space_group.py +++ b/tests/unit_tests/sample_models/components/test_space_group.py @@ -2,23 +2,23 @@ def test_space_group_initialization(): - space_group = SpaceGroup(name_h_m="P 2/m", it_coordinate_system_code=1) + space_group = SpaceGroup(name_h_m='P 2/m', it_coordinate_system_code=1) # Assertions - assert space_group.name_h_m.value == "P 2/m" - assert space_group.name_h_m.name == "name_h_m" - assert space_group.name_h_m.cif_name == "name_H-M_alt" + assert space_group.name_h_m.value == 'P 2/m' + assert space_group.name_h_m.name == 'name_h_m' + assert space_group.name_h_m.cif_name == 'name_H-M_alt' assert space_group.it_coordinate_system_code.value == 1 - assert space_group.it_coordinate_system_code.name == "it_coordinate_system_code" - assert space_group.it_coordinate_system_code.cif_name == "IT_coordinate_system_code" + assert space_group.it_coordinate_system_code.name == 'it_coordinate_system_code' + assert space_group.it_coordinate_system_code.cif_name == 'IT_coordinate_system_code' def test_space_group_default_initialization(): space_group = SpaceGroup() # Assertions - assert space_group.name_h_m.value == "P 1" + assert space_group.name_h_m.value == 'P 1' assert space_group.it_coordinate_system_code.value is None @@ -26,6 +26,6 @@ def test_space_group_properties(): space_group = SpaceGroup() # Assertions - assert space_group.cif_category_key == "space_group" - assert space_group.category_key == "space_group" + assert space_group.cif_category_key == 'space_group' + assert space_group.category_key == 'space_group' assert space_group._entry_id is None diff --git a/tests/unit_tests/sample_models/test_sample_models.py b/tests/unit_tests/sample_models/test_sample_models.py index 6c56f29a..9b7bcda3 100644 --- a/tests/unit_tests/sample_models/test_sample_models.py +++ b/tests/unit_tests/sample_models/test_sample_models.py @@ -9,15 +9,17 @@ @pytest.fixture def mock_sample_model(): - with patch("easydiffraction.sample_models.components.space_group.SpaceGroup") as MockSpaceGroup, \ - patch("easydiffraction.sample_models.components.cell.Cell") as MockCell, \ - patch("easydiffraction.sample_models.collections.atom_sites.AtomSites") as MockAtomSites: + with ( + patch('easydiffraction.sample_models.components.space_group.SpaceGroup') as MockSpaceGroup, + patch('easydiffraction.sample_models.components.cell.Cell') as MockCell, + patch('easydiffraction.sample_models.collections.atom_sites.AtomSites') as MockAtomSites, + ): space_group = MockSpaceGroup.return_value cell = MockCell.return_value atom_sites = MockAtomSites.return_value # Mock attributes - space_group.name_h_m.value = "P 1" + space_group.name_h_m.value = 'P 1' space_group.it_coordinate_system_code.value = 1 cell.length_a.value = 1.0 cell.length_b.value = 2.0 @@ -27,7 +29,7 @@ def mock_sample_model(): cell.angle_gamma.value = 90.0 atom_sites.__iter__.return_value = [] - return SampleModel(name="test_model") + return SampleModel(name='test_model') @pytest.fixture @@ -39,37 +41,37 @@ def test_sample_models_add(mock_sample_models, mock_sample_model): mock_sample_models.add(model=mock_sample_model) # Assertions - assert "test_model" in mock_sample_models.get_ids() + assert 'test_model' in mock_sample_models.get_ids() def test_sample_models_remove(mock_sample_models, mock_sample_model): mock_sample_models.add(model=mock_sample_model) - mock_sample_models.remove("test_model") + mock_sample_models.remove('test_model') # Assertions - assert "test_model" not in mock_sample_models.get_ids() + assert 'test_model' not in mock_sample_models.get_ids() def test_sample_models_as_cif(mock_sample_models, mock_sample_model): - mock_sample_model.as_cif = MagicMock(return_value="data_test_model") + mock_sample_model.as_cif = MagicMock(return_value='data_test_model') mock_sample_models.add(model=mock_sample_model) cif = mock_sample_models.as_cif() # Assertions - assert "data_test_model" in cif + assert 'data_test_model' in cif -@patch("builtins.print") +@patch('builtins.print') def test_sample_models_show_names(mock_print, mock_sample_models, mock_sample_model): mock_sample_models.add(model=mock_sample_model) mock_sample_models.show_names() # Assertions - mock_print.assert_called_with(["test_model"]) + mock_print.assert_called_with(['test_model']) -@patch.object(SampleModel, "show_params", autospec=True) +@patch.object(SampleModel, 'show_params', autospec=True) def test_sample_models_show_params(mock_show_params, mock_sample_models, mock_sample_model): mock_sample_models.add(model=mock_sample_model) mock_sample_models.show_params() diff --git a/tests/unit_tests/test_project.py b/tests/unit_tests/test_project.py index 7fe6578b..923b30e5 100644 --- a/tests/unit_tests/test_project.py +++ b/tests/unit_tests/test_project.py @@ -15,13 +15,14 @@ # Tests for ProjectInfo # ------------------------------------------ + def test_project_info_initialization(): project_info = ProjectInfo() # Assertions - assert project_info.name == "untitled_project" - assert project_info.title == "Untitled Project" - assert project_info.description == "" + assert project_info.name == 'untitled_project' + assert project_info.title == 'Untitled Project' + assert project_info.description == '' assert project_info.path == os.getcwd() assert isinstance(project_info.created, datetime.datetime) assert isinstance(project_info.last_modified, datetime.datetime) @@ -31,16 +32,16 @@ def test_project_info_setters(): project_info = ProjectInfo() # Set values - project_info.name = "test_project" - project_info.title = "Test Project" - project_info.description = "This is a test project." - project_info.path = "/test/path" + project_info.name = 'test_project' + project_info.title = 'Test Project' + project_info.description = 'This is a test project.' + project_info.path = '/test/path' # Assertions - assert project_info.name == "test_project" - assert project_info.title == "Test Project" - assert project_info.description == "This is a test project." - assert project_info.path == "/test/path" + assert project_info.name == 'test_project' + assert project_info.title == 'Test Project' + assert project_info.description == 'This is a test project.' + assert project_info.path == '/test/path' def test_project_info_update_last_modified(): @@ -57,24 +58,24 @@ def test_project_info_update_last_modified(): def test_project_info_as_cif(): project_info = ProjectInfo() - project_info.name = "test_project" - project_info.title = "Test Project" - project_info.description = "This is a test project." + project_info.name = 'test_project' + project_info.title = 'Test Project' + project_info.description = 'This is a test project.' cif = project_info.as_cif() # Assertions - assert "_project.id test_project" in cif + assert '_project.id test_project' in cif assert "_project.title 'Test Project'" in cif assert "_project.description 'This is a test project.'" in cif -@patch("builtins.print") +@patch('builtins.print') def test_project_info_show_as_cif(mock_print): project_info = ProjectInfo() - project_info.name = "test_project" - project_info.title = "Test Project" - project_info.description = "This is a test project." + project_info.name = 'test_project' + project_info.title = 'Test Project' + project_info.description = 'This is a test project.' project_info.show_as_cif() @@ -86,76 +87,88 @@ def test_project_info_show_as_cif(mock_print): # Tests for Project # ------------------------------------------ + def test_project_initialization(): - with patch("easydiffraction.sample_models.sample_models.SampleModels"), \ - patch("easydiffraction.experiments.experiments.Experiments"), \ - patch("easydiffraction.analysis.analysis.Analysis"), \ - patch("easydiffraction.summary.Summary"): + with ( + patch('easydiffraction.sample_models.sample_models.SampleModels'), + patch('easydiffraction.experiments.experiments.Experiments'), + patch('easydiffraction.analysis.analysis.Analysis'), + patch('easydiffraction.summary.Summary'), + ): project = Project() # Directly assign the instance to a variable # Assertions - assert project.name == "untitled_project" + assert project.name == 'untitled_project' assert isinstance(project.sample_models, SampleModels) assert isinstance(project.experiments, Experiments) assert isinstance(project.analysis, Analysis) assert isinstance(project.summary, Summary) -@patch("builtins.print") +@patch('builtins.print') def test_project_load(mock_print): - with patch("easydiffraction.sample_models.sample_models.SampleModels"), \ - patch("easydiffraction.experiments.experiments.Experiments"), \ - patch("easydiffraction.analysis.analysis.Analysis"), \ - patch("easydiffraction.summary.Summary"): + with ( + patch('easydiffraction.sample_models.sample_models.SampleModels'), + patch('easydiffraction.experiments.experiments.Experiments'), + patch('easydiffraction.analysis.analysis.Analysis'), + patch('easydiffraction.summary.Summary'), + ): project = Project() # Directly assign the instance to a variable - project.load("/test/path") + project.load('/test/path') # Assertions - assert project.info.path == "/test/path" - assert "Loading project 📦 from /test/path" in mock_print.call_args_list[0][0][0] + assert project.info.path == '/test/path' + assert 'Loading project 📦 from /test/path' in mock_print.call_args_list[0][0][0] -@patch("builtins.print") -@patch("os.makedirs") -@patch("builtins.open", new_callable=MagicMock) +@patch('builtins.print') +@patch('os.makedirs') +@patch('builtins.open', new_callable=MagicMock) def test_project_save(mock_open, mock_makedirs, mock_print): - with patch("easydiffraction.sample_models.sample_models.SampleModels"), \ - patch("easydiffraction.experiments.experiments.Experiments"), \ - patch("easydiffraction.analysis.analysis.Analysis"), \ - patch("easydiffraction.summary.Summary"): + with ( + patch('easydiffraction.sample_models.sample_models.SampleModels'), + patch('easydiffraction.experiments.experiments.Experiments'), + patch('easydiffraction.analysis.analysis.Analysis'), + patch('easydiffraction.summary.Summary'), + ): project = Project() # Directly assign the instance to a variable - project.info.path = "/test/path" + project.info.path = '/test/path' project.save() # Assertions - mock_makedirs.assert_any_call("/test/path", exist_ok=True) + mock_makedirs.assert_any_call('/test/path', exist_ok=True) # mock_open.assert_any_call("/test/path\\summary.cif", "w") -@patch("builtins.print") -@patch("os.makedirs") -@patch("builtins.open", new_callable=MagicMock) + +@patch('builtins.print') +@patch('os.makedirs') +@patch('builtins.open', new_callable=MagicMock) def test_project_save_as(mock_open, mock_makedirs, mock_print): - with patch("easydiffraction.sample_models.sample_models.SampleModels"), \ - patch("easydiffraction.experiments.experiments.Experiments"), \ - patch("easydiffraction.analysis.analysis.Analysis"), \ - patch("easydiffraction.summary.Summary"): + with ( + patch('easydiffraction.sample_models.sample_models.SampleModels'), + patch('easydiffraction.experiments.experiments.Experiments'), + patch('easydiffraction.analysis.analysis.Analysis'), + patch('easydiffraction.summary.Summary'), + ): project = Project() # Directly assign the instance to a variable - project.save_as("new_project_path") + project.save_as('new_project_path') # Assertions - assert project.info.path.endswith("new_project_path") + assert project.info.path.endswith('new_project_path') mock_makedirs.assert_any_call(project.info.path, exist_ok=True) - mock_open.assert_any_call(os.path.join(project.info.path, "project.cif"), "w") + mock_open.assert_any_call(os.path.join(project.info.path, 'project.cif'), 'w') def test_project_set_sample_models(): - with patch("easydiffraction.sample_models.sample_models.SampleModels"), \ - patch("easydiffraction.experiments.experiments.Experiments"), \ - patch("easydiffraction.analysis.analysis.Analysis"), \ - patch("easydiffraction.summary.Summary"): + with ( + patch('easydiffraction.sample_models.sample_models.SampleModels'), + patch('easydiffraction.experiments.experiments.Experiments'), + patch('easydiffraction.analysis.analysis.Analysis'), + patch('easydiffraction.summary.Summary'), + ): project = Project() # Directly assign the instance to a variable sample_models = MagicMock() @@ -166,10 +179,12 @@ def test_project_set_sample_models(): def test_project_set_experiments(): - with patch("easydiffraction.sample_models.sample_models.SampleModels"), \ - patch("easydiffraction.experiments.experiments.Experiments"), \ - patch("easydiffraction.analysis.analysis.Analysis"), \ - patch("easydiffraction.summary.Summary"): + with ( + patch('easydiffraction.sample_models.sample_models.SampleModels'), + patch('easydiffraction.experiments.experiments.Experiments'), + patch('easydiffraction.analysis.analysis.Analysis'), + patch('easydiffraction.summary.Summary'), + ): project = Project() # Directly assign the instance to a variable experiments = MagicMock() diff --git a/tests/unit_tests/test_symmetry_lookup_table.py b/tests/unit_tests/test_symmetry_lookup_table.py index d9e83b04..236071bf 100644 --- a/tests/unit_tests/test_symmetry_lookup_table.py +++ b/tests/unit_tests/test_symmetry_lookup_table.py @@ -12,80 +12,99 @@ def test_lookup_table_consistency(): assert entry['IT_coordinate_system_code'] == it_code -@pytest.mark.parametrize("key, expected", [ - ((62, "cab"), - { - "IT_number": 62, - "setting": 2, - "IT_coordinate_system_code": "cab", - "name_H-M_alt": "P b n m", - "crystal_system": "orthorhombic", - "Wyckoff_positions": { - "d": { - "multiplicity": 8, - "site_symmetry": "1", - "coords_xyz": [ - "(x,y,z)", "(x+1/2,-y+1/2,-z)", "(-x,-y,z+1/2)", "(-x+1/2,y+1/2,-z+1/2)", - "(-x,-y,-z)", "(-x+1/2,y+1/2,z)", "(x,y,-z+1/2)", "(x+1/2,-y+1/2,z+1/2)" - ] +@pytest.mark.parametrize( + 'key, expected', + [ + ( + (62, 'cab'), + { + 'IT_number': 62, + 'setting': 2, + 'IT_coordinate_system_code': 'cab', + 'name_H-M_alt': 'P b n m', + 'crystal_system': 'orthorhombic', + 'Wyckoff_positions': { + 'd': { + 'multiplicity': 8, + 'site_symmetry': '1', + 'coords_xyz': [ + '(x,y,z)', + '(x+1/2,-y+1/2,-z)', + '(-x,-y,z+1/2)', + '(-x+1/2,y+1/2,-z+1/2)', + '(-x,-y,-z)', + '(-x+1/2,y+1/2,z)', + '(x,y,-z+1/2)', + '(x+1/2,-y+1/2,z+1/2)', + ], + }, + 'c': { + 'multiplicity': 4, + 'site_symmetry': '.m.', + 'coords_xyz': ['(x,y,1/4)', '(x+1/2,-y+1/2,3/4)', '(-x,-y,3/4)', '(-x+1/2,y+1/2,1/4)'], + }, + 'b': { + 'multiplicity': 4, + 'site_symmetry': '-1', + 'coords_xyz': ['(1/2,0,0)', '(0,1/2,0)', '(1/2,0,1/2)', '(0,1/2,1/2)'], + }, + 'a': { + 'multiplicity': 4, + 'site_symmetry': '-1', + 'coords_xyz': ['(0,0,0)', '(1/2,1/2,0)', '(0,0,1/2)', '(1/2,1/2,1/2)'], + }, + }, }, - "c": { - "multiplicity": 4, - "site_symmetry": ".m.", - "coords_xyz": [ - "(x,y,1/4)", "(x+1/2,-y+1/2,3/4)", "(-x,-y,3/4)", "(-x+1/2,y+1/2,1/4)" - ] + ), + ( + (199, '1'), + { + 'IT_number': 199, + 'setting': 0, + 'IT_coordinate_system_code': '1', + 'name_H-M_alt': 'I 21 3', + 'crystal_system': 'cubic', + 'Wyckoff_positions': { + 'c': { + 'multiplicity': 24, + 'site_symmetry': '1', + 'coords_xyz': [ + '(x,y,z)', + '(-x+1/2,-y,z+1/2)', + '(-x,y+1/2,-z+1/2)', + '(x+1/2,-y+1/2,-z)', + '(z,x,y)', + '(z+1/2,-x+1/2,-y)', + '(-z+1/2,-x,y+1/2)', + '(-z,x+1/2,-y+1/2)', + '(y,z,x)', + '(-y,z+1/2,-x+1/2)', + '(y+1/2,-z+1/2,-x)', + '(-y+1/2,-z,x+1/2)', + ], + }, + 'b': { + 'multiplicity': 12, + 'site_symmetry': '2..', + 'coords_xyz': [ + '(x,0,1/4)', + '(-x+1/2,0,3/4)', + '(1/4,x,0)', + '(3/4,-x+1/2,0)', + '(0,1/4,x)', + '(0,3/4,-x+1/2)', + ], + }, + 'a': { + 'multiplicity': 8, + 'site_symmetry': '.3.', + 'coords_xyz': ['(x,x,x)', '(-x+1/2,-x,x+1/2)', '(-x,x+1/2,-x+1/2)', '(x+1/2,-x+1/2,-x)'], + }, + }, }, - "b": { - "multiplicity": 4, - "site_symmetry": "-1", - "coords_xyz": [ - "(1/2,0,0)", "(0,1/2,0)", "(1/2,0,1/2)", "(0,1/2,1/2)" - ] - }, - "a": { - "multiplicity": 4, - "site_symmetry": "-1", - "coords_xyz": [ - "(0,0,0)", "(1/2,1/2,0)", "(0,0,1/2)", "(1/2,1/2,1/2)" - ] - } - } - }), - ((199, "1"), - { - "IT_number": 199, - "setting": 0, - "IT_coordinate_system_code": "1", - "name_H-M_alt": "I 21 3", - "crystal_system": "cubic", - "Wyckoff_positions": { - "c": { - "multiplicity": 24, - "site_symmetry": "1", - "coords_xyz": [ - "(x,y,z)", "(-x+1/2,-y,z+1/2)", "(-x,y+1/2,-z+1/2)", "(x+1/2,-y+1/2,-z)", - "(z,x,y)", "(z+1/2,-x+1/2,-y)", "(-z+1/2,-x,y+1/2)", "(-z,x+1/2,-y+1/2)", - "(y,z,x)", "(-y,z+1/2,-x+1/2)", "(y+1/2,-z+1/2,-x)", "(-y+1/2,-z,x+1/2)" - ] - }, - "b": { - "multiplicity": 12, - "site_symmetry": "2..", - "coords_xyz": [ - "(x,0,1/4)", "(-x+1/2,0,3/4)", "(1/4,x,0)", - "(3/4,-x+1/2,0)", "(0,1/4,x)", "(0,3/4,-x+1/2)" - ] - }, - "a": { - "multiplicity": 8, - "site_symmetry": ".3.", - "coords_xyz": [ - "(x,x,x)", "(-x+1/2,-x,x+1/2)", "(-x,x+1/2,-x+1/2)", "(x+1/2,-x+1/2,-x)" - ] - } - } - })]) + ), + ], +) def test_space_group_lookup_table_yields_expected(key, expected): """Check the lookup table for a few keys and check that the output matches the expected""" entry = SPACE_GROUP_LOOKUP_DICT[key] @@ -100,11 +119,10 @@ def test_space_group_lookup_table_yields_expected(key, expected): assert expected[sub_key] == entry[sub_key] # Then check Wyckoff - wyckoff_entry = entry["Wyckoff_positions"] - wyckoff_expected = expected["Wyckoff_positions"] + wyckoff_entry = entry['Wyckoff_positions'] + wyckoff_expected = expected['Wyckoff_positions'] for site in wyckoff_expected.keys(): assert site in wyckoff_expected.keys() - assert wyckoff_entry[site]["multiplicity"] == wyckoff_expected[site]["multiplicity"] - assert wyckoff_entry[site]["site_symmetry"] == wyckoff_expected[site]["site_symmetry"] - assert np.all(wyckoff_entry[site]["coords_xyz"] == wyckoff_expected[site]["coords_xyz"]) - + assert wyckoff_entry[site]['multiplicity'] == wyckoff_expected[site]['multiplicity'] + assert wyckoff_entry[site]['site_symmetry'] == wyckoff_expected[site]['site_symmetry'] + assert np.all(wyckoff_entry[site]['coords_xyz'] == wyckoff_expected[site]['coords_xyz']) diff --git a/tools/create_mkdocs-yml.py b/tools/create_mkdocs-yml.py index 8e26a89e..16da323d 100644 --- a/tools/create_mkdocs-yml.py +++ b/tools/create_mkdocs-yml.py @@ -27,21 +27,21 @@ def load_yaml_with_env_variables(file_path: str) -> Dict[str, Any]: Returns: dict: Parsed YAML content with environment variables replaced. """ - tag = "!ENV" - pattern = re.compile(r".*?\${([A-Z0-9_]+)}.*?") + tag = '!ENV' + pattern = re.compile(r'.*?\${([A-Z0-9_]+)}.*?') def constructor_env_variables(loader, node): """Replace !ENV ${VAR_NAME} with the actual environment variable values.""" value = loader.construct_scalar(node) for var in pattern.findall(value): - value = value.replace(f"${{{var}}}", os.environ.get(var, var)) + value = value.replace(f'${{{var}}}', os.environ.get(var, var)) return value loader = yaml.FullLoader loader.add_implicit_resolver(tag, pattern, None) loader.add_constructor(tag, constructor_env_variables) - with open(file_path, "r", encoding="utf-8") as file: + with open(file_path, 'r', encoding='utf-8') as file: return yaml.full_load(file) @@ -127,21 +127,21 @@ class CustomDumper(yaml.Dumper): def ignore_aliases(self, data): return True # Prevents unnecessary YAML processing on certain tags - with open(output_file, "w", encoding="utf-8") as f: - f.write("# WARNING: This file is auto-generated during the build process.\n") - f.write("# DO NOT EDIT THIS FILE MANUALLY.\n") - f.write("# It is created by merging:\n") - f.write("# - Generic YAML file: ../assets-docs/mkdocs.yml\n") - f.write("# - Project specific YAML file: docs/mkdocs.yml\n\n") + with open(output_file, 'w', encoding='utf-8') as f: + f.write('# WARNING: This file is auto-generated during the build process.\n') + f.write('# DO NOT EDIT THIS FILE MANUALLY.\n') + f.write('# It is created by merging:\n') + f.write('# - Generic YAML file: ../assets-docs/mkdocs.yml\n') + f.write('# - Project specific YAML file: docs/mkdocs.yml\n\n') - with open(output_file, "a", encoding="utf-8") as f: + with open(output_file, 'a', encoding='utf-8') as f: yaml.dump( data, f, Dumper=CustomDumper, # Use custom dumper allow_unicode=True, # Ensure Unicode characters like © are preserved default_flow_style=False, # - sort_keys=False, # Preserve the order of keys + sort_keys=False, # Preserve the order of keys ) @@ -149,20 +149,20 @@ def main() -> None: """ Main function to read, merge, and save YAML configurations. """ - generic_config_path = "../assets-docs/mkdocs.yml" - specific_config_path = "docs/mkdocs.yml" - output_path = "mkdocs.yml" + generic_config_path = '../assets-docs/mkdocs.yml' + specific_config_path = 'docs/mkdocs.yml' + output_path = 'mkdocs.yml' - print(f"Reading generic config: {generic_config_path}") + print(f'Reading generic config: {generic_config_path}') base_config = load_yaml_with_env_variables(generic_config_path) - print(f"Reading project specific config: {specific_config_path}") + print(f'Reading project specific config: {specific_config_path}') override_config = load_yaml_with_env_variables(specific_config_path) - print(f"Saving merged config: {output_path}") + print(f'Saving merged config: {output_path}') merged_config = merge_yaml(base_config, override_config) save_yaml(merged_config, output_path) -if __name__ == "__main__": +if __name__ == '__main__': main() diff --git a/tutorials/advanced_joint-fit_pd-neut-xray-cwl_PbSO4.ipynb b/tutorials/advanced_joint-fit_pd-neut-xray-cwl_PbSO4.ipynb index ab039757..9090d322 100644 --- a/tutorials/advanced_joint-fit_pd-neut-xray-cwl_PbSO4.ipynb +++ b/tutorials/advanced_joint-fit_pd-neut-xray-cwl_PbSO4.ipynb @@ -144,8 +144,7 @@ "metadata": {}, "outputs": [], "source": [ - "download_from_repository('d1a_pbso4.dat',\n", - " destination='data')" + "download_from_repository('d1a_pbso4.dat', destination='data')" ] }, { @@ -163,9 +162,7 @@ "metadata": {}, "outputs": [], "source": [ - "expt1 = Experiment('npd',\n", - " radiation_probe='neutron',\n", - " data_path='data/d1a_pbso4.dat')" + "expt1 = Experiment('npd', radiation_probe='neutron', data_path='data/d1a_pbso4.dat')" ] }, { @@ -298,8 +295,7 @@ "metadata": {}, "outputs": [], "source": [ - "download_from_repository('lab_pbso4.dat',\n", - " destination='data')" + "download_from_repository('lab_pbso4.dat', destination='data')" ] }, { @@ -317,9 +313,7 @@ "metadata": {}, "outputs": [], "source": [ - "expt2 = Experiment('xrd',\n", - " radiation_probe='xray',\n", - " data_path='data/lab_pbso4.dat')" + "expt2 = Experiment('xrd', radiation_probe='xray', data_path='data/lab_pbso4.dat')" ] }, { @@ -650,9 +644,7 @@ "metadata": {}, "outputs": [], "source": [ - "project.plot_meas_vs_calc(expt_name='npd',\n", - " x_min=35.5, x_max=38.3,\n", - " show_residual=True)" + "project.plot_meas_vs_calc(expt_name='npd', x_min=35.5, x_max=38.3, show_residual=True)" ] }, { @@ -662,9 +654,7 @@ "metadata": {}, "outputs": [], "source": [ - "project.plot_meas_vs_calc(expt_name='xrd',\n", - " x_min=29.0, x_max=30.4,\n", - " show_residual=True)" + "project.plot_meas_vs_calc(expt_name='xrd', x_min=29.0, x_max=30.4, show_residual=True)" ] } ], diff --git a/tutorials/advanced_joint-fit_pd-neut-xray-cwl_PbSO4.py b/tutorials/advanced_joint-fit_pd-neut-xray-cwl_PbSO4.py index d171ca41..a1327c82 100644 --- a/tutorials/advanced_joint-fit_pd-neut-xray-cwl_PbSO4.py +++ b/tutorials/advanced_joint-fit_pd-neut-xray-cwl_PbSO4.py @@ -65,16 +65,13 @@ # #### Download Data # %% -download_from_repository('d1a_pbso4.dat', - destination='data') +download_from_repository('d1a_pbso4.dat', destination='data') # %% [markdown] # #### Create Experiment # %% -expt1 = Experiment('npd', - radiation_probe='neutron', - data_path='data/d1a_pbso4.dat') +expt1 = Experiment('npd', radiation_probe='neutron', data_path='data/d1a_pbso4.dat') # %% [markdown] # #### Set Instrument @@ -130,16 +127,13 @@ # #### Download Data # %% -download_from_repository('lab_pbso4.dat', - destination='data') +download_from_repository('lab_pbso4.dat', destination='data') # %% [markdown] # #### Create Experiment # %% -expt2 = Experiment('xrd', - radiation_probe='xray', - data_path='data/lab_pbso4.dat') +expt2 = Experiment('xrd', radiation_probe='xray', data_path='data/lab_pbso4.dat') # %% [markdown] # #### Set Instrument @@ -278,11 +272,7 @@ # #### Plot Measured vs Calculated # %% -project.plot_meas_vs_calc(expt_name='npd', - x_min=35.5, x_max=38.3, - show_residual=True) +project.plot_meas_vs_calc(expt_name='npd', x_min=35.5, x_max=38.3, show_residual=True) # %% -project.plot_meas_vs_calc(expt_name='xrd', - x_min=29.0, x_max=30.4, - show_residual=True) +project.plot_meas_vs_calc(expt_name='xrd', x_min=29.0, x_max=30.4, show_residual=True) diff --git a/tutorials/basic_single-fit_pd-neut-cwl_LBCO-HRPT.ipynb b/tutorials/basic_single-fit_pd-neut-cwl_LBCO-HRPT.ipynb index a5ab68dc..28c9e229 100644 --- a/tutorials/basic_single-fit_pd-neut-cwl_LBCO-HRPT.ipynb +++ b/tutorials/basic_single-fit_pd-neut-cwl_LBCO-HRPT.ipynb @@ -301,36 +301,44 @@ "metadata": {}, "outputs": [], "source": [ - "project.sample_models['lbco'].atom_sites.add(label='La',\n", - " type_symbol='La',\n", - " fract_x=0,\n", - " fract_y=0,\n", - " fract_z=0,\n", - " wyckoff_letter='a',\n", - " b_iso=0.5,\n", - " occupancy=0.5)\n", - "project.sample_models['lbco'].atom_sites.add(label='Ba',\n", - " type_symbol='Ba',\n", - " fract_x=0,\n", - " fract_y=0,\n", - " fract_z=0,\n", - " wyckoff_letter='a',\n", - " b_iso=0.5,\n", - " occupancy=0.5)\n", - "project.sample_models['lbco'].atom_sites.add(label='Co',\n", - " type_symbol='Co',\n", - " fract_x=0.5,\n", - " fract_y=0.5,\n", - " fract_z=0.5,\n", - " wyckoff_letter='b',\n", - " b_iso=0.5)\n", - "project.sample_models['lbco'].atom_sites.add(label='O',\n", - " type_symbol='O',\n", - " fract_x=0,\n", - " fract_y=0.5,\n", - " fract_z=0.5,\n", - " wyckoff_letter='c',\n", - " b_iso=0.5)" + "project.sample_models['lbco'].atom_sites.add(\n", + " label='La',\n", + " type_symbol='La',\n", + " fract_x=0,\n", + " fract_y=0,\n", + " fract_z=0,\n", + " wyckoff_letter='a',\n", + " b_iso=0.5,\n", + " occupancy=0.5,\n", + ")\n", + "project.sample_models['lbco'].atom_sites.add(\n", + " label='Ba',\n", + " type_symbol='Ba',\n", + " fract_x=0,\n", + " fract_y=0,\n", + " fract_z=0,\n", + " wyckoff_letter='a',\n", + " b_iso=0.5,\n", + " occupancy=0.5,\n", + ")\n", + "project.sample_models['lbco'].atom_sites.add(\n", + " label='Co',\n", + " type_symbol='Co',\n", + " fract_x=0.5,\n", + " fract_y=0.5,\n", + " fract_z=0.5,\n", + " wyckoff_letter='b',\n", + " b_iso=0.5,\n", + ")\n", + "project.sample_models['lbco'].atom_sites.add(\n", + " label='O',\n", + " type_symbol='O',\n", + " fract_x=0,\n", + " fract_y=0.5,\n", + " fract_z=0.5,\n", + " wyckoff_letter='c',\n", + " b_iso=0.5,\n", + ")" ] }, { @@ -437,8 +445,7 @@ "metadata": {}, "outputs": [], "source": [ - "ed.download_from_repository('hrpt_lbco.xye',\n", - " destination='data')" + "ed.download_from_repository('hrpt_lbco.xye', destination='data')" ] }, { @@ -456,11 +463,13 @@ "metadata": {}, "outputs": [], "source": [ - "project.experiments.add(name='hrpt',\n", - " sample_form='powder',\n", - " beam_mode='constant wavelength',\n", - " radiation_probe='neutron',\n", - " data_path='data/hrpt_lbco.xye')" + "project.experiments.add(\n", + " name='hrpt',\n", + " sample_form='powder',\n", + " beam_mode='constant wavelength',\n", + " radiation_probe='neutron',\n", + " data_path='data/hrpt_lbco.xye',\n", + ")" ] }, { @@ -850,8 +859,7 @@ "metadata": {}, "outputs": [], "source": [ - "project.plot_meas_vs_calc(expt_name='hrpt',\n", - " show_residual=True)" + "project.plot_meas_vs_calc(expt_name='hrpt', show_residual=True)" ] }, { @@ -861,9 +869,7 @@ "metadata": {}, "outputs": [], "source": [ - "project.plot_meas_vs_calc(expt_name='hrpt',\n", - " x_min=38, x_max=41,\n", - " show_residual=True)" + "project.plot_meas_vs_calc(expt_name='hrpt', x_min=38, x_max=41, show_residual=True)" ] }, { @@ -1147,8 +1153,7 @@ "metadata": {}, "outputs": [], "source": [ - "project.plot_meas_vs_calc(expt_name='hrpt',\n", - " show_residual=True)" + "project.plot_meas_vs_calc(expt_name='hrpt', show_residual=True)" ] }, { @@ -1158,9 +1163,7 @@ "metadata": {}, "outputs": [], "source": [ - "project.plot_meas_vs_calc(expt_name='hrpt',\n", - " x_min=38, x_max=41,\n", - " show_residual=True)" + "project.plot_meas_vs_calc(expt_name='hrpt', x_min=38, x_max=41, show_residual=True)" ] }, { @@ -1255,8 +1258,7 @@ "metadata": {}, "outputs": [], "source": [ - "project.plot_meas_vs_calc(expt_name='hrpt',\n", - " show_residual=True)" + "project.plot_meas_vs_calc(expt_name='hrpt', show_residual=True)" ] }, { @@ -1266,9 +1268,7 @@ "metadata": {}, "outputs": [], "source": [ - "project.plot_meas_vs_calc(expt_name='hrpt',\n", - " x_min=38, x_max=41,\n", - " show_residual=True)" + "project.plot_meas_vs_calc(expt_name='hrpt', x_min=38, x_max=41, show_residual=True)" ] }, { @@ -1363,8 +1363,7 @@ "metadata": {}, "outputs": [], "source": [ - "project.plot_meas_vs_calc(expt_name='hrpt',\n", - " show_residual=True)" + "project.plot_meas_vs_calc(expt_name='hrpt', show_residual=True)" ] }, { @@ -1374,9 +1373,7 @@ "metadata": {}, "outputs": [], "source": [ - "project.plot_meas_vs_calc(expt_name='hrpt',\n", - " x_min=38, x_max=41,\n", - " show_residual=True)" + "project.plot_meas_vs_calc(expt_name='hrpt', x_min=38, x_max=41, show_residual=True)" ] }, { @@ -1416,14 +1413,8 @@ "metadata": {}, "outputs": [], "source": [ - "project.analysis.aliases.add(\n", - " label='biso_La',\n", - " param_uid=project.sample_models['lbco'].atom_sites['La'].b_iso.uid\n", - ")\n", - "project.analysis.aliases.add(\n", - " label='biso_Ba',\n", - " param_uid=project.sample_models['lbco'].atom_sites['Ba'].b_iso.uid\n", - ")" + "project.analysis.aliases.add(label='biso_La', param_uid=project.sample_models['lbco'].atom_sites['La'].b_iso.uid)\n", + "project.analysis.aliases.add(label='biso_Ba', param_uid=project.sample_models['lbco'].atom_sites['Ba'].b_iso.uid)" ] }, { @@ -1441,10 +1432,7 @@ "metadata": {}, "outputs": [], "source": [ - "project.analysis.constraints.add(\n", - " lhs_alias='biso_Ba',\n", - " rhs_expr='biso_La'\n", - ")" + "project.analysis.constraints.add(lhs_alias='biso_Ba', rhs_expr='biso_La')" ] }, { @@ -1552,8 +1540,7 @@ "metadata": {}, "outputs": [], "source": [ - "project.plot_meas_vs_calc(expt_name='hrpt',\n", - " show_residual=True)" + "project.plot_meas_vs_calc(expt_name='hrpt', show_residual=True)" ] }, { @@ -1563,9 +1550,7 @@ "metadata": {}, "outputs": [], "source": [ - "project.plot_meas_vs_calc(expt_name='hrpt',\n", - " x_min=38, x_max=41,\n", - " show_residual=True)" + "project.plot_meas_vs_calc(expt_name='hrpt', x_min=38, x_max=41, show_residual=True)" ] }, { @@ -1607,11 +1592,11 @@ "source": [ "project.analysis.aliases.add(\n", " label='occ_La',\n", - " param_uid=project.sample_models['lbco'].atom_sites['La'].occupancy.uid\n", + " param_uid=project.sample_models['lbco'].atom_sites['La'].occupancy.uid,\n", ")\n", "project.analysis.aliases.add(\n", " label='occ_Ba',\n", - " param_uid=project.sample_models['lbco'].atom_sites['Ba'].occupancy.uid\n", + " param_uid=project.sample_models['lbco'].atom_sites['Ba'].occupancy.uid,\n", ")" ] }, @@ -1632,7 +1617,7 @@ "source": [ "project.analysis.constraints.add(\n", " lhs_alias='occ_Ba',\n", - " rhs_expr='1 - occ_La'\n", + " rhs_expr='1 - occ_La',\n", ")" ] }, @@ -1741,8 +1726,7 @@ "metadata": {}, "outputs": [], "source": [ - "project.plot_meas_vs_calc(expt_name='hrpt',\n", - " show_residual=True)" + "project.plot_meas_vs_calc(expt_name='hrpt', show_residual=True)" ] }, { @@ -1752,9 +1736,7 @@ "metadata": {}, "outputs": [], "source": [ - "project.plot_meas_vs_calc(expt_name='hrpt',\n", - " x_min=38, x_max=41,\n", - " show_residual=True)" + "project.plot_meas_vs_calc(expt_name='hrpt', x_min=38, x_max=41, show_residual=True)" ] }, { diff --git a/tutorials/basic_single-fit_pd-neut-cwl_LBCO-HRPT.py b/tutorials/basic_single-fit_pd-neut-cwl_LBCO-HRPT.py index 60f76234..ca885349 100644 --- a/tutorials/basic_single-fit_pd-neut-cwl_LBCO-HRPT.py +++ b/tutorials/basic_single-fit_pd-neut-cwl_LBCO-HRPT.py @@ -124,36 +124,44 @@ # Add atom sites to the sample model. # %% -project.sample_models['lbco'].atom_sites.add(label='La', - type_symbol='La', - fract_x=0, - fract_y=0, - fract_z=0, - wyckoff_letter='a', - b_iso=0.5, - occupancy=0.5) -project.sample_models['lbco'].atom_sites.add(label='Ba', - type_symbol='Ba', - fract_x=0, - fract_y=0, - fract_z=0, - wyckoff_letter='a', - b_iso=0.5, - occupancy=0.5) -project.sample_models['lbco'].atom_sites.add(label='Co', - type_symbol='Co', - fract_x=0.5, - fract_y=0.5, - fract_z=0.5, - wyckoff_letter='b', - b_iso=0.5) -project.sample_models['lbco'].atom_sites.add(label='O', - type_symbol='O', - fract_x=0, - fract_y=0.5, - fract_z=0.5, - wyckoff_letter='c', - b_iso=0.5) +project.sample_models['lbco'].atom_sites.add( + label='La', + type_symbol='La', + fract_x=0, + fract_y=0, + fract_z=0, + wyckoff_letter='a', + b_iso=0.5, + occupancy=0.5, +) +project.sample_models['lbco'].atom_sites.add( + label='Ba', + type_symbol='Ba', + fract_x=0, + fract_y=0, + fract_z=0, + wyckoff_letter='a', + b_iso=0.5, + occupancy=0.5, +) +project.sample_models['lbco'].atom_sites.add( + label='Co', + type_symbol='Co', + fract_x=0.5, + fract_y=0.5, + fract_z=0.5, + wyckoff_letter='b', + b_iso=0.5, +) +project.sample_models['lbco'].atom_sites.add( + label='O', + type_symbol='O', + fract_x=0, + fract_y=0.5, + fract_z=0.5, + wyckoff_letter='c', + b_iso=0.5, +) # %% [markdown] # #### Apply Symmetry Constraints @@ -195,18 +203,19 @@ # Download the data file from the EasyDiffraction repository on GitHub. # %% -ed.download_from_repository('hrpt_lbco.xye', - destination='data') +ed.download_from_repository('hrpt_lbco.xye', destination='data') # %% [markdown] # #### Add Diffraction Experiment # %% -project.experiments.add(name='hrpt', - sample_form='powder', - beam_mode='constant wavelength', - radiation_probe='neutron', - data_path='data/hrpt_lbco.xye') +project.experiments.add( + name='hrpt', + sample_form='powder', + beam_mode='constant wavelength', + radiation_probe='neutron', + data_path='data/hrpt_lbco.xye', +) # %% [markdown] # #### Show Defined Experiments @@ -351,13 +360,10 @@ # #### Plot Measured vs Calculated # %% -project.plot_meas_vs_calc(expt_name='hrpt', - show_residual=True) +project.plot_meas_vs_calc(expt_name='hrpt', show_residual=True) # %% -project.plot_meas_vs_calc(expt_name='hrpt', - x_min=38, x_max=41, - show_residual=True) +project.plot_meas_vs_calc(expt_name='hrpt', x_min=38, x_max=41, show_residual=True) # %% [markdown] # #### Show Parameters @@ -461,13 +467,10 @@ # #### Plot Measured vs Calculated # %% -project.plot_meas_vs_calc(expt_name='hrpt', - show_residual=True) +project.plot_meas_vs_calc(expt_name='hrpt', show_residual=True) # %% -project.plot_meas_vs_calc(expt_name='hrpt', - x_min=38, x_max=41, - show_residual=True) +project.plot_meas_vs_calc(expt_name='hrpt', x_min=38, x_max=41, show_residual=True) # %% [markdown] # #### Save Project State @@ -502,13 +505,10 @@ # #### Plot Measured vs Calculated # %% -project.plot_meas_vs_calc(expt_name='hrpt', - show_residual=True) +project.plot_meas_vs_calc(expt_name='hrpt', show_residual=True) # %% -project.plot_meas_vs_calc(expt_name='hrpt', - x_min=38, x_max=41, - show_residual=True) +project.plot_meas_vs_calc(expt_name='hrpt', x_min=38, x_max=41, show_residual=True) # %% [markdown] # #### Save Project State @@ -543,13 +543,10 @@ # #### Plot Measured vs Calculated # %% -project.plot_meas_vs_calc(expt_name='hrpt', - show_residual=True) +project.plot_meas_vs_calc(expt_name='hrpt', show_residual=True) # %% -project.plot_meas_vs_calc(expt_name='hrpt', - x_min=38, x_max=41, - show_residual=True) +project.plot_meas_vs_calc(expt_name='hrpt', x_min=38, x_max=41, show_residual=True) # %% [markdown] # #### Save Project State @@ -565,23 +562,14 @@ # Set aliases for parameters. # %% -project.analysis.aliases.add( - label='biso_La', - param_uid=project.sample_models['lbco'].atom_sites['La'].b_iso.uid -) -project.analysis.aliases.add( - label='biso_Ba', - param_uid=project.sample_models['lbco'].atom_sites['Ba'].b_iso.uid -) +project.analysis.aliases.add(label='biso_La', param_uid=project.sample_models['lbco'].atom_sites['La'].b_iso.uid) +project.analysis.aliases.add(label='biso_Ba', param_uid=project.sample_models['lbco'].atom_sites['Ba'].b_iso.uid) # %% [markdown] # Set constraints. # %% -project.analysis.constraints.add( - lhs_alias='biso_Ba', - rhs_expr='biso_La' -) +project.analysis.constraints.add(lhs_alias='biso_Ba', rhs_expr='biso_La') # %% [markdown] # Show defined constraints. @@ -617,13 +605,10 @@ # #### Plot Measured vs Calculated # %% -project.plot_meas_vs_calc(expt_name='hrpt', - show_residual=True) +project.plot_meas_vs_calc(expt_name='hrpt', show_residual=True) # %% -project.plot_meas_vs_calc(expt_name='hrpt', - x_min=38, x_max=41, - show_residual=True) +project.plot_meas_vs_calc(expt_name='hrpt', x_min=38, x_max=41, show_residual=True) # %% [markdown] # #### Save Project State @@ -641,11 +626,11 @@ # %% project.analysis.aliases.add( label='occ_La', - param_uid=project.sample_models['lbco'].atom_sites['La'].occupancy.uid + param_uid=project.sample_models['lbco'].atom_sites['La'].occupancy.uid, ) project.analysis.aliases.add( label='occ_Ba', - param_uid=project.sample_models['lbco'].atom_sites['Ba'].occupancy.uid + param_uid=project.sample_models['lbco'].atom_sites['Ba'].occupancy.uid, ) # %% [markdown] @@ -654,7 +639,7 @@ # %% project.analysis.constraints.add( lhs_alias='occ_Ba', - rhs_expr='1 - occ_La' + rhs_expr='1 - occ_La', ) # %% [markdown] @@ -691,13 +676,10 @@ # #### Plot Measured vs Calculated # %% -project.plot_meas_vs_calc(expt_name='hrpt', - show_residual=True) +project.plot_meas_vs_calc(expt_name='hrpt', show_residual=True) # %% -project.plot_meas_vs_calc(expt_name='hrpt', - x_min=38, x_max=41, - show_residual=True) +project.plot_meas_vs_calc(expt_name='hrpt', x_min=38, x_max=41, show_residual=True) # %% [markdown] # #### Save Project State diff --git a/tutorials/cryst-struct_pd-neut-cwl_CoSiO4-D20.ipynb b/tutorials/cryst-struct_pd-neut-cwl_CoSiO4-D20.ipynb index 48c0e820..55b69a07 100644 --- a/tutorials/cryst-struct_pd-neut-cwl_CoSiO4-D20.ipynb +++ b/tutorials/cryst-struct_pd-neut-cwl_CoSiO4-D20.ipynb @@ -525,11 +525,11 @@ "source": [ "project.analysis.aliases.add(\n", " label='biso_Co1',\n", - " param_uid=project.sample_models['cosio'].atom_sites['Co1'].b_iso.uid\n", + " param_uid=project.sample_models['cosio'].atom_sites['Co1'].b_iso.uid,\n", ")\n", "project.analysis.aliases.add(\n", " label='biso_Co2',\n", - " param_uid=project.sample_models['cosio'].atom_sites['Co2'].b_iso.uid\n", + " param_uid=project.sample_models['cosio'].atom_sites['Co2'].b_iso.uid,\n", ")" ] }, @@ -550,7 +550,7 @@ "source": [ "project.analysis.constraints.add(\n", " lhs_alias='biso_Co2',\n", - " rhs_expr='biso_Co1'\n", + " rhs_expr='biso_Co1',\n", ")" ] }, diff --git a/tutorials/cryst-struct_pd-neut-cwl_CoSiO4-D20.py b/tutorials/cryst-struct_pd-neut-cwl_CoSiO4-D20.py index ea844c24..b366548c 100644 --- a/tutorials/cryst-struct_pd-neut-cwl_CoSiO4-D20.py +++ b/tutorials/cryst-struct_pd-neut-cwl_CoSiO4-D20.py @@ -229,11 +229,11 @@ # %% project.analysis.aliases.add( label='biso_Co1', - param_uid=project.sample_models['cosio'].atom_sites['Co1'].b_iso.uid + param_uid=project.sample_models['cosio'].atom_sites['Co1'].b_iso.uid, ) project.analysis.aliases.add( label='biso_Co2', - param_uid=project.sample_models['cosio'].atom_sites['Co2'].b_iso.uid + param_uid=project.sample_models['cosio'].atom_sites['Co2'].b_iso.uid, ) # %% [markdown] @@ -242,7 +242,7 @@ # %% project.analysis.constraints.add( lhs_alias='biso_Co2', - rhs_expr='biso_Co1' + rhs_expr='biso_Co1', ) # %% [markdown] diff --git a/tutorials/cryst-struct_pd-neut-cwl_HS-HRPT.ipynb b/tutorials/cryst-struct_pd-neut-cwl_HS-HRPT.ipynb index caa78b19..cc5817e6 100644 --- a/tutorials/cryst-struct_pd-neut-cwl_HS-HRPT.ipynb +++ b/tutorials/cryst-struct_pd-neut-cwl_HS-HRPT.ipynb @@ -190,8 +190,7 @@ "metadata": {}, "outputs": [], "source": [ - "download_from_repository('hrpt_hs.xye',\n", - " destination='data')" + "download_from_repository('hrpt_hs.xye', destination='data')" ] }, { @@ -209,8 +208,7 @@ "metadata": {}, "outputs": [], "source": [ - "expt = Experiment(name='hrpt',\n", - " data_path='data/hrpt_hs.xye')" + "expt = Experiment(name='hrpt', data_path='data/hrpt_hs.xye')" ] }, { @@ -431,8 +429,7 @@ "metadata": {}, "outputs": [], "source": [ - "project.plot_meas_vs_calc(expt_name='hrpt',\n", - " show_residual=True)" + "project.plot_meas_vs_calc(expt_name='hrpt', show_residual=True)" ] }, { @@ -442,9 +439,7 @@ "metadata": {}, "outputs": [], "source": [ - "project.plot_meas_vs_calc(expt_name='hrpt',\n", - " x_min=48, x_max=51,\n", - " show_residual=True)" + "project.plot_meas_vs_calc(expt_name='hrpt', x_min=48, x_max=51, show_residual=True)" ] }, { @@ -522,8 +517,7 @@ "metadata": {}, "outputs": [], "source": [ - "project.plot_meas_vs_calc(expt_name='hrpt',\n", - " show_residual=True)" + "project.plot_meas_vs_calc(expt_name='hrpt', show_residual=True)" ] }, { @@ -533,9 +527,7 @@ "metadata": {}, "outputs": [], "source": [ - "project.plot_meas_vs_calc(expt_name='hrpt',\n", - " x_min=48, x_max=51,\n", - " show_residual=True)" + "project.plot_meas_vs_calc(expt_name='hrpt', x_min=48, x_max=51, show_residual=True)" ] }, { @@ -615,8 +607,7 @@ "metadata": {}, "outputs": [], "source": [ - "project.plot_meas_vs_calc(expt_name='hrpt',\n", - " show_residual=True)" + "project.plot_meas_vs_calc(expt_name='hrpt', show_residual=True)" ] }, { @@ -626,9 +617,7 @@ "metadata": {}, "outputs": [], "source": [ - "project.plot_meas_vs_calc(expt_name='hrpt',\n", - " x_min=48, x_max=51,\n", - " show_residual=True)" + "project.plot_meas_vs_calc(expt_name='hrpt', x_min=48, x_max=51, show_residual=True)" ] }, { @@ -706,8 +695,7 @@ "metadata": {}, "outputs": [], "source": [ - "project.plot_meas_vs_calc(expt_name='hrpt',\n", - " show_residual=True)" + "project.plot_meas_vs_calc(expt_name='hrpt', show_residual=True)" ] }, { @@ -717,9 +705,7 @@ "metadata": {}, "outputs": [], "source": [ - "project.plot_meas_vs_calc(expt_name='hrpt',\n", - " x_min=48, x_max=51,\n", - " show_residual=True)" + "project.plot_meas_vs_calc(expt_name='hrpt', x_min=48, x_max=51, show_residual=True)" ] }, { @@ -797,8 +783,7 @@ "metadata": {}, "outputs": [], "source": [ - "project.plot_meas_vs_calc(expt_name='hrpt',\n", - " show_residual=True)" + "project.plot_meas_vs_calc(expt_name='hrpt', show_residual=True)" ] }, { @@ -808,9 +793,7 @@ "metadata": {}, "outputs": [], "source": [ - "project.plot_meas_vs_calc(expt_name='hrpt',\n", - " x_min=48, x_max=51,\n", - " show_residual=True)" + "project.plot_meas_vs_calc(expt_name='hrpt', x_min=48, x_max=51, show_residual=True)" ] }, { diff --git a/tutorials/cryst-struct_pd-neut-cwl_HS-HRPT.py b/tutorials/cryst-struct_pd-neut-cwl_HS-HRPT.py index 088d5f97..ab0c97fe 100644 --- a/tutorials/cryst-struct_pd-neut-cwl_HS-HRPT.py +++ b/tutorials/cryst-struct_pd-neut-cwl_HS-HRPT.py @@ -76,15 +76,13 @@ # #### Download Measured Data # %% -download_from_repository('hrpt_hs.xye', - destination='data') +download_from_repository('hrpt_hs.xye', destination='data') # %% [markdown] # #### Create Experiment # %% -expt = Experiment(name='hrpt', - data_path='data/hrpt_hs.xye') +expt = Experiment(name='hrpt', data_path='data/hrpt_hs.xye') # %% [markdown] # #### Set Instrument @@ -173,13 +171,10 @@ # #### Plot Measured vs Calculated # %% -project.plot_meas_vs_calc(expt_name='hrpt', - show_residual=True) +project.plot_meas_vs_calc(expt_name='hrpt', show_residual=True) # %% -project.plot_meas_vs_calc(expt_name='hrpt', - x_min=48, x_max=51, - show_residual=True) +project.plot_meas_vs_calc(expt_name='hrpt', x_min=48, x_max=51, show_residual=True) # %% [markdown] # ### Perform Fit 1/5 @@ -209,13 +204,10 @@ # #### Plot Measured vs Calculated # %% -project.plot_meas_vs_calc(expt_name='hrpt', - show_residual=True) +project.plot_meas_vs_calc(expt_name='hrpt', show_residual=True) # %% -project.plot_meas_vs_calc(expt_name='hrpt', - x_min=48, x_max=51, - show_residual=True) +project.plot_meas_vs_calc(expt_name='hrpt', x_min=48, x_max=51, show_residual=True) # %% [markdown] # ### Perform Fit 2/5 @@ -247,13 +239,10 @@ # #### Plot Measured vs Calculated # %% -project.plot_meas_vs_calc(expt_name='hrpt', - show_residual=True) +project.plot_meas_vs_calc(expt_name='hrpt', show_residual=True) # %% -project.plot_meas_vs_calc(expt_name='hrpt', - x_min=48, x_max=51, - show_residual=True) +project.plot_meas_vs_calc(expt_name='hrpt', x_min=48, x_max=51, show_residual=True) # %% [markdown] # ### Perform Fit 3/5 @@ -283,13 +272,10 @@ # #### Plot Measured vs Calculated # %% -project.plot_meas_vs_calc(expt_name='hrpt', - show_residual=True) +project.plot_meas_vs_calc(expt_name='hrpt', show_residual=True) # %% -project.plot_meas_vs_calc(expt_name='hrpt', - x_min=48, x_max=51, - show_residual=True) +project.plot_meas_vs_calc(expt_name='hrpt', x_min=48, x_max=51, show_residual=True) # %% [markdown] # ### Perform Fit 4/5 @@ -319,13 +305,10 @@ # #### Plot Measured vs Calculated # %% -project.plot_meas_vs_calc(expt_name='hrpt', - show_residual=True) +project.plot_meas_vs_calc(expt_name='hrpt', show_residual=True) # %% -project.plot_meas_vs_calc(expt_name='hrpt', - x_min=48, x_max=51, - show_residual=True) +project.plot_meas_vs_calc(expt_name='hrpt', x_min=48, x_max=51, show_residual=True) # %% [markdown] # ## Summary diff --git a/tutorials/cryst-struct_pd-neut-tof_Si-SEPD.ipynb b/tutorials/cryst-struct_pd-neut-tof_Si-SEPD.ipynb index 6290670d..1dc3ada7 100644 --- a/tutorials/cryst-struct_pd-neut-tof_Si-SEPD.ipynb +++ b/tutorials/cryst-struct_pd-neut-tof_Si-SEPD.ipynb @@ -129,8 +129,7 @@ "metadata": {}, "outputs": [], "source": [ - "download_from_repository('sepd_si.xye',\n", - " destination='data')" + "download_from_repository('sepd_si.xye', destination='data')" ] }, { @@ -148,9 +147,7 @@ "metadata": {}, "outputs": [], "source": [ - "expt = Experiment('sepd',\n", - " beam_mode='time-of-flight',\n", - " data_path='data/sepd_si.xye')" + "expt = Experiment('sepd', beam_mode='time-of-flight', data_path='data/sepd_si.xye')" ] }, { @@ -387,11 +384,8 @@ "metadata": {}, "outputs": [], "source": [ - "project.plot_meas_vs_calc(expt_name='sepd',\n", - " show_residual=True)\n", - "project.plot_meas_vs_calc(expt_name='sepd',\n", - " x_min=23200, x_max=23700,\n", - " show_residual=True)" + "project.plot_meas_vs_calc(expt_name='sepd', show_residual=True)\n", + "project.plot_meas_vs_calc(expt_name='sepd', x_min=23200, x_max=23700, show_residual=True)" ] }, { @@ -468,8 +462,7 @@ "metadata": {}, "outputs": [], "source": [ - "project.plot_meas_vs_calc(expt_name='sepd',\n", - " show_residual=True)" + "project.plot_meas_vs_calc(expt_name='sepd', show_residual=True)" ] }, { @@ -479,9 +472,7 @@ "metadata": {}, "outputs": [], "source": [ - "project.plot_meas_vs_calc(expt_name='sepd',\n", - " x_min=23200, x_max=23700,\n", - " show_residual=True)" + "project.plot_meas_vs_calc(expt_name='sepd', x_min=23200, x_max=23700, show_residual=True)" ] }, { @@ -556,8 +547,7 @@ "metadata": {}, "outputs": [], "source": [ - "project.plot_meas_vs_calc(expt_name='sepd',\n", - " show_residual=True)" + "project.plot_meas_vs_calc(expt_name='sepd', show_residual=True)" ] }, { @@ -567,9 +557,7 @@ "metadata": {}, "outputs": [], "source": [ - "project.plot_meas_vs_calc(expt_name='sepd',\n", - " x_min=23200, x_max=23700,\n", - " show_residual=True)" + "project.plot_meas_vs_calc(expt_name='sepd', x_min=23200, x_max=23700, show_residual=True)" ] }, { @@ -664,8 +652,7 @@ "metadata": {}, "outputs": [], "source": [ - "project.plot_meas_vs_calc(expt_name='sepd',\n", - " show_residual=True)" + "project.plot_meas_vs_calc(expt_name='sepd', show_residual=True)" ] }, { @@ -675,9 +662,7 @@ "metadata": {}, "outputs": [], "source": [ - "project.plot_meas_vs_calc(expt_name='sepd',\n", - " x_min=23200, x_max=23700,\n", - " show_residual=True)" + "project.plot_meas_vs_calc(expt_name='sepd', x_min=23200, x_max=23700, show_residual=True)" ] }, { @@ -751,8 +736,7 @@ "metadata": {}, "outputs": [], "source": [ - "project.plot_meas_vs_calc(expt_name='sepd',\n", - " show_residual=True)" + "project.plot_meas_vs_calc(expt_name='sepd', show_residual=True)" ] }, { @@ -762,9 +746,7 @@ "metadata": {}, "outputs": [], "source": [ - "project.plot_meas_vs_calc(expt_name='sepd',\n", - " x_min=23200, x_max=23700,\n", - " show_residual=True)" + "project.plot_meas_vs_calc(expt_name='sepd', x_min=23200, x_max=23700, show_residual=True)" ] } ], diff --git a/tutorials/cryst-struct_pd-neut-tof_Si-SEPD.py b/tutorials/cryst-struct_pd-neut-tof_Si-SEPD.py index 40fd5f38..db37839d 100644 --- a/tutorials/cryst-struct_pd-neut-tof_Si-SEPD.py +++ b/tutorials/cryst-struct_pd-neut-tof_Si-SEPD.py @@ -51,16 +51,13 @@ # #### Download Measured Data # %% -download_from_repository('sepd_si.xye', - destination='data') +download_from_repository('sepd_si.xye', destination='data') # %% [markdown] # #### Create Experiment # %% -expt = Experiment('sepd', - beam_mode='time-of-flight', - data_path='data/sepd_si.xye') +expt = Experiment('sepd', beam_mode='time-of-flight', data_path='data/sepd_si.xye') # %% [markdown] # #### Set Instrument @@ -153,11 +150,8 @@ # #### Plot Measured vs Calculated # %% -project.plot_meas_vs_calc(expt_name='sepd', - show_residual=True) -project.plot_meas_vs_calc(expt_name='sepd', - x_min=23200, x_max=23700, - show_residual=True) +project.plot_meas_vs_calc(expt_name='sepd', show_residual=True) +project.plot_meas_vs_calc(expt_name='sepd', x_min=23200, x_max=23700, show_residual=True) # %% [markdown] # ### Perform Fit 1/5 @@ -186,13 +180,10 @@ # #### Plot Measured vs Calculated # %% -project.plot_meas_vs_calc(expt_name='sepd', - show_residual=True) +project.plot_meas_vs_calc(expt_name='sepd', show_residual=True) # %% -project.plot_meas_vs_calc(expt_name='sepd', - x_min=23200, x_max=23700, - show_residual=True) +project.plot_meas_vs_calc(expt_name='sepd', x_min=23200, x_max=23700, show_residual=True) # %% [markdown] # ### Perform Fit 2/5 @@ -219,13 +210,10 @@ # #### Plot Measured vs Calculated # %% -project.plot_meas_vs_calc(expt_name='sepd', - show_residual=True) +project.plot_meas_vs_calc(expt_name='sepd', show_residual=True) # %% -project.plot_meas_vs_calc(expt_name='sepd', - x_min=23200, x_max=23700, - show_residual=True) +project.plot_meas_vs_calc(expt_name='sepd', x_min=23200, x_max=23700, show_residual=True) # %% [markdown] # ### Perform Fit 3/5 @@ -260,13 +248,10 @@ # #### Plot Measured vs Calculated # %% -project.plot_meas_vs_calc(expt_name='sepd', - show_residual=True) +project.plot_meas_vs_calc(expt_name='sepd', show_residual=True) # %% -project.plot_meas_vs_calc(expt_name='sepd', - x_min=23200, x_max=23700, - show_residual=True) +project.plot_meas_vs_calc(expt_name='sepd', x_min=23200, x_max=23700, show_residual=True) # %% [markdown] # ### Perform Fit 4/5 @@ -292,10 +277,7 @@ # #### Plot Measured vs Calculated # %% -project.plot_meas_vs_calc(expt_name='sepd', - show_residual=True) +project.plot_meas_vs_calc(expt_name='sepd', show_residual=True) # %% -project.plot_meas_vs_calc(expt_name='sepd', - x_min=23200, x_max=23700, - show_residual=True) +project.plot_meas_vs_calc(expt_name='sepd', x_min=23200, x_max=23700, show_residual=True) diff --git a/tutorials/cryst-struct_pd-neut-tof_multidata_NCAF-WISH.ipynb b/tutorials/cryst-struct_pd-neut-tof_multidata_NCAF-WISH.ipynb index 80a0349a..006711c3 100644 --- a/tutorials/cryst-struct_pd-neut-tof_multidata_NCAF-WISH.ipynb +++ b/tutorials/cryst-struct_pd-neut-tof_multidata_NCAF-WISH.ipynb @@ -109,12 +109,12 @@ "metadata": {}, "outputs": [], "source": [ - "model.atom_sites.add('Ca', 'Ca', 0.4665, 0.0, 0.25, wyckoff_letter=\"b\", b_iso=0.92)\n", - "model.atom_sites.add('Al', 'Al', 0.2520, 0.2520, 0.2520, wyckoff_letter=\"a\", b_iso=0.73)\n", - "model.atom_sites.add('Na', 'Na', 0.0852, 0.0852, 0.0852, wyckoff_letter=\"a\", b_iso=2.08)\n", - "model.atom_sites.add('F1', 'F', 0.1376, 0.3055, 0.1196, wyckoff_letter=\"c\", b_iso=0.90)\n", - "model.atom_sites.add('F2', 'F', 0.3623, 0.3631, 0.1870, wyckoff_letter=\"c\", b_iso=1.37)\n", - "model.atom_sites.add('F3', 'F', 0.4611, 0.4611, 0.4611, wyckoff_letter=\"a\", b_iso=0.88)" + "model.atom_sites.add('Ca', 'Ca', 0.4665, 0.0, 0.25, wyckoff_letter='b', b_iso=0.92)\n", + "model.atom_sites.add('Al', 'Al', 0.2520, 0.2520, 0.2520, wyckoff_letter='a', b_iso=0.73)\n", + "model.atom_sites.add('Na', 'Na', 0.0852, 0.0852, 0.0852, wyckoff_letter='a', b_iso=2.08)\n", + "model.atom_sites.add('F1', 'F', 0.1376, 0.3055, 0.1196, wyckoff_letter='c', b_iso=0.90)\n", + "model.atom_sites.add('F2', 'F', 0.3623, 0.3631, 0.1870, wyckoff_letter='c', b_iso=1.37)\n", + "model.atom_sites.add('F3', 'F', 0.4611, 0.4611, 0.4611, wyckoff_letter='a', b_iso=0.88)" ] }, { @@ -296,7 +296,7 @@ " (74204, 262),\n", " (82103, 268),\n", " (91958, 268),\n", - " (102712, 262)\n", + " (102712, 262),\n", "]:\n", " expt56.background.add(x, y)" ] @@ -336,7 +336,7 @@ " (75002, 258),\n", " (83649, 257),\n", " (92770, 255),\n", - " (101524, 260)\n", + " (101524, 260),\n", "]:\n", " expt47.background.add(x, y)" ] diff --git a/tutorials/cryst-struct_pd-neut-tof_multidata_NCAF-WISH.py b/tutorials/cryst-struct_pd-neut-tof_multidata_NCAF-WISH.py index 35710689..cb624c73 100644 --- a/tutorials/cryst-struct_pd-neut-tof_multidata_NCAF-WISH.py +++ b/tutorials/cryst-struct_pd-neut-tof_multidata_NCAF-WISH.py @@ -43,12 +43,12 @@ # #### Set Atom Sites # %% -model.atom_sites.add('Ca', 'Ca', 0.4665, 0.0, 0.25, wyckoff_letter="b", b_iso=0.92) -model.atom_sites.add('Al', 'Al', 0.2520, 0.2520, 0.2520, wyckoff_letter="a", b_iso=0.73) -model.atom_sites.add('Na', 'Na', 0.0852, 0.0852, 0.0852, wyckoff_letter="a", b_iso=2.08) -model.atom_sites.add('F1', 'F', 0.1376, 0.3055, 0.1196, wyckoff_letter="c", b_iso=0.90) -model.atom_sites.add('F2', 'F', 0.3623, 0.3631, 0.1870, wyckoff_letter="c", b_iso=1.37) -model.atom_sites.add('F3', 'F', 0.4611, 0.4611, 0.4611, wyckoff_letter="a", b_iso=0.88) +model.atom_sites.add('Ca', 'Ca', 0.4665, 0.0, 0.25, wyckoff_letter='b', b_iso=0.92) +model.atom_sites.add('Al', 'Al', 0.2520, 0.2520, 0.2520, wyckoff_letter='a', b_iso=0.73) +model.atom_sites.add('Na', 'Na', 0.0852, 0.0852, 0.0852, wyckoff_letter='a', b_iso=2.08) +model.atom_sites.add('F1', 'F', 0.1376, 0.3055, 0.1196, wyckoff_letter='c', b_iso=0.90) +model.atom_sites.add('F2', 'F', 0.3623, 0.3631, 0.1870, wyckoff_letter='c', b_iso=1.37) +model.atom_sites.add('F3', 'F', 0.4611, 0.4611, 0.4611, wyckoff_letter='a', b_iso=0.88) # %% [markdown] # ## Define Experiment @@ -142,7 +142,7 @@ (74204, 262), (82103, 268), (91958, 268), - (102712, 262) + (102712, 262), ]: expt56.background.add(x, y) @@ -175,7 +175,7 @@ (75002, 258), (83649, 257), (92770, 255), - (101524, 260) + (101524, 260), ]: expt47.background.add(x, y) diff --git a/tutorials/cryst-struct_pd-neut-tof_multiphase-LBCO-Si_McStas.ipynb b/tutorials/cryst-struct_pd-neut-tof_multiphase-LBCO-Si_McStas.ipynb index 75ac3553..b3322579 100644 --- a/tutorials/cryst-struct_pd-neut-tof_multiphase-LBCO-Si_McStas.ipynb +++ b/tutorials/cryst-struct_pd-neut-tof_multiphase-LBCO-Si_McStas.ipynb @@ -107,10 +107,44 @@ "metadata": {}, "outputs": [], "source": [ - "model_1.atom_sites.add('La', 'La', 0, 0, 0, wyckoff_letter='a', b_iso=0.2, occupancy=0.5)\n", - "model_1.atom_sites.add('Ba', 'Ba', 0, 0, 0, wyckoff_letter='a', b_iso=0.2, occupancy=0.5)\n", - "model_1.atom_sites.add('Co', 'Co', 0.5, 0.5, 0.5, wyckoff_letter='b', b_iso=0.2567)\n", - "model_1.atom_sites.add('O', 'O', 0, 0.5, 0.5, wyckoff_letter='c', b_iso=1.4041)" + "model_1.atom_sites.add(\n", + " 'La',\n", + " 'La',\n", + " 0,\n", + " 0,\n", + " 0,\n", + " wyckoff_letter='a',\n", + " b_iso=0.2,\n", + " occupancy=0.5,\n", + ")\n", + "model_1.atom_sites.add(\n", + " 'Ba',\n", + " 'Ba',\n", + " 0,\n", + " 0,\n", + " 0,\n", + " wyckoff_letter='a',\n", + " b_iso=0.2,\n", + " occupancy=0.5,\n", + ")\n", + "model_1.atom_sites.add(\n", + " 'Co',\n", + " 'Co',\n", + " 0.5,\n", + " 0.5,\n", + " 0.5,\n", + " wyckoff_letter='b',\n", + " b_iso=0.2567,\n", + ")\n", + "model_1.atom_sites.add(\n", + " 'O',\n", + " 'O',\n", + " 0,\n", + " 0.5,\n", + " 0.5,\n", + " wyckoff_letter='c',\n", + " b_iso=1.4041,\n", + ")" ] }, { @@ -183,7 +217,15 @@ "metadata": {}, "outputs": [], "source": [ - "model_2.atom_sites.add('Si', 'Si', 0.0, 0.0, 0.0, wyckoff_letter='a', b_iso=0.0)" + "model_2.atom_sites.add(\n", + " 'Si',\n", + " 'Si',\n", + " 0.0,\n", + " 0.0,\n", + " 0.0,\n", + " wyckoff_letter='a',\n", + " b_iso=0.0,\n", + ")" ] }, { @@ -206,8 +248,7 @@ "metadata": {}, "outputs": [], "source": [ - "download_from_repository('mcstas_lbco-si.xye',\n", - " destination='data')" + "download_from_repository('mcstas_lbco-si.xye', destination='data')" ] }, { @@ -225,12 +266,14 @@ "metadata": {}, "outputs": [], "source": [ - "experiment = Experiment('mcstas',\n", - " sample_form='powder',\n", - " beam_mode='time-of-flight',\n", - " radiation_probe='neutron',\n", - " scattering_type='bragg',\n", - " data_path='data/mcstas_lbco-si.xye')" + "experiment = Experiment(\n", + " 'mcstas',\n", + " sample_form='powder',\n", + " beam_mode='time-of-flight',\n", + " radiation_probe='neutron',\n", + " scattering_type='bragg',\n", + " data_path='data/mcstas_lbco-si.xye',\n", + ")" ] }, { @@ -269,7 +312,7 @@ "metadata": {}, "outputs": [], "source": [ - "#experiment.peak_profile_type = 'pseudo-voigt * ikeda-carpenter'\n", + "# experiment.peak_profile_type = 'pseudo-voigt * ikeda-carpenter'\n", "experiment.peak.broad_gauss_sigma_0 = 45137\n", "experiment.peak.broad_gauss_sigma_1 = -52394\n", "experiment.peak.broad_gauss_sigma_2 = 22998\n", diff --git a/tutorials/cryst-struct_pd-neut-tof_multiphase-LBCO-Si_McStas.py b/tutorials/cryst-struct_pd-neut-tof_multiphase-LBCO-Si_McStas.py index 59f07256..73f62d97 100644 --- a/tutorials/cryst-struct_pd-neut-tof_multiphase-LBCO-Si_McStas.py +++ b/tutorials/cryst-struct_pd-neut-tof_multiphase-LBCO-Si_McStas.py @@ -41,10 +41,44 @@ # #### Set Atom Sites # %% -model_1.atom_sites.add('La', 'La', 0, 0, 0, wyckoff_letter='a', b_iso=0.2, occupancy=0.5) -model_1.atom_sites.add('Ba', 'Ba', 0, 0, 0, wyckoff_letter='a', b_iso=0.2, occupancy=0.5) -model_1.atom_sites.add('Co', 'Co', 0.5, 0.5, 0.5, wyckoff_letter='b', b_iso=0.2567) -model_1.atom_sites.add('O', 'O', 0, 0.5, 0.5, wyckoff_letter='c', b_iso=1.4041) +model_1.atom_sites.add( + 'La', + 'La', + 0, + 0, + 0, + wyckoff_letter='a', + b_iso=0.2, + occupancy=0.5, +) +model_1.atom_sites.add( + 'Ba', + 'Ba', + 0, + 0, + 0, + wyckoff_letter='a', + b_iso=0.2, + occupancy=0.5, +) +model_1.atom_sites.add( + 'Co', + 'Co', + 0.5, + 0.5, + 0.5, + wyckoff_letter='b', + b_iso=0.2567, +) +model_1.atom_sites.add( + 'O', + 'O', + 0, + 0.5, + 0.5, + wyckoff_letter='c', + b_iso=1.4041, +) # %% [markdown] # ### Create Sample Model 2: Si @@ -69,7 +103,15 @@ # #### Set Atom Sites # %% -model_2.atom_sites.add('Si', 'Si', 0.0, 0.0, 0.0, wyckoff_letter='a', b_iso=0.0) +model_2.atom_sites.add( + 'Si', + 'Si', + 0.0, + 0.0, + 0.0, + wyckoff_letter='a', + b_iso=0.0, +) # %% [markdown] # ## Define Experiment @@ -80,19 +122,20 @@ # #### Download Data # %% -download_from_repository('mcstas_lbco-si.xye', - destination='data') +download_from_repository('mcstas_lbco-si.xye', destination='data') # %% [markdown] # #### Create Experiment # %% -experiment = Experiment('mcstas', - sample_form='powder', - beam_mode='time-of-flight', - radiation_probe='neutron', - scattering_type='bragg', - data_path='data/mcstas_lbco-si.xye') +experiment = Experiment( + 'mcstas', + sample_form='powder', + beam_mode='time-of-flight', + radiation_probe='neutron', + scattering_type='bragg', + data_path='data/mcstas_lbco-si.xye', +) # %% [markdown] # #### Set Instrument @@ -107,7 +150,7 @@ # #### Set Peak Profile # %% -#experiment.peak_profile_type = 'pseudo-voigt * ikeda-carpenter' +# experiment.peak_profile_type = 'pseudo-voigt * ikeda-carpenter' experiment.peak.broad_gauss_sigma_0 = 45137 experiment.peak.broad_gauss_sigma_1 = -52394 experiment.peak.broad_gauss_sigma_2 = 22998 diff --git a/tutorials/dmsc-summer-school-2025_analysis-powder-diffraction.ipynb b/tutorials/dmsc-summer-school-2025_analysis-powder-diffraction.ipynb index 7b79519a..ccacb7a8 100644 --- a/tutorials/dmsc-summer-school-2025_analysis-powder-diffraction.ipynb +++ b/tutorials/dmsc-summer-school-2025_analysis-powder-diffraction.ipynb @@ -40,7 +40,7 @@ "import builtins\n", "import importlib.util\n", "\n", - "if hasattr(builtins, \"__IPYTHON__\"):\n", + "if hasattr(builtins, '__IPYTHON__'):\n", " if importlib.util.find_spec('easydiffraction') is None:\n", " print('Installing the easydiffraction library...')\n", " !pip install git+https://github.com/easyscience/diffraction-lib@d-spacing" @@ -90,7 +90,7 @@ "metadata": {}, "outputs": [], "source": [ - "project_1 = ed.Project(name=\"reference\")" + "project_1 = ed.Project(name='reference')" ] }, { @@ -112,8 +112,8 @@ "metadata": {}, "outputs": [], "source": [ - "project_1.info.title = \"Reference Silicon Fit\"\n", - "project_1.info.description = \"Fitting simulated powder diffraction pattern of Si.\"" + "project_1.info.title = 'Reference Silicon Fit'\n", + "project_1.info.description = 'Fitting simulated powder diffraction pattern of Si.'" ] }, { @@ -142,8 +142,7 @@ "source": [ "# To load the measured data from the EasyDiffraction repository, as\n", "# Google Colab does not have the data files needed for this tutorial.\n", - "ed.download_from_repository('reduced_Si.xye',\n", - " destination='data')" + "ed.download_from_repository('reduced_Si.xye', destination='data')" ] }, { @@ -153,7 +152,7 @@ "metadata": {}, "outputs": [], "source": [ - "si_xye_path = \"data/reduced_Si.xye\"" + "si_xye_path = 'data/reduced_Si.xye'" ] }, { @@ -164,10 +163,10 @@ "outputs": [], "source": [ "project_1.experiments.add(\n", - " name=\"sim_si\",\n", - " sample_form=\"powder\",\n", - " beam_mode=\"time-of-flight\",\n", - " radiation_probe=\"neutron\",\n", + " name='sim_si',\n", + " sample_form='powder',\n", + " beam_mode='time-of-flight',\n", + " radiation_probe='neutron',\n", " data_path=si_xye_path,\n", ")" ] @@ -201,7 +200,7 @@ "metadata": {}, "outputs": [], "source": [ - "project_1.plotter.engine = \"plotly\"" + "project_1.plotter.engine = 'plotly'" ] }, { @@ -211,7 +210,7 @@ "metadata": {}, "outputs": [], "source": [ - "project_1.plot_meas(expt_name=\"sim_si\")" + "project_1.plot_meas(expt_name='sim_si')" ] }, { @@ -235,8 +234,8 @@ "metadata": {}, "outputs": [], "source": [ - "project_1.experiments[\"sim_si\"].excluded_regions.add(minimum=0, maximum=55000)\n", - "project_1.experiments[\"sim_si\"].excluded_regions.add(minimum=105500, maximum=200000)" + "project_1.experiments['sim_si'].excluded_regions.add(minimum=0, maximum=55000)\n", + "project_1.experiments['sim_si'].excluded_regions.add(minimum=105500, maximum=200000)" ] }, { @@ -256,7 +255,7 @@ "metadata": {}, "outputs": [], "source": [ - "project_1.plot_meas(expt_name=\"sim_si\")" + "project_1.plot_meas(expt_name='sim_si')" ] }, { @@ -288,12 +287,8 @@ "metadata": {}, "outputs": [], "source": [ - "project_1.experiments[\"sim_si\"].instrument.setup_twotheta_bank = ed.get_value_from_xye_header(\n", - " si_xye_path, \"two_theta\"\n", - ")\n", - "project_1.experiments[\"sim_si\"].instrument.calib_d_to_tof_linear = ed.get_value_from_xye_header(\n", - " si_xye_path, \"DIFC\"\n", - ")" + "project_1.experiments['sim_si'].instrument.setup_twotheta_bank = ed.get_value_from_xye_header(si_xye_path, 'two_theta')\n", + "project_1.experiments['sim_si'].instrument.calib_d_to_tof_linear = ed.get_value_from_xye_header(si_xye_path, 'DIFC')" ] }, { @@ -315,7 +310,7 @@ "metadata": {}, "outputs": [], "source": [ - "print(project_1.experiments[\"sim_si\"].instrument.calib_d_to_tof_linear)" + "print(project_1.experiments['sim_si'].instrument.calib_d_to_tof_linear)" ] }, { @@ -338,7 +333,7 @@ "metadata": {}, "outputs": [], "source": [ - "print(project_1.experiments[\"sim_si\"].instrument.calib_d_to_tof_linear.value)" + "print(project_1.experiments['sim_si'].instrument.calib_d_to_tof_linear.value)" ] }, { @@ -380,14 +375,14 @@ "metadata": {}, "outputs": [], "source": [ - "project_1.experiments[\"sim_si\"].peak_profile_type = \"pseudo-voigt * ikeda-carpenter\"\n", - "project_1.experiments[\"sim_si\"].peak.broad_gauss_sigma_0 = 69498\n", - "project_1.experiments[\"sim_si\"].peak.broad_gauss_sigma_1 = -55578\n", - "project_1.experiments[\"sim_si\"].peak.broad_gauss_sigma_2 = 14560\n", - "project_1.experiments[\"sim_si\"].peak.broad_mix_beta_0 = 0.0019\n", - "project_1.experiments[\"sim_si\"].peak.broad_mix_beta_1 = 0.0137\n", - "project_1.experiments[\"sim_si\"].peak.asym_alpha_0 = -0.0055\n", - "project_1.experiments[\"sim_si\"].peak.asym_alpha_1 = 0.0147" + "project_1.experiments['sim_si'].peak_profile_type = 'pseudo-voigt * ikeda-carpenter'\n", + "project_1.experiments['sim_si'].peak.broad_gauss_sigma_0 = 69498\n", + "project_1.experiments['sim_si'].peak.broad_gauss_sigma_1 = -55578\n", + "project_1.experiments['sim_si'].peak.broad_gauss_sigma_2 = 14560\n", + "project_1.experiments['sim_si'].peak.broad_mix_beta_0 = 0.0019\n", + "project_1.experiments['sim_si'].peak.broad_mix_beta_1 = 0.0137\n", + "project_1.experiments['sim_si'].peak.asym_alpha_0 = -0.0055\n", + "project_1.experiments['sim_si'].peak.asym_alpha_1 = 0.0147" ] }, { @@ -430,14 +425,14 @@ "metadata": {}, "outputs": [], "source": [ - "project_1.experiments[\"sim_si\"].background_type = \"line-segment\"\n", - "project_1.experiments[\"sim_si\"].background.add(x=50000, y=0.01)\n", - "project_1.experiments[\"sim_si\"].background.add(x=60000, y=0.01)\n", - "project_1.experiments[\"sim_si\"].background.add(x=70000, y=0.01)\n", - "project_1.experiments[\"sim_si\"].background.add(x=80000, y=0.01)\n", - "project_1.experiments[\"sim_si\"].background.add(x=90000, y=0.01)\n", - "project_1.experiments[\"sim_si\"].background.add(x=100000, y=0.01)\n", - "project_1.experiments[\"sim_si\"].background.add(x=110000, y=0.01)" + "project_1.experiments['sim_si'].background_type = 'line-segment'\n", + "project_1.experiments['sim_si'].background.add(x=50000, y=0.01)\n", + "project_1.experiments['sim_si'].background.add(x=60000, y=0.01)\n", + "project_1.experiments['sim_si'].background.add(x=70000, y=0.01)\n", + "project_1.experiments['sim_si'].background.add(x=80000, y=0.01)\n", + "project_1.experiments['sim_si'].background.add(x=90000, y=0.01)\n", + "project_1.experiments['sim_si'].background.add(x=100000, y=0.01)\n", + "project_1.experiments['sim_si'].background.add(x=110000, y=0.01)" ] }, { @@ -534,7 +529,7 @@ "metadata": {}, "outputs": [], "source": [ - "project_1.sample_models.add(name=\"si\")" + "project_1.sample_models.add(name='si')" ] }, { @@ -552,8 +547,8 @@ "metadata": {}, "outputs": [], "source": [ - "project_1.sample_models[\"si\"].space_group.name_h_m = \"F d -3 m\"\n", - "project_1.sample_models[\"si\"].space_group.it_coordinate_system_code = \"2\"" + "project_1.sample_models['si'].space_group.name_h_m = 'F d -3 m'\n", + "project_1.sample_models['si'].space_group.it_coordinate_system_code = '2'" ] }, { @@ -571,7 +566,7 @@ "metadata": {}, "outputs": [], "source": [ - "project_1.sample_models[\"si\"].cell.length_a = 5.43" + "project_1.sample_models['si'].cell.length_a = 5.43" ] }, { @@ -589,13 +584,13 @@ "metadata": {}, "outputs": [], "source": [ - "project_1.sample_models[\"si\"].atom_sites.add(\n", - " label=\"Si\",\n", - " type_symbol=\"Si\",\n", + "project_1.sample_models['si'].atom_sites.add(\n", + " label='Si',\n", + " type_symbol='Si',\n", " fract_x=0,\n", " fract_y=0,\n", " fract_z=0,\n", - " wyckoff_letter=\"a\",\n", + " wyckoff_letter='a',\n", " b_iso=0.89,\n", ")" ] @@ -619,7 +614,7 @@ "metadata": {}, "outputs": [], "source": [ - "project_1.experiments[\"sim_si\"].linked_phases.add(id=\"si\", scale=1.0)" + "project_1.experiments['sim_si'].linked_phases.add(id='si', scale=1.0)" ] }, { @@ -660,18 +655,18 @@ "metadata": {}, "outputs": [], "source": [ - "project_1.experiments[\"sim_si\"].linked_phases[\"si\"].scale.free = True\n", + "project_1.experiments['sim_si'].linked_phases['si'].scale.free = True\n", "\n", - "for line_segment in project_1.experiments[\"sim_si\"].background:\n", + "for line_segment in project_1.experiments['sim_si'].background:\n", " line_segment.y.free = True\n", "\n", - "project_1.experiments[\"sim_si\"].peak.broad_gauss_sigma_0.free = True\n", - "project_1.experiments[\"sim_si\"].peak.broad_gauss_sigma_1.free = True\n", - "project_1.experiments[\"sim_si\"].peak.broad_gauss_sigma_2.free = True\n", - "project_1.experiments[\"sim_si\"].peak.broad_mix_beta_0.free = True\n", - "project_1.experiments[\"sim_si\"].peak.broad_mix_beta_1.free = True\n", - "project_1.experiments[\"sim_si\"].peak.asym_alpha_0.free = True\n", - "project_1.experiments[\"sim_si\"].peak.asym_alpha_1.free = True" + "project_1.experiments['sim_si'].peak.broad_gauss_sigma_0.free = True\n", + "project_1.experiments['sim_si'].peak.broad_gauss_sigma_1.free = True\n", + "project_1.experiments['sim_si'].peak.broad_gauss_sigma_2.free = True\n", + "project_1.experiments['sim_si'].peak.broad_mix_beta_0.free = True\n", + "project_1.experiments['sim_si'].peak.broad_mix_beta_1.free = True\n", + "project_1.experiments['sim_si'].peak.asym_alpha_0.free = True\n", + "project_1.experiments['sim_si'].peak.asym_alpha_1.free = True" ] }, { @@ -717,7 +712,7 @@ "metadata": {}, "outputs": [], "source": [ - "project_1.plot_meas_vs_calc(expt_name=\"sim_si\")" + "project_1.plot_meas_vs_calc(expt_name='sim_si')" ] }, { @@ -779,7 +774,7 @@ "metadata": {}, "outputs": [], "source": [ - "project_1.plot_meas_vs_calc(expt_name=\"sim_si\")" + "project_1.plot_meas_vs_calc(expt_name='sim_si')" ] }, { @@ -807,7 +802,7 @@ "metadata": {}, "outputs": [], "source": [ - "project_1.plot_meas_vs_calc(expt_name=\"sim_si\", d_spacing=True)" + "project_1.plot_meas_vs_calc(expt_name='sim_si', d_spacing=True)" ] }, { @@ -851,11 +846,9 @@ "metadata": {}, "outputs": [], "source": [ - "project_2 = ed.Project(name=\"main\")\n", - "project_2.info.title = \"La0.5Ba0.5CoO3 Fit\"\n", - "project_2.info.description = (\n", - " \"Fitting simulated powder diffraction pattern of La0.5Ba0.5CoO3.\"\n", - ")" + "project_2 = ed.Project(name='main')\n", + "project_2.info.title = 'La0.5Ba0.5CoO3 Fit'\n", + "project_2.info.description = 'Fitting simulated powder diffraction pattern of La0.5Ba0.5CoO3.'" ] }, { @@ -885,8 +878,7 @@ "source": [ "# To load the measured data from the EasyDiffraction repository, as\n", "# Google Colab does not have the data files needed for this tutorial.\n", - "ed.download_from_repository('reduced_LBCO.xye',\n", - " destination='data')" + "ed.download_from_repository('reduced_LBCO.xye', destination='data')" ] }, { @@ -896,7 +888,7 @@ "metadata": {}, "outputs": [], "source": [ - "lbco_xye_path = \"data/reduced_LBCO.xye\"" + "lbco_xye_path = 'data/reduced_LBCO.xye'" ] }, { @@ -907,10 +899,10 @@ "outputs": [], "source": [ "project_2.experiments.add(\n", - " name=\"sim_lbco\",\n", - " sample_form=\"powder\",\n", - " beam_mode=\"time-of-flight\",\n", - " radiation_probe=\"neutron\",\n", + " name='sim_lbco',\n", + " sample_form='powder',\n", + " beam_mode='time-of-flight',\n", + " radiation_probe='neutron',\n", " data_path=lbco_xye_path,\n", ")" ] @@ -941,8 +933,8 @@ "metadata": {}, "outputs": [], "source": [ - "project_2.plotter.engine = \"plotly\"\n", - "project_2.plot_meas(expt_name=\"sim_lbco\")" + "project_2.plotter.engine = 'plotly'\n", + "project_2.plot_meas(expt_name='sim_lbco')" ] }, { @@ -952,8 +944,8 @@ "metadata": {}, "outputs": [], "source": [ - "project_2.experiments[\"sim_lbco\"].excluded_regions.add(minimum=0, maximum=55000)\n", - "project_2.experiments[\"sim_lbco\"].excluded_regions.add(minimum=105500, maximum=200000)" + "project_2.experiments['sim_lbco'].excluded_regions.add(minimum=0, maximum=55000)\n", + "project_2.experiments['sim_lbco'].excluded_regions.add(minimum=105500, maximum=200000)" ] }, { @@ -963,7 +955,7 @@ "metadata": {}, "outputs": [], "source": [ - "project_2.plot_meas(expt_name=\"sim_lbco\")" + "project_2.plot_meas(expt_name='sim_lbco')" ] }, { @@ -988,12 +980,8 @@ "metadata": {}, "outputs": [], "source": [ - "project_2.experiments[\"sim_lbco\"].instrument.setup_twotheta_bank = ed.get_value_from_xye_header(\n", - " lbco_xye_path, \"two_theta\"\n", - ")\n", - "project_2.experiments[\"sim_lbco\"].instrument.calib_d_to_tof_linear = ed.get_value_from_xye_header(\n", - " lbco_xye_path, \"DIFC\"\n", - ")" + "project_2.experiments['sim_lbco'].instrument.setup_twotheta_bank = ed.get_value_from_xye_header(lbco_xye_path, 'two_theta')\n", + "project_2.experiments['sim_lbco'].instrument.calib_d_to_tof_linear = ed.get_value_from_xye_header(lbco_xye_path, 'DIFC')" ] }, { @@ -1020,14 +1008,14 @@ "metadata": {}, "outputs": [], "source": [ - "project_2.peak_profile_type = \"pseudo-voigt * ikeda-carpenter\"\n", - "project_2.experiments[\"sim_lbco\"].peak.broad_gauss_sigma_0 = project_1.experiments[\"sim_si\"].peak.broad_gauss_sigma_0.value\n", - "project_2.experiments[\"sim_lbco\"].peak.broad_gauss_sigma_1 = project_1.experiments[\"sim_si\"].peak.broad_gauss_sigma_1.value\n", - "project_2.experiments[\"sim_lbco\"].peak.broad_gauss_sigma_2 = project_1.experiments[\"sim_si\"].peak.broad_gauss_sigma_2.value\n", - "project_2.experiments[\"sim_lbco\"].peak.broad_mix_beta_0 = project_1.experiments[\"sim_si\"].peak.broad_mix_beta_0.value\n", - "project_2.experiments[\"sim_lbco\"].peak.broad_mix_beta_1 = project_1.experiments[\"sim_si\"].peak.broad_mix_beta_1.value\n", - "project_2.experiments[\"sim_lbco\"].peak.asym_alpha_0 = project_1.experiments[\"sim_si\"].peak.asym_alpha_0.value\n", - "project_2.experiments[\"sim_lbco\"].peak.asym_alpha_1 = project_1.experiments[\"sim_si\"].peak.asym_alpha_1.value" + "project_2.peak_profile_type = 'pseudo-voigt * ikeda-carpenter'\n", + "project_2.experiments['sim_lbco'].peak.broad_gauss_sigma_0 = project_1.experiments['sim_si'].peak.broad_gauss_sigma_0.value\n", + "project_2.experiments['sim_lbco'].peak.broad_gauss_sigma_1 = project_1.experiments['sim_si'].peak.broad_gauss_sigma_1.value\n", + "project_2.experiments['sim_lbco'].peak.broad_gauss_sigma_2 = project_1.experiments['sim_si'].peak.broad_gauss_sigma_2.value\n", + "project_2.experiments['sim_lbco'].peak.broad_mix_beta_0 = project_1.experiments['sim_si'].peak.broad_mix_beta_0.value\n", + "project_2.experiments['sim_lbco'].peak.broad_mix_beta_1 = project_1.experiments['sim_si'].peak.broad_mix_beta_1.value\n", + "project_2.experiments['sim_lbco'].peak.asym_alpha_0 = project_1.experiments['sim_si'].peak.asym_alpha_0.value\n", + "project_2.experiments['sim_lbco'].peak.asym_alpha_1 = project_1.experiments['sim_si'].peak.asym_alpha_1.value" ] }, { @@ -1055,14 +1043,14 @@ "metadata": {}, "outputs": [], "source": [ - "project_2.experiments[\"sim_lbco\"].background_type = \"line-segment\"\n", - "project_2.experiments[\"sim_lbco\"].background.add(x=50000, y=0.2)\n", - "project_2.experiments[\"sim_lbco\"].background.add(x=60000, y=0.2)\n", - "project_2.experiments[\"sim_lbco\"].background.add(x=70000, y=0.2)\n", - "project_2.experiments[\"sim_lbco\"].background.add(x=80000, y=0.2)\n", - "project_2.experiments[\"sim_lbco\"].background.add(x=90000, y=0.2)\n", - "project_2.experiments[\"sim_lbco\"].background.add(x=100000, y=0.2)\n", - "project_2.experiments[\"sim_lbco\"].background.add(x=110000, y=0.2)" + "project_2.experiments['sim_lbco'].background_type = 'line-segment'\n", + "project_2.experiments['sim_lbco'].background.add(x=50000, y=0.2)\n", + "project_2.experiments['sim_lbco'].background.add(x=60000, y=0.2)\n", + "project_2.experiments['sim_lbco'].background.add(x=70000, y=0.2)\n", + "project_2.experiments['sim_lbco'].background.add(x=80000, y=0.2)\n", + "project_2.experiments['sim_lbco'].background.add(x=90000, y=0.2)\n", + "project_2.experiments['sim_lbco'].background.add(x=100000, y=0.2)\n", + "project_2.experiments['sim_lbco'].background.add(x=110000, y=0.2)" ] }, { @@ -1138,7 +1126,7 @@ "metadata": {}, "outputs": [], "source": [ - "project_2.sample_models.add(name=\"lbco\")" + "project_2.sample_models.add(name='lbco')" ] }, { @@ -1162,8 +1150,8 @@ "metadata": {}, "outputs": [], "source": [ - "project_2.sample_models[\"lbco\"].space_group.name_h_m = \"P m -3 m\"\n", - "project_2.sample_models[\"lbco\"].space_group.it_coordinate_system_code = \"1\"" + "project_2.sample_models['lbco'].space_group.name_h_m = 'P m -3 m'\n", + "project_2.sample_models['lbco'].space_group.it_coordinate_system_code = '1'" ] }, { @@ -1187,7 +1175,7 @@ "metadata": {}, "outputs": [], "source": [ - "project_2.sample_models[\"lbco\"].cell.length_a = 3.88" + "project_2.sample_models['lbco'].cell.length_a = 3.88" ] }, { @@ -1213,42 +1201,42 @@ "metadata": {}, "outputs": [], "source": [ - "project_2.sample_models[\"lbco\"].atom_sites.add(\n", - " label=\"La\",\n", - " type_symbol=\"La\",\n", + "project_2.sample_models['lbco'].atom_sites.add(\n", + " label='La',\n", + " type_symbol='La',\n", " fract_x=0,\n", " fract_y=0,\n", " fract_z=0,\n", - " wyckoff_letter=\"a\",\n", + " wyckoff_letter='a',\n", " b_iso=0.95,\n", " occupancy=0.5,\n", ")\n", - "project_2.sample_models[\"lbco\"].atom_sites.add(\n", - " label=\"Ba\",\n", - " type_symbol=\"Ba\",\n", + "project_2.sample_models['lbco'].atom_sites.add(\n", + " label='Ba',\n", + " type_symbol='Ba',\n", " fract_x=0,\n", " fract_y=0,\n", " fract_z=0,\n", - " wyckoff_letter=\"a\",\n", + " wyckoff_letter='a',\n", " b_iso=0.95,\n", " occupancy=0.5,\n", ")\n", - "project_2.sample_models[\"lbco\"].atom_sites.add(\n", - " label=\"Co\",\n", - " type_symbol=\"Co\",\n", + "project_2.sample_models['lbco'].atom_sites.add(\n", + " label='Co',\n", + " type_symbol='Co',\n", " fract_x=0.5,\n", " fract_y=0.5,\n", " fract_z=0.5,\n", - " wyckoff_letter=\"b\",\n", + " wyckoff_letter='b',\n", " b_iso=0.80,\n", ")\n", - "project_2.sample_models[\"lbco\"].atom_sites.add(\n", - " label=\"O\",\n", - " type_symbol=\"O\",\n", + "project_2.sample_models['lbco'].atom_sites.add(\n", + " label='O',\n", + " type_symbol='O',\n", " fract_x=0,\n", " fract_y=0.5,\n", " fract_z=0.5,\n", - " wyckoff_letter=\"c\",\n", + " wyckoff_letter='c',\n", " b_iso=1.66,\n", ")" ] @@ -1274,7 +1262,7 @@ "metadata": {}, "outputs": [], "source": [ - "project_2.experiments[\"sim_lbco\"].linked_phases.add(id=\"lbco\", scale=1.0)" + "project_2.experiments['sim_lbco'].linked_phases.add(id='lbco', scale=1.0)" ] }, { @@ -1303,9 +1291,9 @@ "metadata": {}, "outputs": [], "source": [ - "project_2.experiments[\"sim_lbco\"].linked_phases[\"lbco\"].scale.free = True\n", + "project_2.experiments['sim_lbco'].linked_phases['lbco'].scale.free = True\n", "\n", - "for line_segment in project_2.experiments[\"sim_lbco\"].background:\n", + "for line_segment in project_2.experiments['sim_lbco'].background:\n", " line_segment.y.free = True" ] }, @@ -1334,7 +1322,7 @@ "metadata": {}, "outputs": [], "source": [ - "project_2.plot_meas_vs_calc(expt_name=\"sim_lbco\")" + "project_2.plot_meas_vs_calc(expt_name='sim_lbco')" ] }, { @@ -1382,7 +1370,7 @@ "metadata": {}, "outputs": [], "source": [ - "project_2.plot_meas_vs_calc(expt_name=\"sim_lbco\")" + "project_2.plot_meas_vs_calc(expt_name='sim_lbco')" ] }, { @@ -1407,7 +1395,7 @@ "metadata": {}, "outputs": [], "source": [ - "project_2.sample_models[\"lbco\"].cell.length_a.free = True" + "project_2.sample_models['lbco'].cell.length_a.free = True" ] }, { @@ -1427,7 +1415,7 @@ "metadata": {}, "outputs": [], "source": [ - "project_2.plot_meas_vs_calc(expt_name=\"sim_lbco\")" + "project_2.plot_meas_vs_calc(expt_name='sim_lbco')" ] }, { @@ -1460,7 +1448,7 @@ "metadata": {}, "outputs": [], "source": [ - "project_2.plot_meas_vs_calc(expt_name=\"sim_lbco\", d_spacing=True)" + "project_2.plot_meas_vs_calc(expt_name='sim_lbco', d_spacing=True)" ] }, { @@ -1488,7 +1476,7 @@ "metadata": {}, "outputs": [], "source": [ - "project_2.plot_meas_vs_calc(expt_name=\"sim_lbco\", d_spacing=True, x_min=1.35, x_max=1.40)" + "project_2.plot_meas_vs_calc(expt_name='sim_lbco', d_spacing=True, x_min=1.35, x_max=1.40)" ] }, { @@ -1517,13 +1505,13 @@ "metadata": {}, "outputs": [], "source": [ - "project_2.experiments[\"sim_lbco\"].peak.broad_gauss_sigma_0.free = True\n", - "project_2.experiments[\"sim_lbco\"].peak.broad_gauss_sigma_1.free = True\n", - "project_2.experiments[\"sim_lbco\"].peak.broad_gauss_sigma_2.free = True\n", - "project_2.experiments[\"sim_lbco\"].peak.broad_mix_beta_0.free = True\n", - "project_2.experiments[\"sim_lbco\"].peak.broad_mix_beta_1.free = True\n", - "project_2.experiments[\"sim_lbco\"].peak.asym_alpha_0.free = True\n", - "project_2.experiments[\"sim_lbco\"].peak.asym_alpha_1.free = True" + "project_2.experiments['sim_lbco'].peak.broad_gauss_sigma_0.free = True\n", + "project_2.experiments['sim_lbco'].peak.broad_gauss_sigma_1.free = True\n", + "project_2.experiments['sim_lbco'].peak.broad_gauss_sigma_2.free = True\n", + "project_2.experiments['sim_lbco'].peak.broad_mix_beta_0.free = True\n", + "project_2.experiments['sim_lbco'].peak.broad_mix_beta_1.free = True\n", + "project_2.experiments['sim_lbco'].peak.asym_alpha_0.free = True\n", + "project_2.experiments['sim_lbco'].peak.asym_alpha_1.free = True" ] }, { @@ -1543,7 +1531,7 @@ "metadata": {}, "outputs": [], "source": [ - "project_2.plot_meas_vs_calc(expt_name=\"sim_lbco\", d_spacing=True, x_min=1.35, x_max=1.40)" + "project_2.plot_meas_vs_calc(expt_name='sim_lbco', d_spacing=True, x_min=1.35, x_max=1.40)" ] }, { @@ -1572,7 +1560,7 @@ "metadata": {}, "outputs": [], "source": [ - "project_2.plot_meas_vs_calc(expt_name=\"sim_lbco\", x_min=1.53, x_max=1.7, d_spacing=True)" + "project_2.plot_meas_vs_calc(expt_name='sim_lbco', x_min=1.53, x_max=1.7, d_spacing=True)" ] }, { @@ -1629,8 +1617,8 @@ "metadata": {}, "outputs": [], "source": [ - "project_1.plot_meas_vs_calc(expt_name=\"sim_si\", x_min=1, x_max=1.7, d_spacing=True)\n", - "project_2.plot_meas_vs_calc(expt_name=\"sim_lbco\", x_min=1, x_max=1.7, d_spacing=True)" + "project_1.plot_meas_vs_calc(expt_name='sim_si', x_min=1, x_max=1.7, d_spacing=True)\n", + "project_2.plot_meas_vs_calc(expt_name='sim_lbco', x_min=1, x_max=1.7, d_spacing=True)" ] }, { @@ -1666,7 +1654,7 @@ "metadata": {}, "outputs": [], "source": [ - "project_2.sample_models.add(name=\"si\")" + "project_2.sample_models.add(name='si')" ] }, { @@ -1676,8 +1664,8 @@ "metadata": {}, "outputs": [], "source": [ - "project_2.sample_models[\"si\"].space_group.name_h_m = \"F d -3 m\"\n", - "project_2.sample_models[\"si\"].space_group.it_coordinate_system_code = \"2\"" + "project_2.sample_models['si'].space_group.name_h_m = 'F d -3 m'\n", + "project_2.sample_models['si'].space_group.it_coordinate_system_code = '2'" ] }, { @@ -1695,7 +1683,7 @@ "metadata": {}, "outputs": [], "source": [ - "project_2.sample_models[\"si\"].cell.length_a = 5.43" + "project_2.sample_models['si'].cell.length_a = 5.43" ] }, { @@ -1713,13 +1701,13 @@ "metadata": {}, "outputs": [], "source": [ - "project_2.sample_models[\"si\"].atom_sites.add(\n", - " label=\"Si\",\n", - " type_symbol=\"Si\",\n", + "project_2.sample_models['si'].atom_sites.add(\n", + " label='Si',\n", + " type_symbol='Si',\n", " fract_x=0,\n", " fract_y=0,\n", " fract_z=0,\n", - " wyckoff_letter=\"a\",\n", + " wyckoff_letter='a',\n", " b_iso=0.89,\n", ")" ] @@ -1739,7 +1727,7 @@ "metadata": {}, "outputs": [], "source": [ - "project_2.experiments[\"sim_lbco\"].linked_phases.add(id=\"si\", scale=1.0)" + "project_2.experiments['sim_lbco'].linked_phases.add(id='si', scale=1.0)" ] }, { @@ -1774,7 +1762,7 @@ "metadata": {}, "outputs": [], "source": [ - "project_2.plot_meas_vs_calc(expt_name=\"sim_lbco\")" + "project_2.plot_meas_vs_calc(expt_name='sim_lbco')" ] }, { @@ -1796,7 +1784,7 @@ "metadata": {}, "outputs": [], "source": [ - "project_2.experiments[\"sim_lbco\"].linked_phases[\"si\"].scale.free = True" + "project_2.experiments['sim_lbco'].linked_phases['si'].scale.free = True" ] }, { @@ -1838,7 +1826,7 @@ "metadata": {}, "outputs": [], "source": [ - "project_2.plot_meas_vs_calc(expt_name=\"sim_lbco\")" + "project_2.plot_meas_vs_calc(expt_name='sim_lbco')" ] }, { @@ -1848,7 +1836,7 @@ "metadata": {}, "outputs": [], "source": [ - "project_2.plot_meas_vs_calc(expt_name=\"sim_lbco\", x_min=88000, x_max=101000)" + "project_2.plot_meas_vs_calc(expt_name='sim_lbco', x_min=88000, x_max=101000)" ] }, { diff --git a/tutorials/dmsc-summer-school-2025_analysis-powder-diffraction.py b/tutorials/dmsc-summer-school-2025_analysis-powder-diffraction.py index a2511852..ba0e12d5 100644 --- a/tutorials/dmsc-summer-school-2025_analysis-powder-diffraction.py +++ b/tutorials/dmsc-summer-school-2025_analysis-powder-diffraction.py @@ -27,7 +27,7 @@ import builtins import importlib.util -if hasattr(builtins, "__IPYTHON__"): +if hasattr(builtins, '__IPYTHON__'): if importlib.util.find_spec('easydiffraction') is None: print('Installing the easydiffraction library...') # !pip install git+https://github.com/easyscience/diffraction-lib@d-spacing @@ -58,7 +58,7 @@ # other things. # %% -project_1 = ed.Project(name="reference") +project_1 = ed.Project(name='reference') # %% [markdown] # @@ -68,8 +68,8 @@ # understand the purpose of the project at a glance. # %% -project_1.info.title = "Reference Silicon Fit" -project_1.info.description = "Fitting simulated powder diffraction pattern of Si." +project_1.info.title = 'Reference Silicon Fit' +project_1.info.description = 'Fitting simulated powder diffraction pattern of Si.' # %% [markdown] # ### 🔬 Create an Experiment @@ -86,18 +86,17 @@ # %% # To load the measured data from the EasyDiffraction repository, as # Google Colab does not have the data files needed for this tutorial. -ed.download_from_repository('reduced_Si.xye', - destination='data') +ed.download_from_repository('reduced_Si.xye', destination='data') # %% -si_xye_path = "data/reduced_Si.xye" +si_xye_path = 'data/reduced_Si.xye' # %% project_1.experiments.add( - name="sim_si", - sample_form="powder", - beam_mode="time-of-flight", - radiation_probe="neutron", + name='sim_si', + sample_form='powder', + beam_mode='time-of-flight', + radiation_probe='neutron', data_path=si_xye_path, ) @@ -119,10 +118,10 @@ # interactive visualizations. # %% -project_1.plotter.engine = "plotly" +project_1.plotter.engine = 'plotly' # %% -project_1.plot_meas(expt_name="sim_si") +project_1.plot_meas(expt_name='sim_si') # %% [markdown] # If you zoom in on the highest TOF peak (around 120,000 μs), you will notice @@ -134,8 +133,8 @@ # analysis by adding an excluded regions to the experiment. # %% -project_1.experiments["sim_si"].excluded_regions.add(minimum=0, maximum=55000) -project_1.experiments["sim_si"].excluded_regions.add(minimum=105500, maximum=200000) +project_1.experiments['sim_si'].excluded_regions.add(minimum=0, maximum=55000) +project_1.experiments['sim_si'].excluded_regions.add(minimum=105500, maximum=200000) # %% [markdown] # To visualize the effect of excluding the high TOF region, we can plot @@ -143,7 +142,7 @@ # and is not used in the fitting process. # %% -project_1.plot_meas(expt_name="sim_si") +project_1.plot_meas(expt_name='sim_si') # %% [markdown] # #### Set Instrument Parameters @@ -163,12 +162,8 @@ # `get_value_from_xye_header` function from the EasyDiffraction library. # %% -project_1.experiments["sim_si"].instrument.setup_twotheta_bank = ed.get_value_from_xye_header( - si_xye_path, "two_theta" -) -project_1.experiments["sim_si"].instrument.calib_d_to_tof_linear = ed.get_value_from_xye_header( - si_xye_path, "DIFC" -) +project_1.experiments['sim_si'].instrument.setup_twotheta_bank = ed.get_value_from_xye_header(si_xye_path, 'two_theta') +project_1.experiments['sim_si'].instrument.calib_d_to_tof_linear = ed.get_value_from_xye_header(si_xye_path, 'DIFC') # %% [markdown] # Every parameters is an object, which has different attributes, such as @@ -178,7 +173,7 @@ # you can use the following code: # %% -print(project_1.experiments["sim_si"].instrument.calib_d_to_tof_linear) +print(project_1.experiments['sim_si'].instrument.calib_d_to_tof_linear) # %% [markdown] # The `value` attribute represents the current value of the parameter as a float. @@ -189,7 +184,7 @@ # you can do the following: # %% -print(project_1.experiments["sim_si"].instrument.calib_d_to_tof_linear.value) +print(project_1.experiments['sim_si'].instrument.calib_d_to_tof_linear.value) # %% [markdown] # Note that to set the value of the parameter, you can simply assign a new value @@ -214,14 +209,14 @@ # more complex fit in the next part of the tutorial. # %% -project_1.experiments["sim_si"].peak_profile_type = "pseudo-voigt * ikeda-carpenter" -project_1.experiments["sim_si"].peak.broad_gauss_sigma_0 = 69498 -project_1.experiments["sim_si"].peak.broad_gauss_sigma_1 = -55578 -project_1.experiments["sim_si"].peak.broad_gauss_sigma_2 = 14560 -project_1.experiments["sim_si"].peak.broad_mix_beta_0 = 0.0019 -project_1.experiments["sim_si"].peak.broad_mix_beta_1 = 0.0137 -project_1.experiments["sim_si"].peak.asym_alpha_0 = -0.0055 -project_1.experiments["sim_si"].peak.asym_alpha_1 = 0.0147 +project_1.experiments['sim_si'].peak_profile_type = 'pseudo-voigt * ikeda-carpenter' +project_1.experiments['sim_si'].peak.broad_gauss_sigma_0 = 69498 +project_1.experiments['sim_si'].peak.broad_gauss_sigma_1 = -55578 +project_1.experiments['sim_si'].peak.broad_gauss_sigma_2 = 14560 +project_1.experiments['sim_si'].peak.broad_mix_beta_0 = 0.0019 +project_1.experiments['sim_si'].peak.broad_mix_beta_1 = 0.0137 +project_1.experiments['sim_si'].peak.asym_alpha_0 = -0.0055 +project_1.experiments['sim_si'].peak.asym_alpha_1 = 0.0147 # %% [markdown] # #### Set Background @@ -252,14 +247,14 @@ # process. # %% -project_1.experiments["sim_si"].background_type = "line-segment" -project_1.experiments["sim_si"].background.add(x=50000, y=0.01) -project_1.experiments["sim_si"].background.add(x=60000, y=0.01) -project_1.experiments["sim_si"].background.add(x=70000, y=0.01) -project_1.experiments["sim_si"].background.add(x=80000, y=0.01) -project_1.experiments["sim_si"].background.add(x=90000, y=0.01) -project_1.experiments["sim_si"].background.add(x=100000, y=0.01) -project_1.experiments["sim_si"].background.add(x=110000, y=0.01) +project_1.experiments['sim_si'].background_type = 'line-segment' +project_1.experiments['sim_si'].background.add(x=50000, y=0.01) +project_1.experiments['sim_si'].background.add(x=60000, y=0.01) +project_1.experiments['sim_si'].background.add(x=70000, y=0.01) +project_1.experiments['sim_si'].background.add(x=80000, y=0.01) +project_1.experiments['sim_si'].background.add(x=90000, y=0.01) +project_1.experiments['sim_si'].background.add(x=100000, y=0.01) +project_1.experiments['sim_si'].background.add(x=110000, y=0.01) # %% [markdown] # ### 🧩 Create a Sample Model – Si @@ -334,32 +329,32 @@ # #### Add Sample Model # %% -project_1.sample_models.add(name="si") +project_1.sample_models.add(name='si') # %% [markdown] # #### Set Space Group # %% -project_1.sample_models["si"].space_group.name_h_m = "F d -3 m" -project_1.sample_models["si"].space_group.it_coordinate_system_code = "2" +project_1.sample_models['si'].space_group.name_h_m = 'F d -3 m' +project_1.sample_models['si'].space_group.it_coordinate_system_code = '2' # %% [markdown] # #### Set Lattice Parameters # %% -project_1.sample_models["si"].cell.length_a = 5.43 +project_1.sample_models['si'].cell.length_a = 5.43 # %% [markdown] # #### Set Atom Sites # %% -project_1.sample_models["si"].atom_sites.add( - label="Si", - type_symbol="Si", +project_1.sample_models['si'].atom_sites.add( + label='Si', + type_symbol='Si', fract_x=0, fract_y=0, fract_z=0, - wyckoff_letter="a", + wyckoff_letter='a', b_iso=0.89, ) @@ -371,7 +366,7 @@ # pattern based on the crystal structure defined in the sample model. # %% -project_1.experiments["sim_si"].linked_phases.add(id="si", scale=1.0) +project_1.experiments['sim_si'].linked_phases.add(id='si', scale=1.0) # %% [markdown] # ### 🚀 Analyze and Fit the Data @@ -400,18 +395,18 @@ # considered a reference sample with known parameters. # %% -project_1.experiments["sim_si"].linked_phases["si"].scale.free = True +project_1.experiments['sim_si'].linked_phases['si'].scale.free = True -for line_segment in project_1.experiments["sim_si"].background: +for line_segment in project_1.experiments['sim_si'].background: line_segment.y.free = True -project_1.experiments["sim_si"].peak.broad_gauss_sigma_0.free = True -project_1.experiments["sim_si"].peak.broad_gauss_sigma_1.free = True -project_1.experiments["sim_si"].peak.broad_gauss_sigma_2.free = True -project_1.experiments["sim_si"].peak.broad_mix_beta_0.free = True -project_1.experiments["sim_si"].peak.broad_mix_beta_1.free = True -project_1.experiments["sim_si"].peak.asym_alpha_0.free = True -project_1.experiments["sim_si"].peak.asym_alpha_1.free = True +project_1.experiments['sim_si'].peak.broad_gauss_sigma_0.free = True +project_1.experiments['sim_si'].peak.broad_gauss_sigma_1.free = True +project_1.experiments['sim_si'].peak.broad_gauss_sigma_2.free = True +project_1.experiments['sim_si'].peak.broad_mix_beta_0.free = True +project_1.experiments['sim_si'].peak.broad_mix_beta_1.free = True +project_1.experiments['sim_si'].peak.asym_alpha_0.free = True +project_1.experiments['sim_si'].peak.asym_alpha_1.free = True # %% [markdown] # #### Show Free Parameters @@ -433,7 +428,7 @@ # allows this comparison. # %% -project_1.plot_meas_vs_calc(expt_name="sim_si") +project_1.plot_meas_vs_calc(expt_name='sim_si') # %% [markdown] # #### Run Fitting @@ -466,7 +461,7 @@ # is now based on the refined parameters. # %% -project_1.plot_meas_vs_calc(expt_name="sim_si") +project_1.plot_meas_vs_calc(expt_name='sim_si') # %% [markdown] # #### TOF vs d-spacing @@ -482,7 +477,7 @@ # by setting the `d_spacing` parameter to `True`. # %% -project_1.plot_meas_vs_calc(expt_name="sim_si", d_spacing=True) +project_1.plot_meas_vs_calc(expt_name='sim_si', d_spacing=True) # %% [markdown] # As you can see, the calculated diffraction pattern now matches the measured @@ -514,11 +509,9 @@ # **Solution:** # %% -project_2 = ed.Project(name="main") -project_2.info.title = "La0.5Ba0.5CoO3 Fit" -project_2.info.description = ( - "Fitting simulated powder diffraction pattern of La0.5Ba0.5CoO3." -) +project_2 = ed.Project(name='main') +project_2.info.title = 'La0.5Ba0.5CoO3 Fit' +project_2.info.description = 'Fitting simulated powder diffraction pattern of La0.5Ba0.5CoO3.' # %% [markdown] # ### 🔬 Exercise 2: Define an Experiment @@ -536,18 +529,17 @@ # %% # To load the measured data from the EasyDiffraction repository, as # Google Colab does not have the data files needed for this tutorial. -ed.download_from_repository('reduced_LBCO.xye', - destination='data') +ed.download_from_repository('reduced_LBCO.xye', destination='data') # %% -lbco_xye_path = "data/reduced_LBCO.xye" +lbco_xye_path = 'data/reduced_LBCO.xye' # %% project_2.experiments.add( - name="sim_lbco", - sample_form="powder", - beam_mode="time-of-flight", - radiation_probe="neutron", + name='sim_lbco', + sample_form='powder', + beam_mode='time-of-flight', + radiation_probe='neutron', data_path=lbco_xye_path, ) @@ -566,15 +558,15 @@ # **Solution:** # %% -project_2.plotter.engine = "plotly" -project_2.plot_meas(expt_name="sim_lbco") +project_2.plotter.engine = 'plotly' +project_2.plot_meas(expt_name='sim_lbco') # %% -project_2.experiments["sim_lbco"].excluded_regions.add(minimum=0, maximum=55000) -project_2.experiments["sim_lbco"].excluded_regions.add(minimum=105500, maximum=200000) +project_2.experiments['sim_lbco'].excluded_regions.add(minimum=0, maximum=55000) +project_2.experiments['sim_lbco'].excluded_regions.add(minimum=105500, maximum=200000) # %% -project_2.plot_meas(expt_name="sim_lbco") +project_2.plot_meas(expt_name='sim_lbco') # %% [markdown] # #### Exercise 2.2: Set Instrument Parameters @@ -587,12 +579,8 @@ # **Solution:** # %% -project_2.experiments["sim_lbco"].instrument.setup_twotheta_bank = ed.get_value_from_xye_header( - lbco_xye_path, "two_theta" -) -project_2.experiments["sim_lbco"].instrument.calib_d_to_tof_linear = ed.get_value_from_xye_header( - lbco_xye_path, "DIFC" -) +project_2.experiments['sim_lbco'].instrument.setup_twotheta_bank = ed.get_value_from_xye_header(lbco_xye_path, 'two_theta') +project_2.experiments['sim_lbco'].instrument.calib_d_to_tof_linear = ed.get_value_from_xye_header(lbco_xye_path, 'DIFC') # %% [markdown] # #### Exercise 2.3: Set Peak Profile Parameters @@ -607,14 +595,14 @@ # **Solution:** # %% -project_2.peak_profile_type = "pseudo-voigt * ikeda-carpenter" -project_2.experiments["sim_lbco"].peak.broad_gauss_sigma_0 = project_1.experiments["sim_si"].peak.broad_gauss_sigma_0.value -project_2.experiments["sim_lbco"].peak.broad_gauss_sigma_1 = project_1.experiments["sim_si"].peak.broad_gauss_sigma_1.value -project_2.experiments["sim_lbco"].peak.broad_gauss_sigma_2 = project_1.experiments["sim_si"].peak.broad_gauss_sigma_2.value -project_2.experiments["sim_lbco"].peak.broad_mix_beta_0 = project_1.experiments["sim_si"].peak.broad_mix_beta_0.value -project_2.experiments["sim_lbco"].peak.broad_mix_beta_1 = project_1.experiments["sim_si"].peak.broad_mix_beta_1.value -project_2.experiments["sim_lbco"].peak.asym_alpha_0 = project_1.experiments["sim_si"].peak.asym_alpha_0.value -project_2.experiments["sim_lbco"].peak.asym_alpha_1 = project_1.experiments["sim_si"].peak.asym_alpha_1.value +project_2.peak_profile_type = 'pseudo-voigt * ikeda-carpenter' +project_2.experiments['sim_lbco'].peak.broad_gauss_sigma_0 = project_1.experiments['sim_si'].peak.broad_gauss_sigma_0.value +project_2.experiments['sim_lbco'].peak.broad_gauss_sigma_1 = project_1.experiments['sim_si'].peak.broad_gauss_sigma_1.value +project_2.experiments['sim_lbco'].peak.broad_gauss_sigma_2 = project_1.experiments['sim_si'].peak.broad_gauss_sigma_2.value +project_2.experiments['sim_lbco'].peak.broad_mix_beta_0 = project_1.experiments['sim_si'].peak.broad_mix_beta_0.value +project_2.experiments['sim_lbco'].peak.broad_mix_beta_1 = project_1.experiments['sim_si'].peak.broad_mix_beta_1.value +project_2.experiments['sim_lbco'].peak.asym_alpha_0 = project_1.experiments['sim_si'].peak.asym_alpha_0.value +project_2.experiments['sim_lbco'].peak.asym_alpha_1 = project_1.experiments['sim_si'].peak.asym_alpha_1.value # %% [markdown] # #### Exercise 2.4: Set Background @@ -630,14 +618,14 @@ # **Solution:** # %% -project_2.experiments["sim_lbco"].background_type = "line-segment" -project_2.experiments["sim_lbco"].background.add(x=50000, y=0.2) -project_2.experiments["sim_lbco"].background.add(x=60000, y=0.2) -project_2.experiments["sim_lbco"].background.add(x=70000, y=0.2) -project_2.experiments["sim_lbco"].background.add(x=80000, y=0.2) -project_2.experiments["sim_lbco"].background.add(x=90000, y=0.2) -project_2.experiments["sim_lbco"].background.add(x=100000, y=0.2) -project_2.experiments["sim_lbco"].background.add(x=110000, y=0.2) +project_2.experiments['sim_lbco'].background_type = 'line-segment' +project_2.experiments['sim_lbco'].background.add(x=50000, y=0.2) +project_2.experiments['sim_lbco'].background.add(x=60000, y=0.2) +project_2.experiments['sim_lbco'].background.add(x=70000, y=0.2) +project_2.experiments['sim_lbco'].background.add(x=80000, y=0.2) +project_2.experiments['sim_lbco'].background.add(x=90000, y=0.2) +project_2.experiments['sim_lbco'].background.add(x=100000, y=0.2) +project_2.experiments['sim_lbco'].background.add(x=110000, y=0.2) # %% [markdown] # ### 🧩 Exercise 3: Define a Sample Model – LBCO @@ -691,7 +679,7 @@ # **Solution:** # %% -project_2.sample_models.add(name="lbco") +project_2.sample_models.add(name='lbco') # %% [markdown] # #### Exercise 3.2: Set Space Group @@ -703,8 +691,8 @@ # **Solution:** # %% -project_2.sample_models["lbco"].space_group.name_h_m = "P m -3 m" -project_2.sample_models["lbco"].space_group.it_coordinate_system_code = "1" +project_2.sample_models['lbco'].space_group.name_h_m = 'P m -3 m' +project_2.sample_models['lbco'].space_group.it_coordinate_system_code = '1' # %% [markdown] # #### Exercise 3.3: Set Lattice Parameters @@ -716,7 +704,7 @@ # **Solution:** # %% -project_2.sample_models["lbco"].cell.length_a = 3.88 +project_2.sample_models['lbco'].cell.length_a = 3.88 # %% [markdown] # #### Exercise 3.4: Set Atom Sites @@ -730,42 +718,42 @@ # an extra attribute `occupancy` needs to be set for those atoms. # %% -project_2.sample_models["lbco"].atom_sites.add( - label="La", - type_symbol="La", +project_2.sample_models['lbco'].atom_sites.add( + label='La', + type_symbol='La', fract_x=0, fract_y=0, fract_z=0, - wyckoff_letter="a", + wyckoff_letter='a', b_iso=0.95, occupancy=0.5, ) -project_2.sample_models["lbco"].atom_sites.add( - label="Ba", - type_symbol="Ba", +project_2.sample_models['lbco'].atom_sites.add( + label='Ba', + type_symbol='Ba', fract_x=0, fract_y=0, fract_z=0, - wyckoff_letter="a", + wyckoff_letter='a', b_iso=0.95, occupancy=0.5, ) -project_2.sample_models["lbco"].atom_sites.add( - label="Co", - type_symbol="Co", +project_2.sample_models['lbco'].atom_sites.add( + label='Co', + type_symbol='Co', fract_x=0.5, fract_y=0.5, fract_z=0.5, - wyckoff_letter="b", + wyckoff_letter='b', b_iso=0.80, ) -project_2.sample_models["lbco"].atom_sites.add( - label="O", - type_symbol="O", +project_2.sample_models['lbco'].atom_sites.add( + label='O', + type_symbol='O', fract_x=0, fract_y=0.5, fract_z=0.5, - wyckoff_letter="c", + wyckoff_letter='c', b_iso=1.66, ) @@ -779,7 +767,7 @@ # **Solution:** # %% -project_2.experiments["sim_lbco"].linked_phases.add(id="lbco", scale=1.0) +project_2.experiments['sim_lbco'].linked_phases.add(id='lbco', scale=1.0) # %% [markdown] # ### 🚀 Exercise 5: Analyze and Fit the Data @@ -796,9 +784,9 @@ # **Solution:** # %% -project_2.experiments["sim_lbco"].linked_phases["lbco"].scale.free = True +project_2.experiments['sim_lbco'].linked_phases['lbco'].scale.free = True -for line_segment in project_2.experiments["sim_lbco"].background: +for line_segment in project_2.experiments['sim_lbco'].background: line_segment.y.free = True # %% [markdown] @@ -815,7 +803,7 @@ # **Solution:** # %% -project_2.plot_meas_vs_calc(expt_name="sim_lbco") +project_2.plot_meas_vs_calc(expt_name='sim_lbco') # %% project_2.analysis.fit() @@ -844,7 +832,7 @@ # 4. ❌ The background points affect the background level, but not the peak positions. # %% -project_2.plot_meas_vs_calc(expt_name="sim_lbco") +project_2.plot_meas_vs_calc(expt_name='sim_lbco') # %% [markdown] # #### Exercise 5.4: Refine the LBCO Lattice Parameter @@ -857,13 +845,13 @@ # **Solution**: # %% -project_2.sample_models["lbco"].cell.length_a.free = True +project_2.sample_models['lbco'].cell.length_a.free = True # %% project_2.analysis.fit() # %% -project_2.plot_meas_vs_calc(expt_name="sim_lbco") +project_2.plot_meas_vs_calc(expt_name='sim_lbco') # %% [markdown] # One of the main goals of this study was to refine the lattice parameter of the LBCO phase. As shown in the updated fit results, the overall fit has improved significantly, even though the change in cell length is less than 1% of the initial value. This demonstrates how even a small adjustment to the lattice parameter can have a substantial impact on the quality of the fit. @@ -879,7 +867,7 @@ # **Solution**: # %% -project_2.plot_meas_vs_calc(expt_name="sim_lbco", d_spacing=True) +project_2.plot_meas_vs_calc(expt_name='sim_lbco', d_spacing=True) # %% [markdown] # #### Exercise 5.6: Refine the Peak Profile Parameters @@ -895,7 +883,7 @@ # does not perfectly describe the peak at about 1.38 Å, as can be seen below: # %% -project_2.plot_meas_vs_calc(expt_name="sim_lbco", d_spacing=True, x_min=1.35, x_max=1.40) +project_2.plot_meas_vs_calc(expt_name='sim_lbco', d_spacing=True, x_min=1.35, x_max=1.40) # %% [markdown] # The peak profile parameters are determined based on both the instrument @@ -912,19 +900,19 @@ # **Solution**: # %% -project_2.experiments["sim_lbco"].peak.broad_gauss_sigma_0.free = True -project_2.experiments["sim_lbco"].peak.broad_gauss_sigma_1.free = True -project_2.experiments["sim_lbco"].peak.broad_gauss_sigma_2.free = True -project_2.experiments["sim_lbco"].peak.broad_mix_beta_0.free = True -project_2.experiments["sim_lbco"].peak.broad_mix_beta_1.free = True -project_2.experiments["sim_lbco"].peak.asym_alpha_0.free = True -project_2.experiments["sim_lbco"].peak.asym_alpha_1.free = True +project_2.experiments['sim_lbco'].peak.broad_gauss_sigma_0.free = True +project_2.experiments['sim_lbco'].peak.broad_gauss_sigma_1.free = True +project_2.experiments['sim_lbco'].peak.broad_gauss_sigma_2.free = True +project_2.experiments['sim_lbco'].peak.broad_mix_beta_0.free = True +project_2.experiments['sim_lbco'].peak.broad_mix_beta_1.free = True +project_2.experiments['sim_lbco'].peak.asym_alpha_0.free = True +project_2.experiments['sim_lbco'].peak.asym_alpha_1.free = True # %% project_2.analysis.fit() # %% -project_2.plot_meas_vs_calc(expt_name="sim_lbco", d_spacing=True, x_min=1.35, x_max=1.40) +project_2.plot_meas_vs_calc(expt_name='sim_lbco', d_spacing=True, x_min=1.35, x_max=1.40) # %% [markdown] # #### Exercise 5.7: Find Undefined Features @@ -941,7 +929,7 @@ # **Solution**: # %% -project_2.plot_meas_vs_calc(expt_name="sim_lbco", x_min=1.53, x_max=1.7, d_spacing=True) +project_2.plot_meas_vs_calc(expt_name='sim_lbco', x_min=1.53, x_max=1.7, d_spacing=True) # %% [markdown] # #### Exercise 5.8: Identify the Cause of the Unexplained Peaks @@ -981,8 +969,8 @@ # You can visalize both the patterns of the Si and LBCO phases to confirm this hypothesis. # %% -project_1.plot_meas_vs_calc(expt_name="sim_si", x_min=1, x_max=1.7, d_spacing=True) -project_2.plot_meas_vs_calc(expt_name="sim_lbco", x_min=1, x_max=1.7, d_spacing=True) +project_1.plot_meas_vs_calc(expt_name='sim_si', x_min=1, x_max=1.7, d_spacing=True) +project_2.plot_meas_vs_calc(expt_name='sim_lbco', x_min=1, x_max=1.7, d_spacing=True) # %% [markdown] # #### Exercise 5.10: Create a Second Sample Model – Si as Impurity @@ -1001,29 +989,29 @@ # **Set Space Group** # %% -project_2.sample_models.add(name="si") +project_2.sample_models.add(name='si') # %% -project_2.sample_models["si"].space_group.name_h_m = "F d -3 m" -project_2.sample_models["si"].space_group.it_coordinate_system_code = "2" +project_2.sample_models['si'].space_group.name_h_m = 'F d -3 m' +project_2.sample_models['si'].space_group.it_coordinate_system_code = '2' # %% [markdown] # **Set Lattice Parameters** # %% -project_2.sample_models["si"].cell.length_a = 5.43 +project_2.sample_models['si'].cell.length_a = 5.43 # %% [markdown] # **Set Atom Sites** # %% -project_2.sample_models["si"].atom_sites.add( - label="Si", - type_symbol="Si", +project_2.sample_models['si'].atom_sites.add( + label='Si', + type_symbol='Si', fract_x=0, fract_y=0, fract_z=0, - wyckoff_letter="a", + wyckoff_letter='a', b_iso=0.89, ) @@ -1031,7 +1019,7 @@ # **🔗 Assign Sample Model to Experiment** # %% -project_2.experiments["sim_lbco"].linked_phases.add(id="si", scale=1.0) +project_2.experiments['sim_lbco'].linked_phases.add(id='si', scale=1.0) # %% [markdown] # #### Exercise 5.11: Refine the Scale of the Si Phase @@ -1054,7 +1042,7 @@ # **Visualize Diffraction Patterns** # %% -project_2.plot_meas_vs_calc(expt_name="sim_lbco") +project_2.plot_meas_vs_calc(expt_name='sim_lbco') # %% [markdown] # As you can see, the calculated pattern is now the sum of both phases, @@ -1064,7 +1052,7 @@ # **Set Fit Parameters** # %% -project_2.experiments["sim_lbco"].linked_phases["si"].scale.free = True +project_2.experiments['sim_lbco'].linked_phases['si'].scale.free = True # %% [markdown] # **Run Fitting** @@ -1082,10 +1070,10 @@ # peak near 95,000 μs. The calculated pattern will be the sum of the two phases. # %% -project_2.plot_meas_vs_calc(expt_name="sim_lbco") +project_2.plot_meas_vs_calc(expt_name='sim_lbco') # %% -project_2.plot_meas_vs_calc(expt_name="sim_lbco", x_min=88000, x_max=101000) +project_2.plot_meas_vs_calc(expt_name='sim_lbco', x_min=88000, x_max=101000) # %% [markdown] # All previously unexplained peaks are now accounted for in the pattern, and the fit is improved. diff --git a/tutorials/pdf_pd-neut-cwl_Ni.ipynb b/tutorials/pdf_pd-neut-cwl_Ni.ipynb index bb3d206a..effd3bcd 100644 --- a/tutorials/pdf_pd-neut-cwl_Ni.ipynb +++ b/tutorials/pdf_pd-neut-cwl_Ni.ipynb @@ -97,13 +97,9 @@ "project.sample_models['ni'].space_group.name_h_m = 'F m -3 m'\n", "project.sample_models['ni'].space_group.it_coordinate_system_code = '1'\n", "project.sample_models['ni'].cell.length_a = 3.52387\n", - "project.sample_models['ni'].atom_sites.add(label='Ni',\n", - " type_symbol='Ni',\n", - " fract_x=0.,\n", - " fract_y=0.,\n", - " fract_z=0.,\n", - " wyckoff_letter='a',\n", - " b_iso=0.5)" + "project.sample_models['ni'].atom_sites.add(\n", + " label='Ni', type_symbol='Ni', fract_x=0.0, fract_y=0.0, fract_z=0.0, wyckoff_letter='a', b_iso=0.5\n", + ")" ] }, { @@ -121,8 +117,7 @@ "metadata": {}, "outputs": [], "source": [ - "ed.download_from_repository('ni-q27r100-neutron_from-2.gr',\n", - " destination='data')" + "ed.download_from_repository('ni-q27r100-neutron_from-2.gr', destination='data')" ] }, { @@ -132,12 +127,14 @@ "metadata": {}, "outputs": [], "source": [ - "project.experiments.add(name='pdf',\n", - " sample_form='powder',\n", - " beam_mode='constant wavelength',\n", - " radiation_probe='neutron',\n", - " scattering_type='total',\n", - " data_path = 'data/ni-q27r100-neutron_from-2.gr')" + "project.experiments.add(\n", + " name='pdf',\n", + " sample_form='powder',\n", + " beam_mode='constant wavelength',\n", + " radiation_probe='neutron',\n", + " scattering_type='total',\n", + " data_path='data/ni-q27r100-neutron_from-2.gr',\n", + ")" ] }, { @@ -147,7 +144,7 @@ "metadata": {}, "outputs": [], "source": [ - "project.experiments['pdf'].linked_phases.add(id='ni', scale=1.)\n", + "project.experiments['pdf'].linked_phases.add(id='ni', scale=1.0)\n", "project.experiments['pdf'].peak.damp_q = 0\n", "project.experiments['pdf'].peak.broad_q = 0.03\n", "project.experiments['pdf'].peak.cutoff_q = 27.0\n", @@ -221,8 +218,7 @@ "metadata": {}, "outputs": [], "source": [ - "project.plot_meas_vs_calc(expt_name='pdf',\n", - " show_residual=True)" + "project.plot_meas_vs_calc(expt_name='pdf', show_residual=True)" ] } ], diff --git a/tutorials/pdf_pd-neut-cwl_Ni.py b/tutorials/pdf_pd-neut-cwl_Ni.py index 30af3425..569d52a1 100644 --- a/tutorials/pdf_pd-neut-cwl_Ni.py +++ b/tutorials/pdf_pd-neut-cwl_Ni.py @@ -36,31 +36,28 @@ project.sample_models['ni'].space_group.name_h_m = 'F m -3 m' project.sample_models['ni'].space_group.it_coordinate_system_code = '1' project.sample_models['ni'].cell.length_a = 3.52387 -project.sample_models['ni'].atom_sites.add(label='Ni', - type_symbol='Ni', - fract_x=0., - fract_y=0., - fract_z=0., - wyckoff_letter='a', - b_iso=0.5) +project.sample_models['ni'].atom_sites.add( + label='Ni', type_symbol='Ni', fract_x=0.0, fract_y=0.0, fract_z=0.0, wyckoff_letter='a', b_iso=0.5 +) # %% [markdown] # ## Add Experiment # %% -ed.download_from_repository('ni-q27r100-neutron_from-2.gr', - destination='data') +ed.download_from_repository('ni-q27r100-neutron_from-2.gr', destination='data') # %% -project.experiments.add(name='pdf', - sample_form='powder', - beam_mode='constant wavelength', - radiation_probe='neutron', - scattering_type='total', - data_path = 'data/ni-q27r100-neutron_from-2.gr') +project.experiments.add( + name='pdf', + sample_form='powder', + beam_mode='constant wavelength', + radiation_probe='neutron', + scattering_type='total', + data_path='data/ni-q27r100-neutron_from-2.gr', +) # %% -project.experiments['pdf'].linked_phases.add(id='ni', scale=1.) +project.experiments['pdf'].linked_phases.add(id='ni', scale=1.0) project.experiments['pdf'].peak.damp_q = 0 project.experiments['pdf'].peak.broad_q = 0.03 project.experiments['pdf'].peak.cutoff_q = 27.0 @@ -91,5 +88,4 @@ # ## Plot Measured vs Calculated # %% -project.plot_meas_vs_calc(expt_name='pdf', - show_residual=True) +project.plot_meas_vs_calc(expt_name='pdf', show_residual=True) diff --git a/tutorials/pdf_pd-neut-tof_Si-NOMAD.ipynb b/tutorials/pdf_pd-neut-tof_Si-NOMAD.ipynb index d0c6123f..d7558e41 100644 --- a/tutorials/pdf_pd-neut-tof_Si-NOMAD.ipynb +++ b/tutorials/pdf_pd-neut-tof_Si-NOMAD.ipynb @@ -96,13 +96,7 @@ "sample_model.space_group.name_h_m.value = 'F d -3 m'\n", "sample_model.space_group.it_coordinate_system_code = '1'\n", "sample_model.cell.length_a = 5.43146\n", - "sample_model.atom_sites.add(label='Si',\n", - " type_symbol='Si',\n", - " fract_x=0,\n", - " fract_y=0,\n", - " fract_z=0,\n", - " wyckoff_letter='a',\n", - " b_iso=0.5)" + "sample_model.atom_sites.add(label='Si', type_symbol='Si', fract_x=0, fract_y=0, fract_z=0, wyckoff_letter='a', b_iso=0.5)" ] }, { @@ -120,8 +114,7 @@ "metadata": {}, "outputs": [], "source": [ - "ed.download_from_repository('NOM_9999_Si_640g_PAC_50_ff_ftfrgr_up-to-50.gr',\n", - " destination='data')" + "ed.download_from_repository('NOM_9999_Si_640g_PAC_50_ff_ftfrgr_up-to-50.gr', destination='data')" ] }, { @@ -131,12 +124,14 @@ "metadata": {}, "outputs": [], "source": [ - "project.experiments.add(name='nomad',\n", - " sample_form='powder',\n", - " beam_mode='time-of-flight',\n", - " radiation_probe='neutron',\n", - " scattering_type='total',\n", - " data_path = 'data/NOM_9999_Si_640g_PAC_50_ff_ftfrgr_up-to-50.gr')" + "project.experiments.add(\n", + " name='nomad',\n", + " sample_form='powder',\n", + " beam_mode='time-of-flight',\n", + " radiation_probe='neutron',\n", + " scattering_type='total',\n", + " data_path='data/NOM_9999_Si_640g_PAC_50_ff_ftfrgr_up-to-50.gr',\n", + ")" ] }, { @@ -147,7 +142,7 @@ "outputs": [], "source": [ "experiment = project.experiments['nomad']\n", - "experiment.linked_phases.add(id='si', scale=1.)\n", + "experiment.linked_phases.add(id='si', scale=1.0)\n", "experiment.peak.damp_q = 0.02\n", "experiment.peak.broad_q = 0.03\n", "experiment.peak.cutoff_q = 35.0\n", @@ -223,8 +218,7 @@ "metadata": {}, "outputs": [], "source": [ - "project.plot_meas_vs_calc(expt_name='nomad',\n", - " show_residual=False)" + "project.plot_meas_vs_calc(expt_name='nomad', show_residual=False)" ] } ], diff --git a/tutorials/pdf_pd-neut-tof_Si-NOMAD.py b/tutorials/pdf_pd-neut-tof_Si-NOMAD.py index 6bc98f2f..9658cbf8 100644 --- a/tutorials/pdf_pd-neut-tof_Si-NOMAD.py +++ b/tutorials/pdf_pd-neut-tof_Si-NOMAD.py @@ -35,32 +35,27 @@ sample_model.space_group.name_h_m.value = 'F d -3 m' sample_model.space_group.it_coordinate_system_code = '1' sample_model.cell.length_a = 5.43146 -sample_model.atom_sites.add(label='Si', - type_symbol='Si', - fract_x=0, - fract_y=0, - fract_z=0, - wyckoff_letter='a', - b_iso=0.5) +sample_model.atom_sites.add(label='Si', type_symbol='Si', fract_x=0, fract_y=0, fract_z=0, wyckoff_letter='a', b_iso=0.5) # %% [markdown] # ## Add Experiment # %% -ed.download_from_repository('NOM_9999_Si_640g_PAC_50_ff_ftfrgr_up-to-50.gr', - destination='data') +ed.download_from_repository('NOM_9999_Si_640g_PAC_50_ff_ftfrgr_up-to-50.gr', destination='data') # %% -project.experiments.add(name='nomad', - sample_form='powder', - beam_mode='time-of-flight', - radiation_probe='neutron', - scattering_type='total', - data_path = 'data/NOM_9999_Si_640g_PAC_50_ff_ftfrgr_up-to-50.gr') +project.experiments.add( + name='nomad', + sample_form='powder', + beam_mode='time-of-flight', + radiation_probe='neutron', + scattering_type='total', + data_path='data/NOM_9999_Si_640g_PAC_50_ff_ftfrgr_up-to-50.gr', +) # %% experiment = project.experiments['nomad'] -experiment.linked_phases.add(id='si', scale=1.) +experiment.linked_phases.add(id='si', scale=1.0) experiment.peak.damp_q = 0.02 experiment.peak.broad_q = 0.03 experiment.peak.cutoff_q = 35.0 @@ -93,5 +88,4 @@ # ## Plot Measured vs Calculated # %% -project.plot_meas_vs_calc(expt_name='nomad', - show_residual=False) +project.plot_meas_vs_calc(expt_name='nomad', show_residual=False) diff --git a/tutorials/pdf_pd-xray_NaCl.ipynb b/tutorials/pdf_pd-xray_NaCl.ipynb index 4ef15229..3a459759 100644 --- a/tutorials/pdf_pd-xray_NaCl.ipynb +++ b/tutorials/pdf_pd-xray_NaCl.ipynb @@ -98,20 +98,12 @@ "project.sample_models['nacl'].space_group.name_h_m = 'F m -3 m'\n", "project.sample_models['nacl'].space_group.it_coordinate_system_code = '1'\n", "project.sample_models['nacl'].cell.length_a = 5.62\n", - "project.sample_models['nacl'].atom_sites.add(label='Na',\n", - " type_symbol='Na',\n", - " fract_x=0,\n", - " fract_y=0,\n", - " fract_z=0,\n", - " wyckoff_letter='a',\n", - " b_iso=1.0)\n", - "project.sample_models['nacl'].atom_sites.add(label='Cl',\n", - " type_symbol='Cl',\n", - " fract_x=0.5,\n", - " fract_y=0.5,\n", - " fract_z=0.5,\n", - " wyckoff_letter='b',\n", - " b_iso=1.0)" + "project.sample_models['nacl'].atom_sites.add(\n", + " label='Na', type_symbol='Na', fract_x=0, fract_y=0, fract_z=0, wyckoff_letter='a', b_iso=1.0\n", + ")\n", + "project.sample_models['nacl'].atom_sites.add(\n", + " label='Cl', type_symbol='Cl', fract_x=0.5, fract_y=0.5, fract_z=0.5, wyckoff_letter='b', b_iso=1.0\n", + ")" ] }, { @@ -129,8 +121,7 @@ "metadata": {}, "outputs": [], "source": [ - "ed.download_from_repository('NaCl.gr',\n", - " destination='data')" + "ed.download_from_repository('NaCl.gr', destination='data')" ] }, { @@ -140,12 +131,14 @@ "metadata": {}, "outputs": [], "source": [ - "project.experiments.add(name='xray_pdf',\n", - " sample_form='powder',\n", - " beam_mode='constant wavelength',\n", - " radiation_probe='xray',\n", - " scattering_type='total',\n", - " data_path = 'data/NaCl.gr')" + "project.experiments.add(\n", + " name='xray_pdf',\n", + " sample_form='powder',\n", + " beam_mode='constant wavelength',\n", + " radiation_probe='xray',\n", + " scattering_type='total',\n", + " data_path='data/NaCl.gr',\n", + ")" ] }, { diff --git a/tutorials/pdf_pd-xray_NaCl.py b/tutorials/pdf_pd-xray_NaCl.py index 4d8e0811..6e91063a 100644 --- a/tutorials/pdf_pd-xray_NaCl.py +++ b/tutorials/pdf_pd-xray_NaCl.py @@ -37,35 +37,28 @@ project.sample_models['nacl'].space_group.name_h_m = 'F m -3 m' project.sample_models['nacl'].space_group.it_coordinate_system_code = '1' project.sample_models['nacl'].cell.length_a = 5.62 -project.sample_models['nacl'].atom_sites.add(label='Na', - type_symbol='Na', - fract_x=0, - fract_y=0, - fract_z=0, - wyckoff_letter='a', - b_iso=1.0) -project.sample_models['nacl'].atom_sites.add(label='Cl', - type_symbol='Cl', - fract_x=0.5, - fract_y=0.5, - fract_z=0.5, - wyckoff_letter='b', - b_iso=1.0) +project.sample_models['nacl'].atom_sites.add( + label='Na', type_symbol='Na', fract_x=0, fract_y=0, fract_z=0, wyckoff_letter='a', b_iso=1.0 +) +project.sample_models['nacl'].atom_sites.add( + label='Cl', type_symbol='Cl', fract_x=0.5, fract_y=0.5, fract_z=0.5, wyckoff_letter='b', b_iso=1.0 +) # %% [markdown] # ## Add Experiment # %% -ed.download_from_repository('NaCl.gr', - destination='data') +ed.download_from_repository('NaCl.gr', destination='data') # %% -project.experiments.add(name='xray_pdf', - sample_form='powder', - beam_mode='constant wavelength', - radiation_probe='xray', - scattering_type='total', - data_path = 'data/NaCl.gr') +project.experiments.add( + name='xray_pdf', + sample_form='powder', + beam_mode='constant wavelength', + radiation_probe='xray', + scattering_type='total', + data_path='data/NaCl.gr', +) # %% project.experiments['xray_pdf'].show_supported_peak_profile_types() diff --git a/tutorials/quick_single-fit_pd-neut-cwl_LBCO-HRPT.ipynb b/tutorials/quick_single-fit_pd-neut-cwl_LBCO-HRPT.ipynb index 4cb4e19c..b1331e73 100644 --- a/tutorials/quick_single-fit_pd-neut-cwl_LBCO-HRPT.ipynb +++ b/tutorials/quick_single-fit_pd-neut-cwl_LBCO-HRPT.ipynb @@ -136,8 +136,7 @@ "metadata": {}, "outputs": [], "source": [ - "ed.download_from_repository('hrpt_lbco.xye',\n", - " destination='data')" + "ed.download_from_repository('hrpt_lbco.xye', destination='data')" ] }, { @@ -147,11 +146,13 @@ "metadata": {}, "outputs": [], "source": [ - "project.experiments.add(name='hrpt',\n", - " sample_form='powder',\n", - " beam_mode='constant wavelength',\n", - " radiation_probe='neutron',\n", - " data_path='data/hrpt_lbco.xye')" + "project.experiments.add(\n", + " name='hrpt',\n", + " sample_form='powder',\n", + " beam_mode='constant wavelength',\n", + " radiation_probe='neutron',\n", + " data_path='data/hrpt_lbco.xye',\n", + ")" ] }, { @@ -286,8 +287,7 @@ "metadata": {}, "outputs": [], "source": [ - "project.plot_meas_vs_calc(expt_name='hrpt',\n", - " show_residual=True)" + "project.plot_meas_vs_calc(expt_name='hrpt', show_residual=True)" ] } ], diff --git a/tutorials/quick_single-fit_pd-neut-cwl_LBCO-HRPT.py b/tutorials/quick_single-fit_pd-neut-cwl_LBCO-HRPT.py index 3263f817..ad7ceb37 100644 --- a/tutorials/quick_single-fit_pd-neut-cwl_LBCO-HRPT.py +++ b/tutorials/quick_single-fit_pd-neut-cwl_LBCO-HRPT.py @@ -54,15 +54,16 @@ # ## Step 3: Define Experiment # %% -ed.download_from_repository('hrpt_lbco.xye', - destination='data') +ed.download_from_repository('hrpt_lbco.xye', destination='data') # %% -project.experiments.add(name='hrpt', - sample_form='powder', - beam_mode='constant wavelength', - radiation_probe='neutron', - data_path='data/hrpt_lbco.xye') +project.experiments.add( + name='hrpt', + sample_form='powder', + beam_mode='constant wavelength', + radiation_probe='neutron', + data_path='data/hrpt_lbco.xye', +) # %% experiment = project.experiments['hrpt'] @@ -122,5 +123,4 @@ project.analysis.fit() # %% -project.plot_meas_vs_calc(expt_name='hrpt', - show_residual=True) +project.plot_meas_vs_calc(expt_name='hrpt', show_residual=True) From a17d42bdc52785dc1bb61268fa3eaaa3c7338817 Mon Sep 17 00:00:00 2001 From: Andrew Sazonov Date: Fri, 8 Aug 2025 15:21:38 +0200 Subject: [PATCH 18/43] Apply more ruff formatting --- pyproject.toml | 11 ------- src/easydiffraction/core/objects.py | 4 +-- .../experiments/collections/background.py | 12 +++++--- .../experiments/collections/datastore.py | 4 +++ .../experiments/components/experiment_type.py | 6 ++-- ...ool-2025_analysis-powder-diffraction.ipynb | 29 +++++++++++++------ ...school-2025_analysis-powder-diffraction.py | 29 +++++++++++++------ 7 files changed, 58 insertions(+), 37 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 70b230a0..3a70913c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -58,7 +58,6 @@ dev = [ 'pytest-cov', # Test coverage 'pytest-xdist', # Enable parallel testing 'ruff', # Linting and formatting code - 'yapf', # Formatting code (extra) 'validate-pyproject[all]', # Validate pyproject.toml 'versioningit', # Automatic versioning from git tags ] @@ -172,16 +171,6 @@ indent-style = 'space' # PEP 8 recommends using spaces over tabs line-ending = 'lf' # Line endings will be converted to \n quote-style = 'single' # But double quotes in docstrings (PEP 8, PEP 257) -######################## -# Configuration for yapf -######################### - -# 'yapf' -- Python code formatter -# https://github.com/google/yapf - -[tool.yapf] -split_all_comma_separated_values = true # Split all comma-separated values into separate lines - ############################ # Configuration for prettier ############################ diff --git a/src/easydiffraction/core/objects.py b/src/easydiffraction/core/objects.py index fbccd35f..052a30ec 100644 --- a/src/easydiffraction/core/objects.py +++ b/src/easydiffraction/core/objects.py @@ -1,4 +1,4 @@ -import random +import secrets import string from abc import ABC from abc import abstractmethod @@ -75,7 +75,7 @@ def _generate_random_unique_id(self) -> str: # used to create the alias for the parameter in the constraint # expression. length = 16 - letters = random.choices(string.ascii_lowercase, k=length) + letters = [secrets.choice(string.ascii_lowercase) for _ in range(length)] uid = ''.join(letters) return uid diff --git a/src/easydiffraction/experiments/collections/background.py b/src/easydiffraction/experiments/collections/background.py index 1efa7e9a..97c582c5 100644 --- a/src/easydiffraction/experiments/collections/background.py +++ b/src/easydiffraction/experiments/collections/background.py @@ -35,13 +35,15 @@ def __init__(self, x: float, y: float): value=x, name='x', cif_name='line_segment_X', - description='X-coordinates used to create many straight-line segments representing the background in a calculated diffractogram.', + description='X-coordinates used to create many straight-line segments representing the background in a ' + 'calculated diffractogram.', ) self.y = Parameter( value=y, # TODO: rename to intensity name='y', # TODO: rename to intensity cif_name='line_segment_intensity', - description='Intensity used to create many straight-line segments representing the background in a calculated diffractogram', + description='Intensity used to create many straight-line segments representing the background in a calculated ' + 'diffractogram', ) # Select which of the input parameters is used for the @@ -71,13 +73,15 @@ def __init__(self, order: int, coef: float) -> None: value=order, name='chebyshev_order', cif_name='Chebyshev_order', - description='The value of an order used in a Chebyshev polynomial equation representing the background in a calculated diffractogram', + description='The value of an order used in a Chebyshev polynomial equation representing the background in a ' + 'calculated diffractogram', ) self.coef = Parameter( value=coef, name='chebyshev_coef', cif_name='Chebyshev_coef', - description='The value of a coefficient used in a Chebyshev polynomial equation representing the background in a calculated diffractogram', + description='The value of a coefficient used in a Chebyshev polynomial equation representing the background in a ' + 'calculated diffractogram', ) # Select which of the input parameters is used for the diff --git a/src/easydiffraction/experiments/collections/datastore.py b/src/easydiffraction/experiments/collections/datastore.py index b8f5500f..8cc8853f 100644 --- a/src/easydiffraction/experiments/collections/datastore.py +++ b/src/easydiffraction/experiments/collections/datastore.py @@ -1,7 +1,11 @@ from __future__ import annotations +from typing import TYPE_CHECKING from typing import Optional +if TYPE_CHECKING: + from ..experiment import Experiment # adjust path if needed + import numpy as np diff --git a/src/easydiffraction/experiments/components/experiment_type.py b/src/easydiffraction/experiments/components/experiment_type.py index 2b75736e..5848d549 100644 --- a/src/easydiffraction/experiments/components/experiment_type.py +++ b/src/easydiffraction/experiments/components/experiment_type.py @@ -24,13 +24,15 @@ def __init__( value=sample_form, name='sample_form', cif_name='sample_form', - description='Specifies whether the diffraction data corresponds to powder diffraction or single crystal diffraction', + description='Specifies whether the diffraction data corresponds to powder diffraction or single crystal ' + 'diffraction', ) self.beam_mode: Descriptor = Descriptor( value=beam_mode, name='beam_mode', cif_name='beam_mode', - description='Defines whether the measurement is performed with a constant wavelength (CW) or time-of-flight (TOF) method', + description='Defines whether the measurement is performed with a constant wavelength (CW) or time-of-flight (' + 'TOF) method', ) self.radiation_probe: Descriptor = Descriptor( value=radiation_probe, diff --git a/tutorials/dmsc-summer-school-2025_analysis-powder-diffraction.ipynb b/tutorials/dmsc-summer-school-2025_analysis-powder-diffraction.ipynb index ccacb7a8..690d629e 100644 --- a/tutorials/dmsc-summer-school-2025_analysis-powder-diffraction.ipynb +++ b/tutorials/dmsc-summer-school-2025_analysis-powder-diffraction.ipynb @@ -1355,11 +1355,15 @@ "4. The background points are not correct.\n", "\n", "**Solution**:\n", - "1. ❌ The conversion parameters from TOF to d-spacing were set based on the data reduction step. While they are\n", - "specific to each dataset and thus differ from those used for the Si data, the full reduction workflow has already been\n", + "1. ❌ The conversion parameters from TOF to d-spacing were set based on the\n", + "data reduction step. While they are specific to each dataset and thus differ\n", + "from those used for the Si data, the full reduction workflow has already been\n", "validated with the Si fit. Therefore, they are not the cause of the misfit in this case.\n", - "2. ✅ The lattice parameters of the LBCO phase were set based on the CIF data, which is a good starting point, but they are not necessarily as accurate as needed for the fit. The lattice parameters may need to be refined.\n", - "3. ❌ The peak profile parameters do not change the position of the peaks, but rather their shape.\n", + "2. ✅ The lattice parameters of the LBCO phase were set based on the CIF data,\n", + "which is a good starting point, but they are not necessarily as accurate as\n", + "needed for the fit. The lattice parameters may need to be refined.\n", + "3. ❌ The peak profile parameters do not change the position of the peaks, but\n", + "rather their shape.\n", "4. ❌ The background points affect the background level, but not the peak positions." ] }, @@ -1423,7 +1427,11 @@ "id": "93", "metadata": {}, "source": [ - "One of the main goals of this study was to refine the lattice parameter of the LBCO phase. As shown in the updated fit results, the overall fit has improved significantly, even though the change in cell length is less than 1% of the initial value. This demonstrates how even a small adjustment to the lattice parameter can have a substantial impact on the quality of the fit." + "One of the main goals of this study was to refine the lattice parameter of\n", + "the LBCO phase. As shown in the updated fit results, the overall fit has\n", + "improved significantly, even though the change in cell length is less than\n", + "1% of the initial value. This demonstrates how even a small adjustment to\n", + "the lattice parameter can have a substantial impact on the quality of the fit." ] }, { @@ -1844,7 +1852,8 @@ "id": "126", "metadata": {}, "source": [ - "All previously unexplained peaks are now accounted for in the pattern, and the fit is improved.\n", + "All previously unexplained peaks are now accounted for in the pattern, and the\n", + "fit is improved.\n", "Some discrepancies in the peak intensities remain, but\n", "further improvements would require more advanced data reduction and analysis,\n", "which are beyond the scope of this tutorial.\n", @@ -1852,9 +1861,11 @@ "#### Final Remarks\n", "\n", "In this part of the tutorial, we have demonstrated how to use EasyDiffraction\n", - "to refine lattice parameters for a more complex crystal structure, La₀.₅Ba₀.₅CoO₃ (LBCO).\n", - "In real experiments, additional parameters, such as atomic positions, occupancies, and atomic displacement factors, can also be refined to further improve the fit.\n", - "However, we will stop here, as the purpose of this part of the tutorial is to demonstrate the practical use of\n", + "to refine lattice parameters for a more complex crystal structure,\n", + "La₀.₅Ba₀.₅CoO₃ (LBCO). In real experiments, additional parameters, such as\n", + "atomic positions, occupancies, and atomic displacement factors, can also be\n", + "refined to further improve the fit. However, we will stop here, as the\n", + "purpose of this part of the tutorial is to demonstrate the practical use of\n", "EasyDiffraction for fitting powder diffraction data." ] }, diff --git a/tutorials/dmsc-summer-school-2025_analysis-powder-diffraction.py b/tutorials/dmsc-summer-school-2025_analysis-powder-diffraction.py index ba0e12d5..0b67c7c6 100644 --- a/tutorials/dmsc-summer-school-2025_analysis-powder-diffraction.py +++ b/tutorials/dmsc-summer-school-2025_analysis-powder-diffraction.py @@ -824,11 +824,15 @@ # 4. The background points are not correct. # # **Solution**: -# 1. ❌ The conversion parameters from TOF to d-spacing were set based on the data reduction step. While they are -# specific to each dataset and thus differ from those used for the Si data, the full reduction workflow has already been +# 1. ❌ The conversion parameters from TOF to d-spacing were set based on the +# data reduction step. While they are specific to each dataset and thus differ +# from those used for the Si data, the full reduction workflow has already been # validated with the Si fit. Therefore, they are not the cause of the misfit in this case. -# 2. ✅ The lattice parameters of the LBCO phase were set based on the CIF data, which is a good starting point, but they are not necessarily as accurate as needed for the fit. The lattice parameters may need to be refined. -# 3. ❌ The peak profile parameters do not change the position of the peaks, but rather their shape. +# 2. ✅ The lattice parameters of the LBCO phase were set based on the CIF data, +# which is a good starting point, but they are not necessarily as accurate as +# needed for the fit. The lattice parameters may need to be refined. +# 3. ❌ The peak profile parameters do not change the position of the peaks, but +# rather their shape. # 4. ❌ The background points affect the background level, but not the peak positions. # %% @@ -854,7 +858,11 @@ project_2.plot_meas_vs_calc(expt_name='sim_lbco') # %% [markdown] -# One of the main goals of this study was to refine the lattice parameter of the LBCO phase. As shown in the updated fit results, the overall fit has improved significantly, even though the change in cell length is less than 1% of the initial value. This demonstrates how even a small adjustment to the lattice parameter can have a substantial impact on the quality of the fit. +# One of the main goals of this study was to refine the lattice parameter of +# the LBCO phase. As shown in the updated fit results, the overall fit has +# improved significantly, even though the change in cell length is less than +# 1% of the initial value. This demonstrates how even a small adjustment to +# the lattice parameter can have a substantial impact on the quality of the fit. # %% [markdown] # #### Exercise 5.5: Visualize the Fit Results in d-spacing @@ -1076,7 +1084,8 @@ project_2.plot_meas_vs_calc(expt_name='sim_lbco', x_min=88000, x_max=101000) # %% [markdown] -# All previously unexplained peaks are now accounted for in the pattern, and the fit is improved. +# All previously unexplained peaks are now accounted for in the pattern, and the +# fit is improved. # Some discrepancies in the peak intensities remain, but # further improvements would require more advanced data reduction and analysis, # which are beyond the scope of this tutorial. @@ -1084,9 +1093,11 @@ # #### Final Remarks # # In this part of the tutorial, we have demonstrated how to use EasyDiffraction -# to refine lattice parameters for a more complex crystal structure, La₀.₅Ba₀.₅CoO₃ (LBCO). -# In real experiments, additional parameters, such as atomic positions, occupancies, and atomic displacement factors, can also be refined to further improve the fit. -# However, we will stop here, as the purpose of this part of the tutorial is to demonstrate the practical use of +# to refine lattice parameters for a more complex crystal structure, +# La₀.₅Ba₀.₅CoO₃ (LBCO). In real experiments, additional parameters, such as +# atomic positions, occupancies, and atomic displacement factors, can also be +# refined to further improve the fit. However, we will stop here, as the +# purpose of this part of the tutorial is to demonstrate the practical use of # EasyDiffraction for fitting powder diffraction data. # %% [markdown] From 37735dccb7d319b111fe3f13f17dae31089b4c44 Mon Sep 17 00:00:00 2001 From: Andrew Sazonov Date: Fri, 8 Aug 2025 15:50:45 +0200 Subject: [PATCH 19/43] Apply prettier formatting --- .github/workflows/build-docs.yml | 10 +- .github/workflows/test-code.yaml | 3 +- .github/workflows/test-tutorials-colab.yaml | 8 +- .github/workflows/test-tutorials.yaml | 1 - .github/workflows/verify-pr-labels.yml | 4 +- README.md | 6 +- docs/api-reference/index.md | 33 +++-- docs/api-reference/project.md | 2 +- docs/api-reference/summary.md | 2 +- docs/index.md | 15 +-- docs/installation-and-setup/index.md | 74 ++++++----- docs/introduction/index.md | 44 ++++--- docs/mkdocs.yml | 18 +-- docs/tutorials/index.md | 88 +++++++------ docs/user-guide/analysis-workflow/analysis.md | 119 +++++++++--------- .../analysis-workflow/experiment.md | 118 ++++++++--------- docs/user-guide/analysis-workflow/index.md | 20 ++- docs/user-guide/analysis-workflow/model.md | 48 +++---- docs/user-guide/analysis-workflow/project.md | 48 +++---- docs/user-guide/analysis-workflow/summary.md | 24 ++-- docs/user-guide/concept.md | 85 ++++++++----- docs/user-guide/data-format.md | 101 ++++++++------- docs/user-guide/first-steps.md | 112 +++++++++-------- docs/user-guide/glossary.md | 10 +- docs/user-guide/index.md | 24 ++-- docs/user-guide/parameters.md | 106 +++++++++------- prettierrc.toml | 11 ++ pyproject.toml | 58 +++------ 28 files changed, 638 insertions(+), 554 deletions(-) create mode 100644 prettierrc.toml diff --git a/.github/workflows/build-docs.yml b/.github/workflows/build-docs.yml index 0a705361..ecb667f6 100644 --- a/.github/workflows/build-docs.yml +++ b/.github/workflows/build-docs.yml @@ -98,7 +98,9 @@ jobs: # Copy Jupyter notebooks from the project to the docs folder # The notebooks are used to generate the documentation - - name: Convert ${{ env.NOTEBOOKS_DIR }}/*.py to docs/${{env.NOTEBOOKS_DIR }}/*.ipynb + - name: + Convert ${{ env.NOTEBOOKS_DIR }}/*.py to docs/${{env.NOTEBOOKS_DIR + }}/*.ipynb run: | cp -R ${{ env.NOTEBOOKS_DIR }}/data docs/${{ env.NOTEBOOKS_DIR }}/ jupytext ${{ env.NOTEBOOKS_DIR }}/*.py --from py:percent --to ipynb @@ -149,8 +151,7 @@ jobs: # Upload the static files from the site/ directory to be used in the next job # This extra step is needed to allow the download of the artifact in the next job # for pushing its content to the branch named 'gh_pages' - - name: - Upload built site as artifact for gh_pages (master branch) + - name: Upload built site as artifact for gh_pages (master branch) if: ${{ env.CI_BRANCH == 'master' }} uses: actions/upload-artifact@v4 with: @@ -209,7 +210,8 @@ jobs: # https://github.com/easyscience/diffraction-lib/settings/hooks # This is done for the gh_pages branch when the site is tested with a step above - name: - Deploy to gh_pages branch to trigger deployment to custom domain (master branch) + Deploy to gh_pages branch to trigger deployment to custom domain + (master branch) if: ${{ env.CI_BRANCH == 'master' }} uses: s0/git-publish-subdir-action@develop env: diff --git a/.github/workflows/test-code.yaml b/.github/workflows/test-code.yaml index a39ddf53..2ca245b2 100644 --- a/.github/workflows/test-code.yaml +++ b/.github/workflows/test-code.yaml @@ -27,10 +27,9 @@ env: # Set the environment variables to be used in all jobs defined in this workflow # Set the CI_BRANCH environment variable to be the branch name CI_BRANCH: ${{ github.head_ref || github.ref_name }} - + jobs: test-code: - strategy: fail-fast: false matrix: diff --git a/.github/workflows/test-tutorials-colab.yaml b/.github/workflows/test-tutorials-colab.yaml index 728760e8..35532661 100644 --- a/.github/workflows/test-tutorials-colab.yaml +++ b/.github/workflows/test-tutorials-colab.yaml @@ -25,7 +25,6 @@ concurrency: jobs: testing-tutorials-colab: - strategy: fail-fast: false matrix: @@ -49,8 +48,11 @@ jobs: run: python -m pip install --upgrade pip - name: Install Python dependencies - run: python -m pip install 'easydiffraction[charts]' nbconvert nbmake pytest pytest-xdist + run: + python -m pip install 'easydiffraction[charts]' nbconvert nbmake + pytest pytest-xdist - name: Check if Jupyter Notebooks run without errors run: > - python -m pytest --nbmake docs/tutorials/ --nbmake-timeout=300 --color=yes -n=auto \ No newline at end of file + python -m pytest --nbmake docs/tutorials/ --nbmake-timeout=300 + --color=yes -n=auto diff --git a/.github/workflows/test-tutorials.yaml b/.github/workflows/test-tutorials.yaml index f53bcc0f..1a304413 100644 --- a/.github/workflows/test-tutorials.yaml +++ b/.github/workflows/test-tutorials.yaml @@ -21,7 +21,6 @@ env: jobs: test-tutorials: - strategy: fail-fast: false matrix: diff --git a/.github/workflows/verify-pr-labels.yml b/.github/workflows/verify-pr-labels.yml index f103a114..37fd01f4 100644 --- a/.github/workflows/verify-pr-labels.yml +++ b/.github/workflows/verify-pr-labels.yml @@ -17,6 +17,8 @@ jobs: uses: jesusvasquez333/verify-pr-label-action@v1.4.0 with: github-token: ${{ secrets.GITHUB_TOKEN }} - valid-labels: '[scope] bug, [scope] documentation, [scope] enhancement, [scope] maintenance, [scope] significant' + valid-labels: + '[scope] bug, [scope] documentation, [scope] enhancement, [scope] + maintenance, [scope] significant' pull-request-number: ${{ github.event.pull_request.number }} disable-reviews: false diff --git a/README.md b/README.md index 1fcdf060..a08db606 100644 --- a/README.md +++ b/README.md @@ -33,6 +33,7 @@ Development playground for the new EasyDiffraction API. pip python -m pip install . '[visualization]' ``` - Install pycrysfml (pyenv python 3.12, macOS 14, Apple Silicon): + ```bash # Install from local wheel pip install deps/pycrysfml-0.1.6-py312-none-macosx_14_0_arm64.whl @@ -48,8 +49,9 @@ Development playground for the new EasyDiffraction API. python -c "from pycrysfml import cfml_py_utilities" ``` -- Install CBLAS library, required for using the Pair Distribution Function feature. - This step is required only on Windows. +- Install CBLAS library, required for using the Pair Distribution Function + feature. This step is required only on Windows. + ```bash # Install from the conda-forge channel conda install libcblas -c conda-forge diff --git a/docs/api-reference/index.md b/docs/api-reference/index.md index 57a5dc90..1d08cd20 100644 --- a/docs/api-reference/index.md +++ b/docs/api-reference/index.md @@ -7,21 +7,18 @@ icon: material/code-braces-box This section contains the reference detailing the functions and modules available in EasyDiffraction: -- [core](core.md) – - Contains core utilities and foundational objects used across the package. -- [crystallography](crystallography.md) – - Handles crystallographic calculations, space groups, and symmetry operations. -- [utils](utils.md) – - Miscellaneous utility functions for formatting, decorators, and general helpers. -- [plotting](plotting.md) – - Tools for visualizing data and fitting results. -- [project](project.md) – - Defines the project and manages its state. -- [sample_models](sample_models.md) – - Defines sample models, such as crystallographic structures, and manages their properties. -- [experiments](experiments.md) – - Manages experimental setups and instrument parameters, as well as the associated diffraction data. -- [analysis](analysis.md) – - Provides tools for analyzing diffraction data, including fitting and minimization. -- [summary](summary.md) – - Provides a summary of the project. +- [core](core.md) – Contains core utilities and foundational objects used across + the package. +- [crystallography](crystallography.md) – Handles crystallographic calculations, + space groups, and symmetry operations. +- [utils](utils.md) – Miscellaneous utility functions for formatting, + decorators, and general helpers. +- [plotting](plotting.md) – Tools for visualizing data and fitting results. +- [project](project.md) – Defines the project and manages its state. +- [sample_models](sample_models.md) – Defines sample models, such as + crystallographic structures, and manages their properties. +- [experiments](experiments.md) – Manages experimental setups and instrument + parameters, as well as the associated diffraction data. +- [analysis](analysis.md) – Provides tools for analyzing diffraction data, + including fitting and minimization. +- [summary](summary.md) – Provides a summary of the project. diff --git a/docs/api-reference/project.md b/docs/api-reference/project.md index d93e8f2b..2a18a93f 100644 --- a/docs/api-reference/project.md +++ b/docs/api-reference/project.md @@ -1 +1 @@ -::: easydiffraction.project \ No newline at end of file +::: easydiffraction.project diff --git a/docs/api-reference/summary.md b/docs/api-reference/summary.md index 593f3b03..8cf1a056 100644 --- a/docs/api-reference/summary.md +++ b/docs/api-reference/summary.md @@ -1 +1 @@ -::: easydiffraction.summary \ No newline at end of file +::: easydiffraction.summary diff --git a/docs/index.md b/docs/index.md index 46616c6c..a34d3023 100644 --- a/docs/index.md +++ b/docs/index.md @@ -7,13 +7,14 @@ Here is a brief overview of the main documentation sections: - [:material-information-slab-circle: Introduction](introduction/index.md) – Provides an overview of EasyDiffraction, including its purpose, licensing, latest release details, and contact information. -- [:material-cog-box: Installation & Setup](installation-and-setup/index.md) – +- [:material-cog-box: Installation & Setup](installation-and-setup/index.md) – Guides users through system requirements, environment configuration, and the installation process. -- [:material-book-open-variant: User Guide](user-guide/index.md) – - Covers core concepts, key terminology, workflow steps, and essential parameters for +- [:material-book-open-variant: User Guide](user-guide/index.md) – Covers core + concepts, key terminology, workflow steps, and essential parameters for effective use of EasyDiffraction. -- [:material-school: Tutorials](tutorials/index.md) – - Offers practical, step-by-step examples demonstrating common workflows and data analysis tasks. -- [:material-code-braces-box: API Reference](api-reference/index.md) – - An auto-generated reference detailing the available functions and modules in EasyDiffraction. +- [:material-school: Tutorials](tutorials/index.md) – Offers practical, + step-by-step examples demonstrating common workflows and data analysis tasks. +- [:material-code-braces-box: API Reference](api-reference/index.md) – An + auto-generated reference detailing the available functions and modules in + EasyDiffraction. diff --git a/docs/installation-and-setup/index.md b/docs/installation-and-setup/index.md index 9a3bc2b3..bb7c6c78 100644 --- a/docs/installation-and-setup/index.md +++ b/docs/installation-and-setup/index.md @@ -6,13 +6,15 @@ icon: material/cog-box ## Requirements -EasyDiffraction is a cross-platform Python library compatible with **Python 3.10 through 3.12**. -Make sure Python is installed on your system before proceeding with the installation. +EasyDiffraction is a cross-platform Python library compatible with **Python 3.10 +through 3.12**. +Make sure Python is installed on your system before proceeding with the +installation. ## Environment Setup optional { #environment-setup data-toc-label="Environment Setup" } -We recommend using a **virtual environment** to isolate dependencies and avoid -conflicts with system-wide packages. If any issues arise, you can simply delete +We recommend using a **virtual environment** to isolate dependencies and avoid +conflicts with system-wide packages. If any issues arise, you can simply delete and recreate the environment. #### Creating and Activating a Virtual Environment: @@ -21,7 +23,9 @@ and recreate the environment. ```console python3 -m venv venv ``` + + - Activate the environment: === ":material-apple: macOS" @@ -38,9 +42,11 @@ and recreate the environment. .\venv\Scripts\activate.bat # Windows with CMD .\venv\Scripts\activate.ps1 # Windows with PowerShell ``` + -- The terminal should now show `(venv)`, indicating that the virtual - environment is active. + +- The terminal should now show `(venv)`, indicating that the virtual environment + is active. #### Deactivating and Removing the Virtual Environment: @@ -48,7 +54,9 @@ and recreate the environment. ```console deactivate ``` + + - If this environment is no longer needed, delete it: === ":material-apple: macOS" @@ -63,21 +71,22 @@ and recreate the environment. ```console rmdir /s /q venv ``` + ## Installation Guide ### Installing from PyPI recommended { #from-pypi data-toc-label="Installing from PyPI" } -EasyDiffraction is available on **PyPI (Python Package Index)** and can be -installed using `pip`. We strongly recommend installing it within a virtual -environment, as described in the -[Environment Setup](#environment-setup) section. +EasyDiffraction is available on **PyPI (Python Package Index)** and can be +installed using `pip`. We strongly recommend installing it within a virtual +environment, as described in the [Environment Setup](#environment-setup) +section. -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]' @@ -110,7 +119,8 @@ pip show easydiffraction ### Installing from GitHub -Installing unreleased versions is generally not recommended but may be useful for testing. +Installing unreleased versions is generally not recommended but may be useful +for testing. To install EasyDiffraction from, e.g., the `develop` branch of GitHub: @@ -127,17 +137,17 @@ pip install 'easydiffraction[charts] @ git+https://github.com/easyscience/diffra ## How to Run Tutorials EasyDiffraction includes a collection of **Jupyter Notebook examples** that -demonstrate key functionality. These tutorials serve as -**step-by-step guides** to help users understand the diffraction data analysis -workflow. +demonstrate key functionality. These tutorials serve as **step-by-step guides** +to help users understand the diffraction data analysis workflow. They are available as **static HTML pages** in the -[:material-school: Tutorials](../tutorials/index.md) section. You can also run them interactively in two ways: +[:material-school: Tutorials](../tutorials/index.md) section. You can also run +them interactively in two ways: -- **Run Locally** – Download the notebook via the - :material-download: **Download** button and run it on your computer. -- **Run Online** – Use the :google-colab: **Open in Google Colab** - button to run the tutorial directly in your browser (no setup required). +- **Run Locally** – Download the notebook via the :material-download: + **Download** button and run it on your computer. +- **Run Online** – Use the :google-colab: **Open in Google Colab** button to run + the tutorial directly in your browser (no setup required). !!! note @@ -146,15 +156,15 @@ They are available as **static HTML pages** in the ### Run Tutorials Locally -To run tutorials locally, install **Jupyter Notebook** or **JupyterLab**. -Here are the steps to follow in the case of **Jupyter Notebook**: +To run tutorials locally, install **Jupyter Notebook** or **JupyterLab**. Here +are the steps to follow in the case of **Jupyter Notebook**: - Install Jupyter Notebook: ```console pip install notebook ``` -- Download the latest EasyDiffraction tutorial examples from GitHub, e.g., - using curl: +- Download the latest EasyDiffraction tutorial examples from GitHub, e.g., using + curl: ```console curl --location --remote-name https://github.com/easyscience/diffraction-lib/releases/latest/download/examples.zip ``` @@ -174,14 +184,14 @@ Here are the steps to follow in the case of **Jupyter Notebook**: ### Run Tutorials via Google Colab -**Google Colab** lets you run Jupyter Notebooks in the cloud without any -local installation. +**Google Colab** lets you run Jupyter Notebooks in the cloud without any local +installation. To use Google Colab: - Ensure you have a **Google account**. -- Go to the - **[:material-school: Tutorials](../tutorials/index.md)** section. +- Go to the **[:material-school: Tutorials](../tutorials/index.md)** section. - Click the :google-colab: **Open in Google Colab** button on any tutorial. -This is the fastest way to start experimenting with EasyDiffraction, without setting up Python on your system. +This is the fastest way to start experimenting with EasyDiffraction, without +setting up Python on your system. diff --git a/docs/introduction/index.md b/docs/introduction/index.md index 9605a92a..6de284c9 100644 --- a/docs/introduction/index.md +++ b/docs/introduction/index.md @@ -6,61 +6,69 @@ icon: material/information-slab-circle ## Description -**EasyDiffraction** is scientific software for calculating diffraction patterns -based on structural models and refining model parameters against experimental data. +**EasyDiffraction** is scientific software for calculating diffraction +patterns +based on structural models and refining model parameters against experimental +data. -It is available as both a cross-platform desktop application and a Python library. +It is available as both a cross-platform desktop application and a Python +library. This documentation covers the usage of the EasyDiffraction Python library. -For the graphical user interface (GUI) version, refer to the +For the graphical user interface (GUI) version, refer to the [GUI documentation](https://docs.easydiffraction.org/app). ## EasyScience EasyDiffraction is developed using the -[EasyScience framework](https://easyscience.software), which provides tools for +[EasyScience framework](https://easyscience.software), which provides tools +for building modular and flexible scientific libraries and applications. ## License -EasyDiffraction is released under the +EasyDiffraction is released under the [BSD 3-Clause License](https://raw.githubusercontent.com/easyscience/EasyDiffractionLib/master/LICENSE). ## Releases -The latest version of the EasyDiffraction Python library is +The latest version of the EasyDiffraction Python library is [{{ vars.release_version }}](https://github.com/easyscience/EasyDiffractionLib/releases/latest). -For a complete list of new features, bug fixes, and improvements, see the +For a complete list of new features, bug fixes, and improvements, see the [GitHub Releases page](https://github.com/easyscience/EasyDiffractionLib/releases). ## Citation -If you use EasyDiffraction in your work, please cite the specific version you used. +If you use EasyDiffraction in your work, please cite the specific version you +used. All official releases of the EasyDiffraction library are archived on Zenodo, each with a version-specific Digital Object Identifier (DOI). -Citation details in various styles (e.g., APA, MLA) and formats (e.g., BibTeX, JSON) -are available on the [Zenodo archive page](https://doi.org/10.5281/zenodo.5552306). +Citation details in various styles (e.g., APA, MLA) and formats (e.g., BibTeX, +JSON) +are available on the +[Zenodo archive page](https://doi.org/10.5281/zenodo.5552306). ## Contributing -We welcome contributions from the community! EasyDiffraction is intended to be -a community-driven, open-source project supported by a diverse group of +We welcome contributions from the community! EasyDiffraction is intended to be a +community-driven, open-source project supported by a diverse group of contributors. -The project is maintained by the +The project is maintained by the [European Spallation Source (ESS)](https://ess.eu). -To contribute, see our +To contribute, see our [:material-account-plus: Contributing Guidelines](https://github.com/EasyScience/EasyDiffractionLib/blob/master/CONTRIBUTING.md) on GitHub. ## Get in Touch -For general questions or feedback, contact us at +For general questions or feedback, contact us at [support@easydiffraction.org](mailto:support@easydiffraction.org). -To report bugs or request features, please use the -[GitHub Issue Tracker](https://github.com/easyscience/EasyDiffractionLib/issues) (free registration required). +To report bugs or request features, please use the +[GitHub Issue Tracker](https://github.com/easyscience/EasyDiffractionLib/issues) +(free registration required). diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml index 9b849bc0..5e2528cf 100644 --- a/docs/mkdocs.yml +++ b/docs/mkdocs.yml @@ -16,13 +16,13 @@ copyright: © 2025 EasyDiffraction # Extra icons in the bottom right corner extra: social: - - icon: easydiffraction # File: overrides/.icons/easydiffraction.svg + - icon: easydiffraction # File: overrides/.icons/easydiffraction.svg link: https://easydiffraction.org name: EasyDiffraction Main Webpage - - icon: app # File: overrides/.icons/app.svg + - icon: app # File: overrides/.icons/app.svg link: https://docs.easydiffraction.org/app/ name: EasyDiffraction Application Docs - - icon: fontawesome/brands/github # Name as in Font Awesome + - icon: fontawesome/brands/github # Name as in Font Awesome link: https://github.com/easyscience/diffraction-lib name: EasyDiffraction Library Source Code on GitHub @@ -55,12 +55,12 @@ nav: - Parameters: user-guide/parameters.md - First Steps: user-guide/first-steps.md - Analysis Workflow: - - Analysis Workflow: user-guide/analysis-workflow/index.md - - Project: user-guide/analysis-workflow/project.md - - Sample Model: user-guide/analysis-workflow/model.md - - Experiment: user-guide/analysis-workflow/experiment.md - - Analysis: user-guide/analysis-workflow/analysis.md - - Summary: user-guide/analysis-workflow/summary.md + - Analysis Workflow: user-guide/analysis-workflow/index.md + - Project: user-guide/analysis-workflow/project.md + - Sample Model: user-guide/analysis-workflow/model.md + - Experiment: user-guide/analysis-workflow/experiment.md + - Analysis: user-guide/analysis-workflow/analysis.md + - Summary: user-guide/analysis-workflow/summary.md - Tutorials: - Tutorials: tutorials/index.md - Getting Started: diff --git a/docs/tutorials/index.md b/docs/tutorials/index.md index 09e1f58c..a10891b9 100644 --- a/docs/tutorials/index.md +++ b/docs/tutorials/index.md @@ -4,10 +4,10 @@ icon: material/school # :material-school: Tutorials -This section presents a collection of **Jupyter Notebook** tutorials that +This section presents a collection of **Jupyter Notebook** tutorials that demonstrate how to use EasyDiffraction for various tasks. These tutorials serve -as self-contained, step-by-step **guides** to help users grasp the workflow of diffraction data -analysis using EasyDiffraction. +as self-contained, step-by-step **guides** to help users grasp the workflow of +diffraction data analysis using EasyDiffraction. Instructions on how to run the tutorials are provided in the [:material-cog-box: Installation & Setup](../installation-and-setup/index.md#how-to-run-tutorials) @@ -17,60 +17,58 @@ The tutorials are organized into the following categories. ## Getting Started -- [LBCO `quick`](quick_single-fit_pd-neut-cwl_LBCO-HRPT.ipynb) – - A minimal example intended as a quick reference for users already familiar - with the EasyDiffraction API or who want to see an example refinement in - code. This tutorial covers a Rietveld refinement of the La0.5Ba0.5CoO3 - crystal structure using constant wavelength neutron powder diffraction data - from HRPT at PSI. -- [LBCO `basic`](basic_single-fit_pd-neut-cwl_LBCO-HRPT.ipynb) – - Demonstrates the use of the EasyDiffraction API in a simplified, - user-friendly manner that closely follows the GUI workflow for a Rietveld - refinement of the La0.5Ba0.5CoO3 crystal structure using constant wavelength - neutron powder diffraction data from HRPT at PSI. This tutorial provides a - full explanation of the workflow with detailed comments and descriptions of - every step, making it suitable for users who are new to EasyDiffraction or - those who prefer a more guided approach. +- [LBCO `quick`](quick_single-fit_pd-neut-cwl_LBCO-HRPT.ipynb) – A minimal + example intended as a quick reference for users already familiar with the + EasyDiffraction API or who want to see an example refinement in code. This + tutorial covers a Rietveld refinement of the La0.5Ba0.5CoO3 crystal structure + using constant wavelength neutron powder diffraction data from HRPT at PSI. +- [LBCO `basic`](basic_single-fit_pd-neut-cwl_LBCO-HRPT.ipynb) – Demonstrates + the use of the EasyDiffraction API in a simplified, user-friendly manner that + closely follows the GUI workflow for a Rietveld refinement of the + La0.5Ba0.5CoO3 crystal structure using constant wavelength neutron powder + diffraction data from HRPT at PSI. This tutorial provides a full explanation + of the workflow with detailed comments and descriptions of every step, making + it suitable for users who are new to EasyDiffraction or those who prefer a + more guided approach. - [PbSO4 `advanced`](advanced_joint-fit_pd-neut-xray-cwl_PbSO4.ipynb) – Demonstrates a more flexible and advanced approach to using the - EasyDiffraction library, intended for users who are more comfortable with - Python programming. This tutorial covers a Rietveld refinement of the PbSO4 - crystal structure based on the joint fit of both X-ray and neutron - diffraction data. + EasyDiffraction library, intended for users who are more comfortable with + Python programming. This tutorial covers a Rietveld refinement of the PbSO4 + crystal structure based on the joint fit of both X-ray and neutron diffraction + data. ## Standard Diffraction -- [HS `pd-neut-cwl`](cryst-struct_pd-neut-cwl_HS-HRPT.ipynb) – - Demonstrates a Rietveld refinement of the HS crystal structure using constant - wavelength neutron powder diffraction data from HRPT at PSI. -- [Si `pd-neut-tof`](cryst-struct_pd-neut-tof_Si-SEPD.ipynb) – - Demonstrates a Rietveld refinement of the Si crystal structure using - time-of-flight neutron powder diffraction data from SEPD at Argonne. +- [HS `pd-neut-cwl`](cryst-struct_pd-neut-cwl_HS-HRPT.ipynb) – Demonstrates a + Rietveld refinement of the HS crystal structure using constant wavelength + neutron powder diffraction data from HRPT at PSI. +- [Si `pd-neut-tof`](cryst-struct_pd-neut-tof_Si-SEPD.ipynb) – Demonstrates a + Rietveld refinement of the Si crystal structure using time-of-flight neutron + powder diffraction data from SEPD at Argonne. - [NCAF `pd-neut-tof`](cryst-struct_pd-neut-tof_multidata_NCAF-WISH.ipynb) – - Demonstrates a Rietveld refinement of the Na2Ca3Al2F14 crystal structure - using two time-of-flight neutron powder diffraction datasets (from two - detector banks) of the WISH instrument at ISIS. + Demonstrates a Rietveld refinement of the Na2Ca3Al2F14 crystal structure using + two time-of-flight neutron powder diffraction datasets (from two detector + banks) of the WISH instrument at ISIS. - [LBCO+Si McStas](cryst-struct_pd-neut-tof_multiphase-LBCO-Si_McStas.ipynb) – Demonstrates a Rietveld refinement of the La0.5Ba0.5CoO3 crystal structure - with a small amount of Si impurity as a secondary phase using time-of-flight + with a small amount of Si impurity as a secondary phase using time-of-flight neutron powder diffraction data simulated with McStas. ## Pair Distribution Function (PDF) -- [Ni `pd-neut-cwl`](pdf_pd-neut-cwl_Ni.ipynb) – - Demonstrates a PDF analysis of Ni using data collected from a constant - wavelength neutron powder diffraction experiment. -- [Si `pd-neut-tof`](pdf_pd-neut-tof_Si-NOMAD.ipynb) – - Demonstrates a PDF analysis of Si using data collected from a - time-of-flight neutron powder diffraction experiment at NOMAD at SNS. -- [NaCl `pd-xray`](pdf_pd-xray_NaCl.ipynb) – - Demonstrates a PDF analysis of NaCl using data collected from an X-ray - powder diffraction experiment. +- [Ni `pd-neut-cwl`](pdf_pd-neut-cwl_Ni.ipynb) – Demonstrates a PDF analysis of + Ni using data collected from a constant wavelength neutron powder diffraction + experiment. +- [Si `pd-neut-tof`](pdf_pd-neut-tof_Si-NOMAD.ipynb) – Demonstrates a PDF + analysis of Si using data collected from a time-of-flight neutron powder + diffraction experiment at NOMAD at SNS. +- [NaCl `pd-xray`](pdf_pd-xray_NaCl.ipynb) – Demonstrates a PDF analysis of NaCl + using data collected from an X-ray powder diffraction experiment. ## Workshops & Schools -- [2025 DMSC](dmsc-summer-school-2025_analysis-powder-diffraction.ipynb) – - A workshop tutorial that demonstrates a Rietveld refinement of the - La0.5Ba0.5CoO3 crystal structure using time-of-flight neutron powder - diffraction data simulated with McStas. This tutorial is designed for - the ESS DMSC Summer School 2025. +- [2025 DMSC](dmsc-summer-school-2025_analysis-powder-diffraction.ipynb) – A + workshop tutorial that demonstrates a Rietveld refinement of the + La0.5Ba0.5CoO3 crystal structure using time-of-flight neutron powder + diffraction data simulated with McStas. This tutorial is designed for the ESS + DMSC Summer School 2025. diff --git a/docs/user-guide/analysis-workflow/analysis.md b/docs/user-guide/analysis-workflow/analysis.md index 0ecd397e..cdb948d2 100644 --- a/docs/user-guide/analysis-workflow/analysis.md +++ b/docs/user-guide/analysis-workflow/analysis.md @@ -5,46 +5,50 @@ icon: material/calculator # :material-calculator: Analysis This section provides an overview of **diffraction data analysis** in -EasyDiffraction, focusing on model-dependent analysis, calculation engines, -and minimization techniques. +EasyDiffraction, focusing on model-dependent analysis, calculation engines, and +minimization techniques. In EasyDiffraction, we focus on **model-dependent analysis**, where a model is -constructed based on prior knowledge of the studied system, and its parameters are -optimized to achieve the best agreement between experimental and calculated -diffraction data. Model-dependent analysis is widely used in neutron and X-ray scattering data. +constructed based on prior knowledge of the studied system, and its parameters +are optimized to achieve the best agreement between experimental and calculated +diffraction data. Model-dependent analysis is widely used in neutron and X-ray +scattering data. ## Calculation EasyDiffraction relies on third-party crystallographic libraries, referred to as **calculation engines** or just **calculators**, to perform the calculations. -The calculation engines are used to calculate the diffraction pattern -for the defined model of the studied sample using the instrumental and -other required experiment-related parameters, such as the wavelength, resolution, -etc. +The calculation engines are used to calculate the diffraction pattern for the +defined model of the studied sample using the instrumental and other required +experiment-related parameters, such as the wavelength, resolution, etc. You do not necessarily need the measured data to perform the calculations, but -you need a structural model and some details about the type of experiment you want to simulate. +you need a structural model and some details about the type of experiment you +want to simulate. EasyDiffraction is designed as a flexible and extensible tool that supports -different **calculation engines** for diffraction pattern calculations. -Currently, we integrate CrysPy, CrysFML, and PDFfit2 libraries as calculation engines. +different **calculation engines** for diffraction pattern calculations. +Currently, we integrate CrysPy, CrysFML, and PDFfit2 libraries as calculation +engines. ### CrysPy Calculator -[CrysPy](https://www.cryspy.fr) 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. +[CrysPy](https://www.cryspy.fr) 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. ### CrysFML Calculator -[CrysFML](https://code.ill.fr/scientific-software/CrysFML2008) 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 +[CrysFML](https://code.ill.fr/scientific-software/CrysFML2008) 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. ### PDFfit2 Calculator -[PDFfit2](https://github.com/diffpy/diffpy.pdffit2/) is a Python library for + +[PDFfit2](https://github.com/diffpy/diffpy.pdffit2/) is a Python library for calculating the pair distribution function (PDF) from crystallographic models. ### Set Calculator @@ -60,7 +64,7 @@ The example of the output is: Supported calculators | Calculator | Description | -|------------|-------------------------------------------------------------| +| ---------- | ----------------------------------------------------------- | | cryspy | CrysPy library for crystallographic calculations | | pdffit | PDFfit2 library for pair distribution function calculations | @@ -72,9 +76,9 @@ project.analysis.current_calculator = 'cryspy' ## Minimization / Optimization -The process of refining model parameters involves iterating through -multiple steps until the calculated data sufficiently matches the -experimental data. This process is illustrated in the following diagram: +The process of refining model parameters involves iterating through multiple +steps until the calculated data sufficiently matches the experimental data. This +process is illustrated in the following diagram: ```mermaid flowchart LR @@ -90,9 +94,9 @@ flowchart LR d-- Threshold
reached -->e ``` -Like the calculation engines, EasyDiffraction is designed to utilize -various third-party libraries for model refinement and parameter optimization. -These libraries provide robust curve fitting and uncertainty estimation tools. +Like the calculation engines, EasyDiffraction is designed to utilize various +third-party libraries for model refinement and parameter optimization. These +libraries provide robust curve fitting and uncertainty estimation tools. ### Lmfit Minimizer @@ -112,9 +116,9 @@ measured values. ### DFO-LS Minimizer -[DFO-LS](https://github.com/numericalalgorithmsgroup/dfols) (Derivative-Free Optimizer for Least-Squares) is a Python library for solving -nonlinear least-squares minimization, without requiring derivatives of the objective. - +[DFO-LS](https://github.com/numericalalgorithmsgroup/dfols) (Derivative-Free +Optimizer for Least-Squares) is a Python library for solving nonlinear +least-squares minimization, without requiring derivatives of the objective. ### Set Minimizer @@ -129,7 +133,7 @@ The example of the output is: Supported minimizers | Minimizer | Description | -|-----------------------|--------------------------------------------------------------------------| +| --------------------- | ------------------------------------------------------------------------ | | lmfit | LMFIT library using the default Levenberg-Marquardt least squares method | | lmfit (leastsq) | LMFIT library with Levenberg-Marquardt least squares method | | lmfit (least_squares) | LMFIT library with SciPy’s trust region reflective algorithm | @@ -144,7 +148,7 @@ project.analysis.current_minimizer = 'lmfit (leastsq)' ### Fit Mode In EasyDiffraction, you can set the **fit mode** to control how the refinement -process is performed. The fit mode determines whether the refinement is +process is performed. The fit mode determines whether the refinement is performed independently for each experiment or jointly across all experiments. To show the supported fit modes: @@ -158,7 +162,7 @@ An example of supported fit modes is: Supported fit modes | Strategy | Description | -|----------|---------------------------------------------------------------------| +| -------- | ------------------------------------------------------------------- | | single | Independent fitting of each experiment; no shared parameters | | joint | Simultaneous fitting of all experiments; some parameters are shared | @@ -177,10 +181,10 @@ project.analysis.show_current_fit_mode() ### Perform Fit -Refining the sample model and experiment parameters against measured data is -usually divided into several steps, where each step involves adding or -removing parameters to be refined, calculating the model data, and comparing it -to the experimental data as shown in the diagram above. +Refining the sample model and experiment parameters against measured data is +usually divided into several steps, where each step involves adding or removing +parameters to be refined, calculating the model data, and comparing it to the +experimental data as shown in the diagram above. To select the parameters to be refined, you can set the attribute `free` of the parameters to `True`. This indicates that the parameter is free to be optimized @@ -210,6 +214,7 @@ This method will iterate through the defined steps, adjusting the parameters until the calculated data sufficiently matches the experimental data. An example of the output after performing the fit is: + ```console Using experiment 🔬 'hrpt' for 'single' fitting 🚀 Starting fitting process with 'lmfit (leastsq)'... @@ -236,8 +241,8 @@ Fit results 📈 Fitted parameters: ``` -Now, you can inspect the fitted parameters to see how they have changed during the -refinement process, select more parameters to be refined, and perform +Now, you can inspect the fitted parameters to see how they have changed during +the refinement process, select more parameters to be refined, and perform additional fits as needed. To plot the measured vs calculated data after the fit, you can use the @@ -255,9 +260,9 @@ during the refinement process. ### Setting Aliases -Before setting constraints, you need to set aliases for the parameters you -want to constrain. This can be done using the `add` method of the `aliases` -object. Aliases are used to reference parameters in a more readable way, making it +Before setting constraints, you need to set aliases for the parameters you want +to constrain. This can be done using the `add` method of the `aliases` object. +Aliases are used to reference parameters in a more readable way, making it easier to manage constraints. An example of setting aliases for parameters in a sample model: @@ -286,11 +291,11 @@ project.analysis.aliases.add( ### Setting Constraints -Now that you have set the aliases, you can define constraints using the -`add` method of the `constraints` object. Constraints are defined by specifying -the **left-hand side (lhs) alias** and the **right-hand side (rhs) expression**. The rhs -expression can be a simple alias or a more complex expression involving other -aliases. +Now that you have set the aliases, you can define constraints using the `add` +method of the `constraints` object. Constraints are defined by specifying the +**left-hand side (lhs) alias** and the **right-hand side (rhs) expression**. The +rhs expression can be a simple alias or a more complex expression involving +other aliases. An example of setting constraints for the aliases defined above: @@ -307,10 +312,10 @@ project.analysis.constraints.add( ``` These constraints ensure that the `biso_Ba` parameter is equal to `biso_La`, and -the `occ_Ba` parameter is equal to `1 - occ_La`. This means that the occupancy of -the Ba atom will always be adjusted based on the occupancy of the La atom, and -the isotropic displacement parameter for Ba will be equal to that of La during -the refinement process. +the `occ_Ba` parameter is equal to `1 - occ_La`. This means that the occupancy +of the Ba atom will always be adjusted based on the occupancy of the La atom, +and the isotropic displacement parameter for Ba will be equal to that of La +during the refinement process. ### Viewing Constraints @@ -324,10 +329,10 @@ The example of the output is: User defined constraints -| lhs_alias | rhs_expr | full expression | -|------------|-------------|---------------------| -| biso_Ba | biso_La | biso_Ba = biso_La | -| occ_Ba | 1 - occ_La | occ_Ba = 1 - occ_La | +| lhs_alias | rhs_expr | full expression | +| --------- | ---------- | ------------------- | +| biso_Ba | biso_La | biso_Ba = biso_La | +| occ_Ba | 1 - occ_La | occ_Ba = 1 - occ_La | ## Analysis as CIF @@ -364,12 +369,12 @@ Example output: ## Saving an Analysis -Saving the project, as described in the [Project](project.md) section, -will also save the analysis settings to the `analysis.cif` inside the project directory. +Saving the project, as described in the [Project](project.md) section, will also +save the analysis settings to the `analysis.cif` inside the project directory.
--- Now that the analysis is finished, you can proceed to the next step: -[Summary](experiment.md). \ No newline at end of file +[Summary](experiment.md). diff --git a/docs/user-guide/analysis-workflow/experiment.md b/docs/user-guide/analysis-workflow/experiment.md index 36273523..b3e8890e 100644 --- a/docs/user-guide/analysis-workflow/experiment.md +++ b/docs/user-guide/analysis-workflow/experiment.md @@ -4,42 +4,43 @@ icon: material/microscope # :material-microscope: Experiment -The **Experiment** in EasyDiffraction includes both the measured diffraction data -and all the other relevant parameters that describe the experimental setup and -related conditions. This can include information about the instrumental -resolution, peak shape, background, etc. +The **Experiment** in EasyDiffraction includes both the measured diffraction +data and all the other relevant parameters that describe the experimental setup +and related conditions. This can include information about the instrumental +resolution, peak shape, background, etc. EasyDiffraction allows you to: - **Load an existing experiment** from a file (**CIF** format). Both the metadata and measured data are expected to be in CIF format. -- **Manually define** a new experiment by specifying its type, other - necessary experimental parameters, as well as load measured data. - This is useful when you want to create an experiment from scratch or when - you have a measured data file in a non-CIF format (e.g., `.xye`, `.xy`). +- **Manually define** a new experiment by specifying its type, other necessary + experimental parameters, as well as load measured data. This is useful when + you want to create an experiment from scratch or when you have a measured data + file in a non-CIF format (e.g., `.xye`, `.xy`). -Below, you will find instructions on how to define and manage experiments in EasyDiffraction. It is assumed that you have already created a -`project` object, as described in the [Project](project.md) section as well as -defined its `sample_models`, as described in the [Sample Model](model.md) section. +Below, you will find instructions on how to define and manage experiments in +EasyDiffraction. It is assumed that you have already created a `project` object, +as described in the [Project](project.md) section as well as defined its +`sample_models`, as described in the [Sample Model](model.md) section. ### Adding an Experiment from CIF -This is the most straightforward way to define an experiment in EasyDiffraction. -If you have a crystallographic information file (CIF) for your experiment, -that -contains both the necessary information (metadata) about the experiment as -well as the measured data, you can -add it to your project using the `add_experiment_from_cif` method of the `project` instance. -In this case, the name of the experiment will be taken from CIF. +This is the most straightforward way to define an experiment in EasyDiffraction. +If you have a crystallographic information file (CIF) for your experiment, that +contains both the necessary information (metadata) about the experiment as well +as the measured data, you can add it to your project using the +`add_experiment_from_cif` method of the `project` instance. In this case, the +name of the experiment will be taken from CIF. ```python # Load an experiment from a CIF file project.add_experiment_from_cif('data/hrpt_300K.cif') ``` + Accessing the experiment after loading it will be done through the `experiments` object of the `project` instance. The name of the model will be the same as the -data block id in the CIF file. For example, if the CIF file contains a data block -with the id `hrpt`, +data block id in the CIF file. For example, if the CIF file contains a data +block with the id `hrpt`, @@ -63,12 +64,12 @@ project.experiments['hrpt'] ## Defining an Experiment Manually -If you do not have a CIF file or prefer to define the experiment manually, -you can use the `add` method of the `experiments` -object of the `project` instance. In this case, you will need to specify the -name of the experiment, which will be used to reference it later. -Along with the name, you need to provide the following parameters, essential for -defining the experiment, which define the **type of experiment**: +If you do not have a CIF file or prefer to define the experiment manually, you +can use the `add` method of the `experiments` object of the `project` instance. +In this case, you will need to specify the name of the experiment, which will be +used to reference it later. Along with the name, you need to provide the +following parameters, essential for defining the experiment, which define the +**type of experiment**: - **sample_form**: The form of the sample (powder, single crystal). - **beam_mode**: The mode of the beam (constant wavelength, time-of-flight). @@ -78,13 +79,14 @@ defining the experiment, which define the **type of experiment**: !!! warning "Important" It is important to mention that once an experiment is added, you cannot change - these parameters. If you need to change them, you must create a new experiment + these parameters. If you need to change them, you must create a new experiment or redefine the existing one. If you have a measured data file, you can also specify: -- **data_path**: The path to the measured data file (e.g., `.xye`, `.xy`). - Supported formats are described in the [Measured Data Category](#5-measured-data-category) section. +- **data_path**: The path to the measured data file (e.g., `.xye`, `.xy`). + Supported formats are described in the + [Measured Data Category](#5-measured-data-category) section. Here is an example of how to add an experiment with all components needed to define the experiment explicitly set: @@ -112,22 +114,23 @@ project.experiments.add(name='hrpt', You can now change the default parameters of the experiment, categorized into the groups based on the type of experiment. -The `add` method creates a new experiment of the specified type with default parameters. You can -then modify its parameters to match your specific experimental setup. -All parameters are grouped into the following categories, which makes it easier to manage -the experiment: - -1. **Instrument Category**: - Defines the instrument configuration, including wavelength, two-theta offset, and resolution parameters. -2. **Peak Category**: - Specifies the peak profile type and its parameters, such as broadening and asymmetry. -3. **Background Category**: - Defines the background type and allows you to add background points. -4. **Linked Phases Category**: - Links the sample model defined in the previous step to the experiment, allowing you to specify the scale factor for the linked phase. -5. **Measured Data Category**: - Contains the measured data. The expected format depends on the experiment type, but generally includes columns for 2θ - angle or TOF and intensity. +The `add` method creates a new experiment of the specified type with default +parameters. You can then modify its parameters to match your specific +experimental setup. All parameters are grouped into the following categories, +which makes it easier to manage the experiment: + +1. **Instrument Category**: Defines the instrument configuration, including + wavelength, two-theta offset, and resolution parameters. +2. **Peak Category**: Specifies the peak profile type and its parameters, such + as broadening and asymmetry. +3. **Background Category**: Defines the background type and allows you to add + background points. +4. **Linked Phases Category**: Links the sample model defined in the previous + step to the experiment, allowing you to specify the scale factor for the + linked phase. +5. **Measured Data Category**: Contains the measured data. The expected format + depends on the experiment type, but generally includes columns for 2θ angle + or TOF and intensity. ### 1. Instrument Category @@ -174,22 +177,23 @@ project.experiments['hrpt'].linked_phases.add(id='lbco', scale=10.0) ### 5. Measured Data Category -If you do not have a CIF file for your experiment, you can load measured data -from a file in a supported format. The measured data will be automatically -converted into CIF format and added to the experiment. The expected format +If you do not have a CIF file for your experiment, you can load measured data +from a file in a supported format. The measured data will be automatically +converted into CIF format and added to the experiment. The expected format depends on the experiment type. #### Supported data file formats: -* `.xye` or `.xys` (3 columns, including standard deviations) - * [\_pd_meas.2theta\_scan](../parameters/pd_meas.md) - * [\_pd_meas.intensity\_total](../parameters/pd_meas.md) - * [\_pd_meas.intensity\_total\_su](../parameters/pd_meas.md) -* `.xy` (2 columns, no standard deviations): - * [\_pd_meas.2theta\_scan](../parameters/pd_meas.md) - * [\_pd_meas.intensity\_total](../parameters/pd_meas.md) +- `.xye` or `.xys` (3 columns, including standard deviations) + - [\_pd_meas.2theta_scan](../parameters/pd_meas.md) + - [\_pd_meas.intensity_total](../parameters/pd_meas.md) + - [\_pd_meas.intensity_total_su](../parameters/pd_meas.md) +- `.xy` (2 columns, no standard deviations): + - [\_pd_meas.2theta_scan](../parameters/pd_meas.md) + - [\_pd_meas.intensity_total](../parameters/pd_meas.md) -If no **standard deviations** are provided, they are automatically calculated as the **square root** of measured intensities. +If no **standard deviations** are provided, they are automatically calculated as +the **square root** of measured intensities. Optional comments with `#` are possible in data file headers. @@ -547,4 +551,4 @@ loop_ --- Now that the experiment has been defined, you can proceed to the next step: -[Analysis](analysis.md). \ No newline at end of file +[Analysis](analysis.md). diff --git a/docs/user-guide/analysis-workflow/index.md b/docs/user-guide/analysis-workflow/index.md index 569673c5..1ce3ec66 100644 --- a/docs/user-guide/analysis-workflow/index.md +++ b/docs/user-guide/analysis-workflow/index.md @@ -21,16 +21,14 @@ flowchart LR data, analysis settings and results. - [:material-puzzle: Sample Model](model.md) – Load an existing **crystallographic model** in CIF format or define a new one from scratch. -- [:material-microscope: Experiment](experiment.md) – Import - **experimental diffraction data** and configure **instrumental** and other - relevant parameters. -- [:material-calculator: Analysis](analysis.md) – **Calculate the - diffraction pattern** and **optimize the structural model** by refining - its parameters to match experimental measurements. -- [:material-clipboard-text: Summary](summary.md) – Generate a - **report** summarizing the results of the analysis, including - refined parameters. +- [:material-microscope: Experiment](experiment.md) – Import **experimental + diffraction data** and configure **instrumental** and other relevant + parameters. +- [:material-calculator: Analysis](analysis.md) – **Calculate the diffraction + pattern** and **optimize the structural model** by refining its parameters to + match experimental measurements. +- [:material-clipboard-text: Summary](summary.md) – Generate a **report** + summarizing the results of the analysis, including refined parameters. Each step is described in detail in its respective section, guiding users -through the **entire diffraction data analysis workflow** in -EasyDiffraction. +through the **entire diffraction data analysis workflow** in EasyDiffraction. diff --git a/docs/user-guide/analysis-workflow/model.md b/docs/user-guide/analysis-workflow/model.md index 998d5e1e..58e22069 100644 --- a/docs/user-guide/analysis-workflow/model.md +++ b/docs/user-guide/analysis-workflow/model.md @@ -4,25 +4,27 @@ icon: material/puzzle # :material-puzzle: Sample Model -The **Sample Model** in EasyDiffraction represents the **crystallographic structure** -used to calculate the diffraction pattern, which is then fitted to +The **Sample Model** in EasyDiffraction represents the **crystallographic +structure** used to calculate the diffraction pattern, which is then fitted to the **experimentally measured data** to refine the structural parameters. EasyDiffraction allows you to: - **Load an existing model** from a file (**CIF** format). -- **Manually define** a new sample model by specifying crystallographic parameters. +- **Manually define** a new sample model by specifying crystallographic + parameters. Below, you will find instructions on how to define and manage crystallographic -models in EasyDiffraction. It is assumed that you have already created a +models in EasyDiffraction. It is assumed that you have already created a `project` object, as described in the [Project](project.md) section. ## Adding a Model from CIF -This is the most straightforward way to define a sample model in EasyDiffraction. -If you have a crystallographic information file (CIF) for your sample model, you can -add it to your project using the `add_phase_from_file` method of the `project` instance. -In this case, the name of the model will be taken from CIF. +This is the most straightforward way to define a sample model in +EasyDiffraction. If you have a crystallographic information file (CIF) for your +sample model, you can add it to your project using the `add_phase_from_file` +method of the `project` instance. In this case, the name of the model will be +taken from CIF. ```python # Load a phase from a CIF file @@ -31,8 +33,8 @@ project.add_phase_from_file('data/lbco.cif') Accessing the model after loading it will be done through the `sample_models` object of the `project` instance. The name of the model will be the same as the -data block id in the CIF file. For example, if the CIF file contains a data block -with the id `lbco`, +data block id in the CIF file. For example, if the CIF file contains a data +block with the id `lbco`, @@ -56,10 +58,10 @@ project.sample_models['lbco'] ## Defining a Model Manually -If you do not have a CIF file or prefer to define the model manually, you can -use the `add` method of the `sample_models` -object of the `project` instance. In this case, you will need to specify the -name of the model, which will be used to reference it later. +If you do not have a CIF file or prefer to define the model manually, you can +use the `add` method of the `sample_models` object of the `project` instance. In +this case, you will need to specify the name of the model, which will be used to +reference it later. ```python # Add a sample model with default parameters @@ -68,13 +70,14 @@ project.sample_models.add(name='nacl') ``` The `add` method creates a new sample model with default parameters. You can -then modify its parameters to match your specific crystallographic structure. -All parameters are grouped into the following categories, which makes it easier to manage -the model: +then modify its parameters to match your specific crystallographic structure. +All parameters are grouped into the following categories, which makes it easier +to manage the model: 1. **Space Group Category**: Defines the symmetry of the crystal structure. 2. **Cell Category**: Specifies the dimensions and angles of the unit cell. -3. **Atom Sites Category**: Describes the positions and properties of atoms within the unit cell. +3. **Atom Sites Category**: Describes the positions and properties of atoms + within the unit cell. ### 1. Space Group Category @@ -175,9 +178,9 @@ Sample model 🧩 'lbco' as cif ## Saving a Model -Saving the project, as described in the [Project](project.md) section, -will also save the model. Each model is saved as a separate -CIF file in the `sample_models` subdirectory of the project directory. The project file contains +Saving the project, as described in the [Project](project.md) section, will also +save the model. Each model is saved as a separate CIF file in the +`sample_models` subdirectory of the project directory. The project file contains references to these files. Below is an example of the saved CIF file for the `lbco` model: @@ -222,5 +225,4 @@ O O 0 0.5 0.5 c 1 Biso 1.4041 --- Now that the crystallographic model has been defined and added to the project, -you can proceed to the next step: -[Experiment](experiment.md). +you can proceed to the next step: [Experiment](experiment.md). diff --git a/docs/user-guide/analysis-workflow/project.md b/docs/user-guide/analysis-workflow/project.md index ee4e6cc5..6987f10d 100644 --- a/docs/user-guide/analysis-workflow/project.md +++ b/docs/user-guide/analysis-workflow/project.md @@ -5,23 +5,23 @@ icon: material/archive # :material-archive: Project The **Project** serves as a container for all data and metadata associated with -a particular data analysis task. It acts as the top-level entity in EasyDiffraction, -ensuring structured organization and easy access to relevant information. Each -project can contain multiple **experimental datasets**, with each dataset -containing contribution from multiple **sample models**. +a particular data analysis task. It acts as the top-level entity in +EasyDiffraction, ensuring structured organization and easy access to relevant +information. Each project can contain multiple **experimental datasets**, with +each dataset containing contribution from multiple **sample models**. EasyDiffraction allows you to: - **Manually create** a new project by specifying its metadata. - **Load an existing project** from a file (**CIF** format). -Below are instructions on how to set up a project in EasyDiffraction. -It is assumed that you have already imported the `easydiffraction` package, as +Below are instructions on how to set up a project in EasyDiffraction. It is +assumed that you have already imported the `easydiffraction` package, as described in the [First Steps](../first-steps.md) section. ## Creating a Project Manually -You can manually create a new project and specify its short **name**, **title** +You can manually create a new project and specify its short **name**, **title** and **description**. All these parameters are optional. ```py @@ -30,9 +30,9 @@ project = ed.Project(name='lbco_hrpt') # Define project info project.info.title = 'La0.5Ba0.5CoO3 from neutron diffraction at HRPT@PSI' -project.info.description = '''This project demonstrates a standard refinement -of La0.5Ba0.5CoO3, which crystallizes in a perovskite-type structure, using -neutron powder diffraction data collected in constant wavelength mode at the +project.info.description = '''This project demonstrates a standard refinement +of La0.5Ba0.5CoO3, which crystallizes in a perovskite-type structure, using +neutron powder diffraction data collected in constant wavelength mode at the HRPT diffractometer (PSI).''' ``` @@ -45,10 +45,9 @@ project.save_as(dir_path='lbco_hrpt') ``` If working in the interactive mode in a Jupyter notebook or similar environment, -you can also save the project after every significant change. This is useful -for keeping track of changes and ensuring that your work -is not lost. If you already saved the project with `save_as`, you can just call -the `save`: +you can also save the project after every significant change. This is useful for +keeping track of changes and ensuring that your work is not lost. If you already +saved the project with `save_as`, you can just call the `save`: ```python project.save() @@ -90,14 +89,14 @@ The example below illustrates a typical **project structure** for a ## Project Files -Below is a complete project example stored in the `La0.5Ba0.5CoO3` directory, +Below is a complete project example stored in the `La0.5Ba0.5CoO3` directory, showing the contents of all files in the project. !!! warning "Important" If you save the project right after creating it, the project directory will - only contain the `project.cif` file. The other folders and files will be - created as you add sample models, experiments, and set up the analysis. The + only contain the `project.cif` file. The other folders and files will be + created as you add sample models, experiments, and set up the analysis. The summary folder will be created after the analysis is completed. ### 1. project.cif @@ -128,8 +127,9 @@ hrpt.cif ### 2. sample_models / lbco.cif -This file contains crystallographic information associated with the sample model, including **space group**, -**unit cell parameters**, and **atomic positions**. +This file contains crystallographic information associated with the sample +model, including **space group**, **unit cell parameters**, and **atomic +positions**. @@ -168,9 +168,9 @@ O O 0 0.5 0.5 c 1 Biso 1.4041 ### 3. experiments / hrpt.cif -This file contains the **experiment type**, **instrumental parameters**, -**peak parameters**, **associated phases**, **background parameters** and -**measured diffraction data**. +This file contains the **experiment type**, **instrumental parameters**, **peak +parameters**, **associated phases**, **background parameters** and **measured +diffraction data**. @@ -234,11 +234,11 @@ loop_ - ### 4. analysis.cif This file contains settings used for data analysis, including the choice of -**calculation** and **fitting** engines, as well as user defined **constraints**. +**calculation** and **fitting** engines, as well as user defined +**constraints**. diff --git a/docs/user-guide/analysis-workflow/summary.md b/docs/user-guide/analysis-workflow/summary.md index 4382eec5..4790f857 100644 --- a/docs/user-guide/analysis-workflow/summary.md +++ b/docs/user-guide/analysis-workflow/summary.md @@ -6,16 +6,19 @@ icon: material/clipboard-text The **Summary** section represents the final step in the data processing workflow. It involves generating a **summary report** that consolidates the -results of the diffraction data analysis, providing a comprehensive overview -of the model refinement process and its outcomes. +results of the diffraction data analysis, providing a comprehensive overview of +the model refinement process and its outcomes. ## Contents of the Summary Report The summary report includes key details such as: -- Final refined model parameters – Optimized crystallographic and instrumental parameters. -- Goodness-of-fit indicators – Metrics such as R-factors, chi-square (χ²), and residuals. -- Graphical representation – Visualization of experimental vs. calculated diffraction patterns. +- Final refined model parameters – Optimized crystallographic and instrumental + parameters. +- Goodness-of-fit indicators – Metrics such as R-factors, chi-square (χ²), and + residuals. +- Graphical representation – Visualization of experimental vs. calculated + diffraction patterns. ## Viewing the Summary Report @@ -25,6 +28,7 @@ Users can print the summary report using: # Generate and print the summary report project.summary.show_report() ``` + +![](../assets/images/user-guide/data-acquisition_instrument.png){ width="450", +loading=lazy } /// caption An illustration of the data acquisition step, where raw data is collected -by a 2D detector. The studied sample originates from Mars. Credits: DOI 10.1126/science.1238932 +by a 2D detector. The studied sample originates from Mars. +Credits: DOI 10.1126/science.1238932 /// + -![](../assets/images/user-guide/data-acquisition_2d-raw-data.jpg){ width="400", loading=lazy } + +![](../assets/images/user-guide/data-acquisition_2d-raw-data.jpg){ width="400", +loading=lazy } /// caption -A 2D diffraction pattern collected by the detector. Credits: DOI 10.1126/science.1238932 +A 2D diffraction pattern collected by the detector. +Credits: DOI 10.1126/science.1238932 /// + ## Data Reduction Data reduction involves processing the raw data to remove background noise, -correct for instrumental effects, and convert the data into a more usable format. -The goal is to produce a clean and reliable dataset suitable for analysis. +correct for instrumental effects, and convert the data into a more usable +format. The goal is to produce a clean and reliable dataset suitable for +analysis. -![](../assets/images/user-guide/data-reduction_1d-pattern.png){ width="450", loading=lazy } + +![](../assets/images/user-guide/data-reduction_1d-pattern.png){ width="450", +loading=lazy } /// caption -An illustration of a 1D diffraction pattern reduced from the measured 2D data. Credits: DOI 10.1126/science.1238932 +An illustration of a 1D diffraction pattern reduced from the measured 2D data. +Credits: DOI 10.1126/science.1238932 /// + ## Data Analysis -Data analysis uses the reduced data to extract meaningful information -about the sample. This may include determining the crystal or magnetic structure, +Data analysis uses the reduced data to extract meaningful information about the +sample. This may include determining the crystal or magnetic structure, identifying phases, performing quantitative analysis, etc. -Analysis often involves comparing experimental data with data calculated -from a crystallographic model to validate and interpret the results. For powder diffraction, techniques such as Rietveld or Le Bail refinement may be used. +Analysis often involves comparing experimental data with data calculated from a +crystallographic model to validate and interpret the results. For powder +diffraction, techniques such as Rietveld or Le Bail refinement may be used. -In EasyDiffraction, we focus on this **model-dependent analysis**. -A model is built using prior knowledge of the system, and its parameters are optimized -to achieve the best agreement between experimental and calculated diffraction data. +In EasyDiffraction, we focus on this **model-dependent analysis**. A model is +built using prior knowledge of the system, and its parameters are optimized to +achieve the best agreement between experimental and calculated diffraction data. -By "model", we usually refer to a **crystallographic model** of the sample. -This includes unit cell parameters, space group, atomic positions, thermal parameters, and more. -However, the term "model" also encompasses experimental aspects such as instrumental resolution, -background, peak shape, etc. Therefore, EasyDiffraction separates the model into two parts: -the **sample model** and the **experiment**. +By "model", we usually refer to a **crystallographic model** of the sample. This +includes unit cell parameters, space group, atomic positions, thermal +parameters, and more. However, the term "model" also encompasses experimental +aspects such as instrumental resolution, background, peak shape, etc. Therefore, +EasyDiffraction separates the model into two parts: the **sample model** and the +**experiment**. -The aim of data analysis is to refine the structural parameters of the sample -by minimizing the difference (or **residual**) between the experimental and calculated data — -and this is exactly where EasyDiffraction comes into play. +The aim of data analysis is to refine the structural parameters of the sample by +minimizing the difference (or **residual**) between the experimental and +calculated data — and this is exactly where EasyDiffraction comes into play. -![](../assets/images/user-guide/data-analysis_refinement.png){ width="450", loading=lazy } + +![](../assets/images/user-guide/data-analysis_refinement.png){ width="450", +loading=lazy } /// caption An illustration of the data analysis step: the experimental data (blue) -is compared to the calculated data (red), and the residual (gray) is minimized. Credits: -DOI 10.1126/science.1238932 +is compared to the calculated data (red), and the residual (gray) is minimized. +Credits: DOI 10.1126/science.1238932 /// + -![](../assets/images/user-guide/data-analysis_model.png){ width="450", loading=lazy } + +![](../assets/images/user-guide/data-analysis_model.png){ width="450", +loading=lazy } /// caption An example of a crystal structure model of the studied sample. /// + diff --git a/docs/user-guide/data-format.md b/docs/user-guide/data-format.md index ceb95e6f..acbe6bfe 100644 --- a/docs/user-guide/data-format.md +++ b/docs/user-guide/data-format.md @@ -1,43 +1,51 @@ # Data Format -Before starting the data analysis workflow, it is important to define the **data formats** used in EasyDiffraction. +Before starting the data analysis workflow, it is important to define the **data +formats** used in EasyDiffraction. ## Crystallographic Information File -Each software package typically uses its own **data format** and **parameter names** for storing and sharing data. In -EasyDiffraction, we use the **Crystallographic Information File (CIF)** format, which is widely used in crystallography and -materials science. It provides both a human-readable syntax and a set of dictionaries that define the meaning of each -parameter. +Each software package typically uses its own **data format** and **parameter +names** for storing and sharing data. In EasyDiffraction, we use the +**Crystallographic Information File (CIF)** format, which is widely used in +crystallography and materials science. It provides both a human-readable syntax +and a set of dictionaries that define the meaning of each parameter. -These dictionaries are maintained by the [International Union of Crystallography (IUCr)](https://www.iucr.org). -The base dictionary, **coreCIF**, contains the most common parameters in crystallography. The **pdCIF** dictionary covers -parameters specific to powder diffraction, **magCIF** is used for magnetic structure analysis. +These dictionaries are maintained by the +[International Union of Crystallography (IUCr)](https://www.iucr.org). +The base dictionary, **coreCIF**, contains the most common parameters in +crystallography. The **pdCIF** dictionary covers parameters specific to powder +diffraction, **magCIF** is used for magnetic structure analysis. -As most parameters needed for diffraction data analysis are already covered by IUCr dictionaries, -EasyDiffraction uses the strict **CIF format** and follows these dictionaries as closely as possible — -for both input and output — throughout the workflow described in the [Analysis Workflow](analysis-workflow/index.md) section. +As most parameters needed for diffraction data analysis are already covered by +IUCr dictionaries, EasyDiffraction uses the strict **CIF format** and follows +these dictionaries as closely as possible — for both input and output — +throughout the workflow described in the +[Analysis Workflow](analysis-workflow/index.md) section. -The key advantage of CIF is the standardized naming of parameters and categories, which promotes interoperability and -familiarity among researchers. +The key advantage of CIF is the standardized naming of parameters and +categories, which promotes interoperability and familiarity among researchers. -If a required parameter is not defined in the standard dictionaries, -EasyDiffraction introduces **custom CIF keywords**, documented in the [Parameters](parameters.md) section under the -**CIF name for serialization** columns. +If a required parameter is not defined in the standard dictionaries, +EasyDiffraction introduces **custom CIF keywords**, documented in the +[Parameters](parameters.md) section under the **CIF name for serialization** +columns. ## Format Comparison -Below, we compare **CIF** with another common data format in programming: **JSON**. +Below, we compare **CIF** with another common data format in programming: +**JSON**. ### Scientific Journals -Let's assume the following structural data for La₀.₅Ba₀.₅CoO₃ (LBCO), as -reported in a scientific publication. These parameters are to be refined -during diffraction data analysis: +Let's assume the following structural data for La₀.₅Ba₀.₅CoO₃ (LBCO), as +reported in a scientific publication. These parameters are to be refined during +diffraction data analysis: Table 1. Crystallographic data. Space group: _Pm3̅m_. | Parameter | Value | -|-----------|--------| +| --------- | ------ | | a | 3.8909 | | b | 3.8909 | | c | 3.8909 | @@ -45,16 +53,15 @@ Table 1. Crystallographic data. Space group: _Pm3̅m_. | beta | 90.0 | | gamma | 90.0 | +Table 2. Atomic coordinates (_x_, _y_, _z_), occupancies (occ) and isotropic +displacement parameters (_Biso_) -Table 2. Atomic coordinates (_x_, _y_, _z_), occupancies (occ) and isotropic displacement -parameters (_Biso_) - -| Label | Type | x | y | z | occ | Biso | -|-------|-------|-------|-------|-------|-----|--------| -| La | La | 0 | 0 | 0 | 0.5 | 0.4958 | -| Ba | Ba | 0 | 0 | 0 | 0.5 | 0.4958 | -| Co | Co | 0.5 | 0.5 | 0.5 | 1.0 | 0.2567 | -| O | O | 0 | 0.5 | 0.5 | 1.0 | 1.4041 | +| Label | Type | x | y | z | occ | Biso | +| ----- | ---- | --- | --- | --- | --- | ------ | +| La | La | 0 | 0 | 0 | 0.5 | 0.4958 | +| Ba | Ba | 0 | 0 | 0 | 0.5 | 0.4958 | +| Co | Co | 0.5 | 0.5 | 0.5 | 1.0 | 0.2567 | +| O | O | 0 | 0.5 | 0.5 | 1.0 | 1.4041 | ### CIF @@ -95,15 +102,17 @@ O O 0 0.5 0.5 c 1 Biso 1.4041 -Here, unit cell parameters are grouped under the `_cell` category, and atomic -positions under the `_atom_site` category. The `loop_` keyword indicates that -multiple rows follow for the listed parameters. Each atom is identified using `_atom_site.label`. +Here, unit cell parameters are grouped under the `_cell` category, and atomic +positions under the `_atom_site` category. The `loop_` keyword indicates that +multiple rows follow for the listed parameters. Each atom is identified using +`_atom_site.label`. ### JSON -Representing the same data in **JSON** results in a format that is more verbose and -less human-readable, especially for large datasets. JSON is ideal for structured data -in programming environments, whereas CIF is better suited for human-readable crystallographic data. +Representing the same data in **JSON** results in a format that is more verbose +and less human-readable, especially for large datasets. JSON is ideal for +structured data in programming environments, whereas CIF is better suited for +human-readable crystallographic data. ```json { @@ -137,7 +146,7 @@ in programming environments, whereas CIF is better suited for human-readable cry "fract_y": 0, "fract_z": 0, "occupancy": 0.5, - "B_iso_or_equiv": 0.4943, + "B_iso_or_equiv": 0.4943 }, { "label": "Co", @@ -167,8 +176,8 @@ in programming environments, whereas CIF is better suited for human-readable cry The previous example described the **sample model** (crystallographic model), but how is the **experiment** itself represented? -The experiment is also saved as a CIF file. For example, background intensity -in a powder diffraction experiment might be represented as: +The experiment is also saved as a CIF file. For example, background intensity in +a powder diffraction experiment might be represented as: @@ -193,7 +202,8 @@ More details on how to define the experiment in CIF format are provided in the ## Other Input/Output Blocks -EasyDiffraction uses CIF consistently throughout its workflow, including in the following blocks: +EasyDiffraction uses CIF consistently throughout its workflow, including in the +following blocks: - **project**: contains the project information - **sample model**: defines the sample model @@ -201,14 +211,15 @@ EasyDiffraction uses CIF consistently throughout its workflow, including in the - **analysis**: stores fitting and analysis parameters - **summary**: captures analysis results -Example CIF files for each block are provided in the [Analysis Workflow](analysis-workflow/index.md) - and [Tutorials](../tutorials/index.md). +Example CIF files for each block are provided in the +[Analysis Workflow](analysis-workflow/index.md) and +[Tutorials](../tutorials/index.md). ## Other Data Formats -While CIF is the primary format in EasyDiffraction, we also support -other formats for importing measured data. These include plain text files -with multiple columns. The meaning of the columns depends on the experiment type. +While CIF is the primary format in EasyDiffraction, we also support other +formats for importing measured data. These include plain text files with +multiple columns. The meaning of the columns depends on the experiment type. For example, in a standard constant-wavelength powder diffraction experiment: diff --git a/docs/user-guide/first-steps.md b/docs/user-guide/first-steps.md index af605212..6cccf42d 100644 --- a/docs/user-guide/first-steps.md +++ b/docs/user-guide/first-steps.md @@ -1,40 +1,44 @@ # First Steps -This section introduces the basic usage of the EasyDiffraction Python API. You'll learn how to import the package, use core classes and utility functions, and access built-in helper methods to streamline diffraction data analysis workflows. +This section introduces the basic usage of the EasyDiffraction Python API. +You'll learn how to import the package, use core classes and utility functions, +and access built-in helper methods to streamline diffraction data analysis +workflows. ## Importing EasyDiffraction ### Importing the entire package -To start using EasyDiffraction, first import the package in your Python -script or Jupyter Notebook. This can be done with the following command: +To start using EasyDiffraction, first import the package in your Python script +or Jupyter Notebook. This can be done with the following command: ```python import easydiffraction ``` -Alternatively, you can import it with an alias to avoid naming conflicts and for convenience: +Alternatively, you can import it with an alias to avoid naming conflicts and for +convenience: ```python import easydiffraction as ed ``` The latter syntax allows you to access all the modules and classes within the -package using the `ed` prefix. For example, you can create a project -instance like this: +package using the `ed` prefix. For example, you can create a project instance +like this: ```python project = ed.Project() ``` -A complete tutorial using the `import` syntax can be found +A complete tutorial using the `import` syntax can be found [here](../../tutorials/basic_single-fit_pd-neut-cwl_LBCO-HRPT/). ### Importing specific parts -Alternatively, you can import specific classes or methods from the -package. For example, you can import the `Project`, `SampleModel`, -`Experiment` classes and `download_from_repository` method like this: +Alternatively, you can import specific classes or methods from the package. For +example, you can import the `Project`, `SampleModel`, `Experiment` classes and +`download_from_repository` method like this: ```python from easydiffraction import ( @@ -45,21 +49,24 @@ from easydiffraction import ( ) ``` -This enables you to use these classes and methods directly without the package prefix. This is especially useful when you're using only a few components and want to keep your code clean and concise. In this case, you can create a project instance like this: +This enables you to use these classes and methods directly without the package +prefix. This is especially useful when you're using only a few components and +want to keep your code clean and concise. In this case, you can create a project +instance like this: ```python project = Project() ``` -A complete tutorial using the `from` syntax can be found +A complete tutorial using the `from` syntax can be found [here](../../tutorials/advanced_joint-fit_pd-neut-xray-cwl_PbSO4/). ## Utility functions -EasyDiffraction also provides several utility functions that can -simplify your workflow. One of them is the `download_from_repository` -function, which allows you to download data files from our remote -repository, making it easy to access and use them while experimenting with EasyDiffraction. +EasyDiffraction also provides several utility functions that can simplify your +workflow. One of them is the `download_from_repository` function, which allows +you to download data files from our remote repository, making it easy to access +and use them while experimenting with EasyDiffraction. For example, you can download a sample data file like this: @@ -71,68 +78,75 @@ ed.download_from_repository('hrpt_lbco.xye', destination='data') ``` -This command will download the `hrpt_lbco.xye` file from the `docs` branch of -the EasyDiffraction repository and save it in the `data` directory of your -current working directory. This is particularly useful for quickly accessing +This command will download the `hrpt_lbco.xye` file from the `docs` branch of +the EasyDiffraction repository and save it in the `data` directory of your +current working directory. This is particularly useful for quickly accessing example datasets without having to manually download them. ## Help methods -EasyDiffraction provides several helper methods to display supported engines for calculation, minimization, and plotting. These methods can be called on the `Project` instance to display the available options for each category. For example, you can use the `show_supported_calculators()` method to see which calculation -engines are available for use in your project: +EasyDiffraction provides several helper methods to display supported engines for +calculation, minimization, and plotting. These methods can be called on the +`Project` instance to display the available options for each category. For +example, you can use the `show_supported_calculators()` method to see which +calculation engines are available for use in your project: ```python project.show_supported_calculators() ``` -This will display a list of supported calculators along with their -descriptions, allowing you to choose the one that best fits your needs. +This will display a list of supported calculators along with their descriptions, +allowing you to choose the one that best fits your needs. An example of the output for the `show_supported_calculators()` method is: | Calculator | Description | -|------------|-------------------------------------------------------------| +| ---------- | ----------------------------------------------------------- | | cryspy | CrysPy library for crystallographic calculations | | pdffit | PDFfit2 library for pair distribution function calculations | -Other helper methods include those for showing the available parameters -grouped in different categories. For example, you can use: +Other helper methods include those for showing the available parameters grouped +in different categories. For example, you can use: -- `project.analysis.show_all_params()` – to display all available parameters for the analysis step. -- `project.analysis.show_fittable_params()` – to display only the parameters that can be fitted during the analysis. -- `project.analysis.show_free_params()` – to display the parameters that are currently free to be adjusted during the fitting process. +- `project.analysis.show_all_params()` – to display all available parameters for + the analysis step. +- `project.analysis.show_fittable_params()` – to display only the parameters + that can be fitted during the analysis. +- `project.analysis.show_free_params()` – to display the parameters that are + currently free to be adjusted during the fitting process. Finally, you can use the `project.analysis.how_to_access_parameters()` method to -get a brief overview of how to access and modify parameters in the analysis step, along with their unique identifiers in the CIF format. This can be particularly useful -for users who are new to the EasyDiffraction API or those who want to quickly -understand how to work with parameters in their projects. +get a brief overview of how to access and modify parameters in the analysis +step, along with their unique identifiers in the CIF format. This can be +particularly useful for users who are new to the EasyDiffraction API or those +who want to quickly understand how to work with parameters in their projects. -An example of the output for the `project.analysis.how_to_access_parameters()` method is: +An example of the output for the `project.analysis.how_to_access_parameters()` +method is: | | Code variable | Unique ID for CIF | -|-----|--------------------------------------------------------|----------------------------------| +| --- | ------------------------------------------------------ | -------------------------------- | | 1 | project.sample_models['lbco'].atom_site['La'].adp_type | lbco.atom_site.La.ADP_type | | 2 | project.sample_models['lbco'].atom_site['La'].b_iso | lbco.atom_site.La.B_iso_or_equiv | | 3 | project.sample_models['lbco'].atom_site['La'].fract_x | lbco.atom_site.La.fract_x | | 4 | project.sample_models['lbco'].atom_site['La'].fract_y | lbco.atom_site.La.fract_y | | ... | ... | ... | -| 59 | project.experiments['hrpt'].peak.broad_gauss_u | hrpt.peak.broad_gauss_u | -| 60 | project.experiments['hrpt'].peak.broad_gauss_v | hrpt.peak.broad_gauss_v | -| 61 | project.experiments['hrpt'].peak.broad_gauss_w | hrpt.peak.broad_gauss_w | +| 59 | project.experiments['hrpt'].peak.broad_gauss_u | hrpt.peak.broad_gauss_u | +| 60 | project.experiments['hrpt'].peak.broad_gauss_v | hrpt.peak.broad_gauss_v | +| 61 | project.experiments['hrpt'].peak.broad_gauss_w | hrpt.peak.broad_gauss_w | ## Data analysis workflow -Once the EasyDiffraction package is imported, you can proceed with the -**data analysis**. This step can be split into several sub-steps, such as -creating a project, defining sample models, adding experimental data, etc. +Once the EasyDiffraction package is imported, you can proceed with the **data +analysis**. This step can be split into several sub-steps, such as creating a +project, defining sample models, adding experimental data, etc. -EasyDiffraction provides a **Python API** that allows you to perform -these steps programmatically in a certain linear order. This is -especially useful for users who prefer to work in a script or -Jupyter Notebook environment. The API is designed to be intuitive and -easy to use, allowing you to focus on the analysis rather than low-level implementation details. +EasyDiffraction provides a **Python API** that allows you to perform these steps +programmatically in a certain linear order. This is especially useful for users +who prefer to work in a script or Jupyter Notebook environment. The API is +designed to be intuitive and easy to use, allowing you to focus on the analysis +rather than low-level implementation details. -Because this workflow is an important part of the EasyDiffraction -package, it is described in detail in the separate -[Analysis Workflow](analysis-workflow/index.md) section of the -documentation. \ No newline at end of file +Because this workflow is an important part of the EasyDiffraction package, it is +described in detail in the separate +[Analysis Workflow](analysis-workflow/index.md) section of the documentation. diff --git a/docs/user-guide/glossary.md b/docs/user-guide/glossary.md index 75daf387..827cfdf5 100644 --- a/docs/user-guide/glossary.md +++ b/docs/user-guide/glossary.md @@ -1,7 +1,7 @@ # Glossary -Before guiding you through the use of EasyDiffraction, we define some -common terms and abbreviations used throughout the documentation and tutorials. +Before guiding you through the use of EasyDiffraction, we define some common +terms and abbreviations used throughout the documentation and tutorials. ## Dictionary Type Labels @@ -11,7 +11,7 @@ The following labels are used to identify different types of CIF dictionaries: [IUCr](https://www.iucr.org). - [pdCIF][2]{:.label-cif} – Powder CIF dictionary by the [IUCr](https://www.iucr.org). -- [easydiffractionCIF][0]{:.label-cif} – Custom CIF dictionary developed for +- [easydiffractionCIF][0]{:.label-cif} – Custom CIF dictionary developed for EasyDiffraction. For more information about CIF, see the [Data Format](data-format.md) section. @@ -23,8 +23,8 @@ parameters. The following labels identify the supported experiment types: ### Neutron Diffraction -- [pd-neut-cwl][0]{:.label-experiment} – Powder 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 diff --git a/docs/user-guide/index.md b/docs/user-guide/index.md index e82afb10..a6671f3d 100644 --- a/docs/user-guide/index.md +++ b/docs/user-guide/index.md @@ -9,15 +9,15 @@ and **workflow steps** required for using EasyDiffraction effectively. Here is a brief overview of the User Guide sections: -- [Glossary](glossary.md) – - Defines common terms and labels used throughout the documentation. -- [Concept](concept.md) – - Introduces the overall idea behind diffraction data processing and where EasyDiffraction fits. -- [Data Format](data-format.md) – - Explains the Crystallographic Information File (CIF) and how it's used in EasyDiffraction. -- [Parameters](parameters.md) – - Describes how parameters are structured, named, and accessed within the EasyDiffraction library. -- [First Steps](first-steps.md) – - Shows how to begin using EasyDiffraction in Python or Jupyter notebooks. -- [Analysis Workflow](analysis-workflow/index.md) – - Breaks down the data analysis pipeline into practical, sequential steps. +- [Glossary](glossary.md) – Defines common terms and labels used throughout the + documentation. +- [Concept](concept.md) – Introduces the overall idea behind diffraction data + processing and where EasyDiffraction fits. +- [Data Format](data-format.md) – Explains the Crystallographic Information File + (CIF) and how it's used in EasyDiffraction. +- [Parameters](parameters.md) – Describes how parameters are structured, named, + and accessed within the EasyDiffraction library. +- [First Steps](first-steps.md) – Shows how to begin using EasyDiffraction in + Python or Jupyter notebooks. +- [Analysis Workflow](analysis-workflow/index.md) – Breaks down the data + analysis pipeline into practical, sequential steps. diff --git a/docs/user-guide/parameters.md b/docs/user-guide/parameters.md index 6c9b4ca2..0fc1d609 100644 --- a/docs/user-guide/parameters.md +++ b/docs/user-guide/parameters.md @@ -1,63 +1,82 @@ # Parameters The data analysis process, introduced in the [Concept](concept.md) section, -assumes that you mainly work with different -parameters. The parameters are used to describe the sample model and the -experiment and are required to set up the analysis. +assumes that you mainly work with different parameters. The parameters are used +to describe the sample model and the experiment and are required to set up the +analysis. -Each parameter in EasyDiffraction has a specific name used for code reference, and it belongs to a specific category. +Each parameter in EasyDiffraction has a specific name used for code reference, +and it belongs to a specific category. - In many cases, the EasyDiffraction name is the same as the CIF name. -- In some cases, the EasyDiffraction name is a slightly modified version of the CIF name to comply with Python naming conventions. For example, `name_H-M_alt` becomes `name_h_m`, replacing hyphens with underscores and using lowercase letters. -- In rare cases, the EasyDiffraction name is a bit shorter, like `b_iso` instead of CIF `B_iso_or_equiv`, to make the code a bit more user-friendly. -- When there is no defined CIF name for a parameter, EasyDiffraction introduces its own name, which is used in the code as well as an equivalent CIF name to be placed in the custom CIF dictionary `easydiffractionCIF`. - -EasyDiffraction names are used in code, while CIF names are used to store and retrieve the full state of a data analysis -project in CIF format. You can find more about the project in the [Project](analysis-workflow/project.md) section. +- In some cases, the EasyDiffraction name is a slightly modified version of the + CIF name to comply with Python naming conventions. For example, `name_H-M_alt` + becomes `name_h_m`, replacing hyphens with underscores and using lowercase + letters. +- In rare cases, the EasyDiffraction name is a bit shorter, like `b_iso` instead + of CIF `B_iso_or_equiv`, to make the code a bit more user-friendly. +- When there is no defined CIF name for a parameter, EasyDiffraction introduces + its own name, which is used in the code as well as an equivalent CIF name to + be placed in the custom CIF dictionary `easydiffractionCIF`. + +EasyDiffraction names are used in code, while CIF names are used to store and +retrieve the full state of a data analysis project in CIF format. You can find +more about the project in the [Project](analysis-workflow/project.md) section. ## Parameter Attributes -Parameters in EasyDiffraction are more than just variables. They are objects that, in addition to the name and value, also -include attributes such as the description, unit, uncertainty, minimum and maximum values, etc. All these attributes are -described in the [API Reference](../api-reference/index.md) section. Examples of how to use these parameters in code are -provided in the [Analysis Workflow](analysis-workflow/index.md) and [Tutorials](../tutorials/index.md) sections. - -The most important attribute, besides `name` and `value`, is `free`, which is used to define whether the parameter is free or fixed for optimization during the fitting process. The `free` attribute is set to `False` by default, which means the parameter is fixed. To optimize a parameter, set `free` to `True`. - -Although parameters are central, EasyDiffraction hides their creation and attribute handling from the user. The user only accesses the required parameters through the top-level objects, such as `project`, `sample_models`, `experiments`, etc. The parameters are created and initialized automatically when a new project is created or an existing one is loaded. - -In the following sections, you can see a list of the parameters used in EasyDiffraction. Use the tabs to switch between how to access a parameter in code and its CIF name for serialization. +Parameters in EasyDiffraction are more than just variables. They are objects +that, in addition to the name and value, also include attributes such as the +description, unit, uncertainty, minimum and maximum values, etc. All these +attributes are described in the [API Reference](../api-reference/index.md) +section. Examples of how to use these parameters in code are provided in the +[Analysis Workflow](analysis-workflow/index.md) and +[Tutorials](../tutorials/index.md) sections. + +The most important attribute, besides `name` and `value`, is `free`, which is +used to define whether the parameter is free or fixed for optimization during +the fitting process. The `free` attribute is set to `False` by default, which +means the parameter is fixed. To optimize a parameter, set `free` to `True`. + +Although parameters are central, EasyDiffraction hides their creation and +attribute handling from the user. The user only accesses the required parameters +through the top-level objects, such as `project`, `sample_models`, +`experiments`, etc. The parameters are created and initialized automatically +when a new project is created or an existing one is loaded. + +In the following sections, you can see a list of the parameters used in +EasyDiffraction. Use the tabs to switch between how to access a parameter in +code and its CIF name for serialization. !!! warning "Important" - Remember that parameters are accessed in code through their parent objects, - such as `project`, `sample_models`, or `experiments`. For example, if you - have a sample model with the ID `nacl`, you can access the space group name + Remember that parameters are accessed in code through their parent objects, + such as `project`, `sample_models`, or `experiments`. For example, if you + have a sample model with the ID `nacl`, you can access the space group name using the following syntax: ```python project.sample_models['nacl'].space_group.name_h_m ``` -In the example above, `space_group` is a sample model category, and `name_h_m` is the parameter. For simplicity, only the last -part (`category.parameter`) of the full access name will be shown in the tables below. +In the example above, `space_group` is a sample model category, and `name_h_m` +is the parameter. For simplicity, only the last part (`category.parameter`) of +the full access name will be shown in the tables below. In addition, the CIF names are also provided for each parameter, which are used -to serialize the parameters in the CIF format. +to serialize the parameters in the CIF format. -Tags defining -the corresponding experiment type are also given before the table. +Tags defining the corresponding experiment type are also given before the table. ## Sample model parameters -Below is a list of parameters used to describe the sample model in EasyDiffraction. +Below is a list of parameters used to describe the sample model in +EasyDiffraction. ### Crystall structure parameters -[pd-neut-cwl][3]{:.label-experiment} -[pd-neut-tof][3]{:.label-experiment} -[pd-xray][3]{:.label-experiment} -[sc-neut-cwl][3]{:.label-experiment} +[pd-neut-cwl][3]{:.label-experiment} [pd-neut-tof][3]{:.label-experiment} +[pd-xray][3]{:.label-experiment} [sc-neut-cwl][3]{:.label-experiment} === "How to access in the code" @@ -107,14 +126,13 @@ Below is a list of parameters used to describe the sample model in EasyDiffracti ## Experiment parameters -Below is a list of parameters used to describe the experiment in EasyDiffraction. +Below is a list of parameters used to describe the experiment in +EasyDiffraction. ### Common parameters -[pd-neut-cwl][3]{:.label-experiment} -[pd-neut-tof][3]{:.label-experiment} -[pd-xray][3]{:.label-experiment} -[sc-neut-cwl][3]{:.label-experiment} +[pd-neut-cwl][3]{:.label-experiment} [pd-neut-tof][3]{:.label-experiment} +[pd-xray][3]{:.label-experiment} [sc-neut-cwl][3]{:.label-experiment} === "How to access in the code" @@ -134,11 +152,9 @@ Below is a list of parameters used to describe the experiment in EasyDiffraction | | :material-diamond-stone: [sample_form][expt_type] | \_expt_type.sample_form | [easydiffractionCIF][0]{:.label-cif} | | | :material-chart-bell-curve: [scattering_type][expt_type] | \_expt_type.scattering_type | [easydiffractionCIF][0]{:.label-cif} | - ### Standard powder diffraction -[pd-neut-cwl][3]{:.label-experiment} -[pd-neut-tof][3]{:.label-experiment} +[pd-neut-cwl][3]{:.label-experiment} [pd-neut-tof][3]{:.label-experiment} [pd-xray][3]{:.label-experiment} === "How to access in the code" @@ -161,8 +177,7 @@ Below is a list of parameters used to describe the experiment in EasyDiffraction | | :material-arrow-collapse-up: [coef][background] | \_pd_background.chebyshev_coef | [pdCIF][0]{:.label-cif} | | :material-puzzle: [linked_phases][linked_phases] | :material-scale: [scale][linked_phases] | \_pd_phase_block.scale | [pdCIF][0]{:.label-cif} | -[pd-neut-cwl][3]{:.label-experiment} -[pd-xray][3]{:.label-experiment} +[pd-neut-cwl][3]{:.label-experiment} [pd-xray][3]{:.label-experiment} === "How to access in the code" @@ -207,7 +222,6 @@ Below is a list of parameters used to describe the experiment in EasyDiffraction | | :material-scale-unbalanced: [asym_alpha_0][peak] | peak.asym_alpha_0 | | | :material-scale-unbalanced: [asym_alpha_1][peak] | peak.asym_alpha_1 | - === "CIF name for serialization" | Category | Parameter | CIF name for serialization | CIF dictionary | @@ -227,8 +241,7 @@ Below is a list of parameters used to describe the experiment in EasyDiffraction ### Total scattering -[pd-neut-total][3]{:.label-experiment} -[pd-xray-total][3]{:.label-experiment} +[pd-neut-total][3]{:.label-experiment} [pd-xray-total][3]{:.label-experiment} === "How to access in the code" @@ -252,7 +265,6 @@ Below is a list of parameters used to describe the experiment in EasyDiffraction | | :material-arrow-bottom-right: [damp_q][peak] | \_peak.damp_q | [easydiffractionCIF][0]{:.label-cif} | | | :material-arrow-bottom-right: [damp_particle_diameter][peak] | \_peak.damp_particle_diameter | [easydiffractionCIF][0]{:.label-cif} | - [0]: # [1]: https://www.iucr.org/resources/cif/dictionaries/browse/cif_core diff --git a/prettierrc.toml b/prettierrc.toml new file mode 100644 index 00000000..6874d28d --- /dev/null +++ b/prettierrc.toml @@ -0,0 +1,11 @@ +endOfLine = 'lf' # change line endings to LF +printWidth = 80 # wrap Markdown files at 80 characters +proseWrap = 'always' # change wrapping in Markdown files +semi = false # remove semicolons +singleQuote = true # use single quotes instead of double quotes +tabWidth = 2 # change tab width to 2 spaces +useTabs = false # use spaces instead of tabs + +plugins = [ + 'prettier-plugin-toml', # use the TOML plugin +] diff --git a/pyproject.toml b/pyproject.toml index 3a70913c..3d42de06 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -16,35 +16,35 @@ classifiers = [ 'Operating System :: OS Independent', 'Programming Language :: Python :: 3 :: Only', 'Programming Language :: Python :: 3', - "Programming Language :: Python :: 3.10", - "Programming Language :: Python :: 3.11", - "Programming Language :: Python :: 3.12", - "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", ] requires-python = '>=3.10,<=3.13' dependencies = [ - 'colorama', # Color terminal output - 'tabulate', # Pretty-print tabular data for terminal output - 'asciichartpy', # ASCII charts for terminal output + 'colorama', # Color terminal output + 'tabulate', # Pretty-print tabular data for terminal output + 'asciichartpy', # ASCII charts for terminal output - 'pooch', # Data downloader + 'pooch', # Data downloader - 'varname', # Variable name introspection + 'varname', # Variable name introspection - 'asteval', # An expression evaluator for Python + 'asteval', # An expression evaluator for Python - 'scipy', # Scientific computing library - 'sympy', # Symbolic mathematics library + 'scipy', # Scientific computing library + 'sympy', # Symbolic mathematics library - 'lmfit', # Non-linear optimization and curve fitting - 'bumps', # Non-linear optimization and curve fitting - 'dfo-ls', # Non-linear optimization and curve fitting + 'lmfit', # Non-linear optimization and curve fitting + 'bumps', # Non-linear optimization and curve fitting + 'dfo-ls', # Non-linear optimization and curve fitting - 'gemmi', # Crystallography library + 'gemmi', # Crystallography library - 'cryspy', # Calculations of diffraction patterns - 'diffpy.pdffit2', # Calculations of Pair Distribution Function (PDF) - 'diffpy.utils', # Utilities for PDF calculations + 'cryspy', # Calculations of diffraction patterns + 'diffpy.pdffit2', # Calculations of Pair Distribution Function (PDF) + 'diffpy.utils', # Utilities for PDF calculations ] [project.optional-dependencies] @@ -170,23 +170,3 @@ docstring-code-format = true # Whether to format code snippets in docstrings indent-style = 'space' # PEP 8 recommends using spaces over tabs line-ending = 'lf' # Line endings will be converted to \n quote-style = 'single' # But double quotes in docstrings (PEP 8, PEP 257) - -############################ -# Configuration for prettier -############################ - -# 'prettier' -- Code formatter -# https://prettier.io/ - -[tool.prettier] -endOfLine = 'lf' # change line endings to LF -printWidth = 80 # wrap Markdown files at 80 characters -proseWrap = 'always' # change wrapping in Markdown files -semi = false # remove semicolons -singleQuote = true # use single quotes instead of double quotes -tabWidth = 2 # change tab width to 2 spaces -useTabs = false # use spaces instead of tabs - -plugins = [ - 'prettier-plugin-toml', # use the TOML plugin -] From 947cbb895b774695a8c00275cdc62dbce2093572 Mon Sep 17 00:00:00 2001 From: Andrew Sazonov Date: Fri, 8 Aug 2025 16:20:13 +0200 Subject: [PATCH 20/43] Enhances CI/CD with testing workflow and notebook conversion --- .github/workflows/build-docs.yml | 4 +- .github/workflows/test-code.yaml | 202 ++++++++++++++++++++++++++++++- 2 files changed, 204 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-docs.yml b/.github/workflows/build-docs.yml index ecb667f6..63d25a31 100644 --- a/.github/workflows/build-docs.yml +++ b/.github/workflows/build-docs.yml @@ -96,7 +96,8 @@ jobs: cp ../assets-branding/easydiffraction/icons/bw.svg overrides/.icons/easydiffraction.svg cp ../assets-branding/easyscience-org/icons/eso-icon_bw.svg overrides/.icons/easyscience.svg - # Copy Jupyter notebooks from the project to the docs folder + # Convert python scripts in the notebooks directory to Jupyter notebooks + # Strip output from the notebooks and simpify cell ids # The notebooks are used to generate the documentation - name: Convert ${{ env.NOTEBOOKS_DIR }}/*.py to docs/${{env.NOTEBOOKS_DIR @@ -104,6 +105,7 @@ jobs: run: | cp -R ${{ env.NOTEBOOKS_DIR }}/data docs/${{ env.NOTEBOOKS_DIR }}/ jupytext ${{ env.NOTEBOOKS_DIR }}/*.py --from py:percent --to ipynb + nbstripout ${{ env.NOTEBOOKS_DIR }}/*.ipynb mv ${{ env.NOTEBOOKS_DIR }}/*.ipynb docs/${{ env.NOTEBOOKS_DIR }}/ # The following step is needed to avoid the following message during the build: diff --git a/.github/workflows/test-code.yaml b/.github/workflows/test-code.yaml index 2ca245b2..0d46394b 100644 --- a/.github/workflows/test-code.yaml +++ b/.github/workflows/test-code.yaml @@ -1,3 +1,21 @@ +# This is the main workflow for testing the code, notebooks and package. +# It is divided into three jobs: +# 1. Code-quality: +# - Check the validity of pyproject.toml +# - Check code linting +# - Check code formatting +# - Check Jupyter notebooks formatting +# - Check formatting of Markdown, YAML, TOML, etc. files +# 2. Test-code: +# - Test the code base and upload coverage to Codecov +# - Create the Python package +# - Upload the Python package for the next job +# 3. Test-package: +# - Download the Python package from the previous job +# - Install the downloaded Python package +# - Test the code base +# - Check if Jupyter Notebooks run without errors + name: Test code on: @@ -26,10 +44,109 @@ concurrency: env: # Set the environment variables to be used in all jobs defined in this workflow # Set the CI_BRANCH environment variable to be the branch name + # Set the NOTEBOOKS_DIR environment variable to be the directory containing the Jupyter notebooks CI_BRANCH: ${{ github.head_ref || github.ref_name }} + NOTEBOOKS_DIR: tutorials jobs: + # Job 1: Check code quality and consistency + code-quality: + strategy: + matrix: + os: [ubuntu-latest] + python-version: ['3.12'] + + runs-on: ${{ matrix.os }} + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + fetch-depth: '0' # full history with tags to get the version number by versioningit + + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python-version }} + + - name: Install Python dependencies + # Install 'validate-pyproject' for checking pyproject.toml + # Install 'ruff' for code linting and formatting + # Install 'nbqa' for quality assurance of Jupyter notebooks + run: pip install '.[dev]' + + - name: Install npm dependencies + # Install 'prettier' for code formatting of Markdown, YAML, etc. files + # Install 'prettier-plugin-toml' plugin for code formatting of TOML files + run: npm install --no-save --no-audit --no-fund 'prettier@>=3.3.3' 'prettier-plugin-toml@>=0.13.0' + + # Check the validity of pyproject.toml + - name: Check validity of pyproject.toml + id: check_pyproject + continue-on-error: true + run: validate-pyproject pyproject.toml + + # Check code linting with Ruff in the project root + - name: Check code linting + id: check_code_linting + continue-on-error: true + run: ruff check . + + - name: Suggestion to fix code linting issues (for *.py files) + if: steps.check_code_linting.outcome == 'failure' + run: + echo "In project root run 'ruff check . --fix' and commit changes to + fix issues." + + # Check code formatting with Ruff in the project root + - name: Check code formatting + id: check_code_formatting + continue-on-error: true + run: ruff format . --check + + - name: Suggestion to fix code formatting issues (for *.py files) + if: steps.check_code_formatting.outcome == 'failure' + run: + echo "In project root run 'ruff format .' and commit changes to fix + issues." + + # Check Jupyter notebooks with nbQA in the sample directory + - name: Check Jupyter notebooks formatting + id: check_notebooks + continue-on-error: true + run: nbqa ruff examples/ + + - name: Suggestion to fix notebook formatting issues (for *.ipynb files) + if: steps.check_notebooks.outcome == 'failure' + run: + echo "In project root run 'nbqa ruff examples/ --fix' and commit + changes to fix issues." + + # Check formatting of Markdown, YAML, TOML, etc. files with Prettier in the project root + - name: Check formatting of Markdown, YAML, TOML, etc. files + id: check_others_formatting + continue-on-error: true + run: npx prettier . --check --config=prettierrc.toml + + - name: Suggestion to fix non-code formatting issues (for *.md, etc.) + if: steps.check_others_formatting.outcome == 'failure' + run: + echo "In project root run 'npx prettier . --write + --config=prettierrc.toml' and commit changes to fix issues." + + - name: Force fail if any of the previous steps failed + if: | + steps.check_pyproject.outcome == 'failure' || + steps.check_code_linting.outcome == 'failure' || + steps.check_code_formatting.outcome == 'failure' || + steps.check_notebooks.outcome == 'failure' || + steps.check_others_formatting.outcome == 'failure' + run: exit 1 + + # Job 2: Test code and upload coverage to Codecov. test-code: + needs: code-quality # previous job 'code-quality' need to be finished first + strategy: fail-fast: false matrix: @@ -41,6 +158,8 @@ jobs: steps: - name: Checkout repository uses: actions/checkout@v4 + with: + fetch-depth: '0' # full history with tags to get the version number by versioningit - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v5 @@ -78,4 +197,85 @@ jobs: shell: bash run: | export PYTHONPATH="$(pwd)/src${PYTHONPATH:+:$PYTHONPATH}" - python -m pytest tests/functional_tests/ --color=yes -n auto + python -m pytest tests/functional_tests/ --color=yes -n=auto + + - name: + Convert ${{ env.NOTEBOOKS_DIR }}/*.py to ${{ env.NOTEBOOKS_DIR }}/*.ipynb + run: | + jupytext ${{ env.NOTEBOOKS_DIR }}/*.py --from py:percent --to ipynb + nbstripout ${{ env.NOTEBOOKS_DIR }}/*.ipynb + + - name: Check if Jupyter Notebooks run without errors + shell: bash + run: python -m pytest --nbmake ${{ env.NOTEBOOKS_DIR }}/ --nbmake-timeout=300 --color=yes -n=auto + + - name: Create Python package + run: python -m build --wheel --outdir dist + + - name: + Upload zipped Python package (with tests and examples) for next job + uses: actions/upload-artifact@v4 + with: + name: + EasyDiffractionLib_py${{ matrix.python-version }}_${{ matrix.os + }}_${{ runner.arch }} + path: | + dist/*.whl + tests/ + ${{ env.NOTEBOOKS_DIR }}/ + if-no-files-found: 'error' + compression-level: 0 + + # Job 3: Test the package + test-package: + needs: test-code # the previous job needs to be finished first + + strategy: + fail-fast: false + matrix: + os: [ubuntu-24.04, windows-2022, macos-13, macos-14] + python-version: ['3.12'] + + runs-on: ${{ matrix.os }} + + steps: + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python-version }} + + - name: Upgrade package installer for Python + run: python -m pip install --upgrade pip + + - name: + Download zipped Python package (with tests and examples) from previous + job + uses: actions/download-artifact@v4 + with: # name or path are taken from the upload step of the previous job + name: + EasyDiffractionLib_py${{ matrix.python-version }}_${{ matrix.os + }}_${{ runner.arch }} + path: . # directory to extract downloaded zipped artifacts + + # The local version must be higher than the PyPI version for pip to + # prefer the local version. So, after a new release and a new tag, + # remember to merge the master branch with the develop branch, + # and then create a new feature branch from the develop branch. + - name: Install Python package from previous job with all extras + run: pip install 'easydiffraction[dev,docs,visualization]' --find-links=dist + + - name: Run Python unit tests + shell: bash + run: | + export PYTHONPATH="$(pwd)/src${PYTHONPATH:+:$PYTHONPATH}" + python -m pytest tests/unit_tests/ --color=yes + + - name: Run Python functional tests + shell: bash + run: | + export PYTHONPATH="$(pwd)/src${PYTHONPATH:+:$PYTHONPATH}" + python -m pytest tests/functional_tests/ --color=yes -n=auto + + - name: Check if Jupyter Notebooks run without errors + shell: bash + run: python -m pytest --nbmake ${{ env.NOTEBOOKS_DIR }}/ --nbmake-timeout=300 --color=yes -n=auto From b003ce3fbee315fd07a1f3ea3555ecb2f505a3af Mon Sep 17 00:00:00 2001 From: Andrew Sazonov Date: Fri, 8 Aug 2025 16:24:28 +0200 Subject: [PATCH 21/43] Refines workflow scripts for improved readability --- .github/workflows/test-code.yaml | 31 ++++++++++++++++++++----------- 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/.github/workflows/test-code.yaml b/.github/workflows/test-code.yaml index 0d46394b..c96765c3 100644 --- a/.github/workflows/test-code.yaml +++ b/.github/workflows/test-code.yaml @@ -78,7 +78,9 @@ jobs: - name: Install npm dependencies # Install 'prettier' for code formatting of Markdown, YAML, etc. files # Install 'prettier-plugin-toml' plugin for code formatting of TOML files - run: npm install --no-save --no-audit --no-fund 'prettier@>=3.3.3' 'prettier-plugin-toml@>=0.13.0' + run: > + npm install --no-save --no-audit --no-fund 'prettier@>=3.3.3' + 'prettier-plugin-toml@>=0.13.0' # Check the validity of pyproject.toml - name: Check validity of pyproject.toml @@ -94,7 +96,7 @@ jobs: - name: Suggestion to fix code linting issues (for *.py files) if: steps.check_code_linting.outcome == 'failure' - run: + run: > echo "In project root run 'ruff check . --fix' and commit changes to fix issues." @@ -106,7 +108,7 @@ jobs: - name: Suggestion to fix code formatting issues (for *.py files) if: steps.check_code_formatting.outcome == 'failure' - run: + run: > echo "In project root run 'ruff format .' and commit changes to fix issues." @@ -118,7 +120,7 @@ jobs: - name: Suggestion to fix notebook formatting issues (for *.ipynb files) if: steps.check_notebooks.outcome == 'failure' - run: + run: > echo "In project root run 'nbqa ruff examples/ --fix' and commit changes to fix issues." @@ -130,7 +132,7 @@ jobs: - name: Suggestion to fix non-code formatting issues (for *.md, etc.) if: steps.check_others_formatting.outcome == 'failure' - run: + run: > echo "In project root run 'npx prettier . --write --config=prettierrc.toml' and commit changes to fix issues." @@ -197,17 +199,20 @@ jobs: shell: bash run: | export PYTHONPATH="$(pwd)/src${PYTHONPATH:+:$PYTHONPATH}" - python -m pytest tests/functional_tests/ --color=yes -n=auto + python -m pytest tests/functional_tests/ --color=yes -n auto - name: - Convert ${{ env.NOTEBOOKS_DIR }}/*.py to ${{ env.NOTEBOOKS_DIR }}/*.ipynb + Convert ${{ env.NOTEBOOKS_DIR }}/*.py to ${{ env.NOTEBOOKS_DIR + }}/*.ipynb run: | jupytext ${{ env.NOTEBOOKS_DIR }}/*.py --from py:percent --to ipynb nbstripout ${{ env.NOTEBOOKS_DIR }}/*.ipynb - name: Check if Jupyter Notebooks run without errors shell: bash - run: python -m pytest --nbmake ${{ env.NOTEBOOKS_DIR }}/ --nbmake-timeout=300 --color=yes -n=auto + run: > + python -m pytest --nbmake ${{ env.NOTEBOOKS_DIR }}/ + --nbmake-timeout=300 --color=yes -n auto - name: Create Python package run: python -m build --wheel --outdir dist @@ -262,7 +267,9 @@ jobs: # remember to merge the master branch with the develop branch, # and then create a new feature branch from the develop branch. - name: Install Python package from previous job with all extras - run: pip install 'easydiffraction[dev,docs,visualization]' --find-links=dist + run: > + pip install 'easydiffraction[dev,docs,visualization]' + --find-links=dist - name: Run Python unit tests shell: bash @@ -274,8 +281,10 @@ jobs: shell: bash run: | export PYTHONPATH="$(pwd)/src${PYTHONPATH:+:$PYTHONPATH}" - python -m pytest tests/functional_tests/ --color=yes -n=auto + python -m pytest tests/functional_tests/ --color=yes -n auto - name: Check if Jupyter Notebooks run without errors shell: bash - run: python -m pytest --nbmake ${{ env.NOTEBOOKS_DIR }}/ --nbmake-timeout=300 --color=yes -n=auto + run: > + python -m pytest --nbmake ${{ env.NOTEBOOKS_DIR }}/ + --nbmake-timeout=300 --color=yes -n auto From afd745da3657723c0b6b1df9878b730bf289d4c6 Mon Sep 17 00:00:00 2001 From: Andrew Sazonov Date: Fri, 8 Aug 2025 16:28:14 +0200 Subject: [PATCH 22/43] Refactors notebook handling in CI workflow --- .github/workflows/test-code.yaml | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/.github/workflows/test-code.yaml b/.github/workflows/test-code.yaml index c96765c3..fd4a2b9d 100644 --- a/.github/workflows/test-code.yaml +++ b/.github/workflows/test-code.yaml @@ -113,16 +113,23 @@ jobs: issues." # Check Jupyter notebooks with nbQA in the sample directory + - name: + Convert ${{ env.NOTEBOOKS_DIR }}/*.py to ${{ env.NOTEBOOKS_DIR + }}/*.ipynb + run: | + jupytext ${{ env.NOTEBOOKS_DIR }}/*.py --from py:percent --to ipynb + nbstripout ${{ env.NOTEBOOKS_DIR }}/*.ipynb + - name: Check Jupyter notebooks formatting id: check_notebooks continue-on-error: true - run: nbqa ruff examples/ + run: nbqa ruff ${{ env.NOTEBOOKS_DIR }}/ - name: Suggestion to fix notebook formatting issues (for *.ipynb files) if: steps.check_notebooks.outcome == 'failure' run: > - echo "In project root run 'nbqa ruff examples/ --fix' and commit - changes to fix issues." + echo "In project root run 'nbqa ruff ${{ env.NOTEBOOKS_DIR }}/ --fix' + and commit changes to fix issues." # Check formatting of Markdown, YAML, TOML, etc. files with Prettier in the project root - name: Check formatting of Markdown, YAML, TOML, etc. files @@ -218,7 +225,8 @@ jobs: run: python -m build --wheel --outdir dist - name: - Upload zipped Python package (with tests and examples) for next job + Upload zipped Python package (with tests and ${{ env.NOTEBOOKS_DIR }}) + for next job uses: actions/upload-artifact@v4 with: name: @@ -253,8 +261,8 @@ jobs: run: python -m pip install --upgrade pip - name: - Download zipped Python package (with tests and examples) from previous - job + Download zipped Python package (with tests and ${{ env.NOTEBOOKS_DIR + }}) from previous job uses: actions/download-artifact@v4 with: # name or path are taken from the upload step of the previous job name: From e8aa3bcbcdd18dcd701223b8f6e625ca27aa0da7 Mon Sep 17 00:00:00 2001 From: Andrew Sazonov Date: Fri, 8 Aug 2025 16:31:33 +0200 Subject: [PATCH 23/43] Adds Jupytext to documentation dependencies --- pyproject.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/pyproject.toml b/pyproject.toml index 3d42de06..02234b0b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -70,6 +70,7 @@ docs = [ 'mkdocs-markdownextradata-plugin', # MkDocs: Markdown extra data support, such as global variables 'mkdocstrings-python', # MkDocs: Python docstring support 'pyyaml', # YAML parser + 'jupytext', # Jupyter notebook text format support ] visualization = [ 'darkdetect', # Detecting dark mode From 8a41b2e42c4793acf5e7b1ef334e0dbc0027136e Mon Sep 17 00:00:00 2001 From: Andrew Sazonov Date: Fri, 8 Aug 2025 16:38:46 +0200 Subject: [PATCH 24/43] Updates workflows to enhance package testing --- .github/workflows/test-code.yaml | 19 ++++++++----------- .github/workflows/test-tutorials.yaml | 2 +- 2 files changed, 9 insertions(+), 12 deletions(-) diff --git a/.github/workflows/test-code.yaml b/.github/workflows/test-code.yaml index fd4a2b9d..fcfcb406 100644 --- a/.github/workflows/test-code.yaml +++ b/.github/workflows/test-code.yaml @@ -16,7 +16,7 @@ # - Test the code base # - Check if Jupyter Notebooks run without errors -name: Test code +name: Test code, notebooks and package on: # Trigger the workflow on push @@ -70,10 +70,7 @@ jobs: python-version: ${{ matrix.python-version }} - name: Install Python dependencies - # Install 'validate-pyproject' for checking pyproject.toml - # Install 'ruff' for code linting and formatting - # Install 'nbqa' for quality assurance of Jupyter notebooks - run: pip install '.[dev]' + run: python -m pip install .'[dev,docs,visualization]' - name: Install npm dependencies # Install 'prettier' for code formatting of Markdown, YAML, etc. files @@ -217,9 +214,9 @@ jobs: - name: Check if Jupyter Notebooks run without errors shell: bash - run: > - python -m pytest --nbmake ${{ env.NOTEBOOKS_DIR }}/ - --nbmake-timeout=300 --color=yes -n auto + run: | + export PYTHONPATH="$(pwd)/src${PYTHONPATH:+:$PYTHONPATH}" + python -m pytest --nbmake ${{ env.NOTEBOOKS_DIR }}/ --nbmake-timeout=300 --color=yes -n auto - name: Create Python package run: python -m build --wheel --outdir dist @@ -293,6 +290,6 @@ jobs: - name: Check if Jupyter Notebooks run without errors shell: bash - run: > - python -m pytest --nbmake ${{ env.NOTEBOOKS_DIR }}/ - --nbmake-timeout=300 --color=yes -n auto + run: | + export PYTHONPATH="$(pwd)/src${PYTHONPATH:+:$PYTHONPATH}" + python -m pytest --nbmake ${{ env.NOTEBOOKS_DIR }}/ --nbmake-timeout=300 --color=yes -n auto diff --git a/.github/workflows/test-tutorials.yaml b/.github/workflows/test-tutorials.yaml index 1a304413..8da8a791 100644 --- a/.github/workflows/test-tutorials.yaml +++ b/.github/workflows/test-tutorials.yaml @@ -68,4 +68,4 @@ jobs: export PYTHONPATH="$(pwd)/src${PYTHONPATH:+:$PYTHONPATH}" jupytext tutorials/*.py --from py:percent --to ipynb nbstripout tutorials/*.ipynb - python -m pytest --nbmake tutorials/ --nbmake-timeout=300 --color=yes -n=auto + python -m pytest --nbmake tutorials/ --nbmake-timeout=300 --color=yes -n auto From 9db67ddea68bf561b15588500aff5528f4287dfb Mon Sep 17 00:00:00 2001 From: Andrew Sazonov Date: Fri, 8 Aug 2025 16:58:09 +0200 Subject: [PATCH 25/43] Standardizes workflow job names and increases timeout --- .github/workflows/test-code.yaml | 15 ++++++++------- .github/workflows/test-tutorials-colab.yaml | 2 +- .github/workflows/test-tutorials.yaml | 6 +++--- docs/user-guide/concept.md | 15 +++++---------- tools/run_notebooks.sh | 2 +- 5 files changed, 18 insertions(+), 22 deletions(-) diff --git a/.github/workflows/test-code.yaml b/.github/workflows/test-code.yaml index fcfcb406..ce5c6334 100644 --- a/.github/workflows/test-code.yaml +++ b/.github/workflows/test-code.yaml @@ -50,7 +50,7 @@ env: jobs: # Job 1: Check code quality and consistency - code-quality: + check-code-quality: strategy: matrix: os: [ubuntu-latest] @@ -113,6 +113,7 @@ jobs: - name: Convert ${{ env.NOTEBOOKS_DIR }}/*.py to ${{ env.NOTEBOOKS_DIR }}/*.ipynb + shell: bash run: | jupytext ${{ env.NOTEBOOKS_DIR }}/*.py --from py:percent --to ipynb nbstripout ${{ env.NOTEBOOKS_DIR }}/*.ipynb @@ -150,8 +151,8 @@ jobs: run: exit 1 # Job 2: Test code and upload coverage to Codecov. - test-code: - needs: code-quality # previous job 'code-quality' need to be finished first + run-tests-and-build: + needs: check-code-quality # previous job 'code-quality' need to be finished first strategy: fail-fast: false @@ -216,7 +217,7 @@ jobs: shell: bash run: | export PYTHONPATH="$(pwd)/src${PYTHONPATH:+:$PYTHONPATH}" - python -m pytest --nbmake ${{ env.NOTEBOOKS_DIR }}/ --nbmake-timeout=300 --color=yes -n auto + python -m pytest --nbmake ${{ env.NOTEBOOKS_DIR }}/ --nbmake-timeout=600 --color=yes -n auto - name: Create Python package run: python -m build --wheel --outdir dist @@ -237,8 +238,8 @@ jobs: compression-level: 0 # Job 3: Test the package - test-package: - needs: test-code # the previous job needs to be finished first + install-and-test-package: + needs: run-tests-and-build # the previous job needs to be finished first strategy: fail-fast: false @@ -292,4 +293,4 @@ jobs: shell: bash run: | export PYTHONPATH="$(pwd)/src${PYTHONPATH:+:$PYTHONPATH}" - python -m pytest --nbmake ${{ env.NOTEBOOKS_DIR }}/ --nbmake-timeout=300 --color=yes -n auto + python -m pytest --nbmake ${{ env.NOTEBOOKS_DIR }}/ --nbmake-timeout=600 --color=yes -n auto diff --git a/.github/workflows/test-tutorials-colab.yaml b/.github/workflows/test-tutorials-colab.yaml index 35532661..3327b37a 100644 --- a/.github/workflows/test-tutorials-colab.yaml +++ b/.github/workflows/test-tutorials-colab.yaml @@ -54,5 +54,5 @@ jobs: - name: Check if Jupyter Notebooks run without errors run: > - python -m pytest --nbmake docs/tutorials/ --nbmake-timeout=300 + python -m pytest --nbmake docs/tutorials/ --nbmake-timeout=600 --color=yes -n=auto diff --git a/.github/workflows/test-tutorials.yaml b/.github/workflows/test-tutorials.yaml index 8da8a791..49a015ce 100644 --- a/.github/workflows/test-tutorials.yaml +++ b/.github/workflows/test-tutorials.yaml @@ -60,12 +60,12 @@ jobs: # Convert all Python scripts in the folder tutorials/ to Jupyter Notebooks # Strip output from Jupyter Notebooks and rename cell ids # Run all Jupyter Notebooks in the folder tutorials/ in parallel - # -n=auto: run as many in parallel as you have cores (auto mode) - # --nbmake-timeout=300: set timeout to 300 seconds + # -n auto: run as many in parallel as you have cores (auto mode) + # --nbmake-timeout=600: set timeout to 600 seconds - name: Run tutorials as Jupyter Notebooks shell: bash run: | export PYTHONPATH="$(pwd)/src${PYTHONPATH:+:$PYTHONPATH}" jupytext tutorials/*.py --from py:percent --to ipynb nbstripout tutorials/*.ipynb - python -m pytest --nbmake tutorials/ --nbmake-timeout=300 --color=yes -n auto + python -m pytest --nbmake tutorials/ --nbmake-timeout=600 --color=yes -n auto diff --git a/docs/user-guide/concept.md b/docs/user-guide/concept.md index 8cd713db..2ad7e077 100644 --- a/docs/user-guide/concept.md +++ b/docs/user-guide/concept.md @@ -24,8 +24,7 @@ crystalline specimen (also called the sample), whose structural properties are being studied. -![](../assets/images/user-guide/data-acquisition_instrument.png){ width="450", -loading=lazy } +![](../assets/images/user-guide/data-acquisition_instrument.png){ width="450", loading=lazy } /// caption An illustration of the data acquisition step, where raw data is collected by a 2D detector. The studied sample originates from Mars. @@ -34,8 +33,7 @@ Credits: DOI 10.1126/science.1238932 -![](../assets/images/user-guide/data-acquisition_2d-raw-data.jpg){ width="400", -loading=lazy } +![](../assets/images/user-guide/data-acquisition_2d-raw-data.jpg){ width="400", loading=lazy } /// caption A 2D diffraction pattern collected by the detector. Credits: DOI 10.1126/science.1238932 @@ -50,8 +48,7 @@ format. The goal is to produce a clean and reliable dataset suitable for analysis. -![](../assets/images/user-guide/data-reduction_1d-pattern.png){ width="450", -loading=lazy } +![](../assets/images/user-guide/data-reduction_1d-pattern.png){ width="450", loading=lazy } /// caption An illustration of a 1D diffraction pattern reduced from the measured 2D data. Credits: DOI 10.1126/science.1238932 @@ -84,8 +81,7 @@ minimizing the difference (or **residual**) between the experimental and calculated data — and this is exactly where EasyDiffraction comes into play. -![](../assets/images/user-guide/data-analysis_refinement.png){ width="450", -loading=lazy } +![](../assets/images/user-guide/data-analysis_refinement.png){ width="450", loading=lazy } /// caption An illustration of the data analysis step: the experimental data (blue) is compared to the calculated data (red), and the residual (gray) is minimized. @@ -94,8 +90,7 @@ Credits: DOI 10.1126/science.1238932 -![](../assets/images/user-guide/data-analysis_model.png){ width="450", -loading=lazy } +![](../assets/images/user-guide/data-analysis_model.png){ width="450", loading=lazy } /// caption An example of a crystal structure model of the studied sample. /// diff --git a/tools/run_notebooks.sh b/tools/run_notebooks.sh index e6b00324..c006f8ff 100755 --- a/tools/run_notebooks.sh +++ b/tools/run_notebooks.sh @@ -3,4 +3,4 @@ export PYTHONPATH="${PWD}/src:${PYTHONPATH}" echo "PYTHONPATH: ${PYTHONPATH}" echo "\033[0;33m:::::: Run Jupyter notebooks\033[0m" -pytest --nbmake examples/ --ignore-glob='examples/*emcee*' --nbmake-timeout=300 --color=yes -n=auto +pytest --nbmake examples/ --ignore-glob='examples/*emcee*' --nbmake-timeout=600 --color=yes -n=auto From 1ecc6281eb57eef6f3f9225cfe9716a6639444c3 Mon Sep 17 00:00:00 2001 From: Andrew Sazonov Date: Fri, 8 Aug 2025 18:00:18 +0200 Subject: [PATCH 26/43] Refines tutorial parameters for performance --- ...-struct_pd-neut-tof_multidata_NCAF-WISH.py | 74 +++++++++---------- 1 file changed, 37 insertions(+), 37 deletions(-) diff --git a/tutorials/cryst-struct_pd-neut-tof_multidata_NCAF-WISH.py b/tutorials/cryst-struct_pd-neut-tof_multidata_NCAF-WISH.py index cb624c73..238b02c4 100644 --- a/tutorials/cryst-struct_pd-neut-tof_multidata_NCAF-WISH.py +++ b/tutorials/cryst-struct_pd-neut-tof_multidata_NCAF-WISH.py @@ -43,12 +43,12 @@ # #### Set Atom Sites # %% -model.atom_sites.add('Ca', 'Ca', 0.4665, 0.0, 0.25, wyckoff_letter='b', b_iso=0.92) -model.atom_sites.add('Al', 'Al', 0.2520, 0.2520, 0.2520, wyckoff_letter='a', b_iso=0.73) -model.atom_sites.add('Na', 'Na', 0.0852, 0.0852, 0.0852, wyckoff_letter='a', b_iso=2.08) -model.atom_sites.add('F1', 'F', 0.1376, 0.3055, 0.1196, wyckoff_letter='c', b_iso=0.90) -model.atom_sites.add('F2', 'F', 0.3623, 0.3631, 0.1870, wyckoff_letter='c', b_iso=1.37) -model.atom_sites.add('F3', 'F', 0.4611, 0.4611, 0.4611, wyckoff_letter='a', b_iso=0.88) +model.atom_sites.add('Ca', 'Ca', 0.4663, 0.0, 0.25, wyckoff_letter='b', b_iso=0.92) +model.atom_sites.add('Al', 'Al', 0.2521, 0.2521, 0.2521, wyckoff_letter='a', b_iso=0.73) +model.atom_sites.add('Na', 'Na', 0.0851, 0.0851, 0.0851, wyckoff_letter='a', b_iso=2.08) +model.atom_sites.add('F1', 'F', 0.1377, 0.3054, 0.1195, wyckoff_letter='c', b_iso=0.90) +model.atom_sites.add('F2', 'F', 0.3625, 0.3633, 0.1867, wyckoff_letter='c', b_iso=1.37) +model.atom_sites.add('F3', 'F', 0.4612, 0.4612, 0.4612, wyckoff_letter='a', b_iso=0.88) # %% [markdown] # ## Define Experiment @@ -59,33 +59,47 @@ # #### Download Measured Data # %% -download_from_repository('wish_ncaf_5_6.xys', destination='data') +download_from_repository( + 'wish_ncaf_5_6.xys', + destination='data', +) # %% -download_from_repository('wish_ncaf_4_7.xys', destination='data') +download_from_repository( + 'wish_ncaf_4_7.xys', + destination='data', +) # %% [markdown] # #### Create Experiment # %% -expt56 = Experiment('wish_5_6', beam_mode='time-of-flight', data_path='data/wish_ncaf_5_6.xys') +expt56 = Experiment( + 'wish_5_6', + beam_mode='time-of-flight', + data_path='data/wish_ncaf_5_6.xys', +) # %% -expt47 = Experiment('wish_4_7', beam_mode='time-of-flight', data_path='data/wish_ncaf_4_7.xys') +expt47 = Experiment( + 'wish_4_7', + beam_mode='time-of-flight', + data_path='data/wish_ncaf_4_7.xys', +) # %% [markdown] # #### Set Instrument # %% expt56.instrument.setup_twotheta_bank = 152.827 -expt56.instrument.calib_d_to_tof_offset = -13.0 -expt56.instrument.calib_d_to_tof_linear = 20752.1 +expt56.instrument.calib_d_to_tof_offset = -13.5 +expt56.instrument.calib_d_to_tof_linear = 20773.0 expt56.instrument.calib_d_to_tof_quad = -1.08308 # %% expt47.instrument.setup_twotheta_bank = 121.660 expt47.instrument.calib_d_to_tof_offset = -15.0 -expt47.instrument.calib_d_to_tof_linear = 18640.7 +expt47.instrument.calib_d_to_tof_linear = 18660.0 expt47.instrument.calib_d_to_tof_quad = -0.47488 # %% [markdown] @@ -94,20 +108,20 @@ # %% expt56.peak.broad_gauss_sigma_0 = 0.0 expt56.peak.broad_gauss_sigma_1 = 0.0 -expt56.peak.broad_gauss_sigma_2 = 15.0 -expt56.peak.broad_mix_beta_0 = 0.01 +expt56.peak.broad_gauss_sigma_2 = 15.5 +expt56.peak.broad_mix_beta_0 = 0.007 expt56.peak.broad_mix_beta_1 = 0.01 -expt56.peak.asym_alpha_0 = -0.01 -expt56.peak.asym_alpha_1 = 0.10 +expt56.peak.asym_alpha_0 = -0.0094 +expt56.peak.asym_alpha_1 = 0.1 # %% expt47.peak.broad_gauss_sigma_0 = 0.0 -expt47.peak.broad_gauss_sigma_1 = 30.0 -expt47.peak.broad_gauss_sigma_2 = 20.0 -expt47.peak.broad_mix_beta_0 = 0.01 -expt47.peak.broad_mix_beta_1 = 0.01 -expt47.peak.asym_alpha_0 = -0.01 -expt47.peak.asym_alpha_1 = 0.10 +expt47.peak.broad_gauss_sigma_1 = 29.8 +expt47.peak.broad_gauss_sigma_2 = 18.0 +expt47.peak.broad_mix_beta_0 = 0.006 +expt47.peak.broad_mix_beta_1 = 0.015 +expt47.peak.asym_alpha_0 = -0.0115 +expt47.peak.asym_alpha_1 = 0.1 # %% [markdown] # #### Set Background @@ -256,17 +270,6 @@ # #### Set Free Parameters # %% -model.atom_sites['Ca'].fract_x.free = True -model.atom_sites['Al'].fract_x.free = True -model.atom_sites['Na'].fract_x.free = True -model.atom_sites['F1'].fract_x.free = True -model.atom_sites['F1'].fract_y.free = True -model.atom_sites['F1'].fract_z.free = True -model.atom_sites['F2'].fract_x.free = True -model.atom_sites['F2'].fract_y.free = True -model.atom_sites['F2'].fract_z.free = True -model.atom_sites['F3'].fract_x.free = True - model.atom_sites['Ca'].b_iso.free = True model.atom_sites['Al'].b_iso.free = True model.atom_sites['Na'].b_iso.free = True @@ -281,17 +284,14 @@ expt56.peak.broad_gauss_sigma_2.free = True expt56.peak.broad_mix_beta_0.free = True expt56.peak.broad_mix_beta_1.free = True -expt56.peak.asym_alpha_0.free = True expt56.peak.asym_alpha_1.free = True expt47.linked_phases['ncaf'].scale.free = True expt47.instrument.calib_d_to_tof_linear.free = True expt47.instrument.calib_d_to_tof_offset.free = True -expt47.peak.broad_gauss_sigma_1.free = True expt47.peak.broad_gauss_sigma_2.free = True expt47.peak.broad_mix_beta_0.free = True expt47.peak.broad_mix_beta_1.free = True -expt47.peak.asym_alpha_0.free = True expt47.peak.asym_alpha_1.free = True # %% [markdown] From ae1df5814192242172e4145d196107c0d99b97a6 Mon Sep 17 00:00:00 2001 From: Andrew Sazonov Date: Fri, 8 Aug 2025 18:05:30 +0200 Subject: [PATCH 27/43] Refines Jupyter notebook conversion in workflow --- .github/workflows/test-code.yaml | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/.github/workflows/test-code.yaml b/.github/workflows/test-code.yaml index ce5c6334..7ee7f59d 100644 --- a/.github/workflows/test-code.yaml +++ b/.github/workflows/test-code.yaml @@ -110,9 +110,7 @@ jobs: issues." # Check Jupyter notebooks with nbQA in the sample directory - - name: - Convert ${{ env.NOTEBOOKS_DIR }}/*.py to ${{ env.NOTEBOOKS_DIR - }}/*.ipynb + - name: Convert ${{ env.NOTEBOOKS_DIR }}/*.py to *.ipynb shell: bash run: | jupytext ${{ env.NOTEBOOKS_DIR }}/*.py --from py:percent --to ipynb @@ -206,9 +204,8 @@ jobs: export PYTHONPATH="$(pwd)/src${PYTHONPATH:+:$PYTHONPATH}" python -m pytest tests/functional_tests/ --color=yes -n auto - - name: - Convert ${{ env.NOTEBOOKS_DIR }}/*.py to ${{ env.NOTEBOOKS_DIR - }}/*.ipynb + - name: Convert ${{ env.NOTEBOOKS_DIR }}/*.py to *.ipynb + shell: bash run: | jupytext ${{ env.NOTEBOOKS_DIR }}/*.py --from py:percent --to ipynb nbstripout ${{ env.NOTEBOOKS_DIR }}/*.ipynb From e23b2abd73a67671aa4ca16a91d7e8f114b919fa Mon Sep 17 00:00:00 2001 From: Andrew Sazonov Date: Fri, 8 Aug 2025 22:23:17 +0200 Subject: [PATCH 28/43] Refines CI workflow naming and formatting --- .github/workflows/test-code.yaml | 89 ++++++++++++++++---------------- 1 file changed, 44 insertions(+), 45 deletions(-) diff --git a/.github/workflows/test-code.yaml b/.github/workflows/test-code.yaml index 7ee7f59d..4765ad3d 100644 --- a/.github/workflows/test-code.yaml +++ b/.github/workflows/test-code.yaml @@ -24,7 +24,8 @@ on: # Every branch branches: - '**' - # But do not run this workflow on creating a new tag starting with 'v', e.g. 'v1.0.3' (see publish-pypi.yml) + # But do not run this workflow on creating a new tag starting with + # 'v', e.g. 'v1.0.3' (see publish-pypi.yml) tags-ignore: - 'v*' # Trigger the workflow on pull request @@ -34,23 +35,23 @@ on: # Allows you to run this workflow manually from the Actions tab workflow_dispatch: -# Allow only one concurrent workflow, skipping runs queued between the run in-progress and latest queued. -# And cancel in-progress runs. +# Allow only one concurrent workflow, skipping runs queued between the run +# in-progress and latest queued. And cancel in-progress runs. concurrency: group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} cancel-in-progress: true env: - # Set the environment variables to be used in all jobs defined in this workflow - # Set the CI_BRANCH environment variable to be the branch name - # Set the NOTEBOOKS_DIR environment variable to be the directory containing the Jupyter notebooks + # Set the environment vars to be used in all jobs defined in this workflow + # Set the CI_BRANCH environment var to be the branch name + # Set the NOTEBOOKS_DIR environment var to be the dir of Jupyter notebooks CI_BRANCH: ${{ github.head_ref || github.ref_name }} NOTEBOOKS_DIR: tutorials jobs: # Job 1: Check code quality and consistency - check-code-quality: + code-quality: strategy: matrix: os: [ubuntu-latest] @@ -74,9 +75,9 @@ jobs: - name: Install npm dependencies # Install 'prettier' for code formatting of Markdown, YAML, etc. files - # Install 'prettier-plugin-toml' plugin for code formatting of TOML files + # Install 'prettier-plugin-toml' plugin for formatting of TOML files run: > - npm install --no-save --no-audit --no-fund 'prettier@>=3.3.3' + npm install --no-save --no-audit --no-fund 'prettier@>=3.3.3' 'prettier-plugin-toml@>=0.13.0' # Check the validity of pyproject.toml @@ -91,7 +92,7 @@ jobs: continue-on-error: true run: ruff check . - - name: Suggestion to fix code linting issues (for *.py files) + - name: Suggestion to fix code linting issues (*.py files) if: steps.check_code_linting.outcome == 'failure' run: > echo "In project root run 'ruff check . --fix' and commit changes to @@ -103,13 +104,13 @@ jobs: continue-on-error: true run: ruff format . --check - - name: Suggestion to fix code formatting issues (for *.py files) + - name: Suggestion to fix code formatting issues (*.py files) if: steps.check_code_formatting.outcome == 'failure' run: > echo "In project root run 'ruff format .' and commit changes to fix issues." - # Check Jupyter notebooks with nbQA in the sample directory + # Check Jupyter notebooks with nbQA in the notebooks directory - name: Convert ${{ env.NOTEBOOKS_DIR }}/*.py to *.ipynb shell: bash run: | @@ -121,19 +122,20 @@ jobs: continue-on-error: true run: nbqa ruff ${{ env.NOTEBOOKS_DIR }}/ - - name: Suggestion to fix notebook formatting issues (for *.ipynb files) + - name: Suggestion to fix notebook formatting issues (*.ipynb files) if: steps.check_notebooks.outcome == 'failure' run: > echo "In project root run 'nbqa ruff ${{ env.NOTEBOOKS_DIR }}/ --fix' and commit changes to fix issues." - # Check formatting of Markdown, YAML, TOML, etc. files with Prettier in the project root + # Check formatting of Markdown, YAML, TOML, etc. files with Prettier in + # the project root - name: Check formatting of Markdown, YAML, TOML, etc. files id: check_others_formatting continue-on-error: true run: npx prettier . --check --config=prettierrc.toml - - name: Suggestion to fix non-code formatting issues (for *.md, etc.) + - name: Suggestion to fix non-code formatting issues (*.md, *.yml, etc.) if: steps.check_others_formatting.outcome == 'failure' run: > echo "In project root run 'npx prettier . --write @@ -149,8 +151,8 @@ jobs: run: exit 1 # Job 2: Test code and upload coverage to Codecov. - run-tests-and-build: - needs: check-code-quality # previous job 'code-quality' need to be finished first + run-tests: + needs: code-quality # previous job needs to be finished first strategy: fail-fast: false @@ -166,15 +168,6 @@ jobs: with: fetch-depth: '0' # full history with tags to get the version number by versioningit - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v5 - with: - python-version: ${{ matrix.python-version }} - - - name: Upgrade package installer for Python - shell: bash - run: python -m pip install --upgrade pip - - name: Set up conda (Windows only) if: runner.os == 'Windows' uses: s-weigand/setup-conda@v1 @@ -188,17 +181,26 @@ jobs: shell: bash run: conda install -y -c conda-forge libcblas + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python-version }} + + - name: Upgrade package installer for Python + shell: bash + run: python -m pip install --upgrade pip + - name: Install Python dependencies shell: bash run: python -m pip install .'[dev,docs,visualization]' - - name: Run Python unit tests + - name: Run Python unit tests (using src/ as the source dir) shell: bash run: | export PYTHONPATH="$(pwd)/src${PYTHONPATH:+:$PYTHONPATH}" python -m pytest tests/unit_tests/ --color=yes - - name: Run Python functional tests + - name: Run Python functional tests (using src/ as the source dir) shell: bash run: | export PYTHONPATH="$(pwd)/src${PYTHONPATH:+:$PYTHONPATH}" @@ -210,13 +212,15 @@ jobs: jupytext ${{ env.NOTEBOOKS_DIR }}/*.py --from py:percent --to ipynb nbstripout ${{ env.NOTEBOOKS_DIR }}/*.ipynb - - name: Check if Jupyter Notebooks run without errors + - name: + Check if Jupyter Notebooks run without errors (using src/ as the + source dir) shell: bash run: | export PYTHONPATH="$(pwd)/src${PYTHONPATH:+:$PYTHONPATH}" python -m pytest --nbmake ${{ env.NOTEBOOKS_DIR }}/ --nbmake-timeout=600 --color=yes -n auto - - name: Create Python package + - name: Create Python package for the next job run: python -m build --wheel --outdir dist - name: @@ -225,8 +229,8 @@ jobs: uses: actions/upload-artifact@v4 with: name: - EasyDiffractionLib_py${{ matrix.python-version }}_${{ matrix.os - }}_${{ runner.arch }} + edl_py${{ matrix.python-version }}_${{ matrix.os }}_${{ runner.arch + }} path: | dist/*.whl tests/ @@ -235,8 +239,8 @@ jobs: compression-level: 0 # Job 3: Test the package - install-and-test-package: - needs: run-tests-and-build # the previous job needs to be finished first + check-package: + needs: run-tests # the previous job needs to be finished first strategy: fail-fast: false @@ -261,8 +265,8 @@ jobs: uses: actions/download-artifact@v4 with: # name or path are taken from the upload step of the previous job name: - EasyDiffractionLib_py${{ matrix.python-version }}_${{ matrix.os - }}_${{ runner.arch }} + edl_py${{ matrix.python-version }}_${{ matrix.os }}_${{ runner.arch + }} path: . # directory to extract downloaded zipped artifacts # The local version must be higher than the PyPI version for pip to @@ -274,20 +278,15 @@ jobs: pip install 'easydiffraction[dev,docs,visualization]' --find-links=dist - - name: Run Python unit tests + - name: Run Python unit tests (using installed package) shell: bash - run: | - export PYTHONPATH="$(pwd)/src${PYTHONPATH:+:$PYTHONPATH}" - python -m pytest tests/unit_tests/ --color=yes + run: python -m pytest tests/unit_tests/ --color=yes - - name: Run Python functional tests + - name: Run Python functional tests (using installed package) shell: bash - run: | - export PYTHONPATH="$(pwd)/src${PYTHONPATH:+:$PYTHONPATH}" - python -m pytest tests/functional_tests/ --color=yes -n auto + run: python -m pytest tests/functional_tests/ --color=yes -n auto - name: Check if Jupyter Notebooks run without errors shell: bash run: | - export PYTHONPATH="$(pwd)/src${PYTHONPATH:+:$PYTHONPATH}" python -m pytest --nbmake ${{ env.NOTEBOOKS_DIR }}/ --nbmake-timeout=600 --color=yes -n auto From b23c3a4f22bb5a024454247da6743284bd3d963c Mon Sep 17 00:00:00 2001 From: Andrew Sazonov Date: Fri, 8 Aug 2025 22:45:05 +0200 Subject: [PATCH 29/43] Updates workflow job names and adds shell specifications --- .github/workflows/test-code.yaml | 48 ++++++++++++++++++++++++++------ 1 file changed, 39 insertions(+), 9 deletions(-) diff --git a/.github/workflows/test-code.yaml b/.github/workflows/test-code.yaml index 4765ad3d..0fb7d687 100644 --- a/.github/workflows/test-code.yaml +++ b/.github/workflows/test-code.yaml @@ -1,16 +1,16 @@ # This is the main workflow for testing the code, notebooks and package. # It is divided into three jobs: -# 1. Code-quality: +# 1. code-quality: # - Check the validity of pyproject.toml # - Check code linting # - Check code formatting # - Check Jupyter notebooks formatting # - Check formatting of Markdown, YAML, TOML, etc. files -# 2. Test-code: +# 2. run-tests: # - Test the code base and upload coverage to Codecov # - Create the Python package # - Upload the Python package for the next job -# 3. Test-package: +# 3. check-package: # - Download the Python package from the previous job # - Install the downloaded Python package # - Test the code base @@ -71,11 +71,13 @@ jobs: python-version: ${{ matrix.python-version }} - name: Install Python dependencies + shell: bash run: python -m pip install .'[dev,docs,visualization]' - name: Install npm dependencies # Install 'prettier' for code formatting of Markdown, YAML, etc. files # Install 'prettier-plugin-toml' plugin for formatting of TOML files + shell: bash run: > npm install --no-save --no-audit --no-fund 'prettier@>=3.3.3' 'prettier-plugin-toml@>=0.13.0' @@ -84,16 +86,19 @@ jobs: - name: Check validity of pyproject.toml id: check_pyproject continue-on-error: true + shell: bash run: validate-pyproject pyproject.toml # Check code linting with Ruff in the project root - name: Check code linting id: check_code_linting continue-on-error: true + shell: bash run: ruff check . - name: Suggestion to fix code linting issues (*.py files) if: steps.check_code_linting.outcome == 'failure' + shell: bash run: > echo "In project root run 'ruff check . --fix' and commit changes to fix issues." @@ -102,10 +107,12 @@ jobs: - name: Check code formatting id: check_code_formatting continue-on-error: true + shell: bash run: ruff format . --check - name: Suggestion to fix code formatting issues (*.py files) if: steps.check_code_formatting.outcome == 'failure' + shell: bash run: > echo "In project root run 'ruff format .' and commit changes to fix issues." @@ -120,10 +127,12 @@ jobs: - name: Check Jupyter notebooks formatting id: check_notebooks continue-on-error: true + shell: bash run: nbqa ruff ${{ env.NOTEBOOKS_DIR }}/ - name: Suggestion to fix notebook formatting issues (*.ipynb files) if: steps.check_notebooks.outcome == 'failure' + shell: bash run: > echo "In project root run 'nbqa ruff ${{ env.NOTEBOOKS_DIR }}/ --fix' and commit changes to fix issues." @@ -133,10 +142,12 @@ jobs: - name: Check formatting of Markdown, YAML, TOML, etc. files id: check_others_formatting continue-on-error: true + shell: bash run: npx prettier . --check --config=prettierrc.toml - name: Suggestion to fix non-code formatting issues (*.md, *.yml, etc.) if: steps.check_others_formatting.outcome == 'failure' + shell: bash run: > echo "In project root run 'npx prettier . --write --config=prettierrc.toml' and commit changes to fix issues." @@ -206,21 +217,36 @@ jobs: export PYTHONPATH="$(pwd)/src${PYTHONPATH:+:$PYTHONPATH}" python -m pytest tests/functional_tests/ --color=yes -n auto + # Check if tutorials as python scripts run without errors + # Run all Python scripts in the folder tutorials/ in parallel + # -n 1: run one script per Python invocation + # -P 0: run as many in parallel as you have cores (auto mode) + - name: Run tutorials as python scripts (using src/ as the source dir) + shell: bash + run: | + export PYTHONPATH="$(pwd)/src${PYTHONPATH:+:$PYTHONPATH}" + find ${{ env.NOTEBOOKS_DIR }}/ -name "*.py" | xargs -n 1 -P 0 python + + # Check if tutorials as Jupyter Notebooks run without errors + # Convert all Python scripts in the folder tutorials/ to Jupyter Notebooks + # Strip output from Jupyter Notebooks and rename cell ids + # Run all Jupyter Notebooks in the folder tutorials/ in parallel + # -n auto: run as many in parallel as you have cores (auto mode) + # --nbmake-timeout=600: set timeout to 600 seconds - name: Convert ${{ env.NOTEBOOKS_DIR }}/*.py to *.ipynb shell: bash run: | jupytext ${{ env.NOTEBOOKS_DIR }}/*.py --from py:percent --to ipynb nbstripout ${{ env.NOTEBOOKS_DIR }}/*.ipynb - - name: - Check if Jupyter Notebooks run without errors (using src/ as the - source dir) + - name: Run tutorials as Jupyter Notebooks (using src/ as the source dir) shell: bash run: | export PYTHONPATH="$(pwd)/src${PYTHONPATH:+:$PYTHONPATH}" python -m pytest --nbmake ${{ env.NOTEBOOKS_DIR }}/ --nbmake-timeout=600 --color=yes -n auto - name: Create Python package for the next job + shell: bash run: python -m build --wheel --outdir dist - name: @@ -274,6 +300,7 @@ jobs: # remember to merge the master branch with the develop branch, # and then create a new feature branch from the develop branch. - name: Install Python package from previous job with all extras + shell: bash run: > pip install 'easydiffraction[dev,docs,visualization]' --find-links=dist @@ -286,7 +313,10 @@ jobs: shell: bash run: python -m pytest tests/functional_tests/ --color=yes -n auto - - name: Check if Jupyter Notebooks run without errors + - name: Run tutorials as python scripts (using installed package) shell: bash - run: | - python -m pytest --nbmake ${{ env.NOTEBOOKS_DIR }}/ --nbmake-timeout=600 --color=yes -n auto + run: find tutorials/ -name "*.py" | xargs -n 1 -P 0 python + + - name: Run tutorials as Jupyter Notebooks (using installed package) + shell: bash + run: python -m pytest --nbmake ${{ env.NOTEBOOKS_DIR }}/ --nbmake-timeout=600 --color=yes -n auto From 3714dc160ba5c3591d81edbdd86b20ae05bd55be Mon Sep 17 00:00:00 2001 From: Andrew Sazonov Date: Fri, 8 Aug 2025 22:48:19 +0200 Subject: [PATCH 30/43] Reformats YAML for improved readability --- .github/workflows/test-code.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test-code.yaml b/.github/workflows/test-code.yaml index 0fb7d687..f7a7d8a4 100644 --- a/.github/workflows/test-code.yaml +++ b/.github/workflows/test-code.yaml @@ -319,4 +319,6 @@ jobs: - name: Run tutorials as Jupyter Notebooks (using installed package) shell: bash - run: python -m pytest --nbmake ${{ env.NOTEBOOKS_DIR }}/ --nbmake-timeout=600 --color=yes -n auto + run: > + python -m pytest --nbmake ${{ env.NOTEBOOKS_DIR }}/ + --nbmake-timeout=600 --color=yes -n auto From d569353246a2734eff5c307c18ce5f7f7a8c79d3 Mon Sep 17 00:00:00 2001 From: Andrew Sazonov Date: Fri, 8 Aug 2025 23:09:22 +0200 Subject: [PATCH 31/43] Reorganizes Python setup in GitHub workflow --- .github/workflows/test-code.yaml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/test-code.yaml b/.github/workflows/test-code.yaml index f7a7d8a4..455b4d31 100644 --- a/.github/workflows/test-code.yaml +++ b/.github/workflows/test-code.yaml @@ -179,6 +179,15 @@ jobs: with: fetch-depth: '0' # full history with tags to get the version number by versioningit + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python-version }} + + - name: Upgrade package installer for Python + shell: bash + run: python -m pip install --upgrade pip + - name: Set up conda (Windows only) if: runner.os == 'Windows' uses: s-weigand/setup-conda@v1 @@ -192,15 +201,6 @@ jobs: shell: bash run: conda install -y -c conda-forge libcblas - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v5 - with: - python-version: ${{ matrix.python-version }} - - - name: Upgrade package installer for Python - shell: bash - run: python -m pip install --upgrade pip - - name: Install Python dependencies shell: bash run: python -m pip install .'[dev,docs,visualization]' From eb1271053665adee01d3300caa958b9685353090 Mon Sep 17 00:00:00 2001 From: Andrew Sazonov Date: Fri, 8 Aug 2025 23:10:07 +0200 Subject: [PATCH 32/43] Adds Windows-specific conda setup to CI workflow --- .github/workflows/test-code.yaml | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/.github/workflows/test-code.yaml b/.github/workflows/test-code.yaml index 455b4d31..163d83b4 100644 --- a/.github/workflows/test-code.yaml +++ b/.github/workflows/test-code.yaml @@ -285,6 +285,19 @@ jobs: - name: Upgrade package installer for Python run: python -m pip install --upgrade pip + - name: Set up conda (Windows only) + if: runner.os == 'Windows' + uses: s-weigand/setup-conda@v1 + with: + update-conda: true + python-version: ${{ matrix.python-version }} + conda-channels: conda-forge + + - name: Install libcblas for pdffit (Windows only) + if: runner.os == 'Windows' + shell: bash + run: conda install -y -c conda-forge libcblas + - name: Download zipped Python package (with tests and ${{ env.NOTEBOOKS_DIR }}) from previous job From 39a3b90e0062a68ea48fc1fecfd899c70265b978 Mon Sep 17 00:00:00 2001 From: Andrew Sazonov Date: Fri, 8 Aug 2025 23:38:02 +0200 Subject: [PATCH 33/43] Try fixing Unicode issues on Windows --- .github/workflows/test-code.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/test-code.yaml b/.github/workflows/test-code.yaml index 163d83b4..e4587edb 100644 --- a/.github/workflows/test-code.yaml +++ b/.github/workflows/test-code.yaml @@ -48,6 +48,7 @@ env: # Set the NOTEBOOKS_DIR environment var to be the dir of Jupyter notebooks CI_BRANCH: ${{ github.head_ref || github.ref_name }} NOTEBOOKS_DIR: tutorials + PYTHONIOENCODING: utf-8 jobs: # Job 1: Check code quality and consistency From f526d7da7810b099846a6ebbd7a6ce8c65920aa4 Mon Sep 17 00:00:00 2001 From: Andrew Sazonov Date: Sat, 9 Aug 2025 21:51:56 +0200 Subject: [PATCH 34/43] Enhances CI workflows and separates tutorial testing --- .github/workflows/build-docs.yml | 49 +++++++----- .github/workflows/test-code.yaml | 89 ++++------------------ .github/workflows/test-tutorials.yaml | 103 +++++++++++++++++++++++--- 3 files changed, 138 insertions(+), 103 deletions(-) diff --git a/.github/workflows/build-docs.yml b/.github/workflows/build-docs.yml index 63d25a31..79b73929 100644 --- a/.github/workflows/build-docs.yml +++ b/.github/workflows/build-docs.yml @@ -3,12 +3,18 @@ name: Build and deploy docs on: # Trigger the workflow on push push: - # To the develop and master branches - branches: [develop, master, docs, d-spacing] - + # Selected branches + branches: [develop, master, docs] # Allows you to run this workflow manually from the Actions tab workflow_dispatch: +# Allow only one concurrent workflow, skipping runs queued between the run +# in-progress and latest queued. And cancel in-progress runs. +concurrency: + group: + ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + env: # Set the environment variables to be used in all jobs defined in this workflow # Set the CI_BRANCH environment variable to be the branch name @@ -19,24 +25,24 @@ env: jobs: # Job 1: Build the static files for the documentation site build-docs: - runs-on: macos-14 # Use macOS to switch to dark mode for Plotly charts + strategy: + matrix: + os: [macos-14] # Use macOS to switch to dark mode for Plotly charts + python-version: ['3.12'] - steps: - - name: Cancel previous workflow runs - uses: n1hility/cancel-previous-runs@v2 - with: - token: ${{ secrets.GITHUB_TOKEN }} + runs-on: ${{ matrix.os }} + steps: # Without this step, GITHUB_REPOSITORY is not accessible from mkdocs.yml - name: Get GitHub repository run: echo "GITHUB_REPOSITORY=$GITHUB_REPOSITORY" >> $GITHUB_ENV - # Save the latest release version of easyscience/EasyDiffractionLib to RELEASE_VERSION + # Save the latest release version of easyscience/diffraction-lib to RELEASE_VERSION # RELEASE_VERSION is used in the mkdocs.yml file to set release_version. # The release_version is then needed to display the latest release version in the index.md file - - name: Get the latest release version of EasyDiffraction Library + - name: Get the latest release version of easydiffraction library run: | - git clone --depth 1 https://github.com/easyscience/EasyDiffractionLib . + git clone --depth 1 https://github.com/easyscience/${{ github.event.repository.name }} . git fetch --tags echo "RELEASE_VERSION=$(git describe --tags --abbrev=0)" >> $GITHUB_ENV @@ -54,16 +60,17 @@ jobs: - name: Check-out repository uses: actions/checkout@v4 - - name: Set up Python environment + - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v5 with: - python-version: '3.12' + python-version: ${{ matrix.python-version }} - name: Upgrade package installer for Python + shell: bash run: python -m pip install --upgrade pip # Install EasyDiffraction Library to run Jupyter notebooks - # Install with the 'charts' and 'docs' extras + # Install with the 'docs' and 'visualization' extras - name: Install EasyDiffraction Library and its dependencies run: python -m pip install .'[dev,docs,visualization]' @@ -112,7 +119,7 @@ jobs: # "Matplotlib is building the font cache; this may take a moment" - name: Pre-build site step run: | - export PYTHONPATH=$(pwd)/src:$PYTHONPATH + export PYTHONPATH="$(pwd)/src${PYTHONPATH:+:$PYTHONPATH}" python -c "import easydiffraction" # Create the mkdocs.yml configuration file @@ -129,7 +136,7 @@ jobs: run: | export JUPYTER_PLATFORM_DIRS=1 export PYTHONWARNINGS="ignore::RuntimeWarning" - export PYTHONPATH=$(pwd)/src:$PYTHONPATH + export PYTHONPATH="$(pwd)/src${PYTHONPATH:+:$PYTHONPATH}" mkdocs build # Set up the Pages action to configure the static files to be deployed @@ -144,8 +151,8 @@ jobs: # The artifact is then used in the next job by actions/deploy-pages to deploy the static files to GitHub Pages # Unfortunately, the artifact is not available for download, so extra steps below are needed to do similar things - name: - Upload built site as artifact for - easyscience.github.io/EasyDiffractionLib (all branches) + Upload built site as artifact for easyscience.github.io/${{ + github.event.repository.name }} (all branches) uses: actions/upload-pages-artifact@v3 with: path: site/ @@ -192,7 +199,9 @@ jobs: # https://github.com/easyscience/diffraction-lib/settings/environments # Currently, only develop and master branches are allowed to deploy to GitHub Pages # Deployed pages are available at https://easyscience.github.io/diffraction-lib - - name: Deploy to easyscience.github.io/diffraction-lib (all branches) + - name: + Deploy to easyscience.github.io/${{ github.event.repository.name }} + (all branches) uses: actions/deploy-pages@v4 # Download built site as artifact from a previous job for gh_pages (master branch) diff --git a/.github/workflows/test-code.yaml b/.github/workflows/test-code.yaml index 163d83b4..a0fa55b6 100644 --- a/.github/workflows/test-code.yaml +++ b/.github/workflows/test-code.yaml @@ -1,22 +1,21 @@ -# This is the main workflow for testing the code, notebooks and package. -# It is divided into three jobs: +# This is the main workflow for testing the code before and after +# packaging it. +# The workflow is divided into three jobs: # 1. code-quality: # - Check the validity of pyproject.toml # - Check code linting # - Check code formatting -# - Check Jupyter notebooks formatting # - Check formatting of Markdown, YAML, TOML, etc. files # 2. run-tests: -# - Test the code base and upload coverage to Codecov +# - Test the code base against the latest code in the repository # - Create the Python package # - Upload the Python package for the next job # 3. check-package: # - Download the Python package from the previous job # - Install the downloaded Python package -# - Test the code base -# - Check if Jupyter Notebooks run without errors +# - Test the code base against the installed package -name: Test code, notebooks and package +name: Test code and package on: # Trigger the workflow on push @@ -70,9 +69,13 @@ jobs: with: python-version: ${{ matrix.python-version }} + - name: Upgrade package installer for Python + shell: bash + run: python -m pip install --upgrade pip + - name: Install Python dependencies shell: bash - run: python -m pip install .'[dev,docs,visualization]' + run: python -m pip install .'[dev]' - name: Install npm dependencies # Install 'prettier' for code formatting of Markdown, YAML, etc. files @@ -117,26 +120,6 @@ jobs: echo "In project root run 'ruff format .' and commit changes to fix issues." - # Check Jupyter notebooks with nbQA in the notebooks directory - - name: Convert ${{ env.NOTEBOOKS_DIR }}/*.py to *.ipynb - shell: bash - run: | - jupytext ${{ env.NOTEBOOKS_DIR }}/*.py --from py:percent --to ipynb - nbstripout ${{ env.NOTEBOOKS_DIR }}/*.ipynb - - - name: Check Jupyter notebooks formatting - id: check_notebooks - continue-on-error: true - shell: bash - run: nbqa ruff ${{ env.NOTEBOOKS_DIR }}/ - - - name: Suggestion to fix notebook formatting issues (*.ipynb files) - if: steps.check_notebooks.outcome == 'failure' - shell: bash - run: > - echo "In project root run 'nbqa ruff ${{ env.NOTEBOOKS_DIR }}/ --fix' - and commit changes to fix issues." - # Check formatting of Markdown, YAML, TOML, etc. files with Prettier in # the project root - name: Check formatting of Markdown, YAML, TOML, etc. files @@ -157,7 +140,6 @@ jobs: steps.check_pyproject.outcome == 'failure' || steps.check_code_linting.outcome == 'failure' || steps.check_code_formatting.outcome == 'failure' || - steps.check_notebooks.outcome == 'failure' || steps.check_others_formatting.outcome == 'failure' run: exit 1 @@ -169,7 +151,7 @@ jobs: fail-fast: false matrix: os: [ubuntu-24.04, windows-2022, macos-13, macos-14] - python-version: ['3.12'] + python-version: ['3.10', '3.11', '3.12'] runs-on: ${{ matrix.os }} @@ -203,7 +185,7 @@ jobs: - name: Install Python dependencies shell: bash - run: python -m pip install .'[dev,docs,visualization]' + run: python -m pip install .'[dev]' - name: Run Python unit tests (using src/ as the source dir) shell: bash @@ -217,34 +199,6 @@ jobs: export PYTHONPATH="$(pwd)/src${PYTHONPATH:+:$PYTHONPATH}" python -m pytest tests/functional_tests/ --color=yes -n auto - # Check if tutorials as python scripts run without errors - # Run all Python scripts in the folder tutorials/ in parallel - # -n 1: run one script per Python invocation - # -P 0: run as many in parallel as you have cores (auto mode) - - name: Run tutorials as python scripts (using src/ as the source dir) - shell: bash - run: | - export PYTHONPATH="$(pwd)/src${PYTHONPATH:+:$PYTHONPATH}" - find ${{ env.NOTEBOOKS_DIR }}/ -name "*.py" | xargs -n 1 -P 0 python - - # Check if tutorials as Jupyter Notebooks run without errors - # Convert all Python scripts in the folder tutorials/ to Jupyter Notebooks - # Strip output from Jupyter Notebooks and rename cell ids - # Run all Jupyter Notebooks in the folder tutorials/ in parallel - # -n auto: run as many in parallel as you have cores (auto mode) - # --nbmake-timeout=600: set timeout to 600 seconds - - name: Convert ${{ env.NOTEBOOKS_DIR }}/*.py to *.ipynb - shell: bash - run: | - jupytext ${{ env.NOTEBOOKS_DIR }}/*.py --from py:percent --to ipynb - nbstripout ${{ env.NOTEBOOKS_DIR }}/*.ipynb - - - name: Run tutorials as Jupyter Notebooks (using src/ as the source dir) - shell: bash - run: | - export PYTHONPATH="$(pwd)/src${PYTHONPATH:+:$PYTHONPATH}" - python -m pytest --nbmake ${{ env.NOTEBOOKS_DIR }}/ --nbmake-timeout=600 --color=yes -n auto - - name: Create Python package for the next job shell: bash run: python -m build --wheel --outdir dist @@ -265,14 +219,14 @@ jobs: compression-level: 0 # Job 3: Test the package - check-package: + test-package: needs: run-tests # the previous job needs to be finished first strategy: fail-fast: false matrix: os: [ubuntu-24.04, windows-2022, macos-13, macos-14] - python-version: ['3.12'] + python-version: ['3.10', '3.11', '3.12'] runs-on: ${{ matrix.os }} @@ -315,8 +269,7 @@ jobs: - name: Install Python package from previous job with all extras shell: bash run: > - pip install 'easydiffraction[dev,docs,visualization]' - --find-links=dist + pip install 'easydiffraction[dev]' --find-links=dist - name: Run Python unit tests (using installed package) shell: bash @@ -325,13 +278,3 @@ jobs: - name: Run Python functional tests (using installed package) shell: bash run: python -m pytest tests/functional_tests/ --color=yes -n auto - - - name: Run tutorials as python scripts (using installed package) - shell: bash - run: find tutorials/ -name "*.py" | xargs -n 1 -P 0 python - - - name: Run tutorials as Jupyter Notebooks (using installed package) - shell: bash - run: > - python -m pytest --nbmake ${{ env.NOTEBOOKS_DIR }}/ - --nbmake-timeout=600 --color=yes -n auto diff --git a/.github/workflows/test-tutorials.yaml b/.github/workflows/test-tutorials.yaml index 49a015ce..364012e4 100644 --- a/.github/workflows/test-tutorials.yaml +++ b/.github/workflows/test-tutorials.yaml @@ -1,14 +1,27 @@ name: Test tutorials on: + # Trigger the workflow on push + push: + # Every branch + branches: + - '**' + # But do not run this workflow on creating a new tag starting with + # 'v', e.g. 'v1.0.3' (see publish-pypi.yml) + tags-ignore: + - 'v*' + # Trigger the workflow on pull request + pull_request: + branches: + - '**' # Trigger the workflow on a schedule (every day at midnight) schedule: - cron: '0 0 * * *' # Allows you to run this workflow manually from the Actions tab workflow_dispatch: -# Allow only one concurrent workflow, skipping runs queued between the run in-progress and latest queued. -# And cancel in-progress runs. +# Allow only one concurrent workflow, skipping runs queued between the run +# in-progress and latest queued. And cancel in-progress runs. concurrency: group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} @@ -17,15 +30,68 @@ concurrency: env: # Set the environment variables to be used in all jobs defined in this workflow # Set the CI_BRANCH environment variable to be the branch name + # Set the NOTEBOOKS_DIR environment var to be the dir of Jupyter notebooks CI_BRANCH: ${{ github.head_ref || github.ref_name }} + NOTEBOOKS_DIR: tutorials jobs: + # Job 1: Check code quality and consistency + code-quality: + strategy: + matrix: + os: [ubuntu-latest] + python-version: ['3.12'] + + runs-on: ${{ matrix.os }} + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python-version }} + + - name: Upgrade package installer for Python + shell: bash + run: python -m pip install --upgrade pip + + - name: Install Python dependencies + shell: bash + run: python -m pip install .'[dev]' + + # Check Jupyter notebooks with nbQA in the tutorials directory + - name: Convert ${{ env.NOTEBOOKS_DIR }}/*.py to *.ipynb + shell: bash + run: | + jupytext ${{ env.NOTEBOOKS_DIR }}/*.py --from py:percent --to ipynb + nbstripout ${{ env.NOTEBOOKS_DIR }}/*.ipynb + + - name: Check Jupyter notebooks formatting + id: check_notebooks + continue-on-error: true + shell: bash + run: nbqa ruff ${{ env.NOTEBOOKS_DIR }}/ + + - name: Suggestion to fix notebook formatting issues (*.ipynb files) + if: steps.check_notebooks.outcome == 'failure' + shell: bash + run: > + echo "In project root run 'nbqa ruff ${{ env.NOTEBOOKS_DIR }}/ --fix' + and commit changes to fix issues." + + - name: Force fail if the previous step failed + if: steps.check_notebooks.outcome == 'failure' + run: exit 1 + + # Job 2: Test tutorials as Python scripts and Jupyter Notebooks test-tutorials: strategy: fail-fast: false matrix: - os: [ubuntu-24.04, macos-14] - python-version: ['3.12'] + os: [ubuntu-24.04, windows-2022, macos-13, macos-14] + python-version: ['3.10', '3.11', '3.12'] runs-on: ${{ matrix.os }} @@ -42,9 +108,22 @@ jobs: shell: bash run: python -m pip install --upgrade pip + - name: Set up conda (Windows only) + if: runner.os == 'Windows' + uses: s-weigand/setup-conda@v1 + with: + update-conda: true + python-version: ${{ matrix.python-version }} + conda-channels: conda-forge + + - name: Install libcblas for pdffit (Windows only) + if: runner.os == 'Windows' + shell: bash + run: conda install -y -c conda-forge libcblas + - name: Install Python dependencies shell: bash - run: python -m pip install .'[dev,docs,visualization]' + run: python -m pip install .'[dev]' # Check if tutorials as python scripts run without errors # Run all Python scripts in the folder tutorials/ in parallel @@ -54,7 +133,7 @@ jobs: shell: bash run: | export PYTHONPATH="$(pwd)/src${PYTHONPATH:+:$PYTHONPATH}" - find tutorials/ -name "*.py" | xargs -n 1 -P 0 python + find ${{ env.NOTEBOOKS_DIR }}/ -name "*.py" | xargs -n 1 -P 0 python # Check if tutorials as Jupyter Notebooks run without errors # Convert all Python scripts in the folder tutorials/ to Jupyter Notebooks @@ -62,10 +141,14 @@ jobs: # Run all Jupyter Notebooks in the folder tutorials/ in parallel # -n auto: run as many in parallel as you have cores (auto mode) # --nbmake-timeout=600: set timeout to 600 seconds - - name: Run tutorials as Jupyter Notebooks + - name: Convert ${{ env.NOTEBOOKS_DIR }}/*.py to *.ipynb + shell: bash + run: | + jupytext ${{ env.NOTEBOOKS_DIR }}/*.py --from py:percent --to ipynb + nbstripout ${{ env.NOTEBOOKS_DIR }}/*.ipynb + + - name: Run tutorials as Jupyter Notebooks (using src/ as the source dir) shell: bash run: | export PYTHONPATH="$(pwd)/src${PYTHONPATH:+:$PYTHONPATH}" - jupytext tutorials/*.py --from py:percent --to ipynb - nbstripout tutorials/*.ipynb - python -m pytest --nbmake tutorials/ --nbmake-timeout=600 --color=yes -n auto + python -m pytest --nbmake ${{ env.NOTEBOOKS_DIR }}/ --nbmake-timeout=600 --color=yes -n auto From 42cd538b5d2d370092853c44450111ebd7a58148 Mon Sep 17 00:00:00 2001 From: Andrew Sazonov Date: Sat, 9 Aug 2025 22:12:27 +0200 Subject: [PATCH 35/43] Refines workflows and dependencies handling --- .github/workflows/build-docs.yml | 2 +- .github/workflows/publish-pypi.yml | 1 - .github/workflows/scan-security.yml | 1 - .github/workflows/test-code.yaml | 13 ++++------ .github/workflows/test-tutorials.yaml | 10 +++++--- pyproject.toml | 37 +++++++++++---------------- 6 files changed, 28 insertions(+), 36 deletions(-) diff --git a/.github/workflows/build-docs.yml b/.github/workflows/build-docs.yml index 79b73929..c104a841 100644 --- a/.github/workflows/build-docs.yml +++ b/.github/workflows/build-docs.yml @@ -28,7 +28,7 @@ jobs: strategy: matrix: os: [macos-14] # Use macOS to switch to dark mode for Plotly charts - python-version: ['3.12'] + python-version: ['3.13'] runs-on: ${{ matrix.os }} diff --git a/.github/workflows/publish-pypi.yml b/.github/workflows/publish-pypi.yml index 3d2d9d14..c4e702f7 100644 --- a/.github/workflows/publish-pypi.yml +++ b/.github/workflows/publish-pypi.yml @@ -8,7 +8,6 @@ on: push: tags: - 'v*' - # Allows you to run this workflow manually from the Actions tab workflow_dispatch: diff --git a/.github/workflows/scan-security.yml b/.github/workflows/scan-security.yml index 7815a510..c391849e 100644 --- a/.github/workflows/scan-security.yml +++ b/.github/workflows/scan-security.yml @@ -7,7 +7,6 @@ name: Scan security (static analysis) on: # Runs on pull requests pull_request: - # Allows you to run this workflow manually from the Actions tab workflow_dispatch: diff --git a/.github/workflows/test-code.yaml b/.github/workflows/test-code.yaml index 8568c9f8..ffd4373b 100644 --- a/.github/workflows/test-code.yaml +++ b/.github/workflows/test-code.yaml @@ -47,7 +47,6 @@ env: # Set the NOTEBOOKS_DIR environment var to be the dir of Jupyter notebooks CI_BRANCH: ${{ github.head_ref || github.ref_name }} NOTEBOOKS_DIR: tutorials - PYTHONIOENCODING: utf-8 jobs: # Job 1: Check code quality and consistency @@ -55,15 +54,13 @@ jobs: strategy: matrix: os: [ubuntu-latest] - python-version: ['3.12'] + python-version: ['3.13'] runs-on: ${{ matrix.os }} steps: - name: Checkout repository uses: actions/checkout@v4 - with: - fetch-depth: '0' # full history with tags to get the version number by versioningit - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v5 @@ -152,7 +149,7 @@ jobs: fail-fast: false matrix: os: [ubuntu-24.04, windows-2022, macos-13, macos-14] - python-version: ['3.10', '3.11', '3.12'] + python-version: ['3.11', '3.12', '3.13'] runs-on: ${{ matrix.os }} @@ -186,7 +183,7 @@ jobs: - name: Install Python dependencies shell: bash - run: python -m pip install .'[dev]' + run: python -m pip install .'[dev,visualization]' - name: Run Python unit tests (using src/ as the source dir) shell: bash @@ -227,7 +224,7 @@ jobs: fail-fast: false matrix: os: [ubuntu-24.04, windows-2022, macos-13, macos-14] - python-version: ['3.10', '3.11', '3.12'] + python-version: ['3.11', '3.12', '3.13'] runs-on: ${{ matrix.os }} @@ -270,7 +267,7 @@ jobs: - name: Install Python package from previous job with all extras shell: bash run: > - pip install 'easydiffraction[dev]' --find-links=dist + pip install 'easydiffraction[dev,visualization]' --find-links=dist - name: Run Python unit tests (using installed package) shell: bash diff --git a/.github/workflows/test-tutorials.yaml b/.github/workflows/test-tutorials.yaml index 364012e4..14ffe159 100644 --- a/.github/workflows/test-tutorials.yaml +++ b/.github/workflows/test-tutorials.yaml @@ -31,8 +31,10 @@ env: # Set the environment variables to be used in all jobs defined in this workflow # Set the CI_BRANCH environment variable to be the branch name # Set the NOTEBOOKS_DIR environment var to be the dir of Jupyter notebooks + # Set PYTHONIOENCODING to utf-8 to avoid encoding issues on Windows CI_BRANCH: ${{ github.head_ref || github.ref_name }} NOTEBOOKS_DIR: tutorials + PYTHONIOENCODING: utf-8 jobs: # Job 1: Check code quality and consistency @@ -40,7 +42,7 @@ jobs: strategy: matrix: os: [ubuntu-latest] - python-version: ['3.12'] + python-version: ['3.13'] runs-on: ${{ matrix.os }} @@ -87,11 +89,13 @@ jobs: # Job 2: Test tutorials as Python scripts and Jupyter Notebooks test-tutorials: + needs: code-quality # previous job needs to be finished first + strategy: fail-fast: false matrix: os: [ubuntu-24.04, windows-2022, macos-13, macos-14] - python-version: ['3.10', '3.11', '3.12'] + python-version: ['3.11', '3.12', '3.13'] runs-on: ${{ matrix.os }} @@ -123,7 +127,7 @@ jobs: - name: Install Python dependencies shell: bash - run: python -m pip install .'[dev]' + run: python -m pip install .'[dev,visualization]' # Check if tutorials as python scripts run without errors # Run all Python scripts in the folder tutorials/ in parallel diff --git a/pyproject.toml b/pyproject.toml index 02234b0b..ea48009e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -21,29 +21,22 @@ classifiers = [ "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", ] -requires-python = '>=3.10,<=3.13' +requires-python = '>=3.11,<3.14' dependencies = [ - 'colorama', # Color terminal output - 'tabulate', # Pretty-print tabular data for terminal output - 'asciichartpy', # ASCII charts for terminal output - - 'pooch', # Data downloader - - 'varname', # Variable name introspection - - 'asteval', # An expression evaluator for Python - - 'scipy', # Scientific computing library - 'sympy', # Symbolic mathematics library - - 'lmfit', # Non-linear optimization and curve fitting - 'bumps', # Non-linear optimization and curve fitting - 'dfo-ls', # Non-linear optimization and curve fitting - - 'gemmi', # Crystallography library - + 'colorama', # Color terminal output + 'tabulate', # Pretty-print tabular data for terminal output + 'asciichartpy', # ASCII charts for terminal output + 'pooch', # Data downloader + 'varname', # Variable name introspection + 'asteval', # An expression evaluator for Python + 'scipy', # Scientific computing library + 'sympy', # Symbolic mathematics library + 'lmfit', # Non-linear optimization and curve fitting + 'bumps', # Non-linear optimization and curve fitting + 'dfo-ls', # Non-linear optimization and curve fitting + 'gemmi', # Crystallography library 'cryspy', # Calculations of diffraction patterns - 'diffpy.pdffit2', # Calculations of Pair Distribution Function (PDF) + 'diffpy.pdffit2', # Calculations of Pair Distribution Function (PDF), Python >=3.11,<3.14 'diffpy.utils', # Utilities for PDF calculations ] @@ -60,6 +53,7 @@ dev = [ 'ruff', # Linting and formatting code 'validate-pyproject[all]', # Validate pyproject.toml 'versioningit', # Automatic versioning from git tags + 'jupytext', # Jupyter notebook text format support ] docs = [ 'mkdocs', # Static site generator @@ -70,7 +64,6 @@ docs = [ 'mkdocs-markdownextradata-plugin', # MkDocs: Markdown extra data support, such as global variables 'mkdocstrings-python', # MkDocs: Python docstring support 'pyyaml', # YAML parser - 'jupytext', # Jupyter notebook text format support ] visualization = [ 'darkdetect', # Detecting dark mode From fcdf157e32a5621094b35100276ce96e520ee414 Mon Sep 17 00:00:00 2001 From: Andrew Sazonov Date: Mon, 11 Aug 2025 10:33:13 +0200 Subject: [PATCH 36/43] Adds file overwrite option to download utility --- src/easydiffraction/utils/utils.py | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/src/easydiffraction/utils/utils.py b/src/easydiffraction/utils/utils.py index 35d6c55e..3ba9956b 100644 --- a/src/easydiffraction/utils/utils.py +++ b/src/easydiffraction/utils/utils.py @@ -18,6 +18,7 @@ except ImportError: IPython = None +from easydiffraction.utils.formatting import warning # Single source of truth for the data repository branch. # This can be overridden in CI or development environments. @@ -31,6 +32,7 @@ def download_from_repository( file_name: str, branch: str | None = None, destination: str = 'data', + overwrite: bool = False, ) -> None: """Download a data file from the EasyDiffraction repository on GitHub. @@ -38,11 +40,21 @@ def download_from_repository( file_name: The file name to fetch (e.g., "NaCl.gr"). branch: Branch to fetch from. If None, uses DATA_REPO_BRANCH. destination: Directory to save the file into (created if missing). + overwrite: Whether to overwrite the file if it already exists. Defaults to False. """ + file_path = os.path.join(destination, file_name) + if os.path.exists(file_path): + if not overwrite: + print(warning(f"File '{file_path}' already exists and will not be overwritten.")) + return + else: + print(warning(f"File '{file_path}' already exists and will be overwritten.")) + os.remove(file_path) + base = 'https://raw.githubusercontent.com' org = 'easyscience' repo = 'diffraction-lib' - branch = branch or DATA_REPO_BRANCH # Use the global branch variable if not provided + branch = 'docs' # branch or DATA_REPO_BRANCH # Use the global branch variable if not provided path_in_repo = 'tutorials/data' url = f'{base}/{org}/{repo}/refs/heads/{branch}/{path_in_repo}/{file_name}' @@ -130,7 +142,13 @@ def make_formatter(align): formatters = {col: make_formatter(align) for col, align in zip(columns_headers, columns_alignment)} # Convert DataFrame to HTML - html = df.to_html(escape=False, index=show_index, formatters=formatters, border=0, header=not skip_headers) + html = df.to_html( + escape=False, + index=show_index, + formatters=formatters, + border=0, + header=not skip_headers, + ) # Add inline CSS to align the entire table to the left and show border html = html.replace( From 6dfbadede024986742b5f330811730ac7fdfc2a4 Mon Sep 17 00:00:00 2001 From: Andrew Sazonov Date: Mon, 11 Aug 2025 10:34:21 +0200 Subject: [PATCH 37/43] Updates tutorials --- ...ced_joint-fit_pd-neut-xray-cwl_PbSO4.ipynb | 145 +++--- ...vanced_joint-fit_pd-neut-xray-cwl_PbSO4.py | 12 + ...sic_single-fit_pd-neut-cwl_LBCO-HRPT.ipynb | 381 ++++++++-------- .../basic_single-fit_pd-neut-cwl_LBCO-HRPT.py | 12 + .../cryst-struct_pd-neut-cwl_CoSiO4-D20.ipynb | 141 +++--- .../cryst-struct_pd-neut-cwl_CoSiO4-D20.py | 12 + .../cryst-struct_pd-neut-cwl_HS-HRPT.ipynb | 185 ++++---- tutorials/cryst-struct_pd-neut-cwl_HS-HRPT.py | 12 + .../cryst-struct_pd-neut-tof_Si-SEPD.ipynb | 173 ++++---- tutorials/cryst-struct_pd-neut-tof_Si-SEPD.py | 12 + ...ruct_pd-neut-tof_multidata_NCAF-WISH.ipynb | 213 +++++---- ...-struct_pd-neut-tof_multidata_NCAF-WISH.py | 12 + ...d-neut-tof_multiphase-LBCO-Si_McStas.ipynb | 151 ++++--- ...t_pd-neut-tof_multiphase-LBCO-Si_McStas.py | 12 + ...ool-2025_analysis-powder-diffraction.ipynb | 420 ++++++++++-------- ...school-2025_analysis-powder-diffraction.py | 117 ++--- tutorials/pdf_pd-neut-cwl_Ni.ipynb | 61 ++- tutorials/pdf_pd-neut-cwl_Ni.py | 12 + tutorials/pdf_pd-neut-tof_Si-NOMAD.ipynb | 61 ++- tutorials/pdf_pd-neut-tof_Si-NOMAD.py | 12 + tutorials/pdf_pd-xray_NaCl.ipynb | 69 ++- tutorials/pdf_pd-xray_NaCl.py | 12 + ...ick_single-fit_pd-neut-cwl_LBCO-HRPT.ipynb | 69 ++- .../quick_single-fit_pd-neut-cwl_LBCO-HRPT.py | 12 + 24 files changed, 1373 insertions(+), 945 deletions(-) diff --git a/tutorials/advanced_joint-fit_pd-neut-xray-cwl_PbSO4.ipynb b/tutorials/advanced_joint-fit_pd-neut-xray-cwl_PbSO4.ipynb index 9090d322..5534d395 100644 --- a/tutorials/advanced_joint-fit_pd-neut-xray-cwl_PbSO4.ipynb +++ b/tutorials/advanced_joint-fit_pd-neut-xray-cwl_PbSO4.ipynb @@ -29,6 +29,29 @@ "cell_type": "code", "execution_count": null, "id": "2", + "metadata": { + "tags": [ + "hide_in_docs" + ] + }, + "outputs": [], + "source": [ + "# Check if the easydiffraction library is installed.\n", + "# If not, install it including the 'visualization' extras.\n", + "# This is needed, e.g., when running this as a notebook via Google Colab.\n", + "import builtins\n", + "import importlib.util\n", + "\n", + "if hasattr(builtins, '__IPYTHON__'):\n", + " if importlib.util.find_spec('easydiffraction') is None:\n", + " print('Installing the easydiffraction library...')\n", + " # !pip install 'easydiffraction[visualization]'" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3", "metadata": {}, "outputs": [], "source": [ @@ -40,7 +63,7 @@ }, { "cell_type": "markdown", - "id": "3", + "id": "4", "metadata": {}, "source": [ "## Define Sample Model\n", @@ -53,7 +76,7 @@ { "cell_type": "code", "execution_count": null, - "id": "4", + "id": "5", "metadata": {}, "outputs": [], "source": [ @@ -62,7 +85,7 @@ }, { "cell_type": "markdown", - "id": "5", + "id": "6", "metadata": {}, "source": [ "#### Set Space Group" @@ -71,7 +94,7 @@ { "cell_type": "code", "execution_count": null, - "id": "6", + "id": "7", "metadata": {}, "outputs": [], "source": [ @@ -80,7 +103,7 @@ }, { "cell_type": "markdown", - "id": "7", + "id": "8", "metadata": {}, "source": [ "#### Set Unit Cell" @@ -89,7 +112,7 @@ { "cell_type": "code", "execution_count": null, - "id": "8", + "id": "9", "metadata": {}, "outputs": [], "source": [ @@ -100,7 +123,7 @@ }, { "cell_type": "markdown", - "id": "9", + "id": "10", "metadata": {}, "source": [ "#### Set Atom Sites" @@ -109,7 +132,7 @@ { "cell_type": "code", "execution_count": null, - "id": "10", + "id": "11", "metadata": { "lines_to_next_cell": 2 }, @@ -124,7 +147,7 @@ }, { "cell_type": "markdown", - "id": "11", + "id": "12", "metadata": {}, "source": [ "## Define Experiments\n", @@ -140,7 +163,7 @@ { "cell_type": "code", "execution_count": null, - "id": "12", + "id": "13", "metadata": {}, "outputs": [], "source": [ @@ -149,7 +172,7 @@ }, { "cell_type": "markdown", - "id": "13", + "id": "14", "metadata": {}, "source": [ "#### Create Experiment" @@ -158,7 +181,7 @@ { "cell_type": "code", "execution_count": null, - "id": "14", + "id": "15", "metadata": {}, "outputs": [], "source": [ @@ -167,7 +190,7 @@ }, { "cell_type": "markdown", - "id": "15", + "id": "16", "metadata": {}, "source": [ "#### Set Instrument" @@ -176,7 +199,7 @@ { "cell_type": "code", "execution_count": null, - "id": "16", + "id": "17", "metadata": {}, "outputs": [], "source": [ @@ -186,7 +209,7 @@ }, { "cell_type": "markdown", - "id": "17", + "id": "18", "metadata": {}, "source": [ "#### Set Peak Profile" @@ -195,7 +218,7 @@ { "cell_type": "code", "execution_count": null, - "id": "18", + "id": "19", "metadata": {}, "outputs": [], "source": [ @@ -208,7 +231,7 @@ }, { "cell_type": "markdown", - "id": "19", + "id": "20", "metadata": {}, "source": [ "#### Set Background" @@ -216,7 +239,7 @@ }, { "cell_type": "markdown", - "id": "20", + "id": "21", "metadata": {}, "source": [ "Select the background type." @@ -225,7 +248,7 @@ { "cell_type": "code", "execution_count": null, - "id": "21", + "id": "22", "metadata": {}, "outputs": [], "source": [ @@ -234,7 +257,7 @@ }, { "cell_type": "markdown", - "id": "22", + "id": "23", "metadata": {}, "source": [ "Add background points." @@ -243,7 +266,7 @@ { "cell_type": "code", "execution_count": null, - "id": "23", + "id": "24", "metadata": {}, "outputs": [], "source": [ @@ -262,7 +285,7 @@ }, { "cell_type": "markdown", - "id": "24", + "id": "25", "metadata": {}, "source": [ "#### Set Linked Phases" @@ -271,7 +294,7 @@ { "cell_type": "code", "execution_count": null, - "id": "25", + "id": "26", "metadata": {}, "outputs": [], "source": [ @@ -280,7 +303,7 @@ }, { "cell_type": "markdown", - "id": "26", + "id": "27", "metadata": {}, "source": [ "### Experiment 2: xrd\n", @@ -291,7 +314,7 @@ { "cell_type": "code", "execution_count": null, - "id": "27", + "id": "28", "metadata": {}, "outputs": [], "source": [ @@ -300,7 +323,7 @@ }, { "cell_type": "markdown", - "id": "28", + "id": "29", "metadata": {}, "source": [ "#### Create Experiment" @@ -309,7 +332,7 @@ { "cell_type": "code", "execution_count": null, - "id": "29", + "id": "30", "metadata": {}, "outputs": [], "source": [ @@ -318,7 +341,7 @@ }, { "cell_type": "markdown", - "id": "30", + "id": "31", "metadata": {}, "source": [ "#### Set Instrument" @@ -327,7 +350,7 @@ { "cell_type": "code", "execution_count": null, - "id": "31", + "id": "32", "metadata": {}, "outputs": [], "source": [ @@ -337,7 +360,7 @@ }, { "cell_type": "markdown", - "id": "32", + "id": "33", "metadata": {}, "source": [ "#### Set Peak Profile" @@ -346,7 +369,7 @@ { "cell_type": "code", "execution_count": null, - "id": "33", + "id": "34", "metadata": {}, "outputs": [], "source": [ @@ -359,7 +382,7 @@ }, { "cell_type": "markdown", - "id": "34", + "id": "35", "metadata": {}, "source": [ "#### Set Background" @@ -367,7 +390,7 @@ }, { "cell_type": "markdown", - "id": "35", + "id": "36", "metadata": {}, "source": [ "Select background type." @@ -376,7 +399,7 @@ { "cell_type": "code", "execution_count": null, - "id": "36", + "id": "37", "metadata": {}, "outputs": [], "source": [ @@ -385,7 +408,7 @@ }, { "cell_type": "markdown", - "id": "37", + "id": "38", "metadata": {}, "source": [ "Add background points." @@ -394,7 +417,7 @@ { "cell_type": "code", "execution_count": null, - "id": "38", + "id": "39", "metadata": {}, "outputs": [], "source": [ @@ -411,7 +434,7 @@ }, { "cell_type": "markdown", - "id": "39", + "id": "40", "metadata": {}, "source": [ "#### Set Linked Phases" @@ -420,7 +443,7 @@ { "cell_type": "code", "execution_count": null, - "id": "40", + "id": "41", "metadata": {}, "outputs": [], "source": [ @@ -429,7 +452,7 @@ }, { "cell_type": "markdown", - "id": "41", + "id": "42", "metadata": {}, "source": [ "## Define Project\n", @@ -442,7 +465,7 @@ { "cell_type": "code", "execution_count": null, - "id": "42", + "id": "43", "metadata": {}, "outputs": [], "source": [ @@ -451,7 +474,7 @@ }, { "cell_type": "markdown", - "id": "43", + "id": "44", "metadata": {}, "source": [ "#### Add Sample Model" @@ -460,7 +483,7 @@ { "cell_type": "code", "execution_count": null, - "id": "44", + "id": "45", "metadata": {}, "outputs": [], "source": [ @@ -469,7 +492,7 @@ }, { "cell_type": "markdown", - "id": "45", + "id": "46", "metadata": {}, "source": [ "#### Add Experiments" @@ -478,7 +501,7 @@ { "cell_type": "code", "execution_count": null, - "id": "46", + "id": "47", "metadata": {}, "outputs": [], "source": [ @@ -488,7 +511,7 @@ }, { "cell_type": "markdown", - "id": "47", + "id": "48", "metadata": {}, "source": [ "## Perform Analysis\n", @@ -501,7 +524,7 @@ { "cell_type": "code", "execution_count": null, - "id": "48", + "id": "49", "metadata": {}, "outputs": [], "source": [ @@ -510,7 +533,7 @@ }, { "cell_type": "markdown", - "id": "49", + "id": "50", "metadata": {}, "source": [ "#### Set Fit Mode" @@ -519,7 +542,7 @@ { "cell_type": "code", "execution_count": null, - "id": "50", + "id": "51", "metadata": {}, "outputs": [], "source": [ @@ -528,7 +551,7 @@ }, { "cell_type": "markdown", - "id": "51", + "id": "52", "metadata": {}, "source": [ "#### Set Minimizer" @@ -537,7 +560,7 @@ { "cell_type": "code", "execution_count": null, - "id": "52", + "id": "53", "metadata": {}, "outputs": [], "source": [ @@ -546,7 +569,7 @@ }, { "cell_type": "markdown", - "id": "53", + "id": "54", "metadata": {}, "source": [ "#### Set Fitting Parameters\n", @@ -557,7 +580,7 @@ { "cell_type": "code", "execution_count": null, - "id": "54", + "id": "55", "metadata": {}, "outputs": [], "source": [ @@ -568,7 +591,7 @@ }, { "cell_type": "markdown", - "id": "55", + "id": "56", "metadata": {}, "source": [ "Set experiment parameters to be optimized." @@ -577,7 +600,7 @@ { "cell_type": "code", "execution_count": null, - "id": "56", + "id": "57", "metadata": {}, "outputs": [], "source": [ @@ -594,7 +617,7 @@ { "cell_type": "code", "execution_count": null, - "id": "57", + "id": "58", "metadata": {}, "outputs": [], "source": [ @@ -613,7 +636,7 @@ }, { "cell_type": "markdown", - "id": "58", + "id": "59", "metadata": {}, "source": [ "#### Perform Fit" @@ -622,7 +645,7 @@ { "cell_type": "code", "execution_count": null, - "id": "59", + "id": "60", "metadata": {}, "outputs": [], "source": [ @@ -631,7 +654,7 @@ }, { "cell_type": "markdown", - "id": "60", + "id": "61", "metadata": {}, "source": [ "#### Plot Measured vs Calculated" @@ -640,7 +663,7 @@ { "cell_type": "code", "execution_count": null, - "id": "61", + "id": "62", "metadata": {}, "outputs": [], "source": [ @@ -650,7 +673,7 @@ { "cell_type": "code", "execution_count": null, - "id": "62", + "id": "63", "metadata": {}, "outputs": [], "source": [ @@ -660,7 +683,7 @@ ], "metadata": { "jupytext": { - "cell_metadata_filter": "-all", + "cell_metadata_filter": "tags,-all", "main_language": "python", "notebook_metadata_filter": "-all" } diff --git a/tutorials/advanced_joint-fit_pd-neut-xray-cwl_PbSO4.py b/tutorials/advanced_joint-fit_pd-neut-xray-cwl_PbSO4.py index a1327c82..50eb5184 100644 --- a/tutorials/advanced_joint-fit_pd-neut-xray-cwl_PbSO4.py +++ b/tutorials/advanced_joint-fit_pd-neut-xray-cwl_PbSO4.py @@ -13,6 +13,18 @@ # %% [markdown] # ## Import Library +# %% tags=["hide_in_docs"] +# Check if the easydiffraction library is installed. +# If not, install it including the 'visualization' extras. +# This is needed, e.g., when running this as a notebook via Google Colab. +import builtins +import importlib.util + +if hasattr(builtins, '__IPYTHON__'): + if importlib.util.find_spec('easydiffraction') is None: + print('Installing the easydiffraction library...') + # !pip install 'easydiffraction[visualization]' + # %% from easydiffraction import Experiment from easydiffraction import Project diff --git a/tutorials/basic_single-fit_pd-neut-cwl_LBCO-HRPT.ipynb b/tutorials/basic_single-fit_pd-neut-cwl_LBCO-HRPT.ipynb index 28c9e229..1f262e1b 100644 --- a/tutorials/basic_single-fit_pd-neut-cwl_LBCO-HRPT.ipynb +++ b/tutorials/basic_single-fit_pd-neut-cwl_LBCO-HRPT.ipynb @@ -35,6 +35,29 @@ "cell_type": "code", "execution_count": null, "id": "2", + "metadata": { + "tags": [ + "hide_in_docs" + ] + }, + "outputs": [], + "source": [ + "# Check if the easydiffraction library is installed.\n", + "# If not, install it including the 'visualization' extras.\n", + "# This is needed, e.g., when running this as a notebook via Google Colab.\n", + "import builtins\n", + "import importlib.util\n", + "\n", + "if hasattr(builtins, '__IPYTHON__'):\n", + " if importlib.util.find_spec('easydiffraction') is None:\n", + " print('Installing the easydiffraction library...')\n", + " # !pip install 'easydiffraction[visualization]'" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3", "metadata": {}, "outputs": [], "source": [ @@ -43,7 +66,7 @@ }, { "cell_type": "markdown", - "id": "3", + "id": "4", "metadata": {}, "source": [ "## Step 1: Create a Project\n", @@ -53,7 +76,7 @@ }, { "cell_type": "markdown", - "id": "4", + "id": "5", "metadata": {}, "source": [ "#### Create Project" @@ -62,7 +85,7 @@ { "cell_type": "code", "execution_count": null, - "id": "5", + "id": "6", "metadata": {}, "outputs": [], "source": [ @@ -71,7 +94,7 @@ }, { "cell_type": "markdown", - "id": "6", + "id": "7", "metadata": {}, "source": [ "#### Set Project Metadata" @@ -80,7 +103,7 @@ { "cell_type": "code", "execution_count": null, - "id": "7", + "id": "8", "metadata": {}, "outputs": [], "source": [ @@ -93,7 +116,7 @@ }, { "cell_type": "markdown", - "id": "8", + "id": "9", "metadata": {}, "source": [ "#### Show Project Metadata as CIF" @@ -102,7 +125,7 @@ { "cell_type": "code", "execution_count": null, - "id": "9", + "id": "10", "metadata": {}, "outputs": [], "source": [ @@ -111,7 +134,7 @@ }, { "cell_type": "markdown", - "id": "10", + "id": "11", "metadata": {}, "source": [ "#### Save Project\n", @@ -124,7 +147,7 @@ { "cell_type": "code", "execution_count": null, - "id": "11", + "id": "12", "metadata": {}, "outputs": [], "source": [ @@ -133,7 +156,7 @@ }, { "cell_type": "markdown", - "id": "12", + "id": "13", "metadata": {}, "source": [ "#### Set Up Data Plotter" @@ -141,7 +164,7 @@ }, { "cell_type": "markdown", - "id": "13", + "id": "14", "metadata": {}, "source": [ "Show supported plotting engines." @@ -150,7 +173,7 @@ { "cell_type": "code", "execution_count": null, - "id": "14", + "id": "15", "metadata": {}, "outputs": [], "source": [ @@ -159,7 +182,7 @@ }, { "cell_type": "markdown", - "id": "15", + "id": "16", "metadata": {}, "source": [ "Show current plotting configuration." @@ -168,7 +191,7 @@ { "cell_type": "code", "execution_count": null, - "id": "16", + "id": "17", "metadata": {}, "outputs": [], "source": [ @@ -177,7 +200,7 @@ }, { "cell_type": "markdown", - "id": "17", + "id": "18", "metadata": {}, "source": [ "Set plotting engine." @@ -186,7 +209,7 @@ { "cell_type": "code", "execution_count": null, - "id": "18", + "id": "19", "metadata": {}, "outputs": [], "source": [ @@ -195,7 +218,7 @@ }, { "cell_type": "markdown", - "id": "19", + "id": "20", "metadata": {}, "source": [ "## Step 2: Define Sample Model\n", @@ -205,7 +228,7 @@ }, { "cell_type": "markdown", - "id": "20", + "id": "21", "metadata": {}, "source": [ "#### Add Sample Model" @@ -214,7 +237,7 @@ { "cell_type": "code", "execution_count": null, - "id": "21", + "id": "22", "metadata": {}, "outputs": [], "source": [ @@ -223,7 +246,7 @@ }, { "cell_type": "markdown", - "id": "22", + "id": "23", "metadata": {}, "source": [ "#### Show Defined Sample Models\n", @@ -236,7 +259,7 @@ { "cell_type": "code", "execution_count": null, - "id": "23", + "id": "24", "metadata": {}, "outputs": [], "source": [ @@ -245,7 +268,7 @@ }, { "cell_type": "markdown", - "id": "24", + "id": "25", "metadata": {}, "source": [ "#### Set Space Group\n", @@ -256,7 +279,7 @@ { "cell_type": "code", "execution_count": null, - "id": "25", + "id": "26", "metadata": {}, "outputs": [], "source": [ @@ -266,7 +289,7 @@ }, { "cell_type": "markdown", - "id": "26", + "id": "27", "metadata": {}, "source": [ "#### Set Unit Cell\n", @@ -277,7 +300,7 @@ { "cell_type": "code", "execution_count": null, - "id": "27", + "id": "28", "metadata": {}, "outputs": [], "source": [ @@ -286,7 +309,7 @@ }, { "cell_type": "markdown", - "id": "28", + "id": "29", "metadata": {}, "source": [ "#### Set Atom Sites\n", @@ -297,7 +320,7 @@ { "cell_type": "code", "execution_count": null, - "id": "29", + "id": "30", "metadata": {}, "outputs": [], "source": [ @@ -343,7 +366,7 @@ }, { "cell_type": "markdown", - "id": "30", + "id": "31", "metadata": {}, "source": [ "#### Apply Symmetry Constraints" @@ -352,7 +375,7 @@ { "cell_type": "code", "execution_count": null, - "id": "31", + "id": "32", "metadata": {}, "outputs": [], "source": [ @@ -361,7 +384,7 @@ }, { "cell_type": "markdown", - "id": "32", + "id": "33", "metadata": {}, "source": [ "#### Show Sample Model as CIF" @@ -370,7 +393,7 @@ { "cell_type": "code", "execution_count": null, - "id": "33", + "id": "34", "metadata": {}, "outputs": [], "source": [ @@ -379,7 +402,7 @@ }, { "cell_type": "markdown", - "id": "34", + "id": "35", "metadata": {}, "source": [ "#### Show Sample Model Structure" @@ -388,7 +411,7 @@ { "cell_type": "code", "execution_count": null, - "id": "35", + "id": "36", "metadata": {}, "outputs": [], "source": [ @@ -397,7 +420,7 @@ }, { "cell_type": "markdown", - "id": "36", + "id": "37", "metadata": {}, "source": [ "#### Save Project State\n", @@ -410,7 +433,7 @@ { "cell_type": "code", "execution_count": null, - "id": "37", + "id": "38", "metadata": {}, "outputs": [], "source": [ @@ -419,7 +442,7 @@ }, { "cell_type": "markdown", - "id": "38", + "id": "39", "metadata": {}, "source": [ "## Step 3: Define Experiment\n", @@ -430,7 +453,7 @@ }, { "cell_type": "markdown", - "id": "39", + "id": "40", "metadata": {}, "source": [ "#### Download Measured Data\n", @@ -441,7 +464,7 @@ { "cell_type": "code", "execution_count": null, - "id": "40", + "id": "41", "metadata": {}, "outputs": [], "source": [ @@ -450,7 +473,7 @@ }, { "cell_type": "markdown", - "id": "41", + "id": "42", "metadata": {}, "source": [ "#### Add Diffraction Experiment" @@ -459,7 +482,7 @@ { "cell_type": "code", "execution_count": null, - "id": "42", + "id": "43", "metadata": {}, "outputs": [], "source": [ @@ -474,7 +497,7 @@ }, { "cell_type": "markdown", - "id": "43", + "id": "44", "metadata": {}, "source": [ "#### Show Defined Experiments" @@ -483,7 +506,7 @@ { "cell_type": "code", "execution_count": null, - "id": "44", + "id": "45", "metadata": {}, "outputs": [], "source": [ @@ -492,7 +515,7 @@ }, { "cell_type": "markdown", - "id": "45", + "id": "46", "metadata": {}, "source": [ "#### Show Measured Data" @@ -501,7 +524,7 @@ { "cell_type": "code", "execution_count": null, - "id": "46", + "id": "47", "metadata": {}, "outputs": [], "source": [ @@ -510,7 +533,7 @@ }, { "cell_type": "markdown", - "id": "47", + "id": "48", "metadata": {}, "source": [ "#### Set Instrument\n", @@ -521,7 +544,7 @@ { "cell_type": "code", "execution_count": null, - "id": "48", + "id": "49", "metadata": {}, "outputs": [], "source": [ @@ -531,7 +554,7 @@ }, { "cell_type": "markdown", - "id": "49", + "id": "50", "metadata": {}, "source": [ "#### Set Peak Profile\n", @@ -542,7 +565,7 @@ { "cell_type": "code", "execution_count": null, - "id": "50", + "id": "51", "metadata": {}, "outputs": [], "source": [ @@ -551,7 +574,7 @@ }, { "cell_type": "markdown", - "id": "51", + "id": "52", "metadata": {}, "source": [ "Show the current peak profile type." @@ -560,7 +583,7 @@ { "cell_type": "code", "execution_count": null, - "id": "52", + "id": "53", "metadata": {}, "outputs": [], "source": [ @@ -569,7 +592,7 @@ }, { "cell_type": "markdown", - "id": "53", + "id": "54", "metadata": {}, "source": [ "Select the desired peak profile type." @@ -578,7 +601,7 @@ { "cell_type": "code", "execution_count": null, - "id": "54", + "id": "55", "metadata": {}, "outputs": [], "source": [ @@ -587,7 +610,7 @@ }, { "cell_type": "markdown", - "id": "55", + "id": "56", "metadata": {}, "source": [ "Modify default peak profile parameters." @@ -596,7 +619,7 @@ { "cell_type": "code", "execution_count": null, - "id": "56", + "id": "57", "metadata": {}, "outputs": [], "source": [ @@ -609,7 +632,7 @@ }, { "cell_type": "markdown", - "id": "57", + "id": "58", "metadata": {}, "source": [ "#### Set Background" @@ -617,7 +640,7 @@ }, { "cell_type": "markdown", - "id": "58", + "id": "59", "metadata": {}, "source": [ "Show supported background types." @@ -626,7 +649,7 @@ { "cell_type": "code", "execution_count": null, - "id": "59", + "id": "60", "metadata": {}, "outputs": [], "source": [ @@ -635,7 +658,7 @@ }, { "cell_type": "markdown", - "id": "60", + "id": "61", "metadata": {}, "source": [ "Show current background type." @@ -644,7 +667,7 @@ { "cell_type": "code", "execution_count": null, - "id": "61", + "id": "62", "metadata": {}, "outputs": [], "source": [ @@ -653,7 +676,7 @@ }, { "cell_type": "markdown", - "id": "62", + "id": "63", "metadata": {}, "source": [ "Select the desired background type." @@ -662,7 +685,7 @@ { "cell_type": "code", "execution_count": null, - "id": "63", + "id": "64", "metadata": {}, "outputs": [], "source": [ @@ -671,7 +694,7 @@ }, { "cell_type": "markdown", - "id": "64", + "id": "65", "metadata": {}, "source": [ "Add background points." @@ -680,7 +703,7 @@ { "cell_type": "code", "execution_count": null, - "id": "65", + "id": "66", "metadata": {}, "outputs": [], "source": [ @@ -693,7 +716,7 @@ }, { "cell_type": "markdown", - "id": "66", + "id": "67", "metadata": {}, "source": [ "Show current background points." @@ -702,7 +725,7 @@ { "cell_type": "code", "execution_count": null, - "id": "67", + "id": "68", "metadata": {}, "outputs": [], "source": [ @@ -711,7 +734,7 @@ }, { "cell_type": "markdown", - "id": "68", + "id": "69", "metadata": {}, "source": [ "#### Set Linked Phases\n", @@ -722,7 +745,7 @@ { "cell_type": "code", "execution_count": null, - "id": "69", + "id": "70", "metadata": {}, "outputs": [], "source": [ @@ -731,7 +754,7 @@ }, { "cell_type": "markdown", - "id": "70", + "id": "71", "metadata": {}, "source": [ "#### Show Experiment as CIF" @@ -740,7 +763,7 @@ { "cell_type": "code", "execution_count": null, - "id": "71", + "id": "72", "metadata": {}, "outputs": [], "source": [ @@ -749,7 +772,7 @@ }, { "cell_type": "markdown", - "id": "72", + "id": "73", "metadata": {}, "source": [ "#### Save Project State" @@ -758,7 +781,7 @@ { "cell_type": "code", "execution_count": null, - "id": "73", + "id": "74", "metadata": {}, "outputs": [], "source": [ @@ -767,7 +790,7 @@ }, { "cell_type": "markdown", - "id": "74", + "id": "75", "metadata": {}, "source": [ "## Step 4: Perform Analysis\n", @@ -783,7 +806,7 @@ { "cell_type": "code", "execution_count": null, - "id": "75", + "id": "76", "metadata": {}, "outputs": [], "source": [ @@ -792,7 +815,7 @@ }, { "cell_type": "markdown", - "id": "76", + "id": "77", "metadata": {}, "source": [ "Show current calculation engine." @@ -801,7 +824,7 @@ { "cell_type": "code", "execution_count": null, - "id": "77", + "id": "78", "metadata": {}, "outputs": [], "source": [ @@ -810,7 +833,7 @@ }, { "cell_type": "markdown", - "id": "78", + "id": "79", "metadata": {}, "source": [ "Select the desired calculation engine." @@ -819,7 +842,7 @@ { "cell_type": "code", "execution_count": null, - "id": "79", + "id": "80", "metadata": {}, "outputs": [], "source": [ @@ -828,7 +851,7 @@ }, { "cell_type": "markdown", - "id": "80", + "id": "81", "metadata": {}, "source": [ "#### Show Calculated Data" @@ -837,7 +860,7 @@ { "cell_type": "code", "execution_count": null, - "id": "81", + "id": "82", "metadata": {}, "outputs": [], "source": [ @@ -846,7 +869,7 @@ }, { "cell_type": "markdown", - "id": "82", + "id": "83", "metadata": {}, "source": [ "#### Plot Measured vs Calculated" @@ -855,7 +878,7 @@ { "cell_type": "code", "execution_count": null, - "id": "83", + "id": "84", "metadata": {}, "outputs": [], "source": [ @@ -865,7 +888,7 @@ { "cell_type": "code", "execution_count": null, - "id": "84", + "id": "85", "metadata": {}, "outputs": [], "source": [ @@ -874,7 +897,7 @@ }, { "cell_type": "markdown", - "id": "85", + "id": "86", "metadata": {}, "source": [ "#### Show Parameters\n", @@ -885,7 +908,7 @@ { "cell_type": "code", "execution_count": null, - "id": "86", + "id": "87", "metadata": {}, "outputs": [], "source": [ @@ -894,7 +917,7 @@ }, { "cell_type": "markdown", - "id": "87", + "id": "88", "metadata": {}, "source": [ "Show all fittable parameters." @@ -903,7 +926,7 @@ { "cell_type": "code", "execution_count": null, - "id": "88", + "id": "89", "metadata": {}, "outputs": [], "source": [ @@ -912,7 +935,7 @@ }, { "cell_type": "markdown", - "id": "89", + "id": "90", "metadata": {}, "source": [ "Show only free parameters." @@ -921,7 +944,7 @@ { "cell_type": "code", "execution_count": null, - "id": "90", + "id": "91", "metadata": {}, "outputs": [], "source": [ @@ -930,7 +953,7 @@ }, { "cell_type": "markdown", - "id": "91", + "id": "92", "metadata": {}, "source": [ "Show how to access parameters in the code." @@ -939,7 +962,7 @@ { "cell_type": "code", "execution_count": null, - "id": "92", + "id": "93", "metadata": {}, "outputs": [], "source": [ @@ -948,7 +971,7 @@ }, { "cell_type": "markdown", - "id": "93", + "id": "94", "metadata": {}, "source": [ "#### Set Fit Mode\n", @@ -959,7 +982,7 @@ { "cell_type": "code", "execution_count": null, - "id": "94", + "id": "95", "metadata": {}, "outputs": [], "source": [ @@ -968,7 +991,7 @@ }, { "cell_type": "markdown", - "id": "95", + "id": "96", "metadata": {}, "source": [ "Show current fit mode." @@ -977,7 +1000,7 @@ { "cell_type": "code", "execution_count": null, - "id": "96", + "id": "97", "metadata": {}, "outputs": [], "source": [ @@ -986,7 +1009,7 @@ }, { "cell_type": "markdown", - "id": "97", + "id": "98", "metadata": {}, "source": [ "Select desired fit mode." @@ -995,7 +1018,7 @@ { "cell_type": "code", "execution_count": null, - "id": "98", + "id": "99", "metadata": {}, "outputs": [], "source": [ @@ -1004,7 +1027,7 @@ }, { "cell_type": "markdown", - "id": "99", + "id": "100", "metadata": {}, "source": [ "#### Set Minimizer\n", @@ -1015,7 +1038,7 @@ { "cell_type": "code", "execution_count": null, - "id": "100", + "id": "101", "metadata": {}, "outputs": [], "source": [ @@ -1024,7 +1047,7 @@ }, { "cell_type": "markdown", - "id": "101", + "id": "102", "metadata": {}, "source": [ "Show current fitting engine." @@ -1033,7 +1056,7 @@ { "cell_type": "code", "execution_count": null, - "id": "102", + "id": "103", "metadata": {}, "outputs": [], "source": [ @@ -1042,7 +1065,7 @@ }, { "cell_type": "markdown", - "id": "103", + "id": "104", "metadata": {}, "source": [ "Select desired fitting engine." @@ -1051,7 +1074,7 @@ { "cell_type": "code", "execution_count": null, - "id": "104", + "id": "105", "metadata": {}, "outputs": [], "source": [ @@ -1060,7 +1083,7 @@ }, { "cell_type": "markdown", - "id": "105", + "id": "106", "metadata": {}, "source": [ "### Perform Fit 1/5\n", @@ -1071,7 +1094,7 @@ { "cell_type": "code", "execution_count": null, - "id": "106", + "id": "107", "metadata": {}, "outputs": [], "source": [ @@ -1080,7 +1103,7 @@ }, { "cell_type": "markdown", - "id": "107", + "id": "108", "metadata": {}, "source": [ "Set experiment parameters to be refined." @@ -1089,7 +1112,7 @@ { "cell_type": "code", "execution_count": null, - "id": "108", + "id": "109", "metadata": {}, "outputs": [], "source": [ @@ -1104,7 +1127,7 @@ }, { "cell_type": "markdown", - "id": "109", + "id": "110", "metadata": {}, "source": [ "Show free parameters after selection." @@ -1113,7 +1136,7 @@ { "cell_type": "code", "execution_count": null, - "id": "110", + "id": "111", "metadata": {}, "outputs": [], "source": [ @@ -1122,7 +1145,7 @@ }, { "cell_type": "markdown", - "id": "111", + "id": "112", "metadata": {}, "source": [ "#### Run Fitting" @@ -1131,7 +1154,7 @@ { "cell_type": "code", "execution_count": null, - "id": "112", + "id": "113", "metadata": {}, "outputs": [], "source": [ @@ -1140,7 +1163,7 @@ }, { "cell_type": "markdown", - "id": "113", + "id": "114", "metadata": {}, "source": [ "#### Plot Measured vs Calculated" @@ -1149,7 +1172,7 @@ { "cell_type": "code", "execution_count": null, - "id": "114", + "id": "115", "metadata": {}, "outputs": [], "source": [ @@ -1159,7 +1182,7 @@ { "cell_type": "code", "execution_count": null, - "id": "115", + "id": "116", "metadata": {}, "outputs": [], "source": [ @@ -1168,7 +1191,7 @@ }, { "cell_type": "markdown", - "id": "116", + "id": "117", "metadata": {}, "source": [ "#### Save Project State" @@ -1177,7 +1200,7 @@ { "cell_type": "code", "execution_count": null, - "id": "117", + "id": "118", "metadata": {}, "outputs": [], "source": [ @@ -1186,7 +1209,7 @@ }, { "cell_type": "markdown", - "id": "118", + "id": "119", "metadata": {}, "source": [ "### Perform Fit 2/5\n", @@ -1197,7 +1220,7 @@ { "cell_type": "code", "execution_count": null, - "id": "119", + "id": "120", "metadata": {}, "outputs": [], "source": [ @@ -1209,7 +1232,7 @@ }, { "cell_type": "markdown", - "id": "120", + "id": "121", "metadata": {}, "source": [ "Show free parameters after selection." @@ -1218,7 +1241,7 @@ { "cell_type": "code", "execution_count": null, - "id": "121", + "id": "122", "metadata": {}, "outputs": [], "source": [ @@ -1227,7 +1250,7 @@ }, { "cell_type": "markdown", - "id": "122", + "id": "123", "metadata": {}, "source": [ "#### Run Fitting" @@ -1236,7 +1259,7 @@ { "cell_type": "code", "execution_count": null, - "id": "123", + "id": "124", "metadata": {}, "outputs": [], "source": [ @@ -1245,7 +1268,7 @@ }, { "cell_type": "markdown", - "id": "124", + "id": "125", "metadata": {}, "source": [ "#### Plot Measured vs Calculated" @@ -1254,7 +1277,7 @@ { "cell_type": "code", "execution_count": null, - "id": "125", + "id": "126", "metadata": {}, "outputs": [], "source": [ @@ -1264,7 +1287,7 @@ { "cell_type": "code", "execution_count": null, - "id": "126", + "id": "127", "metadata": {}, "outputs": [], "source": [ @@ -1273,7 +1296,7 @@ }, { "cell_type": "markdown", - "id": "127", + "id": "128", "metadata": {}, "source": [ "#### Save Project State" @@ -1282,7 +1305,7 @@ { "cell_type": "code", "execution_count": null, - "id": "128", + "id": "129", "metadata": {}, "outputs": [], "source": [ @@ -1291,7 +1314,7 @@ }, { "cell_type": "markdown", - "id": "129", + "id": "130", "metadata": {}, "source": [ "### Perform Fit 3/5\n", @@ -1302,7 +1325,7 @@ { "cell_type": "code", "execution_count": null, - "id": "130", + "id": "131", "metadata": {}, "outputs": [], "source": [ @@ -1314,7 +1337,7 @@ }, { "cell_type": "markdown", - "id": "131", + "id": "132", "metadata": {}, "source": [ "Show free parameters after selection." @@ -1323,7 +1346,7 @@ { "cell_type": "code", "execution_count": null, - "id": "132", + "id": "133", "metadata": {}, "outputs": [], "source": [ @@ -1332,7 +1355,7 @@ }, { "cell_type": "markdown", - "id": "133", + "id": "134", "metadata": {}, "source": [ "#### Run Fitting" @@ -1341,7 +1364,7 @@ { "cell_type": "code", "execution_count": null, - "id": "134", + "id": "135", "metadata": {}, "outputs": [], "source": [ @@ -1350,7 +1373,7 @@ }, { "cell_type": "markdown", - "id": "135", + "id": "136", "metadata": {}, "source": [ "#### Plot Measured vs Calculated" @@ -1359,7 +1382,7 @@ { "cell_type": "code", "execution_count": null, - "id": "136", + "id": "137", "metadata": {}, "outputs": [], "source": [ @@ -1369,7 +1392,7 @@ { "cell_type": "code", "execution_count": null, - "id": "137", + "id": "138", "metadata": {}, "outputs": [], "source": [ @@ -1378,7 +1401,7 @@ }, { "cell_type": "markdown", - "id": "138", + "id": "139", "metadata": {}, "source": [ "#### Save Project State" @@ -1387,7 +1410,7 @@ { "cell_type": "code", "execution_count": null, - "id": "139", + "id": "140", "metadata": {}, "outputs": [], "source": [ @@ -1396,7 +1419,7 @@ }, { "cell_type": "markdown", - "id": "140", + "id": "141", "metadata": {}, "source": [ "### Perform Fit 4/5\n", @@ -1409,7 +1432,7 @@ { "cell_type": "code", "execution_count": null, - "id": "141", + "id": "142", "metadata": {}, "outputs": [], "source": [ @@ -1419,7 +1442,7 @@ }, { "cell_type": "markdown", - "id": "142", + "id": "143", "metadata": {}, "source": [ "Set constraints." @@ -1428,7 +1451,7 @@ { "cell_type": "code", "execution_count": null, - "id": "143", + "id": "144", "metadata": {}, "outputs": [], "source": [ @@ -1437,7 +1460,7 @@ }, { "cell_type": "markdown", - "id": "144", + "id": "145", "metadata": {}, "source": [ "Show defined constraints." @@ -1446,7 +1469,7 @@ { "cell_type": "code", "execution_count": null, - "id": "145", + "id": "146", "metadata": {}, "outputs": [], "source": [ @@ -1455,7 +1478,7 @@ }, { "cell_type": "markdown", - "id": "146", + "id": "147", "metadata": {}, "source": [ "Show free parameters before applying constraints." @@ -1464,7 +1487,7 @@ { "cell_type": "code", "execution_count": null, - "id": "147", + "id": "148", "metadata": {}, "outputs": [], "source": [ @@ -1473,7 +1496,7 @@ }, { "cell_type": "markdown", - "id": "148", + "id": "149", "metadata": {}, "source": [ "Apply constraints." @@ -1482,7 +1505,7 @@ { "cell_type": "code", "execution_count": null, - "id": "149", + "id": "150", "metadata": {}, "outputs": [], "source": [ @@ -1491,7 +1514,7 @@ }, { "cell_type": "markdown", - "id": "150", + "id": "151", "metadata": {}, "source": [ "Show free parameters after applying constraints." @@ -1500,7 +1523,7 @@ { "cell_type": "code", "execution_count": null, - "id": "151", + "id": "152", "metadata": {}, "outputs": [], "source": [ @@ -1509,7 +1532,7 @@ }, { "cell_type": "markdown", - "id": "152", + "id": "153", "metadata": {}, "source": [ "#### Run Fitting" @@ -1518,7 +1541,7 @@ { "cell_type": "code", "execution_count": null, - "id": "153", + "id": "154", "metadata": {}, "outputs": [], "source": [ @@ -1527,7 +1550,7 @@ }, { "cell_type": "markdown", - "id": "154", + "id": "155", "metadata": {}, "source": [ "#### Plot Measured vs Calculated" @@ -1536,7 +1559,7 @@ { "cell_type": "code", "execution_count": null, - "id": "155", + "id": "156", "metadata": {}, "outputs": [], "source": [ @@ -1546,7 +1569,7 @@ { "cell_type": "code", "execution_count": null, - "id": "156", + "id": "157", "metadata": {}, "outputs": [], "source": [ @@ -1555,7 +1578,7 @@ }, { "cell_type": "markdown", - "id": "157", + "id": "158", "metadata": {}, "source": [ "#### Save Project State" @@ -1564,7 +1587,7 @@ { "cell_type": "code", "execution_count": null, - "id": "158", + "id": "159", "metadata": {}, "outputs": [], "source": [ @@ -1573,7 +1596,7 @@ }, { "cell_type": "markdown", - "id": "159", + "id": "160", "metadata": {}, "source": [ "### Perform Fit 5/5\n", @@ -1586,7 +1609,7 @@ { "cell_type": "code", "execution_count": null, - "id": "160", + "id": "161", "metadata": {}, "outputs": [], "source": [ @@ -1602,7 +1625,7 @@ }, { "cell_type": "markdown", - "id": "161", + "id": "162", "metadata": {}, "source": [ "Set more constraints." @@ -1611,7 +1634,7 @@ { "cell_type": "code", "execution_count": null, - "id": "162", + "id": "163", "metadata": {}, "outputs": [], "source": [ @@ -1623,7 +1646,7 @@ }, { "cell_type": "markdown", - "id": "163", + "id": "164", "metadata": {}, "source": [ "Show defined constraints." @@ -1632,7 +1655,7 @@ { "cell_type": "code", "execution_count": null, - "id": "164", + "id": "165", "metadata": {}, "outputs": [], "source": [ @@ -1641,7 +1664,7 @@ }, { "cell_type": "markdown", - "id": "165", + "id": "166", "metadata": {}, "source": [ "Apply constraints." @@ -1650,7 +1673,7 @@ { "cell_type": "code", "execution_count": null, - "id": "166", + "id": "167", "metadata": {}, "outputs": [], "source": [ @@ -1659,7 +1682,7 @@ }, { "cell_type": "markdown", - "id": "167", + "id": "168", "metadata": {}, "source": [ "Set sample model parameters to be refined." @@ -1668,7 +1691,7 @@ { "cell_type": "code", "execution_count": null, - "id": "168", + "id": "169", "metadata": {}, "outputs": [], "source": [ @@ -1677,7 +1700,7 @@ }, { "cell_type": "markdown", - "id": "169", + "id": "170", "metadata": {}, "source": [ "Show free parameters after selection." @@ -1686,7 +1709,7 @@ { "cell_type": "code", "execution_count": null, - "id": "170", + "id": "171", "metadata": {}, "outputs": [], "source": [ @@ -1695,7 +1718,7 @@ }, { "cell_type": "markdown", - "id": "171", + "id": "172", "metadata": {}, "source": [ "#### Run Fitting" @@ -1704,7 +1727,7 @@ { "cell_type": "code", "execution_count": null, - "id": "172", + "id": "173", "metadata": {}, "outputs": [], "source": [ @@ -1713,7 +1736,7 @@ }, { "cell_type": "markdown", - "id": "173", + "id": "174", "metadata": {}, "source": [ "#### Plot Measured vs Calculated" @@ -1722,7 +1745,7 @@ { "cell_type": "code", "execution_count": null, - "id": "174", + "id": "175", "metadata": {}, "outputs": [], "source": [ @@ -1732,7 +1755,7 @@ { "cell_type": "code", "execution_count": null, - "id": "175", + "id": "176", "metadata": {}, "outputs": [], "source": [ @@ -1741,7 +1764,7 @@ }, { "cell_type": "markdown", - "id": "176", + "id": "177", "metadata": {}, "source": [ "#### Save Project State" @@ -1750,7 +1773,7 @@ { "cell_type": "code", "execution_count": null, - "id": "177", + "id": "178", "metadata": {}, "outputs": [], "source": [ @@ -1759,7 +1782,7 @@ }, { "cell_type": "markdown", - "id": "178", + "id": "179", "metadata": {}, "source": [ "## Step 5: Summary\n", @@ -1769,7 +1792,7 @@ }, { "cell_type": "markdown", - "id": "179", + "id": "180", "metadata": {}, "source": [ "#### Show Project Summary" @@ -1778,7 +1801,7 @@ { "cell_type": "code", "execution_count": null, - "id": "180", + "id": "181", "metadata": {}, "outputs": [], "source": [ @@ -1788,7 +1811,7 @@ ], "metadata": { "jupytext": { - "cell_metadata_filter": "-all", + "cell_metadata_filter": "tags,-all", "main_language": "python", "notebook_metadata_filter": "-all" } diff --git a/tutorials/basic_single-fit_pd-neut-cwl_LBCO-HRPT.py b/tutorials/basic_single-fit_pd-neut-cwl_LBCO-HRPT.py index ca885349..840a198f 100644 --- a/tutorials/basic_single-fit_pd-neut-cwl_LBCO-HRPT.py +++ b/tutorials/basic_single-fit_pd-neut-cwl_LBCO-HRPT.py @@ -19,6 +19,18 @@ # %% [markdown] # ## Import Library +# %% tags=["hide_in_docs"] +# Check if the easydiffraction library is installed. +# If not, install it including the 'visualization' extras. +# This is needed, e.g., when running this as a notebook via Google Colab. +import builtins +import importlib.util + +if hasattr(builtins, '__IPYTHON__'): + if importlib.util.find_spec('easydiffraction') is None: + print('Installing the easydiffraction library...') + # !pip install 'easydiffraction[visualization]' + # %% import easydiffraction as ed diff --git a/tutorials/cryst-struct_pd-neut-cwl_CoSiO4-D20.ipynb b/tutorials/cryst-struct_pd-neut-cwl_CoSiO4-D20.ipynb index 55b69a07..f493bc93 100644 --- a/tutorials/cryst-struct_pd-neut-cwl_CoSiO4-D20.ipynb +++ b/tutorials/cryst-struct_pd-neut-cwl_CoSiO4-D20.ipynb @@ -23,6 +23,29 @@ "cell_type": "code", "execution_count": null, "id": "2", + "metadata": { + "tags": [ + "hide_in_docs" + ] + }, + "outputs": [], + "source": [ + "# Check if the easydiffraction library is installed.\n", + "# If not, install it including the 'visualization' extras.\n", + "# This is needed, e.g., when running this as a notebook via Google Colab.\n", + "import builtins\n", + "import importlib.util\n", + "\n", + "if hasattr(builtins, '__IPYTHON__'):\n", + " if importlib.util.find_spec('easydiffraction') is None:\n", + " print('Installing the easydiffraction library...')\n", + " # !pip install 'easydiffraction[visualization]'" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3", "metadata": {}, "outputs": [], "source": [ @@ -34,7 +57,7 @@ }, { "cell_type": "markdown", - "id": "3", + "id": "4", "metadata": {}, "source": [ "## Define Sample Model\n", @@ -47,7 +70,7 @@ { "cell_type": "code", "execution_count": null, - "id": "4", + "id": "5", "metadata": {}, "outputs": [], "source": [ @@ -56,7 +79,7 @@ }, { "cell_type": "markdown", - "id": "5", + "id": "6", "metadata": {}, "source": [ "#### Set Space Group" @@ -65,7 +88,7 @@ { "cell_type": "code", "execution_count": null, - "id": "6", + "id": "7", "metadata": {}, "outputs": [], "source": [ @@ -75,7 +98,7 @@ }, { "cell_type": "markdown", - "id": "7", + "id": "8", "metadata": {}, "source": [ "#### Set Unit Cell" @@ -84,7 +107,7 @@ { "cell_type": "code", "execution_count": null, - "id": "8", + "id": "9", "metadata": {}, "outputs": [], "source": [ @@ -95,7 +118,7 @@ }, { "cell_type": "markdown", - "id": "9", + "id": "10", "metadata": {}, "source": [ "#### Set Atom Sites" @@ -104,7 +127,7 @@ { "cell_type": "code", "execution_count": null, - "id": "10", + "id": "11", "metadata": {}, "outputs": [], "source": [ @@ -118,7 +141,7 @@ }, { "cell_type": "markdown", - "id": "11", + "id": "12", "metadata": {}, "source": [ "#### Symmetry Constraints\n", @@ -129,7 +152,7 @@ { "cell_type": "code", "execution_count": null, - "id": "12", + "id": "13", "metadata": {}, "outputs": [], "source": [ @@ -138,7 +161,7 @@ }, { "cell_type": "markdown", - "id": "13", + "id": "14", "metadata": {}, "source": [ "Apply symmetry constraints." @@ -147,7 +170,7 @@ { "cell_type": "code", "execution_count": null, - "id": "14", + "id": "15", "metadata": {}, "outputs": [], "source": [ @@ -156,7 +179,7 @@ }, { "cell_type": "markdown", - "id": "15", + "id": "16", "metadata": {}, "source": [ "Show CIF output after applying symmetry constraints." @@ -165,7 +188,7 @@ { "cell_type": "code", "execution_count": null, - "id": "16", + "id": "17", "metadata": {}, "outputs": [], "source": [ @@ -174,7 +197,7 @@ }, { "cell_type": "markdown", - "id": "17", + "id": "18", "metadata": {}, "source": [ "## Define Experiment\n", @@ -188,7 +211,7 @@ { "cell_type": "code", "execution_count": null, - "id": "18", + "id": "19", "metadata": {}, "outputs": [], "source": [ @@ -197,7 +220,7 @@ }, { "cell_type": "markdown", - "id": "19", + "id": "20", "metadata": {}, "source": [ "#### Create Experiment" @@ -206,7 +229,7 @@ { "cell_type": "code", "execution_count": null, - "id": "20", + "id": "21", "metadata": {}, "outputs": [], "source": [ @@ -215,7 +238,7 @@ }, { "cell_type": "markdown", - "id": "21", + "id": "22", "metadata": {}, "source": [ "#### Set Instrument" @@ -224,7 +247,7 @@ { "cell_type": "code", "execution_count": null, - "id": "22", + "id": "23", "metadata": {}, "outputs": [], "source": [ @@ -234,7 +257,7 @@ }, { "cell_type": "markdown", - "id": "23", + "id": "24", "metadata": {}, "source": [ "#### Set Peak Profile" @@ -243,7 +266,7 @@ { "cell_type": "code", "execution_count": null, - "id": "24", + "id": "25", "metadata": {}, "outputs": [], "source": [ @@ -254,7 +277,7 @@ }, { "cell_type": "markdown", - "id": "25", + "id": "26", "metadata": {}, "source": [ "#### Set Background" @@ -263,7 +286,7 @@ { "cell_type": "code", "execution_count": null, - "id": "26", + "id": "27", "metadata": {}, "outputs": [], "source": [ @@ -285,7 +308,7 @@ }, { "cell_type": "markdown", - "id": "27", + "id": "28", "metadata": {}, "source": [ "#### Set Linked Phases" @@ -294,7 +317,7 @@ { "cell_type": "code", "execution_count": null, - "id": "28", + "id": "29", "metadata": {}, "outputs": [], "source": [ @@ -303,7 +326,7 @@ }, { "cell_type": "markdown", - "id": "29", + "id": "30", "metadata": {}, "source": [ "## Define Project\n", @@ -317,7 +340,7 @@ { "cell_type": "code", "execution_count": null, - "id": "30", + "id": "31", "metadata": {}, "outputs": [], "source": [ @@ -326,7 +349,7 @@ }, { "cell_type": "markdown", - "id": "31", + "id": "32", "metadata": {}, "source": [ "#### Set Plotting Engine" @@ -335,7 +358,7 @@ { "cell_type": "code", "execution_count": null, - "id": "32", + "id": "33", "metadata": {}, "outputs": [], "source": [ @@ -344,7 +367,7 @@ }, { "cell_type": "markdown", - "id": "33", + "id": "34", "metadata": {}, "source": [ "#### Add Sample Model" @@ -353,7 +376,7 @@ { "cell_type": "code", "execution_count": null, - "id": "34", + "id": "35", "metadata": {}, "outputs": [], "source": [ @@ -362,7 +385,7 @@ }, { "cell_type": "markdown", - "id": "35", + "id": "36", "metadata": {}, "source": [ "#### Add Experiment" @@ -371,7 +394,7 @@ { "cell_type": "code", "execution_count": null, - "id": "36", + "id": "37", "metadata": {}, "outputs": [], "source": [ @@ -380,7 +403,7 @@ }, { "cell_type": "markdown", - "id": "37", + "id": "38", "metadata": {}, "source": [ "## Perform Analysis\n", @@ -394,7 +417,7 @@ { "cell_type": "code", "execution_count": null, - "id": "38", + "id": "39", "metadata": {}, "outputs": [], "source": [ @@ -403,7 +426,7 @@ }, { "cell_type": "markdown", - "id": "39", + "id": "40", "metadata": {}, "source": [ "#### Set Minimizer" @@ -412,7 +435,7 @@ { "cell_type": "code", "execution_count": null, - "id": "40", + "id": "41", "metadata": {}, "outputs": [], "source": [ @@ -421,7 +444,7 @@ }, { "cell_type": "markdown", - "id": "41", + "id": "42", "metadata": {}, "source": [ "#### Plot Measured vs Calculated" @@ -430,7 +453,7 @@ { "cell_type": "code", "execution_count": null, - "id": "42", + "id": "43", "metadata": {}, "outputs": [], "source": [ @@ -440,7 +463,7 @@ { "cell_type": "code", "execution_count": null, - "id": "43", + "id": "44", "metadata": {}, "outputs": [], "source": [ @@ -449,7 +472,7 @@ }, { "cell_type": "markdown", - "id": "44", + "id": "45", "metadata": {}, "source": [ "#### Set Free Parameters" @@ -458,7 +481,7 @@ { "cell_type": "code", "execution_count": null, - "id": "45", + "id": "46", "metadata": {}, "outputs": [], "source": [ @@ -489,7 +512,7 @@ { "cell_type": "code", "execution_count": null, - "id": "46", + "id": "47", "metadata": {}, "outputs": [], "source": [ @@ -508,7 +531,7 @@ }, { "cell_type": "markdown", - "id": "47", + "id": "48", "metadata": {}, "source": [ "#### Set Constraints\n", @@ -519,7 +542,7 @@ { "cell_type": "code", "execution_count": null, - "id": "48", + "id": "49", "metadata": {}, "outputs": [], "source": [ @@ -535,7 +558,7 @@ }, { "cell_type": "markdown", - "id": "49", + "id": "50", "metadata": {}, "source": [ "Set constraints." @@ -544,7 +567,7 @@ { "cell_type": "code", "execution_count": null, - "id": "50", + "id": "51", "metadata": {}, "outputs": [], "source": [ @@ -556,7 +579,7 @@ }, { "cell_type": "markdown", - "id": "51", + "id": "52", "metadata": {}, "source": [ "Apply constraints." @@ -565,7 +588,7 @@ { "cell_type": "code", "execution_count": null, - "id": "52", + "id": "53", "metadata": {}, "outputs": [], "source": [ @@ -574,7 +597,7 @@ }, { "cell_type": "markdown", - "id": "53", + "id": "54", "metadata": {}, "source": [ "#### Run Fitting" @@ -583,7 +606,7 @@ { "cell_type": "code", "execution_count": null, - "id": "54", + "id": "55", "metadata": {}, "outputs": [], "source": [ @@ -592,7 +615,7 @@ }, { "cell_type": "markdown", - "id": "55", + "id": "56", "metadata": {}, "source": [ "#### Plot Measured vs Calculated" @@ -601,7 +624,7 @@ { "cell_type": "code", "execution_count": null, - "id": "56", + "id": "57", "metadata": {}, "outputs": [], "source": [ @@ -611,7 +634,7 @@ { "cell_type": "code", "execution_count": null, - "id": "57", + "id": "58", "metadata": {}, "outputs": [], "source": [ @@ -620,7 +643,7 @@ }, { "cell_type": "markdown", - "id": "58", + "id": "59", "metadata": {}, "source": [ "## Summary\n", @@ -630,7 +653,7 @@ }, { "cell_type": "markdown", - "id": "59", + "id": "60", "metadata": {}, "source": [ "#### Show Project Summary" @@ -639,7 +662,7 @@ { "cell_type": "code", "execution_count": null, - "id": "60", + "id": "61", "metadata": {}, "outputs": [], "source": [ @@ -649,7 +672,7 @@ ], "metadata": { "jupytext": { - "cell_metadata_filter": "-all", + "cell_metadata_filter": "tags,-all", "main_language": "python", "notebook_metadata_filter": "-all" } diff --git a/tutorials/cryst-struct_pd-neut-cwl_CoSiO4-D20.py b/tutorials/cryst-struct_pd-neut-cwl_CoSiO4-D20.py index b366548c..eac6aa75 100644 --- a/tutorials/cryst-struct_pd-neut-cwl_CoSiO4-D20.py +++ b/tutorials/cryst-struct_pd-neut-cwl_CoSiO4-D20.py @@ -7,6 +7,18 @@ # %% [markdown] # ## Import Library +# %% tags=["hide_in_docs"] +# Check if the easydiffraction library is installed. +# If not, install it including the 'visualization' extras. +# This is needed, e.g., when running this as a notebook via Google Colab. +import builtins +import importlib.util + +if hasattr(builtins, '__IPYTHON__'): + if importlib.util.find_spec('easydiffraction') is None: + print('Installing the easydiffraction library...') + # !pip install 'easydiffraction[visualization]' + # %% from easydiffraction import Experiment from easydiffraction import Project diff --git a/tutorials/cryst-struct_pd-neut-cwl_HS-HRPT.ipynb b/tutorials/cryst-struct_pd-neut-cwl_HS-HRPT.ipynb index cc5817e6..8a07be6f 100644 --- a/tutorials/cryst-struct_pd-neut-cwl_HS-HRPT.ipynb +++ b/tutorials/cryst-struct_pd-neut-cwl_HS-HRPT.ipynb @@ -23,6 +23,29 @@ "cell_type": "code", "execution_count": null, "id": "2", + "metadata": { + "tags": [ + "hide_in_docs" + ] + }, + "outputs": [], + "source": [ + "# Check if the easydiffraction library is installed.\n", + "# If not, install it including the 'visualization' extras.\n", + "# This is needed, e.g., when running this as a notebook via Google Colab.\n", + "import builtins\n", + "import importlib.util\n", + "\n", + "if hasattr(builtins, '__IPYTHON__'):\n", + " if importlib.util.find_spec('easydiffraction') is None:\n", + " print('Installing the easydiffraction library...')\n", + " # !pip install 'easydiffraction[visualization]'" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3", "metadata": {}, "outputs": [], "source": [ @@ -34,7 +57,7 @@ }, { "cell_type": "markdown", - "id": "3", + "id": "4", "metadata": {}, "source": [ "## Define Sample Model\n", @@ -47,7 +70,7 @@ { "cell_type": "code", "execution_count": null, - "id": "4", + "id": "5", "metadata": {}, "outputs": [], "source": [ @@ -56,7 +79,7 @@ }, { "cell_type": "markdown", - "id": "5", + "id": "6", "metadata": {}, "source": [ "#### Set Space Group" @@ -65,7 +88,7 @@ { "cell_type": "code", "execution_count": null, - "id": "6", + "id": "7", "metadata": {}, "outputs": [], "source": [ @@ -75,7 +98,7 @@ }, { "cell_type": "markdown", - "id": "7", + "id": "8", "metadata": {}, "source": [ "#### Set Unit Cell" @@ -84,7 +107,7 @@ { "cell_type": "code", "execution_count": null, - "id": "8", + "id": "9", "metadata": {}, "outputs": [], "source": [ @@ -94,7 +117,7 @@ }, { "cell_type": "markdown", - "id": "9", + "id": "10", "metadata": {}, "source": [ "#### Set Atom Sites" @@ -103,7 +126,7 @@ { "cell_type": "code", "execution_count": null, - "id": "10", + "id": "11", "metadata": {}, "outputs": [], "source": [ @@ -116,7 +139,7 @@ }, { "cell_type": "markdown", - "id": "11", + "id": "12", "metadata": {}, "source": [ "#### Symmetry constraints\n", @@ -127,7 +150,7 @@ { "cell_type": "code", "execution_count": null, - "id": "12", + "id": "13", "metadata": {}, "outputs": [], "source": [ @@ -136,7 +159,7 @@ }, { "cell_type": "markdown", - "id": "13", + "id": "14", "metadata": {}, "source": [ "Apply symmetry constraints." @@ -145,7 +168,7 @@ { "cell_type": "code", "execution_count": null, - "id": "14", + "id": "15", "metadata": {}, "outputs": [], "source": [ @@ -154,7 +177,7 @@ }, { "cell_type": "markdown", - "id": "15", + "id": "16", "metadata": {}, "source": [ "Show CIF output after applying symmetry constraints." @@ -163,7 +186,7 @@ { "cell_type": "code", "execution_count": null, - "id": "16", + "id": "17", "metadata": {}, "outputs": [], "source": [ @@ -172,7 +195,7 @@ }, { "cell_type": "markdown", - "id": "17", + "id": "18", "metadata": {}, "source": [ "## Define Experiment\n", @@ -186,7 +209,7 @@ { "cell_type": "code", "execution_count": null, - "id": "18", + "id": "19", "metadata": {}, "outputs": [], "source": [ @@ -195,7 +218,7 @@ }, { "cell_type": "markdown", - "id": "19", + "id": "20", "metadata": {}, "source": [ "#### Create Experiment" @@ -204,7 +227,7 @@ { "cell_type": "code", "execution_count": null, - "id": "20", + "id": "21", "metadata": {}, "outputs": [], "source": [ @@ -213,7 +236,7 @@ }, { "cell_type": "markdown", - "id": "21", + "id": "22", "metadata": {}, "source": [ "#### Set Instrument" @@ -222,7 +245,7 @@ { "cell_type": "code", "execution_count": null, - "id": "22", + "id": "23", "metadata": {}, "outputs": [], "source": [ @@ -232,7 +255,7 @@ }, { "cell_type": "markdown", - "id": "23", + "id": "24", "metadata": {}, "source": [ "#### Set Peak Profile" @@ -241,7 +264,7 @@ { "cell_type": "code", "execution_count": null, - "id": "24", + "id": "25", "metadata": {}, "outputs": [], "source": [ @@ -254,7 +277,7 @@ }, { "cell_type": "markdown", - "id": "25", + "id": "26", "metadata": {}, "source": [ "#### Set Background" @@ -263,7 +286,7 @@ { "cell_type": "code", "execution_count": null, - "id": "26", + "id": "27", "metadata": {}, "outputs": [], "source": [ @@ -280,7 +303,7 @@ }, { "cell_type": "markdown", - "id": "27", + "id": "28", "metadata": {}, "source": [ "#### Set Linked Phases" @@ -289,7 +312,7 @@ { "cell_type": "code", "execution_count": null, - "id": "28", + "id": "29", "metadata": {}, "outputs": [], "source": [ @@ -298,7 +321,7 @@ }, { "cell_type": "markdown", - "id": "29", + "id": "30", "metadata": {}, "source": [ "## Define Project\n", @@ -312,7 +335,7 @@ { "cell_type": "code", "execution_count": null, - "id": "30", + "id": "31", "metadata": {}, "outputs": [], "source": [ @@ -321,7 +344,7 @@ }, { "cell_type": "markdown", - "id": "31", + "id": "32", "metadata": {}, "source": [ "#### Set Plotting Engine" @@ -330,7 +353,7 @@ { "cell_type": "code", "execution_count": null, - "id": "32", + "id": "33", "metadata": {}, "outputs": [], "source": [ @@ -339,7 +362,7 @@ }, { "cell_type": "markdown", - "id": "33", + "id": "34", "metadata": {}, "source": [ "#### Add Sample Model" @@ -348,7 +371,7 @@ { "cell_type": "code", "execution_count": null, - "id": "34", + "id": "35", "metadata": {}, "outputs": [], "source": [ @@ -357,7 +380,7 @@ }, { "cell_type": "markdown", - "id": "35", + "id": "36", "metadata": {}, "source": [ "#### Add Experiment" @@ -366,7 +389,7 @@ { "cell_type": "code", "execution_count": null, - "id": "36", + "id": "37", "metadata": {}, "outputs": [], "source": [ @@ -375,7 +398,7 @@ }, { "cell_type": "markdown", - "id": "37", + "id": "38", "metadata": {}, "source": [ "## Perform Analysis\n", @@ -389,7 +412,7 @@ { "cell_type": "code", "execution_count": null, - "id": "38", + "id": "39", "metadata": {}, "outputs": [], "source": [ @@ -398,7 +421,7 @@ }, { "cell_type": "markdown", - "id": "39", + "id": "40", "metadata": {}, "source": [ "#### Set Minimizer" @@ -407,7 +430,7 @@ { "cell_type": "code", "execution_count": null, - "id": "40", + "id": "41", "metadata": {}, "outputs": [], "source": [ @@ -416,7 +439,7 @@ }, { "cell_type": "markdown", - "id": "41", + "id": "42", "metadata": {}, "source": [ "#### Plot Measured vs Calculated" @@ -425,7 +448,7 @@ { "cell_type": "code", "execution_count": null, - "id": "42", + "id": "43", "metadata": {}, "outputs": [], "source": [ @@ -435,7 +458,7 @@ { "cell_type": "code", "execution_count": null, - "id": "43", + "id": "44", "metadata": {}, "outputs": [], "source": [ @@ -444,7 +467,7 @@ }, { "cell_type": "markdown", - "id": "44", + "id": "45", "metadata": {}, "source": [ "### Perform Fit 1/5\n", @@ -455,7 +478,7 @@ { "cell_type": "code", "execution_count": null, - "id": "45", + "id": "46", "metadata": {}, "outputs": [], "source": [ @@ -468,7 +491,7 @@ }, { "cell_type": "markdown", - "id": "46", + "id": "47", "metadata": {}, "source": [ "Show free parameters after selection." @@ -477,7 +500,7 @@ { "cell_type": "code", "execution_count": null, - "id": "47", + "id": "48", "metadata": {}, "outputs": [], "source": [ @@ -486,7 +509,7 @@ }, { "cell_type": "markdown", - "id": "48", + "id": "49", "metadata": {}, "source": [ "#### Run Fitting" @@ -495,7 +518,7 @@ { "cell_type": "code", "execution_count": null, - "id": "49", + "id": "50", "metadata": {}, "outputs": [], "source": [ @@ -504,7 +527,7 @@ }, { "cell_type": "markdown", - "id": "50", + "id": "51", "metadata": {}, "source": [ "#### Plot Measured vs Calculated" @@ -513,7 +536,7 @@ { "cell_type": "code", "execution_count": null, - "id": "51", + "id": "52", "metadata": {}, "outputs": [], "source": [ @@ -523,7 +546,7 @@ { "cell_type": "code", "execution_count": null, - "id": "52", + "id": "53", "metadata": {}, "outputs": [], "source": [ @@ -532,7 +555,7 @@ }, { "cell_type": "markdown", - "id": "53", + "id": "54", "metadata": {}, "source": [ "### Perform Fit 2/5\n", @@ -543,7 +566,7 @@ { "cell_type": "code", "execution_count": null, - "id": "54", + "id": "55", "metadata": {}, "outputs": [], "source": [ @@ -558,7 +581,7 @@ }, { "cell_type": "markdown", - "id": "55", + "id": "56", "metadata": {}, "source": [ "Show free parameters after selection." @@ -567,7 +590,7 @@ { "cell_type": "code", "execution_count": null, - "id": "56", + "id": "57", "metadata": {}, "outputs": [], "source": [ @@ -576,7 +599,7 @@ }, { "cell_type": "markdown", - "id": "57", + "id": "58", "metadata": {}, "source": [ "#### Run Fitting" @@ -585,7 +608,7 @@ { "cell_type": "code", "execution_count": null, - "id": "58", + "id": "59", "metadata": {}, "outputs": [], "source": [ @@ -594,7 +617,7 @@ }, { "cell_type": "markdown", - "id": "59", + "id": "60", "metadata": {}, "source": [ "#### Plot Measured vs Calculated" @@ -603,7 +626,7 @@ { "cell_type": "code", "execution_count": null, - "id": "60", + "id": "61", "metadata": {}, "outputs": [], "source": [ @@ -613,7 +636,7 @@ { "cell_type": "code", "execution_count": null, - "id": "61", + "id": "62", "metadata": {}, "outputs": [], "source": [ @@ -622,7 +645,7 @@ }, { "cell_type": "markdown", - "id": "62", + "id": "63", "metadata": {}, "source": [ "### Perform Fit 3/5\n", @@ -633,7 +656,7 @@ { "cell_type": "code", "execution_count": null, - "id": "63", + "id": "64", "metadata": {}, "outputs": [], "source": [ @@ -646,7 +669,7 @@ }, { "cell_type": "markdown", - "id": "64", + "id": "65", "metadata": {}, "source": [ "Show free parameters after selection." @@ -655,7 +678,7 @@ { "cell_type": "code", "execution_count": null, - "id": "65", + "id": "66", "metadata": {}, "outputs": [], "source": [ @@ -664,7 +687,7 @@ }, { "cell_type": "markdown", - "id": "66", + "id": "67", "metadata": {}, "source": [ "#### Run Fitting" @@ -673,7 +696,7 @@ { "cell_type": "code", "execution_count": null, - "id": "67", + "id": "68", "metadata": {}, "outputs": [], "source": [ @@ -682,7 +705,7 @@ }, { "cell_type": "markdown", - "id": "68", + "id": "69", "metadata": {}, "source": [ "#### Plot Measured vs Calculated" @@ -691,7 +714,7 @@ { "cell_type": "code", "execution_count": null, - "id": "69", + "id": "70", "metadata": {}, "outputs": [], "source": [ @@ -701,7 +724,7 @@ { "cell_type": "code", "execution_count": null, - "id": "70", + "id": "71", "metadata": {}, "outputs": [], "source": [ @@ -710,7 +733,7 @@ }, { "cell_type": "markdown", - "id": "71", + "id": "72", "metadata": {}, "source": [ "### Perform Fit 4/5\n", @@ -721,7 +744,7 @@ { "cell_type": "code", "execution_count": null, - "id": "72", + "id": "73", "metadata": {}, "outputs": [], "source": [ @@ -734,7 +757,7 @@ }, { "cell_type": "markdown", - "id": "73", + "id": "74", "metadata": {}, "source": [ "Show free parameters after selection." @@ -743,7 +766,7 @@ { "cell_type": "code", "execution_count": null, - "id": "74", + "id": "75", "metadata": {}, "outputs": [], "source": [ @@ -752,7 +775,7 @@ }, { "cell_type": "markdown", - "id": "75", + "id": "76", "metadata": {}, "source": [ "#### Run Fitting" @@ -761,7 +784,7 @@ { "cell_type": "code", "execution_count": null, - "id": "76", + "id": "77", "metadata": {}, "outputs": [], "source": [ @@ -770,7 +793,7 @@ }, { "cell_type": "markdown", - "id": "77", + "id": "78", "metadata": {}, "source": [ "#### Plot Measured vs Calculated" @@ -779,7 +802,7 @@ { "cell_type": "code", "execution_count": null, - "id": "78", + "id": "79", "metadata": {}, "outputs": [], "source": [ @@ -789,7 +812,7 @@ { "cell_type": "code", "execution_count": null, - "id": "79", + "id": "80", "metadata": {}, "outputs": [], "source": [ @@ -798,7 +821,7 @@ }, { "cell_type": "markdown", - "id": "80", + "id": "81", "metadata": {}, "source": [ "## Summary\n", @@ -808,7 +831,7 @@ }, { "cell_type": "markdown", - "id": "81", + "id": "82", "metadata": {}, "source": [ "#### Show Project Summary" @@ -817,7 +840,7 @@ { "cell_type": "code", "execution_count": null, - "id": "82", + "id": "83", "metadata": {}, "outputs": [], "source": [ @@ -827,7 +850,7 @@ ], "metadata": { "jupytext": { - "cell_metadata_filter": "-all", + "cell_metadata_filter": "tags,-all", "main_language": "python", "notebook_metadata_filter": "-all" } diff --git a/tutorials/cryst-struct_pd-neut-cwl_HS-HRPT.py b/tutorials/cryst-struct_pd-neut-cwl_HS-HRPT.py index ab0c97fe..4d1c0118 100644 --- a/tutorials/cryst-struct_pd-neut-cwl_HS-HRPT.py +++ b/tutorials/cryst-struct_pd-neut-cwl_HS-HRPT.py @@ -7,6 +7,18 @@ # %% [markdown] # ## Import Library +# %% tags=["hide_in_docs"] +# Check if the easydiffraction library is installed. +# If not, install it including the 'visualization' extras. +# This is needed, e.g., when running this as a notebook via Google Colab. +import builtins +import importlib.util + +if hasattr(builtins, '__IPYTHON__'): + if importlib.util.find_spec('easydiffraction') is None: + print('Installing the easydiffraction library...') + # !pip install 'easydiffraction[visualization]' + # %% from easydiffraction import Experiment from easydiffraction import Project diff --git a/tutorials/cryst-struct_pd-neut-tof_Si-SEPD.ipynb b/tutorials/cryst-struct_pd-neut-tof_Si-SEPD.ipynb index 1dc3ada7..74787584 100644 --- a/tutorials/cryst-struct_pd-neut-tof_Si-SEPD.ipynb +++ b/tutorials/cryst-struct_pd-neut-tof_Si-SEPD.ipynb @@ -23,6 +23,29 @@ "cell_type": "code", "execution_count": null, "id": "2", + "metadata": { + "tags": [ + "hide_in_docs" + ] + }, + "outputs": [], + "source": [ + "# Check if the easydiffraction library is installed.\n", + "# If not, install it including the 'visualization' extras.\n", + "# This is needed, e.g., when running this as a notebook via Google Colab.\n", + "import builtins\n", + "import importlib.util\n", + "\n", + "if hasattr(builtins, '__IPYTHON__'):\n", + " if importlib.util.find_spec('easydiffraction') is None:\n", + " print('Installing the easydiffraction library...')\n", + " # !pip install 'easydiffraction[visualization]'" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3", "metadata": {}, "outputs": [], "source": [ @@ -34,7 +57,7 @@ }, { "cell_type": "markdown", - "id": "3", + "id": "4", "metadata": {}, "source": [ "## Define Sample Model\n", @@ -47,7 +70,7 @@ { "cell_type": "code", "execution_count": null, - "id": "4", + "id": "5", "metadata": {}, "outputs": [], "source": [ @@ -56,7 +79,7 @@ }, { "cell_type": "markdown", - "id": "5", + "id": "6", "metadata": {}, "source": [ "#### Set Space Group" @@ -65,7 +88,7 @@ { "cell_type": "code", "execution_count": null, - "id": "6", + "id": "7", "metadata": {}, "outputs": [], "source": [ @@ -75,7 +98,7 @@ }, { "cell_type": "markdown", - "id": "7", + "id": "8", "metadata": {}, "source": [ "#### Set Unit Cell" @@ -84,7 +107,7 @@ { "cell_type": "code", "execution_count": null, - "id": "8", + "id": "9", "metadata": {}, "outputs": [], "source": [ @@ -93,7 +116,7 @@ }, { "cell_type": "markdown", - "id": "9", + "id": "10", "metadata": {}, "source": [ "#### Set Atom Sites" @@ -102,7 +125,7 @@ { "cell_type": "code", "execution_count": null, - "id": "10", + "id": "11", "metadata": {}, "outputs": [], "source": [ @@ -111,7 +134,7 @@ }, { "cell_type": "markdown", - "id": "11", + "id": "12", "metadata": {}, "source": [ "## Define Experiment\n", @@ -125,7 +148,7 @@ { "cell_type": "code", "execution_count": null, - "id": "12", + "id": "13", "metadata": {}, "outputs": [], "source": [ @@ -134,7 +157,7 @@ }, { "cell_type": "markdown", - "id": "13", + "id": "14", "metadata": {}, "source": [ "#### Create Experiment" @@ -143,7 +166,7 @@ { "cell_type": "code", "execution_count": null, - "id": "14", + "id": "15", "metadata": {}, "outputs": [], "source": [ @@ -152,7 +175,7 @@ }, { "cell_type": "markdown", - "id": "15", + "id": "16", "metadata": {}, "source": [ "#### Set Instrument" @@ -161,7 +184,7 @@ { "cell_type": "code", "execution_count": null, - "id": "16", + "id": "17", "metadata": {}, "outputs": [], "source": [ @@ -173,7 +196,7 @@ }, { "cell_type": "markdown", - "id": "17", + "id": "18", "metadata": {}, "source": [ "#### Set Peak Profile" @@ -182,7 +205,7 @@ { "cell_type": "code", "execution_count": null, - "id": "18", + "id": "19", "metadata": {}, "outputs": [], "source": [ @@ -196,7 +219,7 @@ }, { "cell_type": "markdown", - "id": "19", + "id": "20", "metadata": {}, "source": [ "#### Set Peak Asymmetry" @@ -205,7 +228,7 @@ { "cell_type": "code", "execution_count": null, - "id": "20", + "id": "21", "metadata": {}, "outputs": [], "source": [ @@ -215,7 +238,7 @@ }, { "cell_type": "markdown", - "id": "21", + "id": "22", "metadata": {}, "source": [ "#### Set Background" @@ -224,7 +247,7 @@ { "cell_type": "code", "execution_count": null, - "id": "22", + "id": "23", "metadata": {}, "outputs": [], "source": [ @@ -235,7 +258,7 @@ }, { "cell_type": "markdown", - "id": "23", + "id": "24", "metadata": {}, "source": [ "#### Set Linked Phases" @@ -244,7 +267,7 @@ { "cell_type": "code", "execution_count": null, - "id": "24", + "id": "25", "metadata": {}, "outputs": [], "source": [ @@ -253,7 +276,7 @@ }, { "cell_type": "markdown", - "id": "25", + "id": "26", "metadata": {}, "source": [ "## Define Project\n", @@ -267,7 +290,7 @@ { "cell_type": "code", "execution_count": null, - "id": "26", + "id": "27", "metadata": {}, "outputs": [], "source": [ @@ -276,7 +299,7 @@ }, { "cell_type": "markdown", - "id": "27", + "id": "28", "metadata": {}, "source": [ "#### Set Plotting Engine" @@ -285,7 +308,7 @@ { "cell_type": "code", "execution_count": null, - "id": "28", + "id": "29", "metadata": {}, "outputs": [], "source": [ @@ -294,7 +317,7 @@ }, { "cell_type": "markdown", - "id": "29", + "id": "30", "metadata": {}, "source": [ "#### Add Sample Model" @@ -303,7 +326,7 @@ { "cell_type": "code", "execution_count": null, - "id": "30", + "id": "31", "metadata": {}, "outputs": [], "source": [ @@ -312,7 +335,7 @@ }, { "cell_type": "markdown", - "id": "31", + "id": "32", "metadata": {}, "source": [ "#### Add Experiment" @@ -321,7 +344,7 @@ { "cell_type": "code", "execution_count": null, - "id": "32", + "id": "33", "metadata": {}, "outputs": [], "source": [ @@ -330,7 +353,7 @@ }, { "cell_type": "markdown", - "id": "33", + "id": "34", "metadata": {}, "source": [ "## Perform Analysis\n", @@ -344,7 +367,7 @@ { "cell_type": "code", "execution_count": null, - "id": "34", + "id": "35", "metadata": {}, "outputs": [], "source": [ @@ -353,7 +376,7 @@ }, { "cell_type": "markdown", - "id": "35", + "id": "36", "metadata": {}, "source": [ "#### Set Minimizer" @@ -362,7 +385,7 @@ { "cell_type": "code", "execution_count": null, - "id": "36", + "id": "37", "metadata": {}, "outputs": [], "source": [ @@ -371,7 +394,7 @@ }, { "cell_type": "markdown", - "id": "37", + "id": "38", "metadata": {}, "source": [ "#### Plot Measured vs Calculated" @@ -380,7 +403,7 @@ { "cell_type": "code", "execution_count": null, - "id": "38", + "id": "39", "metadata": {}, "outputs": [], "source": [ @@ -390,7 +413,7 @@ }, { "cell_type": "markdown", - "id": "39", + "id": "40", "metadata": {}, "source": [ "### Perform Fit 1/5\n", @@ -401,7 +424,7 @@ { "cell_type": "code", "execution_count": null, - "id": "40", + "id": "41", "metadata": {}, "outputs": [], "source": [ @@ -413,7 +436,7 @@ }, { "cell_type": "markdown", - "id": "41", + "id": "42", "metadata": {}, "source": [ "Show free parameters after selection." @@ -422,7 +445,7 @@ { "cell_type": "code", "execution_count": null, - "id": "42", + "id": "43", "metadata": {}, "outputs": [], "source": [ @@ -431,7 +454,7 @@ }, { "cell_type": "markdown", - "id": "43", + "id": "44", "metadata": {}, "source": [ "#### Run Fitting" @@ -440,7 +463,7 @@ { "cell_type": "code", "execution_count": null, - "id": "44", + "id": "45", "metadata": {}, "outputs": [], "source": [ @@ -449,7 +472,7 @@ }, { "cell_type": "markdown", - "id": "45", + "id": "46", "metadata": {}, "source": [ "#### Plot Measured vs Calculated" @@ -458,7 +481,7 @@ { "cell_type": "code", "execution_count": null, - "id": "46", + "id": "47", "metadata": {}, "outputs": [], "source": [ @@ -468,7 +491,7 @@ { "cell_type": "code", "execution_count": null, - "id": "47", + "id": "48", "metadata": {}, "outputs": [], "source": [ @@ -477,7 +500,7 @@ }, { "cell_type": "markdown", - "id": "48", + "id": "49", "metadata": {}, "source": [ "### Perform Fit 2/5\n", @@ -488,7 +511,7 @@ { "cell_type": "code", "execution_count": null, - "id": "49", + "id": "50", "metadata": {}, "outputs": [], "source": [ @@ -498,7 +521,7 @@ }, { "cell_type": "markdown", - "id": "50", + "id": "51", "metadata": {}, "source": [ "Show free parameters after selection." @@ -507,7 +530,7 @@ { "cell_type": "code", "execution_count": null, - "id": "51", + "id": "52", "metadata": {}, "outputs": [], "source": [ @@ -516,7 +539,7 @@ }, { "cell_type": "markdown", - "id": "52", + "id": "53", "metadata": {}, "source": [ "#### Run Fitting" @@ -525,7 +548,7 @@ { "cell_type": "code", "execution_count": null, - "id": "53", + "id": "54", "metadata": {}, "outputs": [], "source": [ @@ -534,7 +557,7 @@ }, { "cell_type": "markdown", - "id": "54", + "id": "55", "metadata": {}, "source": [ "#### Plot Measured vs Calculated" @@ -543,7 +566,7 @@ { "cell_type": "code", "execution_count": null, - "id": "55", + "id": "56", "metadata": {}, "outputs": [], "source": [ @@ -553,7 +576,7 @@ { "cell_type": "code", "execution_count": null, - "id": "56", + "id": "57", "metadata": {}, "outputs": [], "source": [ @@ -562,7 +585,7 @@ }, { "cell_type": "markdown", - "id": "57", + "id": "58", "metadata": {}, "source": [ "### Perform Fit 3/5\n", @@ -573,7 +596,7 @@ { "cell_type": "code", "execution_count": null, - "id": "58", + "id": "59", "metadata": {}, "outputs": [], "source": [ @@ -583,7 +606,7 @@ }, { "cell_type": "markdown", - "id": "59", + "id": "60", "metadata": {}, "source": [ "Set more parameters to be refined." @@ -592,7 +615,7 @@ { "cell_type": "code", "execution_count": null, - "id": "60", + "id": "61", "metadata": {}, "outputs": [], "source": [ @@ -603,7 +626,7 @@ }, { "cell_type": "markdown", - "id": "61", + "id": "62", "metadata": {}, "source": [ "Show free parameters after selection." @@ -612,7 +635,7 @@ { "cell_type": "code", "execution_count": null, - "id": "62", + "id": "63", "metadata": {}, "outputs": [], "source": [ @@ -621,7 +644,7 @@ }, { "cell_type": "markdown", - "id": "63", + "id": "64", "metadata": {}, "source": [ "#### Run Fitting" @@ -630,7 +653,7 @@ { "cell_type": "code", "execution_count": null, - "id": "64", + "id": "65", "metadata": {}, "outputs": [], "source": [ @@ -639,7 +662,7 @@ }, { "cell_type": "markdown", - "id": "65", + "id": "66", "metadata": {}, "source": [ "#### Plot Measured vs Calculated" @@ -648,7 +671,7 @@ { "cell_type": "code", "execution_count": null, - "id": "66", + "id": "67", "metadata": {}, "outputs": [], "source": [ @@ -658,7 +681,7 @@ { "cell_type": "code", "execution_count": null, - "id": "67", + "id": "68", "metadata": {}, "outputs": [], "source": [ @@ -667,7 +690,7 @@ }, { "cell_type": "markdown", - "id": "68", + "id": "69", "metadata": {}, "source": [ "### Perform Fit 4/5\n", @@ -678,7 +701,7 @@ { "cell_type": "code", "execution_count": null, - "id": "69", + "id": "70", "metadata": {}, "outputs": [], "source": [ @@ -687,7 +710,7 @@ }, { "cell_type": "markdown", - "id": "70", + "id": "71", "metadata": {}, "source": [ "Show free parameters after selection." @@ -696,7 +719,7 @@ { "cell_type": "code", "execution_count": null, - "id": "71", + "id": "72", "metadata": {}, "outputs": [], "source": [ @@ -705,7 +728,7 @@ }, { "cell_type": "markdown", - "id": "72", + "id": "73", "metadata": {}, "source": [ "#### Run Fitting" @@ -714,7 +737,7 @@ { "cell_type": "code", "execution_count": null, - "id": "73", + "id": "74", "metadata": {}, "outputs": [], "source": [ @@ -723,7 +746,7 @@ }, { "cell_type": "markdown", - "id": "74", + "id": "75", "metadata": {}, "source": [ "#### Plot Measured vs Calculated" @@ -732,7 +755,7 @@ { "cell_type": "code", "execution_count": null, - "id": "75", + "id": "76", "metadata": {}, "outputs": [], "source": [ @@ -742,7 +765,7 @@ { "cell_type": "code", "execution_count": null, - "id": "76", + "id": "77", "metadata": {}, "outputs": [], "source": [ @@ -752,7 +775,7 @@ ], "metadata": { "jupytext": { - "cell_metadata_filter": "-all", + "cell_metadata_filter": "tags,-all", "main_language": "python", "notebook_metadata_filter": "-all" } diff --git a/tutorials/cryst-struct_pd-neut-tof_Si-SEPD.py b/tutorials/cryst-struct_pd-neut-tof_Si-SEPD.py index db37839d..b24f645c 100644 --- a/tutorials/cryst-struct_pd-neut-tof_Si-SEPD.py +++ b/tutorials/cryst-struct_pd-neut-tof_Si-SEPD.py @@ -7,6 +7,18 @@ # %% [markdown] # ## Import Library +# %% tags=["hide_in_docs"] +# Check if the easydiffraction library is installed. +# If not, install it including the 'visualization' extras. +# This is needed, e.g., when running this as a notebook via Google Colab. +import builtins +import importlib.util + +if hasattr(builtins, '__IPYTHON__'): + if importlib.util.find_spec('easydiffraction') is None: + print('Installing the easydiffraction library...') + # !pip install 'easydiffraction[visualization]' + # %% from easydiffraction import Experiment from easydiffraction import Project diff --git a/tutorials/cryst-struct_pd-neut-tof_multidata_NCAF-WISH.ipynb b/tutorials/cryst-struct_pd-neut-tof_multidata_NCAF-WISH.ipynb index 006711c3..1823e82f 100644 --- a/tutorials/cryst-struct_pd-neut-tof_multidata_NCAF-WISH.ipynb +++ b/tutorials/cryst-struct_pd-neut-tof_multidata_NCAF-WISH.ipynb @@ -26,6 +26,29 @@ "cell_type": "code", "execution_count": null, "id": "2", + "metadata": { + "tags": [ + "hide_in_docs" + ] + }, + "outputs": [], + "source": [ + "# Check if the easydiffraction library is installed.\n", + "# If not, install it including the 'visualization' extras.\n", + "# This is needed, e.g., when running this as a notebook via Google Colab.\n", + "import builtins\n", + "import importlib.util\n", + "\n", + "if hasattr(builtins, '__IPYTHON__'):\n", + " if importlib.util.find_spec('easydiffraction') is None:\n", + " print('Installing the easydiffraction library...')\n", + " # !pip install 'easydiffraction[visualization]'" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3", "metadata": {}, "outputs": [], "source": [ @@ -37,7 +60,7 @@ }, { "cell_type": "markdown", - "id": "3", + "id": "4", "metadata": {}, "source": [ "## Define Sample Model\n", @@ -50,7 +73,7 @@ { "cell_type": "code", "execution_count": null, - "id": "4", + "id": "5", "metadata": {}, "outputs": [], "source": [ @@ -59,7 +82,7 @@ }, { "cell_type": "markdown", - "id": "5", + "id": "6", "metadata": {}, "source": [ "#### Set Space Group" @@ -68,7 +91,7 @@ { "cell_type": "code", "execution_count": null, - "id": "6", + "id": "7", "metadata": {}, "outputs": [], "source": [ @@ -78,7 +101,7 @@ }, { "cell_type": "markdown", - "id": "7", + "id": "8", "metadata": {}, "source": [ "#### Set Unit Cell" @@ -87,7 +110,7 @@ { "cell_type": "code", "execution_count": null, - "id": "8", + "id": "9", "metadata": {}, "outputs": [], "source": [ @@ -96,7 +119,7 @@ }, { "cell_type": "markdown", - "id": "9", + "id": "10", "metadata": {}, "source": [ "#### Set Atom Sites" @@ -105,21 +128,21 @@ { "cell_type": "code", "execution_count": null, - "id": "10", + "id": "11", "metadata": {}, "outputs": [], "source": [ - "model.atom_sites.add('Ca', 'Ca', 0.4665, 0.0, 0.25, wyckoff_letter='b', b_iso=0.92)\n", - "model.atom_sites.add('Al', 'Al', 0.2520, 0.2520, 0.2520, wyckoff_letter='a', b_iso=0.73)\n", - "model.atom_sites.add('Na', 'Na', 0.0852, 0.0852, 0.0852, wyckoff_letter='a', b_iso=2.08)\n", - "model.atom_sites.add('F1', 'F', 0.1376, 0.3055, 0.1196, wyckoff_letter='c', b_iso=0.90)\n", - "model.atom_sites.add('F2', 'F', 0.3623, 0.3631, 0.1870, wyckoff_letter='c', b_iso=1.37)\n", - "model.atom_sites.add('F3', 'F', 0.4611, 0.4611, 0.4611, wyckoff_letter='a', b_iso=0.88)" + "model.atom_sites.add('Ca', 'Ca', 0.4663, 0.0, 0.25, wyckoff_letter='b', b_iso=0.92)\n", + "model.atom_sites.add('Al', 'Al', 0.2521, 0.2521, 0.2521, wyckoff_letter='a', b_iso=0.73)\n", + "model.atom_sites.add('Na', 'Na', 0.0851, 0.0851, 0.0851, wyckoff_letter='a', b_iso=2.08)\n", + "model.atom_sites.add('F1', 'F', 0.1377, 0.3054, 0.1195, wyckoff_letter='c', b_iso=0.90)\n", + "model.atom_sites.add('F2', 'F', 0.3625, 0.3633, 0.1867, wyckoff_letter='c', b_iso=1.37)\n", + "model.atom_sites.add('F3', 'F', 0.4612, 0.4612, 0.4612, wyckoff_letter='a', b_iso=0.88)" ] }, { "cell_type": "markdown", - "id": "11", + "id": "12", "metadata": {}, "source": [ "## Define Experiment\n", @@ -133,26 +156,32 @@ { "cell_type": "code", "execution_count": null, - "id": "12", + "id": "13", "metadata": {}, "outputs": [], "source": [ - "download_from_repository('wish_ncaf_5_6.xys', destination='data')" + "download_from_repository(\n", + " 'wish_ncaf_5_6.xys',\n", + " destination='data',\n", + ")" ] }, { "cell_type": "code", "execution_count": null, - "id": "13", + "id": "14", "metadata": {}, "outputs": [], "source": [ - "download_from_repository('wish_ncaf_4_7.xys', destination='data')" + "download_from_repository(\n", + " 'wish_ncaf_4_7.xys',\n", + " destination='data',\n", + ")" ] }, { "cell_type": "markdown", - "id": "14", + "id": "15", "metadata": {}, "source": [ "#### Create Experiment" @@ -161,26 +190,34 @@ { "cell_type": "code", "execution_count": null, - "id": "15", + "id": "16", "metadata": {}, "outputs": [], "source": [ - "expt56 = Experiment('wish_5_6', beam_mode='time-of-flight', data_path='data/wish_ncaf_5_6.xys')" + "expt56 = Experiment(\n", + " 'wish_5_6',\n", + " beam_mode='time-of-flight',\n", + " data_path='data/wish_ncaf_5_6.xys',\n", + ")" ] }, { "cell_type": "code", "execution_count": null, - "id": "16", + "id": "17", "metadata": {}, "outputs": [], "source": [ - "expt47 = Experiment('wish_4_7', beam_mode='time-of-flight', data_path='data/wish_ncaf_4_7.xys')" + "expt47 = Experiment(\n", + " 'wish_4_7',\n", + " beam_mode='time-of-flight',\n", + " data_path='data/wish_ncaf_4_7.xys',\n", + ")" ] }, { "cell_type": "markdown", - "id": "17", + "id": "18", "metadata": {}, "source": [ "#### Set Instrument" @@ -189,32 +226,32 @@ { "cell_type": "code", "execution_count": null, - "id": "18", + "id": "19", "metadata": {}, "outputs": [], "source": [ "expt56.instrument.setup_twotheta_bank = 152.827\n", - "expt56.instrument.calib_d_to_tof_offset = -13.0\n", - "expt56.instrument.calib_d_to_tof_linear = 20752.1\n", + "expt56.instrument.calib_d_to_tof_offset = -13.5\n", + "expt56.instrument.calib_d_to_tof_linear = 20773.0\n", "expt56.instrument.calib_d_to_tof_quad = -1.08308" ] }, { "cell_type": "code", "execution_count": null, - "id": "19", + "id": "20", "metadata": {}, "outputs": [], "source": [ "expt47.instrument.setup_twotheta_bank = 121.660\n", "expt47.instrument.calib_d_to_tof_offset = -15.0\n", - "expt47.instrument.calib_d_to_tof_linear = 18640.7\n", + "expt47.instrument.calib_d_to_tof_linear = 18660.0\n", "expt47.instrument.calib_d_to_tof_quad = -0.47488" ] }, { "cell_type": "markdown", - "id": "20", + "id": "21", "metadata": {}, "source": [ "#### Set Peak Profile" @@ -223,38 +260,38 @@ { "cell_type": "code", "execution_count": null, - "id": "21", + "id": "22", "metadata": {}, "outputs": [], "source": [ "expt56.peak.broad_gauss_sigma_0 = 0.0\n", "expt56.peak.broad_gauss_sigma_1 = 0.0\n", - "expt56.peak.broad_gauss_sigma_2 = 15.0\n", - "expt56.peak.broad_mix_beta_0 = 0.01\n", + "expt56.peak.broad_gauss_sigma_2 = 15.5\n", + "expt56.peak.broad_mix_beta_0 = 0.007\n", "expt56.peak.broad_mix_beta_1 = 0.01\n", - "expt56.peak.asym_alpha_0 = -0.01\n", - "expt56.peak.asym_alpha_1 = 0.10" + "expt56.peak.asym_alpha_0 = -0.0094\n", + "expt56.peak.asym_alpha_1 = 0.1" ] }, { "cell_type": "code", "execution_count": null, - "id": "22", + "id": "23", "metadata": {}, "outputs": [], "source": [ "expt47.peak.broad_gauss_sigma_0 = 0.0\n", - "expt47.peak.broad_gauss_sigma_1 = 30.0\n", - "expt47.peak.broad_gauss_sigma_2 = 20.0\n", - "expt47.peak.broad_mix_beta_0 = 0.01\n", - "expt47.peak.broad_mix_beta_1 = 0.01\n", - "expt47.peak.asym_alpha_0 = -0.01\n", - "expt47.peak.asym_alpha_1 = 0.10" + "expt47.peak.broad_gauss_sigma_1 = 29.8\n", + "expt47.peak.broad_gauss_sigma_2 = 18.0\n", + "expt47.peak.broad_mix_beta_0 = 0.006\n", + "expt47.peak.broad_mix_beta_1 = 0.015\n", + "expt47.peak.asym_alpha_0 = -0.0115\n", + "expt47.peak.asym_alpha_1 = 0.1" ] }, { "cell_type": "markdown", - "id": "23", + "id": "24", "metadata": {}, "source": [ "#### Set Background" @@ -263,7 +300,7 @@ { "cell_type": "code", "execution_count": null, - "id": "24", + "id": "25", "metadata": {}, "outputs": [], "source": [ @@ -304,7 +341,7 @@ { "cell_type": "code", "execution_count": null, - "id": "25", + "id": "26", "metadata": {}, "outputs": [], "source": [ @@ -343,7 +380,7 @@ }, { "cell_type": "markdown", - "id": "26", + "id": "27", "metadata": {}, "source": [ "#### Set Linked Phases" @@ -352,7 +389,7 @@ { "cell_type": "code", "execution_count": null, - "id": "27", + "id": "28", "metadata": {}, "outputs": [], "source": [ @@ -362,7 +399,7 @@ { "cell_type": "code", "execution_count": null, - "id": "28", + "id": "29", "metadata": {}, "outputs": [], "source": [ @@ -371,7 +408,7 @@ }, { "cell_type": "markdown", - "id": "29", + "id": "30", "metadata": {}, "source": [ "#### Set Excluded Regions" @@ -380,7 +417,7 @@ { "cell_type": "code", "execution_count": null, - "id": "30", + "id": "31", "metadata": {}, "outputs": [], "source": [ @@ -391,7 +428,7 @@ { "cell_type": "code", "execution_count": null, - "id": "31", + "id": "32", "metadata": {}, "outputs": [], "source": [ @@ -401,7 +438,7 @@ }, { "cell_type": "markdown", - "id": "32", + "id": "33", "metadata": {}, "source": [ "## Define Project\n", @@ -415,7 +452,7 @@ { "cell_type": "code", "execution_count": null, - "id": "33", + "id": "34", "metadata": {}, "outputs": [], "source": [ @@ -424,7 +461,7 @@ }, { "cell_type": "markdown", - "id": "34", + "id": "35", "metadata": {}, "source": [ "#### Set Plotting Engine" @@ -433,7 +470,7 @@ { "cell_type": "code", "execution_count": null, - "id": "35", + "id": "36", "metadata": {}, "outputs": [], "source": [ @@ -442,7 +479,7 @@ }, { "cell_type": "markdown", - "id": "36", + "id": "37", "metadata": {}, "source": [ "#### Add Sample Model" @@ -451,7 +488,7 @@ { "cell_type": "code", "execution_count": null, - "id": "37", + "id": "38", "metadata": {}, "outputs": [], "source": [ @@ -460,7 +497,7 @@ }, { "cell_type": "markdown", - "id": "38", + "id": "39", "metadata": {}, "source": [ "#### Add Experiment" @@ -469,7 +506,7 @@ { "cell_type": "code", "execution_count": null, - "id": "39", + "id": "40", "metadata": {}, "outputs": [], "source": [ @@ -479,7 +516,7 @@ }, { "cell_type": "markdown", - "id": "40", + "id": "41", "metadata": {}, "source": [ "## Perform Analysis\n", @@ -493,7 +530,7 @@ { "cell_type": "code", "execution_count": null, - "id": "41", + "id": "42", "metadata": {}, "outputs": [], "source": [ @@ -502,7 +539,7 @@ }, { "cell_type": "markdown", - "id": "42", + "id": "43", "metadata": {}, "source": [ "#### Set Minimizer" @@ -511,7 +548,7 @@ { "cell_type": "code", "execution_count": null, - "id": "43", + "id": "44", "metadata": {}, "outputs": [], "source": [ @@ -520,7 +557,7 @@ }, { "cell_type": "markdown", - "id": "44", + "id": "45", "metadata": {}, "source": [ "#### Set Fit Mode" @@ -529,7 +566,7 @@ { "cell_type": "code", "execution_count": null, - "id": "45", + "id": "46", "metadata": {}, "outputs": [], "source": [ @@ -538,7 +575,7 @@ }, { "cell_type": "markdown", - "id": "46", + "id": "47", "metadata": {}, "source": [ "#### Set Free Parameters" @@ -547,21 +584,10 @@ { "cell_type": "code", "execution_count": null, - "id": "47", + "id": "48", "metadata": {}, "outputs": [], "source": [ - "model.atom_sites['Ca'].fract_x.free = True\n", - "model.atom_sites['Al'].fract_x.free = True\n", - "model.atom_sites['Na'].fract_x.free = True\n", - "model.atom_sites['F1'].fract_x.free = True\n", - "model.atom_sites['F1'].fract_y.free = True\n", - "model.atom_sites['F1'].fract_z.free = True\n", - "model.atom_sites['F2'].fract_x.free = True\n", - "model.atom_sites['F2'].fract_y.free = True\n", - "model.atom_sites['F2'].fract_z.free = True\n", - "model.atom_sites['F3'].fract_x.free = True\n", - "\n", "model.atom_sites['Ca'].b_iso.free = True\n", "model.atom_sites['Al'].b_iso.free = True\n", "model.atom_sites['Na'].b_iso.free = True\n", @@ -573,7 +599,7 @@ { "cell_type": "code", "execution_count": null, - "id": "48", + "id": "49", "metadata": {}, "outputs": [], "source": [ @@ -583,23 +609,20 @@ "expt56.peak.broad_gauss_sigma_2.free = True\n", "expt56.peak.broad_mix_beta_0.free = True\n", "expt56.peak.broad_mix_beta_1.free = True\n", - "expt56.peak.asym_alpha_0.free = True\n", "expt56.peak.asym_alpha_1.free = True\n", "\n", "expt47.linked_phases['ncaf'].scale.free = True\n", "expt47.instrument.calib_d_to_tof_linear.free = True\n", "expt47.instrument.calib_d_to_tof_offset.free = True\n", - "expt47.peak.broad_gauss_sigma_1.free = True\n", "expt47.peak.broad_gauss_sigma_2.free = True\n", "expt47.peak.broad_mix_beta_0.free = True\n", "expt47.peak.broad_mix_beta_1.free = True\n", - "expt47.peak.asym_alpha_0.free = True\n", "expt47.peak.asym_alpha_1.free = True" ] }, { "cell_type": "markdown", - "id": "49", + "id": "50", "metadata": {}, "source": [ "#### Plot Measured vs Calculated" @@ -608,7 +631,7 @@ { "cell_type": "code", "execution_count": null, - "id": "50", + "id": "51", "metadata": {}, "outputs": [], "source": [ @@ -618,7 +641,7 @@ { "cell_type": "code", "execution_count": null, - "id": "51", + "id": "52", "metadata": {}, "outputs": [], "source": [ @@ -627,7 +650,7 @@ }, { "cell_type": "markdown", - "id": "52", + "id": "53", "metadata": {}, "source": [ "#### Run Fitting" @@ -636,7 +659,7 @@ { "cell_type": "code", "execution_count": null, - "id": "53", + "id": "54", "metadata": {}, "outputs": [], "source": [ @@ -645,7 +668,7 @@ }, { "cell_type": "markdown", - "id": "54", + "id": "55", "metadata": {}, "source": [ "#### Plot Measured vs Calculated" @@ -654,7 +677,7 @@ { "cell_type": "code", "execution_count": null, - "id": "55", + "id": "56", "metadata": {}, "outputs": [], "source": [ @@ -664,7 +687,7 @@ { "cell_type": "code", "execution_count": null, - "id": "56", + "id": "57", "metadata": {}, "outputs": [], "source": [ @@ -673,7 +696,7 @@ }, { "cell_type": "markdown", - "id": "57", + "id": "58", "metadata": {}, "source": [ "## Summary\n", @@ -683,7 +706,7 @@ }, { "cell_type": "markdown", - "id": "58", + "id": "59", "metadata": {}, "source": [ "#### Show Project Summary" @@ -692,7 +715,7 @@ { "cell_type": "code", "execution_count": null, - "id": "59", + "id": "60", "metadata": {}, "outputs": [], "source": [ @@ -702,7 +725,7 @@ ], "metadata": { "jupytext": { - "cell_metadata_filter": "-all", + "cell_metadata_filter": "tags,-all", "main_language": "python", "notebook_metadata_filter": "-all" } diff --git a/tutorials/cryst-struct_pd-neut-tof_multidata_NCAF-WISH.py b/tutorials/cryst-struct_pd-neut-tof_multidata_NCAF-WISH.py index 238b02c4..1fc337ed 100644 --- a/tutorials/cryst-struct_pd-neut-tof_multidata_NCAF-WISH.py +++ b/tutorials/cryst-struct_pd-neut-tof_multidata_NCAF-WISH.py @@ -10,6 +10,18 @@ # %% [markdown] # ## Import Library +# %% tags=["hide_in_docs"] +# Check if the easydiffraction library is installed. +# If not, install it including the 'visualization' extras. +# This is needed, e.g., when running this as a notebook via Google Colab. +import builtins +import importlib.util + +if hasattr(builtins, '__IPYTHON__'): + if importlib.util.find_spec('easydiffraction') is None: + print('Installing the easydiffraction library...') + # !pip install 'easydiffraction[visualization]' + # %% from easydiffraction import Experiment from easydiffraction import Project diff --git a/tutorials/cryst-struct_pd-neut-tof_multiphase-LBCO-Si_McStas.ipynb b/tutorials/cryst-struct_pd-neut-tof_multiphase-LBCO-Si_McStas.ipynb index b3322579..36f14857 100644 --- a/tutorials/cryst-struct_pd-neut-tof_multiphase-LBCO-Si_McStas.ipynb +++ b/tutorials/cryst-struct_pd-neut-tof_multiphase-LBCO-Si_McStas.ipynb @@ -24,6 +24,29 @@ "cell_type": "code", "execution_count": null, "id": "2", + "metadata": { + "tags": [ + "hide_in_docs" + ] + }, + "outputs": [], + "source": [ + "# Check if the easydiffraction library is installed.\n", + "# If not, install it including the 'visualization' extras.\n", + "# This is needed, e.g., when running this as a notebook via Google Colab.\n", + "import builtins\n", + "import importlib.util\n", + "\n", + "if hasattr(builtins, '__IPYTHON__'):\n", + " if importlib.util.find_spec('easydiffraction') is None:\n", + " print('Installing the easydiffraction library...')\n", + " # !pip install 'easydiffraction[visualization]'" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3", "metadata": {}, "outputs": [], "source": [ @@ -35,7 +58,7 @@ }, { "cell_type": "markdown", - "id": "3", + "id": "4", "metadata": {}, "source": [ "## Define Sample Models\n", @@ -48,7 +71,7 @@ { "cell_type": "code", "execution_count": null, - "id": "4", + "id": "5", "metadata": {}, "outputs": [], "source": [ @@ -57,7 +80,7 @@ }, { "cell_type": "markdown", - "id": "5", + "id": "6", "metadata": {}, "source": [ "#### Set Space Group" @@ -66,7 +89,7 @@ { "cell_type": "code", "execution_count": null, - "id": "6", + "id": "7", "metadata": {}, "outputs": [], "source": [ @@ -76,7 +99,7 @@ }, { "cell_type": "markdown", - "id": "7", + "id": "8", "metadata": {}, "source": [ "#### Set Unit Cell" @@ -85,7 +108,7 @@ { "cell_type": "code", "execution_count": null, - "id": "8", + "id": "9", "metadata": {}, "outputs": [], "source": [ @@ -94,7 +117,7 @@ }, { "cell_type": "markdown", - "id": "9", + "id": "10", "metadata": {}, "source": [ "#### Set Atom Sites" @@ -103,7 +126,7 @@ { "cell_type": "code", "execution_count": null, - "id": "10", + "id": "11", "metadata": {}, "outputs": [], "source": [ @@ -149,7 +172,7 @@ }, { "cell_type": "markdown", - "id": "11", + "id": "12", "metadata": {}, "source": [ "### Create Sample Model 2: Si" @@ -158,7 +181,7 @@ { "cell_type": "code", "execution_count": null, - "id": "12", + "id": "13", "metadata": {}, "outputs": [], "source": [ @@ -167,7 +190,7 @@ }, { "cell_type": "markdown", - "id": "13", + "id": "14", "metadata": {}, "source": [ "#### Set Space Group" @@ -176,7 +199,7 @@ { "cell_type": "code", "execution_count": null, - "id": "14", + "id": "15", "metadata": {}, "outputs": [], "source": [ @@ -186,7 +209,7 @@ }, { "cell_type": "markdown", - "id": "15", + "id": "16", "metadata": {}, "source": [ "#### Set Unit Cell" @@ -195,7 +218,7 @@ { "cell_type": "code", "execution_count": null, - "id": "16", + "id": "17", "metadata": {}, "outputs": [], "source": [ @@ -204,7 +227,7 @@ }, { "cell_type": "markdown", - "id": "17", + "id": "18", "metadata": {}, "source": [ "#### Set Atom Sites" @@ -213,7 +236,7 @@ { "cell_type": "code", "execution_count": null, - "id": "18", + "id": "19", "metadata": {}, "outputs": [], "source": [ @@ -230,7 +253,7 @@ }, { "cell_type": "markdown", - "id": "19", + "id": "20", "metadata": {}, "source": [ "## Define Experiment\n", @@ -244,7 +267,7 @@ { "cell_type": "code", "execution_count": null, - "id": "20", + "id": "21", "metadata": {}, "outputs": [], "source": [ @@ -253,7 +276,7 @@ }, { "cell_type": "markdown", - "id": "21", + "id": "22", "metadata": {}, "source": [ "#### Create Experiment" @@ -262,7 +285,7 @@ { "cell_type": "code", "execution_count": null, - "id": "22", + "id": "23", "metadata": {}, "outputs": [], "source": [ @@ -278,7 +301,7 @@ }, { "cell_type": "markdown", - "id": "23", + "id": "24", "metadata": {}, "source": [ "#### Set Instrument" @@ -287,7 +310,7 @@ { "cell_type": "code", "execution_count": null, - "id": "24", + "id": "25", "metadata": {}, "outputs": [], "source": [ @@ -299,7 +322,7 @@ }, { "cell_type": "markdown", - "id": "25", + "id": "26", "metadata": {}, "source": [ "#### Set Peak Profile" @@ -308,7 +331,7 @@ { "cell_type": "code", "execution_count": null, - "id": "26", + "id": "27", "metadata": {}, "outputs": [], "source": [ @@ -324,7 +347,7 @@ }, { "cell_type": "markdown", - "id": "27", + "id": "28", "metadata": {}, "source": [ "#### Set Background" @@ -332,7 +355,7 @@ }, { "cell_type": "markdown", - "id": "28", + "id": "29", "metadata": {}, "source": [ "Select the background type." @@ -341,7 +364,7 @@ { "cell_type": "code", "execution_count": null, - "id": "29", + "id": "30", "metadata": {}, "outputs": [], "source": [ @@ -350,7 +373,7 @@ }, { "cell_type": "markdown", - "id": "30", + "id": "31", "metadata": {}, "source": [ "Add background points." @@ -359,7 +382,7 @@ { "cell_type": "code", "execution_count": null, - "id": "31", + "id": "32", "metadata": {}, "outputs": [], "source": [ @@ -380,7 +403,7 @@ }, { "cell_type": "markdown", - "id": "32", + "id": "33", "metadata": {}, "source": [ "#### Set Linked Phases" @@ -389,7 +412,7 @@ { "cell_type": "code", "execution_count": null, - "id": "33", + "id": "34", "metadata": {}, "outputs": [], "source": [ @@ -399,7 +422,7 @@ }, { "cell_type": "markdown", - "id": "34", + "id": "35", "metadata": {}, "source": [ "## Define Project\n", @@ -412,7 +435,7 @@ { "cell_type": "code", "execution_count": null, - "id": "35", + "id": "36", "metadata": {}, "outputs": [], "source": [ @@ -421,7 +444,7 @@ }, { "cell_type": "markdown", - "id": "36", + "id": "37", "metadata": {}, "source": [ "#### Set Plotting Engine" @@ -430,7 +453,7 @@ { "cell_type": "code", "execution_count": null, - "id": "37", + "id": "38", "metadata": {}, "outputs": [], "source": [ @@ -439,7 +462,7 @@ }, { "cell_type": "markdown", - "id": "38", + "id": "39", "metadata": {}, "source": [ "#### Add Sample Models" @@ -448,7 +471,7 @@ { "cell_type": "code", "execution_count": null, - "id": "39", + "id": "40", "metadata": {}, "outputs": [], "source": [ @@ -458,7 +481,7 @@ }, { "cell_type": "markdown", - "id": "40", + "id": "41", "metadata": {}, "source": [ "#### Show Sample Models" @@ -467,7 +490,7 @@ { "cell_type": "code", "execution_count": null, - "id": "41", + "id": "42", "metadata": {}, "outputs": [], "source": [ @@ -476,7 +499,7 @@ }, { "cell_type": "markdown", - "id": "42", + "id": "43", "metadata": {}, "source": [ "#### Add Experiments" @@ -485,7 +508,7 @@ { "cell_type": "code", "execution_count": null, - "id": "43", + "id": "44", "metadata": {}, "outputs": [], "source": [ @@ -494,7 +517,7 @@ }, { "cell_type": "markdown", - "id": "44", + "id": "45", "metadata": {}, "source": [ "#### Set Excluded Regions\n", @@ -505,7 +528,7 @@ { "cell_type": "code", "execution_count": null, - "id": "45", + "id": "46", "metadata": {}, "outputs": [], "source": [ @@ -514,7 +537,7 @@ }, { "cell_type": "markdown", - "id": "46", + "id": "47", "metadata": {}, "source": [ "Add excluded regions." @@ -523,7 +546,7 @@ { "cell_type": "code", "execution_count": null, - "id": "47", + "id": "48", "metadata": {}, "outputs": [], "source": [ @@ -533,7 +556,7 @@ }, { "cell_type": "markdown", - "id": "48", + "id": "49", "metadata": {}, "source": [ "Show excluded regions." @@ -542,7 +565,7 @@ { "cell_type": "code", "execution_count": null, - "id": "49", + "id": "50", "metadata": {}, "outputs": [], "source": [ @@ -551,7 +574,7 @@ }, { "cell_type": "markdown", - "id": "50", + "id": "51", "metadata": {}, "source": [ "Show measured data after adding excluded regions." @@ -560,7 +583,7 @@ { "cell_type": "code", "execution_count": null, - "id": "51", + "id": "52", "metadata": {}, "outputs": [], "source": [ @@ -569,7 +592,7 @@ }, { "cell_type": "markdown", - "id": "52", + "id": "53", "metadata": {}, "source": [ "Show experiment as CIF." @@ -578,7 +601,7 @@ { "cell_type": "code", "execution_count": null, - "id": "53", + "id": "54", "metadata": {}, "outputs": [], "source": [ @@ -587,7 +610,7 @@ }, { "cell_type": "markdown", - "id": "54", + "id": "55", "metadata": {}, "source": [ "## Perform Analysis\n", @@ -601,7 +624,7 @@ { "cell_type": "code", "execution_count": null, - "id": "55", + "id": "56", "metadata": {}, "outputs": [], "source": [ @@ -610,7 +633,7 @@ }, { "cell_type": "markdown", - "id": "56", + "id": "57", "metadata": {}, "source": [ "#### Set Minimizer" @@ -619,7 +642,7 @@ { "cell_type": "code", "execution_count": null, - "id": "57", + "id": "58", "metadata": {}, "outputs": [], "source": [ @@ -628,7 +651,7 @@ }, { "cell_type": "markdown", - "id": "58", + "id": "59", "metadata": {}, "source": [ "#### Set Fitting Parameters\n", @@ -639,7 +662,7 @@ { "cell_type": "code", "execution_count": null, - "id": "59", + "id": "60", "metadata": {}, "outputs": [], "source": [ @@ -652,7 +675,7 @@ }, { "cell_type": "markdown", - "id": "60", + "id": "61", "metadata": {}, "source": [ "Set experiment parameters to be optimized." @@ -661,7 +684,7 @@ { "cell_type": "code", "execution_count": null, - "id": "61", + "id": "62", "metadata": {}, "outputs": [], "source": [ @@ -682,7 +705,7 @@ }, { "cell_type": "markdown", - "id": "62", + "id": "63", "metadata": {}, "source": [ "#### Perform Fit" @@ -691,7 +714,7 @@ { "cell_type": "code", "execution_count": null, - "id": "63", + "id": "64", "metadata": {}, "outputs": [], "source": [ @@ -700,7 +723,7 @@ }, { "cell_type": "markdown", - "id": "64", + "id": "65", "metadata": {}, "source": [ "#### Plot Measured vs Calculated" @@ -709,7 +732,7 @@ { "cell_type": "code", "execution_count": null, - "id": "65", + "id": "66", "metadata": {}, "outputs": [], "source": [ @@ -719,7 +742,7 @@ ], "metadata": { "jupytext": { - "cell_metadata_filter": "-all", + "cell_metadata_filter": "tags,-all", "main_language": "python", "notebook_metadata_filter": "-all" } diff --git a/tutorials/cryst-struct_pd-neut-tof_multiphase-LBCO-Si_McStas.py b/tutorials/cryst-struct_pd-neut-tof_multiphase-LBCO-Si_McStas.py index 73f62d97..ea557c2a 100644 --- a/tutorials/cryst-struct_pd-neut-tof_multiphase-LBCO-Si_McStas.py +++ b/tutorials/cryst-struct_pd-neut-tof_multiphase-LBCO-Si_McStas.py @@ -8,6 +8,18 @@ # %% [markdown] # ## Import Library +# %% tags=["hide_in_docs"] +# Check if the easydiffraction library is installed. +# If not, install it including the 'visualization' extras. +# This is needed, e.g., when running this as a notebook via Google Colab. +import builtins +import importlib.util + +if hasattr(builtins, '__IPYTHON__'): + if importlib.util.find_spec('easydiffraction') is None: + print('Installing the easydiffraction library...') + # !pip install 'easydiffraction[visualization]' + # %% from easydiffraction import Experiment from easydiffraction import Project diff --git a/tutorials/dmsc-summer-school-2025_analysis-powder-diffraction.ipynb b/tutorials/dmsc-summer-school-2025_analysis-powder-diffraction.ipynb index 690d629e..fb94399c 100644 --- a/tutorials/dmsc-summer-school-2025_analysis-powder-diffraction.ipynb +++ b/tutorials/dmsc-summer-school-2025_analysis-powder-diffraction.ipynb @@ -10,8 +10,49 @@ "This tutorial guides you through the Rietveld refinement of crystal\n", "structures using simulated powder diffraction data. It consists of two parts:\n", "- Introduction: A simple reference fit using silicon (Si) crystal structure.\n", - "- Exercise: A more complex fit using La₀.₅Ba₀.₅CoO₃ (LBCO) crystal structure.\n", + "- Exercise: A more complex fit using La₀.₅Ba₀.₅CoO₃ (LBCO) crystal structure." + ] + }, + { + "cell_type": "markdown", + "id": "1", + "metadata": { + "tags": [ + "hide_in_docs" + ] + }, + "source": [ + "## Install Dependencies" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2", + "metadata": { + "tags": [ + "hide_in_docs" + ] + }, + "outputs": [], + "source": [ + "# Check if the easydiffraction library is installed.\n", + "# If not, install it including the 'visualization' extras.\n", + "# This is needed, e.g., when running this as a notebook via Google Colab.\n", + "import builtins\n", + "import importlib.util\n", "\n", + "if hasattr(builtins, '__IPYTHON__'):\n", + " if importlib.util.find_spec('easydiffraction') is None:\n", + " print('Installing the easydiffraction library...')\n", + " # !pip install 'easydiffraction[visualization]'" + ] + }, + { + "cell_type": "markdown", + "id": "3", + "metadata": {}, + "source": [ "## 🛠️ Import Library\n", "\n", "We start by importing the necessary library for the analysis. In this\n", @@ -31,25 +72,7 @@ { "cell_type": "code", "execution_count": null, - "id": "1", - "metadata": {}, - "outputs": [], - "source": [ - "# Needed for the Google Colab environment.\n", - "# Install the easydiffraction library if it is not already installed.\n", - "import builtins\n", - "import importlib.util\n", - "\n", - "if hasattr(builtins, '__IPYTHON__'):\n", - " if importlib.util.find_spec('easydiffraction') is None:\n", - " print('Installing the easydiffraction library...')\n", - " !pip install git+https://github.com/easyscience/diffraction-lib@d-spacing" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "2", + "id": "4", "metadata": {}, "outputs": [], "source": [ @@ -58,7 +81,7 @@ }, { "cell_type": "markdown", - "id": "3", + "id": "5", "metadata": {}, "source": [ "## 📘 Introduction: Simple Reference Fit – Si\n", @@ -86,7 +109,7 @@ { "cell_type": "code", "execution_count": null, - "id": "4", + "id": "6", "metadata": {}, "outputs": [], "source": [ @@ -95,7 +118,7 @@ }, { "cell_type": "markdown", - "id": "5", + "id": "7", "metadata": {}, "source": [ "\n", @@ -108,7 +131,7 @@ { "cell_type": "code", "execution_count": null, - "id": "6", + "id": "8", "metadata": {}, "outputs": [], "source": [ @@ -118,7 +141,7 @@ }, { "cell_type": "markdown", - "id": "7", + "id": "9", "metadata": {}, "source": [ "### 🔬 Create an Experiment\n", @@ -130,35 +153,56 @@ "\n", "In this case, the experiment is defined as a powder diffraction measurement\n", "using time-of-flight neutrons. The measured data is loaded from a file\n", - "containing the reduced diffraction pattern of Si from the data reduction tutorial." + "containing the reduced diffraction pattern of Si from the data reduction\n", + "tutorial." ] }, { "cell_type": "code", "execution_count": null, - "id": "8", + "id": "10", "metadata": {}, "outputs": [], "source": [ - "# To load the measured data from the EasyDiffraction repository, as\n", - "# Google Colab does not have the data files needed for this tutorial.\n", - "ed.download_from_repository('reduced_Si.xye', destination='data')" + "si_xye_path = '../4-reduction/reduced_Si.xye'" + ] + }, + { + "cell_type": "markdown", + "id": "11", + "metadata": {}, + "source": [ + "Use the following cell if your data reduction failed and the reduced data\n", + "file is missing. In this case, you can download our pre-generated reduced\n", + "data file from the EasyDiffraction repository.\n", + "\n", + "The `download_from_repository` function will not overwrite an existing file\n", + "unless you set `overwrite=True`, so it's safe to run even if the file is\n", + "already present." ] }, { "cell_type": "code", "execution_count": null, - "id": "9", + "id": "12", "metadata": {}, "outputs": [], "source": [ - "si_xye_path = 'data/reduced_Si.xye'" + "ed.download_from_repository('reduced_Si.xye', destination='../4-reduction')" + ] + }, + { + "cell_type": "markdown", + "id": "13", + "metadata": {}, + "source": [ + "Now we can create the experiment and load the measured data." ] }, { "cell_type": "code", "execution_count": null, - "id": "10", + "id": "14", "metadata": {}, "outputs": [], "source": [ @@ -173,7 +217,7 @@ }, { "cell_type": "markdown", - "id": "11", + "id": "15", "metadata": {}, "source": [ "#### Inspect Measured Data\n", @@ -187,26 +231,13 @@ "columns: TOF, intensity, and intensity error (if available).\n", "\n", "The `plot_meas` method of the project enables us to visualize the measured\n", - "diffraction pattern.\n", - "\n", - "Before plotting, we set the plotting engine to 'plotly', which provides\n", - "interactive visualizations." + "diffraction pattern." ] }, { "cell_type": "code", "execution_count": null, - "id": "12", - "metadata": {}, - "outputs": [], - "source": [ - "project_1.plotter.engine = 'plotly'" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "13", + "id": "16", "metadata": {}, "outputs": [], "source": [ @@ -215,7 +246,7 @@ }, { "cell_type": "markdown", - "id": "14", + "id": "17", "metadata": {}, "source": [ "If you zoom in on the highest TOF peak (around 120,000 μs), you will notice\n", @@ -230,7 +261,7 @@ { "cell_type": "code", "execution_count": null, - "id": "15", + "id": "18", "metadata": {}, "outputs": [], "source": [ @@ -240,7 +271,7 @@ }, { "cell_type": "markdown", - "id": "16", + "id": "19", "metadata": {}, "source": [ "To visualize the effect of excluding the high TOF region, we can plot\n", @@ -251,7 +282,7 @@ { "cell_type": "code", "execution_count": null, - "id": "17", + "id": "20", "metadata": {}, "outputs": [], "source": [ @@ -260,7 +291,7 @@ }, { "cell_type": "markdown", - "id": "18", + "id": "21", "metadata": {}, "source": [ "#### Set Instrument Parameters\n", @@ -283,7 +314,7 @@ { "cell_type": "code", "execution_count": null, - "id": "19", + "id": "22", "metadata": {}, "outputs": [], "source": [ @@ -293,7 +324,7 @@ }, { "cell_type": "markdown", - "id": "20", + "id": "23", "metadata": {}, "source": [ "Every parameters is an object, which has different attributes, such as\n", @@ -306,7 +337,7 @@ { "cell_type": "code", "execution_count": null, - "id": "21", + "id": "24", "metadata": {}, "outputs": [], "source": [ @@ -315,7 +346,7 @@ }, { "cell_type": "markdown", - "id": "22", + "id": "25", "metadata": {}, "source": [ "The `value` attribute represents the current value of the parameter as a float.\n", @@ -329,7 +360,7 @@ { "cell_type": "code", "execution_count": null, - "id": "23", + "id": "26", "metadata": {}, "outputs": [], "source": [ @@ -338,7 +369,7 @@ }, { "cell_type": "markdown", - "id": "24", + "id": "27", "metadata": {}, "source": [ "Note that to set the value of the parameter, you can simply assign a new value\n", @@ -347,7 +378,7 @@ }, { "cell_type": "markdown", - "id": "25", + "id": "28", "metadata": {}, "source": [ "#### Set Peak Profile Parameters\n", @@ -364,14 +395,14 @@ "of a standard sample. We consider this Si sample as a standard reference.\n", "Therefore, we will set the initial values of the peak profile parameters based\n", "on the values obtained from another simulation and refine them during the\n", - "fitting process. The refined parameters will be used as a starting point for the\n", - "more complex fit in the next part of the tutorial." + "fitting process. The refined parameters will be used as a starting point for\n", + "the more complex fit in the next part of the tutorial." ] }, { "cell_type": "code", "execution_count": null, - "id": "26", + "id": "29", "metadata": {}, "outputs": [], "source": [ @@ -387,7 +418,7 @@ }, { "cell_type": "markdown", - "id": "27", + "id": "30", "metadata": {}, "source": [ "#### Set Background\n", @@ -421,7 +452,7 @@ { "cell_type": "code", "execution_count": null, - "id": "28", + "id": "31", "metadata": {}, "outputs": [], "source": [ @@ -437,7 +468,7 @@ }, { "cell_type": "markdown", - "id": "29", + "id": "32", "metadata": {}, "source": [ "### 🧩 Create a Sample Model – Si\n", @@ -479,7 +510,7 @@ }, { "cell_type": "markdown", - "id": "30", + "id": "33", "metadata": {}, "source": [ "```\n", @@ -511,7 +542,7 @@ }, { "cell_type": "markdown", - "id": "31", + "id": "34", "metadata": {}, "source": [ "\n", @@ -525,7 +556,7 @@ { "cell_type": "code", "execution_count": null, - "id": "32", + "id": "35", "metadata": {}, "outputs": [], "source": [ @@ -534,7 +565,7 @@ }, { "cell_type": "markdown", - "id": "33", + "id": "36", "metadata": {}, "source": [ "#### Set Space Group" @@ -543,7 +574,7 @@ { "cell_type": "code", "execution_count": null, - "id": "34", + "id": "37", "metadata": {}, "outputs": [], "source": [ @@ -553,7 +584,7 @@ }, { "cell_type": "markdown", - "id": "35", + "id": "38", "metadata": {}, "source": [ "#### Set Lattice Parameters" @@ -562,7 +593,7 @@ { "cell_type": "code", "execution_count": null, - "id": "36", + "id": "39", "metadata": {}, "outputs": [], "source": [ @@ -571,7 +602,7 @@ }, { "cell_type": "markdown", - "id": "37", + "id": "40", "metadata": {}, "source": [ "#### Set Atom Sites" @@ -580,7 +611,7 @@ { "cell_type": "code", "execution_count": null, - "id": "38", + "id": "41", "metadata": {}, "outputs": [], "source": [ @@ -597,20 +628,21 @@ }, { "cell_type": "markdown", - "id": "39", + "id": "42", "metadata": {}, "source": [ "### 🔗 Assign Sample Model to Experiment\n", "\n", - "Now we need to assign, or link, this sample model to the experiment created above.\n", - "This linked crystallographic phase will be used to calculate the expected diffraction\n", - "pattern based on the crystal structure defined in the sample model." + "Now we need to assign, or link, this sample model to the experiment created\n", + "above. This linked crystallographic phase will be used to calculate the\n", + "expected diffraction pattern based on the crystal structure defined in the\n", + "sample model." ] }, { "cell_type": "code", "execution_count": null, - "id": "40", + "id": "43", "metadata": {}, "outputs": [], "source": [ @@ -619,7 +651,7 @@ }, { "cell_type": "markdown", - "id": "41", + "id": "44", "metadata": {}, "source": [ "### 🚀 Analyze and Fit the Data\n", @@ -651,7 +683,7 @@ { "cell_type": "code", "execution_count": null, - "id": "42", + "id": "45", "metadata": {}, "outputs": [], "source": [ @@ -671,7 +703,7 @@ }, { "cell_type": "markdown", - "id": "43", + "id": "46", "metadata": {}, "source": [ "#### Show Free Parameters\n", @@ -683,7 +715,7 @@ { "cell_type": "code", "execution_count": null, - "id": "44", + "id": "47", "metadata": {}, "outputs": [], "source": [ @@ -692,7 +724,7 @@ }, { "cell_type": "markdown", - "id": "45", + "id": "48", "metadata": {}, "source": [ "#### Visualize Diffraction Patterns\n", @@ -708,7 +740,7 @@ { "cell_type": "code", "execution_count": null, - "id": "46", + "id": "49", "metadata": {}, "outputs": [], "source": [ @@ -717,7 +749,7 @@ }, { "cell_type": "markdown", - "id": "47", + "id": "50", "metadata": {}, "source": [ "#### Run Fitting\n", @@ -729,7 +761,7 @@ { "cell_type": "code", "execution_count": null, - "id": "48", + "id": "51", "metadata": {}, "outputs": [], "source": [ @@ -738,7 +770,7 @@ }, { "cell_type": "markdown", - "id": "49", + "id": "52", "metadata": {}, "source": [ "#### Check Fit Results\n", @@ -756,7 +788,7 @@ }, { "cell_type": "markdown", - "id": "50", + "id": "53", "metadata": {}, "source": [ "#### Visualize Fit Results\n", @@ -770,7 +802,7 @@ { "cell_type": "code", "execution_count": null, - "id": "51", + "id": "54", "metadata": {}, "outputs": [], "source": [ @@ -779,7 +811,7 @@ }, { "cell_type": "markdown", - "id": "52", + "id": "55", "metadata": {}, "source": [ "#### TOF vs d-spacing\n", @@ -798,7 +830,7 @@ { "cell_type": "code", "execution_count": null, - "id": "53", + "id": "56", "metadata": {}, "outputs": [], "source": [ @@ -807,7 +839,7 @@ }, { "cell_type": "markdown", - "id": "54", + "id": "57", "metadata": {}, "source": [ "As you can see, the calculated diffraction pattern now matches the measured\n", @@ -842,7 +874,7 @@ { "cell_type": "code", "execution_count": null, - "id": "55", + "id": "58", "metadata": {}, "outputs": [], "source": [ @@ -853,7 +885,7 @@ }, { "cell_type": "markdown", - "id": "56", + "id": "59", "metadata": {}, "source": [ "### 🔬 Exercise 2: Define an Experiment\n", @@ -872,29 +904,27 @@ { "cell_type": "code", "execution_count": null, - "id": "57", + "id": "60", "metadata": {}, "outputs": [], "source": [ - "# To load the measured data from the EasyDiffraction repository, as\n", - "# Google Colab does not have the data files needed for this tutorial.\n", - "ed.download_from_repository('reduced_LBCO.xye', destination='data')" + "lbco_xye_path = '../4-reduction/reduced_LBCO.xye'" ] }, { "cell_type": "code", "execution_count": null, - "id": "58", + "id": "61", "metadata": {}, "outputs": [], "source": [ - "lbco_xye_path = 'data/reduced_LBCO.xye'" + "ed.download_from_repository('reduced_LBCO.xye', destination='../4-reduction')" ] }, { "cell_type": "code", "execution_count": null, - "id": "59", + "id": "62", "metadata": {}, "outputs": [], "source": [ @@ -909,7 +939,7 @@ }, { "cell_type": "markdown", - "id": "60", + "id": "63", "metadata": {}, "source": [ "#### Exercise 2.1: Inspect Measured Data\n", @@ -929,18 +959,17 @@ { "cell_type": "code", "execution_count": null, - "id": "61", + "id": "64", "metadata": {}, "outputs": [], "source": [ - "project_2.plotter.engine = 'plotly'\n", "project_2.plot_meas(expt_name='sim_lbco')" ] }, { "cell_type": "code", "execution_count": null, - "id": "62", + "id": "65", "metadata": {}, "outputs": [], "source": [ @@ -951,7 +980,7 @@ { "cell_type": "code", "execution_count": null, - "id": "63", + "id": "66", "metadata": {}, "outputs": [], "source": [ @@ -960,7 +989,7 @@ }, { "cell_type": "markdown", - "id": "64", + "id": "67", "metadata": {}, "source": [ "#### Exercise 2.2: Set Instrument Parameters\n", @@ -976,7 +1005,7 @@ { "cell_type": "code", "execution_count": null, - "id": "65", + "id": "68", "metadata": {}, "outputs": [], "source": [ @@ -986,7 +1015,7 @@ }, { "cell_type": "markdown", - "id": "66", + "id": "69", "metadata": {}, "source": [ "#### Exercise 2.3: Set Peak Profile Parameters\n", @@ -1004,7 +1033,7 @@ { "cell_type": "code", "execution_count": null, - "id": "67", + "id": "70", "metadata": {}, "outputs": [], "source": [ @@ -1020,7 +1049,7 @@ }, { "cell_type": "markdown", - "id": "68", + "id": "71", "metadata": {}, "source": [ "#### Exercise 2.4: Set Background\n", @@ -1039,7 +1068,7 @@ { "cell_type": "code", "execution_count": null, - "id": "69", + "id": "72", "metadata": {}, "outputs": [], "source": [ @@ -1055,7 +1084,7 @@ }, { "cell_type": "markdown", - "id": "70", + "id": "73", "metadata": {}, "source": [ "### 🧩 Exercise 3: Define a Sample Model – LBCO\n", @@ -1071,7 +1100,7 @@ }, { "cell_type": "markdown", - "id": "71", + "id": "74", "metadata": {}, "source": [ "```\n", @@ -1106,7 +1135,7 @@ }, { "cell_type": "markdown", - "id": "72", + "id": "75", "metadata": {}, "source": [ "#### Exercise 3.1: Create Sample Model\n", @@ -1122,7 +1151,7 @@ { "cell_type": "code", "execution_count": null, - "id": "73", + "id": "76", "metadata": {}, "outputs": [], "source": [ @@ -1131,7 +1160,7 @@ }, { "cell_type": "markdown", - "id": "74", + "id": "77", "metadata": {}, "source": [ "#### Exercise 3.2: Set Space Group\n", @@ -1146,7 +1175,7 @@ { "cell_type": "code", "execution_count": null, - "id": "75", + "id": "78", "metadata": {}, "outputs": [], "source": [ @@ -1156,7 +1185,7 @@ }, { "cell_type": "markdown", - "id": "76", + "id": "79", "metadata": {}, "source": [ "#### Exercise 3.3: Set Lattice Parameters\n", @@ -1171,7 +1200,7 @@ { "cell_type": "code", "execution_count": null, - "id": "77", + "id": "80", "metadata": {}, "outputs": [], "source": [ @@ -1180,7 +1209,7 @@ }, { "cell_type": "markdown", - "id": "78", + "id": "81", "metadata": {}, "source": [ "#### Exercise 3.4: Set Atom Sites\n", @@ -1197,7 +1226,7 @@ { "cell_type": "code", "execution_count": null, - "id": "79", + "id": "82", "metadata": {}, "outputs": [], "source": [ @@ -1243,7 +1272,7 @@ }, { "cell_type": "markdown", - "id": "80", + "id": "83", "metadata": {}, "source": [ "### 🔗 Exercise 4: Assign Sample Model to Experiment\n", @@ -1258,7 +1287,7 @@ { "cell_type": "code", "execution_count": null, - "id": "81", + "id": "84", "metadata": {}, "outputs": [], "source": [ @@ -1267,7 +1296,7 @@ }, { "cell_type": "markdown", - "id": "82", + "id": "85", "metadata": {}, "source": [ "### 🚀 Exercise 5: Analyze and Fit the Data\n", @@ -1287,7 +1316,7 @@ { "cell_type": "code", "execution_count": null, - "id": "83", + "id": "86", "metadata": {}, "outputs": [], "source": [ @@ -1299,7 +1328,7 @@ }, { "cell_type": "markdown", - "id": "84", + "id": "87", "metadata": {}, "source": [ "#### Exercise 5.2: Run Fitting\n", @@ -1318,7 +1347,7 @@ { "cell_type": "code", "execution_count": null, - "id": "85", + "id": "88", "metadata": {}, "outputs": [], "source": [ @@ -1328,7 +1357,7 @@ { "cell_type": "code", "execution_count": null, - "id": "86", + "id": "89", "metadata": {}, "outputs": [], "source": [ @@ -1337,7 +1366,7 @@ }, { "cell_type": "markdown", - "id": "87", + "id": "90", "metadata": {}, "source": [ "#### Exercise 5.3: Find the Misfit in the Fit\n", @@ -1357,20 +1386,22 @@ "**Solution**:\n", "1. ❌ The conversion parameters from TOF to d-spacing were set based on the\n", "data reduction step. While they are specific to each dataset and thus differ\n", - "from those used for the Si data, the full reduction workflow has already been\n", - "validated with the Si fit. Therefore, they are not the cause of the misfit in this case.\n", + "from those used for the Si data, the full reduction workflow has already been\n", + "validated with the Si fit. Therefore, they are not the cause of the misfit in\n", + "this case.\n", "2. ✅ The lattice parameters of the LBCO phase were set based on the CIF data,\n", "which is a good starting point, but they are not necessarily as accurate as\n", "needed for the fit. The lattice parameters may need to be refined.\n", - "3. ❌ The peak profile parameters do not change the position of the peaks, but\n", - "rather their shape.\n", - "4. ❌ The background points affect the background level, but not the peak positions." + "3. ❌ The peak profile parameters do not change the position of the peaks,\n", + "but rather their shape.\n", + "4. ❌ The background points affect the background level, but not the peak\n", + "positions." ] }, { "cell_type": "code", "execution_count": null, - "id": "88", + "id": "91", "metadata": {}, "outputs": [], "source": [ @@ -1379,15 +1410,15 @@ }, { "cell_type": "markdown", - "id": "89", + "id": "92", "metadata": {}, "source": [ "#### Exercise 5.4: Refine the LBCO Lattice Parameter\n", "\n", "To improve the fit, refine the lattice parameter of the LBCO phase.\n", "\n", - "**Hint**: To achieve this, we will set the `free` attribute of the `length_a` parameter\n", - "of the LBCO cell to `True`.\n", + "**Hint**: To achieve this, we will set the `free` attribute of the `length_a`\n", + "parameter of the LBCO cell to `True`.\n", "\n", "**Solution**:" ] @@ -1395,7 +1426,7 @@ { "cell_type": "code", "execution_count": null, - "id": "90", + "id": "93", "metadata": {}, "outputs": [], "source": [ @@ -1405,7 +1436,7 @@ { "cell_type": "code", "execution_count": null, - "id": "91", + "id": "94", "metadata": {}, "outputs": [], "source": [ @@ -1415,7 +1446,7 @@ { "cell_type": "code", "execution_count": null, - "id": "92", + "id": "95", "metadata": {}, "outputs": [], "source": [ @@ -1424,19 +1455,19 @@ }, { "cell_type": "markdown", - "id": "93", + "id": "96", "metadata": {}, "source": [ "One of the main goals of this study was to refine the lattice parameter of\n", "the LBCO phase. As shown in the updated fit results, the overall fit has\n", "improved significantly, even though the change in cell length is less than\n", - "1% of the initial value. This demonstrates how even a small adjustment to\n", - "the lattice parameter can have a substantial impact on the quality of the fit." + "1% of the initial value. This demonstrates how even a small adjustment to the\n", + "lattice parameter can have a substantial impact on the quality of the fit." ] }, { "cell_type": "markdown", - "id": "94", + "id": "97", "metadata": {}, "source": [ "#### Exercise 5.5: Visualize the Fit Results in d-spacing\n", @@ -1452,7 +1483,7 @@ { "cell_type": "code", "execution_count": null, - "id": "95", + "id": "98", "metadata": {}, "outputs": [], "source": [ @@ -1461,7 +1492,7 @@ }, { "cell_type": "markdown", - "id": "96", + "id": "99", "metadata": {}, "source": [ "#### Exercise 5.6: Refine the Peak Profile Parameters\n", @@ -1480,7 +1511,7 @@ { "cell_type": "code", "execution_count": null, - "id": "97", + "id": "100", "metadata": {}, "outputs": [], "source": [ @@ -1489,7 +1520,7 @@ }, { "cell_type": "markdown", - "id": "98", + "id": "101", "metadata": {}, "source": [ "The peak profile parameters are determined based on both the instrument\n", @@ -1509,7 +1540,7 @@ { "cell_type": "code", "execution_count": null, - "id": "99", + "id": "102", "metadata": {}, "outputs": [], "source": [ @@ -1525,7 +1556,7 @@ { "cell_type": "code", "execution_count": null, - "id": "100", + "id": "103", "metadata": {}, "outputs": [], "source": [ @@ -1535,7 +1566,7 @@ { "cell_type": "code", "execution_count": null, - "id": "101", + "id": "104", "metadata": {}, "outputs": [], "source": [ @@ -1544,7 +1575,7 @@ }, { "cell_type": "markdown", - "id": "102", + "id": "105", "metadata": {}, "source": [ "#### Exercise 5.7: Find Undefined Features\n", @@ -1553,10 +1584,11 @@ "significantly improved, but inspect the diffraction pattern again. Are you noticing\n", "anything undefined?\n", "\n", - "**Hint**: While the fit is now significantly better, there are still some unexplained peaks\n", - "in the diffraction pattern. These peaks are not accounted for by the LBCO phase.\n", - "For example, if you zoom in on the region around 1.6 Å (or 95,000 μs), you will\n", - "notice that the rightmost peak is not explained by the LBCO phase at all.\n", + "**Hint**: While the fit is now significantly better, there are still some\n", + "unexplained peaks in the diffraction pattern. These peaks are not accounted\n", + "for by the LBCO phase. For example, if you zoom in on the region around\n", + "1.6 Å (or 95,000 μs), you will notice that the rightmost peak is not\n", + "explained by the LBCO phase at all.\n", "\n", "**Solution**:" ] @@ -1564,7 +1596,7 @@ { "cell_type": "code", "execution_count": null, - "id": "103", + "id": "106", "metadata": {}, "outputs": [], "source": [ @@ -1573,7 +1605,7 @@ }, { "cell_type": "markdown", - "id": "104", + "id": "107", "metadata": {}, "source": [ "#### Exercise 5.8: Identify the Cause of the Unexplained Peaks\n", @@ -1586,7 +1618,7 @@ "\n", "**Solution**:\n", "1. ❌ In principle, this could be the case, as sometimes the presence of\n", - "extra peaks in the diffraction pattern can indicate a lower symmetry\n", + "extra peaks in the diffraction pattern can indicate lower symmetry\n", "than the one used in the model, or that the model is not complete. However,\n", "in this case, the LBCO phase is correctly modeled based on the CIF data.\n", "2. ✅ The unexplained peaks are due to the presence of an impurity phase\n", @@ -1599,7 +1631,7 @@ }, { "cell_type": "markdown", - "id": "105", + "id": "108", "metadata": {}, "source": [ "#### Exercise 5.9: Identify the impurity phase\n", @@ -1621,7 +1653,7 @@ { "cell_type": "code", "execution_count": null, - "id": "106", + "id": "109", "metadata": {}, "outputs": [], "source": [ @@ -1631,7 +1663,7 @@ }, { "cell_type": "markdown", - "id": "107", + "id": "110", "metadata": {}, "source": [ "#### Exercise 5.10: Create a Second Sample Model – Si as Impurity\n", @@ -1649,7 +1681,7 @@ }, { "cell_type": "markdown", - "id": "108", + "id": "111", "metadata": {}, "source": [ "**Set Space Group**" @@ -1658,7 +1690,7 @@ { "cell_type": "code", "execution_count": null, - "id": "109", + "id": "112", "metadata": {}, "outputs": [], "source": [ @@ -1668,7 +1700,7 @@ { "cell_type": "code", "execution_count": null, - "id": "110", + "id": "113", "metadata": {}, "outputs": [], "source": [ @@ -1678,7 +1710,7 @@ }, { "cell_type": "markdown", - "id": "111", + "id": "114", "metadata": {}, "source": [ "**Set Lattice Parameters**" @@ -1687,7 +1719,7 @@ { "cell_type": "code", "execution_count": null, - "id": "112", + "id": "115", "metadata": {}, "outputs": [], "source": [ @@ -1696,7 +1728,7 @@ }, { "cell_type": "markdown", - "id": "113", + "id": "116", "metadata": {}, "source": [ "**Set Atom Sites**" @@ -1705,7 +1737,7 @@ { "cell_type": "code", "execution_count": null, - "id": "114", + "id": "117", "metadata": {}, "outputs": [], "source": [ @@ -1722,7 +1754,7 @@ }, { "cell_type": "markdown", - "id": "115", + "id": "118", "metadata": {}, "source": [ "**🔗 Assign Sample Model to Experiment**" @@ -1731,7 +1763,7 @@ { "cell_type": "code", "execution_count": null, - "id": "116", + "id": "119", "metadata": {}, "outputs": [], "source": [ @@ -1740,7 +1772,7 @@ }, { "cell_type": "markdown", - "id": "117", + "id": "120", "metadata": {}, "source": [ "#### Exercise 5.11: Refine the Scale of the Si Phase\n", @@ -1766,7 +1798,7 @@ { "cell_type": "code", "execution_count": null, - "id": "118", + "id": "121", "metadata": {}, "outputs": [], "source": [ @@ -1775,7 +1807,7 @@ }, { "cell_type": "markdown", - "id": "119", + "id": "122", "metadata": {}, "source": [ "As you can see, the calculated pattern is now the sum of both phases,\n", @@ -1788,7 +1820,7 @@ { "cell_type": "code", "execution_count": null, - "id": "120", + "id": "123", "metadata": {}, "outputs": [], "source": [ @@ -1797,7 +1829,7 @@ }, { "cell_type": "markdown", - "id": "121", + "id": "124", "metadata": {}, "source": [ "**Run Fitting**\n", @@ -1808,7 +1840,7 @@ { "cell_type": "code", "execution_count": null, - "id": "122", + "id": "125", "metadata": {}, "outputs": [], "source": [ @@ -1817,20 +1849,21 @@ }, { "cell_type": "markdown", - "id": "123", + "id": "126", "metadata": {}, "source": [ "**Visualize Fit Results**\n", "\n", "Let's plot the measured diffraction pattern and the calculated diffraction\n", - "pattern both for the full range and for a zoomed-in region around the previously unexplained\n", - "peak near 95,000 μs. The calculated pattern will be the sum of the two phases." + "pattern both for the full range and for a zoomed-in region around the previously\n", + "unexplained peak near 95,000 μs. The calculated pattern will be the sum of\n", + "the two phases." ] }, { "cell_type": "code", "execution_count": null, - "id": "124", + "id": "127", "metadata": {}, "outputs": [], "source": [ @@ -1840,7 +1873,7 @@ { "cell_type": "code", "execution_count": null, - "id": "125", + "id": "128", "metadata": {}, "outputs": [], "source": [ @@ -1849,12 +1882,11 @@ }, { "cell_type": "markdown", - "id": "126", + "id": "129", "metadata": {}, "source": [ "All previously unexplained peaks are now accounted for in the pattern, and the\n", - "fit is improved.\n", - "Some discrepancies in the peak intensities remain, but\n", + "fit is improved. Some discrepancies in the peak intensities remain, but\n", "further improvements would require more advanced data reduction and analysis,\n", "which are beyond the scope of this tutorial.\n", "\n", @@ -1864,14 +1896,14 @@ "to refine lattice parameters for a more complex crystal structure,\n", "La₀.₅Ba₀.₅CoO₃ (LBCO). In real experiments, additional parameters, such as\n", "atomic positions, occupancies, and atomic displacement factors, can also be\n", - "refined to further improve the fit. However, we will stop here, as the\n", - "purpose of this part of the tutorial is to demonstrate the practical use of\n", + "refined to further improve the fit. However, we will stop here, as the purpose\n", + "of this part of the tutorial is to demonstrate the practical use of\n", "EasyDiffraction for fitting powder diffraction data." ] }, { "cell_type": "markdown", - "id": "127", + "id": "130", "metadata": {}, "source": [ "## 🎁 Bonus\n", @@ -1889,7 +1921,7 @@ ], "metadata": { "jupytext": { - "cell_metadata_filter": "-all", + "cell_metadata_filter": "tags,-all", "main_language": "python", "notebook_metadata_filter": "-all" } diff --git a/tutorials/dmsc-summer-school-2025_analysis-powder-diffraction.py b/tutorials/dmsc-summer-school-2025_analysis-powder-diffraction.py index 0b67c7c6..8ce98927 100644 --- a/tutorials/dmsc-summer-school-2025_analysis-powder-diffraction.py +++ b/tutorials/dmsc-summer-school-2025_analysis-powder-diffraction.py @@ -5,7 +5,23 @@ # structures using simulated powder diffraction data. It consists of two parts: # - Introduction: A simple reference fit using silicon (Si) crystal structure. # - Exercise: A more complex fit using La₀.₅Ba₀.₅CoO₃ (LBCO) crystal structure. -# + +# %% [markdown] tags=["hide_in_docs"] +# ## Install Dependencies + +# %% tags=["hide_in_docs"] +# Check if the easydiffraction library is installed. +# If not, install it including the 'visualization' extras. +# This is needed, e.g., when running this as a notebook via Google Colab. +import builtins +import importlib.util + +if hasattr(builtins, '__IPYTHON__'): + if importlib.util.find_spec('easydiffraction') is None: + print('Installing the easydiffraction library...') + # !pip install 'easydiffraction[visualization]' + +# %% [markdown] # ## 🛠️ Import Library # # We start by importing the necessary library for the analysis. In this @@ -21,17 +37,6 @@ # classes. However, for the sake of simplicity in this tutorial, we will import # the entire library. -# %% -# Needed for the Google Colab environment. -# Install the easydiffraction library if it is not already installed. -import builtins -import importlib.util - -if hasattr(builtins, '__IPYTHON__'): - if importlib.util.find_spec('easydiffraction') is None: - print('Installing the easydiffraction library...') - # !pip install git+https://github.com/easyscience/diffraction-lib@d-spacing - # %% import easydiffraction as ed @@ -81,15 +86,26 @@ # # In this case, the experiment is defined as a powder diffraction measurement # using time-of-flight neutrons. The measured data is loaded from a file -# containing the reduced diffraction pattern of Si from the data reduction tutorial. +# containing the reduced diffraction pattern of Si from the data reduction +# tutorial. # %% -# To load the measured data from the EasyDiffraction repository, as -# Google Colab does not have the data files needed for this tutorial. -ed.download_from_repository('reduced_Si.xye', destination='data') +si_xye_path = '../4-reduction/reduced_Si.xye' + +# %% [markdown] +# Use the following cell if your data reduction failed and the reduced data +# file is missing. In this case, you can download our pre-generated reduced +# data file from the EasyDiffraction repository. +# +# The `download_from_repository` function will not overwrite an existing file +# unless you set `overwrite=True`, so it's safe to run even if the file is +# already present. # %% -si_xye_path = 'data/reduced_Si.xye' +ed.download_from_repository('reduced_Si.xye', destination='../4-reduction') + +# %% [markdown] +# Now we can create the experiment and load the measured data. # %% project_1.experiments.add( @@ -113,12 +129,6 @@ # # The `plot_meas` method of the project enables us to visualize the measured # diffraction pattern. -# -# Before plotting, we set the plotting engine to 'plotly', which provides -# interactive visualizations. - -# %% -project_1.plotter.engine = 'plotly' # %% project_1.plot_meas(expt_name='sim_si') @@ -205,8 +215,8 @@ # of a standard sample. We consider this Si sample as a standard reference. # Therefore, we will set the initial values of the peak profile parameters based # on the values obtained from another simulation and refine them during the -# fitting process. The refined parameters will be used as a starting point for the -# more complex fit in the next part of the tutorial. +# fitting process. The refined parameters will be used as a starting point for +# the more complex fit in the next part of the tutorial. # %% project_1.experiments['sim_si'].peak_profile_type = 'pseudo-voigt * ikeda-carpenter' @@ -361,9 +371,10 @@ # %% [markdown] # ### 🔗 Assign Sample Model to Experiment # -# Now we need to assign, or link, this sample model to the experiment created above. -# This linked crystallographic phase will be used to calculate the expected diffraction -# pattern based on the crystal structure defined in the sample model. +# Now we need to assign, or link, this sample model to the experiment created +# above. This linked crystallographic phase will be used to calculate the +# expected diffraction pattern based on the crystal structure defined in the +# sample model. # %% project_1.experiments['sim_si'].linked_phases.add(id='si', scale=1.0) @@ -527,12 +538,10 @@ # **Solution:** # %% -# To load the measured data from the EasyDiffraction repository, as -# Google Colab does not have the data files needed for this tutorial. -ed.download_from_repository('reduced_LBCO.xye', destination='data') +lbco_xye_path = '../4-reduction/reduced_LBCO.xye' # %% -lbco_xye_path = 'data/reduced_LBCO.xye' +ed.download_from_repository('reduced_LBCO.xye', destination='../4-reduction') # %% project_2.experiments.add( @@ -558,7 +567,6 @@ # **Solution:** # %% -project_2.plotter.engine = 'plotly' project_2.plot_meas(expt_name='sim_lbco') # %% @@ -826,14 +834,16 @@ # **Solution**: # 1. ❌ The conversion parameters from TOF to d-spacing were set based on the # data reduction step. While they are specific to each dataset and thus differ -# from those used for the Si data, the full reduction workflow has already been -# validated with the Si fit. Therefore, they are not the cause of the misfit in this case. +# from those used for the Si data, the full reduction workflow has already been +# validated with the Si fit. Therefore, they are not the cause of the misfit in +# this case. # 2. ✅ The lattice parameters of the LBCO phase were set based on the CIF data, # which is a good starting point, but they are not necessarily as accurate as # needed for the fit. The lattice parameters may need to be refined. -# 3. ❌ The peak profile parameters do not change the position of the peaks, but -# rather their shape. -# 4. ❌ The background points affect the background level, but not the peak positions. +# 3. ❌ The peak profile parameters do not change the position of the peaks, +# but rather their shape. +# 4. ❌ The background points affect the background level, but not the peak +# positions. # %% project_2.plot_meas_vs_calc(expt_name='sim_lbco') @@ -843,8 +853,8 @@ # # To improve the fit, refine the lattice parameter of the LBCO phase. # -# **Hint**: To achieve this, we will set the `free` attribute of the `length_a` parameter -# of the LBCO cell to `True`. +# **Hint**: To achieve this, we will set the `free` attribute of the `length_a` +# parameter of the LBCO cell to `True`. # # **Solution**: @@ -861,8 +871,8 @@ # One of the main goals of this study was to refine the lattice parameter of # the LBCO phase. As shown in the updated fit results, the overall fit has # improved significantly, even though the change in cell length is less than -# 1% of the initial value. This demonstrates how even a small adjustment to -# the lattice parameter can have a substantial impact on the quality of the fit. +# 1% of the initial value. This demonstrates how even a small adjustment to the +# lattice parameter can have a substantial impact on the quality of the fit. # %% [markdown] # #### Exercise 5.5: Visualize the Fit Results in d-spacing @@ -929,10 +939,11 @@ # significantly improved, but inspect the diffraction pattern again. Are you noticing # anything undefined? # -# **Hint**: While the fit is now significantly better, there are still some unexplained peaks -# in the diffraction pattern. These peaks are not accounted for by the LBCO phase. -# For example, if you zoom in on the region around 1.6 Å (or 95,000 μs), you will -# notice that the rightmost peak is not explained by the LBCO phase at all. +# **Hint**: While the fit is now significantly better, there are still some +# unexplained peaks in the diffraction pattern. These peaks are not accounted +# for by the LBCO phase. For example, if you zoom in on the region around +# 1.6 Å (or 95,000 μs), you will notice that the rightmost peak is not +# explained by the LBCO phase at all. # # **Solution**: @@ -950,7 +961,7 @@ # # **Solution**: # 1. ❌ In principle, this could be the case, as sometimes the presence of -# extra peaks in the diffraction pattern can indicate a lower symmetry +# extra peaks in the diffraction pattern can indicate lower symmetry # than the one used in the model, or that the model is not complete. However, # in this case, the LBCO phase is correctly modeled based on the CIF data. # 2. ✅ The unexplained peaks are due to the presence of an impurity phase @@ -1074,8 +1085,9 @@ # **Visualize Fit Results** # # Let's plot the measured diffraction pattern and the calculated diffraction -# pattern both for the full range and for a zoomed-in region around the previously unexplained -# peak near 95,000 μs. The calculated pattern will be the sum of the two phases. +# pattern both for the full range and for a zoomed-in region around the previously +# unexplained peak near 95,000 μs. The calculated pattern will be the sum of +# the two phases. # %% project_2.plot_meas_vs_calc(expt_name='sim_lbco') @@ -1085,8 +1097,7 @@ # %% [markdown] # All previously unexplained peaks are now accounted for in the pattern, and the -# fit is improved. -# Some discrepancies in the peak intensities remain, but +# fit is improved. Some discrepancies in the peak intensities remain, but # further improvements would require more advanced data reduction and analysis, # which are beyond the scope of this tutorial. # @@ -1096,8 +1107,8 @@ # to refine lattice parameters for a more complex crystal structure, # La₀.₅Ba₀.₅CoO₃ (LBCO). In real experiments, additional parameters, such as # atomic positions, occupancies, and atomic displacement factors, can also be -# refined to further improve the fit. However, we will stop here, as the -# purpose of this part of the tutorial is to demonstrate the practical use of +# refined to further improve the fit. However, we will stop here, as the purpose +# of this part of the tutorial is to demonstrate the practical use of # EasyDiffraction for fitting powder diffraction data. # %% [markdown] diff --git a/tutorials/pdf_pd-neut-cwl_Ni.ipynb b/tutorials/pdf_pd-neut-cwl_Ni.ipynb index effd3bcd..454227ab 100644 --- a/tutorials/pdf_pd-neut-cwl_Ni.ipynb +++ b/tutorials/pdf_pd-neut-cwl_Ni.ipynb @@ -27,6 +27,29 @@ "cell_type": "code", "execution_count": null, "id": "2", + "metadata": { + "tags": [ + "hide_in_docs" + ] + }, + "outputs": [], + "source": [ + "# Check if the easydiffraction library is installed.\n", + "# If not, install it including the 'visualization' extras.\n", + "# This is needed, e.g., when running this as a notebook via Google Colab.\n", + "import builtins\n", + "import importlib.util\n", + "\n", + "if hasattr(builtins, '__IPYTHON__'):\n", + " if importlib.util.find_spec('easydiffraction') is None:\n", + " print('Installing the easydiffraction library...')\n", + " # !pip install 'easydiffraction[visualization]'" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3", "metadata": {}, "outputs": [], "source": [ @@ -35,7 +58,7 @@ }, { "cell_type": "markdown", - "id": "3", + "id": "4", "metadata": {}, "source": [ "## Create Project" @@ -44,7 +67,7 @@ { "cell_type": "code", "execution_count": null, - "id": "4", + "id": "5", "metadata": {}, "outputs": [], "source": [ @@ -53,7 +76,7 @@ }, { "cell_type": "markdown", - "id": "5", + "id": "6", "metadata": {}, "source": [ "## Set Plotting Engine" @@ -62,7 +85,7 @@ { "cell_type": "code", "execution_count": null, - "id": "6", + "id": "7", "metadata": {}, "outputs": [], "source": [ @@ -71,7 +94,7 @@ }, { "cell_type": "markdown", - "id": "7", + "id": "8", "metadata": {}, "source": [ "## Add Sample Model" @@ -80,7 +103,7 @@ { "cell_type": "code", "execution_count": null, - "id": "8", + "id": "9", "metadata": {}, "outputs": [], "source": [ @@ -90,7 +113,7 @@ { "cell_type": "code", "execution_count": null, - "id": "9", + "id": "10", "metadata": {}, "outputs": [], "source": [ @@ -104,7 +127,7 @@ }, { "cell_type": "markdown", - "id": "10", + "id": "11", "metadata": {}, "source": [ "## Add Experiment" @@ -113,7 +136,7 @@ { "cell_type": "code", "execution_count": null, - "id": "11", + "id": "12", "metadata": {}, "outputs": [], "source": [ @@ -123,7 +146,7 @@ { "cell_type": "code", "execution_count": null, - "id": "12", + "id": "13", "metadata": {}, "outputs": [], "source": [ @@ -140,7 +163,7 @@ { "cell_type": "code", "execution_count": null, - "id": "13", + "id": "14", "metadata": {}, "outputs": [], "source": [ @@ -155,7 +178,7 @@ }, { "cell_type": "markdown", - "id": "14", + "id": "15", "metadata": {}, "source": [ "## Select Fitting Parameters" @@ -164,7 +187,7 @@ { "cell_type": "code", "execution_count": null, - "id": "15", + "id": "16", "metadata": {}, "outputs": [], "source": [ @@ -175,7 +198,7 @@ { "cell_type": "code", "execution_count": null, - "id": "16", + "id": "17", "metadata": {}, "outputs": [], "source": [ @@ -186,7 +209,7 @@ }, { "cell_type": "markdown", - "id": "17", + "id": "18", "metadata": {}, "source": [ "## Run Fitting" @@ -195,7 +218,7 @@ { "cell_type": "code", "execution_count": null, - "id": "18", + "id": "19", "metadata": {}, "outputs": [], "source": [ @@ -205,7 +228,7 @@ }, { "cell_type": "markdown", - "id": "19", + "id": "20", "metadata": {}, "source": [ "## Plot Measured vs Calculated" @@ -214,7 +237,7 @@ { "cell_type": "code", "execution_count": null, - "id": "20", + "id": "21", "metadata": {}, "outputs": [], "source": [ @@ -224,7 +247,7 @@ ], "metadata": { "jupytext": { - "cell_metadata_filter": "-all", + "cell_metadata_filter": "tags,-all", "main_language": "python", "notebook_metadata_filter": "-all" } diff --git a/tutorials/pdf_pd-neut-cwl_Ni.py b/tutorials/pdf_pd-neut-cwl_Ni.py index 569d52a1..530f8bfa 100644 --- a/tutorials/pdf_pd-neut-cwl_Ni.py +++ b/tutorials/pdf_pd-neut-cwl_Ni.py @@ -11,6 +11,18 @@ # %% [markdown] # ## Import Library +# %% tags=["hide_in_docs"] +# Check if the easydiffraction library is installed. +# If not, install it including the 'visualization' extras. +# This is needed, e.g., when running this as a notebook via Google Colab. +import builtins +import importlib.util + +if hasattr(builtins, '__IPYTHON__'): + if importlib.util.find_spec('easydiffraction') is None: + print('Installing the easydiffraction library...') + # !pip install 'easydiffraction[visualization]' + # %% import easydiffraction as ed diff --git a/tutorials/pdf_pd-neut-tof_Si-NOMAD.ipynb b/tutorials/pdf_pd-neut-tof_Si-NOMAD.ipynb index d7558e41..f11ab0f7 100644 --- a/tutorials/pdf_pd-neut-tof_Si-NOMAD.ipynb +++ b/tutorials/pdf_pd-neut-tof_Si-NOMAD.ipynb @@ -24,6 +24,29 @@ "cell_type": "code", "execution_count": null, "id": "2", + "metadata": { + "tags": [ + "hide_in_docs" + ] + }, + "outputs": [], + "source": [ + "# Check if the easydiffraction library is installed.\n", + "# If not, install it including the 'visualization' extras.\n", + "# This is needed, e.g., when running this as a notebook via Google Colab.\n", + "import builtins\n", + "import importlib.util\n", + "\n", + "if hasattr(builtins, '__IPYTHON__'):\n", + " if importlib.util.find_spec('easydiffraction') is None:\n", + " print('Installing the easydiffraction library...')\n", + " # !pip install 'easydiffraction[visualization]'" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3", "metadata": {}, "outputs": [], "source": [ @@ -32,7 +55,7 @@ }, { "cell_type": "markdown", - "id": "3", + "id": "4", "metadata": {}, "source": [ "## Create Project" @@ -41,7 +64,7 @@ { "cell_type": "code", "execution_count": null, - "id": "4", + "id": "5", "metadata": {}, "outputs": [], "source": [ @@ -50,7 +73,7 @@ }, { "cell_type": "markdown", - "id": "5", + "id": "6", "metadata": {}, "source": [ "## Set Plotting Engine" @@ -59,7 +82,7 @@ { "cell_type": "code", "execution_count": null, - "id": "6", + "id": "7", "metadata": {}, "outputs": [], "source": [ @@ -69,7 +92,7 @@ }, { "cell_type": "markdown", - "id": "7", + "id": "8", "metadata": {}, "source": [ "## Add Sample Model" @@ -78,7 +101,7 @@ { "cell_type": "code", "execution_count": null, - "id": "8", + "id": "9", "metadata": {}, "outputs": [], "source": [ @@ -88,7 +111,7 @@ { "cell_type": "code", "execution_count": null, - "id": "9", + "id": "10", "metadata": {}, "outputs": [], "source": [ @@ -101,7 +124,7 @@ }, { "cell_type": "markdown", - "id": "10", + "id": "11", "metadata": {}, "source": [ "## Add Experiment" @@ -110,7 +133,7 @@ { "cell_type": "code", "execution_count": null, - "id": "11", + "id": "12", "metadata": {}, "outputs": [], "source": [ @@ -120,7 +143,7 @@ { "cell_type": "code", "execution_count": null, - "id": "12", + "id": "13", "metadata": {}, "outputs": [], "source": [ @@ -137,7 +160,7 @@ { "cell_type": "code", "execution_count": null, - "id": "13", + "id": "14", "metadata": {}, "outputs": [], "source": [ @@ -153,7 +176,7 @@ }, { "cell_type": "markdown", - "id": "14", + "id": "15", "metadata": {}, "source": [ "## Select Fitting Parameters" @@ -162,7 +185,7 @@ { "cell_type": "code", "execution_count": null, - "id": "15", + "id": "16", "metadata": {}, "outputs": [], "source": [ @@ -174,7 +197,7 @@ { "cell_type": "code", "execution_count": null, - "id": "16", + "id": "17", "metadata": {}, "outputs": [], "source": [ @@ -186,7 +209,7 @@ }, { "cell_type": "markdown", - "id": "17", + "id": "18", "metadata": {}, "source": [ "## Run Fitting" @@ -195,7 +218,7 @@ { "cell_type": "code", "execution_count": null, - "id": "18", + "id": "19", "metadata": {}, "outputs": [], "source": [ @@ -205,7 +228,7 @@ }, { "cell_type": "markdown", - "id": "19", + "id": "20", "metadata": {}, "source": [ "## Plot Measured vs Calculated" @@ -214,7 +237,7 @@ { "cell_type": "code", "execution_count": null, - "id": "20", + "id": "21", "metadata": {}, "outputs": [], "source": [ @@ -224,7 +247,7 @@ ], "metadata": { "jupytext": { - "cell_metadata_filter": "-all", + "cell_metadata_filter": "tags,-all", "main_language": "python", "notebook_metadata_filter": "-all" } diff --git a/tutorials/pdf_pd-neut-tof_Si-NOMAD.py b/tutorials/pdf_pd-neut-tof_Si-NOMAD.py index 9658cbf8..f1aee1d5 100644 --- a/tutorials/pdf_pd-neut-tof_Si-NOMAD.py +++ b/tutorials/pdf_pd-neut-tof_Si-NOMAD.py @@ -8,6 +8,18 @@ # %% [markdown] # ## Import Library +# %% tags=["hide_in_docs"] +# Check if the easydiffraction library is installed. +# If not, install it including the 'visualization' extras. +# This is needed, e.g., when running this as a notebook via Google Colab. +import builtins +import importlib.util + +if hasattr(builtins, '__IPYTHON__'): + if importlib.util.find_spec('easydiffraction') is None: + print('Installing the easydiffraction library...') + # !pip install 'easydiffraction[visualization]' + # %% import easydiffraction as ed diff --git a/tutorials/pdf_pd-xray_NaCl.ipynb b/tutorials/pdf_pd-xray_NaCl.ipynb index 3a459759..c2dd4fd7 100644 --- a/tutorials/pdf_pd-xray_NaCl.ipynb +++ b/tutorials/pdf_pd-xray_NaCl.ipynb @@ -26,6 +26,29 @@ "cell_type": "code", "execution_count": null, "id": "2", + "metadata": { + "tags": [ + "hide_in_docs" + ] + }, + "outputs": [], + "source": [ + "# Check if the easydiffraction library is installed.\n", + "# If not, install it including the 'visualization' extras.\n", + "# This is needed, e.g., when running this as a notebook via Google Colab.\n", + "import builtins\n", + "import importlib.util\n", + "\n", + "if hasattr(builtins, '__IPYTHON__'):\n", + " if importlib.util.find_spec('easydiffraction') is None:\n", + " print('Installing the easydiffraction library...')\n", + " # !pip install 'easydiffraction[visualization]'" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3", "metadata": {}, "outputs": [], "source": [ @@ -34,7 +57,7 @@ }, { "cell_type": "markdown", - "id": "3", + "id": "4", "metadata": {}, "source": [ "## Create Project" @@ -43,7 +66,7 @@ { "cell_type": "code", "execution_count": null, - "id": "4", + "id": "5", "metadata": {}, "outputs": [], "source": [ @@ -52,7 +75,7 @@ }, { "cell_type": "markdown", - "id": "5", + "id": "6", "metadata": {}, "source": [ "## Set Plotting Engine" @@ -61,7 +84,7 @@ { "cell_type": "code", "execution_count": null, - "id": "6", + "id": "7", "metadata": {}, "outputs": [], "source": [ @@ -72,7 +95,7 @@ }, { "cell_type": "markdown", - "id": "7", + "id": "8", "metadata": {}, "source": [ "## Add Sample Model" @@ -81,7 +104,7 @@ { "cell_type": "code", "execution_count": null, - "id": "8", + "id": "9", "metadata": {}, "outputs": [], "source": [ @@ -91,7 +114,7 @@ { "cell_type": "code", "execution_count": null, - "id": "9", + "id": "10", "metadata": {}, "outputs": [], "source": [ @@ -108,7 +131,7 @@ }, { "cell_type": "markdown", - "id": "10", + "id": "11", "metadata": {}, "source": [ "## Add Experiment" @@ -117,7 +140,7 @@ { "cell_type": "code", "execution_count": null, - "id": "11", + "id": "12", "metadata": {}, "outputs": [], "source": [ @@ -127,7 +150,7 @@ { "cell_type": "code", "execution_count": null, - "id": "12", + "id": "13", "metadata": {}, "outputs": [], "source": [ @@ -144,7 +167,7 @@ { "cell_type": "code", "execution_count": null, - "id": "13", + "id": "14", "metadata": {}, "outputs": [], "source": [ @@ -154,7 +177,7 @@ { "cell_type": "code", "execution_count": null, - "id": "14", + "id": "15", "metadata": {}, "outputs": [], "source": [ @@ -164,7 +187,7 @@ { "cell_type": "code", "execution_count": null, - "id": "15", + "id": "16", "metadata": {}, "outputs": [], "source": [ @@ -174,7 +197,7 @@ { "cell_type": "code", "execution_count": null, - "id": "16", + "id": "17", "metadata": {}, "outputs": [], "source": [ @@ -189,7 +212,7 @@ { "cell_type": "code", "execution_count": null, - "id": "17", + "id": "18", "metadata": {}, "outputs": [], "source": [ @@ -198,7 +221,7 @@ }, { "cell_type": "markdown", - "id": "18", + "id": "19", "metadata": {}, "source": [ "## Select Fitting Parameters" @@ -207,7 +230,7 @@ { "cell_type": "code", "execution_count": null, - "id": "19", + "id": "20", "metadata": {}, "outputs": [], "source": [ @@ -219,7 +242,7 @@ { "cell_type": "code", "execution_count": null, - "id": "20", + "id": "21", "metadata": {}, "outputs": [], "source": [ @@ -230,7 +253,7 @@ }, { "cell_type": "markdown", - "id": "21", + "id": "22", "metadata": {}, "source": [ "## Run Fitting" @@ -239,7 +262,7 @@ { "cell_type": "code", "execution_count": null, - "id": "22", + "id": "23", "metadata": {}, "outputs": [], "source": [ @@ -249,7 +272,7 @@ }, { "cell_type": "markdown", - "id": "23", + "id": "24", "metadata": {}, "source": [ "## Plot Measured vs Calculated" @@ -258,7 +281,7 @@ { "cell_type": "code", "execution_count": null, - "id": "24", + "id": "25", "metadata": {}, "outputs": [], "source": [ @@ -268,7 +291,7 @@ ], "metadata": { "jupytext": { - "cell_metadata_filter": "-all", + "cell_metadata_filter": "tags,-all", "main_language": "python", "notebook_metadata_filter": "-all" } diff --git a/tutorials/pdf_pd-xray_NaCl.py b/tutorials/pdf_pd-xray_NaCl.py index 6e91063a..c206ce1c 100644 --- a/tutorials/pdf_pd-xray_NaCl.py +++ b/tutorials/pdf_pd-xray_NaCl.py @@ -10,6 +10,18 @@ # %% [markdown] # ## Import Library +# %% tags=["hide_in_docs"] +# Check if the easydiffraction library is installed. +# If not, install it including the 'visualization' extras. +# This is needed, e.g., when running this as a notebook via Google Colab. +import builtins +import importlib.util + +if hasattr(builtins, '__IPYTHON__'): + if importlib.util.find_spec('easydiffraction') is None: + print('Installing the easydiffraction library...') + # !pip install 'easydiffraction[visualization]' + # %% import easydiffraction as ed diff --git a/tutorials/quick_single-fit_pd-neut-cwl_LBCO-HRPT.ipynb b/tutorials/quick_single-fit_pd-neut-cwl_LBCO-HRPT.ipynb index b1331e73..bfe5281d 100644 --- a/tutorials/quick_single-fit_pd-neut-cwl_LBCO-HRPT.ipynb +++ b/tutorials/quick_single-fit_pd-neut-cwl_LBCO-HRPT.ipynb @@ -35,6 +35,29 @@ "cell_type": "code", "execution_count": null, "id": "2", + "metadata": { + "tags": [ + "hide_in_docs" + ] + }, + "outputs": [], + "source": [ + "# Check if the easydiffraction library is installed.\n", + "# If not, install it including the 'visualization' extras.\n", + "# This is needed, e.g., when running this as a notebook via Google Colab.\n", + "import builtins\n", + "import importlib.util\n", + "\n", + "if hasattr(builtins, '__IPYTHON__'):\n", + " if importlib.util.find_spec('easydiffraction') is None:\n", + " print('Installing the easydiffraction library...')\n", + " # !pip install 'easydiffraction[visualization]'" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3", "metadata": {}, "outputs": [], "source": [ @@ -43,7 +66,7 @@ }, { "cell_type": "markdown", - "id": "3", + "id": "4", "metadata": {}, "source": [ "## Step 1: Define Project" @@ -52,7 +75,7 @@ { "cell_type": "code", "execution_count": null, - "id": "4", + "id": "5", "metadata": {}, "outputs": [], "source": [ @@ -61,7 +84,7 @@ }, { "cell_type": "markdown", - "id": "5", + "id": "6", "metadata": {}, "source": [ "## Step 2: Define Sample Model" @@ -70,7 +93,7 @@ { "cell_type": "code", "execution_count": null, - "id": "6", + "id": "7", "metadata": {}, "outputs": [], "source": [ @@ -80,7 +103,7 @@ { "cell_type": "code", "execution_count": null, - "id": "7", + "id": "8", "metadata": {}, "outputs": [], "source": [ @@ -90,7 +113,7 @@ { "cell_type": "code", "execution_count": null, - "id": "8", + "id": "9", "metadata": {}, "outputs": [], "source": [ @@ -101,7 +124,7 @@ { "cell_type": "code", "execution_count": null, - "id": "9", + "id": "10", "metadata": {}, "outputs": [], "source": [ @@ -111,7 +134,7 @@ { "cell_type": "code", "execution_count": null, - "id": "10", + "id": "11", "metadata": {}, "outputs": [], "source": [ @@ -123,7 +146,7 @@ }, { "cell_type": "markdown", - "id": "11", + "id": "12", "metadata": {}, "source": [ "## Step 3: Define Experiment" @@ -132,7 +155,7 @@ { "cell_type": "code", "execution_count": null, - "id": "12", + "id": "13", "metadata": {}, "outputs": [], "source": [ @@ -142,7 +165,7 @@ { "cell_type": "code", "execution_count": null, - "id": "13", + "id": "14", "metadata": {}, "outputs": [], "source": [ @@ -158,7 +181,7 @@ { "cell_type": "code", "execution_count": null, - "id": "14", + "id": "15", "metadata": {}, "outputs": [], "source": [ @@ -168,7 +191,7 @@ { "cell_type": "code", "execution_count": null, - "id": "15", + "id": "16", "metadata": {}, "outputs": [], "source": [ @@ -179,7 +202,7 @@ { "cell_type": "code", "execution_count": null, - "id": "16", + "id": "17", "metadata": {}, "outputs": [], "source": [ @@ -192,7 +215,7 @@ { "cell_type": "code", "execution_count": null, - "id": "17", + "id": "18", "metadata": {}, "outputs": [], "source": [ @@ -206,7 +229,7 @@ { "cell_type": "code", "execution_count": null, - "id": "18", + "id": "19", "metadata": {}, "outputs": [], "source": [ @@ -217,7 +240,7 @@ { "cell_type": "code", "execution_count": null, - "id": "19", + "id": "20", "metadata": {}, "outputs": [], "source": [ @@ -226,7 +249,7 @@ }, { "cell_type": "markdown", - "id": "20", + "id": "21", "metadata": {}, "source": [ "## Step 4: Perform Analysis" @@ -235,7 +258,7 @@ { "cell_type": "code", "execution_count": null, - "id": "21", + "id": "22", "metadata": {}, "outputs": [], "source": [ @@ -250,7 +273,7 @@ { "cell_type": "code", "execution_count": null, - "id": "22", + "id": "23", "metadata": {}, "outputs": [], "source": [ @@ -273,7 +296,7 @@ { "cell_type": "code", "execution_count": null, - "id": "23", + "id": "24", "metadata": {}, "outputs": [], "source": [ @@ -283,7 +306,7 @@ { "cell_type": "code", "execution_count": null, - "id": "24", + "id": "25", "metadata": {}, "outputs": [], "source": [ @@ -293,7 +316,7 @@ ], "metadata": { "jupytext": { - "cell_metadata_filter": "-all", + "cell_metadata_filter": "tags,-all", "main_language": "python", "notebook_metadata_filter": "-all" } diff --git a/tutorials/quick_single-fit_pd-neut-cwl_LBCO-HRPT.py b/tutorials/quick_single-fit_pd-neut-cwl_LBCO-HRPT.py index ad7ceb37..e7563f14 100644 --- a/tutorials/quick_single-fit_pd-neut-cwl_LBCO-HRPT.py +++ b/tutorials/quick_single-fit_pd-neut-cwl_LBCO-HRPT.py @@ -19,6 +19,18 @@ # %% [markdown] # ## Import Library +# %% tags=["hide_in_docs"] +# Check if the easydiffraction library is installed. +# If not, install it including the 'visualization' extras. +# This is needed, e.g., when running this as a notebook via Google Colab. +import builtins +import importlib.util + +if hasattr(builtins, '__IPYTHON__'): + if importlib.util.find_spec('easydiffraction') is None: + print('Installing the easydiffraction library...') + # !pip install 'easydiffraction[visualization]' + # %% import easydiffraction as ed From 0800d8d0cb09b2f7eca86247867c160a3e9f9f85 Mon Sep 17 00:00:00 2001 From: Andrew Sazonov Date: Mon, 11 Aug 2025 10:37:16 +0200 Subject: [PATCH 38/43] Restricts security scan trigger and updates Python matrix --- .github/workflows/scan-security.yml | 4 +++- .github/workflows/test-tutorials.yaml | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/scan-security.yml b/.github/workflows/scan-security.yml index c391849e..f551d5d4 100644 --- a/.github/workflows/scan-security.yml +++ b/.github/workflows/scan-security.yml @@ -5,8 +5,10 @@ name: Scan security (static analysis) on: - # Runs on pull requests + # Trigger the workflow on pull request pull_request: + branches: + - '**' # Allows you to run this workflow manually from the Actions tab workflow_dispatch: diff --git a/.github/workflows/test-tutorials.yaml b/.github/workflows/test-tutorials.yaml index 14ffe159..496b400d 100644 --- a/.github/workflows/test-tutorials.yaml +++ b/.github/workflows/test-tutorials.yaml @@ -95,7 +95,7 @@ jobs: fail-fast: false matrix: os: [ubuntu-24.04, windows-2022, macos-13, macos-14] - python-version: ['3.11', '3.12', '3.13'] + python-version: ['3.13'] runs-on: ${{ matrix.os }} From 9a28ec6169c9dbaa933aea4bd652bcb11bcd00c9 Mon Sep 17 00:00:00 2001 From: Andrew Sazonov Date: Mon, 11 Aug 2025 10:59:56 +0200 Subject: [PATCH 39/43] Adds SPDX headers to all source files --- src/easydiffraction/__init__.py | 3 + src/easydiffraction/analysis/__init__.py | 3 + src/easydiffraction/analysis/analysis.py | 3 + src/easydiffraction/analysis/calculation.py | 3 + .../analysis/calculators/__init__.py | 3 + .../analysis/calculators/calculator_base.py | 3 + .../calculators/calculator_crysfml.py | 3 + .../analysis/calculators/calculator_cryspy.py | 3 + .../calculators/calculator_factory.py | 3 + .../analysis/calculators/calculator_pdffit.py | 3 + .../analysis/collections/__init__.py | 3 + .../analysis/collections/aliases.py | 3 + .../analysis/collections/constraints.py | 3 + .../collections/joint_fit_experiments.py | 3 + src/easydiffraction/analysis/minimization.py | 3 + .../analysis/minimizers/__init__.py | 3 + .../minimizers/fitting_progress_tracker.py | 3 + .../analysis/minimizers/minimizer_base.py | 3 + .../analysis/minimizers/minimizer_dfols.py | 3 + .../analysis/minimizers/minimizer_factory.py | 3 + .../analysis/minimizers/minimizer_lmfit.py | 3 + .../analysis/reliability_factors.py | 3 + src/easydiffraction/core/__init__.py | 3 + src/easydiffraction/core/constants.py | 3 + src/easydiffraction/core/objects.py | 3 + src/easydiffraction/core/singletons.py | 3 + .../crystallography/__init__.py | 3 + .../crystallography/crystallography.py | 3 + .../space_group_lookup_table.py | 3 + src/easydiffraction/experiments/__init__.py | 3 + .../experiments/collections/__init__.py | 3 + .../experiments/collections/background.py | 3 + .../experiments/collections/datastore.py | 3 + .../collections/excluded_regions.py | 3 + .../experiments/collections/linked_phases.py | 3 + .../experiments/components/__init__.py | 3 + .../experiments/components/experiment_type.py | 3 + .../experiments/components/instrument.py | 3 + .../experiments/components/peak.py | 3 + src/easydiffraction/experiments/experiment.py | 3 + .../experiments/experiments.py | 3 + src/easydiffraction/plotting/__init__.py | 3 + .../plotting/plotters/__init__.py | 3 + .../plotting/plotters/plotter_ascii.py | 3 + .../plotting/plotters/plotter_base.py | 3 + .../plotting/plotters/plotter_plotly.py | 3 + src/easydiffraction/plotting/plotting.py | 3 + src/easydiffraction/project.py | 3 + src/easydiffraction/sample_models/__init__.py | 3 + .../sample_models/collections/__init__.py | 3 + .../sample_models/collections/atom_sites.py | 3 + .../sample_models/components/__init__.py | 3 + .../sample_models/components/cell.py | 3 + .../sample_models/components/space_group.py | 3 + .../sample_models/sample_model.py | 3 + .../sample_models/sample_models.py | 3 + src/easydiffraction/summary.py | 3 + src/easydiffraction/utils/__init__.py | 3 + src/easydiffraction/utils/decorators.py | 3 + src/easydiffraction/utils/formatting.py | 3 + src/easydiffraction/utils/utils.py | 3 + tools/update_spdx-headers.py | 63 +++++++++++++++++++ 62 files changed, 246 insertions(+) create mode 100644 tools/update_spdx-headers.py diff --git a/src/easydiffraction/__init__.py b/src/easydiffraction/__init__.py index bcf6d09c..6cf5c92b 100644 --- a/src/easydiffraction/__init__.py +++ b/src/easydiffraction/__init__.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause + # Analysis from easydiffraction.analysis.analysis import Analysis diff --git a/src/easydiffraction/analysis/__init__.py b/src/easydiffraction/analysis/__init__.py index e69de29b..36578308 100644 --- a/src/easydiffraction/analysis/__init__.py +++ b/src/easydiffraction/analysis/__init__.py @@ -0,0 +1,3 @@ +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause + diff --git a/src/easydiffraction/analysis/analysis.py b/src/easydiffraction/analysis/analysis.py index f0979d30..1fa761de 100644 --- a/src/easydiffraction/analysis/analysis.py +++ b/src/easydiffraction/analysis/analysis.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause + from typing import List from typing import Optional from typing import Union diff --git a/src/easydiffraction/analysis/calculation.py b/src/easydiffraction/analysis/calculation.py index 37477f6f..2243e1c7 100644 --- a/src/easydiffraction/analysis/calculation.py +++ b/src/easydiffraction/analysis/calculation.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause + from typing import Any from typing import List from typing import Optional diff --git a/src/easydiffraction/analysis/calculators/__init__.py b/src/easydiffraction/analysis/calculators/__init__.py index e69de29b..36578308 100644 --- a/src/easydiffraction/analysis/calculators/__init__.py +++ b/src/easydiffraction/analysis/calculators/__init__.py @@ -0,0 +1,3 @@ +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause + diff --git a/src/easydiffraction/analysis/calculators/calculator_base.py b/src/easydiffraction/analysis/calculators/calculator_base.py index 45d24f9d..aba5285c 100644 --- a/src/easydiffraction/analysis/calculators/calculator_base.py +++ b/src/easydiffraction/analysis/calculators/calculator_base.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause + from abc import ABC from abc import abstractmethod from typing import Any diff --git a/src/easydiffraction/analysis/calculators/calculator_crysfml.py b/src/easydiffraction/analysis/calculators/calculator_crysfml.py index 18abdb0e..91257e8a 100644 --- a/src/easydiffraction/analysis/calculators/calculator_crysfml.py +++ b/src/easydiffraction/analysis/calculators/calculator_crysfml.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause + from typing import Any from typing import Dict from typing import List diff --git a/src/easydiffraction/analysis/calculators/calculator_cryspy.py b/src/easydiffraction/analysis/calculators/calculator_cryspy.py index ea8e15f9..67bdebd2 100644 --- a/src/easydiffraction/analysis/calculators/calculator_cryspy.py +++ b/src/easydiffraction/analysis/calculators/calculator_cryspy.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause + import contextlib import copy import io diff --git a/src/easydiffraction/analysis/calculators/calculator_factory.py b/src/easydiffraction/analysis/calculators/calculator_factory.py index 5907dc43..8664f826 100644 --- a/src/easydiffraction/analysis/calculators/calculator_factory.py +++ b/src/easydiffraction/analysis/calculators/calculator_factory.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause + from typing import Any from typing import Dict from typing import List diff --git a/src/easydiffraction/analysis/calculators/calculator_pdffit.py b/src/easydiffraction/analysis/calculators/calculator_pdffit.py index 0b8ea342..e1f06abe 100644 --- a/src/easydiffraction/analysis/calculators/calculator_pdffit.py +++ b/src/easydiffraction/analysis/calculators/calculator_pdffit.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause + import os import re diff --git a/src/easydiffraction/analysis/collections/__init__.py b/src/easydiffraction/analysis/collections/__init__.py index e69de29b..36578308 100644 --- a/src/easydiffraction/analysis/collections/__init__.py +++ b/src/easydiffraction/analysis/collections/__init__.py @@ -0,0 +1,3 @@ +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause + diff --git a/src/easydiffraction/analysis/collections/aliases.py b/src/easydiffraction/analysis/collections/aliases.py index 3d3b2ce3..bc575548 100644 --- a/src/easydiffraction/analysis/collections/aliases.py +++ b/src/easydiffraction/analysis/collections/aliases.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause + from typing import Type from easydiffraction.core.objects import Collection diff --git a/src/easydiffraction/analysis/collections/constraints.py b/src/easydiffraction/analysis/collections/constraints.py index ca3f4118..4d24fa31 100644 --- a/src/easydiffraction/analysis/collections/constraints.py +++ b/src/easydiffraction/analysis/collections/constraints.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause + from typing import Type from easydiffraction.core.objects import Collection diff --git a/src/easydiffraction/analysis/collections/joint_fit_experiments.py b/src/easydiffraction/analysis/collections/joint_fit_experiments.py index 11627f22..5d1a107b 100644 --- a/src/easydiffraction/analysis/collections/joint_fit_experiments.py +++ b/src/easydiffraction/analysis/collections/joint_fit_experiments.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause + from typing import Type from easydiffraction.core.objects import Collection diff --git a/src/easydiffraction/analysis/minimization.py b/src/easydiffraction/analysis/minimization.py index 116414d7..dd85a8a3 100644 --- a/src/easydiffraction/analysis/minimization.py +++ b/src/easydiffraction/analysis/minimization.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause + from typing import Any from typing import Dict from typing import List diff --git a/src/easydiffraction/analysis/minimizers/__init__.py b/src/easydiffraction/analysis/minimizers/__init__.py index e69de29b..36578308 100644 --- a/src/easydiffraction/analysis/minimizers/__init__.py +++ b/src/easydiffraction/analysis/minimizers/__init__.py @@ -0,0 +1,3 @@ +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause + diff --git a/src/easydiffraction/analysis/minimizers/fitting_progress_tracker.py b/src/easydiffraction/analysis/minimizers/fitting_progress_tracker.py index 0e43be93..af3f72c2 100644 --- a/src/easydiffraction/analysis/minimizers/fitting_progress_tracker.py +++ b/src/easydiffraction/analysis/minimizers/fitting_progress_tracker.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause + import time from typing import List from typing import Optional diff --git a/src/easydiffraction/analysis/minimizers/minimizer_base.py b/src/easydiffraction/analysis/minimizers/minimizer_base.py index e88c4e32..80641c44 100644 --- a/src/easydiffraction/analysis/minimizers/minimizer_base.py +++ b/src/easydiffraction/analysis/minimizers/minimizer_base.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause + from abc import ABC from abc import abstractmethod from typing import Any diff --git a/src/easydiffraction/analysis/minimizers/minimizer_dfols.py b/src/easydiffraction/analysis/minimizers/minimizer_dfols.py index ab033071..3aeb1f9c 100644 --- a/src/easydiffraction/analysis/minimizers/minimizer_dfols.py +++ b/src/easydiffraction/analysis/minimizers/minimizer_dfols.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause + from typing import Any from typing import Dict from typing import List diff --git a/src/easydiffraction/analysis/minimizers/minimizer_factory.py b/src/easydiffraction/analysis/minimizers/minimizer_factory.py index a8d821ef..e3af60d2 100644 --- a/src/easydiffraction/analysis/minimizers/minimizer_factory.py +++ b/src/easydiffraction/analysis/minimizers/minimizer_factory.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause + from typing import Any from typing import Dict from typing import List diff --git a/src/easydiffraction/analysis/minimizers/minimizer_lmfit.py b/src/easydiffraction/analysis/minimizers/minimizer_lmfit.py index 1fb4d339..f6b7b629 100644 --- a/src/easydiffraction/analysis/minimizers/minimizer_lmfit.py +++ b/src/easydiffraction/analysis/minimizers/minimizer_lmfit.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause + from typing import Any from typing import Dict from typing import List diff --git a/src/easydiffraction/analysis/reliability_factors.py b/src/easydiffraction/analysis/reliability_factors.py index b6b2f8c8..c60e8c6e 100644 --- a/src/easydiffraction/analysis/reliability_factors.py +++ b/src/easydiffraction/analysis/reliability_factors.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause + from typing import Optional from typing import Tuple diff --git a/src/easydiffraction/core/__init__.py b/src/easydiffraction/core/__init__.py index e69de29b..36578308 100644 --- a/src/easydiffraction/core/__init__.py +++ b/src/easydiffraction/core/__init__.py @@ -0,0 +1,3 @@ +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause + diff --git a/src/easydiffraction/core/constants.py b/src/easydiffraction/core/constants.py index 71bc003d..00dc0c30 100644 --- a/src/easydiffraction/core/constants.py +++ b/src/easydiffraction/core/constants.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause + # TODO: Change to use enum for these constants DEFAULT_SAMPLE_FORM = 'powder' DEFAULT_BEAM_MODE = 'constant wavelength' diff --git a/src/easydiffraction/core/objects.py b/src/easydiffraction/core/objects.py index 052a30ec..ac34afe4 100644 --- a/src/easydiffraction/core/objects.py +++ b/src/easydiffraction/core/objects.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause + import secrets import string from abc import ABC diff --git a/src/easydiffraction/core/singletons.py b/src/easydiffraction/core/singletons.py index a0f81515..6f45aa6b 100644 --- a/src/easydiffraction/core/singletons.py +++ b/src/easydiffraction/core/singletons.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause + from typing import Any from typing import Dict from typing import List diff --git a/src/easydiffraction/crystallography/__init__.py b/src/easydiffraction/crystallography/__init__.py index e69de29b..36578308 100644 --- a/src/easydiffraction/crystallography/__init__.py +++ b/src/easydiffraction/crystallography/__init__.py @@ -0,0 +1,3 @@ +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause + diff --git a/src/easydiffraction/crystallography/crystallography.py b/src/easydiffraction/crystallography/crystallography.py index 9aab0477..021218f6 100644 --- a/src/easydiffraction/crystallography/crystallography.py +++ b/src/easydiffraction/crystallography/crystallography.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause + from typing import Any from typing import Dict from typing import List diff --git a/src/easydiffraction/crystallography/space_group_lookup_table.py b/src/easydiffraction/crystallography/space_group_lookup_table.py index d41102d1..49b9857e 100644 --- a/src/easydiffraction/crystallography/space_group_lookup_table.py +++ b/src/easydiffraction/crystallography/space_group_lookup_table.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause + SPACE_GROUP_LOOKUP_DICT = { (1, None): { 'IT_number': 1, diff --git a/src/easydiffraction/experiments/__init__.py b/src/easydiffraction/experiments/__init__.py index e69de29b..36578308 100644 --- a/src/easydiffraction/experiments/__init__.py +++ b/src/easydiffraction/experiments/__init__.py @@ -0,0 +1,3 @@ +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause + diff --git a/src/easydiffraction/experiments/collections/__init__.py b/src/easydiffraction/experiments/collections/__init__.py index e69de29b..36578308 100644 --- a/src/easydiffraction/experiments/collections/__init__.py +++ b/src/easydiffraction/experiments/collections/__init__.py @@ -0,0 +1,3 @@ +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause + diff --git a/src/easydiffraction/experiments/collections/background.py b/src/easydiffraction/experiments/collections/background.py index 97c582c5..2288afeb 100644 --- a/src/easydiffraction/experiments/collections/background.py +++ b/src/easydiffraction/experiments/collections/background.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause + from abc import abstractmethod from typing import Dict from typing import List diff --git a/src/easydiffraction/experiments/collections/datastore.py b/src/easydiffraction/experiments/collections/datastore.py index 8cc8853f..6b9b2355 100644 --- a/src/easydiffraction/experiments/collections/datastore.py +++ b/src/easydiffraction/experiments/collections/datastore.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause + from __future__ import annotations from typing import TYPE_CHECKING diff --git a/src/easydiffraction/experiments/collections/excluded_regions.py b/src/easydiffraction/experiments/collections/excluded_regions.py index cb685b3e..e9a61273 100644 --- a/src/easydiffraction/experiments/collections/excluded_regions.py +++ b/src/easydiffraction/experiments/collections/excluded_regions.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause + from typing import List from typing import Type diff --git a/src/easydiffraction/experiments/collections/linked_phases.py b/src/easydiffraction/experiments/collections/linked_phases.py index a9fc843d..5c7452fc 100644 --- a/src/easydiffraction/experiments/collections/linked_phases.py +++ b/src/easydiffraction/experiments/collections/linked_phases.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause + from typing import Type from easydiffraction.core.objects import Collection diff --git a/src/easydiffraction/experiments/components/__init__.py b/src/easydiffraction/experiments/components/__init__.py index e69de29b..36578308 100644 --- a/src/easydiffraction/experiments/components/__init__.py +++ b/src/easydiffraction/experiments/components/__init__.py @@ -0,0 +1,3 @@ +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause + diff --git a/src/easydiffraction/experiments/components/experiment_type.py b/src/easydiffraction/experiments/components/experiment_type.py index 5848d549..56facc09 100644 --- a/src/easydiffraction/experiments/components/experiment_type.py +++ b/src/easydiffraction/experiments/components/experiment_type.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause + from easydiffraction.core.objects import Component from easydiffraction.core.objects import Descriptor diff --git a/src/easydiffraction/experiments/components/instrument.py b/src/easydiffraction/experiments/components/instrument.py index 8a20e959..5b4aa22d 100644 --- a/src/easydiffraction/experiments/components/instrument.py +++ b/src/easydiffraction/experiments/components/instrument.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause + from easydiffraction.core.constants import DEFAULT_BEAM_MODE from easydiffraction.core.constants import DEFAULT_SCATTERING_TYPE from easydiffraction.core.objects import Component diff --git a/src/easydiffraction/experiments/components/peak.py b/src/easydiffraction/experiments/components/peak.py index 6079763c..6c44806b 100644 --- a/src/easydiffraction/experiments/components/peak.py +++ b/src/easydiffraction/experiments/components/peak.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause + from easydiffraction.core.constants import DEFAULT_BEAM_MODE from easydiffraction.core.constants import DEFAULT_PEAK_PROFILE_TYPE from easydiffraction.core.constants import DEFAULT_SCATTERING_TYPE diff --git a/src/easydiffraction/experiments/experiment.py b/src/easydiffraction/experiments/experiment.py index 16fc366f..8e28f62b 100644 --- a/src/easydiffraction/experiments/experiment.py +++ b/src/easydiffraction/experiments/experiment.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause + from abc import abstractmethod from typing import List from typing import Optional diff --git a/src/easydiffraction/experiments/experiments.py b/src/easydiffraction/experiments/experiments.py index 4a7686fb..7a9b5827 100644 --- a/src/easydiffraction/experiments/experiments.py +++ b/src/easydiffraction/experiments/experiments.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause + import os.path from typing import Dict from typing import List diff --git a/src/easydiffraction/plotting/__init__.py b/src/easydiffraction/plotting/__init__.py index e69de29b..36578308 100644 --- a/src/easydiffraction/plotting/__init__.py +++ b/src/easydiffraction/plotting/__init__.py @@ -0,0 +1,3 @@ +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause + diff --git a/src/easydiffraction/plotting/plotters/__init__.py b/src/easydiffraction/plotting/plotters/__init__.py index e69de29b..36578308 100644 --- a/src/easydiffraction/plotting/plotters/__init__.py +++ b/src/easydiffraction/plotting/plotters/__init__.py @@ -0,0 +1,3 @@ +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause + diff --git a/src/easydiffraction/plotting/plotters/plotter_ascii.py b/src/easydiffraction/plotting/plotters/plotter_ascii.py index cab76acc..0d9e1352 100644 --- a/src/easydiffraction/plotting/plotters/plotter_ascii.py +++ b/src/easydiffraction/plotting/plotters/plotter_ascii.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause + import asciichartpy from easydiffraction.utils.formatting import paragraph diff --git a/src/easydiffraction/plotting/plotters/plotter_base.py b/src/easydiffraction/plotting/plotters/plotter_base.py index 12c7298f..552a9982 100644 --- a/src/easydiffraction/plotting/plotters/plotter_base.py +++ b/src/easydiffraction/plotting/plotters/plotter_base.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause + from abc import ABC from abc import abstractmethod diff --git a/src/easydiffraction/plotting/plotters/plotter_plotly.py b/src/easydiffraction/plotting/plotters/plotter_plotly.py index 4f87acb2..04d6e671 100644 --- a/src/easydiffraction/plotting/plotters/plotter_plotly.py +++ b/src/easydiffraction/plotting/plotters/plotter_plotly.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause + import darkdetect import plotly.graph_objects as go import plotly.io as pio diff --git a/src/easydiffraction/plotting/plotting.py b/src/easydiffraction/plotting/plotting.py index 340542ab..288fced3 100644 --- a/src/easydiffraction/plotting/plotting.py +++ b/src/easydiffraction/plotting/plotting.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause + from easydiffraction.core.constants import DEFAULT_AXES_LABELS from easydiffraction.plotting.plotters.plotter_ascii import AsciiPlotter from easydiffraction.plotting.plotters.plotter_base import DEFAULT_ENGINE diff --git a/src/easydiffraction/project.py b/src/easydiffraction/project.py index 68db52ff..4ef82fd3 100644 --- a/src/easydiffraction/project.py +++ b/src/easydiffraction/project.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause + import datetime import os import tempfile diff --git a/src/easydiffraction/sample_models/__init__.py b/src/easydiffraction/sample_models/__init__.py index e69de29b..36578308 100644 --- a/src/easydiffraction/sample_models/__init__.py +++ b/src/easydiffraction/sample_models/__init__.py @@ -0,0 +1,3 @@ +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause + diff --git a/src/easydiffraction/sample_models/collections/__init__.py b/src/easydiffraction/sample_models/collections/__init__.py index e69de29b..36578308 100644 --- a/src/easydiffraction/sample_models/collections/__init__.py +++ b/src/easydiffraction/sample_models/collections/__init__.py @@ -0,0 +1,3 @@ +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause + diff --git a/src/easydiffraction/sample_models/collections/atom_sites.py b/src/easydiffraction/sample_models/collections/atom_sites.py index f6915f61..bb85b584 100644 --- a/src/easydiffraction/sample_models/collections/atom_sites.py +++ b/src/easydiffraction/sample_models/collections/atom_sites.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause + from easydiffraction.core.objects import Collection from easydiffraction.core.objects import Component from easydiffraction.core.objects import Descriptor diff --git a/src/easydiffraction/sample_models/components/__init__.py b/src/easydiffraction/sample_models/components/__init__.py index e69de29b..36578308 100644 --- a/src/easydiffraction/sample_models/components/__init__.py +++ b/src/easydiffraction/sample_models/components/__init__.py @@ -0,0 +1,3 @@ +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause + diff --git a/src/easydiffraction/sample_models/components/cell.py b/src/easydiffraction/sample_models/components/cell.py index c0c04ebb..f21b56a7 100644 --- a/src/easydiffraction/sample_models/components/cell.py +++ b/src/easydiffraction/sample_models/components/cell.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause + from easydiffraction.core.objects import Component from easydiffraction.core.objects import Parameter diff --git a/src/easydiffraction/sample_models/components/space_group.py b/src/easydiffraction/sample_models/components/space_group.py index f4557840..8d37fb8e 100644 --- a/src/easydiffraction/sample_models/components/space_group.py +++ b/src/easydiffraction/sample_models/components/space_group.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause + from typing import Optional from easydiffraction.core.objects import Component diff --git a/src/easydiffraction/sample_models/sample_model.py b/src/easydiffraction/sample_models/sample_model.py index 1b7f25ad..c5208a9e 100644 --- a/src/easydiffraction/sample_models/sample_model.py +++ b/src/easydiffraction/sample_models/sample_model.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause + from easydiffraction.core.objects import Datablock from easydiffraction.crystallography import crystallography as ecr from easydiffraction.sample_models.collections.atom_sites import AtomSites diff --git a/src/easydiffraction/sample_models/sample_models.py b/src/easydiffraction/sample_models/sample_models.py index 12d61f89..2ed1f6e6 100644 --- a/src/easydiffraction/sample_models/sample_models.py +++ b/src/easydiffraction/sample_models/sample_models.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause + from typing import List from typing import Optional diff --git a/src/easydiffraction/summary.py b/src/easydiffraction/summary.py index c4a016e2..ffdcc898 100644 --- a/src/easydiffraction/summary.py +++ b/src/easydiffraction/summary.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause + from textwrap import wrap from typing import List diff --git a/src/easydiffraction/utils/__init__.py b/src/easydiffraction/utils/__init__.py index e69de29b..36578308 100644 --- a/src/easydiffraction/utils/__init__.py +++ b/src/easydiffraction/utils/__init__.py @@ -0,0 +1,3 @@ +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause + diff --git a/src/easydiffraction/utils/decorators.py b/src/easydiffraction/utils/decorators.py index 68c8c4fa..73c390c3 100644 --- a/src/easydiffraction/utils/decorators.py +++ b/src/easydiffraction/utils/decorators.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause + import inspect diff --git a/src/easydiffraction/utils/formatting.py b/src/easydiffraction/utils/formatting.py index 62de5bf6..a8385d2c 100644 --- a/src/easydiffraction/utils/formatting.py +++ b/src/easydiffraction/utils/formatting.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause + from colorama import Fore from colorama import Style diff --git a/src/easydiffraction/utils/utils.py b/src/easydiffraction/utils/utils.py index 3ba9956b..885f80ee 100644 --- a/src/easydiffraction/utils/utils.py +++ b/src/easydiffraction/utils/utils.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause + """ General utilities and helpers for easydiffraction. """ diff --git a/tools/update_spdx-headers.py b/tools/update_spdx-headers.py new file mode 100644 index 00000000..602f6a1d --- /dev/null +++ b/tools/update_spdx-headers.py @@ -0,0 +1,63 @@ +""" +Update or insert SPDX headers in Python files. +- Ensures SPDX-FileCopyrightText has the current year. +- Ensures SPDX-License-Identifier is set to BSD-3-Clause. +""" + +import datetime +import re +from pathlib import Path + +CURRENT_YEAR = datetime.datetime.now().year +COPYRIGHT_TEXT = ( + f'# SPDX-FileCopyrightText: 2021-{CURRENT_YEAR} EasyDiffraction Python Library contributors ' + '' +) +LICENSE_TEXT = '# SPDX-License-Identifier: BSD-3-Clause' + + +def update_spdx_header(file_path: Path): + with open(file_path, 'r', encoding='utf-8') as f: + lines = f.readlines() + + # Patterns to match existing SPDX lines + copy_re = re.compile(r'^#\s*SPDX-FileCopyrightText:.*$') + lic_re = re.compile(r'^#\s*SPDX-License-Identifier:.*$') + + new_lines = [] + found_copy = False + found_lic = False + + for line in lines: + if copy_re.match(line): + new_lines.append(COPYRIGHT_TEXT + '\n') + found_copy = True + elif lic_re.match(line): + new_lines.append(LICENSE_TEXT + '\n') + found_lic = True + else: + new_lines.append(line) + + # If not found, insert at top + insert_pos = 0 + if not found_copy: + new_lines.insert(insert_pos, COPYRIGHT_TEXT + '\n') + insert_pos += 1 + if not found_lic: + new_lines.insert(insert_pos, LICENSE_TEXT + '\n') + insert_pos += 1 + new_lines.insert(insert_pos, '\n') + + with open(file_path, 'w', encoding='utf-8') as f: + f.writelines(new_lines) + + +def main(): + for py_file in Path('src').rglob('*.py'): + if 'venv' in py_file.parts or '.venv' in py_file.parts: + continue + update_spdx_header(py_file) + + +if __name__ == '__main__': + main() From 8f08720e3ab4c1942e2cb05260f079c594723fc9 Mon Sep 17 00:00:00 2001 From: Andrew Sazonov Date: Mon, 11 Aug 2025 11:03:29 +0200 Subject: [PATCH 40/43] Updates copyright information --- LICENSE | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LICENSE b/LICENSE index ce9c4f40..6dd8a97c 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ BSD 3-Clause License -Copyright (c) 2025 EasyDiffraction contributors (https://github.com/easyscience/diffraction-lib). +Copyright (c) 2021-2025 EasyDiffraction Python Library contributors Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: From 05aacaabb276adab44b1e4942bbf0207b76e34ad Mon Sep 17 00:00:00 2001 From: Andrew Sazonov Date: Mon, 11 Aug 2025 11:23:35 +0200 Subject: [PATCH 41/43] Add contributing and development guidelines --- .github/workflows/test-code.yaml | 2 +- .prettierignore | 0 CONTRIBUTING.md | 94 +++++++++++++++++++ DEVELOPMENT.md | 156 +++++++++++++++++++++++++++++++ LICENSE | 2 +- README.md | 136 +++++++++++---------------- docs/introduction/index.md | 10 +- 7 files changed, 310 insertions(+), 90 deletions(-) create mode 100644 .prettierignore create mode 100644 CONTRIBUTING.md create mode 100644 DEVELOPMENT.md diff --git a/.github/workflows/test-code.yaml b/.github/workflows/test-code.yaml index ffd4373b..dc857781 100644 --- a/.github/workflows/test-code.yaml +++ b/.github/workflows/test-code.yaml @@ -80,7 +80,7 @@ jobs: # Install 'prettier-plugin-toml' plugin for formatting of TOML files shell: bash run: > - npm install --no-save --no-audit --no-fund 'prettier@>=3.3.3' + npm install --no-save --no-audit --no-fund 'prettier@>=3.3.3' 'prettier-plugin-toml@>=0.13.0' # Check the validity of pyproject.toml diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 00000000..e69de29b diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 00000000..f05c041f --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,94 @@ +# Contributing + +When contributing, please first discuss the change you wish to make via issue, +email, or any other method with the owners of this repository before making a +change. + +Please note we have a code of conduct, please follow it in all your interactions +with the project. + +## Pull Request Process + +1. Ensure any install or build dependencies are removed before the end of the + layer when doing a build. +2. Update the README.md with details of changes to the interface, this includes + new environment variables, exposed ports, useful file locations and container + parameters. +3. Increase the version numbers in any example files and the README.md to the + new version that this Pull Request would represent. The versioning scheme we + use is [SemVer](http://semver.org/). +4. You may merge the Pull Request in once you have the sign-off of two other + developers, or if you do not have permission to do that, you may request the + second reviewer to merge it for you. + +## Code of Conduct + +### Our Pledge + +In the interest of fostering an open and welcoming environment, we as +contributors and maintainers pledge to make participation in our project and our +community a harassment-free experience for everyone, regardless of age, body +size, disability, ethnicity, gender identity and expression, level of +experience, nationality, personal appearance, race, religion, or sexual identity +and orientation. + +### Our Standards + +Examples of behavior that contributes to creating a positive environment +include: + +- Being respectful of differing viewpoints and experiences +- Gracefully accepting constructive criticism +- Focusing on what is best for the community + +Examples of unacceptable behavior by participants include: + +- Trolling, insulting/derogatory comments, and personal or political attacks +- Public or private harassment +- Publishing others' private information, such as a physical or electronic + address, without explicit permission +- Other conduct which could reasonably be considered inappropriate in a + professional setting + +### Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable +behavior and are expected to take appropriate and fair corrective action in +response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or reject +comments, commits, code, wiki edits, issues, and other contributions that are +not aligned to this Code of Conduct, or to ban temporarily or permanently any +contributor for other behaviors that they deem inappropriate, threatening, +offensive, or harmful. + +### Scope + +This Code of Conduct applies both within project spaces and in public spaces +when an individual is representing the project or its community. Examples of +representing a project or community include using an official project e-mail +address, posting via an official social media account, or acting as an appointed +representative at an online or offline event. Representation of a project may be +further defined and clarified by project maintainers. + +### Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported by contacting the project team at suport@easydiffraction.org. All +complaints will be reviewed and investigated and will result in a response that +is deemed necessary and appropriate to the circumstances. The project team is +obligated to maintain confidentiality with regard to the reporter of an +incident. Further details of specific enforcement policies may be posted +separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good +faith may face temporary or permanent repercussions as determined by other +members of the project's leadership. + +### Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], +version 1.4, available at [http://contributor-covenant.org/version/1/4][version] + +[homepage]: http://contributor-covenant.org +[version]: http://contributor-covenant.org/version/1/4/ diff --git a/DEVELOPMENT.md b/DEVELOPMENT.md new file mode 100644 index 00000000..bafbe2f3 --- /dev/null +++ b/DEVELOPMENT.md @@ -0,0 +1,156 @@ +# Development + +This is an example of a workflow that describes the development process. + +- Clone EasyDiffraction library repository + ```bash + git clone https://github.com/easyscience/diffraction-lib + ``` +- Go to the cloned directory + ```bash + cd diffraction-lib + ``` +- Checkout/switch to the `develop` branch + ```bash + git checkout develop + ``` +- Create a new branch from the current one + ```bash + git checkout -b new-feature + ``` +- Create Python environment and activate it + ```bash + python3 -m venv .venv + source .venv/bin/activate + ``` +- Upgrade PIP - package installer for Python + ```bash + python -m pip install --upgrade pip + ``` +- Install easydiffraction from root with `dev` extras for development, + `visualization` extras for Jupyter notebooks and `docs` extras for building + documentation + ```bash + pip install '.[dev,visualization,docs]' + ``` +- Install pycrysfml (pyenv python 3.12, macOS 14, Apple Silicon): + ```bash + # Install from local wheel + pip install deps/pycrysfml-0.1.6-py312-none-macosx_14_0_arm64.whl + # Try to import the module + python -c "from pycrysfml import cfml_py_utilities" + # If previous step failed, check the linked libraries + otool -L .venv/lib/python3.12/site-packages/pycrysfml/crysfml08lib.so + # If the library is linked to the wrong Python version, you can fix it with: + install_name_tool -change `python3-config --prefix`/Python `python3-config --prefix`/lib/libpython3.12.dylib .venv/lib/python3.12/site-packages/pycrysfml/crysfml08lib.so + # Check again the linked Python library + otool -L .venv/lib/python3.12/site-packages/pycrysfml/crysfml08lib.so + # Try to import the module again + python -c "from pycrysfml import cfml_py_utilities" + ``` +- Install CBLAS library, required for using the Pair Distribution Function + feature. This step is required only on Windows. + ```bash + # Install from the conda-forge channel + conda install libcblas -c conda-forge + # Try to import the module + python -c "import diffpy.pdffit2" + ``` +- Make changes in the code + ```bash + ... + ``` +- Check the validity of pyproject.toml + ```bash + validate-pyproject pyproject.toml + ``` +- Run Ruff - Python linter and code formatter (configuration is in + pyproject.toml)
Linting (overwriting files) + ```bash + ruff check . --fix + ``` + Formatting (overwriting files) + ```bash + ruff format . + ``` +- Install and run Prettier - code formatter for Markdown, YAML, TOML, etc. files + (configuration in prettierrc.toml)
Formatting (overwriting files) + ```bash + npm install --no-save --no-audit --no-fund 'prettier@>=3.3.3' 'prettier-plugin-toml@>=0.13.0' + npx prettier . --write --config=prettierrc.toml + ``` +- Run python unit tests + ```bash + export PYTHONPATH="$(pwd)/src${PYTHONPATH:+:$PYTHONPATH}" + python -m pytest tests/unit_tests/ --color=yes + ``` +- Run python functional tests + ```bash + export PYTHONPATH="$(pwd)/src${PYTHONPATH:+:$PYTHONPATH}" + python -m pytest tests/functional_tests/ --color=yes -n auto + ``` +- Run tutorials as python scripts + ```bash + export PYTHONPATH="$(pwd)/src${PYTHONPATH:+:$PYTHONPATH}" + find tutorials/ -name "*.py" | xargs -n 1 -P 0 python + ``` +- Run tutorials/_.py to _.ipynb + ```bash + jupytext tutorials/*.py --from py:percent --to ipynb + nbstripout tutorials/*.ipynb + ``` +- Run tutorials as Jupyter Notebooks + ```bash + export PYTHONPATH="$(pwd)/src${PYTHONPATH:+:$PYTHONPATH}" + python -m pytest --nbmake tutorials/ --nbmake-timeout=600 --color=yes -n auto + ``` +- Add extra files to build documentation (from `../assets-docs/` and + `../assets-branding/` directories) + ```bash + cp -R ../assets-docs/docs/assets/ docs/assets/ + cp -R ../assets-docs/includes/ includes/ + cp -R ../assets-docs/overrides/ overrides/ + mkdir -p docs/assets/images/ + cp ../assets-branding/EasyDiffraction/logos/ed-logo_dark.svg docs/assets/images/ + cp ../assets-branding/EasyDiffraction/logos/ed-logo_light.svg 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 + cp ../assets-branding/EasyDiffraction/icons/ed-icon_256x256.png docs/assets/images/favicon.png + mkdir -p overrides/.icons/ + cp ../assets-branding/EasyDiffraction/icons/ed-icon_bw.svg overrides/.icons/easydiffraction.svg + cp ../assets-branding/EasyScienceOrg/icons/eso-icon_bw.svg overrides/.icons/easyscience.svg + cp -R examples/ docs/examples/ + cat ../assets-docs/mkdocs.yml docs/mkdocs.yml > mkdocs.yml + ``` +- Build documentation with MkDocs - static site generator + ```bash + export JUPYTER_PLATFORM_DIRS=1 + export PYTHONWARNINGS="ignore::RuntimeWarning" + export PYTHONPATH="$(pwd)/src${PYTHONPATH:+:$PYTHONPATH}" + 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 + ```console + open http://127.0.0.1:8000 + ``` +- Clean up after building documentation + ```console + rm -rf site/ + rm -rf docs/assets/ + rm -rf docs/tutorials/*.py + rm -rf docs/tutorials/*.ipynb + rm -rf includes/ + rm -rf overrides/ + rm -rf node_modules/ + rm mkdocs.yml + ``` +- Commit changes + ```console + git add . + git commit -m "Add new feature" + ``` +- Push the new branch to a remote repository + ```console + git push -u origin new-feature + ``` diff --git a/LICENSE b/LICENSE index 6dd8a97c..4debe9f4 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ BSD 3-Clause License -Copyright (c) 2021-2025 EasyDiffraction Python Library contributors +Copyright (c) 2021-2025 EasyDiffraction Python Library contributors Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: diff --git a/README.md b/README.md index a08db606..6278d78f 100644 --- a/README.md +++ b/README.md @@ -1,83 +1,53 @@ -# easydiffraction - -Development playground for the new EasyDiffraction API. - -## User Installation & Setup - -- Create a new virtual environment: - ```bash - python3 -m venv .venv - ``` -- Activate the environment: - ```bash - . .venv/bin/activate - ``` -- Install the package from GitHub: - ```bash - pip install git+https://github.com/easyscience/diffraction-lib@develop#egg=easydiffraction - ``` - -## Developer Installation & Setup - -- Create a new virtual environment: - ```bash - python3 -m venv .venv - ``` -- Activate the environment: - ```bash - . .venv/bin/activate - ``` -- Install dependencies: - ```bash - pip install --upgrade pip - pip python -m pip install . '[visualization]' - ``` -- Install pycrysfml (pyenv python 3.12, macOS 14, Apple Silicon): - - ```bash - # Install from local wheel - pip install deps/pycrysfml-0.1.6-py312-none-macosx_14_0_arm64.whl - # Try to import the module - python -c "from pycrysfml import cfml_py_utilities" - # If previous step failed, check the linked libraries - otool -L .venv/lib/python3.12/site-packages/pycrysfml/crysfml08lib.so - # If the library is linked to the wrong Python version, you can fix it with: - install_name_tool -change `python3-config --prefix`/Python `python3-config --prefix`/lib/libpython3.12.dylib .venv/lib/python3.12/site-packages/pycrysfml/crysfml08lib.so - # Check again the linked Python library - otool -L .venv/lib/python3.12/site-packages/pycrysfml/crysfml08lib.so - # Try to import the module again - python -c "from pycrysfml import cfml_py_utilities" - ``` - -- Install CBLAS library, required for using the Pair Distribution Function - feature. This step is required only on Windows. - - ```bash - # Install from the conda-forge channel - conda install libcblas -c conda-forge - - # Try to import the module - python -c "import diffpy.pdffit2" - ``` - -## Testing - -- Unit tests: - ```bash - PYTHONPATH=$(pwd)/src python -m pytest tests/unit_tests/ --color=yes -n auto - ``` -- Functional tests: - ```bash - PYTHONPATH=$(pwd)/src python -m pytest tests/functional_tests/ --color=yes -n auto - ``` - -## Running examples - -- Simplified API: - ```bash - PYTHONPATH=$(pwd)/src python examples/joint-fit_basic-usage.py - ``` -- Advanced API: - ```bash - PYTHONPATH=$(pwd)/src python examples/joint-fit_advanced-usage.py - ``` +

+ + + + + + + EasyDiffraction + +

+ +**EasyDiffraction** is a Python package for calculating neutron powder +diffraction patterns based on a structural model and refining its parameters +against experimental data. + +**EasyDiffraction** is built upon the [EasyScience] framework, which provides +essential tools for developing scientific libraries and applications. + +## Useful Links + +- [Main Website] - Learn more about EasyDiffraction. +- [Documentation] - Access the full documentation. +- [Discussions] - Ask questions or share ideas. +- [Issue Tracker] - Report bugs or request new features. +- [Source Code] - Explore the source code repository. + +## Contributing + +We welcome contributions! Our vision is for **EasyDiffraction** to be a +community-driven, open-source project supported by a diverse group of +contributors. + +The project is currently maintained by the [European Spallation Source (ESS)]. + +If you'd like to contribute, please refer to our [Contributing Guidelines] for +information about our code of conduct and instructions on submitting pull +requests. + +## License + +**EasyDiffraction** is licensed under the [BSD 3-Clause License]. + + +[BSD 3-Clause License]: https://github.com/easyscience/diffraction-lib/blob/master/LICENSE +[Contributing Guidelines]: https://github.com/easyscience/diffraction-lib/blob/master/CONTRIBUTING.md +[EasyScience]: https://easyscience.software +[European Spallation Source (ESS)]: https://ess.eu +[Main Website]: https://easydiffraction.org +[Documentation]: https://docs.easydiffraction.org/lib +[Discussions]: https://github.com/easyscience/diffraction-lib/discussions +[Issue Tracker]: https://github.com/easyscience/diffraction-lib/issues +[Source Code]: https://github.com/easyscience/diffraction-lib + diff --git a/docs/introduction/index.md b/docs/introduction/index.md index 6de284c9..ca3cf4c6 100644 --- a/docs/introduction/index.md +++ b/docs/introduction/index.md @@ -28,15 +28,15 @@ building modular and flexible scientific libraries and applications. ## License EasyDiffraction is released under the -[BSD 3-Clause License](https://raw.githubusercontent.com/easyscience/EasyDiffractionLib/master/LICENSE). +[BSD 3-Clause License](https://raw.githubusercontent.com/easyscience/diffraction-lib/master/LICENSE). ## Releases The latest version of the EasyDiffraction Python library is -[{{ vars.release_version }}](https://github.com/easyscience/EasyDiffractionLib/releases/latest). +[{{ vars.release_version }}](https://github.com/easyscience/diffraction-lib/releases/latest). For a complete list of new features, bug fixes, and improvements, see the -[GitHub Releases page](https://github.com/easyscience/EasyDiffractionLib/releases). +[GitHub Releases page](https://github.com/easyscience/diffraction-lib/releases). ## Citation @@ -61,7 +61,7 @@ The project is maintained by the [European Spallation Source (ESS)](https://ess.eu). To contribute, see our -[:material-account-plus: Contributing Guidelines](https://github.com/EasyScience/EasyDiffractionLib/blob/master/CONTRIBUTING.md) +[:material-account-plus: Contributing Guidelines](https://github.com/easyscience/diffraction-lib/blob/master/CONTRIBUTING.md) on GitHub. ## Get in Touch @@ -70,5 +70,5 @@ For general questions or feedback, contact us at [support@easydiffraction.org](mailto:support@easydiffraction.org). To report bugs or request features, please use the -[GitHub Issue Tracker](https://github.com/easyscience/EasyDiffractionLib/issues) +[GitHub Issue Tracker](https://github.com/easyscience/diffraction-lib/issues) (free registration required). From 3b794d3eb8e011bc6900f16bc75e630823cfe9a5 Mon Sep 17 00:00:00 2001 From: Andrew Sazonov Date: Mon, 11 Aug 2025 11:24:14 +0200 Subject: [PATCH 42/43] Corrects GitHub URL in SPDX headers --- src/easydiffraction/__init__.py | 2 +- src/easydiffraction/analysis/__init__.py | 2 +- src/easydiffraction/analysis/analysis.py | 2 +- src/easydiffraction/analysis/calculation.py | 2 +- src/easydiffraction/analysis/calculators/__init__.py | 2 +- src/easydiffraction/analysis/calculators/calculator_base.py | 2 +- src/easydiffraction/analysis/calculators/calculator_crysfml.py | 2 +- src/easydiffraction/analysis/calculators/calculator_cryspy.py | 2 +- src/easydiffraction/analysis/calculators/calculator_factory.py | 2 +- src/easydiffraction/analysis/calculators/calculator_pdffit.py | 2 +- src/easydiffraction/analysis/collections/__init__.py | 2 +- src/easydiffraction/analysis/collections/aliases.py | 2 +- src/easydiffraction/analysis/collections/constraints.py | 2 +- .../analysis/collections/joint_fit_experiments.py | 2 +- src/easydiffraction/analysis/minimization.py | 2 +- src/easydiffraction/analysis/minimizers/__init__.py | 2 +- .../analysis/minimizers/fitting_progress_tracker.py | 2 +- src/easydiffraction/analysis/minimizers/minimizer_base.py | 2 +- src/easydiffraction/analysis/minimizers/minimizer_dfols.py | 2 +- src/easydiffraction/analysis/minimizers/minimizer_factory.py | 2 +- src/easydiffraction/analysis/minimizers/minimizer_lmfit.py | 2 +- src/easydiffraction/analysis/reliability_factors.py | 2 +- src/easydiffraction/core/__init__.py | 2 +- src/easydiffraction/core/constants.py | 2 +- src/easydiffraction/core/objects.py | 2 +- src/easydiffraction/core/singletons.py | 2 +- src/easydiffraction/crystallography/__init__.py | 2 +- src/easydiffraction/crystallography/crystallography.py | 2 +- src/easydiffraction/crystallography/space_group_lookup_table.py | 2 +- src/easydiffraction/experiments/__init__.py | 2 +- src/easydiffraction/experiments/collections/__init__.py | 2 +- src/easydiffraction/experiments/collections/background.py | 2 +- src/easydiffraction/experiments/collections/datastore.py | 2 +- src/easydiffraction/experiments/collections/excluded_regions.py | 2 +- src/easydiffraction/experiments/collections/linked_phases.py | 2 +- src/easydiffraction/experiments/components/__init__.py | 2 +- src/easydiffraction/experiments/components/experiment_type.py | 2 +- src/easydiffraction/experiments/components/instrument.py | 2 +- src/easydiffraction/experiments/components/peak.py | 2 +- src/easydiffraction/experiments/experiment.py | 2 +- src/easydiffraction/experiments/experiments.py | 2 +- src/easydiffraction/plotting/__init__.py | 2 +- src/easydiffraction/plotting/plotters/__init__.py | 2 +- src/easydiffraction/plotting/plotters/plotter_ascii.py | 2 +- src/easydiffraction/plotting/plotters/plotter_base.py | 2 +- src/easydiffraction/plotting/plotters/plotter_plotly.py | 2 +- src/easydiffraction/plotting/plotting.py | 2 +- src/easydiffraction/project.py | 2 +- src/easydiffraction/sample_models/__init__.py | 2 +- src/easydiffraction/sample_models/collections/__init__.py | 2 +- src/easydiffraction/sample_models/collections/atom_sites.py | 2 +- src/easydiffraction/sample_models/components/__init__.py | 2 +- src/easydiffraction/sample_models/components/cell.py | 2 +- src/easydiffraction/sample_models/components/space_group.py | 2 +- src/easydiffraction/sample_models/sample_model.py | 2 +- src/easydiffraction/sample_models/sample_models.py | 2 +- src/easydiffraction/summary.py | 2 +- src/easydiffraction/utils/__init__.py | 2 +- src/easydiffraction/utils/decorators.py | 2 +- src/easydiffraction/utils/formatting.py | 2 +- src/easydiffraction/utils/utils.py | 2 +- tools/update_spdx-headers.py | 2 +- 62 files changed, 62 insertions(+), 62 deletions(-) diff --git a/src/easydiffraction/__init__.py b/src/easydiffraction/__init__.py index 6cf5c92b..38f3258c 100644 --- a/src/easydiffraction/__init__.py +++ b/src/easydiffraction/__init__.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors # SPDX-License-Identifier: BSD-3-Clause # Analysis diff --git a/src/easydiffraction/analysis/__init__.py b/src/easydiffraction/analysis/__init__.py index 36578308..6c98b2a1 100644 --- a/src/easydiffraction/analysis/__init__.py +++ b/src/easydiffraction/analysis/__init__.py @@ -1,3 +1,3 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors # SPDX-License-Identifier: BSD-3-Clause diff --git a/src/easydiffraction/analysis/analysis.py b/src/easydiffraction/analysis/analysis.py index 1fa761de..f2ce220a 100644 --- a/src/easydiffraction/analysis/analysis.py +++ b/src/easydiffraction/analysis/analysis.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors # SPDX-License-Identifier: BSD-3-Clause from typing import List diff --git a/src/easydiffraction/analysis/calculation.py b/src/easydiffraction/analysis/calculation.py index 2243e1c7..2c2407df 100644 --- a/src/easydiffraction/analysis/calculation.py +++ b/src/easydiffraction/analysis/calculation.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors # SPDX-License-Identifier: BSD-3-Clause from typing import Any diff --git a/src/easydiffraction/analysis/calculators/__init__.py b/src/easydiffraction/analysis/calculators/__init__.py index 36578308..6c98b2a1 100644 --- a/src/easydiffraction/analysis/calculators/__init__.py +++ b/src/easydiffraction/analysis/calculators/__init__.py @@ -1,3 +1,3 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors # SPDX-License-Identifier: BSD-3-Clause diff --git a/src/easydiffraction/analysis/calculators/calculator_base.py b/src/easydiffraction/analysis/calculators/calculator_base.py index aba5285c..2577266c 100644 --- a/src/easydiffraction/analysis/calculators/calculator_base.py +++ b/src/easydiffraction/analysis/calculators/calculator_base.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors # SPDX-License-Identifier: BSD-3-Clause from abc import ABC diff --git a/src/easydiffraction/analysis/calculators/calculator_crysfml.py b/src/easydiffraction/analysis/calculators/calculator_crysfml.py index 91257e8a..7ae6ac79 100644 --- a/src/easydiffraction/analysis/calculators/calculator_crysfml.py +++ b/src/easydiffraction/analysis/calculators/calculator_crysfml.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors # SPDX-License-Identifier: BSD-3-Clause from typing import Any diff --git a/src/easydiffraction/analysis/calculators/calculator_cryspy.py b/src/easydiffraction/analysis/calculators/calculator_cryspy.py index 67bdebd2..d163662a 100644 --- a/src/easydiffraction/analysis/calculators/calculator_cryspy.py +++ b/src/easydiffraction/analysis/calculators/calculator_cryspy.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors # SPDX-License-Identifier: BSD-3-Clause import contextlib diff --git a/src/easydiffraction/analysis/calculators/calculator_factory.py b/src/easydiffraction/analysis/calculators/calculator_factory.py index 8664f826..840cf796 100644 --- a/src/easydiffraction/analysis/calculators/calculator_factory.py +++ b/src/easydiffraction/analysis/calculators/calculator_factory.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors # SPDX-License-Identifier: BSD-3-Clause from typing import Any diff --git a/src/easydiffraction/analysis/calculators/calculator_pdffit.py b/src/easydiffraction/analysis/calculators/calculator_pdffit.py index e1f06abe..09cd69e9 100644 --- a/src/easydiffraction/analysis/calculators/calculator_pdffit.py +++ b/src/easydiffraction/analysis/calculators/calculator_pdffit.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors # SPDX-License-Identifier: BSD-3-Clause import os diff --git a/src/easydiffraction/analysis/collections/__init__.py b/src/easydiffraction/analysis/collections/__init__.py index 36578308..6c98b2a1 100644 --- a/src/easydiffraction/analysis/collections/__init__.py +++ b/src/easydiffraction/analysis/collections/__init__.py @@ -1,3 +1,3 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors # SPDX-License-Identifier: BSD-3-Clause diff --git a/src/easydiffraction/analysis/collections/aliases.py b/src/easydiffraction/analysis/collections/aliases.py index bc575548..b23f7757 100644 --- a/src/easydiffraction/analysis/collections/aliases.py +++ b/src/easydiffraction/analysis/collections/aliases.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors # SPDX-License-Identifier: BSD-3-Clause from typing import Type diff --git a/src/easydiffraction/analysis/collections/constraints.py b/src/easydiffraction/analysis/collections/constraints.py index 4d24fa31..5247a560 100644 --- a/src/easydiffraction/analysis/collections/constraints.py +++ b/src/easydiffraction/analysis/collections/constraints.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors # SPDX-License-Identifier: BSD-3-Clause from typing import Type diff --git a/src/easydiffraction/analysis/collections/joint_fit_experiments.py b/src/easydiffraction/analysis/collections/joint_fit_experiments.py index 5d1a107b..7337638b 100644 --- a/src/easydiffraction/analysis/collections/joint_fit_experiments.py +++ b/src/easydiffraction/analysis/collections/joint_fit_experiments.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors # SPDX-License-Identifier: BSD-3-Clause from typing import Type diff --git a/src/easydiffraction/analysis/minimization.py b/src/easydiffraction/analysis/minimization.py index dd85a8a3..706c3403 100644 --- a/src/easydiffraction/analysis/minimization.py +++ b/src/easydiffraction/analysis/minimization.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors # SPDX-License-Identifier: BSD-3-Clause from typing import Any diff --git a/src/easydiffraction/analysis/minimizers/__init__.py b/src/easydiffraction/analysis/minimizers/__init__.py index 36578308..6c98b2a1 100644 --- a/src/easydiffraction/analysis/minimizers/__init__.py +++ b/src/easydiffraction/analysis/minimizers/__init__.py @@ -1,3 +1,3 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors # SPDX-License-Identifier: BSD-3-Clause diff --git a/src/easydiffraction/analysis/minimizers/fitting_progress_tracker.py b/src/easydiffraction/analysis/minimizers/fitting_progress_tracker.py index af3f72c2..97bec672 100644 --- a/src/easydiffraction/analysis/minimizers/fitting_progress_tracker.py +++ b/src/easydiffraction/analysis/minimizers/fitting_progress_tracker.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors # SPDX-License-Identifier: BSD-3-Clause import time diff --git a/src/easydiffraction/analysis/minimizers/minimizer_base.py b/src/easydiffraction/analysis/minimizers/minimizer_base.py index 80641c44..2c0f3e66 100644 --- a/src/easydiffraction/analysis/minimizers/minimizer_base.py +++ b/src/easydiffraction/analysis/minimizers/minimizer_base.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors # SPDX-License-Identifier: BSD-3-Clause from abc import ABC diff --git a/src/easydiffraction/analysis/minimizers/minimizer_dfols.py b/src/easydiffraction/analysis/minimizers/minimizer_dfols.py index 3aeb1f9c..85b35d13 100644 --- a/src/easydiffraction/analysis/minimizers/minimizer_dfols.py +++ b/src/easydiffraction/analysis/minimizers/minimizer_dfols.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors # SPDX-License-Identifier: BSD-3-Clause from typing import Any diff --git a/src/easydiffraction/analysis/minimizers/minimizer_factory.py b/src/easydiffraction/analysis/minimizers/minimizer_factory.py index e3af60d2..784487b7 100644 --- a/src/easydiffraction/analysis/minimizers/minimizer_factory.py +++ b/src/easydiffraction/analysis/minimizers/minimizer_factory.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors # SPDX-License-Identifier: BSD-3-Clause from typing import Any diff --git a/src/easydiffraction/analysis/minimizers/minimizer_lmfit.py b/src/easydiffraction/analysis/minimizers/minimizer_lmfit.py index f6b7b629..325d6fb1 100644 --- a/src/easydiffraction/analysis/minimizers/minimizer_lmfit.py +++ b/src/easydiffraction/analysis/minimizers/minimizer_lmfit.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors # SPDX-License-Identifier: BSD-3-Clause from typing import Any diff --git a/src/easydiffraction/analysis/reliability_factors.py b/src/easydiffraction/analysis/reliability_factors.py index c60e8c6e..69b52559 100644 --- a/src/easydiffraction/analysis/reliability_factors.py +++ b/src/easydiffraction/analysis/reliability_factors.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors # SPDX-License-Identifier: BSD-3-Clause from typing import Optional diff --git a/src/easydiffraction/core/__init__.py b/src/easydiffraction/core/__init__.py index 36578308..6c98b2a1 100644 --- a/src/easydiffraction/core/__init__.py +++ b/src/easydiffraction/core/__init__.py @@ -1,3 +1,3 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors # SPDX-License-Identifier: BSD-3-Clause diff --git a/src/easydiffraction/core/constants.py b/src/easydiffraction/core/constants.py index 00dc0c30..f5db04aa 100644 --- a/src/easydiffraction/core/constants.py +++ b/src/easydiffraction/core/constants.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors # SPDX-License-Identifier: BSD-3-Clause # TODO: Change to use enum for these constants diff --git a/src/easydiffraction/core/objects.py b/src/easydiffraction/core/objects.py index ac34afe4..1e027a50 100644 --- a/src/easydiffraction/core/objects.py +++ b/src/easydiffraction/core/objects.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors # SPDX-License-Identifier: BSD-3-Clause import secrets diff --git a/src/easydiffraction/core/singletons.py b/src/easydiffraction/core/singletons.py index 6f45aa6b..88d21c8b 100644 --- a/src/easydiffraction/core/singletons.py +++ b/src/easydiffraction/core/singletons.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors # SPDX-License-Identifier: BSD-3-Clause from typing import Any diff --git a/src/easydiffraction/crystallography/__init__.py b/src/easydiffraction/crystallography/__init__.py index 36578308..6c98b2a1 100644 --- a/src/easydiffraction/crystallography/__init__.py +++ b/src/easydiffraction/crystallography/__init__.py @@ -1,3 +1,3 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors # SPDX-License-Identifier: BSD-3-Clause diff --git a/src/easydiffraction/crystallography/crystallography.py b/src/easydiffraction/crystallography/crystallography.py index 021218f6..bf0d7eaf 100644 --- a/src/easydiffraction/crystallography/crystallography.py +++ b/src/easydiffraction/crystallography/crystallography.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors # SPDX-License-Identifier: BSD-3-Clause from typing import Any diff --git a/src/easydiffraction/crystallography/space_group_lookup_table.py b/src/easydiffraction/crystallography/space_group_lookup_table.py index 49b9857e..e2389b4f 100644 --- a/src/easydiffraction/crystallography/space_group_lookup_table.py +++ b/src/easydiffraction/crystallography/space_group_lookup_table.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors # SPDX-License-Identifier: BSD-3-Clause SPACE_GROUP_LOOKUP_DICT = { diff --git a/src/easydiffraction/experiments/__init__.py b/src/easydiffraction/experiments/__init__.py index 36578308..6c98b2a1 100644 --- a/src/easydiffraction/experiments/__init__.py +++ b/src/easydiffraction/experiments/__init__.py @@ -1,3 +1,3 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors # SPDX-License-Identifier: BSD-3-Clause diff --git a/src/easydiffraction/experiments/collections/__init__.py b/src/easydiffraction/experiments/collections/__init__.py index 36578308..6c98b2a1 100644 --- a/src/easydiffraction/experiments/collections/__init__.py +++ b/src/easydiffraction/experiments/collections/__init__.py @@ -1,3 +1,3 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors # SPDX-License-Identifier: BSD-3-Clause diff --git a/src/easydiffraction/experiments/collections/background.py b/src/easydiffraction/experiments/collections/background.py index 2288afeb..b9a18a6b 100644 --- a/src/easydiffraction/experiments/collections/background.py +++ b/src/easydiffraction/experiments/collections/background.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors # SPDX-License-Identifier: BSD-3-Clause from abc import abstractmethod diff --git a/src/easydiffraction/experiments/collections/datastore.py b/src/easydiffraction/experiments/collections/datastore.py index 6b9b2355..1749bca0 100644 --- a/src/easydiffraction/experiments/collections/datastore.py +++ b/src/easydiffraction/experiments/collections/datastore.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors # SPDX-License-Identifier: BSD-3-Clause from __future__ import annotations diff --git a/src/easydiffraction/experiments/collections/excluded_regions.py b/src/easydiffraction/experiments/collections/excluded_regions.py index e9a61273..da6b0eb5 100644 --- a/src/easydiffraction/experiments/collections/excluded_regions.py +++ b/src/easydiffraction/experiments/collections/excluded_regions.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors # SPDX-License-Identifier: BSD-3-Clause from typing import List diff --git a/src/easydiffraction/experiments/collections/linked_phases.py b/src/easydiffraction/experiments/collections/linked_phases.py index 5c7452fc..386c7771 100644 --- a/src/easydiffraction/experiments/collections/linked_phases.py +++ b/src/easydiffraction/experiments/collections/linked_phases.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors # SPDX-License-Identifier: BSD-3-Clause from typing import Type diff --git a/src/easydiffraction/experiments/components/__init__.py b/src/easydiffraction/experiments/components/__init__.py index 36578308..6c98b2a1 100644 --- a/src/easydiffraction/experiments/components/__init__.py +++ b/src/easydiffraction/experiments/components/__init__.py @@ -1,3 +1,3 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors # SPDX-License-Identifier: BSD-3-Clause diff --git a/src/easydiffraction/experiments/components/experiment_type.py b/src/easydiffraction/experiments/components/experiment_type.py index 56facc09..59ba74bf 100644 --- a/src/easydiffraction/experiments/components/experiment_type.py +++ b/src/easydiffraction/experiments/components/experiment_type.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors # SPDX-License-Identifier: BSD-3-Clause from easydiffraction.core.objects import Component diff --git a/src/easydiffraction/experiments/components/instrument.py b/src/easydiffraction/experiments/components/instrument.py index 5b4aa22d..6aa6ad2f 100644 --- a/src/easydiffraction/experiments/components/instrument.py +++ b/src/easydiffraction/experiments/components/instrument.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors # SPDX-License-Identifier: BSD-3-Clause from easydiffraction.core.constants import DEFAULT_BEAM_MODE diff --git a/src/easydiffraction/experiments/components/peak.py b/src/easydiffraction/experiments/components/peak.py index 6c44806b..28a81cd3 100644 --- a/src/easydiffraction/experiments/components/peak.py +++ b/src/easydiffraction/experiments/components/peak.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors # SPDX-License-Identifier: BSD-3-Clause from easydiffraction.core.constants import DEFAULT_BEAM_MODE diff --git a/src/easydiffraction/experiments/experiment.py b/src/easydiffraction/experiments/experiment.py index 8e28f62b..ffef2ada 100644 --- a/src/easydiffraction/experiments/experiment.py +++ b/src/easydiffraction/experiments/experiment.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors # SPDX-License-Identifier: BSD-3-Clause from abc import abstractmethod diff --git a/src/easydiffraction/experiments/experiments.py b/src/easydiffraction/experiments/experiments.py index 7a9b5827..a15b0919 100644 --- a/src/easydiffraction/experiments/experiments.py +++ b/src/easydiffraction/experiments/experiments.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors # SPDX-License-Identifier: BSD-3-Clause import os.path diff --git a/src/easydiffraction/plotting/__init__.py b/src/easydiffraction/plotting/__init__.py index 36578308..6c98b2a1 100644 --- a/src/easydiffraction/plotting/__init__.py +++ b/src/easydiffraction/plotting/__init__.py @@ -1,3 +1,3 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors # SPDX-License-Identifier: BSD-3-Clause diff --git a/src/easydiffraction/plotting/plotters/__init__.py b/src/easydiffraction/plotting/plotters/__init__.py index 36578308..6c98b2a1 100644 --- a/src/easydiffraction/plotting/plotters/__init__.py +++ b/src/easydiffraction/plotting/plotters/__init__.py @@ -1,3 +1,3 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors # SPDX-License-Identifier: BSD-3-Clause diff --git a/src/easydiffraction/plotting/plotters/plotter_ascii.py b/src/easydiffraction/plotting/plotters/plotter_ascii.py index 0d9e1352..eca0327e 100644 --- a/src/easydiffraction/plotting/plotters/plotter_ascii.py +++ b/src/easydiffraction/plotting/plotters/plotter_ascii.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors # SPDX-License-Identifier: BSD-3-Clause import asciichartpy diff --git a/src/easydiffraction/plotting/plotters/plotter_base.py b/src/easydiffraction/plotting/plotters/plotter_base.py index 552a9982..c9f54915 100644 --- a/src/easydiffraction/plotting/plotters/plotter_base.py +++ b/src/easydiffraction/plotting/plotters/plotter_base.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors # SPDX-License-Identifier: BSD-3-Clause from abc import ABC diff --git a/src/easydiffraction/plotting/plotters/plotter_plotly.py b/src/easydiffraction/plotting/plotters/plotter_plotly.py index 04d6e671..4f68c1c3 100644 --- a/src/easydiffraction/plotting/plotters/plotter_plotly.py +++ b/src/easydiffraction/plotting/plotters/plotter_plotly.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors # SPDX-License-Identifier: BSD-3-Clause import darkdetect diff --git a/src/easydiffraction/plotting/plotting.py b/src/easydiffraction/plotting/plotting.py index 288fced3..ba73b701 100644 --- a/src/easydiffraction/plotting/plotting.py +++ b/src/easydiffraction/plotting/plotting.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors # SPDX-License-Identifier: BSD-3-Clause from easydiffraction.core.constants import DEFAULT_AXES_LABELS diff --git a/src/easydiffraction/project.py b/src/easydiffraction/project.py index 4ef82fd3..b51fc5c1 100644 --- a/src/easydiffraction/project.py +++ b/src/easydiffraction/project.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors # SPDX-License-Identifier: BSD-3-Clause import datetime diff --git a/src/easydiffraction/sample_models/__init__.py b/src/easydiffraction/sample_models/__init__.py index 36578308..6c98b2a1 100644 --- a/src/easydiffraction/sample_models/__init__.py +++ b/src/easydiffraction/sample_models/__init__.py @@ -1,3 +1,3 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors # SPDX-License-Identifier: BSD-3-Clause diff --git a/src/easydiffraction/sample_models/collections/__init__.py b/src/easydiffraction/sample_models/collections/__init__.py index 36578308..6c98b2a1 100644 --- a/src/easydiffraction/sample_models/collections/__init__.py +++ b/src/easydiffraction/sample_models/collections/__init__.py @@ -1,3 +1,3 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors # SPDX-License-Identifier: BSD-3-Clause diff --git a/src/easydiffraction/sample_models/collections/atom_sites.py b/src/easydiffraction/sample_models/collections/atom_sites.py index bb85b584..0ace4e82 100644 --- a/src/easydiffraction/sample_models/collections/atom_sites.py +++ b/src/easydiffraction/sample_models/collections/atom_sites.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors # SPDX-License-Identifier: BSD-3-Clause from easydiffraction.core.objects import Collection diff --git a/src/easydiffraction/sample_models/components/__init__.py b/src/easydiffraction/sample_models/components/__init__.py index 36578308..6c98b2a1 100644 --- a/src/easydiffraction/sample_models/components/__init__.py +++ b/src/easydiffraction/sample_models/components/__init__.py @@ -1,3 +1,3 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors # SPDX-License-Identifier: BSD-3-Clause diff --git a/src/easydiffraction/sample_models/components/cell.py b/src/easydiffraction/sample_models/components/cell.py index f21b56a7..ffc6d187 100644 --- a/src/easydiffraction/sample_models/components/cell.py +++ b/src/easydiffraction/sample_models/components/cell.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors # SPDX-License-Identifier: BSD-3-Clause from easydiffraction.core.objects import Component diff --git a/src/easydiffraction/sample_models/components/space_group.py b/src/easydiffraction/sample_models/components/space_group.py index 8d37fb8e..89e779df 100644 --- a/src/easydiffraction/sample_models/components/space_group.py +++ b/src/easydiffraction/sample_models/components/space_group.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors # SPDX-License-Identifier: BSD-3-Clause from typing import Optional diff --git a/src/easydiffraction/sample_models/sample_model.py b/src/easydiffraction/sample_models/sample_model.py index c5208a9e..b5bdfd1a 100644 --- a/src/easydiffraction/sample_models/sample_model.py +++ b/src/easydiffraction/sample_models/sample_model.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors # SPDX-License-Identifier: BSD-3-Clause from easydiffraction.core.objects import Datablock diff --git a/src/easydiffraction/sample_models/sample_models.py b/src/easydiffraction/sample_models/sample_models.py index 2ed1f6e6..bc35468c 100644 --- a/src/easydiffraction/sample_models/sample_models.py +++ b/src/easydiffraction/sample_models/sample_models.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors # SPDX-License-Identifier: BSD-3-Clause from typing import List diff --git a/src/easydiffraction/summary.py b/src/easydiffraction/summary.py index ffdcc898..f270865b 100644 --- a/src/easydiffraction/summary.py +++ b/src/easydiffraction/summary.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors # SPDX-License-Identifier: BSD-3-Clause from textwrap import wrap diff --git a/src/easydiffraction/utils/__init__.py b/src/easydiffraction/utils/__init__.py index 36578308..6c98b2a1 100644 --- a/src/easydiffraction/utils/__init__.py +++ b/src/easydiffraction/utils/__init__.py @@ -1,3 +1,3 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors # SPDX-License-Identifier: BSD-3-Clause diff --git a/src/easydiffraction/utils/decorators.py b/src/easydiffraction/utils/decorators.py index 73c390c3..5b690a11 100644 --- a/src/easydiffraction/utils/decorators.py +++ b/src/easydiffraction/utils/decorators.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors # SPDX-License-Identifier: BSD-3-Clause import inspect diff --git a/src/easydiffraction/utils/formatting.py b/src/easydiffraction/utils/formatting.py index a8385d2c..fe03a677 100644 --- a/src/easydiffraction/utils/formatting.py +++ b/src/easydiffraction/utils/formatting.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors # SPDX-License-Identifier: BSD-3-Clause from colorama import Fore diff --git a/src/easydiffraction/utils/utils.py b/src/easydiffraction/utils/utils.py index 885f80ee..e5861471 100644 --- a/src/easydiffraction/utils/utils.py +++ b/src/easydiffraction/utils/utils.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors # SPDX-License-Identifier: BSD-3-Clause """ diff --git a/tools/update_spdx-headers.py b/tools/update_spdx-headers.py index 602f6a1d..f9c853da 100644 --- a/tools/update_spdx-headers.py +++ b/tools/update_spdx-headers.py @@ -11,7 +11,7 @@ CURRENT_YEAR = datetime.datetime.now().year COPYRIGHT_TEXT = ( f'# SPDX-FileCopyrightText: 2021-{CURRENT_YEAR} EasyDiffraction Python Library contributors ' - '' + '' ) LICENSE_TEXT = '# SPDX-License-Identifier: BSD-3-Clause' From 39965b06aa3abd9330d207261730981028722b95 Mon Sep 17 00:00:00 2001 From: Andrew Sazonov Date: Mon, 11 Aug 2025 11:50:11 +0200 Subject: [PATCH 43/43] Update tools/update_spdx-headers.py [ci skip] Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- tools/update_spdx-headers.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tools/update_spdx-headers.py b/tools/update_spdx-headers.py index f9c853da..1b3a0550 100644 --- a/tools/update_spdx-headers.py +++ b/tools/update_spdx-headers.py @@ -53,6 +53,10 @@ def update_spdx_header(file_path: Path): def main(): + """ + Recursively update or insert SPDX headers in all Python files under the 'src' directory, + skipping files located in virtual environment folders ('venv' or '.venv'). + """ for py_file in Path('src').rglob('*.py'): if 'venv' in py_file.parts or '.venv' in py_file.parts: continue