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/building-deploying-docs.yml b/.github/workflows/build-docs.yml similarity index 82% rename from .github/workflows/building-deploying-docs.yml rename to .github/workflows/build-docs.yml index 95231927..c104a841 100644 --- a/.github/workflows/building-deploying-docs.yml +++ b/.github/workflows/build-docs.yml @@ -1,14 +1,20 @@ -name: Building and deploying docs +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 @@ -18,25 +24,25 @@ env: jobs: # Job 1: Build the static files for the documentation site - building-docs: - runs-on: macos-14 # Use macOS to switch to dark mode for Plotly charts + build-docs: + strategy: + matrix: + os: [macos-14] # Use macOS to switch to dark mode for Plotly charts + python-version: ['3.13'] - 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,18 +60,19 @@ 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 . + run: python -m pip install .'[dev,docs,visualization]' # Clone assets extra from: # - easyscience/assets-docs @@ -96,19 +103,23 @@ 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 }}/*.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 + 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: # "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 @@ -125,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 @@ -140,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/ @@ -149,8 +160,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: @@ -160,8 +170,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: @@ -189,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) @@ -209,7 +221,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/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 }} diff --git a/.github/workflows/publish-pypi.yml b/.github/workflows/publish-pypi.yml new file mode 100644 index 00000000..c4e702f7 --- /dev/null +++ b/.github/workflows/publish-pypi.yml @@ -0,0 +1,41 @@ +# 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/scan-security.yml b/.github/workflows/scan-security.yml new file mode 100644 index 00000000..f551d5d4 --- /dev/null +++ b/.github/workflows/scan-security.yml @@ -0,0 +1,41 @@ +# 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: + # Trigger the workflow on pull request + pull_request: + branches: + - '**' + # 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 }} diff --git a/.github/workflows/test-code.yaml b/.github/workflows/test-code.yaml new file mode 100644 index 00000000..dc857781 --- /dev/null +++ b/.github/workflows/test-code.yaml @@ -0,0 +1,278 @@ +# 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 formatting of Markdown, YAML, TOML, etc. files +# 2. run-tests: +# - 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 against the installed package + +name: Test code and package + +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: + - '**' + # 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 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 + code-quality: + strategy: + matrix: + os: [ubuntu-latest] + python-version: ['3.13'] + + 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]' + + - 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' + + # Check the validity of pyproject.toml + - 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." + + # Check code formatting with Ruff in the project root + - 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." + + # 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 + 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." + + - 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_others_formatting.outcome == 'failure' + run: exit 1 + + # Job 2: Test code and upload coverage to Codecov. + run-tests: + 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.11', '3.12', '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 + 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 + 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,visualization]' + + - 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 (using src/ as the source dir) + shell: bash + run: | + export PYTHONPATH="$(pwd)/src${PYTHONPATH:+:$PYTHONPATH}" + python -m pytest tests/functional_tests/ --color=yes -n auto + + - name: Create Python package for the next job + shell: bash + run: python -m build --wheel --outdir dist + + - name: + Upload zipped Python package (with tests and ${{ env.NOTEBOOKS_DIR }}) + for next job + uses: actions/upload-artifact@v4 + with: + name: + edl_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: 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.11', '3.12', '3.13'] + + 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: 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 + uses: actions/download-artifact@v4 + with: # name or path are taken from the upload step of the previous job + name: + 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 + # 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 + shell: bash + run: > + pip install 'easydiffraction[dev,visualization]' --find-links=dist + + - name: Run Python unit tests (using installed package) + shell: bash + run: python -m pytest tests/unit_tests/ --color=yes + + - name: Run Python functional tests (using installed package) + shell: bash + run: python -m pytest tests/functional_tests/ --color=yes -n auto diff --git a/.github/workflows/testing-tutorials-colab.yaml b/.github/workflows/test-tutorials-colab.yaml similarity index 87% rename from .github/workflows/testing-tutorials-colab.yaml rename to .github/workflows/test-tutorials-colab.yaml index 51db7eda..3327b37a 100644 --- a/.github/workflows/testing-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 @@ -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=600 + --color=yes -n=auto diff --git a/.github/workflows/test-tutorials.yaml b/.github/workflows/test-tutorials.yaml new file mode 100644 index 00000000..496b400d --- /dev/null +++ b/.github/workflows/test-tutorials.yaml @@ -0,0 +1,158 @@ +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. +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 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 + code-quality: + strategy: + matrix: + os: [ubuntu-latest] + python-version: ['3.13'] + + 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: + 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.13'] + + 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: 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,visualization]' + + # 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 + 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 diff --git a/.github/workflows/testing-code.yaml b/.github/workflows/testing-code.yaml deleted file mode 100644 index fa9a1859..00000000 --- a/.github/workflows/testing-code.yaml +++ /dev/null @@ -1,82 +0,0 @@ -name: Testing code - -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 pypi-publish.yml) - tags-ignore: - - 'v*' - # Trigger the workflow on pull request - pull_request: - branches: - - '**' - # 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 - CI_BRANCH: ${{ github.head_ref || github.ref_name }} - -jobs: - testing-code: - - 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: 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: 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 . - - - 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 diff --git a/.github/workflows/testing-tutorials.yaml b/.github/workflows/testing-tutorials.yaml deleted file mode 100644 index 65a50f3d..00000000 --- a/.github/workflows/testing-tutorials.yaml +++ /dev/null @@ -1,70 +0,0 @@ -name: Testing tutorials - -on: - # 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. -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 - CI_BRANCH: ${{ github.head_ref || github.ref_name }} - -jobs: - testing-tutorials: - - strategy: - fail-fast: false - matrix: - os: [ubuntu-24.04, macos-14] - 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 . - - # 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 - shell: bash - run: | - export PYTHONPATH="$(pwd)/src${PYTHONPATH:+:$PYTHONPATH}" - find tutorials/ -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 - # 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 - - name: Run tutorials as Jupyter Notebooks - shell: bash - run: | - export PYTHONPATH="$(pwd)/src${PYTHONPATH:+:$PYTHONPATH}" - jupytext tutorials/*.py --to ipynb - python -m pytest --nbmake tutorials/ --nbmake-timeout=300 --color=yes -n=auto 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 diff --git a/.github/workflows/verify-pr-labels.yml b/.github/workflows/verify-pr-labels.yml new file mode 100644 index 00000000..37fd01f4 --- /dev/null +++ b/.github/workflows/verify-pr-labels.yml @@ -0,0 +1,24 @@ +# 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 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 ce9c4f40..4debe9f4 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: diff --git a/README.md b/README.md index ec17cbad..6278d78f 100644 --- a/README.md +++ b/README.md @@ -1,81 +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 install . - ``` -- 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/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..ca3cf4c6 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 -[BSD 3-Clause License](https://raw.githubusercontent.com/easyscience/EasyDiffractionLib/master/LICENSE). +EasyDiffraction is released under the +[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). +The latest version of the EasyDiffraction Python library is +[{{ 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). +For a complete list of new features, bug fixes, and improvements, see the +[GitHub Releases page](https://github.com/easyscience/diffraction-lib/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 -[:material-account-plus: Contributing Guidelines](https://github.com/EasyScience/EasyDiffractionLib/blob/master/CONTRIBUTING.md) +To contribute, see our +[:material-account-plus: Contributing Guidelines](https://github.com/easyscience/diffraction-lib/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/diffraction-lib/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 } /// 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 } /// 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 } /// 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 } /// 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 40c0c8a6..ea48009e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ [project] name = 'easydiffraction' -version = '0.5.0' +dynamic = ['version'] # Use versioningit to manage the version description = 'Diffraction data analysis' authors = [{ name = 'EasyDiffraction contributors' }] readme = 'README.md' @@ -16,52 +16,60 @@ 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", + "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.11,<3.14' dependencies = [ - 'colorama', - 'tabulate', - 'varname', - 'pandas', - - 'asciichartpy', - 'plotly<6.1.0', - 'darkdetect', - - 'pooch', - - 'scipy', - - 'lmfit', - 'bumps', - 'dfo-ls', - - 'gemmi', - 'sympy', - - 'cryspy', - 'diffpy.utils', - 'diffpy.pdffit2', - - 'asteval', - - 'pytest', - 'pytest-xdist', - 'nbmake', + '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), Python >=3.11,<3.14 + '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 + 'jupytext', # Jupyter notebook text format support +] +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 +] +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] @@ -82,7 +90,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 +101,66 @@ 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 = ['tutorials-drafts'] +indent-width = 4 +line-length = 127 + +[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 + +[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) diff --git a/src/easydiffraction/__init__.py b/src/easydiffraction/__init__.py index 04330631..38f3258c 100644 --- a/src/easydiffraction/__init__.py +++ b/src/easydiffraction/__init__.py @@ -1,47 +1,44 @@ -# Project management -from easydiffraction.project import ( - Project, - ProjectInfo -) +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause -# 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__ = [ - "Project", - "ProjectInfo", - "SampleModel", - "SampleModels", - "Experiment", - "Experiments", - "Analysis", - "Summary", - "chapter", - "section", - "paragraph", - "download_from_repository", - "get_value_from_xye_header" -] \ No newline at end of file + '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/__init__.py b/src/easydiffraction/analysis/__init__.py index e69de29b..6c98b2a1 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 9b623808..f2ce220a 100644 --- a/src/easydiffraction/analysis/analysis.py +++ b/src/easydiffraction/analysis/analysis.py @@ -1,26 +1,26 @@ -import pandas as pd +# 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 + 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 @@ -38,7 +38,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. @@ -59,7 +62,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): @@ -68,8 +71,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 @@ -83,82 +86,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(f"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(f"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() @@ -166,55 +185,66 @@ 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', - '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(f"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 @@ -228,23 +258,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 @@ -262,11 +286,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 @@ -280,7 +304,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 @@ -298,35 +322,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]: @@ -348,7 +371,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 = [] @@ -356,7 +379,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) @@ -364,14 +387,12 @@ 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")) - 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(f"No constraints defined.")) + print(warning('No constraints defined.')) return self.constraints_handler.set_aliases(self.aliases) @@ -381,17 +402,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 @@ -399,44 +420,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(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..2c2407df 100644 --- a/src/easydiffraction/analysis/calculation.py +++ b/src/easydiffraction/analysis/calculation.py @@ -1,9 +1,18 @@ -from typing import Any, Optional, List +# 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 + 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: """ @@ -31,9 +40,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. @@ -46,9 +57,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. @@ -59,4 +72,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/__init__.py b/src/easydiffraction/analysis/calculators/__init__.py index e69de29b..6c98b2a1 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 c65e935b..2577266c 100644 --- a/src/easydiffraction/analysis/calculators/calculator_base.py +++ b/src/easydiffraction/analysis/calculators/calculator_base.py @@ -1,11 +1,18 @@ +# 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 +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): """ @@ -24,9 +31,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. @@ -34,10 +41,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. @@ -72,7 +79,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 @@ -92,10 +99,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. @@ -111,9 +118,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 8ca91b7a..7ae6ac79 100644 --- a/src/easydiffraction/analysis/calculators/calculator_crysfml.py +++ b/src/easydiffraction/analysis/calculators/calculator_crysfml.py @@ -1,15 +1,23 @@ +# 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 +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 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.") @@ -25,12 +33,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. @@ -39,13 +47,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. @@ -63,14 +71,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(f"[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. @@ -88,9 +96,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. @@ -105,13 +113,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. @@ -124,35 +132,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. @@ -163,29 +171,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 fe6f0fa2..d163662a 100644 --- a/src/easydiffraction/analysis/calculators/calculator_cryspy.py +++ b/src/easydiffraction/analysis/calculators/calculator_cryspy.py @@ -1,18 +1,26 @@ +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause + 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.") @@ -29,16 +37,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. @@ -47,13 +55,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. @@ -71,7 +79,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: @@ -98,18 +106,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: @@ -117,15 +122,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. @@ -137,7 +142,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}' @@ -209,9 +214,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. @@ -232,7 +237,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) @@ -240,8 +246,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. @@ -255,9 +261,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. @@ -269,107 +275,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(f"_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 cb990505..840cf796 100644 --- a/src/easydiffraction/analysis/calculators/calculator_factory.py +++ b/src/easydiffraction/analysis/calculators/calculator_factory.py @@ -1,30 +1,37 @@ -from typing import Dict, Type, List, Optional, Union, Any +# 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 +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: _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 @@ -41,23 +48,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}'")) @@ -68,27 +74,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 cbddd011..09cd69e9 100644 --- a/src/easydiffraction/analysis/calculators/calculator_pdffit.py +++ b/src/easydiffraction/analysis/calculators/calculator_pdffit.py @@ -1,9 +1,13 @@ +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause + 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 @@ -11,7 +15,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.") @@ -27,18 +32,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() @@ -52,8 +58,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) @@ -78,11 +84,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/__init__.py b/src/easydiffraction/analysis/collections/__init__.py index e69de29b..6c98b2a1 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 c9c44b48..b23f7757 100644 --- a/src/easydiffraction/analysis/collections/aliases.py +++ b/src/easydiffraction/analysis/collections/aliases.py @@ -1,35 +1,34 @@ +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause + 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): @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 @@ -44,9 +43,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 a876e55d..5247a560 100644 --- a/src/easydiffraction/analysis/collections/constraints.py +++ b/src/easydiffraction/analysis/collections/constraints.py @@ -1,35 +1,34 @@ +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause + 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): @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 @@ -44,7 +43,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 e8c62fb3..7337638b 100644 --- a/src/easydiffraction/analysis/collections/joint_fit_experiments.py +++ b/src/easydiffraction/analysis/collections/joint_fit_experiments.py @@ -1,35 +1,34 @@ +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause + 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): @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 @@ -46,9 +45,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 6e112946..706c3403 100644 --- a/src/easydiffraction/analysis/minimization.py +++ b/src/easydiffraction/analysis/minimization.py @@ -1,13 +1,21 @@ -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 +# 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 +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: @@ -21,11 +29,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. @@ -39,20 +49,21 @@ 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: 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) @@ -60,10 +71,12 @@ def fit(self, # 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. @@ -72,21 +85,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. @@ -100,13 +121,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. @@ -140,18 +163,19 @@ 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): + 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/__init__.py b/src/easydiffraction/analysis/minimizers/__init__.py index e69de29b..6c98b2a1 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 8931fa5e..97bec672 100644 --- a/src/easydiffraction/analysis/minimizers/fitting_progress_tracker.py +++ b/src/easydiffraction/analysis/minimizers/fitting_progress_tracker.py @@ -1,38 +1,41 @@ -import numpy as np +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause + 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 -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 @@ -64,9 +67,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. @@ -91,8 +96,8 @@ def track(self, row = [ str(self._iteration), - f"{reduced_chi2:.2f}", - "" + f'{reduced_chi2:.2f}', + '', ] # Improvement check @@ -101,8 +106,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 @@ -147,7 +152,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 @@ -157,23 +162,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: @@ -181,16 +188,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) @@ -199,16 +207,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 dbe564ee..2c0f3e66 100644 --- a/src/easydiffraction/analysis/minimizers/minimizer_base.py +++ b/src/easydiffraction/analysis/minimizers/minimizer_base.py @@ -1,31 +1,40 @@ +# 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 +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: - 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 @@ -43,13 +52,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 @@ -59,38 +70,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(f"📈 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: @@ -98,32 +113,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): @@ -131,10 +142,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 @@ -163,20 +177,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( @@ -185,7 +205,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 @@ -197,12 +217,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) @@ -215,28 +237,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 0fcd0fb4..85b35d13 100644 --- a/src/easydiffraction/analysis/minimizers/minimizer_dfols.py +++ b/src/easydiffraction/analysis/minimizers/minimizer_dfols.py @@ -1,7 +1,14 @@ +# 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 + import numpy as np from dfols import solve + from .minimizer_base import MinimizerBase -from typing import Any, Dict, List DEFAULT_MAX_ITERATIONS = 1000 @@ -11,7 +18,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]: @@ -28,12 +40,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. @@ -62,4 +75,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..784487b7 100644 --- a/src/easydiffraction/analysis/minimizers/minimizer_factory.py +++ b/src/easydiffraction/analysis/minimizers/minimizer_factory.py @@ -1,11 +1,18 @@ -from typing import List, Type, Optional, Dict, Any +# 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 +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: @@ -14,26 +21,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 @@ -51,17 +58,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: @@ -91,7 +100,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. @@ -105,5 +120,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 c3b5f241..325d6fb1 100644 --- a/src/easydiffraction/analysis/minimizers/minimizer_lmfit.py +++ b/src/easydiffraction/analysis/minimizers/minimizer_lmfit.py @@ -1,6 +1,13 @@ +# 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 + import lmfit + from .minimizer_base import MinimizerBase -from typing import Any, Dict, List DEFAULT_METHOD = 'leastsq' DEFAULT_MAX_ITERATIONS = 1000 @@ -11,15 +18,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. @@ -36,13 +50,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. @@ -55,15 +67,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. @@ -94,12 +110,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 ba719348..69b52559 100644 --- a/src/easydiffraction/analysis/reliability_factors.py +++ b/src/easydiffraction/analysis/reliability_factors.py @@ -1,18 +1,27 @@ +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause + +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: +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. """ @@ -23,17 +32,19 @@ 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. - + Args: y_obs: Observed data points. y_calc: Calculated data points. weights: Weights for each data point. - + Returns: Weighted R-factor value. """ @@ -41,19 +52,21 @@ 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. - + Args: y_obs: Observed data points. y_calc: Calculated data points. - + Returns: Bragg R-factor value. """ @@ -64,39 +77,43 @@ 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. - + Args: y_obs: Observed data points. y_calc: Calculated data points. - + Returns: R-factor squared value. """ 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. - + Args: residuals: Residuals between observed and calculated data. num_parameters: Number of free parameters used in the model. - + Returns: 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: @@ -105,17 +122,19 @@ 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. - + 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) """ @@ -139,5 +158,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 - ) \ No newline at end of file + np.array(y_err_all) if y_err_all else None, + ) diff --git a/src/easydiffraction/core/__init__.py b/src/easydiffraction/core/__init__.py index e69de29b..6c98b2a1 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 b999affa..f5db04aa 100644 --- a/src/easydiffraction/core/constants.py +++ b/src/easydiffraction/core/constants.py @@ -1,27 +1,30 @@ +# 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" -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 b3d5d100..1e027a50 100644 --- a/src/easydiffraction/core/objects.py +++ b/src/easydiffraction/core/objects.py @@ -1,38 +1,44 @@ -import random +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause + +import secrets 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') + 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 @@ -51,15 +57,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 @@ -72,7 +78,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 @@ -88,12 +94,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 @@ -131,7 +137,7 @@ def uid(self, new_uid): @property def minimizer_uid(self): - return self.uid.replace(".", "__") + return self.uid.replace('.', '__') @property def value(self) -> Any: @@ -142,8 +148,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]: @@ -159,35 +164,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 @@ -235,7 +243,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: """ @@ -243,7 +251,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 @@ -318,7 +326,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 = [] @@ -330,19 +338,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): @@ -350,6 +358,7 @@ class Collection(ABC): Base class for collections like AtomSites, LinkedPhases, SampleModels, Experiments, etc. """ + @property @abstractmethod def _child_class(self): @@ -382,14 +391,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): @@ -412,7 +421,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]: @@ -433,7 +442,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 @@ -443,23 +452,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(f"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): @@ -484,8 +494,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 fcfa5483..88d21c8b 100644 --- a/src/easydiffraction/core/singletons.py +++ b/src/easydiffraction/core/singletons.py @@ -1,8 +1,18 @@ -from typing import Dict, List, Tuple, Any, TypeVar, Type, Optional +# 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 +from typing import Tuple +from typing import Type +from typing import TypeVar + from asteval import Interpreter T = TypeVar('T', bound='BaseSingleton') + class BaseSingleton: """Base class to implement Singleton pattern. diff --git a/src/easydiffraction/crystallography/__init__.py b/src/easydiffraction/crystallography/__init__.py index e69de29b..6c98b2a1 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 85369b12..bf0d7eaf 100644 --- a/src/easydiffraction/crystallography/crystallography.py +++ b/src/easydiffraction/crystallography/crystallography.py @@ -1,29 +1,32 @@ -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 -) +# 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 + +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 -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. - + Args: cell: Dictionary containing lattice parameters. name_hm: Hermann-Mauguin symbol of the space group. - + Returns: The cell dictionary with applied symmetry constraints. """ @@ -39,60 +42,62 @@ 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. - + 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. """ @@ -104,30 +109,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): @@ -137,6 +138,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..e2389b4f 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, @@ -6,14 +9,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 +19,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 +37,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 +51,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 +65,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 +79,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 +93,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 +107,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 +120,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 +128,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 +136,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 +144,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 +152,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 +160,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 +169,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 +181,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 +193,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 +205,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 +217,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 +229,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 +241,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 +253,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 +265,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 +277,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 +289,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 +301,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 +312,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 +320,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 +328,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 +336,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 +344,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 +352,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 +361,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 +372,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 +383,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 +394,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 +405,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 +416,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 +426,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 +434,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 +442,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 +450,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 +458,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 +466,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 +475,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 +499,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 +523,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 +547,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 +571,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 +595,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 +679,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 +698,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 +717,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 +733,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 +752,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 +771,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 +790,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 +809,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 +828,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 +847,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 +866,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 +885,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 +904,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 +923,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 +942,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 +964,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 +984,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 +1004,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 +1024,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 +1044,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 +1064,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 +1084,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 +1102,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 +1120,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 +1138,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 +1156,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 +1174,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 +1192,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 +1210,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 +1228,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 +1246,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 +1264,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 +1282,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 +1300,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 +1318,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 +1336,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 +1354,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 +1372,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 +1390,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 +1408,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 +1427,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 +1446,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 +1465,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 +1484,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 +1503,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 +1519,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 +12499,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 +12696,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 +12746,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 +12796,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 +12846,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 +13246,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 +13369,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 +13498,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 +13555,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 +13612,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 +13669,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 +13726,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 +13783,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 +13840,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 +13888,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 +13936,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 +13984,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 +14032,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 +14080,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 +14128,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 +14172,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 +14216,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 +14260,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 +14304,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 +14348,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 +14381,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 +14396,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 +14419,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 +14458,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 +14498,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 +14538,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 +14596,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 +14637,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 +14675,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 +14703,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 +14769,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 +14814,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 +14852,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 +14879,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 +14925,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 +14962,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 +14994,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 +15024,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 +15059,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 +15093,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 +15123,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 +15152,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 +15188,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 +15239,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 +15269,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 +15298,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 +15326,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 +15379,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 +15443,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 +15479,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 +15514,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 +15556,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 +15608,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 +15655,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 +15702,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 +15738,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 +15773,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 +15825,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 +15868,8 @@ '(x,-y,z)', '(-x,y,z)', '(-y,-x,z)', - '(y,x,z)' - ] + '(y,x,z)', + ], }, 't': { 'multiplicity': 8, @@ -37384,22 +15882,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 +15901,8 @@ '(-x,x,-z)', '(x,-x,-z)', '(x,x,-z)', - '(-x,-x,-z)' - ] + '(-x,-x,-z)', + ], }, 'q': { 'multiplicity': 8, @@ -37426,154 +15915,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 +15986,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 +16000,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 +16014,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 +16028,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 +16042,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 +16056,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 +16111,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 +16125,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 +16139,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 +16153,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 +16167,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 +16181,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 +16236,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 +16250,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 +16264,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 +16278,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 +16292,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 +16306,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 +16361,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 +16375,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 +16389,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 +16403,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 +16417,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 +16431,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 +16479,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 +16493,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 +16507,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 +16521,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 +16535,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 +16549,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 +16597,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 +16611,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 +16625,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 +16639,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 +16694,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 +16708,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 +16722,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 +16736,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 +16784,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 +16798,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 +16812,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 +16826,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 +16840,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 +16889,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 +16903,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 +16917,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 +16931,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 +16945,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 +16994,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 +17008,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 +17022,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 +17036,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 +17082,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 +17096,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 +17110,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 +17124,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 +17170,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 +17184,8 @@ '(-x,y,0)', '(x,-y,0)', '(y,x,1/2)', - '(-y,-x,1/2)' - ] + '(-y,-x,1/2)', + ], }, 'p': { 'multiplicity': 8, @@ -39194,8 +17198,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 +17212,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 +17226,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 +17290,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 +17304,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 +17318,8 @@ '(-x,y,1/2)', '(x,-y,1/2)', '(y,x,0)', - '(-y,-x,0)' - ] + '(-y,-x,0)', + ], }, 'm': { 'multiplicity': 8, @@ -39413,8 +17332,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 +17346,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 +17360,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 +17425,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 +17439,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 +17453,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 +17467,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 +17481,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 +17495,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 +17509,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 +17560,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 +17574,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 +17588,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 +17602,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 +17616,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 +17630,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 +17644,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 +17695,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 +17709,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 +17723,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 +17737,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 +17751,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 +17765,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 +17779,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 +17837,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 +17851,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 +17865,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 +17879,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 +17893,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 +17907,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 +17921,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 +17979,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 +17993,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 +18007,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 +18021,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 +18035,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 +18086,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 +18100,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 +18114,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 +18128,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 +18186,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 +18200,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 +18214,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 +18228,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 +18271,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 +18285,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 +18299,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 +18313,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 +18356,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 +18370,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 +18384,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 +18398,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 +18412,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 +18468,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 +18482,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 +18496,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 +18510,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 +18524,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 +18580,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 +18599,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 +18618,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 +18671,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 +18685,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 +18699,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 +18713,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 +18727,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 +18782,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 +18796,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 +18810,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 +18824,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 +18872,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 +18886,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 +18900,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 +18914,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 +18962,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 +18976,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 +18990,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 +19004,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 +19018,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 +19059,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 +19073,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 +19087,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 +19101,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 +19115,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 +19137,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 +19162,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 +19181,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 +19200,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 +19219,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 +19238,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 +19254,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 +19276,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 +19292,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 +19319,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 +19366,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 +19413,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 +19425,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 +19464,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 +19508,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 +19572,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 +19609,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 +19646,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 +19678,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 +19714,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 +19746,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 +19782,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 +19833,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 +19873,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 +19911,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 +19949,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 +19983,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 +20036,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 +20094,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 +20148,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 +20211,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 +20229,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 +20247,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 +20265,8 @@ '(-x,x,-z)', '(-2x,-x,-z)', '(x,2x,-z)', - '(x,-x,-z)' - ] + '(x,-x,-z)', + ], }, 'n': { 'multiplicity': 12, @@ -44026,136 +20283,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 +20359,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 +20377,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 +20395,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 +20413,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 +20431,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 +20445,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 +20511,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 +20529,8 @@ '(-x,-x,-z+1/2)', '(0,-x,-z)', '(-x,0,-z)', - '(x,x,-z)' - ] + '(x,x,-z)', + ], }, 'j': { 'multiplicity': 12, @@ -44422,8 +20547,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 +20565,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 +20579,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 +20645,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 +20663,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 +20681,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 +20699,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 +20750,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 +20796,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 +20836,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 +20885,8 @@ '(-y,-z,-x)', '(y,-z,x)', '(-y,z,x)', - '(y,z,-x)' - ] + '(y,z,-x)', + ], }, 'h': { 'multiplicity': 48, @@ -44965,8 +20903,8 @@ '(y,z,0)', '(-y,z,0)', '(y,-z,0)', - '(-y,-z,0)' - ] + '(-y,-z,0)', + ], }, 'g': { 'multiplicity': 48, @@ -44983,8 +20921,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 +20935,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 +20987,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 +21005,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 +21019,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 +21070,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 +21088,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 +21102,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 +21153,8 @@ '(-y,-z,-x)', '(y,-z,x)', '(-y,z,x)', - '(y,z,-x)' - ] + '(y,z,-x)', + ], }, 'g': { 'multiplicity': 24, @@ -45314,8 +21171,8 @@ '(y,z,0)', '(-y,z,0)', '(y,-z,0)', - '(-y,-z,0)' - ] + '(-y,-z,0)', + ], }, 'f': { 'multiplicity': 16, @@ -45328,60 +21185,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 +21241,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 +21259,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 +21273,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 +21322,8 @@ '(z,y,-x)', '(z,-y,x)', '(-z,y,x)', - '(-z,-y,-x)' - ] + '(-z,-y,-x)', + ], }, 'j': { 'multiplicity': 12, @@ -45526,8 +21340,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 +21358,8 @@ '(y,y,0)', '(-y,y,0)', '(y,-y,0)', - '(-y,-y,0)' - ] + '(-y,-y,0)', + ], }, 'h': { 'multiplicity': 12, @@ -45562,8 +21376,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 +21390,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 +21443,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 +21461,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 +21479,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 +21497,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 +21515,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 +21533,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 +21547,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 +21612,8 @@ '(z,y,-x)', '(z,-y,x)', '(-z,y,x)', - '(-z,-y,-x)' - ] + '(-z,-y,-x)', + ], }, 'i': { 'multiplicity': 48, @@ -45896,8 +21630,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 +21648,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 +21666,8 @@ '(y,y,0)', '(-y,y,0)', '(y,-y,0)', - '(-y,-y,0)' - ] + '(-y,-y,0)', + ], }, 'f': { 'multiplicity': 32, @@ -45946,56 +21680,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 +21732,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 +21750,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 +21768,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 +21782,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 +21833,8 @@ '(z,y,-x)', '(z,-y,x)', '(-z,y,x)', - '(-z,-y,-x)' - ] + '(-z,-y,-x)', + ], }, 'i': { 'multiplicity': 24, @@ -46174,8 +21851,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 +21869,8 @@ '(y,y,0)', '(-y,y,0)', '(y,-y,0)', - '(-y,-y,0)' - ] + '(-y,-y,0)', + ], }, 'g': { 'multiplicity': 24, @@ -46210,8 +21887,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 +21901,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 +21957,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 +21975,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 +21989,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 +22038,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 +22056,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 +22070,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 +22119,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 +22137,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 +22155,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 +22173,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 +22187,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 +22246,8 @@ '(z,y,x)', '(z,-y,-x)', '(-z,y,-x)', - '(-z,-y,x)' - ] + '(-z,-y,x)', + ], }, 'i': { 'multiplicity': 12, @@ -46664,8 +22264,8 @@ '(x,z,x)', '(-x,z,-x)', '(x,-z,-x)', - '(-x,-z,x)' - ] + '(-x,-z,x)', + ], }, 'h': { 'multiplicity': 12, @@ -46682,76 +22282,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 +22336,8 @@ '(z,y,x)', '(z,-y,-x)', '(-z,y,-x)', - '(-z,-y,x)' - ] + '(-z,-y,x)', + ], }, 'h': { 'multiplicity': 48, @@ -46805,72 +22354,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 +22412,8 @@ '(z,y,x)', '(z,-y,-x)', '(-z,y,-x)', - '(-z,-y,x)' - ] + '(-z,-y,x)', + ], }, 'g': { 'multiplicity': 24, @@ -46924,8 +22430,8 @@ '(x,z,x)', '(-x,z,-x)', '(x,-z,-x)', - '(-x,-z,x)' - ] + '(-x,-z,x)', + ], }, 'f': { 'multiplicity': 24, @@ -46942,60 +22448,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 +22500,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 +22518,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 +22536,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 +22554,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 +22568,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 +22623,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 +22641,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 +22659,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 +22673,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 +22724,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 +22742,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 +22756,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 +22829,8 @@ '(-z,-y,x)', '(-z,y,-x)', '(z,-y,-x)', - '(z,y,x)' - ] + '(z,y,x)', + ], }, 'm': { 'multiplicity': 24, @@ -47460,8 +22859,8 @@ '(z,x,-x)', '(z,-x,x)', '(-z,x,x)', - '(-z,-x,-x)' - ] + '(-z,-x,-x)', + ], }, 'l': { 'multiplicity': 24, @@ -47490,8 +22889,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 +22919,8 @@ '(z,y,0)', '(z,-y,0)', '(-z,y,0)', - '(-z,-y,0)' - ] + '(-z,-y,0)', + ], }, 'j': { 'multiplicity': 12, @@ -47538,8 +22937,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 +22955,8 @@ '(y,y,0)', '(-y,y,0)', '(y,-y,0)', - '(-y,-y,0)' - ] + '(-y,-y,0)', + ], }, 'h': { 'multiplicity': 12, @@ -47574,8 +22973,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 +22984,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 +23064,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 +23094,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 +23124,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 +23146,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 +23164,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 +23182,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 +23196,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 +23265,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 +23295,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 +23325,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 +23347,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 +23365,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 +23383,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 +23397,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 +23409,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 +23473,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 +23503,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 +23533,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 +23555,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 +23573,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 +23591,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 +23609,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 +23623,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 +23702,8 @@ '(-z,-y,x)', '(-z,y,-x)', '(z,-y,-x)', - '(z,y,x)' - ] + '(z,y,x)', + ], }, 'k': { 'multiplicity': 24, @@ -48424,8 +23732,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 +23762,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 +23792,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 +23822,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 +23840,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 +23858,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 +23872,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 +23951,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 +23981,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 +24011,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 +24041,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 +24071,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 +24089,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 +24107,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 +24121,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 +24133,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 +24207,8 @@ '(-z,-y,x)', '(-z,y,-x)', '(z,-y,-x)', - '(z,y,x)' - ] + '(z,y,x)', + ], }, 'k': { 'multiplicity': 96, @@ -48970,8 +24237,8 @@ '(z,x,-x)', '(z,-x,x)', '(-z,x,x)', - '(-z,-x,-x)' - ] + '(-z,-x,-x)', + ], }, 'j': { 'multiplicity': 96, @@ -49000,8 +24267,8 @@ '(z,y,0)', '(z,-y,0)', '(-z,y,0)', - '(-z,-y,0)' - ] + '(-z,-y,0)', + ], }, 'i': { 'multiplicity': 48, @@ -49018,8 +24285,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 +24303,8 @@ '(y,y,0)', '(-y,y,0)', '(y,-y,0)', - '(-y,-y,0)' - ] + '(-y,-y,0)', + ], }, 'g': { 'multiplicity': 48, @@ -49054,8 +24321,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 +24335,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 +24411,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 +24441,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 +24471,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 +24493,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 +24511,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 +24529,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 +24604,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 +24634,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 +24664,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 +24682,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 +24696,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 +24771,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 +24801,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 +24831,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 +24849,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 +24863,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 +24938,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 +24968,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 +24998,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 +25020,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 +25038,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 +25052,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 +25066,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 +25134,8 @@ '(-z,-y,x)', '(-z,y,-x)', '(z,-y,-x)', - '(z,y,x)' - ] + '(z,y,x)', + ], }, 'k': { 'multiplicity': 48, @@ -50011,8 +25164,8 @@ '(z,x,-x)', '(z,-x,x)', '(-z,x,x)', - '(-z,-x,-x)' - ] + '(-z,-x,-x)', + ], }, 'j': { 'multiplicity': 48, @@ -50041,8 +25194,8 @@ '(z,y,0)', '(z,-y,0)', '(-z,y,0)', - '(-z,-y,0)' - ] + '(-z,-y,0)', + ], }, 'i': { 'multiplicity': 48, @@ -50071,8 +25224,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 +25242,8 @@ '(y,y,0)', '(-y,y,0)', '(y,-y,0)', - '(-y,-y,0)' - ] + '(-y,-y,0)', + ], }, 'g': { 'multiplicity': 24, @@ -50107,8 +25260,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 +25274,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 +25354,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 +25384,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 +25414,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 +25436,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 +25454,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 +25472,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 +25486,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 +25500,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/__init__.py b/src/easydiffraction/experiments/__init__.py index e69de29b..6c98b2a1 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..6c98b2a1 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 66541dd9..b9a18a6b 100644 --- a/src/easydiffraction/experiments/collections/background.py +++ b/src/easydiffraction/experiments/collections/background.py @@ -1,50 +1,52 @@ -import numpy as np +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause 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 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 @@ -61,28 +63,28 @@ 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 @@ -97,7 +99,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: @@ -124,27 +126,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): @@ -166,34 +174,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 eb10656c..1749bca0 100644 --- a/src/easydiffraction/experiments/collections/datastore.py +++ b/src/easydiffraction/experiments/collections/datastore.py @@ -1,7 +1,17 @@ +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause + 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 + class Pattern: """ Base pattern class for both powder and single crystal experiments. @@ -35,6 +45,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) @@ -49,9 +60,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}'") @@ -60,16 +71,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] @@ -84,15 +95,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: @@ -104,12 +115,12 @@ 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. """ - 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..da6b0eb5 100644 --- a/src/easydiffraction/experiments/collections/excluded_regions.py +++ b/src/easydiffraction/experiments/collections/excluded_regions.py @@ -1,38 +1,38 @@ -from typing import List, Type +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause -from easydiffraction.utils.utils import render_table +from typing import List +from typing import 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.core.objects import ( - Parameter, - Descriptor, - Component, - Collection -) +from easydiffraction.utils.utils import render_table 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 @@ -48,9 +48,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]: @@ -64,8 +65,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 @@ -79,15 +79,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 1cda0217..386c7771 100644 --- a/src/easydiffraction/experiments/collections/linked_phases.py +++ b/src/easydiffraction/experiments/collections/linked_phases.py @@ -1,36 +1,35 @@ +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause + 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): @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 @@ -46,9 +45,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/__init__.py b/src/easydiffraction/experiments/components/__init__.py index e69de29b..6c98b2a1 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 1b3aabdb..59ba74bf 100644 --- a/src/easydiffraction/experiments/components/experiment_type.py +++ b/src/easydiffraction/experiments/components/experiment_type.py @@ -1,49 +1,54 @@ -from easydiffraction.core.objects import ( - Descriptor, - Component -) +# 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 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 855863cd..6aa6ad2f 100644 --- a/src/easydiffraction/experiments/components/instrument.py +++ b/src/easydiffraction/experiments/components/instrument.py @@ -1,41 +1,43 @@ -from easydiffraction.core.objects import ( - Parameter, - Component -) -from easydiffraction.core.constants import ( - DEFAULT_SCATTERING_TYPE, - DEFAULT_BEAM_MODE -) +# 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 +from easydiffraction.core.objects import Parameter + 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 @@ -44,48 +46,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 @@ -95,29 +99,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 44eb3f4c..28a81cd3 100644 --- a/src/easydiffraction/experiments/components/peak.py +++ b/src/easydiffraction/experiments/components/peak.py @@ -1,13 +1,11 @@ -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 +# 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 +from easydiffraction.core.objects import Component +from easydiffraction.core.objects import Parameter # --- Mixins --- @@ -15,38 +13,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)', ) @@ -54,59 +52,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', ) @@ -114,31 +112,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', ) @@ -146,17 +144,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', ) @@ -164,17 +162,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 α₁', ) @@ -182,45 +180,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', ) @@ -228,16 +226,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__() @@ -249,8 +250,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__() @@ -263,8 +268,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__() @@ -277,8 +286,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__() @@ -290,8 +302,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__() @@ -304,8 +320,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__() @@ -317,9 +337,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() @@ -329,53 +353,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 9ec902da..ffef2ada 100644 --- a/src/easydiffraction/experiments/experiment.py +++ b/src/easydiffraction/experiments/experiment.py @@ -1,46 +1,41 @@ -import numpy as np -import tabulate -from typing import List, Optional +# 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 -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: 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 @@ -62,14 +57,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 @@ -101,68 +95,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) @@ -179,17 +176,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) @@ -208,50 +207,49 @@ 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, - 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 @@ -267,13 +265,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] @@ -307,11 +305,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,7 +320,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 @@ -332,33 +328,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): """ @@ -370,18 +366,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] @@ -392,7 +388,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 @@ -400,18 +396,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: @@ -422,32 +419,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 @@ -456,19 +458,21 @@ 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) - 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..a15b0919 100644 --- a/src/easydiffraction/experiments/experiments.py +++ b/src/easydiffraction/experiments/experiments.py @@ -1,12 +1,14 @@ +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause + 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 @@ -33,61 +35,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(f"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.") - - def _add_from_data_path(self, - name, - sample_form, - beam_mode, - radiation_probe, - scattering_type, - data_path): + 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, + ): """ 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 @@ -97,7 +109,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 @@ -109,4 +121,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/__init__.py b/src/easydiffraction/plotting/__init__.py index e69de29b..6c98b2a1 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..6c98b2a1 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 5c98fc68..eca0327e 100644 --- a/src/easydiffraction/plotting/plotters/plotter_ascii.py +++ b/src/easydiffraction/plotting/plotters/plotter_ascii.py @@ -1,39 +1,41 @@ +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause + 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, '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 @@ -43,7 +45,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 f1a229ef..c9f54915 100644 --- a/src/easydiffraction/plotting/plotters/plotter_base.py +++ b/src/easydiffraction/plotting/plotters/plotter_base.py @@ -1,10 +1,13 @@ +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause + +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 @@ -14,27 +17,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 a7712b22..4f68c1c3 100644 --- a/src/easydiffraction/plotting/plotters/plotter_plotly.py +++ b/src/easydiffraction/plotting/plotters/plotter_plotly.py @@ -1,30 +1,27 @@ +# 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 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)', 'calc': 'rgb(214, 39, 40)', - 'resid': 'rgb(44, 160, 44)' + 'resid': 'rgb(44, 160, 44)', } @@ -47,14 +44,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] @@ -66,22 +64,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], @@ -91,13 +89,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( @@ -116,10 +116,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 f262b64c..ba73b701 100644 --- a/src/easydiffraction/plotting/plotting.py +++ b/src/easydiffraction/plotting/plotting.py @@ -1,21 +1,19 @@ +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause + 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(): - +class Plotter: def __init__(self): # Plotting engine self._engine = DEFAULT_ENGINE @@ -43,7 +41,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 @@ -89,61 +87,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'] @@ -159,35 +159,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'] @@ -203,43 +209,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'] @@ -260,14 +274,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: @@ -283,12 +299,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 1ec7ae14..b51fc5c1 100644 --- a/src/easydiffraction/project.py +++ b/src/easydiffraction/project.py @@ -1,25 +1,24 @@ -import os +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause + 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: @@ -29,9 +28,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() @@ -96,19 +95,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" ) @@ -125,10 +124,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 @@ -155,14 +156,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. """ @@ -177,7 +182,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")) @@ -186,39 +191,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 @@ -239,11 +244,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 @@ -257,19 +264,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 @@ -283,20 +294,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 @@ -310,13 +325,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: """ @@ -328,12 +345,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/__init__.py b/src/easydiffraction/sample_models/__init__.py index e69de29b..6c98b2a1 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..6c98b2a1 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 5bea6540..0ace4e82 100644 --- a/src/easydiffraction/sample_models/collections/atom_sites.py +++ b/src/easydiffraction/sample_models/collections/atom_sites.py @@ -1,80 +1,84 @@ -from easydiffraction.core.objects import ( - Descriptor, - Parameter, - Component, - Collection -) +# 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 +from easydiffraction.core.objects import Parameter 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 @@ -89,11 +93,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/__init__.py b/src/easydiffraction/sample_models/components/__init__.py index e69de29b..6c98b2a1 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 e4998894..ffc6d187 100644 --- a/src/easydiffraction/sample_models/components/cell.py +++ b/src/easydiffraction/sample_models/components/cell.py @@ -1,66 +1,69 @@ -from typing import Optional +# 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 -from easydiffraction.core.objects import ( - Parameter, - Component -) 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 ff69f38a..89e779df 100644 --- a/src/easydiffraction/sample_models/components/space_group.py +++ b/src/easydiffraction/sample_models/components/space_group.py @@ -1,37 +1,41 @@ +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause + 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): """ 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 2115cdbf..b5bdfd1a 100644 --- a/src/easydiffraction/sample_models/sample_model.py +++ b/src/easydiffraction/sample_models/sample_model.py @@ -1,11 +1,14 @@ -from easydiffraction.utils.decorators import enforce_type -from easydiffraction.utils.formatting import paragraph -from easydiffraction.utils.utils import render_cif +# 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.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): @@ -16,10 +19,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 +88,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 +109,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 +143,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 +162,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 +189,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 ce3bcb97..bc35468c 100644 --- a/src/easydiffraction/sample_models/sample_models.py +++ b/src/easydiffraction/sample_models/sample_models.py @@ -1,10 +1,13 @@ -from typing import Dict, List, Optional +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause + +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,15 +23,17 @@ 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. - + Args: model: An existing SampleModel instance. name: Name for a new model if created from scratch. @@ -43,7 +48,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 +58,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. """ @@ -66,7 +71,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: @@ -77,37 +82,39 @@ 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. """ - 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: """ Add a pre-built SampleModel instance. - + Args: model: The SampleModel instance to add. - + Raises: TypeError: If model is not a SampleModel instance. """ 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. - + 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. """ @@ -118,6 +125,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 \ 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..f270865b 100644 --- a/src/easydiffraction/summary.py +++ b/src/easydiffraction/summary.py @@ -1,17 +1,18 @@ +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause + 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 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. """ @@ -39,13 +40,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: @@ -53,103 +54,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 @@ -159,4 +194,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/__init__.py b/src/easydiffraction/utils/__init__.py index e69de29b..6c98b2a1 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 283c9730..5b690a11 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 @@ -7,17 +10,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 \ No newline at end of file + return wrapper diff --git a/src/easydiffraction/utils/formatting.py b/src/easydiffraction/utils/formatting.py index c4d0235c..fe03a677 100644 --- a/src/easydiffraction/utils/formatting.py +++ b/src/easydiffraction/utils/formatting.py @@ -1,44 +1,55 @@ -from colorama import Fore, Style +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause + +from colorama import Fore +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}" \ 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..e5861471 100644 --- a/src/easydiffraction/utils/utils.py +++ b/src/easydiffraction/utils/utils.py @@ -1,37 +1,41 @@ +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction Python Library contributors +# SPDX-License-Identifier: BSD-3-Clause + """ 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 +from easydiffraction.utils.formatting import warning # 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', + overwrite: bool = False, ) -> None: """Download a data file from the EasyDiffraction repository on GitHub. @@ -39,11 +43,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}' @@ -51,7 +65,7 @@ def download_from_repository( url=url, known_hash=None, fname=file_name, - path=destination + path=destination, ) @@ -67,9 +81,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) @@ -84,14 +98,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. @@ -112,8 +128,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 @@ -121,40 +136,40 @@ 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: @@ -175,10 +190,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) @@ -203,16 +218,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. @@ -241,7 +255,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__}") @@ -269,7 +283,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 @@ -316,7 +330,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() @@ -325,4 +339,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..4e57620f 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 @@ -16,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 @@ -64,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(): @@ -78,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 @@ -117,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(): @@ -131,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 @@ -172,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 0c699dc2..5c6e321c 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() @@ -59,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 ------------ @@ -75,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 ------------ @@ -91,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: @@ -182,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() @@ -219,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: @@ -281,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 ------------ @@ -298,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 ------------ @@ -315,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 ------------ @@ -332,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 9b9f3469..c460d468 100644 --- a/tests/functional_tests/fitting/test_powder-diffraction_joint-fit.py +++ b/tests/functional_tests/fitting/test_powder-diffraction_joint-fit.py @@ -1,29 +1,28 @@ 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() 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' @@ -36,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), @@ -60,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), @@ -94,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: @@ -183,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 ------------ @@ -194,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 ------------ @@ -207,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 ------------ @@ -220,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 e790794e..517ffed9 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() @@ -86,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 f3ac7a4e..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 @@ -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() @@ -62,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: @@ -73,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' @@ -125,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) @@ -149,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 003c688a..990197fc 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 @@ -8,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 @@ -33,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() @@ -65,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): @@ -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.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 f5f16333..086ba171 100644 --- a/tests/unit_tests/analysis/calculators/test_calculator_cryspy.py +++ b/tests/unit_tests/analysis/calculators/test_calculator_cryspy.py @@ -1,13 +1,16 @@ -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 @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 @@ -15,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 @@ -24,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]) @@ -39,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()) @@ -51,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) @@ -68,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 60a97b9a..c7d5ff8c 100644 --- a/tests/unit_tests/analysis/calculators/test_calculator_factory.py +++ b/tests/unit_tests/analysis/calculators/test_calculator_factory.py @@ -1,19 +1,21 @@ +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(): - 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,15 +69,11 @@ 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() # 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..bb6d9d02 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 @@ -6,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" \ No newline at end of file + 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 90d29b23..25afe741 100644 --- a/tests/unit_tests/analysis/minimizers/test_fitting_progress_tracker.py +++ b/tests/unit_tests/analysis/minimizers/test_fitting_progress_tracker.py @@ -1,20 +1,23 @@ -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(): # 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 @@ -22,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 @@ -51,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): @@ -65,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 @@ -83,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 \ 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..52f9b2b9 100644 --- a/tests/unit_tests/analysis/minimizers/test_minimizer_base.py +++ b/tests/unit_tests/analysis/minimizers/test_minimizer_base.py @@ -1,46 +1,50 @@ +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 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] @@ -51,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 @@ -69,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 @@ -86,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) @@ -102,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 - ) - assert residuals == [1.0, 2.0, 3.0] \ No newline at end of file + 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 8cc43fa3..db26f0bc 100644 --- a/tests/unit_tests/analysis/minimizers/test_minimizer_dfols.py +++ b/tests/unit_tests/analysis/minimizers/test_minimizer_dfols.py @@ -1,13 +1,16 @@ -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 @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] @@ -18,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): @@ -30,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) @@ -39,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]) @@ -67,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 7d7ac5fa..a0d5caed 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(): @@ -14,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(): @@ -48,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 e8a62f80..5a0e5938 100644 --- a/tests/unit_tests/analysis/minimizers/test_minimizer_lmfit.py +++ b/tests/unit_tests/analysis/minimizers/test_minimizer_lmfit.py @@ -1,15 +1,17 @@ -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 @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] @@ -20,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): @@ -38,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) @@ -49,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) @@ -80,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 a216d2cd..245a57b0 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 @@ -7,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 @@ -26,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() # @@ -52,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() @@ -130,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 461322b2..9fe3ac51 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 @@ -8,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 @@ -18,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]), + ) ) ) } @@ -51,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): @@ -94,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) @@ -106,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 2fde2cef..a352f1e8 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(): @@ -90,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]), ) ) ) @@ -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..7873e85b 100644 --- a/tests/unit_tests/core/test_objects.py +++ b/tests/unit_tests/core/test_objects.py @@ -1,23 +1,26 @@ -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 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 @@ -25,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, @@ -45,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 @@ -78,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(): @@ -93,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 0fcf5cf8..f7f22212 100644 --- a/tests/unit_tests/core/test_singletons.py +++ b/tests/unit_tests/core/test_singletons.py @@ -1,21 +1,17 @@ -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 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 3436fd7e..0e6fc527 100644 --- a/tests/unit_tests/experiments/collections/test_background.py +++ b/tests/unit_tests/experiments/collections/test_background.py @@ -1,32 +1,31 @@ -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(): 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(): @@ -44,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() @@ -56,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() @@ -76,11 +77,12 @@ 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() background.add(order=0, coef=1.0) @@ -88,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 c4aa4651..97d0e6d0 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 +import pytest -from easydiffraction.experiments.collections.datastore import ( - Pattern, - PowderPattern, - Datastore, - DatastoreFactory, -) +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(): @@ -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 c4aa4651..97d0e6d0 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 +import pytest -from easydiffraction.experiments.collections.datastore import ( - Pattern, - PowderPattern, - Datastore, - DatastoreFactory, -) +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(): @@ -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 eb334dca..ca7ceae7 100644 --- a/tests/unit_tests/experiments/components/test_experiment_type.py +++ b/tests/unit_tests/experiments/components/test_experiment_type.py @@ -1,55 +1,41 @@ -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(): - 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 def no_test_experiment_type_locking_attributes(): - # hmm this doesn't work as expected. - experiment_type = ExperimentType( - sample_form="powder", - beam_mode="CW", - radiation_probe="neutron", - scattering_type="bragg" - ) + # 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._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 a8118694..084dc41e 100644 --- a/tests/unit_tests/experiments/components/test_instrument.py +++ b/tests/unit_tests/experiments/components/test_instrument.py @@ -1,37 +1,33 @@ 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(): 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(): @@ -40,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 db717279..88ae007e 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 --- @@ -87,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 @@ -132,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 93276782..d075d9d1 100644 --- a/tests/unit_tests/experiments/test_experiment.py +++ b/tests/unit_tests/experiments/test_experiment.py @@ -1,30 +1,25 @@ -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 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' ) @@ -46,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 @@ -61,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 547786b8..93cfa0d6 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): @@ -24,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 efeff44f..5514e5b6 100644 --- a/tests/unit_tests/sample_models/collections/test_atom_sites.py +++ b/tests/unit_tests/sample_models/collections/test_atom_sites.py @@ -1,45 +1,41 @@ 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(): 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 @@ -49,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 7f9eaa52..a7cdf2f8 100644 --- a/tests/unit_tests/sample_models/components/test_cell.py +++ b/tests/unit_tests/sample_models/components/test_cell.py @@ -1,16 +1,8 @@ -import pytest from easydiffraction.sample_models.components.cell import Cell 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 @@ -20,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(): @@ -40,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 e4e55fa8..5e0d6a1b 100644 --- a/tests/unit_tests/sample_models/components/test_space_group.py +++ b/tests/unit_tests/sample_models/components/test_space_group.py @@ -1,25 +1,24 @@ -import pytest from easydiffraction.sample_models.components.space_group import SpaceGroup 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 @@ -27,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 8027c5c7..9b7bcda3 100644 --- a/tests/unit_tests/sample_models/test_sample_models.py +++ b/tests/unit_tests/sample_models/test_sample_models.py @@ -1,19 +1,25 @@ +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 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 @@ -23,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 @@ -35,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 3c3b3217..923b30e5 100644 --- a/tests/unit_tests/test_project.py +++ b/tests/unit_tests/test_project.py @@ -1,26 +1,28 @@ -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 # ------------------------------------------ + 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) @@ -30,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(): @@ -56,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() @@ -85,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") 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 - 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() @@ -165,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 2a0df9e3..236071bf 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 @@ -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)" - ] - }, - "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)" - ] +@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)'], + }, + }, }, - "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)" - ] + ), + ( + (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)'], + }, + }, }, - "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 616974c3..16da323d 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]: @@ -20,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) @@ -120,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 ) @@ -142,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/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 diff --git a/tools/update_spdx-headers.py b/tools/update_spdx-headers.py new file mode 100644 index 00000000..1b3a0550 --- /dev/null +++ b/tools/update_spdx-headers.py @@ -0,0 +1,67 @@ +""" +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(): + """ + 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 + update_spdx_header(py_file) + + +if __name__ == '__main__': + main() 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 new file mode 100644 index 00000000..5534d395 --- /dev/null +++ b/tutorials/advanced_joint-fit_pd-neut-xray-cwl_PbSO4.ipynb @@ -0,0 +1,693 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "0", + "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": "1", + "metadata": {}, + "source": [ + "## Import Library" + ] + }, + { + "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": [ + "from easydiffraction import Experiment\n", + "from easydiffraction import Project\n", + "from easydiffraction import SampleModel\n", + "from easydiffraction import download_from_repository" + ] + }, + { + "cell_type": "markdown", + "id": "4", + "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": "5", + "metadata": {}, + "outputs": [], + "source": [ + "model = SampleModel('pbso4')" + ] + }, + { + "cell_type": "markdown", + "id": "6", + "metadata": {}, + "source": [ + "#### Set Space Group" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7", + "metadata": {}, + "outputs": [], + "source": [ + "model.space_group.name_h_m = 'P n m a'" + ] + }, + { + "cell_type": "markdown", + "id": "8", + "metadata": {}, + "source": [ + "#### Set Unit Cell" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9", + "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": "10", + "metadata": {}, + "source": [ + "#### Set Atom Sites" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "11", + "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": "12", + "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": "13", + "metadata": {}, + "outputs": [], + "source": [ + "download_from_repository('d1a_pbso4.dat', destination='data')" + ] + }, + { + "cell_type": "markdown", + "id": "14", + "metadata": {}, + "source": [ + "#### Create Experiment" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "15", + "metadata": {}, + "outputs": [], + "source": [ + "expt1 = Experiment('npd', radiation_probe='neutron', data_path='data/d1a_pbso4.dat')" + ] + }, + { + "cell_type": "markdown", + "id": "16", + "metadata": {}, + "source": [ + "#### Set Instrument" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "17", + "metadata": {}, + "outputs": [], + "source": [ + "expt1.instrument.setup_wavelength = 1.91\n", + "expt1.instrument.calib_twotheta_offset = -0.1406" + ] + }, + { + "cell_type": "markdown", + "id": "18", + "metadata": {}, + "source": [ + "#### Set Peak Profile" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "19", + "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": "20", + "metadata": {}, + "source": [ + "#### Set Background" + ] + }, + { + "cell_type": "markdown", + "id": "21", + "metadata": {}, + "source": [ + "Select the background type." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "22", + "metadata": {}, + "outputs": [], + "source": [ + "expt1.background_type = 'line-segment'" + ] + }, + { + "cell_type": "markdown", + "id": "23", + "metadata": {}, + "source": [ + "Add background points." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "24", + "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": "25", + "metadata": {}, + "source": [ + "#### Set Linked Phases" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "26", + "metadata": {}, + "outputs": [], + "source": [ + "expt1.linked_phases.add('pbso4', scale=1.5)" + ] + }, + { + "cell_type": "markdown", + "id": "27", + "metadata": {}, + "source": [ + "### Experiment 2: xrd\n", + "\n", + "#### Download Data" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "28", + "metadata": {}, + "outputs": [], + "source": [ + "download_from_repository('lab_pbso4.dat', destination='data')" + ] + }, + { + "cell_type": "markdown", + "id": "29", + "metadata": {}, + "source": [ + "#### Create Experiment" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "30", + "metadata": {}, + "outputs": [], + "source": [ + "expt2 = Experiment('xrd', radiation_probe='xray', data_path='data/lab_pbso4.dat')" + ] + }, + { + "cell_type": "markdown", + "id": "31", + "metadata": {}, + "source": [ + "#### Set Instrument" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "32", + "metadata": {}, + "outputs": [], + "source": [ + "expt2.instrument.setup_wavelength = 1.540567\n", + "expt2.instrument.calib_twotheta_offset = -0.05181" + ] + }, + { + "cell_type": "markdown", + "id": "33", + "metadata": {}, + "source": [ + "#### Set Peak Profile" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "34", + "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": "35", + "metadata": {}, + "source": [ + "#### Set Background" + ] + }, + { + "cell_type": "markdown", + "id": "36", + "metadata": {}, + "source": [ + "Select background type." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "37", + "metadata": {}, + "outputs": [], + "source": [ + "expt2.background_type = 'chebyshev polynomial'" + ] + }, + { + "cell_type": "markdown", + "id": "38", + "metadata": {}, + "source": [ + "Add background points." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "39", + "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": "40", + "metadata": {}, + "source": [ + "#### Set Linked Phases" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "41", + "metadata": {}, + "outputs": [], + "source": [ + "expt2.linked_phases.add('pbso4', scale=0.001)" + ] + }, + { + "cell_type": "markdown", + "id": "42", + "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": "43", + "metadata": {}, + "outputs": [], + "source": [ + "project = Project()" + ] + }, + { + "cell_type": "markdown", + "id": "44", + "metadata": {}, + "source": [ + "#### Add Sample Model" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "45", + "metadata": {}, + "outputs": [], + "source": [ + "project.sample_models.add(model)" + ] + }, + { + "cell_type": "markdown", + "id": "46", + "metadata": {}, + "source": [ + "#### Add Experiments" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "47", + "metadata": {}, + "outputs": [], + "source": [ + "project.experiments.add(expt1)\n", + "project.experiments.add(expt2)" + ] + }, + { + "cell_type": "markdown", + "id": "48", + "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": "49", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.current_calculator = 'cryspy'" + ] + }, + { + "cell_type": "markdown", + "id": "50", + "metadata": {}, + "source": [ + "#### Set Fit Mode" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "51", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.fit_mode = 'joint'" + ] + }, + { + "cell_type": "markdown", + "id": "52", + "metadata": {}, + "source": [ + "#### Set Minimizer" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "53", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.current_minimizer = 'lmfit (leastsq)'" + ] + }, + { + "cell_type": "markdown", + "id": "54", + "metadata": {}, + "source": [ + "#### Set Fitting Parameters\n", + "\n", + "Set sample model parameters to be optimized." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "55", + "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": "56", + "metadata": {}, + "source": [ + "Set experiment parameters to be optimized." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "57", + "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": "58", + "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": "59", + "metadata": {}, + "source": [ + "#### Perform Fit" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "60", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.fit()" + ] + }, + { + "cell_type": "markdown", + "id": "61", + "metadata": {}, + "source": [ + "#### Plot Measured vs Calculated" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "62", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='npd', x_min=35.5, x_max=38.3, show_residual=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "63", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='xrd', x_min=29.0, x_max=30.4, show_residual=True)" + ] + } + ], + "metadata": { + "jupytext": { + "cell_metadata_filter": "tags,-all", + "main_language": "python", + "notebook_metadata_filter": "-all" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} 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..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,13 +13,23 @@ # %% [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 ( - 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 @@ -67,16 +77,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 @@ -132,16 +139,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 @@ -280,11 +284,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 new file mode 100644 index 00000000..1f262e1b --- /dev/null +++ b/tutorials/basic_single-fit_pd-neut-cwl_LBCO-HRPT.ipynb @@ -0,0 +1,1821 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "0", + "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": "1", + "metadata": {}, + "source": [ + "## Import Library" + ] + }, + { + "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": [ + "import easydiffraction as ed" + ] + }, + { + "cell_type": "markdown", + "id": "4", + "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": "5", + "metadata": {}, + "source": [ + "#### Create Project" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6", + "metadata": {}, + "outputs": [], + "source": [ + "project = ed.Project(name='lbco_hrpt')" + ] + }, + { + "cell_type": "markdown", + "id": "7", + "metadata": {}, + "source": [ + "#### Set Project Metadata" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8", + "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": "9", + "metadata": {}, + "source": [ + "#### Show Project Metadata as CIF" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "10", + "metadata": {}, + "outputs": [], + "source": [ + "project.info.show_as_cif()" + ] + }, + { + "cell_type": "markdown", + "id": "11", + "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": "12", + "metadata": {}, + "outputs": [], + "source": [ + "project.save_as(dir_path='lbco_hrpt', temporary=True)" + ] + }, + { + "cell_type": "markdown", + "id": "13", + "metadata": {}, + "source": [ + "#### Set Up Data Plotter" + ] + }, + { + "cell_type": "markdown", + "id": "14", + "metadata": {}, + "source": [ + "Show supported plotting engines." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "15", + "metadata": {}, + "outputs": [], + "source": [ + "project.plotter.show_supported_engines()" + ] + }, + { + "cell_type": "markdown", + "id": "16", + "metadata": {}, + "source": [ + "Show current plotting configuration." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "17", + "metadata": {}, + "outputs": [], + "source": [ + "project.plotter.show_config()" + ] + }, + { + "cell_type": "markdown", + "id": "18", + "metadata": {}, + "source": [ + "Set plotting engine." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "19", + "metadata": {}, + "outputs": [], + "source": [ + "project.plotter.engine = 'plotly'" + ] + }, + { + "cell_type": "markdown", + "id": "20", + "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": "21", + "metadata": {}, + "source": [ + "#### Add Sample Model" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "22", + "metadata": {}, + "outputs": [], + "source": [ + "project.sample_models.add(name='lbco')" + ] + }, + { + "cell_type": "markdown", + "id": "23", + "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": "24", + "metadata": {}, + "outputs": [], + "source": [ + "project.sample_models.show_names()" + ] + }, + { + "cell_type": "markdown", + "id": "25", + "metadata": {}, + "source": [ + "#### Set Space Group\n", + "\n", + "Modify the default space group parameters." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "26", + "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": "27", + "metadata": {}, + "source": [ + "#### Set Unit Cell\n", + "\n", + "Modify the default unit cell parameters." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "28", + "metadata": {}, + "outputs": [], + "source": [ + "project.sample_models['lbco'].cell.length_a = 3.88" + ] + }, + { + "cell_type": "markdown", + "id": "29", + "metadata": {}, + "source": [ + "#### Set Atom Sites\n", + "\n", + "Add atom sites to the sample model." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "30", + "metadata": {}, + "outputs": [], + "source": [ + "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", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "31", + "metadata": {}, + "source": [ + "#### Apply Symmetry Constraints" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "32", + "metadata": {}, + "outputs": [], + "source": [ + "project.sample_models['lbco'].apply_symmetry_constraints()" + ] + }, + { + "cell_type": "markdown", + "id": "33", + "metadata": {}, + "source": [ + "#### Show Sample Model as CIF" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "34", + "metadata": {}, + "outputs": [], + "source": [ + "project.sample_models['lbco'].show_as_cif()" + ] + }, + { + "cell_type": "markdown", + "id": "35", + "metadata": {}, + "source": [ + "#### Show Sample Model Structure" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "36", + "metadata": {}, + "outputs": [], + "source": [ + "project.sample_models['lbco'].show_structure()" + ] + }, + { + "cell_type": "markdown", + "id": "37", + "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": "38", + "metadata": {}, + "outputs": [], + "source": [ + "project.save()" + ] + }, + { + "cell_type": "markdown", + "id": "39", + "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": "40", + "metadata": {}, + "source": [ + "#### Download Measured Data\n", + "\n", + "Download the data file from the EasyDiffraction repository on GitHub." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "41", + "metadata": {}, + "outputs": [], + "source": [ + "ed.download_from_repository('hrpt_lbco.xye', destination='data')" + ] + }, + { + "cell_type": "markdown", + "id": "42", + "metadata": {}, + "source": [ + "#### Add Diffraction Experiment" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "43", + "metadata": {}, + "outputs": [], + "source": [ + "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", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "44", + "metadata": {}, + "source": [ + "#### Show Defined Experiments" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "45", + "metadata": {}, + "outputs": [], + "source": [ + "project.experiments.show_names()" + ] + }, + { + "cell_type": "markdown", + "id": "46", + "metadata": {}, + "source": [ + "#### Show Measured Data" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "47", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas(expt_name='hrpt')" + ] + }, + { + "cell_type": "markdown", + "id": "48", + "metadata": {}, + "source": [ + "#### Set Instrument\n", + "\n", + "Modify the default instrument parameters." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "49", + "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": "50", + "metadata": {}, + "source": [ + "#### Set Peak Profile\n", + "\n", + "Show supported peak profile types." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "51", + "metadata": {}, + "outputs": [], + "source": [ + "project.experiments['hrpt'].show_supported_peak_profile_types()" + ] + }, + { + "cell_type": "markdown", + "id": "52", + "metadata": {}, + "source": [ + "Show the current peak profile type." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "53", + "metadata": {}, + "outputs": [], + "source": [ + "project.experiments['hrpt'].show_current_peak_profile_type()" + ] + }, + { + "cell_type": "markdown", + "id": "54", + "metadata": {}, + "source": [ + "Select the desired peak profile type." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "55", + "metadata": {}, + "outputs": [], + "source": [ + "project.experiments['hrpt'].peak_profile_type = 'pseudo-voigt'" + ] + }, + { + "cell_type": "markdown", + "id": "56", + "metadata": {}, + "source": [ + "Modify default peak profile parameters." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "57", + "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": "58", + "metadata": {}, + "source": [ + "#### Set Background" + ] + }, + { + "cell_type": "markdown", + "id": "59", + "metadata": {}, + "source": [ + "Show supported background types." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "60", + "metadata": {}, + "outputs": [], + "source": [ + "project.experiments['hrpt'].show_supported_background_types()" + ] + }, + { + "cell_type": "markdown", + "id": "61", + "metadata": {}, + "source": [ + "Show current background type." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "62", + "metadata": {}, + "outputs": [], + "source": [ + "project.experiments['hrpt'].show_current_background_type()" + ] + }, + { + "cell_type": "markdown", + "id": "63", + "metadata": {}, + "source": [ + "Select the desired background type." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "64", + "metadata": {}, + "outputs": [], + "source": [ + "project.experiments['hrpt'].background_type = 'line-segment'" + ] + }, + { + "cell_type": "markdown", + "id": "65", + "metadata": {}, + "source": [ + "Add background points." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "66", + "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": "67", + "metadata": {}, + "source": [ + "Show current background points." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "68", + "metadata": {}, + "outputs": [], + "source": [ + "project.experiments['hrpt'].background.show()" + ] + }, + { + "cell_type": "markdown", + "id": "69", + "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": "70", + "metadata": {}, + "outputs": [], + "source": [ + "project.experiments['hrpt'].linked_phases.add(id='lbco', scale=10.0)" + ] + }, + { + "cell_type": "markdown", + "id": "71", + "metadata": {}, + "source": [ + "#### Show Experiment as CIF" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "72", + "metadata": {}, + "outputs": [], + "source": [ + "project.experiments['hrpt'].show_as_cif()" + ] + }, + { + "cell_type": "markdown", + "id": "73", + "metadata": {}, + "source": [ + "#### Save Project State" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "74", + "metadata": {}, + "outputs": [], + "source": [ + "project.save()" + ] + }, + { + "cell_type": "markdown", + "id": "75", + "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": "76", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.show_supported_calculators()" + ] + }, + { + "cell_type": "markdown", + "id": "77", + "metadata": {}, + "source": [ + "Show current calculation engine." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "78", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.show_current_calculator()" + ] + }, + { + "cell_type": "markdown", + "id": "79", + "metadata": {}, + "source": [ + "Select the desired calculation engine." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "80", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.current_calculator = 'cryspy'" + ] + }, + { + "cell_type": "markdown", + "id": "81", + "metadata": {}, + "source": [ + "#### Show Calculated Data" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "82", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_calc(expt_name='hrpt')" + ] + }, + { + "cell_type": "markdown", + "id": "83", + "metadata": {}, + "source": [ + "#### Plot Measured vs Calculated" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "84", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='hrpt', show_residual=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "85", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='hrpt', x_min=38, x_max=41, show_residual=True)" + ] + }, + { + "cell_type": "markdown", + "id": "86", + "metadata": {}, + "source": [ + "#### Show Parameters\n", + "\n", + "Show all parameters of the project." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "87", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.show_all_params()" + ] + }, + { + "cell_type": "markdown", + "id": "88", + "metadata": {}, + "source": [ + "Show all fittable parameters." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "89", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.show_fittable_params()" + ] + }, + { + "cell_type": "markdown", + "id": "90", + "metadata": {}, + "source": [ + "Show only free parameters." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "91", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.show_free_params()" + ] + }, + { + "cell_type": "markdown", + "id": "92", + "metadata": {}, + "source": [ + "Show how to access parameters in the code." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "93", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.how_to_access_parameters()" + ] + }, + { + "cell_type": "markdown", + "id": "94", + "metadata": {}, + "source": [ + "#### Set Fit Mode\n", + "\n", + "Show supported fit modes." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "95", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.show_available_fit_modes()" + ] + }, + { + "cell_type": "markdown", + "id": "96", + "metadata": {}, + "source": [ + "Show current fit mode." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "97", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.show_current_fit_mode()" + ] + }, + { + "cell_type": "markdown", + "id": "98", + "metadata": {}, + "source": [ + "Select desired fit mode." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "99", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.fit_mode = 'single'" + ] + }, + { + "cell_type": "markdown", + "id": "100", + "metadata": {}, + "source": [ + "#### Set Minimizer\n", + "\n", + "Show supported fitting engines." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "101", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.show_available_minimizers()" + ] + }, + { + "cell_type": "markdown", + "id": "102", + "metadata": {}, + "source": [ + "Show current fitting engine." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "103", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.show_current_minimizer()" + ] + }, + { + "cell_type": "markdown", + "id": "104", + "metadata": {}, + "source": [ + "Select desired fitting engine." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "105", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.current_minimizer = 'lmfit (leastsq)'" + ] + }, + { + "cell_type": "markdown", + "id": "106", + "metadata": {}, + "source": [ + "### Perform Fit 1/5\n", + "\n", + "Set sample model parameters to be refined." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "107", + "metadata": {}, + "outputs": [], + "source": [ + "project.sample_models['lbco'].cell.length_a.free = True" + ] + }, + { + "cell_type": "markdown", + "id": "108", + "metadata": {}, + "source": [ + "Set experiment parameters to be refined." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "109", + "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": "110", + "metadata": {}, + "source": [ + "Show free parameters after selection." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "111", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.show_free_params()" + ] + }, + { + "cell_type": "markdown", + "id": "112", + "metadata": {}, + "source": [ + "#### Run Fitting" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "113", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.fit()" + ] + }, + { + "cell_type": "markdown", + "id": "114", + "metadata": {}, + "source": [ + "#### Plot Measured vs Calculated" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "115", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='hrpt', show_residual=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "116", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='hrpt', x_min=38, x_max=41, show_residual=True)" + ] + }, + { + "cell_type": "markdown", + "id": "117", + "metadata": {}, + "source": [ + "#### Save Project State" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "118", + "metadata": {}, + "outputs": [], + "source": [ + "project.save_as(dir_path='lbco_hrpt', temporary=True)" + ] + }, + { + "cell_type": "markdown", + "id": "119", + "metadata": {}, + "source": [ + "### Perform Fit 2/5\n", + "\n", + "Set more parameters to be refined." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "120", + "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": "121", + "metadata": {}, + "source": [ + "Show free parameters after selection." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "122", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.show_free_params()" + ] + }, + { + "cell_type": "markdown", + "id": "123", + "metadata": {}, + "source": [ + "#### Run Fitting" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "124", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.fit()" + ] + }, + { + "cell_type": "markdown", + "id": "125", + "metadata": {}, + "source": [ + "#### Plot Measured vs Calculated" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "126", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='hrpt', show_residual=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "127", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='hrpt', x_min=38, x_max=41, show_residual=True)" + ] + }, + { + "cell_type": "markdown", + "id": "128", + "metadata": {}, + "source": [ + "#### Save Project State" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "129", + "metadata": {}, + "outputs": [], + "source": [ + "project.save_as(dir_path='lbco_hrpt', temporary=True)" + ] + }, + { + "cell_type": "markdown", + "id": "130", + "metadata": {}, + "source": [ + "### Perform Fit 3/5\n", + "\n", + "Set more parameters to be refined." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "131", + "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": "132", + "metadata": {}, + "source": [ + "Show free parameters after selection." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "133", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.show_free_params()" + ] + }, + { + "cell_type": "markdown", + "id": "134", + "metadata": {}, + "source": [ + "#### Run Fitting" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "135", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.fit()" + ] + }, + { + "cell_type": "markdown", + "id": "136", + "metadata": {}, + "source": [ + "#### Plot Measured vs Calculated" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "137", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='hrpt', show_residual=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "138", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='hrpt', x_min=38, x_max=41, show_residual=True)" + ] + }, + { + "cell_type": "markdown", + "id": "139", + "metadata": {}, + "source": [ + "#### Save Project State" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "140", + "metadata": {}, + "outputs": [], + "source": [ + "project.save_as(dir_path='lbco_hrpt', temporary=True)" + ] + }, + { + "cell_type": "markdown", + "id": "141", + "metadata": {}, + "source": [ + "### Perform Fit 4/5\n", + "\n", + "#### Set Constraints\n", + "\n", + "Set aliases for parameters." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "142", + "metadata": {}, + "outputs": [], + "source": [ + "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)" + ] + }, + { + "cell_type": "markdown", + "id": "143", + "metadata": {}, + "source": [ + "Set constraints." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "144", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.constraints.add(lhs_alias='biso_Ba', rhs_expr='biso_La')" + ] + }, + { + "cell_type": "markdown", + "id": "145", + "metadata": {}, + "source": [ + "Show defined constraints." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "146", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.show_constraints()" + ] + }, + { + "cell_type": "markdown", + "id": "147", + "metadata": {}, + "source": [ + "Show free parameters before applying constraints." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "148", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.show_free_params()" + ] + }, + { + "cell_type": "markdown", + "id": "149", + "metadata": {}, + "source": [ + "Apply constraints." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "150", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.apply_constraints()" + ] + }, + { + "cell_type": "markdown", + "id": "151", + "metadata": {}, + "source": [ + "Show free parameters after applying constraints." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "152", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.show_free_params()" + ] + }, + { + "cell_type": "markdown", + "id": "153", + "metadata": {}, + "source": [ + "#### Run Fitting" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "154", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.fit()" + ] + }, + { + "cell_type": "markdown", + "id": "155", + "metadata": {}, + "source": [ + "#### Plot Measured vs Calculated" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "156", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='hrpt', show_residual=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "157", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='hrpt', x_min=38, x_max=41, show_residual=True)" + ] + }, + { + "cell_type": "markdown", + "id": "158", + "metadata": {}, + "source": [ + "#### Save Project State" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "159", + "metadata": {}, + "outputs": [], + "source": [ + "project.save_as(dir_path='lbco_hrpt', temporary=True)" + ] + }, + { + "cell_type": "markdown", + "id": "160", + "metadata": {}, + "source": [ + "### Perform Fit 5/5\n", + "\n", + "#### Set Constraints\n", + "\n", + "Set more aliases for parameters." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "161", + "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": "162", + "metadata": {}, + "source": [ + "Set more constraints." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "163", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.constraints.add(\n", + " lhs_alias='occ_Ba',\n", + " rhs_expr='1 - occ_La',\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "164", + "metadata": {}, + "source": [ + "Show defined constraints." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "165", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.show_constraints()" + ] + }, + { + "cell_type": "markdown", + "id": "166", + "metadata": {}, + "source": [ + "Apply constraints." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "167", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.apply_constraints()" + ] + }, + { + "cell_type": "markdown", + "id": "168", + "metadata": {}, + "source": [ + "Set sample model parameters to be refined." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "169", + "metadata": {}, + "outputs": [], + "source": [ + "project.sample_models['lbco'].atom_sites['La'].occupancy.free = True" + ] + }, + { + "cell_type": "markdown", + "id": "170", + "metadata": {}, + "source": [ + "Show free parameters after selection." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "171", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.show_free_params()" + ] + }, + { + "cell_type": "markdown", + "id": "172", + "metadata": {}, + "source": [ + "#### Run Fitting" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "173", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.fit()" + ] + }, + { + "cell_type": "markdown", + "id": "174", + "metadata": {}, + "source": [ + "#### Plot Measured vs Calculated" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "175", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='hrpt', show_residual=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "176", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='hrpt', x_min=38, x_max=41, show_residual=True)" + ] + }, + { + "cell_type": "markdown", + "id": "177", + "metadata": {}, + "source": [ + "#### Save Project State" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "178", + "metadata": {}, + "outputs": [], + "source": [ + "project.save_as(dir_path='lbco_hrpt', temporary=True)" + ] + }, + { + "cell_type": "markdown", + "id": "179", + "metadata": {}, + "source": [ + "## Step 5: Summary\n", + "\n", + "This final section shows how to review the results of the analysis." + ] + }, + { + "cell_type": "markdown", + "id": "180", + "metadata": {}, + "source": [ + "#### Show Project Summary" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "181", + "metadata": {}, + "outputs": [], + "source": [ + "project.summary.show_report()" + ] + } + ], + "metadata": { + "jupytext": { + "cell_metadata_filter": "tags,-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.py b/tutorials/basic_single-fit_pd-neut-cwl_LBCO-HRPT.py index 2c9708c0..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 @@ -38,9 +50,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] @@ -124,36 +136,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 +215,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 +372,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 +479,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 +517,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 +555,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 +574,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 +617,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 +638,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 +651,7 @@ # %% project.analysis.constraints.add( lhs_alias='occ_Ba', - rhs_expr='1 - occ_La' + rhs_expr='1 - occ_La', ) # %% [markdown] @@ -691,13 +688,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 new file mode 100644 index 00000000..f493bc93 --- /dev/null +++ b/tutorials/cryst-struct_pd-neut-cwl_CoSiO4-D20.ipynb @@ -0,0 +1,682 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "0", + "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": "1", + "metadata": {}, + "source": [ + "## Import Library" + ] + }, + { + "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": [ + "from easydiffraction import Experiment\n", + "from easydiffraction import Project\n", + "from easydiffraction import SampleModel\n", + "from easydiffraction import download_from_repository" + ] + }, + { + "cell_type": "markdown", + "id": "4", + "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": "5", + "metadata": {}, + "outputs": [], + "source": [ + "model = SampleModel('cosio')" + ] + }, + { + "cell_type": "markdown", + "id": "6", + "metadata": {}, + "source": [ + "#### Set Space Group" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7", + "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": "8", + "metadata": {}, + "source": [ + "#### Set Unit Cell" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9", + "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": "10", + "metadata": {}, + "source": [ + "#### Set Atom Sites" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "11", + "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": "12", + "metadata": {}, + "source": [ + "#### Symmetry Constraints\n", + "\n", + "Show CIF output before applying symmetry constraints." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "13", + "metadata": {}, + "outputs": [], + "source": [ + "model.show_as_cif()" + ] + }, + { + "cell_type": "markdown", + "id": "14", + "metadata": {}, + "source": [ + "Apply symmetry constraints." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "15", + "metadata": {}, + "outputs": [], + "source": [ + "model.apply_symmetry_constraints()" + ] + }, + { + "cell_type": "markdown", + "id": "16", + "metadata": {}, + "source": [ + "Show CIF output after applying symmetry constraints." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "17", + "metadata": {}, + "outputs": [], + "source": [ + "model.show_as_cif()" + ] + }, + { + "cell_type": "markdown", + "id": "18", + "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": "19", + "metadata": {}, + "outputs": [], + "source": [ + "download_from_repository('co2sio4_d20.xye', destination='data')" + ] + }, + { + "cell_type": "markdown", + "id": "20", + "metadata": {}, + "source": [ + "#### Create Experiment" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "21", + "metadata": {}, + "outputs": [], + "source": [ + "expt = Experiment('d20', data_path='data/co2sio4_d20.xye')" + ] + }, + { + "cell_type": "markdown", + "id": "22", + "metadata": {}, + "source": [ + "#### Set Instrument" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "23", + "metadata": {}, + "outputs": [], + "source": [ + "expt.instrument.setup_wavelength = 1.87\n", + "expt.instrument.calib_twotheta_offset = 0.1" + ] + }, + { + "cell_type": "markdown", + "id": "24", + "metadata": {}, + "source": [ + "#### Set Peak Profile" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "25", + "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": "26", + "metadata": {}, + "source": [ + "#### Set Background" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "27", + "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": "28", + "metadata": {}, + "source": [ + "#### Set Linked Phases" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "29", + "metadata": {}, + "outputs": [], + "source": [ + "expt.linked_phases.add('cosio', scale=1.0)" + ] + }, + { + "cell_type": "markdown", + "id": "30", + "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": "31", + "metadata": {}, + "outputs": [], + "source": [ + "project = Project()" + ] + }, + { + "cell_type": "markdown", + "id": "32", + "metadata": {}, + "source": [ + "#### Set Plotting Engine" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "33", + "metadata": {}, + "outputs": [], + "source": [ + "project.plotter.engine = 'plotly'" + ] + }, + { + "cell_type": "markdown", + "id": "34", + "metadata": {}, + "source": [ + "#### Add Sample Model" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "35", + "metadata": {}, + "outputs": [], + "source": [ + "project.sample_models.add(model)" + ] + }, + { + "cell_type": "markdown", + "id": "36", + "metadata": {}, + "source": [ + "#### Add Experiment" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "37", + "metadata": {}, + "outputs": [], + "source": [ + "project.experiments.add(expt)" + ] + }, + { + "cell_type": "markdown", + "id": "38", + "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": "39", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.current_calculator = 'cryspy'" + ] + }, + { + "cell_type": "markdown", + "id": "40", + "metadata": {}, + "source": [ + "#### Set Minimizer" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "41", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.current_minimizer = 'lmfit (leastsq)'" + ] + }, + { + "cell_type": "markdown", + "id": "42", + "metadata": {}, + "source": [ + "#### Plot Measured vs Calculated" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "43", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='d20', show_residual=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "44", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='d20', x_min=41, x_max=54, show_residual=True)" + ] + }, + { + "cell_type": "markdown", + "id": "45", + "metadata": {}, + "source": [ + "#### Set Free Parameters" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "46", + "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": "47", + "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": "48", + "metadata": {}, + "source": [ + "#### Set Constraints\n", + "\n", + "Set aliases for parameters." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "49", + "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": "50", + "metadata": {}, + "source": [ + "Set constraints." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "51", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.constraints.add(\n", + " lhs_alias='biso_Co2',\n", + " rhs_expr='biso_Co1',\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "52", + "metadata": {}, + "source": [ + "Apply constraints." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "53", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.apply_constraints()" + ] + }, + { + "cell_type": "markdown", + "id": "54", + "metadata": {}, + "source": [ + "#### Run Fitting" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "55", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.fit()" + ] + }, + { + "cell_type": "markdown", + "id": "56", + "metadata": {}, + "source": [ + "#### Plot Measured vs Calculated" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "57", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='d20', show_residual=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "58", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='d20', x_min=41, x_max=54, show_residual=True)" + ] + }, + { + "cell_type": "markdown", + "id": "59", + "metadata": {}, + "source": [ + "## Summary\n", + "\n", + "This final section shows how to review the results of the analysis." + ] + }, + { + "cell_type": "markdown", + "id": "60", + "metadata": {}, + "source": [ + "#### Show Project Summary" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "61", + "metadata": {}, + "outputs": [], + "source": [ + "project.summary.show_report()" + ] + } + ], + "metadata": { + "jupytext": { + "cell_metadata_filter": "tags,-all", + "main_language": "python", + "notebook_metadata_filter": "-all" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/tutorials/cryst-struct_pd-neut-cwl_CoSiO4-D20.py b/tutorials/cryst-struct_pd-neut-cwl_CoSiO4-D20.py index 3f121be9..eac6aa75 100644 --- a/tutorials/cryst-struct_pd-neut-cwl_CoSiO4-D20.py +++ b/tutorials/cryst-struct_pd-neut-cwl_CoSiO4-D20.py @@ -7,13 +7,23 @@ # %% [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 ( - 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 @@ -231,11 +241,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] @@ -244,7 +254,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 new file mode 100644 index 00000000..8a07be6f --- /dev/null +++ b/tutorials/cryst-struct_pd-neut-cwl_HS-HRPT.ipynb @@ -0,0 +1,860 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "0", + "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": "1", + "metadata": {}, + "source": [ + "## Import Library" + ] + }, + { + "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": [ + "from easydiffraction import Experiment\n", + "from easydiffraction import Project\n", + "from easydiffraction import SampleModel\n", + "from easydiffraction import download_from_repository" + ] + }, + { + "cell_type": "markdown", + "id": "4", + "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": "5", + "metadata": {}, + "outputs": [], + "source": [ + "model = SampleModel('hs')" + ] + }, + { + "cell_type": "markdown", + "id": "6", + "metadata": {}, + "source": [ + "#### Set Space Group" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7", + "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": "8", + "metadata": {}, + "source": [ + "#### Set Unit Cell" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9", + "metadata": {}, + "outputs": [], + "source": [ + "model.cell.length_a = 6.9\n", + "model.cell.length_c = 14.1" + ] + }, + { + "cell_type": "markdown", + "id": "10", + "metadata": {}, + "source": [ + "#### Set Atom Sites" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "11", + "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": "12", + "metadata": {}, + "source": [ + "#### Symmetry constraints\n", + "\n", + "Show CIF output before applying symmetry constraints." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "13", + "metadata": {}, + "outputs": [], + "source": [ + "model.show_as_cif()" + ] + }, + { + "cell_type": "markdown", + "id": "14", + "metadata": {}, + "source": [ + "Apply symmetry constraints." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "15", + "metadata": {}, + "outputs": [], + "source": [ + "model.apply_symmetry_constraints()" + ] + }, + { + "cell_type": "markdown", + "id": "16", + "metadata": {}, + "source": [ + "Show CIF output after applying symmetry constraints." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "17", + "metadata": {}, + "outputs": [], + "source": [ + "model.show_as_cif()" + ] + }, + { + "cell_type": "markdown", + "id": "18", + "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": "19", + "metadata": {}, + "outputs": [], + "source": [ + "download_from_repository('hrpt_hs.xye', destination='data')" + ] + }, + { + "cell_type": "markdown", + "id": "20", + "metadata": {}, + "source": [ + "#### Create Experiment" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "21", + "metadata": {}, + "outputs": [], + "source": [ + "expt = Experiment(name='hrpt', data_path='data/hrpt_hs.xye')" + ] + }, + { + "cell_type": "markdown", + "id": "22", + "metadata": {}, + "source": [ + "#### Set Instrument" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "23", + "metadata": {}, + "outputs": [], + "source": [ + "expt.instrument.setup_wavelength = 1.89\n", + "expt.instrument.calib_twotheta_offset = 0.0" + ] + }, + { + "cell_type": "markdown", + "id": "24", + "metadata": {}, + "source": [ + "#### Set Peak Profile" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "25", + "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": "26", + "metadata": {}, + "source": [ + "#### Set Background" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "27", + "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": "28", + "metadata": {}, + "source": [ + "#### Set Linked Phases" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "29", + "metadata": {}, + "outputs": [], + "source": [ + "expt.linked_phases.add('hs', scale=0.5)" + ] + }, + { + "cell_type": "markdown", + "id": "30", + "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": "31", + "metadata": {}, + "outputs": [], + "source": [ + "project = Project()" + ] + }, + { + "cell_type": "markdown", + "id": "32", + "metadata": {}, + "source": [ + "#### Set Plotting Engine" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "33", + "metadata": {}, + "outputs": [], + "source": [ + "project.plotter.engine = 'plotly'" + ] + }, + { + "cell_type": "markdown", + "id": "34", + "metadata": {}, + "source": [ + "#### Add Sample Model" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "35", + "metadata": {}, + "outputs": [], + "source": [ + "project.sample_models.add(model)" + ] + }, + { + "cell_type": "markdown", + "id": "36", + "metadata": {}, + "source": [ + "#### Add Experiment" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "37", + "metadata": {}, + "outputs": [], + "source": [ + "project.experiments.add(expt)" + ] + }, + { + "cell_type": "markdown", + "id": "38", + "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": "39", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.current_calculator = 'cryspy'" + ] + }, + { + "cell_type": "markdown", + "id": "40", + "metadata": {}, + "source": [ + "#### Set Minimizer" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "41", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.current_minimizer = 'lmfit (leastsq)'" + ] + }, + { + "cell_type": "markdown", + "id": "42", + "metadata": {}, + "source": [ + "#### Plot Measured vs Calculated" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "43", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='hrpt', show_residual=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "44", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='hrpt', x_min=48, x_max=51, show_residual=True)" + ] + }, + { + "cell_type": "markdown", + "id": "45", + "metadata": {}, + "source": [ + "### Perform Fit 1/5\n", + "\n", + "Set parameters to be refined." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "46", + "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": "47", + "metadata": {}, + "source": [ + "Show free parameters after selection." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "48", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.show_free_params()" + ] + }, + { + "cell_type": "markdown", + "id": "49", + "metadata": {}, + "source": [ + "#### Run Fitting" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "50", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.fit()" + ] + }, + { + "cell_type": "markdown", + "id": "51", + "metadata": {}, + "source": [ + "#### Plot Measured vs Calculated" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "52", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='hrpt', show_residual=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "53", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='hrpt', x_min=48, x_max=51, show_residual=True)" + ] + }, + { + "cell_type": "markdown", + "id": "54", + "metadata": {}, + "source": [ + "### Perform Fit 2/5\n", + "\n", + "Set more parameters to be refined." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "55", + "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": "56", + "metadata": {}, + "source": [ + "Show free parameters after selection." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "57", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.show_free_params()" + ] + }, + { + "cell_type": "markdown", + "id": "58", + "metadata": {}, + "source": [ + "#### Run Fitting" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "59", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.fit()" + ] + }, + { + "cell_type": "markdown", + "id": "60", + "metadata": {}, + "source": [ + "#### Plot Measured vs Calculated" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "61", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='hrpt', show_residual=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "62", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='hrpt', x_min=48, x_max=51, show_residual=True)" + ] + }, + { + "cell_type": "markdown", + "id": "63", + "metadata": {}, + "source": [ + "### Perform Fit 3/5\n", + "\n", + "Set more parameters to be refined." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "64", + "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": "65", + "metadata": {}, + "source": [ + "Show free parameters after selection." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "66", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.show_free_params()" + ] + }, + { + "cell_type": "markdown", + "id": "67", + "metadata": {}, + "source": [ + "#### Run Fitting" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "68", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.fit()" + ] + }, + { + "cell_type": "markdown", + "id": "69", + "metadata": {}, + "source": [ + "#### Plot Measured vs Calculated" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "70", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='hrpt', show_residual=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "71", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='hrpt', x_min=48, x_max=51, show_residual=True)" + ] + }, + { + "cell_type": "markdown", + "id": "72", + "metadata": {}, + "source": [ + "### Perform Fit 4/5\n", + "\n", + "Set more parameters to be refined." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "73", + "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": "74", + "metadata": {}, + "source": [ + "Show free parameters after selection." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "75", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.show_free_params()" + ] + }, + { + "cell_type": "markdown", + "id": "76", + "metadata": {}, + "source": [ + "#### Run Fitting" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "77", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.fit()" + ] + }, + { + "cell_type": "markdown", + "id": "78", + "metadata": {}, + "source": [ + "#### Plot Measured vs Calculated" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "79", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='hrpt', show_residual=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "80", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='hrpt', x_min=48, x_max=51, show_residual=True)" + ] + }, + { + "cell_type": "markdown", + "id": "81", + "metadata": {}, + "source": [ + "## Summary\n", + "\n", + "This final section shows how to review the results of the analysis." + ] + }, + { + "cell_type": "markdown", + "id": "82", + "metadata": {}, + "source": [ + "#### Show Project Summary" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "83", + "metadata": {}, + "outputs": [], + "source": [ + "project.summary.show_report()" + ] + } + ], + "metadata": { + "jupytext": { + "cell_metadata_filter": "tags,-all", + "main_language": "python", + "notebook_metadata_filter": "-all" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/tutorials/cryst-struct_pd-neut-cwl_HS-HRPT.py b/tutorials/cryst-struct_pd-neut-cwl_HS-HRPT.py index 61f7275b..4d1c0118 100644 --- a/tutorials/cryst-struct_pd-neut-cwl_HS-HRPT.py +++ b/tutorials/cryst-struct_pd-neut-cwl_HS-HRPT.py @@ -7,13 +7,23 @@ # %% [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 ( - 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 @@ -78,15 +88,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 @@ -175,13 +183,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 @@ -211,13 +216,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 @@ -249,13 +251,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 @@ -285,13 +284,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 @@ -321,13 +317,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 @@ -338,4 +331,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 new file mode 100644 index 00000000..74787584 --- /dev/null +++ b/tutorials/cryst-struct_pd-neut-tof_Si-SEPD.ipynb @@ -0,0 +1,785 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "0", + "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": "1", + "metadata": {}, + "source": [ + "## Import Library" + ] + }, + { + "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": [ + "from easydiffraction import Experiment\n", + "from easydiffraction import Project\n", + "from easydiffraction import SampleModel\n", + "from easydiffraction import download_from_repository" + ] + }, + { + "cell_type": "markdown", + "id": "4", + "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": "5", + "metadata": {}, + "outputs": [], + "source": [ + "model = SampleModel('si')" + ] + }, + { + "cell_type": "markdown", + "id": "6", + "metadata": {}, + "source": [ + "#### Set Space Group" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7", + "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": "8", + "metadata": {}, + "source": [ + "#### Set Unit Cell" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9", + "metadata": {}, + "outputs": [], + "source": [ + "model.cell.length_a = 5.431" + ] + }, + { + "cell_type": "markdown", + "id": "10", + "metadata": {}, + "source": [ + "#### Set Atom Sites" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "11", + "metadata": {}, + "outputs": [], + "source": [ + "model.atom_sites.add('Si', 'Si', 0.125, 0.125, 0.125, b_iso=0.5)" + ] + }, + { + "cell_type": "markdown", + "id": "12", + "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": "13", + "metadata": {}, + "outputs": [], + "source": [ + "download_from_repository('sepd_si.xye', destination='data')" + ] + }, + { + "cell_type": "markdown", + "id": "14", + "metadata": {}, + "source": [ + "#### Create Experiment" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "15", + "metadata": {}, + "outputs": [], + "source": [ + "expt = Experiment('sepd', beam_mode='time-of-flight', data_path='data/sepd_si.xye')" + ] + }, + { + "cell_type": "markdown", + "id": "16", + "metadata": {}, + "source": [ + "#### Set Instrument" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "17", + "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": "18", + "metadata": {}, + "source": [ + "#### Set Peak Profile" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "19", + "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": "20", + "metadata": {}, + "source": [ + "#### Set Peak Asymmetry" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "21", + "metadata": {}, + "outputs": [], + "source": [ + "expt.peak.asym_alpha_0 = 0.0\n", + "expt.peak.asym_alpha_1 = 0.5971" + ] + }, + { + "cell_type": "markdown", + "id": "22", + "metadata": {}, + "source": [ + "#### Set Background" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "23", + "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": "24", + "metadata": {}, + "source": [ + "#### Set Linked Phases" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "25", + "metadata": {}, + "outputs": [], + "source": [ + "expt.linked_phases.add('si', scale=10.0)" + ] + }, + { + "cell_type": "markdown", + "id": "26", + "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": "27", + "metadata": {}, + "outputs": [], + "source": [ + "project = Project()" + ] + }, + { + "cell_type": "markdown", + "id": "28", + "metadata": {}, + "source": [ + "#### Set Plotting Engine" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "29", + "metadata": {}, + "outputs": [], + "source": [ + "project.plotter.engine = 'plotly'" + ] + }, + { + "cell_type": "markdown", + "id": "30", + "metadata": {}, + "source": [ + "#### Add Sample Model" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "31", + "metadata": {}, + "outputs": [], + "source": [ + "project.sample_models.add(model)" + ] + }, + { + "cell_type": "markdown", + "id": "32", + "metadata": {}, + "source": [ + "#### Add Experiment" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "33", + "metadata": {}, + "outputs": [], + "source": [ + "project.experiments.add(expt)" + ] + }, + { + "cell_type": "markdown", + "id": "34", + "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": "35", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.current_calculator = 'cryspy'" + ] + }, + { + "cell_type": "markdown", + "id": "36", + "metadata": {}, + "source": [ + "#### Set Minimizer" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "37", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.current_minimizer = 'lmfit (leastsq)'" + ] + }, + { + "cell_type": "markdown", + "id": "38", + "metadata": {}, + "source": [ + "#### Plot Measured vs Calculated" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "39", + "metadata": {}, + "outputs": [], + "source": [ + "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)" + ] + }, + { + "cell_type": "markdown", + "id": "40", + "metadata": {}, + "source": [ + "### Perform Fit 1/5\n", + "\n", + "Set parameters to be refined." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "41", + "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": "42", + "metadata": {}, + "source": [ + "Show free parameters after selection." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "43", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.show_free_params()" + ] + }, + { + "cell_type": "markdown", + "id": "44", + "metadata": {}, + "source": [ + "#### Run Fitting" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "45", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.fit()" + ] + }, + { + "cell_type": "markdown", + "id": "46", + "metadata": {}, + "source": [ + "#### Plot Measured vs Calculated" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "47", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='sepd', show_residual=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "48", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='sepd', x_min=23200, x_max=23700, show_residual=True)" + ] + }, + { + "cell_type": "markdown", + "id": "49", + "metadata": {}, + "source": [ + "### Perform Fit 2/5\n", + "\n", + "Set more parameters to be refined." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "50", + "metadata": {}, + "outputs": [], + "source": [ + "for point in expt.background:\n", + " point.y.free = True" + ] + }, + { + "cell_type": "markdown", + "id": "51", + "metadata": {}, + "source": [ + "Show free parameters after selection." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "52", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.show_free_params()" + ] + }, + { + "cell_type": "markdown", + "id": "53", + "metadata": {}, + "source": [ + "#### Run Fitting" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "54", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.fit()" + ] + }, + { + "cell_type": "markdown", + "id": "55", + "metadata": {}, + "source": [ + "#### Plot Measured vs Calculated" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "56", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='sepd', show_residual=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "57", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='sepd', x_min=23200, x_max=23700, show_residual=True)" + ] + }, + { + "cell_type": "markdown", + "id": "58", + "metadata": {}, + "source": [ + "### Perform Fit 3/5\n", + "\n", + "Fix background points." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "59", + "metadata": {}, + "outputs": [], + "source": [ + "for point in expt.background:\n", + " point.y.free = False" + ] + }, + { + "cell_type": "markdown", + "id": "60", + "metadata": {}, + "source": [ + "Set more parameters to be refined." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "61", + "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": "62", + "metadata": {}, + "source": [ + "Show free parameters after selection." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "63", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.show_free_params()" + ] + }, + { + "cell_type": "markdown", + "id": "64", + "metadata": {}, + "source": [ + "#### Run Fitting" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "65", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.fit()" + ] + }, + { + "cell_type": "markdown", + "id": "66", + "metadata": {}, + "source": [ + "#### Plot Measured vs Calculated" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "67", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='sepd', show_residual=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "68", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='sepd', x_min=23200, x_max=23700, show_residual=True)" + ] + }, + { + "cell_type": "markdown", + "id": "69", + "metadata": {}, + "source": [ + "### Perform Fit 4/5\n", + "\n", + "Set more parameters to be refined." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "70", + "metadata": {}, + "outputs": [], + "source": [ + "model.atom_sites['Si'].b_iso.free = True" + ] + }, + { + "cell_type": "markdown", + "id": "71", + "metadata": {}, + "source": [ + "Show free parameters after selection." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "72", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.show_free_params()" + ] + }, + { + "cell_type": "markdown", + "id": "73", + "metadata": {}, + "source": [ + "#### Run Fitting" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "74", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.fit()" + ] + }, + { + "cell_type": "markdown", + "id": "75", + "metadata": {}, + "source": [ + "#### Plot Measured vs Calculated" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "76", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='sepd', show_residual=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "77", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='sepd', x_min=23200, x_max=23700, show_residual=True)" + ] + } + ], + "metadata": { + "jupytext": { + "cell_metadata_filter": "tags,-all", + "main_language": "python", + "notebook_metadata_filter": "-all" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/tutorials/cryst-struct_pd-neut-tof_Si-SEPD.py b/tutorials/cryst-struct_pd-neut-tof_Si-SEPD.py index d97876dc..b24f645c 100644 --- a/tutorials/cryst-struct_pd-neut-tof_Si-SEPD.py +++ b/tutorials/cryst-struct_pd-neut-tof_Si-SEPD.py @@ -7,13 +7,23 @@ # %% [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 ( - 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 @@ -53,16 +63,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 @@ -155,11 +162,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 @@ -188,13 +192,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 @@ -221,13 +222,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 @@ -262,13 +260,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 @@ -294,10 +289,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 new file mode 100644 index 00000000..1823e82f --- /dev/null +++ b/tutorials/cryst-struct_pd-neut-tof_multidata_NCAF-WISH.ipynb @@ -0,0 +1,735 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "0", + "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": "1", + "metadata": {}, + "source": [ + "## Import Library" + ] + }, + { + "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": [ + "from easydiffraction import Experiment\n", + "from easydiffraction import Project\n", + "from easydiffraction import SampleModel\n", + "from easydiffraction import download_from_repository" + ] + }, + { + "cell_type": "markdown", + "id": "4", + "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": "5", + "metadata": {}, + "outputs": [], + "source": [ + "model = SampleModel('ncaf')" + ] + }, + { + "cell_type": "markdown", + "id": "6", + "metadata": {}, + "source": [ + "#### Set Space Group" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7", + "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": "8", + "metadata": {}, + "source": [ + "#### Set Unit Cell" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9", + "metadata": {}, + "outputs": [], + "source": [ + "model.cell.length_a = 10.250256" + ] + }, + { + "cell_type": "markdown", + "id": "10", + "metadata": {}, + "source": [ + "#### Set Atom Sites" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "11", + "metadata": {}, + "outputs": [], + "source": [ + "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": "12", + "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": "13", + "metadata": {}, + "outputs": [], + "source": [ + "download_from_repository(\n", + " 'wish_ncaf_5_6.xys',\n", + " destination='data',\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "14", + "metadata": {}, + "outputs": [], + "source": [ + "download_from_repository(\n", + " 'wish_ncaf_4_7.xys',\n", + " destination='data',\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "15", + "metadata": {}, + "source": [ + "#### Create Experiment" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "16", + "metadata": {}, + "outputs": [], + "source": [ + "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": "17", + "metadata": {}, + "outputs": [], + "source": [ + "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": "18", + "metadata": {}, + "source": [ + "#### Set Instrument" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "19", + "metadata": {}, + "outputs": [], + "source": [ + "expt56.instrument.setup_twotheta_bank = 152.827\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": "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 = 18660.0\n", + "expt47.instrument.calib_d_to_tof_quad = -0.47488" + ] + }, + { + "cell_type": "markdown", + "id": "21", + "metadata": {}, + "source": [ + "#### Set Peak Profile" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "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.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.0094\n", + "expt56.peak.asym_alpha_1 = 0.1" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "23", + "metadata": {}, + "outputs": [], + "source": [ + "expt47.peak.broad_gauss_sigma_0 = 0.0\n", + "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": "24", + "metadata": {}, + "source": [ + "#### Set Background" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "25", + "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": "26", + "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": "27", + "metadata": {}, + "source": [ + "#### Set Linked Phases" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "28", + "metadata": {}, + "outputs": [], + "source": [ + "expt56.linked_phases.add('ncaf', scale=1.0)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "29", + "metadata": {}, + "outputs": [], + "source": [ + "expt47.linked_phases.add('ncaf', scale=2.0)" + ] + }, + { + "cell_type": "markdown", + "id": "30", + "metadata": {}, + "source": [ + "#### Set Excluded Regions" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "31", + "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": "32", + "metadata": {}, + "outputs": [], + "source": [ + "expt47.excluded_regions.add(minimum=0, maximum=10006)\n", + "expt47.excluded_regions.add(minimum=100004, maximum=200000)" + ] + }, + { + "cell_type": "markdown", + "id": "33", + "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": "34", + "metadata": {}, + "outputs": [], + "source": [ + "project = Project()" + ] + }, + { + "cell_type": "markdown", + "id": "35", + "metadata": {}, + "source": [ + "#### Set Plotting Engine" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "36", + "metadata": {}, + "outputs": [], + "source": [ + "project.plotter.engine = 'plotly'" + ] + }, + { + "cell_type": "markdown", + "id": "37", + "metadata": {}, + "source": [ + "#### Add Sample Model" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "38", + "metadata": {}, + "outputs": [], + "source": [ + "project.sample_models.add(model)" + ] + }, + { + "cell_type": "markdown", + "id": "39", + "metadata": {}, + "source": [ + "#### Add Experiment" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "40", + "metadata": {}, + "outputs": [], + "source": [ + "project.experiments.add(expt56)\n", + "project.experiments.add(expt47)" + ] + }, + { + "cell_type": "markdown", + "id": "41", + "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": "42", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.current_calculator = 'cryspy'" + ] + }, + { + "cell_type": "markdown", + "id": "43", + "metadata": {}, + "source": [ + "#### Set Minimizer" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "44", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.current_minimizer = 'lmfit (leastsq)'" + ] + }, + { + "cell_type": "markdown", + "id": "45", + "metadata": {}, + "source": [ + "#### Set Fit Mode" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "46", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.fit_mode = 'joint'" + ] + }, + { + "cell_type": "markdown", + "id": "47", + "metadata": {}, + "source": [ + "#### Set Free Parameters" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "48", + "metadata": {}, + "outputs": [], + "source": [ + "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": "49", + "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_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_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_1.free = True" + ] + }, + { + "cell_type": "markdown", + "id": "50", + "metadata": {}, + "source": [ + "#### Plot Measured vs Calculated" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "51", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='wish_5_6', show_residual=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "52", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='wish_4_7', show_residual=True)" + ] + }, + { + "cell_type": "markdown", + "id": "53", + "metadata": {}, + "source": [ + "#### Run Fitting" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "54", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.fit()" + ] + }, + { + "cell_type": "markdown", + "id": "55", + "metadata": {}, + "source": [ + "#### Plot Measured vs Calculated" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "56", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='wish_5_6', show_residual=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "57", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='wish_4_7', show_residual=True)" + ] + }, + { + "cell_type": "markdown", + "id": "58", + "metadata": {}, + "source": [ + "## Summary\n", + "\n", + "This final section shows how to review the results of the analysis." + ] + }, + { + "cell_type": "markdown", + "id": "59", + "metadata": {}, + "source": [ + "#### Show Project Summary" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "60", + "metadata": {}, + "outputs": [], + "source": [ + "project.summary.show_report()" + ] + } + ], + "metadata": { + "jupytext": { + "cell_metadata_filter": "tags,-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.py b/tutorials/cryst-struct_pd-neut-tof_multidata_NCAF-WISH.py index d0221244..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,13 +10,23 @@ # %% [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 ( - 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 @@ -45,12 +55,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 @@ -61,33 +71,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] @@ -96,20 +120,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 @@ -144,7 +168,7 @@ (74204, 262), (82103, 268), (91958, 268), - (102712, 262) + (102712, 262), ]: expt56.background.add(x, y) @@ -177,7 +201,7 @@ (75002, 258), (83649, 257), (92770, 255), - (101524, 260) + (101524, 260), ]: expt47.background.add(x, y) @@ -258,17 +282,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 @@ -283,17 +296,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] 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..36f14857 --- /dev/null +++ b/tutorials/cryst-struct_pd-neut-tof_multiphase-LBCO-Si_McStas.ipynb @@ -0,0 +1,752 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "0", + "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": "1", + "metadata": {}, + "source": [ + "## Import Library" + ] + }, + { + "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": [ + "from easydiffraction import Experiment\n", + "from easydiffraction import Project\n", + "from easydiffraction import SampleModel\n", + "from easydiffraction import download_from_repository" + ] + }, + { + "cell_type": "markdown", + "id": "4", + "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": "5", + "metadata": {}, + "outputs": [], + "source": [ + "model_1 = SampleModel('lbco')" + ] + }, + { + "cell_type": "markdown", + "id": "6", + "metadata": {}, + "source": [ + "#### Set Space Group" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7", + "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": "8", + "metadata": {}, + "source": [ + "#### Set Unit Cell" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9", + "metadata": {}, + "outputs": [], + "source": [ + "model_1.cell.length_a = 3.8909" + ] + }, + { + "cell_type": "markdown", + "id": "10", + "metadata": {}, + "source": [ + "#### Set Atom Sites" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "11", + "metadata": {}, + "outputs": [], + "source": [ + "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", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "12", + "metadata": {}, + "source": [ + "### Create Sample Model 2: Si" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "13", + "metadata": {}, + "outputs": [], + "source": [ + "model_2 = SampleModel('si')" + ] + }, + { + "cell_type": "markdown", + "id": "14", + "metadata": {}, + "source": [ + "#### Set Space Group" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "15", + "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": "16", + "metadata": {}, + "source": [ + "#### Set Unit Cell" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "17", + "metadata": {}, + "outputs": [], + "source": [ + "model_2.cell.length_a = 5.43146" + ] + }, + { + "cell_type": "markdown", + "id": "18", + "metadata": {}, + "source": [ + "#### Set Atom Sites" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "19", + "metadata": {}, + "outputs": [], + "source": [ + "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", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "20", + "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": "21", + "metadata": {}, + "outputs": [], + "source": [ + "download_from_repository('mcstas_lbco-si.xye', destination='data')" + ] + }, + { + "cell_type": "markdown", + "id": "22", + "metadata": {}, + "source": [ + "#### Create Experiment" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "23", + "metadata": {}, + "outputs": [], + "source": [ + "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", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "24", + "metadata": {}, + "source": [ + "#### Set Instrument" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "25", + "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": "26", + "metadata": {}, + "source": [ + "#### Set Peak Profile" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "27", + "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": "28", + "metadata": {}, + "source": [ + "#### Set Background" + ] + }, + { + "cell_type": "markdown", + "id": "29", + "metadata": {}, + "source": [ + "Select the background type." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "30", + "metadata": {}, + "outputs": [], + "source": [ + "experiment.background_type = 'line-segment'" + ] + }, + { + "cell_type": "markdown", + "id": "31", + "metadata": {}, + "source": [ + "Add background points." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "32", + "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": "33", + "metadata": {}, + "source": [ + "#### Set Linked Phases" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "34", + "metadata": {}, + "outputs": [], + "source": [ + "experiment.linked_phases.add('lbco', scale=4.0)\n", + "experiment.linked_phases.add('si', scale=0.2)" + ] + }, + { + "cell_type": "markdown", + "id": "35", + "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": "36", + "metadata": {}, + "outputs": [], + "source": [ + "project = Project()" + ] + }, + { + "cell_type": "markdown", + "id": "37", + "metadata": {}, + "source": [ + "#### Set Plotting Engine" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "38", + "metadata": {}, + "outputs": [], + "source": [ + "project.plotter.engine = 'plotly'" + ] + }, + { + "cell_type": "markdown", + "id": "39", + "metadata": {}, + "source": [ + "#### Add Sample Models" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "40", + "metadata": {}, + "outputs": [], + "source": [ + "project.sample_models.add(model_1)\n", + "project.sample_models.add(model_2)" + ] + }, + { + "cell_type": "markdown", + "id": "41", + "metadata": {}, + "source": [ + "#### Show Sample Models" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "42", + "metadata": {}, + "outputs": [], + "source": [ + "project.sample_models.show_names()" + ] + }, + { + "cell_type": "markdown", + "id": "43", + "metadata": {}, + "source": [ + "#### Add Experiments" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "44", + "metadata": {}, + "outputs": [], + "source": [ + "project.experiments.add(experiment)" + ] + }, + { + "cell_type": "markdown", + "id": "45", + "metadata": {}, + "source": [ + "#### Set Excluded Regions\n", + "\n", + "Show measured data as loaded from the file." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "46", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas(expt_name='mcstas')" + ] + }, + { + "cell_type": "markdown", + "id": "47", + "metadata": {}, + "source": [ + "Add excluded regions." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "48", + "metadata": {}, + "outputs": [], + "source": [ + "experiment.excluded_regions.add(minimum=0, maximum=40000)\n", + "experiment.excluded_regions.add(minimum=108000, maximum=200000)" + ] + }, + { + "cell_type": "markdown", + "id": "49", + "metadata": {}, + "source": [ + "Show excluded regions." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "50", + "metadata": {}, + "outputs": [], + "source": [ + "experiment.excluded_regions.show()" + ] + }, + { + "cell_type": "markdown", + "id": "51", + "metadata": {}, + "source": [ + "Show measured data after adding excluded regions." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "52", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas(expt_name='mcstas')" + ] + }, + { + "cell_type": "markdown", + "id": "53", + "metadata": {}, + "source": [ + "Show experiment as CIF." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "54", + "metadata": {}, + "outputs": [], + "source": [ + "project.experiments['mcstas'].show_as_cif()" + ] + }, + { + "cell_type": "markdown", + "id": "55", + "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": "56", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.current_calculator = 'cryspy'" + ] + }, + { + "cell_type": "markdown", + "id": "57", + "metadata": {}, + "source": [ + "#### Set Minimizer" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "58", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.current_minimizer = 'lmfit (leastsq)'" + ] + }, + { + "cell_type": "markdown", + "id": "59", + "metadata": {}, + "source": [ + "#### Set Fitting Parameters\n", + "\n", + "Set sample model parameters to be optimized." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "60", + "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": "61", + "metadata": {}, + "source": [ + "Set experiment parameters to be optimized." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "62", + "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": "63", + "metadata": {}, + "source": [ + "#### Perform Fit" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "64", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.fit()" + ] + }, + { + "cell_type": "markdown", + "id": "65", + "metadata": {}, + "source": [ + "#### Plot Measured vs Calculated" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "66", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='mcstas')" + ] + } + ], + "metadata": { + "jupytext": { + "cell_metadata_filter": "tags,-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.py b/tutorials/cryst-struct_pd-neut-tof_multiphase-LBCO-Si_McStas.py index e3194813..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,13 +8,23 @@ # %% [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 ( - 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 @@ -43,10 +53,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 @@ -71,7 +115,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 @@ -82,19 +134,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 @@ -109,7 +162,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 c2e2bcc3..fb94399c 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": "0", "metadata": {}, "source": [ "# Fitting Powder Diffraction data\n", @@ -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": "27d634f9", - "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": "39452a0a", + "id": "4", "metadata": {}, "outputs": [], "source": [ @@ -58,7 +81,7 @@ }, { "cell_type": "markdown", - "id": "de7344ae", + "id": "5", "metadata": {}, "source": [ "## 📘 Introduction: Simple Reference Fit – Si\n", @@ -86,16 +109,16 @@ { "cell_type": "code", "execution_count": null, - "id": "d4df77ab", + "id": "6", "metadata": {}, "outputs": [], "source": [ - "project_1 = ed.Project(name=\"reference\")" + "project_1 = ed.Project(name='reference')" ] }, { "cell_type": "markdown", - "id": "9c16f90a", + "id": "7", "metadata": {}, "source": [ "\n", @@ -108,17 +131,17 @@ { "cell_type": "code", "execution_count": null, - "id": "13f93ea5", + "id": "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.'" ] }, { "cell_type": "markdown", - "id": "e49ee0be", + "id": "9", "metadata": {}, "source": [ "### 🔬 Create an Experiment\n", @@ -130,52 +153,71 @@ "\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": "a10e717b", + "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',\n", - " branch='d-spacing',\n", - " 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": "72e414a2", + "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": "ca21bf10", + "id": "14", "metadata": {}, "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", ")" ] }, { "cell_type": "markdown", - "id": "7e863800", + "id": "15", "metadata": {}, "source": [ "#### Inspect Measured Data\n", @@ -189,35 +231,22 @@ "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": "6afc3669", + "id": "16", "metadata": {}, "outputs": [], "source": [ - "project_1.plotter.engine = \"plotly\"" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "e9799813", - "metadata": {}, - "outputs": [], - "source": [ - "project_1.plot_meas(expt_name=\"sim_si\")" + "project_1.plot_meas(expt_name='sim_si')" ] }, { "cell_type": "markdown", - "id": "6bc5c82b", + "id": "17", "metadata": {}, "source": [ "If you zoom in on the highest TOF peak (around 120,000 μs), you will notice\n", @@ -232,17 +261,17 @@ { "cell_type": "code", "execution_count": null, - "id": "20906b9f", + "id": "18", "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)" ] }, { "cell_type": "markdown", - "id": "b78e8f4f", + "id": "19", "metadata": {}, "source": [ "To visualize the effect of excluding the high TOF region, we can plot\n", @@ -253,16 +282,16 @@ { "cell_type": "code", "execution_count": null, - "id": "6ba0a364", + "id": "20", "metadata": {}, "outputs": [], "source": [ - "project_1.plot_meas(expt_name=\"sim_si\")" + "project_1.plot_meas(expt_name='sim_si')" ] }, { "cell_type": "markdown", - "id": "24c7b130", + "id": "21", "metadata": {}, "source": [ "#### Set Instrument Parameters\n", @@ -285,21 +314,17 @@ { "cell_type": "code", "execution_count": null, - "id": "c6eeee77", + "id": "22", "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')" ] }, { "cell_type": "markdown", - "id": "4650b60e", + "id": "23", "metadata": {}, "source": [ "Every parameters is an object, which has different attributes, such as\n", @@ -312,16 +337,16 @@ { "cell_type": "code", "execution_count": null, - "id": "34ce6882", + "id": "24", "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)" ] }, { "cell_type": "markdown", - "id": "bedc3ecb", + "id": "25", "metadata": {}, "source": [ "The `value` attribute represents the current value of the parameter as a float.\n", @@ -335,16 +360,16 @@ { "cell_type": "code", "execution_count": null, - "id": "9f63737c", + "id": "26", "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)" ] }, { "cell_type": "markdown", - "id": "e0efac03", + "id": "27", "metadata": {}, "source": [ "Note that to set the value of the parameter, you can simply assign a new value\n", @@ -353,7 +378,7 @@ }, { "cell_type": "markdown", - "id": "76654ebc", + "id": "28", "metadata": {}, "source": [ "#### Set Peak Profile Parameters\n", @@ -370,30 +395,30 @@ "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": "c8186523", + "id": "29", "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" ] }, { "cell_type": "markdown", - "id": "29c73787", + "id": "30", "metadata": {}, "source": [ "#### Set Background\n", @@ -427,23 +452,23 @@ { "cell_type": "code", "execution_count": null, - "id": "9e44db58", + "id": "31", "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)" ] }, { "cell_type": "markdown", - "id": "c2577d1e", + "id": "32", "metadata": {}, "source": [ "### 🧩 Create a Sample Model – Si\n", @@ -485,7 +510,7 @@ }, { "cell_type": "markdown", - "id": "9d516e9f", + "id": "33", "metadata": {}, "source": [ "```\n", @@ -517,7 +542,7 @@ }, { "cell_type": "markdown", - "id": "0da19b61", + "id": "34", "metadata": {}, "source": [ "\n", @@ -531,16 +556,16 @@ { "cell_type": "code", "execution_count": null, - "id": "cfb3312b", + "id": "35", "metadata": {}, "outputs": [], "source": [ - "project_1.sample_models.add(name=\"si\")" + "project_1.sample_models.add(name='si')" ] }, { "cell_type": "markdown", - "id": "34c913ef", + "id": "36", "metadata": {}, "source": [ "#### Set Space Group" @@ -549,17 +574,17 @@ { "cell_type": "code", "execution_count": null, - "id": "015ba947", + "id": "37", "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'" ] }, { "cell_type": "markdown", - "id": "d53cf8ce", + "id": "38", "metadata": {}, "source": [ "#### Set Lattice Parameters" @@ -568,16 +593,16 @@ { "cell_type": "code", "execution_count": null, - "id": "27761086", + "id": "39", "metadata": {}, "outputs": [], "source": [ - "project_1.sample_models[\"si\"].cell.length_a = 5.43" + "project_1.sample_models['si'].cell.length_a = 5.43" ] }, { "cell_type": "markdown", - "id": "e6065014", + "id": "40", "metadata": {}, "source": [ "#### Set Atom Sites" @@ -586,46 +611,47 @@ { "cell_type": "code", "execution_count": null, - "id": "119f9be6", + "id": "41", "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", ")" ] }, { "cell_type": "markdown", - "id": "eac3ad98", + "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": "3e3d07ef", + "id": "43", "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)" ] }, { "cell_type": "markdown", - "id": "ab759622", + "id": "44", "metadata": {}, "source": [ "### 🚀 Analyze and Fit the Data\n", @@ -657,27 +683,27 @@ { "cell_type": "code", "execution_count": null, - "id": "65841d67", + "id": "45", "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" ] }, { "cell_type": "markdown", - "id": "26d062b7", + "id": "46", "metadata": {}, "source": [ "#### Show Free Parameters\n", @@ -689,7 +715,7 @@ { "cell_type": "code", "execution_count": null, - "id": "2797d279", + "id": "47", "metadata": {}, "outputs": [], "source": [ @@ -698,7 +724,7 @@ }, { "cell_type": "markdown", - "id": "b2e021c6", + "id": "48", "metadata": {}, "source": [ "#### Visualize Diffraction Patterns\n", @@ -714,16 +740,16 @@ { "cell_type": "code", "execution_count": null, - "id": "fb1db679", + "id": "49", "metadata": {}, "outputs": [], "source": [ - "project_1.plot_meas_vs_calc(expt_name=\"sim_si\")" + "project_1.plot_meas_vs_calc(expt_name='sim_si')" ] }, { "cell_type": "markdown", - "id": "ae971c1d", + "id": "50", "metadata": {}, "source": [ "#### Run Fitting\n", @@ -735,7 +761,7 @@ { "cell_type": "code", "execution_count": null, - "id": "5916a649", + "id": "51", "metadata": {}, "outputs": [], "source": [ @@ -744,7 +770,7 @@ }, { "cell_type": "markdown", - "id": "4e198a2c", + "id": "52", "metadata": {}, "source": [ "#### Check Fit Results\n", @@ -762,7 +788,7 @@ }, { "cell_type": "markdown", - "id": "fbd01da5", + "id": "53", "metadata": {}, "source": [ "#### Visualize Fit Results\n", @@ -776,16 +802,16 @@ { "cell_type": "code", "execution_count": null, - "id": "5d596863", + "id": "54", "metadata": {}, "outputs": [], "source": [ - "project_1.plot_meas_vs_calc(expt_name=\"sim_si\")" + "project_1.plot_meas_vs_calc(expt_name='sim_si')" ] }, { "cell_type": "markdown", - "id": "fefbfd89", + "id": "55", "metadata": {}, "source": [ "#### TOF vs d-spacing\n", @@ -804,16 +830,16 @@ { "cell_type": "code", "execution_count": null, - "id": "b474d68e", + "id": "56", "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)" ] }, { "cell_type": "markdown", - "id": "119e0b7d", + "id": "57", "metadata": {}, "source": [ "As you can see, the calculated diffraction pattern now matches the measured\n", @@ -848,20 +874,18 @@ { "cell_type": "code", "execution_count": null, - "id": "1adef8dd", + "id": "58", "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.'" ] }, { "cell_type": "markdown", - "id": "3c5d72c6", + "id": "59", "metadata": {}, "source": [ "### 🔬 Exercise 2: Define an Experiment\n", @@ -880,46 +904,42 @@ { "cell_type": "code", "execution_count": null, - "id": "4b0a255f", + "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',\n", - " branch='d-spacing',\n", - " destination='data')" + "lbco_xye_path = '../4-reduction/reduced_LBCO.xye'" ] }, { "cell_type": "code", "execution_count": null, - "id": "97ffee5d", + "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": "4e46b573", + "id": "62", "metadata": {}, "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", ")" ] }, { "cell_type": "markdown", - "id": "1ba9926f", + "id": "63", "metadata": {}, "source": [ "#### Exercise 2.1: Inspect Measured Data\n", @@ -939,38 +959,37 @@ { "cell_type": "code", "execution_count": null, - "id": "12d28523", + "id": "64", "metadata": {}, "outputs": [], "source": [ - "project_2.plotter.engine = \"plotly\"\n", - "project_2.plot_meas(expt_name=\"sim_lbco\")" + "project_2.plot_meas(expt_name='sim_lbco')" ] }, { "cell_type": "code", "execution_count": null, - "id": "41d33b71", + "id": "65", "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)" ] }, { "cell_type": "code", "execution_count": null, - "id": "12f7332c", + "id": "66", "metadata": {}, "outputs": [], "source": [ - "project_2.plot_meas(expt_name=\"sim_lbco\")" + "project_2.plot_meas(expt_name='sim_lbco')" ] }, { "cell_type": "markdown", - "id": "f60fe31a", + "id": "67", "metadata": {}, "source": [ "#### Exercise 2.2: Set Instrument Parameters\n", @@ -986,21 +1005,17 @@ { "cell_type": "code", "execution_count": null, - "id": "0602dcef", + "id": "68", "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')" ] }, { "cell_type": "markdown", - "id": "bd97c6df", + "id": "69", "metadata": {}, "source": [ "#### Exercise 2.3: Set Peak Profile Parameters\n", @@ -1018,23 +1033,23 @@ { "cell_type": "code", "execution_count": null, - "id": "daec69f1", + "id": "70", "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" ] }, { "cell_type": "markdown", - "id": "36c7b0b6", + "id": "71", "metadata": {}, "source": [ "#### Exercise 2.4: Set Background\n", @@ -1053,23 +1068,23 @@ { "cell_type": "code", "execution_count": null, - "id": "a850fe96", + "id": "72", "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)" ] }, { "cell_type": "markdown", - "id": "aee720ab", + "id": "73", "metadata": {}, "source": [ "### 🧩 Exercise 3: Define a Sample Model – LBCO\n", @@ -1085,7 +1100,7 @@ }, { "cell_type": "markdown", - "id": "c357104b", + "id": "74", "metadata": {}, "source": [ "```\n", @@ -1120,7 +1135,7 @@ }, { "cell_type": "markdown", - "id": "fe7f787a", + "id": "75", "metadata": {}, "source": [ "#### Exercise 3.1: Create Sample Model\n", @@ -1136,16 +1151,16 @@ { "cell_type": "code", "execution_count": null, - "id": "a081e43a", + "id": "76", "metadata": {}, "outputs": [], "source": [ - "project_2.sample_models.add(name=\"lbco\")" + "project_2.sample_models.add(name='lbco')" ] }, { "cell_type": "markdown", - "id": "2aac3285", + "id": "77", "metadata": {}, "source": [ "#### Exercise 3.2: Set Space Group\n", @@ -1160,17 +1175,17 @@ { "cell_type": "code", "execution_count": null, - "id": "39c8b8fa", + "id": "78", "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'" ] }, { "cell_type": "markdown", - "id": "b80d50d5", + "id": "79", "metadata": {}, "source": [ "#### Exercise 3.3: Set Lattice Parameters\n", @@ -1185,16 +1200,16 @@ { "cell_type": "code", "execution_count": null, - "id": "87ff71a6", + "id": "80", "metadata": {}, "outputs": [], "source": [ - "project_2.sample_models[\"lbco\"].cell.length_a = 3.88" + "project_2.sample_models['lbco'].cell.length_a = 3.88" ] }, { "cell_type": "markdown", - "id": "863eb3c0", + "id": "81", "metadata": {}, "source": [ "#### Exercise 3.4: Set Atom Sites\n", @@ -1211,53 +1226,53 @@ { "cell_type": "code", "execution_count": null, - "id": "87a280a6", + "id": "82", "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", ")" ] }, { "cell_type": "markdown", - "id": "b5562be3", + "id": "83", "metadata": {}, "source": [ "### 🔗 Exercise 4: Assign Sample Model to Experiment\n", @@ -1272,16 +1287,16 @@ { "cell_type": "code", "execution_count": null, - "id": "e73c1d5b", + "id": "84", "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)" ] }, { "cell_type": "markdown", - "id": "f47971d2", + "id": "85", "metadata": {}, "source": [ "### 🚀 Exercise 5: Analyze and Fit the Data\n", @@ -1301,19 +1316,19 @@ { "cell_type": "code", "execution_count": null, - "id": "e66fa8cf", + "id": "86", "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" ] }, { "cell_type": "markdown", - "id": "8aab9cda", + "id": "87", "metadata": {}, "source": [ "#### Exercise 5.2: Run Fitting\n", @@ -1332,17 +1347,17 @@ { "cell_type": "code", "execution_count": null, - "id": "96d70a36", + "id": "88", "metadata": {}, "outputs": [], "source": [ - "project_2.plot_meas_vs_calc(expt_name=\"sim_lbco\")" + "project_2.plot_meas_vs_calc(expt_name='sim_lbco')" ] }, { "cell_type": "code", "execution_count": null, - "id": "c10a0430", + "id": "89", "metadata": {}, "outputs": [], "source": [ @@ -1351,7 +1366,7 @@ }, { "cell_type": "markdown", - "id": "21771dca", + "id": "90", "metadata": {}, "source": [ "#### Exercise 5.3: Find the Misfit in the Fit\n", @@ -1369,35 +1384,41 @@ "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", - "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", - "4. ❌ The background points affect the background level, but not the peak positions." + "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\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,\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": "b5ecdfce", + "id": "91", "metadata": {}, "outputs": [], "source": [ - "project_2.plot_meas_vs_calc(expt_name=\"sim_lbco\")" + "project_2.plot_meas_vs_calc(expt_name='sim_lbco')" ] }, { "cell_type": "markdown", - "id": "1ff89ab5", + "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**:" ] @@ -1405,17 +1426,17 @@ { "cell_type": "code", "execution_count": null, - "id": "4842e297", + "id": "93", "metadata": {}, "outputs": [], "source": [ - "project_2.sample_models[\"lbco\"].cell.length_a.free = True" + "project_2.sample_models['lbco'].cell.length_a.free = True" ] }, { "cell_type": "code", "execution_count": null, - "id": "ff756f2e", + "id": "94", "metadata": {}, "outputs": [], "source": [ @@ -1425,24 +1446,28 @@ { "cell_type": "code", "execution_count": null, - "id": "250674ea", + "id": "95", "metadata": {}, "outputs": [], "source": [ - "project_2.plot_meas_vs_calc(expt_name=\"sim_lbco\")" + "project_2.plot_meas_vs_calc(expt_name='sim_lbco')" ] }, { "cell_type": "markdown", - "id": "a86bee0a", + "id": "96", "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 the\n", + "lattice parameter can have a substantial impact on the quality of the fit." ] }, { "cell_type": "markdown", - "id": "39551f16", + "id": "97", "metadata": {}, "source": [ "#### Exercise 5.5: Visualize the Fit Results in d-spacing\n", @@ -1458,16 +1483,16 @@ { "cell_type": "code", "execution_count": null, - "id": "a55ad1c4", + "id": "98", "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)" ] }, { "cell_type": "markdown", - "id": "23d31ecc", + "id": "99", "metadata": {}, "source": [ "#### Exercise 5.6: Refine the Peak Profile Parameters\n", @@ -1486,16 +1511,16 @@ { "cell_type": "code", "execution_count": null, - "id": "8e54bf83", + "id": "100", "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)" ] }, { "cell_type": "markdown", - "id": "a2ef3e32", + "id": "101", "metadata": {}, "source": [ "The peak profile parameters are determined based on both the instrument\n", @@ -1515,23 +1540,23 @@ { "cell_type": "code", "execution_count": null, - "id": "0db388ec", + "id": "102", "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" ] }, { "cell_type": "code", "execution_count": null, - "id": "8102bbe9", + "id": "103", "metadata": {}, "outputs": [], "source": [ @@ -1541,16 +1566,16 @@ { "cell_type": "code", "execution_count": null, - "id": "c8e16df1", + "id": "104", "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)" ] }, { "cell_type": "markdown", - "id": "8eba2fac", + "id": "105", "metadata": {}, "source": [ "#### Exercise 5.7: Find Undefined Features\n", @@ -1559,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**:" ] @@ -1570,16 +1596,16 @@ { "cell_type": "code", "execution_count": null, - "id": "acb4ef20", + "id": "106", "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)" ] }, { "cell_type": "markdown", - "id": "640e35d9", + "id": "107", "metadata": {}, "source": [ "#### Exercise 5.8: Identify the Cause of the Unexplained Peaks\n", @@ -1592,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", @@ -1605,7 +1631,7 @@ }, { "cell_type": "markdown", - "id": "6cdbb630", + "id": "108", "metadata": {}, "source": [ "#### Exercise 5.9: Identify the impurity phase\n", @@ -1627,17 +1653,17 @@ { "cell_type": "code", "execution_count": null, - "id": "052ef93f", + "id": "109", "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)" ] }, { "cell_type": "markdown", - "id": "c1e12324", + "id": "110", "metadata": {}, "source": [ "#### Exercise 5.10: Create a Second Sample Model – Si as Impurity\n", @@ -1655,7 +1681,7 @@ }, { "cell_type": "markdown", - "id": "9f1a3666", + "id": "111", "metadata": {}, "source": [ "**Set Space Group**" @@ -1664,27 +1690,27 @@ { "cell_type": "code", "execution_count": null, - "id": "b971f115", + "id": "112", "metadata": {}, "outputs": [], "source": [ - "project_2.sample_models.add(name=\"si\")" + "project_2.sample_models.add(name='si')" ] }, { "cell_type": "code", "execution_count": null, - "id": "b8442af8", + "id": "113", "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'" ] }, { "cell_type": "markdown", - "id": "16d50271", + "id": "114", "metadata": {}, "source": [ "**Set Lattice Parameters**" @@ -1693,16 +1719,16 @@ { "cell_type": "code", "execution_count": null, - "id": "a47cb8e6", + "id": "115", "metadata": {}, "outputs": [], "source": [ - "project_2.sample_models[\"si\"].cell.length_a = 5.43" + "project_2.sample_models['si'].cell.length_a = 5.43" ] }, { "cell_type": "markdown", - "id": "41229e56", + "id": "116", "metadata": {}, "source": [ "**Set Atom Sites**" @@ -1711,24 +1737,24 @@ { "cell_type": "code", "execution_count": null, - "id": "8b4ae4bf", + "id": "117", "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", ")" ] }, { "cell_type": "markdown", - "id": "74b5370d", + "id": "118", "metadata": {}, "source": [ "**🔗 Assign Sample Model to Experiment**" @@ -1737,16 +1763,16 @@ { "cell_type": "code", "execution_count": null, - "id": "66970e6f", + "id": "119", "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)" ] }, { "cell_type": "markdown", - "id": "365840c4", + "id": "120", "metadata": {}, "source": [ "#### Exercise 5.11: Refine the Scale of the Si Phase\n", @@ -1772,16 +1798,16 @@ { "cell_type": "code", "execution_count": null, - "id": "bada2fb4", + "id": "121", "metadata": {}, "outputs": [], "source": [ - "project_2.plot_meas_vs_calc(expt_name=\"sim_lbco\")" + "project_2.plot_meas_vs_calc(expt_name='sim_lbco')" ] }, { "cell_type": "markdown", - "id": "ec0e0d50", + "id": "122", "metadata": {}, "source": [ "As you can see, the calculated pattern is now the sum of both phases,\n", @@ -1794,16 +1820,16 @@ { "cell_type": "code", "execution_count": null, - "id": "969cbfb1", + "id": "123", "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" ] }, { "cell_type": "markdown", - "id": "2db13c55", + "id": "124", "metadata": {}, "source": [ "**Run Fitting**\n", @@ -1814,7 +1840,7 @@ { "cell_type": "code", "execution_count": null, - "id": "ca1a63c5", + "id": "125", "metadata": {}, "outputs": [], "source": [ @@ -1823,58 +1849,61 @@ }, { "cell_type": "markdown", - "id": "1b85eafb", + "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": "668f5c29", + "id": "127", "metadata": {}, "outputs": [], "source": [ - "project_2.plot_meas_vs_calc(expt_name=\"sim_lbco\")" + "project_2.plot_meas_vs_calc(expt_name='sim_lbco')" ] }, { "cell_type": "code", "execution_count": null, - "id": "6f5f7afc", + "id": "128", "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)" ] }, { "cell_type": "markdown", - "id": "a418ffa1", + "id": "129", "metadata": {}, "source": [ - "All previously unexplained peaks are now accounted for in the pattern, and the fit is improved.\n", - "Some discrepancies in the peak intensities remain, but\n", + "All previously unexplained peaks are now accounted for in the pattern, and the\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", "#### 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 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": "07275b55", + "id": "130", "metadata": {}, "source": [ "## 🎁 Bonus\n", @@ -1892,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 a2511852..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 @@ -58,7 +63,7 @@ # other things. # %% -project_1 = ed.Project(name="reference") +project_1 = ed.Project(name='reference') # %% [markdown] # @@ -68,8 +73,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 @@ -81,23 +86,33 @@ # # 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( - 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, ) @@ -114,15 +129,9 @@ # # 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") +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 +143,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 +152,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 +172,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 +183,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 +194,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 @@ -210,18 +215,18 @@ # 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" -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 +257,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,44 +339,45 @@ # #### 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, ) # %% [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) +project_1.experiments['sim_si'].linked_phases.add(id='si', scale=1.0) # %% [markdown] # ### 🚀 Analyze and Fit the Data @@ -400,18 +406,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 +439,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 +472,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 +488,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 +520,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 @@ -534,20 +538,17 @@ # **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( - 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 +567,14 @@ # **Solution:** # %% -project_2.plotter.engine = "plotly" -project_2.plot_meas(expt_name="sim_lbco") +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 +587,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 +603,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 +626,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 +687,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 +699,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 +712,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 +726,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 +775,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 +792,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 +811,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() @@ -836,37 +832,47 @@ # 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 -# 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. - -# %% -project_2.plot_meas_vs_calc(expt_name="sim_lbco") +# 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. +# 4. ❌ The background points affect the background level, but not the peak +# positions. + +# %% +project_2.plot_meas_vs_calc(expt_name='sim_lbco') # %% [markdown] # #### Exercise 5.4: Refine the LBCO Lattice Parameter # # 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**: # %% -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. +# 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 @@ -879,7 +885,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 +901,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 +918,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 @@ -933,15 +939,16 @@ # 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**: # %% -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 @@ -954,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 @@ -981,8 +988,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 +1008,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 +1038,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 +1061,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 +1071,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** @@ -1078,27 +1085,30 @@ # **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") +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. -# Some discrepancies in the peak intensities remain, but +# 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. # # #### 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] diff --git a/tutorials/pdf_pd-neut-cwl_Ni.ipynb b/tutorials/pdf_pd-neut-cwl_Ni.ipynb new file mode 100644 index 00000000..454227ab --- /dev/null +++ b/tutorials/pdf_pd-neut-cwl_Ni.ipynb @@ -0,0 +1,257 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "0", + "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": "1", + "metadata": {}, + "source": [ + "## Import Library" + ] + }, + { + "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": [ + "import easydiffraction as ed" + ] + }, + { + "cell_type": "markdown", + "id": "4", + "metadata": {}, + "source": [ + "## Create Project" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5", + "metadata": {}, + "outputs": [], + "source": [ + "project = ed.Project()" + ] + }, + { + "cell_type": "markdown", + "id": "6", + "metadata": {}, + "source": [ + "## Set Plotting Engine" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7", + "metadata": {}, + "outputs": [], + "source": [ + "project.plotter.engine = 'plotly'" + ] + }, + { + "cell_type": "markdown", + "id": "8", + "metadata": {}, + "source": [ + "## Add Sample Model" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9", + "metadata": {}, + "outputs": [], + "source": [ + "project.sample_models.add(name='ni')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "10", + "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(\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", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "11", + "metadata": {}, + "source": [ + "## Add Experiment" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "12", + "metadata": {}, + "outputs": [], + "source": [ + "ed.download_from_repository('ni-q27r100-neutron_from-2.gr', destination='data')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "13", + "metadata": {}, + "outputs": [], + "source": [ + "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", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "14", + "metadata": {}, + "outputs": [], + "source": [ + "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", + "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": "15", + "metadata": {}, + "source": [ + "## Select Fitting Parameters" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "16", + "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": "17", + "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": "18", + "metadata": {}, + "source": [ + "## Run Fitting" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "19", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.current_calculator = 'pdffit'\n", + "project.analysis.fit()" + ] + }, + { + "cell_type": "markdown", + "id": "20", + "metadata": {}, + "source": [ + "## Plot Measured vs Calculated" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "21", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='pdf', show_residual=True)" + ] + } + ], + "metadata": { + "jupytext": { + "cell_metadata_filter": "tags,-all", + "main_language": "python", + "notebook_metadata_filter": "-all" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/tutorials/pdf_pd-neut-cwl_Ni.py b/tutorials/pdf_pd-neut-cwl_Ni.py index 30af3425..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 @@ -36,31 +48,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 +100,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 new file mode 100644 index 00000000..f11ab0f7 --- /dev/null +++ b/tutorials/pdf_pd-neut-tof_Si-NOMAD.ipynb @@ -0,0 +1,257 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "0", + "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": "1", + "metadata": {}, + "source": [ + "## Import Library" + ] + }, + { + "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": [ + "import easydiffraction as ed" + ] + }, + { + "cell_type": "markdown", + "id": "4", + "metadata": {}, + "source": [ + "## Create Project" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5", + "metadata": {}, + "outputs": [], + "source": [ + "project = ed.Project()" + ] + }, + { + "cell_type": "markdown", + "id": "6", + "metadata": {}, + "source": [ + "## Set Plotting Engine" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7", + "metadata": {}, + "outputs": [], + "source": [ + "project.plotter.engine = 'plotly'\n", + "project.plotter.x_max = 40" + ] + }, + { + "cell_type": "markdown", + "id": "8", + "metadata": {}, + "source": [ + "## Add Sample Model" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9", + "metadata": {}, + "outputs": [], + "source": [ + "project.sample_models.add(name='si')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "10", + "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', type_symbol='Si', fract_x=0, fract_y=0, fract_z=0, wyckoff_letter='a', b_iso=0.5)" + ] + }, + { + "cell_type": "markdown", + "id": "11", + "metadata": {}, + "source": [ + "## Add Experiment" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "12", + "metadata": {}, + "outputs": [], + "source": [ + "ed.download_from_repository('NOM_9999_Si_640g_PAC_50_ff_ftfrgr_up-to-50.gr', destination='data')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "13", + "metadata": {}, + "outputs": [], + "source": [ + "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", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "14", + "metadata": {}, + "outputs": [], + "source": [ + "experiment = project.experiments['nomad']\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", + "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": "15", + "metadata": {}, + "source": [ + "## Select Fitting Parameters" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "16", + "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": "17", + "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": "18", + "metadata": {}, + "source": [ + "## Run Fitting" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "19", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.current_calculator = 'pdffit'\n", + "project.analysis.fit()" + ] + }, + { + "cell_type": "markdown", + "id": "20", + "metadata": {}, + "source": [ + "## Plot Measured vs Calculated" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "21", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='nomad', show_residual=False)" + ] + } + ], + "metadata": { + "jupytext": { + "cell_metadata_filter": "tags,-all", + "main_language": "python", + "notebook_metadata_filter": "-all" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/tutorials/pdf_pd-neut-tof_Si-NOMAD.py b/tutorials/pdf_pd-neut-tof_Si-NOMAD.py index 6bc98f2f..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 @@ -35,32 +47,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 +100,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 new file mode 100644 index 00000000..c2dd4fd7 --- /dev/null +++ b/tutorials/pdf_pd-xray_NaCl.ipynb @@ -0,0 +1,301 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "0", + "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": "1", + "metadata": {}, + "source": [ + "## Import Library" + ] + }, + { + "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": [ + "import easydiffraction as ed" + ] + }, + { + "cell_type": "markdown", + "id": "4", + "metadata": {}, + "source": [ + "## Create Project" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5", + "metadata": {}, + "outputs": [], + "source": [ + "project = ed.Project()" + ] + }, + { + "cell_type": "markdown", + "id": "6", + "metadata": {}, + "source": [ + "## Set Plotting Engine" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7", + "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": "8", + "metadata": {}, + "source": [ + "## Add Sample Model" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9", + "metadata": {}, + "outputs": [], + "source": [ + "project.sample_models.add(name='nacl')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "10", + "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(\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", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "11", + "metadata": {}, + "source": [ + "## Add Experiment" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "12", + "metadata": {}, + "outputs": [], + "source": [ + "ed.download_from_repository('NaCl.gr', destination='data')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "13", + "metadata": {}, + "outputs": [], + "source": [ + "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", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "14", + "metadata": {}, + "outputs": [], + "source": [ + "project.experiments['xray_pdf'].show_supported_peak_profile_types()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "15", + "metadata": {}, + "outputs": [], + "source": [ + "project.experiments['xray_pdf'].show_current_peak_profile_type()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "16", + "metadata": {}, + "outputs": [], + "source": [ + "project.experiments['xray_pdf'].peak_profile_type = 'gaussian-damped-sinc'" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "17", + "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": "18", + "metadata": {}, + "outputs": [], + "source": [ + "project.experiments['xray_pdf'].linked_phases.add(id='nacl', scale=0.5)" + ] + }, + { + "cell_type": "markdown", + "id": "19", + "metadata": {}, + "source": [ + "## Select Fitting Parameters" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "20", + "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": "21", + "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": "22", + "metadata": {}, + "source": [ + "## Run Fitting" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "23", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.current_calculator = 'pdffit'\n", + "project.analysis.fit()" + ] + }, + { + "cell_type": "markdown", + "id": "24", + "metadata": {}, + "source": [ + "## Plot Measured vs Calculated" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "25", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='xray_pdf')" + ] + } + ], + "metadata": { + "jupytext": { + "cell_metadata_filter": "tags,-all", + "main_language": "python", + "notebook_metadata_filter": "-all" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/tutorials/pdf_pd-xray_NaCl.py b/tutorials/pdf_pd-xray_NaCl.py index 4d8e0811..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 @@ -37,35 +49,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 new file mode 100644 index 00000000..bfe5281d --- /dev/null +++ b/tutorials/quick_single-fit_pd-neut-cwl_LBCO-HRPT.ipynb @@ -0,0 +1,326 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "0", + "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": "1", + "metadata": {}, + "source": [ + "## Import Library" + ] + }, + { + "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": [ + "import easydiffraction as ed" + ] + }, + { + "cell_type": "markdown", + "id": "4", + "metadata": {}, + "source": [ + "## Step 1: Define Project" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5", + "metadata": {}, + "outputs": [], + "source": [ + "project = ed.Project()" + ] + }, + { + "cell_type": "markdown", + "id": "6", + "metadata": {}, + "source": [ + "## Step 2: Define Sample Model" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7", + "metadata": {}, + "outputs": [], + "source": [ + "project.sample_models.add(name='lbco')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8", + "metadata": {}, + "outputs": [], + "source": [ + "sample_model = project.sample_models['lbco']" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9", + "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": "10", + "metadata": {}, + "outputs": [], + "source": [ + "sample_model.cell.length_a = 3.88" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "11", + "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": "12", + "metadata": {}, + "source": [ + "## Step 3: Define Experiment" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "13", + "metadata": {}, + "outputs": [], + "source": [ + "ed.download_from_repository('hrpt_lbco.xye', destination='data')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "14", + "metadata": {}, + "outputs": [], + "source": [ + "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", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "15", + "metadata": {}, + "outputs": [], + "source": [ + "experiment = project.experiments['hrpt']" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "16", + "metadata": {}, + "outputs": [], + "source": [ + "experiment.instrument.setup_wavelength = 1.494\n", + "experiment.instrument.calib_twotheta_offset = 0.6" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "17", + "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": "18", + "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": "19", + "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": "20", + "metadata": {}, + "outputs": [], + "source": [ + "experiment.linked_phases.add(id='lbco', scale=10.0)" + ] + }, + { + "cell_type": "markdown", + "id": "21", + "metadata": {}, + "source": [ + "## Step 4: Perform Analysis" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "22", + "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": "23", + "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": "24", + "metadata": {}, + "outputs": [], + "source": [ + "project.analysis.fit()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "25", + "metadata": {}, + "outputs": [], + "source": [ + "project.plot_meas_vs_calc(expt_name='hrpt', show_residual=True)" + ] + } + ], + "metadata": { + "jupytext": { + "cell_metadata_filter": "tags,-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.py b/tutorials/quick_single-fit_pd-neut-cwl_LBCO-HRPT.py index 3fabf28f..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 @@ -54,16 +66,16 @@ # ## Step 3: Define Experiment # %% -ed.download_from_repository('hrpt_lbco.xye', - branch='develop', - 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'] @@ -123,5 +135,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)