├── .github └── workflows │ └── build.yml ├── .gitignore ├── .readthedocs.yaml ├── LICENSE.txt ├── README.rst ├── docs ├── Makefile ├── _static │ ├── custom.css │ └── media │ │ ├── Logo-Fin-Ngeu.png │ │ ├── Logo_Italia_Domani.jpg │ │ ├── favicon.ico │ │ ├── heterostructure_pbclcm.png │ │ ├── logo.png │ │ ├── logoxweb.svg │ │ └── pbc_lcm_index.png ├── _templates │ └── navigation.html ├── changelog.rst ├── conf.py ├── docutils.conf ├── favicon.ico ├── index.rst ├── make.bat ├── modules.rst ├── requirements.txt ├── strawberrypy.example_models.rst ├── strawberrypy.rst ├── strawberrypy.utils.rst └── tutorial.rst ├── pyproject.toml ├── setup.py ├── strawberrypy ├── __init__.py ├── _pythtb │ ├── __init__.py │ └── attribute.py ├── _tbmodels │ ├── __init__.py │ └── attribute.py ├── _wberri │ ├── __init__.py │ └── attribute.py ├── classes.py ├── example_models │ ├── __init__.py │ ├── haldane.py │ └── kane_mele.py ├── finite_model.py ├── supercell.py └── utils.py └── tests ├── check ├── lcm_heterostructure.check ├── lcm_uniform_disorder.check ├── lcm_vacancies.check ├── loc_haldane_heterostructure.check ├── loc_haldane_uniform_disorder.check ├── loc_kanemele_heterostructure.check ├── loc_kanemele_uniform_disorder.check ├── lscm_uniform_disorder.check ├── lz2m_uniform_disorder.check ├── pbclscm_uniform_disorder.check ├── pbclz2m_uniform_disorder.check ├── positions_haldane_heterostructure.check ├── positions_haldane_uniform.check ├── positions_kanemele_heterostructure.check ├── positions_kanemele_uniform.check └── positions_vacancies.check ├── test_h.py ├── test_km.py ├── test_obc_markers.py └── test_z2_markers.py /.github/workflows/build.yml: -------------------------------------------------------------------------------- 1 | # This is a basic workflow to help you get started with Actions 2 | name: Python package 3 | 4 | on: [push] 5 | 6 | # A workflow run is made up of one or more jobs that can run sequentially or in parallel 7 | jobs: 8 | # This workflow contains a single job called "build" 9 | build: 10 | # The type of runner that the job will run on 11 | runs-on: ubuntu-latest 12 | 13 | # Steps represent a sequence of tasks that will be executed as part of the job 14 | steps: 15 | # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it 16 | - uses: actions/checkout@v2 17 | 18 | - name: Check pytest tests 19 | run: | 20 | pip install . 21 | pip3 install pytest 22 | pytest -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | __pycache__/ 2 | strawberrypy/__pycache__/ 3 | strawberrypy/_pythtb/__pycache__/ 4 | strawberrypy/_tbmodels/__pycache__/ 5 | tests/__pycache__ 6 | .devcontainer/ 7 | .pytest_cache 8 | .DS_Store 9 | docs/_build/ -------------------------------------------------------------------------------- /.readthedocs.yaml: -------------------------------------------------------------------------------- 1 | # .readthedocs.yaml 2 | # Read the Docs configuration file for Sphinx projects 3 | # See https://docs.readthedocs.io/en/stable/config-file/v2.html for details 4 | 5 | # Required 6 | version: 2 7 | 8 | # Set the OS, Python version and other tools you might need 9 | build: 10 | os: ubuntu-22.04 11 | tools: 12 | python: "3.10" 13 | 14 | # Build documentation in the "docs/" directory with Sphinx 15 | sphinx: 16 | configuration: docs/conf.py 17 | 18 | # Fail on all warnings to avoid broken references 19 | fail_on_warning: true 20 | 21 | # Optionally build your docs in additional formats such as PDF and ePub 22 | formats: 23 | - pdf 24 | 25 | # Optional but recommended, declare the Python requirements required 26 | # to build your documentation 27 | # See https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html 28 | python: 29 | install: 30 | - requirements: docs/requirements.txt -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 Universita' di Trieste, Italy. 4 | All rights reserved. 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy 7 | of this software and associated documentation files (the "Software"), to 8 | deal 9 | in the Software without restriction, including without limitation the rights 10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following condition: 13 | 14 | The above copyright notice and this permission notice shall be included in all 15 | copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 23 | SOFTWARE. -------------------------------------------------------------------------------- /README.rst: -------------------------------------------------------------------------------- 1 | ============ 2 | StraWBerryPy 3 | ============ 4 | 5 | **StraWBerryPy** (Single-poinT and local invaRiAnts for Wannier Berriologies in Python) is a Python package to calculate topological invariants and quantum-geometrical quantities in non-crystalline topological insulators. 6 | 7 | The code reads tight-binding models from `PythTB `_, `TBmodels `_ and `Wannier90 `_ (through `WannierBerri `_). 8 | 9 | StraWBerryPy can work both with periodic (PBCs) and open (OBCs) boundary conditions. The code allows to create and manipulate supercells and finite models, for example adding disorder. Single-point and local topological markers can be computed, in addition to other quantum-geometrical quantities (e.g., the localization marker). 10 | 11 | * `Github page `_ 12 | * `Documentation `_ 13 | 14 | 15 | How to cite 16 | +++++++++++ 17 | Please cite the following papers in any publication arising from the use of 18 | this code. 19 | 20 | In particular, if you use the implementation of the single-point (Chern or :math:`$\mathbb{Z}_{2}$`) invariants 21 | 22 | R. Favata and A. Marrazzo 23 | Single-point spin Chern number in a supercell framework 24 | `Electronic Structure 5, 014005 (2023)`_ 25 | 26 | .. _Electronic Structure 5, 014005 (2023): https://doi.org/10.1088/2516-1075/acba6f 27 | 28 | If you use the implementation of the local Chern marker in periodic boundary conditions: 29 | 30 | N. Baù and A. Marrazzo 31 | Local Chern marker for periodic systems 32 | `Phys. Rev. B 109, 014206 (2024)`_ 33 | 34 | .. _Phys. Rev. B 109, 014206 (2024): https://doi.org/10.1103/PhysRevB.109.014206 35 | 36 | If you use the implementation of the local spin-Chern or the local :math:`$\mathbb{Z}_{2}$` markers: 37 | 38 | N. Baù and A. Marrazzo 39 | Theory of local :math:`$\mathbb{Z}_{2}$` topological markers for finite and periodic two-dimensional systems 40 | `arXiv:2404.04598 (2024)`_ 41 | 42 | .. _arXiv:2404.04598 (2024): https://arxiv.org/abs/2404.04598 43 | 44 | If you use the implementation of the localization marker: 45 | 46 | A. Marrazzo and R. Resta 47 | A local theory of the insulating state 48 | `Phys. Rev. Lett. 122, 166602 (2019)`_ 49 | 50 | .. _Phys. Rev. Lett. 122, 166602 (2019): https://doi.org/10.1103/PhysRevLett.122.166602 51 | 52 | Acknowledgements 53 | ++++++++++++++++ 54 | We acknowledge support from the `ICSC `_ – Centro Nazionale di Ricerca in High Performance Computing, Big Data and Quantum Computing, funded by European Union – `NextGenerationEU `_ – `PNRR `_, Missione 4 Componente 2 Investimento 1.4. 55 | 56 | .. |pic1| image:: docs/_static/media/logoxweb.svg 57 | :width: 250 58 | :target: https://www.supercomputing-icsc.it/en/icsc-home/ 59 | .. |pic2| image:: docs/_static/media/Logo-Fin-Ngeu.png 60 | :width: 250 61 | :target: https://next-generation-eu.europa.eu/index_en 62 | .. |pic3| image:: docs/_static/media/Logo_Italia_Domani.jpg 63 | :width: 250 64 | :target: https://www.italiadomani.gov.it/content/sogei-ng/it/it/home.html 65 | 66 | |pic1| |pic2| |pic3| 67 | -------------------------------------------------------------------------------- /docs/Makefile: -------------------------------------------------------------------------------- 1 | # Minimal makefile for Sphinx documentation 2 | # 3 | 4 | # You can set these variables from the command line, and also 5 | # from the environment for the first two. 6 | SPHINXOPTS ?= 7 | SPHINXBUILD ?= sphinx-build 8 | SOURCEDIR = . 9 | BUILDDIR = _build 10 | 11 | # Put it first so that "make" without argument is like "make help". 12 | help: 13 | @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 14 | 15 | .PHONY: help Makefile 16 | 17 | # Catch-all target: route all unknown targets to Sphinx using the new 18 | # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). 19 | %: Makefile 20 | @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 21 | -------------------------------------------------------------------------------- /docs/_static/custom.css: -------------------------------------------------------------------------------- 1 | /* From: https://framagit.org/coslo/template-docs */ 2 | 3 | body { 4 | font-family: Noto Serif, Georgia, serif; 5 | } 6 | div.sphinxsidebar { 7 | height: 100vh; 8 | overflow: auto; 9 | } 10 | div.sphinxsidebar hr { 11 | width: 100%; 12 | } 13 | /* div.sphinxsidebar ul { */ 14 | /* margin: 0 0 !important; */ 15 | /* } */ 16 | div.sphinxsidebar a.current.reference.internal { 17 | font-weight: bold; 18 | /* display: none; */ 19 | } 20 | div.sphinxsidebar li.toctree-l1 { 21 | padding-top: 2px !important; 22 | padding-bottom: 2px !important; 23 | } 24 | div.sphinxsidebar li.toctree-l1 ul { 25 | font-weight: normal; 26 | /* list-style-type: none; /\* Remove bullets *\/ */ 27 | padding: 0; /* Remove padding */ 28 | margin: 0; /* Remove margins */ 29 | margin-bottom: 10px; 30 | margin-left: 18px; 31 | } 32 | pre { 33 | padding: 7px 15px; 34 | } 35 | pre, tt, code { 36 | font-size: 0.9em; 37 | } 38 | code { 39 | background-color: rgba(0, 0, 0, 0) 40 | } 41 | div.admonition code { 42 | background: #c9dbe8; 43 | /* color: #60a0b0; */ 44 | } 45 | div.body h4, div.body h5, div.body h6 { 46 | margin: 10px 0px 10px 0px; 47 | } 48 | div.body h3 { 49 | margin: 20px 0px 10px 0px; 50 | } 51 | div.admonition { 52 | padding: 10px 15px; 53 | } 54 | div.note { 55 | background-color: #0e84b51c; 56 | } 57 | img { 58 | display: block; 59 | margin-left: auto; 60 | margin-right: auto; 61 | max-width: 70% 62 | } 63 | div.highlight-none pre { 64 | background-color: rgb(255, 255, 255); 65 | color: #7B8591; 66 | padding: 0px 15px; 67 | } 68 | @media screen and (max-width: 870px) { 69 | div.sphinxsidebar { 70 | height: auto; 71 | } 72 | } 73 | div.body h2 { 74 | padding-bottom: 4px; 75 | border-bottom: 1px solid rgb(151, 157, 164); 76 | } 77 | div.sphinxsidebarwrapper p.blurb { 78 | margin-bottom: 20px; 79 | } 80 | .highlight .si, .highlight .c1 { 81 | font-style: normal !important; 82 | } 83 | div.sphinxsidebar { 84 | max-height: 100%; 85 | overflow-y: auto; 86 | } 87 | .highlight{ 88 | background-color: #F5F5F5 89 | } -------------------------------------------------------------------------------- /docs/_static/media/Logo-Fin-Ngeu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strawberrypy-developers/strawberrypy/154f03d2d4a40ed427bc632206e96865e4ad5775/docs/_static/media/Logo-Fin-Ngeu.png -------------------------------------------------------------------------------- /docs/_static/media/Logo_Italia_Domani.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strawberrypy-developers/strawberrypy/154f03d2d4a40ed427bc632206e96865e4ad5775/docs/_static/media/Logo_Italia_Domani.jpg -------------------------------------------------------------------------------- /docs/_static/media/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strawberrypy-developers/strawberrypy/154f03d2d4a40ed427bc632206e96865e4ad5775/docs/_static/media/favicon.ico -------------------------------------------------------------------------------- /docs/_static/media/heterostructure_pbclcm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strawberrypy-developers/strawberrypy/154f03d2d4a40ed427bc632206e96865e4ad5775/docs/_static/media/heterostructure_pbclcm.png -------------------------------------------------------------------------------- /docs/_static/media/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strawberrypy-developers/strawberrypy/154f03d2d4a40ed427bc632206e96865e4ad5775/docs/_static/media/logo.png -------------------------------------------------------------------------------- /docs/_static/media/pbc_lcm_index.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strawberrypy-developers/strawberrypy/154f03d2d4a40ed427bc632206e96865e4ad5775/docs/_static/media/pbc_lcm_index.png -------------------------------------------------------------------------------- /docs/_templates/navigation.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | {{ toctree(includehidden=theme_sidebar_includehidden, collapse=theme_sidebar_collapse) }} 4 | {% if theme_extra_nav_links %} 5 |
6 |
    7 | {% for text, uri in theme_extra_nav_links.items() %} 8 |
  • {{ text }}
  • 9 | {% endfor %} 10 |
11 | {% endif %} 12 | -------------------------------------------------------------------------------- /docs/changelog.rst: -------------------------------------------------------------------------------- 1 | .. role:: python(code) 2 | :language: python 3 | :class: highlight 4 | 5 | What's new 6 | ========== 7 | In the following, a short summary of the main changes in StraWBerryPy from its first release as `SPInv `_. 8 | 9 | StraWBerryPy 0.3.1 10 | ^^^^^^^^^^^^^^^^^^ 11 | 12 | * Introduced the local spin-Chern marker for finite and periodic system, as defined in Ref. `Baù-Marrazzo (2024b) `_. 13 | * Introduced the local :math:`\mathbb{Z}_{2}` marker for finite and periodic system, as defined in Ref. `Baù-Marrazzo (2024b) `_. 14 | 15 | StraWBerryPy 0.3.0 16 | ^^^^^^^^^^^^^^^^^^ 17 | 18 | We modified the structure of the code in order to make it much more user-friendly, reducing the number of variables the user has to pass to the functions and storing all the information from the input model at once at the beginning of the code upon creating the model. 19 | The base class is :python:`Model`, from which :python:`Supercell` and :python:`FiniteModel` are derived, and extrapolates all the needed information for performing the several calculations on the input model. All functionalities are provided as methods of :python:`Supercell` and :python:`FiniteModel` classes. 20 | The functions of previous versions have been updated in order to work with this new structure. 21 | 22 | * Introduced three main classes :python:`Model`, :python:`Supercell` and :python:`FiniteModel` which are aimed at the creation of the specific model. 23 | * Introduced the interface with `Wannier90 `_ through `WannierBerri `_, which allows to read Wannier Hamiltonians. 24 | * Introduced the PBC local Chern marker for periodic system in a supercell, as defined in Ref. `Baù-Marrazzo (2024a) `_. 25 | * Introduced the localization marker for finite systems, as defined in Ref. `Marrazzo-Resta (2019) `_. 26 | * Introduced the possibility of add disorder in the system both by an on-site uniformly distributed random term (Anderson disorder) and by vacancies in the lattice. 27 | 28 | StraWBerryPy 0.2.0 (SPInv) 29 | ^^^^^^^^^^^^^^^^^^^^^^^^^^ 30 | 31 | * Introduced :python:`make_finite` to remove periodic hoppings in the Hamiltonian. 32 | * Introduced :python:`make_heterostructure` to create heterostructures. 33 | * Introduced the Bianco-Resta local Chern marker, as defined in Ref. `Bianco-Resta (2011) `_. 34 | 35 | StraWBerryPy 0.1.0 (SPInv) 36 | ^^^^^^^^^^^^^^^^^^^^^^^^^^ 37 | 38 | * Introduced `Haldane `_ and `Kane-Mele `_ models in :doc:`example_models`. 39 | * Introduced the single-point Chern number and single-point spin Chern number, as defined in Refs. `Ceresoli-Resta (2007) `_ and `Favata-Marrazzo (2023) `_. 40 | -------------------------------------------------------------------------------- /docs/conf.py: -------------------------------------------------------------------------------- 1 | # Configuration file for the Sphinx documentation builder. 2 | # 3 | # For the full list of built-in configuration values, see the documentation: 4 | # https://www.sphinx-doc.org/en/master/usage/configuration.html 5 | 6 | import os, sys 7 | sys.path.insert(0, os.path.abspath('..')) 8 | 9 | # -- Project information ----------------------------------------------------- 10 | # https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information 11 | 12 | project = 'StraWBerryPy' 13 | copyright = '2023, Roberta Favata, Nicolas Baù and Antimo Marrazzo' 14 | author = 'Roberta Favata, Nicolas Baù and Antimo Marrazzo' 15 | release = '0.3.0' 16 | language = 'en' 17 | 18 | # -- General configuration --------------------------------------------------- 19 | # https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration 20 | 21 | extensions = [ 22 | 'sphinx.ext.autodoc', 23 | 'sphinx.ext.viewcode', 24 | 'sphinx.ext.napoleon', 25 | 'sphinx.ext.intersphinx', 26 | 'sphinx.ext.autosectionlabel', 27 | 'sphinxawesome_theme.highlighting', 28 | 'sphinx_copybutton' 29 | ] 30 | 31 | templates_path = ['_templates'] 32 | exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] 33 | highlight_language = 'python3' 34 | master_doc = 'index' 35 | 36 | 37 | # -- Options for HTML output ------------------------------------------------- 38 | # https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output 39 | # from: https://framagit.org/coslo/template-docs 40 | 41 | html_theme = 'sphinx_book_theme' #'alabaster' 42 | html_static_path = ['_static'] 43 | 44 | if html_theme == 'alabaster': 45 | pygments_style = 'friendly' 46 | html_static_path = ['_static/custom.css'] 47 | html_theme_options = { 48 | 'description': 'Single-poinT and local invaRiAnts for Wannier Berriologies in Python', 49 | 'fixed_sidebar': True, 50 | 'sidebar_collapse': True, 51 | 'extra_nav_links': {}, 52 | 'gray_2': '#F4F4F4ED', 53 | 'sidebar_width': '250px', 54 | 'body_max_width': 'auto', 55 | 'page_width': '1100px', 56 | 'github_user': 'strawberrypy-developers', 57 | 'github_repo': 'strawberrypy', 58 | 'github_button': True, 59 | 'github_type': 'watch', 60 | 'github_count': False, 61 | } 62 | 63 | html_logo = "_static/media/logo.png" 64 | 65 | html_favicon = "favicon.ico" 66 | 67 | html_sidebars = { 68 | '**': [ 69 | 'about.html', 70 | 'navigation.html', 71 | 'searchbox.html', 72 | 'relations.html', 73 | 'donate.html', 74 | ] 75 | } 76 | 77 | if html_theme == 'sphinx_book_theme': 78 | pygments_style = 'friendly' 79 | html_static_path = ['_static/custom.css'] 80 | 81 | html_logo = "_static/media/logo.png" 82 | html_title = "StraWBerryPy" 83 | html_favicon = "favicon.ico" 84 | 85 | html_theme_options = { 86 | "show_prev_next": False, 87 | "repository_url": "https://github.com/strawberrypy-developers/strawberrypy.git", 88 | "repository_branch": "main", 89 | "path_to_docs": "docs", 90 | "logo": { 91 | "image_dark": html_logo, 92 | "image_light": html_logo, 93 | "text": "

StraWBerryPy

\n

Single-poinT invaRiAnts and local

\n

markers for Wannier Berriologies

\n

in Python

", 94 | }, 95 | "toc_title": " On this page", 96 | "use_repository_button": True, 97 | "use_issues_button": False, 98 | "use_edit_page_button": False, 99 | "use_download_button": True, 100 | "secondary_sidebar_items": ["page-toc"], 101 | "show_toc_level": 40, 102 | "footer_content_items": ["copyright.html"], 103 | "home_page_in_toc": True, 104 | } 105 | 106 | html_sidebars = { 107 | "**": ["navbar-logo.html", "search-field.html", "sbt-sidebar-nav.html"] 108 | } -------------------------------------------------------------------------------- /docs/docutils.conf: -------------------------------------------------------------------------------- 1 | [restructuredtext parser] 2 | syntax_highlight = short -------------------------------------------------------------------------------- /docs/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strawberrypy-developers/strawberrypy/154f03d2d4a40ed427bc632206e96865e4ad5775/docs/favicon.ico -------------------------------------------------------------------------------- /docs/index.rst: -------------------------------------------------------------------------------- 1 | .. StraWBerryPy documentation master file, created by 2 | sphinx-quickstart on Fri Dec 1 16:44:59 2023. 3 | You can adapt this file completely to your liking, but it should at least 4 | contain the root `toctree` directive. 5 | 6 | .. role:: python(code) 7 | :language: python 8 | :class: highlight 9 | 10 | Welcome to StraWBerryPy! 11 | ======================== 12 | 13 | **StraWBerryPy** (Single-poinT and local invaRiAnts for Wannier Berriologies in Python) is a Python package to calculate topological invariants and quantum-geometrical quantities in non-crystalline topological insulators. 14 | 15 | StraWBerryPy can work with periodic and finite systems in tight-binding. 16 | In periodic boundary conditions (PBCs), the code implements the single-point formulas for the Chern number `[Ceresoli-Resta] `_ and the single-point spin Chern number `[Favata-Marrazzo] `_ in the supercell framework. In PBCs, it is also possible to calculate the local Chern marker within periodic boundary conditions `[Baù-Marrazzo](a) `_, and the local spin-Chern and local :math:`\mathbb{Z}_{2}` markers `[Baù-Marrazzo](b) `_. 17 | In addition, StraWBerryPy can handle finite systems (such as bounded samples and heterostructures) in open boundary conditions (OBCs) and can compute the local Chern marker `[Bianco-Resta] `_, the localization marker `[Marrazzo-Resta] `_ , and the local spin-Chern and local :math:`\mathbb{Z}_{2}` markers `[Baù-Marrazzo](b) `_. 18 | 19 | The code provides dedicated interfaces to the tight-binding engines `PythTB `_ and `TBmodels `_. Latest version of StraWBerryPy implements the calculation of single-point topological invariants with ab initio Wannier Hamiltonians, which are read in the format produced by `Wannier90 `_ through `WannierBerri `_. 20 | 21 | Installation 22 | ------------ 23 | To install StraWBerry you can clone `this `_ Github repository and run the following instructions: 24 | 25 | .. code:: bash 26 | 27 | git clone https://github.com/strawberrypy-developers/strawberrypy.git 28 | cd strawberrypy 29 | pip install . 30 | 31 | Quick start 32 | ----------- 33 | 34 | Here, a quick example for calculating the single-point and the local topological invariant in the supercell framework for the Haldane model in presence of Anderson disorder. We can define the periodic model with either :python:`TBmodels` or :python:`PythTB`, which is then passed to the :python:`Supercell` class (when defining the supercell, we also need to specify its dimensions). Then, we can add on-site random disorder and finally call the methods to compute the quantities of interest. 35 | 36 | .. code:: python 37 | 38 | import numpy as np 39 | from strawberrypy import * 40 | 41 | # Define the PBC model 42 | pbc_model = example_models.haldane_tbmodels(delta = 0.3, t = 1, t2 = 0.15, phi = np.pi / 2) 43 | 44 | # Build the supercell of the model 45 | model = Supercell(tbmodel = pbc_model, Lx = 30, Ly = 30, spinful = False) 46 | 47 | # Add on-site Anderson disorder 48 | model.add_onsite_disorder(w = 1.5) 49 | 50 | # Evaluate the single-point Chern number 51 | sp_inv = model.single_point_chern() 52 | print("Single-point invariant: {}".format(sp_inv)) 53 | 54 | # Evaluate the PBC local Chern marker 55 | pbclcm = model.pbc_local_chern_marker(macroscopic_average = True, cutoff = 2) 56 | 57 | .. image:: _static/media/pbc_lcm_index.png 58 | :width: 150% 59 | :alt: PBC local Chern marker produced with the code above 60 | 61 | Contents 62 | ^^^^^^^^ 63 | .. toctree:: 64 | :maxdepth: 1 65 | 66 | tutorial 67 | modules 68 | changelog 69 | 70 | Indices and tables 71 | ^^^^^^^^^^^^^^^^^^ 72 | * :ref:`genindex` 73 | * :ref:`modindex` 74 | * :ref:`search` 75 | * `Github `_ -------------------------------------------------------------------------------- /docs/make.bat: -------------------------------------------------------------------------------- 1 | @ECHO OFF 2 | 3 | pushd %~dp0 4 | 5 | REM Command file for Sphinx documentation 6 | 7 | if "%SPHINXBUILD%" == "" ( 8 | set SPHINXBUILD=sphinx-build 9 | ) 10 | set SOURCEDIR=. 11 | set BUILDDIR=_build 12 | 13 | %SPHINXBUILD% >NUL 2>NUL 14 | if errorlevel 9009 ( 15 | echo. 16 | echo.The 'sphinx-build' command was not found. Make sure you have Sphinx 17 | echo.installed, then set the SPHINXBUILD environment variable to point 18 | echo.to the full path of the 'sphinx-build' executable. Alternatively you 19 | echo.may add the Sphinx directory to PATH. 20 | echo. 21 | echo.If you don't have Sphinx installed, grab it from 22 | echo.https://www.sphinx-doc.org/ 23 | exit /b 1 24 | ) 25 | 26 | if "%1" == "" goto help 27 | 28 | %SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% 29 | goto end 30 | 31 | :help 32 | %SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% 33 | 34 | :end 35 | popd 36 | -------------------------------------------------------------------------------- /docs/modules.rst: -------------------------------------------------------------------------------- 1 | Reference 2 | ========= 3 | 4 | .. toctree:: 5 | :maxdepth: 4 6 | 7 | strawberrypy -------------------------------------------------------------------------------- /docs/requirements.txt: -------------------------------------------------------------------------------- 1 | sphinx 2 | sphinx-copybutton 3 | sphinxawesome-theme 4 | sphinx_book_theme 5 | wannierberri[all]==0.15.0 6 | pythtb==1.8.0 7 | tbmodels==1.4.3 8 | opt-einsum==3.3.0 -------------------------------------------------------------------------------- /docs/strawberrypy.example_models.rst: -------------------------------------------------------------------------------- 1 | .. strawberrypy.example\_models package 2 | .. ==================================== 3 | 4 | .. role:: python(code) 5 | :language: python 6 | :class: highlight 7 | 8 | Predefined example models 9 | ========================= 10 | 11 | Haldane model 12 | ~~~~~~~~~~~~~ 13 | 14 | .. automodule:: strawberrypy.example_models.haldane 15 | :members: 16 | :undoc-members: 17 | :show-inheritance: 18 | 19 | Kane-Mele model 20 | ~~~~~~~~~~~~~~~ 21 | 22 | .. automodule:: strawberrypy.example_models.kane_mele 23 | :members: 24 | :undoc-members: 25 | :show-inheritance: 26 | 27 | .. Module contents 28 | .. --------------- 29 | .. 30 | .. .. automodule:: strawberrypy.example_models 31 | .. :members: 32 | .. :undoc-members: 33 | .. :show-inheritance: 34 | -------------------------------------------------------------------------------- /docs/strawberrypy.rst: -------------------------------------------------------------------------------- 1 | .. role:: python(code) 2 | :language: python 3 | :class: highlight 4 | 5 | StraWBerryPy package 6 | ==================== 7 | 8 | .. toctree:: 9 | :maxdepth: 2 10 | 11 | Model class module 12 | ------------------ 13 | 14 | .. automodule:: strawberrypy.classes 15 | :members: 16 | :undoc-members: 17 | :show-inheritance: 18 | 19 | Finite model class module 20 | ------------------------- 21 | 22 | .. automodule:: strawberrypy.finite_model 23 | :members: 24 | :undoc-members: 25 | :show-inheritance: 26 | 27 | Supercell model class module 28 | ---------------------------- 29 | 30 | .. automodule:: strawberrypy.supercell 31 | :members: 32 | :undoc-members: 33 | :show-inheritance: 34 | 35 | Subpackages 36 | ----------- 37 | 38 | .. toctree:: 39 | :maxdepth: 2 40 | 41 | strawberrypy.example_models 42 | strawberrypy.utils 43 | 44 | .. Utility functions 45 | .. ----------------- 46 | .. .. automodule:: strawberrypy 47 | .. :members: 48 | .. :undoc-members: 49 | .. :show-inheritance: -------------------------------------------------------------------------------- /docs/strawberrypy.utils.rst: -------------------------------------------------------------------------------- 1 | .. role:: python(code) 2 | :language: python 3 | :class: highlight 4 | 5 | Utility functions 6 | ================= 7 | 8 | .. automodule:: strawberrypy.utils 9 | :members: 10 | :undoc-members: 11 | :show-inheritance: 12 | 13 | .. Module contents 14 | .. --------------- 15 | .. 16 | .. .. automodule:: strawberrypy.example_models 17 | .. :members: 18 | .. :undoc-members: 19 | .. :show-inheritance: 20 | -------------------------------------------------------------------------------- /docs/tutorial.rst: -------------------------------------------------------------------------------- 1 | .. role:: python(code) 2 | :language: python 3 | :class: highlight 4 | 5 | Tutorial and examples 6 | ===================== 7 | This page provides a short tutorial on how to use the code. At the end of the page, a couple of examples illustrates some results obtained using the package. 8 | 9 | Short tutorial 10 | -------------- 11 | 12 | Defining a model 13 | ^^^^^^^^^^^^^^^^ 14 | **StraWBerryPy** is able to read tight-binding model instances from either **PythTB** or **TBmodels**. The creation of the model itself should be performed using those packages (see for instance the relative tutorials for `PythTB `_ and `TBmodels `_). Some useful examples are already implemented in :doc:`example_models`, such as the Haldane and Kane-Mele models. 15 | 16 | Once the model has been created, it can be read from StraWBerryPy, which allows to create both finite models and supercells starting from a tight-binding model, using classes :python:`Supercell` and :python:`FiniteModel`, respectively. When creating supercells and finite models, the number of unit cells to be repeated along each direction must be given along with a bool specifying if the model has to be interpreted as spinful or not (needed to properly account for the spin degrees of freedom): 17 | 18 | .. code:: python 19 | 20 | import numpy as np 21 | import strawberrypy 22 | 23 | # Import a model from the examples 24 | uc_model = strawberrypy.example_models.haldane_tbmodels(delta = 0.5, t = 1, t2 = 0.15, phi = np.pi / 2) 25 | 26 | # Create a supercell and a finite model of size L 27 | supercell_model = strawberrypy.Supercell(tbmodel = uc_model, Lx = L, Ly = L, spinful = False) 28 | finite_model = strawberrypy.FiniteModel(tbmodel = uc_model, Lx = L, Ly = L, spinful = False) 29 | 30 | Adding disorder and vacancies 31 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 32 | In order to add disorder and vacancies to a given model we can use the following methods of the classes (available for both supercells and finite models): 33 | 34 | .. code:: python 35 | 36 | # Add a random on-site term uniformly distributed in the interval [-W/2, W/2] 37 | model.add_onsite_disorder(w = 3, seed = rng_seed) 38 | 39 | # Add 15 random vacancies to the lattice 40 | vacncies = strawberrypy.utils.unique_vacancies(num = 15, Lx = model.Lx, Ly = model.Ly, basis = atoms_uc, seed = rng_seed) 41 | model.add_vacancies(vacancies_list = vacancies) 42 | 43 | .. note:: 44 | 45 | The function that adds vacancies in the lattice relies on an internal indexing of the lattice sites inherited from TBmodels and PythTB. Because of this, it may not be accurate with systems not defined using these packages when targeting a specific site. 46 | 47 | Calculate the single-point invariant 48 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 49 | If a supercell is created, it is possible to evaluate the single-point invariant by calling the appropriate method. If :python:`spinful == False` the single-point Chern number can be computed using: 50 | 51 | .. code:: python 52 | 53 | model.single_point_chern(formula = 'symmetric', return_ham_gap = False) 54 | 55 | where :python:`formula` can be :python:`'symmetric'` or :python:`'asymmetric'` (or :python:`'both'`) and specifies whether the single-point invariant should be computed using a formula in which the derivatives are approximated by forward or central finite differences, respectively. The :python:`'symmetric'` formula usually converges faster with the supercell size to the exact result with respect to the :python:`'asymmetric'` one. 56 | The parameter :python:`return_ham_gap` is a bool specifying whether the gap of the Hamiltonian at the :math:`\Gamma`-point in the Brillouin zone should be returned. 57 | 58 | Similarly, if :python:`spinful == True`, the single-point spin Chern number can be computed using: 59 | 60 | .. code:: python 61 | 62 | model.single_point_spin_chern(spin = 'up', formula = 'symmetric', return_pszp_gap = False, return_ham_gap = False) 63 | 64 | where :python:`spin` can be either :python:`'up'` or :python:`'down'` and indicates which sector of spin projected operator spectra is considered in the calculation of the single-point spin Chern number. 65 | In fact, the single-point spin Chern number can be computed as :math:`C_s = \frac{1}{2}(C_{\uparrow} - C_{\downarrow})\,\mathrm{mod}2`, where :math:`C_{\uparrow/\downarrow}` are calculated on the eigenstates of spin projected operator with positive/negative eigenvalues; in general it is sufficient to compute either :math:`C_{\uparrow}` or :math:`C_{\downarrow}` only and consider its parity. 66 | The parameter :python:`return_pszp_gap` is a bool specifying whether the gap of the spin projected operator :math:`P S_z P` should be returned. 67 | 68 | The functions :python:`single_point_chern` and :python:`single_point_spin_chern` return a dictionary with labels :python:`'asymmetric'`, :python:`'symmetric'` and, if required, the value of :python:`hamiltonian_gap` (and :python:`pszp_gap` in the single-point spin Chern number function). 69 | 70 | Calculate the local topological marker 71 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 72 | If a finite model or supercell is created it is possible to evaluate the local topological markers by calling the appropriate method. If :python:`spinful == False` the local Chern marker can be computed using: 73 | 74 | .. code:: python 75 | 76 | finite_model.local_chern_marker(direction = None, start = 0, return_projector = False, input_projector = None, macroscopic_average = False, cutoff = 0.8, smearing_temperature = 0.0, fermidirac_cutoff = 0.1) 77 | supercell.pbc_local_chern_marker(direction = None, start = 0, return_projector = False, input_projector = None, formula = 'symmetric', macroscopic_average = False, cutoff = 0.8, smearing_temperature = 0.0, fermidirac_cutoff = 0.1) 78 | 79 | where :python:`direction == None` means that the function returns the topological marker evaluated over the whole lattice. If :python:`direction` is ``0`` or ``1`` the function returns the value of the marker along the *x* or *y* direction respectively starting from :python:`start` (index of the unit cell along the orthogonal direction to :python:`direction`). The parameter :python:`return_projector` is used to return the projectors used in the calculations, namely :math:`\mathcal P` (the ground state projector) in the open boundary conditions case and the list :math:`[\mathcal P_{\Gamma}, \mathcal P_{\mathbf b_1}, \mathcal P_{\mathbf b_2}, \mathcal P_{-\mathbf b_1}, \mathcal P_{-\mathbf b_2}]` in the periodic boundary conditions case. The parameter :python:`input_projector` allows to input the projectors mentioned above (beware of the order) when these are known. The parameters :python:`smearing_temperature` and :python:`fermidirac_cutoff` can be set when dealing with heterostructures to improve the convergence of the topological markers by introducing a Fermi-Dirac occupation function in the calculation of the projectors. 80 | 81 | When the system is disordered, it may be useful to return the value of the topological marker averaged over a real-space area bigger than the unit cell of the model. To do so, one can set the parameters :python:`macroscopic_average == True` (useful also when dealing with system that do not respect the internal indexing of PythTB and TBmodels, as mentioned above) and :python:`cutoff` to specify the range of the averages in real space (lattice constant units). 82 | 83 | Using StraWBerryPy with Wannier90 output files 84 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 85 | StraWBerryPy is also able to read *ab initio* tight-binding model instances created through **WannierBerri** given the Wannier functions generated by **Wannier90** code starting from a first-principle calculation. If the *ab initio* calculation is performed in a large enough supercell (:math:`\Gamma`-only calculation), the single-point invariant can be computed. 86 | 87 | First, we need to initialize the system through WannierBerri class :python:`System_w90`. For doing this, ``.chk`` and ``.eig`` files from Wannier90 are required. Set :python:`spin = True` if the file ``.spn`` is provided: 88 | 89 | .. code:: python 90 | 91 | import wannierberri as wberri 92 | 93 | file_spn = True 94 | model_wb = wberri.System_w90(seedname = 'wannier90data', spin = file_spn, use_wcc_phase = True) 95 | 96 | Then, we need to initialize the model as a :python:`strawberrypy.Supercell`: 97 | 98 | .. code:: python 99 | 100 | model = strawberrypy.Supercell(tbmodel = model_wb, Lx = 1, Ly = 1, spinful = True, file_spn = file_spn, n_occ = 1012) 101 | 102 | where :python:`file_spn == True` allows to read the spin matrix in the Wannier basis which is used in the calculation of the single-point spin Chern number. Otherwise, the assumption of a tight-binding basis which is diagonal in the spin operator is considered. 103 | The parameter :python:`n_occ` is an integer indicating the number of occupied bands in the ab initio tight-binding model and must be provided. 104 | 105 | .. note:: 106 | The number of unit cells to be repeated along each direction must be set to the default value :python:`Lx = 1, Ly = 1` since the *ab initio* system provided as input is already a supercell. 107 | 108 | Finally, the single-point spin Chern number can be calculated as shown above: 109 | 110 | .. code:: python 111 | 112 | model.single_point_spin_chern() 113 | 114 | 115 | A couple of examples 116 | -------------------- 117 | 118 | Topological Anderson insulator in the Kane-Mele model 119 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 120 | As an example, we show the detection, through single-point spin Chern number calculation, of a disorder-induced transition in the Kane-Mele model from a trivial phase to a topological Anderson insulating (TAI) one, as investigated in Section 3.2 of Ref. `Favata-Marrazzo (2023) `_. 121 | 122 | .. code:: python 123 | 124 | import numpy as np 125 | from strawberrypy import * 126 | 127 | # Parameter of the supercell 128 | L = 24 129 | 130 | # Define the models in the unit cell 131 | km_model = example_models.kane_mele_tbmodels(rashba = 1., esite = 5.3, spin_orb = 0.3) 132 | 133 | # Create a supercell L x L 134 | model = supercell.Supercell(tbmodel = km_model, Lx = L, Ly = L, spinful = True) 135 | 136 | # Compute the single-point spin Chern number for the pristine model 137 | model.single_point_spin_chern(formula = 'symmetric') 138 | 139 | # Add on-site Anderson disorder 140 | model.add_onsite_disorder(w = 4.0, seed = 10) 141 | 142 | # Compute the single-point spin Chern number for the disordered model 143 | model.single_point_spin_chern(formula = 'symmetric') 144 | 145 | Output: ``In the pristine KM model (w = 0): SPSCN = -0.0024642975185114. In the disordered KM model (w = 4): SPSCN = 1.0092772036154`` 146 | 147 | Topological periodic heterostructure 148 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 149 | As an example, we report here the code used to generate Fig. 3 of Ref. `Baù-Marrazzo (2024a) `_. 150 | 151 | .. code:: python 152 | 153 | import numpy as np 154 | from strawberrypy import * 155 | 156 | # Parameters of the supercell 157 | Lx = 100 158 | Ly = 30 159 | 160 | # Define the models in the unit cell 161 | model = example_models.haldane_tbmodels(0.3, 1, 0.15, -np.pi / 2) 162 | model_trivial = example_models.haldane_tbmodels(1.25, 1, 0.15, -np.pi / 2) 163 | 164 | # Create a supercell for both models 165 | model = Supercell(model, Lx, Ly, spinful = False) 166 | model_trivial = Supercell(model_trivial, Lx, Ly, spinful = False) 167 | 168 | # Substitute model_trivial into model from cell 24 to 74 along the x direction 169 | model.make_heterostructure(model_trivial, direction = 0, start = 24, stop = 74) 170 | 171 | # Compute the PBC local Chern marker in the whole lattice 172 | pbclcm_lattice, projectors = model.pbc_local_chern_marker(return_projector = True, smearing_temperature = 0.05, fermidirac_cutoff = 0.1) 173 | 174 | # Compute the PBC local Chern marker along the x direction al half height 175 | pbclcm_line = model.pbc_local_chern_marker(direction = 0, start = Ly // 2, input_projector = projectors) 176 | 177 | .. image:: _static/media/heterostructure_pbclcm.png 178 | :width: 150% 179 | :alt: PBC local Chern marker produced with the code above 180 | -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["flit_core >=3.2,<4"] 3 | build-backend = "flit_core.buildapi" 4 | 5 | [project] 6 | name = "strawberrypy" 7 | authors = [{name = "Roberta Favata", email = "roberta.favata@phd.units.it"}, 8 | {name = "Nicolas Baù", email = "nicolas.bau@phd.units.it"}, 9 | {name = "Antimo Marrazzo", email="amarrazz@sissa.it"}] 10 | 11 | version = "0.3.1" 12 | 13 | description = "Python package for calculation of topological invariants through single-point formulas and local markers" 14 | keywords = ["physics", "tight-binding", "topology", "single-point invariants", "local topological markers", "wannier90"] 15 | 16 | readme = "README.rst" 17 | license = {file = "LICENSE.txt"} 18 | 19 | requires-python = ">= 3.8" 20 | dependencies = [ 21 | 'wannierberri[all]==0.15.0', 22 | 'pythtb==1.8.0', 23 | 'tbmodels==1.4.3', 24 | 'opt-einsum==3.3.0' 25 | ] 26 | 27 | classifiers = ["Programming Language :: Python :: 3.8"] 28 | 29 | [project.urls] 30 | repository = "https://github.com/strawberrypy-developers/strawberrypy.git" 31 | documentation = "http://strawberrypy.readthedocs.io/" 32 | 33 | [project.optional-dependencies] 34 | devs = ["sphinx", 35 | "sphinx-copybutton", 36 | "sphinxawesome-theme", 37 | "sphinx_book_theme", 38 | ] 39 | -------------------------------------------------------------------------------- /setup.py: -------------------------------------------------------------------------------- 1 | import setuptools 2 | 3 | setuptools.setup() 4 | -------------------------------------------------------------------------------- /strawberrypy/__init__.py: -------------------------------------------------------------------------------- 1 | from .classes import Model 2 | from .supercell import Supercell 3 | from .finite_model import FiniteModel 4 | from . import example_models 5 | -------------------------------------------------------------------------------- /strawberrypy/_pythtb/__init__.py: -------------------------------------------------------------------------------- 1 | from .attribute import get_positions, get_hamiltonian, _reciprocal_vec 2 | from .attribute import calc_states_uc, initialize_mask, calc_uc_vol, make_finite -------------------------------------------------------------------------------- /strawberrypy/_pythtb/attribute.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | 3 | def _orb_cart (model): 4 | """ 5 | Returns the cartesian coordinates of the orbitals of a model. ``pythtb.tb_model`` version. 6 | 7 | Parameters 8 | ---------- 9 | model : 10 | A ``pythtb.tb_model`` instance. 11 | nx_sites : 12 | Number of unit cells in the model along the :math:`\mathbf{a}_1` direction. 13 | ny_sites : 14 | Number of unit cells in the model along the :math:`\mathbf{a}_2` direction. 15 | 16 | Returns 17 | ------- 18 | positions : 19 | Cartesian coordinates of the lattice sites. 20 | 21 | .. warning:: 22 | This function is meant for internal use only since it does not discriminate whether the model is spinful or not. The use of ``get_positions`` should be preferred. 23 | """ 24 | n_orb = model.get_num_orbitals() 25 | lat_super = model.get_lat() 26 | orb_red = model.get_orb() 27 | 28 | orb_c = [] 29 | for i in range (n_orb): 30 | orb_c.append( (np.matmul(lat_super.transpose(),orb_red[i].reshape(-1,1))).squeeze() ) 31 | orb_c = np.array(orb_c) 32 | return orb_c 33 | 34 | def _reciprocal_vec(model): 35 | """ 36 | Returns reciprocal lattice vectors in cartesian coordinates. ``pythtb.tb_model`` version. 37 | 38 | Parameters 39 | ---------- 40 | model : 41 | A ``pythtb.tb_model`` instance. 42 | 43 | Returns 44 | ------- 45 | b1, b2 : 46 | Reciprocal lattice vectors. 47 | """ 48 | lat = model.get_lat() 49 | a_matrix = np.array([[lat[1,1], -lat[0,1]],[-lat[1,0], lat[0,0]]]) 50 | b_matrix = (2.*np.pi / (lat[0,0]*lat[1,1]-lat[0,1]*lat[1,0])) * a_matrix 51 | 52 | b1 = b_matrix[:,0].reshape(-1,1) 53 | b2 = b_matrix[:,1].reshape(-1,1) 54 | return b1, b2 55 | 56 | def get_positions(model, spinful): 57 | """ 58 | Returns the cartesian coordinates of the orbitals of a model. ``pythtb.tb_model`` version. 59 | 60 | Parameters 61 | ---------- 62 | model : 63 | A ``pythtb.tb_model`` instance. 64 | spinful : 65 | Whether the model is spinful or not. 66 | 67 | Returns 68 | ------- 69 | positions : 70 | Cartesian coordinates of the lattice sites. 71 | """ 72 | if not spinful: 73 | return _orb_cart(model) 74 | else: 75 | tmp = _orb_cart(model).T 76 | newx = np.repeat(tmp[0], 2) 77 | newy = np.repeat(tmp[1], 2) 78 | return np.array([newx, newy]).T 79 | 80 | def get_hamiltonian(model, spinful, point, dim): 81 | """ 82 | Returns the Hamiltonian at the given k-point and the number of occupied states (half-filling is assumed). ``pythtb.tb_model`` version. 83 | 84 | Parameters 85 | ---------- 86 | model : 87 | A ``pythtb.tb_model`` instance. 88 | spinful : 89 | Whether the model is spinful or not. 90 | point : 91 | A point in the reciprocal space. 92 | dim : 93 | Dimensionality of the reciprocal space. 94 | 95 | Returns 96 | ------- 97 | hamilton : 98 | Hamiltonian matrix calculated in ``point``. 99 | nocc : 100 | Number of occupied states (half-filling is assumed). 101 | """ 102 | if dim == model._dim_k: 103 | ham = model._gen_ham(point) 104 | else: 105 | ham = model._gen_ham() 106 | occ = model.get_num_orbitals() if spinful else model.get_num_orbitals() // 2 107 | 108 | return ham if not spinful else ham.reshape((2 * occ, 2 * occ)), occ 109 | 110 | def calc_states_uc(model, spinful): 111 | """ 112 | Returns the number of states per unit cell. ``pythtb.tb_model`` version. 113 | 114 | Parameters 115 | ---------- 116 | model : 117 | A ``pythtb.tb_model`` instance. 118 | spinful : 119 | Whether the model is spinful or not (needed to properly account for spinful models). 120 | 121 | Returns 122 | ------- 123 | size : 124 | Number of states per unit cell in the model. 125 | """ 126 | return model.get_num_orbitals() * (2 if spinful else 1) 127 | 128 | def initialize_mask(model, spinful): 129 | """ 130 | Returns a list of True for each state of the model. ``pythtb.tb_model`` version. 131 | 132 | Parameters 133 | ---------- 134 | model : 135 | A ``pythtb.tb_model`` instance. 136 | spinful : 137 | Whether the model is spinful or not (needed to properly account for spinful models). 138 | 139 | Returns 140 | ------- 141 | mask : 142 | A list of ``True`` values with the same dimension of the total number of orbitals in the model. 143 | """ 144 | return np.array([True for _ in range(model.get_num_orbitals() * (2 if spinful else 1))]) 145 | 146 | def calc_uc_vol(model): 147 | """ 148 | Returns the volume of a 2D unit cell. ``pythtb.tb_model`` version. 149 | 150 | Parameters 151 | ---------- 152 | model : 153 | A ``pythtb.tb_model`` instance. 154 | 155 | Returns 156 | ------- 157 | vol_uc : 158 | Volume of the 2D unit cell of the model. 159 | """ 160 | return np.linalg.norm(np.cross(model._lat[0], model._lat[1])) 161 | 162 | def make_finite(model, lx, ly): 163 | """ 164 | Returns an instance of a model with every periodic hopping removed (a finite model within open boundary conditions). ``pythtb.tb_model`` version. 165 | 166 | Parameters 167 | ---------- 168 | model : 169 | A ``pythtb.tb_model`` instance. 170 | lx : 171 | Number of unit cells of the sample along the :math:`\mathbf{a}_1` direction. 172 | ly : 173 | Number of unit cells of the sample along the :math:`\mathbf{a}_2` direction. 174 | 175 | Returns 176 | ------- 177 | finite : 178 | A model whose periodic hoppings have been removed (OBC model). 179 | """ 180 | if not (lx > 0 and ly > 0): 181 | raise RuntimeError("Number of sites along finite direction must be greater than 0") 182 | 183 | ribbon = model.cut_piece(num = ly, fin_dir = 1, glue_edgs = False) 184 | finite = ribbon.cut_piece(num = lx, fin_dir = 0, glue_edgs = False) 185 | 186 | return finite -------------------------------------------------------------------------------- /strawberrypy/_tbmodels/__init__.py: -------------------------------------------------------------------------------- 1 | from .attribute import get_positions, get_hamiltonian, _reciprocal_vec 2 | from .attribute import calc_states_uc, initialize_mask, calc_uc_vol, make_finite -------------------------------------------------------------------------------- /strawberrypy/_tbmodels/attribute.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | import tbmodels as tbm 3 | 4 | def _reciprocal_vec(model): 5 | """ 6 | Returns reciprocal lattice vectors in cartesian coordinates. ``tbmodels.Model`` version. 7 | 8 | Parameters 9 | ---------- 10 | model : 11 | A ``tbmodels.Model`` instance. 12 | 13 | Returns 14 | ------- 15 | b1, b2 : 16 | Reciprocal lattice vectors. 17 | """ 18 | b_matrix = model.reciprocal_lattice 19 | b1 = b_matrix[0,:] 20 | b2 = b_matrix[1,:] 21 | return b1, b2 22 | 23 | def get_positions(model, nx_sites = 1, ny_sites = 1): 24 | """ 25 | Returns the cartesian coordinates of the orbitals of a model. ``tbmodels.Model`` version. 26 | 27 | Parameters 28 | ---------- 29 | model : 30 | A ``tbmodels.model`` instance. 31 | nx_sites : 32 | Number of unit cells in the model along the :math:`\mathbf{a}_1` direction. 33 | ny_sites : 34 | Number of unit cells in the model along the :math:`\mathbf{a}_2` direction. 35 | 36 | Returns 37 | ------- 38 | positions : 39 | Cartesian coordinates of the lattice sites. 40 | """ 41 | positions = np.copy(model.pos) 42 | for i in range(model.pos.shape[0]): 43 | positions[i][0] *= nx_sites 44 | positions[i][1] *= ny_sites 45 | cartesian_pos = np.dot(positions[i], model.uc) 46 | positions[i] = cartesian_pos 47 | 48 | return positions 49 | 50 | 51 | def get_hamiltonian(model, point): 52 | """ 53 | Returns the Hamiltonian at the given k-point and the number of occupied states (half-filling is assumed). ``tbmodels.Model`` version. 54 | 55 | Parameters 56 | ---------- 57 | model : 58 | A ``tbmodels.Model`` instance. 59 | point : 60 | A point in the reciprocal space. 61 | 62 | Returns 63 | ------- 64 | hamilton : 65 | Hamiltonian matrix calculated in ``point``. 66 | nocc : 67 | Number of occupied states (half-filling is assumed). 68 | """ 69 | return model.hamilton(point, convention = 1), model.occ 70 | 71 | def calc_states_uc(model): 72 | """ 73 | Returns the number of states per unit cell. ``tbmodels.Model`` version. 74 | 75 | Parameters 76 | ---------- 77 | model : 78 | A ``tbmodels.Model`` instance. 79 | 80 | Returns 81 | ------- 82 | size : 83 | Number of states per unit cell in the model. 84 | """ 85 | return model.size 86 | 87 | def initialize_mask(model): 88 | """ 89 | Returns a list of True for each state of the model. ``tbmodels.Model`` version. 90 | 91 | Parameters 92 | ---------- 93 | model : 94 | A ``tbmodels.Model`` instance. 95 | 96 | Returns 97 | ------- 98 | mask : 99 | A list of ``True`` values with the same dimension of the total number of orbitals in the model. 100 | """ 101 | return np.array([True for _ in range(model.size)]) 102 | 103 | def calc_uc_vol(model): 104 | """ 105 | Returns the volume of a 2D unit cell. ``tbmodels.Model`` version. 106 | 107 | Parameters 108 | ---------- 109 | model : 110 | A ``tbmodels.Model`` instance. 111 | 112 | Returns 113 | ------- 114 | vol_uc : 115 | Volume of the 2D unit cell of the model. 116 | """ 117 | return np.linalg.norm(np.cross(model.uc[0], model.uc[1])) 118 | 119 | def cut_piece_tbm(source_model, num : int, fin_dir : int, dimk : int, glue : bool = False): 120 | """ 121 | Remove the periodic hoppings of a ``tbmodels.Model`` along a given direction, building a supercell made with given number of unit cells in the finite direction. If a zero-dimensional system is needed, it is required to run twice the function with ``dimk = 1`` first, and then ``dimk = 0``. This is implemented in ``make_finte``. 122 | 123 | Parameters 124 | ---------- 125 | source_model : 126 | A ``tbmodels.Model`` instance. 127 | num : 128 | The number of unit cells composing the supercell along the finite direction. 129 | fin_dir : 130 | The finite direction (allowed values are ``0``, meaning the :math:`\mathbf{a}_1` direction, and ``1`` for the :math:`\mathbf{a}_2` direction). 131 | dimk : 132 | Number of periodic directions after the cut. For instance, if a xy-periodic system is given, and a x-periodic and y-finite system is returned, ``dimk`` should be set to ``1``. 133 | glue : 134 | Whether to glue the finite edges to impose the periodicity again (supercell). 135 | 136 | Returns 137 | ------- 138 | model : 139 | A ``tbmodels.Model`` whose periodic hoppings along ``fin_dir`` are removed (if ``glue = False``). 140 | """ 141 | # Check input variables 142 | if num <= 0: 143 | raise RuntimeError("Negative number of cells in the finite direction required.") 144 | if fin_dir not in [0, 1]: 145 | raise RuntimeError("Finite direction not allowed (only 2D systems).") 146 | if dimk not in [0, 1]: 147 | raise RuntimeError("Leftover k-space dimension not allowed.") 148 | if num == 1 and glue == True: 149 | raise RuntimeError("Cannot glue edges with one cell in the finite direction.") 150 | 151 | # Number of orbitals in the supercell model = norbs (original) x num 152 | norbs = source_model.size 153 | 154 | # Define the supercell 155 | newpos = [] 156 | for i in range(num): 157 | for j in range(norbs): 158 | # Convert coordinates into cartesian coordinates 159 | orb_tmp = np.copy(source_model.pos[j, :]) 160 | 161 | # One direction is fine but I need to map the other into the unit cell 162 | orb_tmp[fin_dir] += float(i) 163 | orb_tmp[fin_dir] /= num 164 | 165 | newpos.append(orb_tmp) 166 | 167 | # On-site energies per unit cell (2 is by convention with TBmodels) 168 | onsite = num * [2 * np.real(source_model.hop[source_model._zero_vec][j][j]) for j in range(norbs)] 169 | 170 | # Hopping amplitudes and positions 171 | hoppings = [[key, val] for key, val in iter(source_model.hop.items())] 172 | 173 | # Hoppings to be added 174 | hopping_list = [] 175 | 176 | # Cycle over the number of defined hoppings 177 | for j in range(len(hoppings)): 178 | 179 | # Set lattice vector of the current hopping matrix 180 | objective = np.copy(hoppings[j][0]) 181 | 182 | # Maximum bond length 183 | jump_fin = hoppings[j][0][fin_dir] 184 | 185 | # If I have a finite direction I make the hopping vector finite, and if I have no periodic direction, I put every hopping to the [zero] cell 186 | if dimk != 0: 187 | objective[fin_dir] = 0 188 | else: 189 | objective = np.array([0 for i in range(source_model.dim)]) 190 | 191 | # Cycle over the rows of the hopping matrix 192 | for k in range(hoppings[j][1].shape[0]): 193 | 194 | # Cycle over the columns of the hopping matrix 195 | for l in range(hoppings[j][1].shape[1]): 196 | 197 | # Hopping amplitudes 198 | amplitude = hoppings[j][1][k][l] 199 | if np.absolute(amplitude) < 1e-10: 200 | continue 201 | 202 | # Cycle over the cells in the supercell 203 | for i in range(num): 204 | starting = k + i * norbs 205 | ending = l + (i + jump_fin) * norbs 206 | 207 | # Decide wether to add the hopping or not 208 | to_add = True 209 | 210 | if not glue: 211 | if ending < 0 or ending >= norbs * num: 212 | to_add = False 213 | else: 214 | ending = int(ending) % int(norbs * num) 215 | 216 | # Avoid setting on-site energies twice 217 | if starting == ending and (objective == [0 for i in range(source_model.dim)]).all(): 218 | continue 219 | 220 | if to_add == True: 221 | hopping_list.append([amplitude, int(starting), int(ending), objective]) 222 | 223 | model = tbm.Model.from_hop_list(hop_list = hopping_list, on_site = onsite, size = norbs * num, dim = source_model.dim, 224 | occ = source_model.occ * num, uc = source_model.uc, pos = newpos, contains_cc = False) 225 | 226 | return model 227 | 228 | def make_finite(model, lx, ly): 229 | """ 230 | Returns an instance of a model with every periodic hopping removed (a finite model within open boundary conditions). ``tbmodels.Model`` version. 231 | 232 | Parameters 233 | ---------- 234 | model : 235 | A ``tbmodels.Model`` instance. 236 | lx : 237 | Number of unit cells of the sample along the :math:`\mathbf{a}_1` direction. 238 | ly : 239 | Number of unit cells of the sample along the :math:`\mathbf{a}_2` direction. 240 | 241 | Returns 242 | ------- 243 | finite : 244 | A model whose periodic hoppings have been removed (OBC model). 245 | """ 246 | if not (lx > 0 and ly > 0): 247 | raise RuntimeError("Number of sites along finite direction must be greater than 0") 248 | 249 | ribbon = cut_piece_tbm(model, num = ly, fin_dir = 1, dimk = 1, glue = False) 250 | finite = cut_piece_tbm(ribbon, num = lx, fin_dir = 0, dimk = 0, glue = False) 251 | 252 | return finite -------------------------------------------------------------------------------- /strawberrypy/_wberri/__init__.py: -------------------------------------------------------------------------------- 1 | from .attribute import get_positions, get_hamiltonian, read_spn, _reciprocal_vec 2 | from .attribute import calc_states_uc, initialize_mask -------------------------------------------------------------------------------- /strawberrypy/_wberri/attribute.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | from wannierberri import Grid 3 | from wannierberri.data_K import Data_K_R 4 | 5 | 6 | def _reciprocal_vec(model): 7 | """ 8 | Returns reciprocal lattice vectors in cartesian coordinates. ``wannierberri.System_w90`` version. 9 | 10 | Parameters 11 | ---------- 12 | model : 13 | A ``wannierberri.System_w90`` instance. 14 | 15 | Returns 16 | ------- 17 | b1, b2 : 18 | Reciprocal lattice vectors. 19 | """ 20 | b_matrix = model.recip_lattice 21 | b1 = b_matrix[0,:] 22 | b2 = b_matrix[1,:] 23 | return b1, b2 24 | 25 | def get_positions(model): 26 | """ 27 | Returns the cartesian coordinates of the centers of Wannier functions. ``wannierberri.System_w90`` version. 28 | 29 | Parameters 30 | ---------- 31 | model : 32 | A ``wannierberri.System_w90`` instance. 33 | 34 | Returns 35 | ------- 36 | positions : 37 | Cartesian coordinates of the centers of Wannier functions. 38 | """ 39 | return model.wannier_centers_cart 40 | 41 | def get_hamiltonian(model): 42 | r""" 43 | Returns the Wannier Hamiltonian at the :math:`\Gamma`-point (see Eq. (13) in Ref. `Marrazzo et al. (2023) `_ ) and the Data_K_R object containing information on the FFT grid for a ``wannierberri.System_w90`` instance defined by R-space matrices. 44 | 45 | Parameters 46 | ---------- 47 | model : 48 | A ``wannierberri.System_w90`` instance. 49 | 50 | Returns 51 | ------- 52 | ham : 53 | Interpolated Hamiltonian matrix in the Wannier gauge calculated at the :math:`\Gamma`-point. 54 | data : 55 | ``wannierberri.System_w90`` object for extracting k-space Wannier interpolated matrices. 56 | """ 57 | 58 | print('Reading Hamiltonian at Gamma point in Wannier gauge..') 59 | grid = Grid(model, NK=[1,1,1]) 60 | dK = [0,0,0] 61 | data = Data_K_R(model, dK, grid) 62 | 63 | Ham_W_R = model.Ham_R.copy() 64 | Ham_W_k = data.fft_R_to_k(Ham_W_R, hermitean=True) 65 | ham = Ham_W_k[0,:,:] 66 | 67 | return ham, data 68 | 69 | def read_spn(model, data, u_n0): 70 | r""" 71 | Returns the Wannier interpolated spin matrix :math:`S^(H)_z` (see Eq. (25) in Ref. `Marrazzo et al. (2023) `_ ) at the :math:`\Gamma`-point if seedname.spn file is provided. 72 | 73 | Parameters 74 | ---------- 75 | model : 76 | A ``wannierberri.System_w90`` instance. 77 | data : 78 | ``wannierberri.System_w90`` object for extracting k-space Wannier interpolated matrices. 79 | u_n0 : 80 | Matrix of Hamiltonian eigenstates at :math:`\Gamma`-point (unitary matrix :math:`\mathcal{U}` in Eq. (25) in Ref. `Marrazzo et al. (2023) `_ ). 81 | 82 | Returns 83 | ------- 84 | Sz : 85 | Wannier interpolated spin matrix calculated at the :math:`\Gamma`-point. 86 | """ 87 | 88 | print('Reading Spin matrix at Gamma point in Wannier gauge..') 89 | 90 | SS = data.fft_R_to_k(model.get_R_mat('SS').copy(), hermitean=True) 91 | Sz_W = SS[0,:,:,2] 92 | Sz = np.conj(u_n0) @ Sz_W @ u_n0.T 93 | 94 | return Sz 95 | 96 | def calc_states_uc(model): 97 | """ 98 | Returns the number of Wannier functions per unit cell for a wannierberri.System_w90 99 | """ 100 | return model.num_wann 101 | 102 | def initialize_mask(model): 103 | """ 104 | Returns a list of True for each state of the model 105 | """ 106 | return np.array([True for _ in range(model.num_wann)]) 107 | 108 | -------------------------------------------------------------------------------- /strawberrypy/example_models/__init__.py: -------------------------------------------------------------------------------- 1 | from .kane_mele import kane_mele_pythtb, kane_mele_tbmodels 2 | from .haldane import haldane_pythtb, haldane_tbmodels -------------------------------------------------------------------------------- /strawberrypy/example_models/haldane.py: -------------------------------------------------------------------------------- 1 | r""" 2 | This module contains two equivalent functions that create an instance of the `Haldane model `_ with PythTB or TBmodels. The Haldane model is a tight-binding model describing spinless electrons hopping on a 2D honeycomb lattice with a staggered magnetic flux. The parameters of the model are the nearest-neighbor hopping :math:`t`, the on-site energy term :math:`\pm\Delta` with opposite signs on the two sublattices and the second-nearest-neighbor hopping term :math:`t_2e^{i\phi}`. The Hamiltonian of the model reads: 3 | 4 | .. math:: 5 | 6 | \mathcal{H} = \Delta\sum_{i}\left( c_{i,A}^{\dagger}c_{i,A}-c_{i,B}^{\dagger}c_{i,B} \right) + t \sum_{\langle ij\rangle}c_i^{\dagger}c_j+t_2\sum_{\langle\langle ij\rangle\rangle} e^{i\nu_{ij}\phi}c_i^{\dagger}c_j + \mathrm{h.c.} 7 | 8 | where :math:`\nu_{ij}=\pm 1` is a factor accounting for the direction of the complex hopping. 9 | """ 10 | 11 | from pythtb import tb_model 12 | from tbmodels import Model 13 | 14 | import numpy as np 15 | 16 | def haldane_pythtb(delta, t, t2, phi): 17 | # From http://www.physics.rutgers.edu/pythtb/examples.html#haldane-model 18 | lat=[[1.0,0.0],[0.5,np.sqrt(3.0)/2.0]] 19 | orb=[[0.0,0.0],[1./3.,1./3.]] 20 | model=tb_model(2,2,lat,orb) 21 | model.set_onsite([-delta,delta]) 22 | for lvec in ([ 0, 0], [-1, 0], [ 0,-1]): 23 | model.set_hop(t, 0, 1, lvec) 24 | for lvec in ([ 1, 0], [-1, 1], [ 0,-1]): 25 | model.set_hop(t2*np.exp(1.j*phi), 0, 0, lvec) 26 | for lvec in ([-1, 0], [ 1,-1], [ 0, 1]): 27 | model.set_hop(t2*np.exp(1.j*phi), 1, 1, lvec) 28 | 29 | return model 30 | 31 | def haldane_tbmodels(delta, t, t2, phi): 32 | primitive_cell = [[1.0,0.0],[0.5,np.sqrt(3.0)/2.0]] 33 | orb = [[0.0,0.0],[1./3.,1./3.]] 34 | h_model = Model(on_site=[-delta,delta], dim=2, occ=1, pos=orb, uc=primitive_cell) 35 | for lvec in ([0,0],[-1,0],[0,-1]): 36 | h_model.add_hop(t, 0,1,lvec) 37 | for lvec in ([1,0],[-1,1],[0,-1]): 38 | h_model.add_hop(t2*np.exp(1.j*phi), 0,0,lvec) 39 | for lvec in ([-1,0],[1,-1],[0,1]): 40 | h_model.add_hop(t2*np.exp(1.j*phi), 1,1,lvec) 41 | 42 | return h_model -------------------------------------------------------------------------------- /strawberrypy/example_models/kane_mele.py: -------------------------------------------------------------------------------- 1 | r""" 2 | This module contains two equivalent functions that create an instance of the `Kane-Mele model `_ with PythTB or TBmodels. The Kane-Mele model is a tight-binding model describing spinful electrons hopping on a 2D honeycomb lattice with spin-orbit coupling and a Rashba term (breaking :math:`S_z`-symmetry). The parameters of the model are the intensity of the diagonal spin-orbit coupling :math:`\lambda_{SO}`, the Rashba term :math:`\lambda_{R}`. The Hamiltonian of the model reads: 3 | 4 | .. math:: 5 | 6 | \mathcal{H} = \Delta\sum_{i}(-1)^{\tau_i}c_{i}^{\dagger}c_{i} + t \sum_{\langle ij\rangle}c_i^{\dagger}c_j+i\lambda_{SO}\sum_{\langle\langle ij\rangle\rangle} \nu_{ij}c_i^{\dagger}\sigma_zc_j + i\lambda_R\sum_{\langle ij\rangle}c_i^{\dagger}(\hat{\mathbf e}_{\langle ij\rangle}\cdot\boldsymbol\sigma)c_j + \mathrm{h.c.} 7 | 8 | where :math:`\tau_i\in\{0,1\}` is an index which distinguishes the two sublattices, :math:`\nu_{ij}=\pm 1` accounts for the direction of the hoppings and :math:`\hat{\mathbf e}_{\langle ij\rangle}=\hat{\mathbf d}_{\langle ij\rangle}\times\hat{\mathbf z}` where :math:`\hat{\mathbf d}_{\langle ij\rangle}` is the unit vector in the direction from site :math:`i` to site :math:`j`. In the Hamiltonian, the double sum on the spin indices is implied in each term, with the convention that if no spin matrices appear, they are contracted over the identity. 9 | """ 10 | 11 | from pythtb import tb_model 12 | from tbmodels import Model 13 | 14 | import numpy as np 15 | 16 | def kane_mele_pythtb(rashba, esite, spin_orb): 17 | # From http://www.physics.rutgers.edu/pythtb/examples.html#kane-mele-model-using-spinor-features 18 | 19 | # define lattice vectors 20 | lat=[[1.0,0.0],[0.5,np.sqrt(3.0)/2.0]] 21 | # define coordinates of orbitals 22 | orb=[[0.0,0.0],[1./3.,1./3.]] 23 | 24 | # make two dimensional tight-binding Kane-Mele model 25 | km_model=tb_model(2,2,lat,orb,nspin=2) 26 | 27 | # set other parameters of the model 28 | thop=1.0 29 | 30 | rashba = rashba*spin_orb 31 | esite = esite*spin_orb 32 | 33 | # set on-site energies 34 | km_model.set_onsite([esite, -esite]) 35 | 36 | # set hoppings (one for each connected pair of orbitals) 37 | # (amplitude, i, j, [lattice vector to cell containing j]) 38 | 39 | # useful definitions 40 | sigma_x=np.array([0.,1.,0.,0]) 41 | sigma_y=np.array([0.,0.,1.,0]) 42 | sigma_z=np.array([0.,0.,0.,1]) 43 | 44 | # spin-independent first-neighbor hops 45 | for lvec in ([ 0, 0], [-1, 0], [ 0,-1]): 46 | km_model.set_hop(thop, 0, 1, lvec) 47 | 48 | # spin-dependent second-neighbor hops 49 | for lvec in ([ 1, 0], [-1, 1], [ 0,-1]): 50 | km_model.set_hop(1.j*spin_orb*sigma_z, 0, 0, lvec) 51 | for lvec in ([-1, 0], [ 1,-1], [ 0, 1]): 52 | km_model.set_hop(1.j*spin_orb*sigma_z, 1, 1, lvec) 53 | 54 | # Rashba first-neighbor hoppings: (s_x)(dy)-(s_y)(d_x) 55 | r3h =np.sqrt(3.0)/2.0 56 | 57 | # bond unit vectors are (r3h,half) then (0,-1) then (-r3h,half) 58 | km_model.set_hop(1.j*rashba*( 0.5*sigma_x-r3h*sigma_y), 0, 1, [ 0, 0], mode="add") 59 | km_model.set_hop(1.j*rashba*(-1.0*sigma_x ), 0, 1, [ 0,-1], mode="add") 60 | km_model.set_hop(1.j*rashba*( 0.5*sigma_x+r3h*sigma_y), 0, 1, [-1, 0], mode="add") 61 | 62 | return km_model 63 | 64 | def kane_mele_tbmodels(rashba,esite,spin_orb): 65 | 66 | t_hop = 1.0 67 | r = rashba*spin_orb 68 | e = esite*spin_orb 69 | 70 | primitive_cell = [[1.0,0.0],[0.5,np.sqrt(3.0)/2.0]] 71 | orb = [[0.0,0.0],[0.0,0.0],[1./3.,1./3.],[1./3.,1./3.]] 72 | 73 | #set energy on site 74 | km_model = Model(on_site=[e,e,-e,-e], dim=2, occ=2, pos=orb, uc=primitive_cell) 75 | 76 | #spin-independent first-neighbor hops 77 | for lvec in ([0,0],[-1,0],[0,-1]): 78 | km_model.add_hop(t_hop,0,2,lvec) 79 | km_model.add_hop(t_hop,1,3,lvec) 80 | 81 | #spin-dependent second-neighbor hops 82 | for lvec in ([1,0],[-1,1],[0,-1]): 83 | km_model.add_hop(1.j*spin_orb, 0,0,lvec) 84 | km_model.add_hop(-1.j*spin_orb, 1,1,lvec) 85 | for lvec in ([-1,0],[1,-1],[0,1]): 86 | km_model.add_hop(1.j*spin_orb,2,2,lvec) 87 | km_model.add_hop(-1.j*spin_orb, 3,3,lvec) 88 | 89 | #Rashba first neighbor hoppings : (s_x)(dy)-(s_y)(dx) 90 | r3h = np.sqrt(3.0)/2.0 91 | 92 | #bond unit vectors are (r3h,half) then (0,-1) then (-r3h,half) 93 | km_model.add_hop(1.j*r*(0.5-1.j*r3h), 1, 2, [ 0, 0]) 94 | km_model.add_hop(1.j*r*(0.5+1.j*r3h), 0, 3, [ 0, 0]) 95 | km_model.add_hop(-1.j*r, 1, 2, [ 0, -1]) 96 | km_model.add_hop(-1.j*r, 0, 3, [ 0, -1]) 97 | km_model.add_hop(1.j*r*(0.5+1.j*r3h), 1, 2, [ -1, 0]) 98 | km_model.add_hop(1.j*r*(0.5-1.j*r3h), 0, 3, [ -1, 0]) 99 | 100 | return km_model -------------------------------------------------------------------------------- /strawberrypy/utils.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | 3 | def fermidirac(evals, temperature : float, mu : float): 4 | r""" 5 | The Fermi-Dirac distribution :math:`f(\epsilon, T, \mu)=\big[ 1 + e^{\frac{\epsilon-\mu}{T}} \big]^{-1}`. 6 | 7 | Parameters 8 | ---------- 9 | evals : 10 | List of eigenvalues of the Hamiltonian. 11 | temperature : 12 | Temperature of the system. 13 | mu : 14 | The chemical potential of the system. 15 | 16 | Returns 17 | ------- 18 | occupations : :python:`np.array | float` 19 | The occupation(s) of the state corresponding to the given energy(ies) 20 | """ 21 | if temperature < 1e-6: 22 | if evals.shape == (): 23 | return 1 if evals <+ mu else 0 24 | else: 25 | return np.array([ 1 if e <= mu else 0 for e in evals ]) 26 | else: 27 | return 1 / (1 + np.exp( (evals - mu) / temperature )) 28 | 29 | 30 | def chemical_potential(evals, temperature : float, occupied_states : int): 31 | r""" 32 | Calculate the chemical potential of a given model knowing the eigenvalue distribution and the number of electrons (occupied states) in the system. 33 | 34 | Parameters 35 | ---------- 36 | evals : 37 | List of eigenvalues of the Hamiltonian. 38 | temperature : 39 | Temperature (real or fictitious, as in the case of smearing) of the system, appearing in the Fermi-Dirac distribution. 40 | occupied_states : 41 | Number of occupied states of the system. 42 | 43 | Returns 44 | ------- 45 | mu : :python:`float` 46 | The chemical potential of the system. 47 | 48 | .. warning:: 49 | The chemical potential is calculated via bisection method, if convergence is not achieved in 200 iterations, an error is returned. 50 | """ 51 | mu_min = np.min(evals) 52 | mu_max = np.max(evals) 53 | mu = 0 54 | niter = 0 55 | maxiter = 200 56 | 57 | while True: 58 | mu = 0.5 * (mu_min + mu_max) 59 | n_exp = np.sum(fermidirac(evals, temperature, mu)) 60 | 61 | if n_exp < occupied_states: 62 | mu_min = mu 63 | else: 64 | mu_max = mu 65 | 66 | if np.abs(n_exp - occupied_states) < 1e-6: 67 | break 68 | 69 | niter += 1 70 | if niter > maxiter: 71 | raise RuntimeError("Chemical potential cannot be found: bisection method failed (200 iterations)") 72 | return mu 73 | 74 | 75 | def smearing(vecs, gamma_hevecs, evals, temperature : float, mu : float): 76 | r""" 77 | Smearing introduced to improve the convergence of the formula: it measures how much the projector built from :python:`vecs` is similar to the one built from :python:`gamma_hevecs`, the eigenstates of the Hamiltonian at the :math:`\Gamma`-point. Naming :math:`|\phi_n\rangle` the vectors in :python:`vecs` and :math:`|u_n\rangle` the ones in :python:`gamma_hevecs`, the smearing factor is computed as :math:`c_n=\sum_m f(\epsilon_m, T_s, \mu)|\langle \phi_n|u_m\rangle|^2`, where :math:`\epsilon_m` is the eigenvalue corresponding to the eigenstate :math:`|u_m\rangle`, :math:`T_s` is the smearing temperature, :math:`\mu` is the chemical potential. 78 | 79 | Parameters 80 | ---------- 81 | vecs : 82 | List of states that need to be weighted according to some smearing. 83 | gamma_hevecs : 84 | Eigenstates of th Hamiltonian at the :math:`\Gamma`-point. 85 | evals : 86 | Eigenvales of the Hamiltonian at the :math:`\Gamma`-point. 87 | temperature : 88 | Temperature introduced to smoothen the occupation of the states (smearing temperature). 89 | mu : 90 | Chemical potential of the system. 91 | 92 | Returns 93 | ------- 94 | smearing_coeffs : :python:`np.array` 95 | A list of smearing coefficients that weights the states :python:`vecs`. 96 | """ 97 | if temperature < 1e-6: 98 | return np.array([1 for _ in range(vecs.shape[1])]) 99 | else: 100 | return np.array([np.sum([fermidirac(evals[m], temperature, mu) * np.abs(np.vdot(vecs[:, n], gamma_hevecs[:, m])) ** 2 for m in range(gamma_hevecs.shape[1])]) for n in range(vecs.shape[1])]) 101 | 102 | 103 | def unique_vacancies(num : int, Lx : int, Ly : int, basis : int, seed : int = None): 104 | r""" 105 | Returns a list of unique random lattice sites to be removed in the model using the method :python:`add_vacancies`. 106 | 107 | Parameters 108 | ---------- 109 | num : 110 | Number of lattice positions to generate. 111 | Lx : 112 | Number of unit cells of the model along the :math:`\mathbf{a}_1` direction. 113 | Ly : 114 | Number of unit cells of the model along the :math:`\mathbf{a}_2` direction. 115 | basis : 116 | Number of atoms per unit cell. 117 | seed : 118 | Seed for the random number generation. Default is :python:`None`. 119 | 120 | Returns 121 | ------- 122 | unique_list : :python:`list` 123 | List of unique random lattice site. 124 | """ 125 | 126 | indexes = [] 127 | unique_list = [] 128 | 129 | # Set random seed 130 | if seed is not None: 131 | np.random.seed(seed) 132 | 133 | # Generate num unique entries 134 | while len(unique_list) < num: 135 | # Trial entry 136 | trial = [np.random.randint(Lx), np.random.randint(Ly), np.random.randint(basis)] 137 | 138 | # Generate internal index 139 | trial_index = Ly * basis * trial[0] + basis * trial[1] + trial[2] 140 | 141 | # If this is a new entry store it 142 | if not trial_index in indexes: 143 | indexes.append(trial_index) 144 | unique_list.append(trial) 145 | 146 | return unique_list -------------------------------------------------------------------------------- /tests/check/lcm_heterostructure.check: -------------------------------------------------------------------------------- 1 | -1.499502174776342043e-05 2 | -1.499502174776342043e-05 3 | 1.056859071353438758e-06 4 | 1.056859071353438758e-06 5 | -1.688048045753319553e-05 6 | -1.688048045753319553e-05 7 | -1.721827050793003097e-05 8 | -1.721827050793003097e-05 9 | -1.722316700858372458e-05 10 | -1.722316700858372458e-05 11 | -1.718303346597427277e-05 12 | -1.718303346597427277e-05 13 | -1.052457194138528200e-05 14 | -1.052457194138528200e-05 15 | -3.551760070361154671e-05 16 | -3.551760070361154671e-05 17 | 1.056859072496972624e-06 18 | 1.056859072496972624e-06 19 | 3.380900958440049436e-05 20 | 3.380900958440049436e-05 21 | 1.721990715680239367e-05 22 | 1.721990715680239367e-05 23 | 1.690058765927125535e-05 24 | 1.690058765927125535e-05 25 | 1.689768660211275820e-05 26 | 1.689768660211275820e-05 27 | 1.712852833870597536e-05 28 | 1.712852833870597536e-05 29 | 3.373568560742706086e-05 30 | 3.373568560742706086e-05 31 | -1.052457203179981835e-05 32 | -1.052457203179981835e-05 33 | -1.688048069947490593e-05 34 | -1.688048069947490593e-05 35 | 1.721990395369073538e-05 36 | 1.721990395369073538e-05 37 | 6.456033269759835545e-07 38 | 6.456033269759835545e-07 39 | 3.276707304178968564e-07 40 | 3.276707304178968564e-07 41 | 3.271328878877909374e-07 42 | 3.271328878877909374e-07 43 | 6.448669686940792214e-07 44 | 6.448669686940792214e-07 45 | 1.712851887581760317e-05 46 | 1.712851887581760317e-05 47 | -1.718304245923347746e-05 48 | -1.718304245923347746e-05 49 | -1.721831639085333944e-05 50 | -1.721831639085333944e-05 51 | 1.690007954638686314e-05 52 | 1.690007954638686314e-05 53 | 3.261812090925811426e-07 54 | 3.261812090925811426e-07 55 | 7.962852371409637847e-09 56 | 7.962852371409637847e-09 57 | 8.496665158854999775e-09 58 | 8.496665158854999775e-09 59 | 3.261591609927438170e-07 60 | 3.261591609927438170e-07 61 | 1.689673417109140578e-05 62 | 1.689673417109140578e-05 63 | -1.722404818192072983e-05 64 | -1.722404818192072983e-05 65 | -1.723208289888344705e-05 66 | -1.723208289888344705e-05 67 | 1.682176855923955236e-05 68 | 1.682176855923955236e-05 69 | 1.646448324598841267e-07 70 | 1.646448324598841267e-07 71 | -1.367499237544327533e-07 72 | -1.367499237544327533e-07 73 | -9.329075086822398222e-08 74 | -9.329075086822398222e-08 75 | 2.322582529531730860e-07 76 | 2.322582529531730860e-07 77 | 1.680663081695860003e-05 78 | 1.680663081695860003e-05 79 | -1.730224127642200318e-05 80 | -1.730224127642200318e-05 81 | -1.899320163598588177e-05 82 | -1.899320163598588177e-05 83 | 6.259104141551189343e-06 84 | 6.259104141551189343e-06 85 | -1.438824537974934138e-05 86 | -1.438824537974934138e-05 87 | -1.014881697684700657e-05 88 | -1.014881697684700657e-05 89 | -8.809280668743546116e-06 90 | -8.809280668743546116e-06 91 | -8.537244519300965631e-06 92 | -8.537244519300965631e-06 93 | 8.323403404537835289e-06 94 | 8.323403404537835289e-06 95 | -2.452608253218777816e-05 96 | -2.452608253218777816e-05 97 | -4.048613824884514053e-04 98 | -4.048613824884514053e-04 99 | -1.288462452759547069e-03 100 | -1.288462452759547069e-03 101 | -9.602966308392805756e-04 102 | -9.602966308392805756e-04 103 | -7.633074390585237656e-04 104 | -7.633074390585237656e-04 105 | -7.694960299018112175e-04 106 | -7.694960299018112175e-04 107 | -7.803258246649920089e-04 108 | -7.803258246649920089e-04 109 | -7.288123056157766238e-04 110 | -7.288123056157766238e-04 111 | -6.246288569724081944e-04 112 | -6.246288569724081944e-04 113 | -7.699226656470227470e-02 114 | -7.699226656470227470e-02 115 | -6.975381567956960571e-02 116 | -6.975381567956960571e-02 117 | -4.755252257115780146e-02 118 | -4.755252257115780146e-02 119 | -4.678022086977841332e-02 120 | -4.678022086977841332e-02 121 | -4.883373458890706564e-02 122 | -4.883373458890706564e-02 123 | -5.001743369395625360e-02 124 | -5.001743369395625360e-02 125 | -4.768041483407289838e-02 126 | -4.768041483407289838e-02 127 | -3.753939266229970595e-02 128 | -3.753939266229970595e-02 129 | -2.098115152584645315e+00 130 | -2.098115152584645315e+00 131 | -1.185623094860213556e+00 132 | -1.185623094860213556e+00 133 | -6.921884509411024844e-01 134 | -6.921884509411024844e-01 135 | -7.026425742976710742e-01 136 | -7.026425742976710742e-01 137 | -7.619888660760493204e-01 138 | -7.619888660760493204e-01 139 | -8.243320953927959494e-01 140 | -8.243320953927959494e-01 141 | -8.710143943364062613e-01 142 | -8.710143943364062613e-01 143 | -1.067761198810689205e+00 144 | -1.067761198810689205e+00 145 | -1.483178005980059000e+00 146 | -1.483178005980059000e+00 147 | 4.492634323604859925e-01 148 | 4.492634323604859925e-01 149 | 7.210792557295873095e-01 150 | 7.210792557295873095e-01 151 | 7.080628930053589620e-01 152 | 7.080628930053589620e-01 153 | 6.980912109722142711e-01 154 | 6.980912109722142711e-01 155 | 6.726982873684269615e-01 156 | 6.726982873684269615e-01 157 | 5.006135791528000256e-01 158 | 5.006135791528000256e-01 159 | -9.462048391102741984e-01 160 | -9.462048391102741984e-01 161 | -8.929425391163847703e-01 162 | -8.929425391163847703e-01 163 | 8.140254124764005894e-01 164 | 8.140254124764005894e-01 165 | 9.648284796639996497e-01 166 | 9.648284796639996497e-01 167 | 9.611382670216910284e-01 168 | 9.611382670216910284e-01 169 | 9.467192740209700030e-01 170 | 9.467192740209700030e-01 171 | 8.979536804358508872e-01 172 | 8.979536804358508872e-01 173 | 6.821007282227391499e-01 174 | 6.821007282227391499e-01 175 | -9.171344098065403738e-01 176 | -9.171344098065403738e-01 177 | -8.263906095646864625e-01 178 | -8.263906095646864625e-01 179 | 8.187609888020449533e-01 180 | 8.187609888020449533e-01 181 | 9.806385087466895634e-01 182 | 9.806385087466895634e-01 183 | 9.852888748138153296e-01 184 | 9.852888748138153296e-01 185 | 9.796541786716717048e-01 186 | 9.796541786716717048e-01 187 | 9.536498186110766717e-01 188 | 9.536498186110766717e-01 189 | 7.253515872795970321e-01 190 | 7.253515872795970321e-01 191 | -8.443816461132330753e-01 192 | -8.443816461132330753e-01 193 | -8.915426853297038212e-01 194 | -8.915426853297038212e-01 195 | 7.940705675559396326e-01 196 | 7.940705675559396326e-01 197 | 9.687708812664621583e-01 198 | 9.687708812664621583e-01 199 | 9.843862495674101654e-01 200 | 9.843862495674101654e-01 201 | 9.858368060017963508e-01 202 | 9.858368060017963508e-01 203 | 9.709738187210424920e-01 204 | 9.709738187210424920e-01 205 | 7.506214313971778518e-01 206 | 7.506214313971778518e-01 207 | -7.666515015546557787e-01 208 | -7.666515015546557787e-01 209 | -9.584286432590763960e-01 210 | -9.584286432590763960e-01 211 | 7.487309109333319945e-01 212 | 7.487309109333319945e-01 213 | 9.217407780164118547e-01 214 | 9.217407780164118547e-01 215 | 9.613319378297812134e-01 216 | 9.613319378297812134e-01 217 | 9.735099181251403166e-01 218 | 9.735099181251403166e-01 219 | 9.703640937800190880e-01 220 | 9.703640937800190880e-01 221 | 7.693055075302799306e-01 222 | 7.693055075302799306e-01 223 | -7.681316202869360454e-01 224 | -7.681316202869360454e-01 225 | -9.782519753947646057e-01 226 | -9.782519753947646057e-01 227 | 5.601696732250167621e-01 228 | 5.601696732250167621e-01 229 | 7.191130246880574894e-01 230 | 7.191130246880574894e-01 231 | 7.422166125415270432e-01 232 | 7.422166125415270432e-01 233 | 7.577772264256161794e-01 234 | 7.577772264256161794e-01 235 | 7.724621098835029454e-01 236 | 7.724621098835029454e-01 237 | 4.612973438769552570e-01 238 | 4.612973438769552570e-01 239 | -1.343569983860620320e+00 240 | -1.343569983860620320e+00 241 | -1.123846652363632792e+00 242 | -1.123846652363632792e+00 243 | -9.562003817328332822e-01 244 | -9.562003817328332822e-01 245 | -9.196195510298011966e-01 246 | -9.196195510298011966e-01 247 | -8.430450068630441773e-01 248 | -8.430450068630441773e-01 249 | -7.622760647489574826e-01 250 | -7.622760647489574826e-01 251 | -7.636307101425295896e-01 252 | -7.636307101425295896e-01 253 | -1.340756805782651773e+00 254 | -1.340756805782651773e+00 255 | -2.311206329395560477e+00 256 | -2.311206329395560477e+00 257 | -------------------------------------------------------------------------------- /tests/check/lcm_uniform_disorder.check: -------------------------------------------------------------------------------- 1 | -1.411187609886459526e+00 2 | -8.975152277363263043e-01 3 | -9.483784504009724614e-01 4 | -3.740028643409711306e-01 5 | -3.619904945379069927e-01 6 | 4.555978061365630744e-02 7 | -3.084517833033684209e-01 8 | 1.051870326658009142e-01 9 | -3.103913266874426258e-01 10 | 9.496554776321586289e-02 11 | -2.721647220470465034e-01 12 | -1.465164519371532914e-01 13 | -6.700715483394569238e-01 14 | -4.826836427799774398e-01 15 | -9.019036649436663611e-01 16 | -7.798760767095460622e-01 17 | -1.002960912815492822e+00 18 | -4.160992229238363871e-01 19 | -3.609106864299649331e-01 20 | 9.214939353473970696e-02 21 | 2.356190612846698618e-01 22 | 5.254964893336832032e-01 23 | 2.875026399557970569e-01 24 | 5.853833299315204242e-01 25 | 2.952188624659651817e-01 26 | 5.666172592681690823e-01 27 | 1.054808638393126413e-01 28 | 2.521952977663145523e-01 29 | -1.819719625406396313e-01 30 | -1.615630549227076440e-01 31 | -4.583751539303674294e-01 32 | -2.783169311112413391e-01 33 | -3.451904085459044369e-01 34 | -7.955099240594400156e-02 35 | 1.402125412169064611e-01 36 | 4.463433632660770978e-01 37 | 8.120517781745619779e-01 38 | 8.386201725136250840e-01 39 | 9.148534713400690022e-01 40 | 9.365403613306836350e-01 41 | 9.288429744479883565e-01 42 | 9.264258317232412221e-01 43 | 7.824080992127544487e-01 44 | 7.265682831358912797e-01 45 | 4.123595639972871263e-01 46 | 2.155913029551057292e-01 47 | 2.516102398045835103e-02 48 | -2.352820647026193923e-01 49 | -3.900096823778407273e-01 50 | -7.997805869407796642e-02 51 | 1.478317509727491985e-01 52 | 4.219422987437734252e-01 53 | 8.228942049169091222e-01 54 | 8.639395119171554560e-01 55 | 9.460188591342478803e-01 56 | 9.687304627621149411e-01 57 | 9.625552921978505205e-01 58 | 9.295508429740719780e-01 59 | 8.537064792832603777e-01 60 | 8.371854006668011383e-01 61 | 5.310597060328196006e-01 62 | 1.059961807346389145e-01 63 | -1.396337846849722564e-01 64 | -4.830683666602608173e-01 65 | -6.018710292175001308e-01 66 | -2.191657187422919595e-01 67 | 4.266253955557370442e-02 68 | 3.232245846471873962e-01 69 | 7.884372719289891585e-01 70 | 8.543312967235320299e-01 71 | 9.250893002154616518e-01 72 | 9.348749758717005420e-01 73 | 9.421808802432241059e-01 74 | 9.508857480650603211e-01 75 | 9.149594976056144580e-01 76 | 8.028459361139232975e-01 77 | 3.387840338825985342e-01 78 | 2.510827653436991866e-02 79 | -2.509267817513708421e-01 80 | -6.820179908763573939e-01 81 | -5.099663440691497573e-01 82 | -1.369472837904724405e-01 83 | 1.011037754987648418e-01 84 | 3.561050506587495335e-01 85 | 6.991079384618595904e-01 86 | 6.962732472997503752e-01 87 | 8.284925291615431453e-01 88 | 8.205380729888656077e-01 89 | 9.353546711677936942e-01 90 | 9.041342323609473652e-01 91 | 7.883501335335341142e-01 92 | 6.121776688443889558e-01 93 | 2.268377759946406114e-01 94 | -6.115306763443824345e-02 95 | -2.562221073720249986e-01 96 | -2.815645926204988769e-01 97 | -4.632615477970196682e-01 98 | -3.526528718522322636e-01 99 | -1.354892814504956577e-01 100 | -6.916219173137655440e-02 101 | 3.391978715649976994e-01 102 | 1.872952842769420312e-01 103 | 4.748230009307296551e-01 104 | 2.942777528116088392e-01 105 | 5.857425989846198888e-01 106 | 1.372630287278701622e-01 107 | 2.159049782841981902e-01 108 | -6.534082078641040292e-02 109 | -1.890403579780397525e-02 110 | -2.529275312041697754e-01 111 | -2.099748135723266407e-01 112 | -7.018994547106578441e-01 113 | -5.795232854853740179e-01 114 | -4.292642012681444075e-01 115 | -2.956581098702342758e-01 116 | -4.503933751508538696e-01 117 | -2.317771811166035451e-02 118 | -1.755415075998187080e-01 119 | 7.458060440604354080e-02 120 | -4.066923596061580715e-01 121 | -9.783498512476132558e-02 122 | -5.428061119199670825e-01 123 | -1.587503599260025045e-01 124 | -5.224031039125112130e-01 125 | -2.183497154765399739e-01 126 | -7.688432451301934201e-01 127 | -6.515992758849158406e-01 128 | -1.167807988103272798e+00 129 | -------------------------------------------------------------------------------- /tests/check/lcm_vacancies.check: -------------------------------------------------------------------------------- 1 | -1.766257111052791817e+00 2 | -7.448394659554889996e-01 3 | -7.829794327408923227e-01 4 | 4.433789713689292172e-02 5 | -1.169759766820621660e-02 6 | 3.104570338428256360e-01 7 | -2.485472361844071054e-03 8 | 1.898456620329075639e-01 9 | -6.366713964253872815e-02 10 | 3.559260978733284897e-02 11 | -4.520911498925271332e-01 12 | -7.250464698983292988e-02 13 | -2.959120154786527568e-01 14 | -2.867740502289642945e-01 15 | -4.869962143758166384e-01 16 | -4.186513904585630330e-01 17 | -7.586835700067969812e-01 18 | 6.715632588065245830e-03 19 | 2.435658867308772985e-02 20 | 3.206772575281868209e-01 21 | 3.660076579262108720e-01 22 | 4.992104851686343103e-01 23 | 3.061893078728372131e-01 24 | 3.386228767975891785e-01 25 | 1.243022881531999357e-01 26 | 6.888152300510327897e-02 27 | 1.102006096273326075e-01 28 | -1.838332523466665869e-01 29 | -1.580603318244170608e-01 30 | -3.686506854292793678e-01 31 | -5.304601775011509313e-01 32 | 6.271451568236251217e-02 33 | 1.877184903654272874e-01 34 | 3.251623867988177041e-01 35 | 6.090477385166772617e-01 36 | 6.048092102186549690e-01 37 | 6.125786706355172972e-01 38 | 6.469788798898944426e-01 39 | 5.955339103720912464e-01 40 | 6.347768423544392080e-01 41 | 5.045009096680789229e-01 42 | 2.682363574567830367e-01 43 | -2.648459572132077500e-01 44 | -3.495217398549029242e-01 45 | -2.269103198968344948e-01 46 | 8.956612477488090640e-02 47 | 2.298554740484172187e-01 48 | 3.817076832195960279e-01 49 | 6.107637353414366865e-01 50 | 7.387793596084951675e-01 51 | 7.366777016553889279e-01 52 | 7.794449943985457541e-01 53 | 7.776221980268035461e-01 54 | 8.720205919385254356e-01 55 | 7.511950856426854450e-01 56 | 6.098476989641595791e-01 57 | 2.025571974020995425e-01 58 | 1.041526953501657748e-01 59 | -1.637720058493408737e-01 60 | -2.628605670425416263e-01 61 | -1.621226596272834775e-01 62 | 8.100637709222187344e-02 63 | 3.814303215436213867e-01 64 | 7.061696252617064573e-01 65 | 7.464936075135569782e-01 66 | 8.807896604011551389e-01 67 | 8.617150597492660991e-01 68 | 8.694354781045414704e-01 69 | 8.214804037016263383e-01 70 | 7.330139645006978899e-01 71 | 6.621241958986813225e-01 72 | 3.770855017572182777e-01 73 | 7.133020347902423175e-02 74 | -1.680783700040470729e-01 75 | -3.153797474440526161e-01 76 | -6.648045060454954580e-01 77 | -6.535746816710023832e-02 78 | 4.036790082007882946e-02 79 | 4.882729816849446514e-01 80 | 7.052379673603096366e-01 81 | 6.854262261225398944e-01 82 | 8.024813040832541322e-01 83 | 7.380420720407107060e-01 84 | 6.547568543855640799e-01 85 | 3.571167807609861300e-01 86 | 5.597933747795307002e-02 87 | -1.750447359281495363e-01 88 | -3.534372143210481321e-01 89 | -6.333375587823449893e-01 90 | -8.157425230273988026e-01 91 | -5.254220463206134006e-01 92 | -3.576660110232555700e-01 93 | 1.947472190605151476e-01 94 | 1.345305391216339019e-01 95 | 4.106098705936667703e-01 96 | 2.828825463105356652e-01 97 | 4.735721057724970318e-01 98 | 1.860701420211864632e-01 99 | 1.943653796215099594e-01 100 | -2.090757232007090238e-01 101 | -2.584818264266798282e-01 102 | -5.001014289936904778e-01 103 | -5.448262557968986952e-01 104 | -8.029508504935708446e-01 105 | -4.721341802693683198e-01 106 | -2.763884662197954589e-01 107 | -2.654179961621181971e-01 108 | 7.592769833784355875e-03 109 | -9.838565236116061929e-02 110 | 1.131465938813420724e-01 111 | -1.622537056205965444e-01 112 | -1.186301943907112910e-03 113 | -4.958436033830935785e-01 114 | -4.675972266418451095e-01 115 | -8.952458449754296943e-01 116 | -7.559865813752276731e-01 117 | -4.332892688968360551e-01 118 | -5.396592452151887098e-01 119 | -------------------------------------------------------------------------------- /tests/check/loc_haldane_heterostructure.check: -------------------------------------------------------------------------------- 1 | 1.894530741051364542e-03 2 | 1.894530741051364542e-03 3 | 6.370836115809555902e-03 4 | 6.370836115809555902e-03 5 | 6.441561904546613988e-03 6 | 6.441561904546613988e-03 7 | 6.442544508461070692e-03 8 | 6.442544508461070692e-03 9 | 6.442557876050623335e-03 10 | 6.442557876050623335e-03 11 | 6.442561297398707518e-03 12 | 6.442561297398707518e-03 13 | 6.442892824526928915e-03 14 | 6.442892824526928915e-03 15 | 6.475187473160588271e-03 16 | 6.475187473160588271e-03 17 | 6.370836115810076319e-03 18 | 6.370836115810076319e-03 19 | 1.063544115020266523e-02 20 | 1.063544115020266523e-02 21 | 1.070458676728706406e-02 22 | 1.070458676728706406e-02 23 | 1.070556032332553413e-02 24 | 1.070556032332553413e-02 25 | 1.070557369082292785e-02 26 | 1.070557369082292785e-02 27 | 1.070557755887309795e-02 28 | 1.070557755887309795e-02 29 | 1.070593882653192268e-02 30 | 1.070593882653192268e-02 31 | 1.074009491829354228e-02 32 | 1.074009491829354228e-02 33 | 6.441561904642059341e-03 34 | 6.441561904642059341e-03 35 | 1.070458676841128630e-02 36 | 1.070458676841128630e-02 37 | 1.077358828649129484e-02 38 | 1.077358828649129484e-02 39 | 1.077455915615959693e-02 40 | 1.077455915615959693e-02 41 | 1.077457251154691903e-02 42 | 1.077457251154691903e-02 43 | 1.077458171305390594e-02 44 | 1.077458171305390594e-02 45 | 1.077515864139698062e-02 46 | 1.077515864139698062e-02 47 | 1.076867095512441808e-02 48 | 1.076867095512441808e-02 49 | 6.442544525001519390e-03 50 | 6.442544525001519390e-03 51 | 1.070556048252807937e-02 52 | 1.070556048252807937e-02 53 | 1.077455959278171907e-02 54 | 1.077455959278171907e-02 55 | 1.077553051085739302e-02 56 | 1.077553051085739302e-02 57 | 1.077554389628435430e-02 58 | 1.077554389628435430e-02 59 | 1.077555388660564502e-02 60 | 1.077555388660564502e-02 61 | 1.077589186230024781e-02 62 | 1.077589186230024781e-02 63 | 1.076882180341328342e-02 64 | 1.076882180341328342e-02 65 | 6.442560800151592507e-03 66 | 6.442560800151592507e-03 67 | 1.070559476927999271e-02 68 | 1.070559476927999271e-02 69 | 1.077461495686041389e-02 70 | 1.077461495686041389e-02 71 | 1.077558571323421373e-02 72 | 1.077558571323421373e-02 73 | 1.077559323455692074e-02 74 | 1.077559323455692074e-02 75 | 1.077560153593691214e-02 76 | 1.077560153593691214e-02 77 | 1.077593403063292592e-02 78 | 1.077593403063292592e-02 79 | 1.076885715341114810e-02 80 | 1.076885715341114810e-02 81 | 6.443099464998618478e-03 82 | 6.443099464998618478e-03 83 | 1.070829106385583034e-02 84 | 1.070829106385583034e-02 85 | 1.077814798573904082e-02 86 | 1.077814798573904082e-02 87 | 1.077832560520573107e-02 88 | 1.077832560520573107e-02 89 | 1.077817641154286965e-02 90 | 1.077817641154286965e-02 91 | 1.077825505345292138e-02 92 | 1.077825505345292138e-02 93 | 1.077859033591371633e-02 94 | 1.077859033591371633e-02 95 | 1.077131545667714928e-02 96 | 1.077131545667714928e-02 97 | 6.552250301266484764e-03 98 | 6.552250301266484764e-03 99 | 1.101797741026914156e-02 100 | 1.101797741026914156e-02 101 | 1.100689341906982421e-02 102 | 1.100689341906982421e-02 103 | 1.097042298382108413e-02 104 | 1.097042298382108413e-02 105 | 1.097501993070824390e-02 106 | 1.097501993070824390e-02 107 | 1.097997144697797876e-02 108 | 1.097997144697797876e-02 109 | 1.097666216597106142e-02 110 | 1.097666216597106142e-02 111 | 1.094588047906798825e-02 112 | 1.094588047906798825e-02 113 | 2.769512855964370579e-02 114 | 2.769512855964370579e-02 115 | 2.859098871439812173e-02 116 | 2.859098871439812173e-02 117 | 2.341816146306702554e-02 118 | 2.341816146306702554e-02 119 | 2.328180871484161057e-02 120 | 2.328180871484161057e-02 121 | 2.366452255466860999e-02 122 | 2.366452255466860999e-02 123 | 2.389713212735583917e-02 124 | 2.389713212735583917e-02 125 | 2.345390503748128602e-02 126 | 2.345390503748128602e-02 127 | 2.155772358532316579e-02 128 | 2.155772358532316579e-02 129 | 6.841331380478390400e-01 130 | 6.841331380478390400e-01 131 | 4.749326670164574216e-01 132 | 4.749326670164574216e-01 133 | 3.558139066692420638e-01 134 | 3.558139066692420638e-01 135 | 3.579292690693300361e-01 136 | 3.579292690693300361e-01 137 | 3.661658836765395719e-01 138 | 3.661658836765395719e-01 139 | 3.731799757884300406e-01 140 | 3.731799757884300406e-01 141 | 3.713374869655297061e-01 142 | 3.713374869655297061e-01 143 | 3.702392874312652182e-01 144 | 3.702392874312652182e-01 145 | 5.481644065101464181e-01 146 | 5.481644065101464181e-01 147 | 2.429352012619922230e-01 148 | 2.429352012619922230e-01 149 | 2.159999937875469733e-01 150 | 2.159999937875469733e-01 151 | 2.220243396822419168e-01 152 | 2.220243396822419168e-01 153 | 2.221896989010301027e-01 154 | 2.221896989010301027e-01 155 | 2.222440164149220854e-01 156 | 2.222440164149220854e-01 157 | 2.343779298665467081e-01 158 | 2.343779298665467081e-01 159 | 3.766246117992678721e-01 160 | 3.766246117992678721e-01 161 | 3.958139548013658304e-01 162 | 3.958139548013658304e-01 163 | 2.022512604037405015e-01 164 | 2.022512604037405015e-01 165 | 1.993385927069096508e-01 166 | 1.993385927069096508e-01 167 | 2.022452933875708569e-01 168 | 2.022452933875708569e-01 169 | 2.032142916690915235e-01 170 | 2.032142916690915235e-01 171 | 2.053761895944172244e-01 172 | 2.053761895944172244e-01 173 | 2.218321051469553384e-01 174 | 2.218321051469553384e-01 175 | 3.808476228702191158e-01 176 | 3.808476228702191158e-01 177 | 3.813316914925808376e-01 178 | 3.813316914925808376e-01 179 | 2.080696757001925246e-01 180 | 2.080696757001925246e-01 181 | 2.001552084860783731e-01 182 | 2.001552084860783731e-01 183 | 2.017514181633272841e-01 184 | 2.017514181633272841e-01 185 | 2.019421385580043860e-01 186 | 2.019421385580043860e-01 187 | 2.022565654677185298e-01 188 | 2.022565654677185298e-01 189 | 2.210440973386319508e-01 190 | 2.210440973386319508e-01 191 | 3.772442737298672411e-01 192 | 3.772442737298672411e-01 193 | 3.929180198395423318e-01 194 | 3.929180198395423318e-01 195 | 2.109830578619331654e-01 196 | 2.109830578619331654e-01 197 | 2.007079056515533866e-01 198 | 2.007079056515533866e-01 199 | 2.014053506263250304e-01 200 | 2.014053506263250304e-01 201 | 2.011132644862302921e-01 202 | 2.011132644862302921e-01 203 | 2.005867377657690742e-01 204 | 2.005867377657690742e-01 205 | 2.204174976488809667e-01 206 | 2.204174976488809667e-01 207 | 3.747980237514366708e-01 208 | 3.747980237514366708e-01 209 | 4.014192674428834207e-01 210 | 4.014192674428834207e-01 211 | 2.135252859818166926e-01 212 | 2.135252859818166926e-01 213 | 2.023374863494215581e-01 214 | 2.023374863494215581e-01 215 | 2.012257925951264070e-01 216 | 2.012257925951264070e-01 217 | 2.002203269637067296e-01 218 | 2.002203269637067296e-01 219 | 1.987691090428453933e-01 220 | 1.987691090428453933e-01 221 | 2.223551817966989141e-01 222 | 2.223551817966989141e-01 223 | 3.976944917560629178e-01 224 | 3.976944917560629178e-01 225 | 3.948437911400395350e-01 226 | 3.948437911400395350e-01 227 | 2.275749232871132621e-01 228 | 2.275749232871132621e-01 229 | 2.171209960068107292e-01 230 | 2.171209960068107292e-01 231 | 2.186394814559164401e-01 232 | 2.186394814559164401e-01 233 | 2.192209968670186526e-01 234 | 2.192209968670186526e-01 235 | 2.219418464010694814e-01 236 | 2.219418464010694814e-01 237 | 2.863941229041324643e-01 238 | 2.863941229041324643e-01 239 | 5.191248194483411016e-01 240 | 5.191248194483411016e-01 241 | 3.863685088244135368e-01 242 | 3.863685088244135368e-01 243 | 3.782946308253095635e-01 244 | 3.782946308253095635e-01 245 | 3.796527613727883055e-01 246 | 3.796527613727883055e-01 247 | 3.756254709786130408e-01 248 | 3.756254709786130408e-01 249 | 3.735989727505900637e-01 250 | 3.735989727505900637e-01 251 | 3.972313969835668535e-01 252 | 3.972313969835668535e-01 253 | 5.188204186530781525e-01 254 | 5.188204186530781525e-01 255 | 6.046233966938741045e-01 256 | 6.046233966938741045e-01 257 | -------------------------------------------------------------------------------- /tests/check/loc_haldane_uniform_disorder.check: -------------------------------------------------------------------------------- 1 | 4.256228640239838046e-01 2 | 3.730927575365032278e-01 3 | 3.817897634024246534e-01 4 | 3.252713996809962760e-01 5 | 3.276109048348926356e-01 6 | 2.745238723713714912e-01 7 | 3.279540900975324025e-01 8 | 2.776845601800778107e-01 9 | 3.376728136255018331e-01 10 | 2.825409011895676503e-01 11 | 3.146309135344086960e-01 12 | 3.116277692188698101e-01 13 | 3.943395088590486708e-01 14 | 3.417593129795080675e-01 15 | 3.988015690626434129e-01 16 | 3.669671960920789511e-01 17 | 3.878621695032826722e-01 18 | 3.208413498019707655e-01 19 | 3.197034441533830318e-01 20 | 2.743428989759034153e-01 21 | 2.597066181017680941e-01 22 | 2.328316440518005959e-01 23 | 2.607603771877523569e-01 24 | 2.325616473268040107e-01 25 | 2.658620395872470232e-01 26 | 2.365304063249413502e-01 27 | 2.873581105869560393e-01 28 | 2.703936498377969011e-01 29 | 3.078501552448625334e-01 30 | 3.031516102887747977e-01 31 | 3.334730405687010846e-01 32 | 2.769161536826369452e-01 33 | 3.061177593056118584e-01 34 | 2.912105074643968616e-01 35 | 2.728221660548570404e-01 36 | 2.346042152433304440e-01 37 | 2.078005993894159742e-01 38 | 2.085552106023557117e-01 39 | 2.067468242649219412e-01 40 | 2.051150365945710596e-01 41 | 2.081904269875586022e-01 42 | 2.095383226576882918e-01 43 | 2.201537209626220348e-01 44 | 2.191457248554239678e-01 45 | 2.236367015484426735e-01 46 | 2.457877377437006627e-01 47 | 2.631484476341430234e-01 48 | 3.075087949234153739e-01 49 | 3.237389248410965092e-01 50 | 2.835994565951041047e-01 51 | 2.672745678068312869e-01 52 | 2.491091242405715223e-01 53 | 2.169824104534491815e-01 54 | 2.155811340335561932e-01 55 | 2.085054832752380183e-01 56 | 2.113378590873308815e-01 57 | 2.076216839858422980e-01 58 | 2.010799182937766938e-01 59 | 2.048143183191810657e-01 60 | 2.105901715395231688e-01 61 | 2.326485771529155644e-01 62 | 2.885117510729954815e-01 63 | 3.174076319960685844e-01 64 | 3.397522932590896216e-01 65 | 3.643593450502757847e-01 66 | 3.173899447265593476e-01 67 | 2.940384755864648425e-01 68 | 2.625135789945178266e-01 69 | 2.144411411054815142e-01 70 | 2.033813802609683308e-01 71 | 2.046960815378473242e-01 72 | 2.051092296768448064e-01 73 | 2.033137189886222440e-01 74 | 2.063674688596487394e-01 75 | 2.070195617131112831e-01 76 | 2.102874637791997958e-01 77 | 2.692775542540281064e-01 78 | 2.787191818982264757e-01 79 | 3.008557105517165042e-01 80 | 3.299426694163756224e-01 81 | 3.605961523797213131e-01 82 | 2.929250466647685958e-01 83 | 2.741392548817914721e-01 84 | 2.376750999736015613e-01 85 | 2.138105169118934556e-01 86 | 2.176927511349579236e-01 87 | 2.110617479941754859e-01 88 | 2.092291102117699864e-01 89 | 2.058782255722918786e-01 90 | 2.078840577186449046e-01 91 | 2.151852668093116872e-01 92 | 2.225368410364444438e-01 93 | 2.483724986495796927e-01 94 | 2.658680334822326463e-01 95 | 2.807409584422889126e-01 96 | 2.566480086725378973e-01 97 | 3.274466919551753397e-01 98 | 3.112979340788482041e-01 99 | 2.877297021675653821e-01 100 | 2.666307554074640596e-01 101 | 2.267487773690609609e-01 102 | 2.481588649784126910e-01 103 | 2.397277178985047219e-01 104 | 2.619452209847765167e-01 105 | 2.360796759928283917e-01 106 | 2.798257179539649919e-01 107 | 2.727488258992284420e-01 108 | 2.877593945717253909e-01 109 | 2.581955322118097973e-01 110 | 2.502851714504498726e-01 111 | 2.486417044929377929e-01 112 | 3.570980211576778585e-01 113 | 3.459704345518261337e-01 114 | 2.929655082371031560e-01 115 | 2.906902486434906896e-01 116 | 3.171521480210193200e-01 117 | 2.638653933397412943e-01 118 | 2.806929518346314989e-01 119 | 2.750185298309748005e-01 120 | 3.481542456795477802e-01 121 | 3.027097542263644803e-01 122 | 3.455705159029984763e-01 123 | 2.969440668035095987e-01 124 | 3.142829523759128052e-01 125 | 2.613788591022606078e-01 126 | 3.714156187675077270e-01 127 | 3.700337030938246063e-01 128 | 4.314722523565973633e-01 129 | -------------------------------------------------------------------------------- /tests/check/loc_kanemele_heterostructure.check: -------------------------------------------------------------------------------- 1 | 3.865529279754393310e-01 2 | 3.865529279754393310e-01 3 | 3.865529279754393310e-01 4 | 3.865529279754393310e-01 5 | 5.461680502270908066e-01 6 | 5.461680502270908066e-01 7 | 5.461680502270908066e-01 8 | 5.461680502270908066e-01 9 | 6.456170526369663376e-01 10 | 6.456170526369663376e-01 11 | 6.456170526369663376e-01 12 | 6.456170526369663376e-01 13 | 6.803428323021345481e-01 14 | 6.803428323021345481e-01 15 | 6.803428323021345481e-01 16 | 6.803428323021345481e-01 17 | 6.592987135898971118e-01 18 | 6.592987135898971118e-01 19 | 6.592987135898971118e-01 20 | 6.592987135898971118e-01 21 | 6.041625708532047945e-01 22 | 6.041625708532047945e-01 23 | 6.041625708532047945e-01 24 | 6.041625708532047945e-01 25 | 5.226902585418040648e-01 26 | 5.226902585418040648e-01 27 | 5.226902585418040648e-01 28 | 5.226902585418040648e-01 29 | 4.211234799213822710e-01 30 | 4.211234799213822710e-01 31 | 4.211234799213822710e-01 32 | 4.211234799213822710e-01 33 | 5.145136503624783142e-01 34 | 5.145136503624783142e-01 35 | 5.145136503624783142e-01 36 | 5.145136503624783142e-01 37 | 6.055469831844906281e-01 38 | 6.055469831844906281e-01 39 | 6.055469831844906281e-01 40 | 6.055469831844906281e-01 41 | 6.246988674171087830e-01 42 | 6.246988674171087830e-01 43 | 6.246988674171087830e-01 44 | 6.246988674171087830e-01 45 | 5.951218286427557569e-01 46 | 5.951218286427557569e-01 47 | 5.951218286427557569e-01 48 | 5.951218286427557569e-01 49 | 5.397042183199105558e-01 50 | 5.397042183199105558e-01 51 | 5.397042183199105558e-01 52 | 5.397042183199105558e-01 53 | 4.822225980321618310e-01 54 | 4.822225980321618310e-01 55 | 4.822225980321618310e-01 56 | 4.822225980321618310e-01 57 | 4.425970312013214891e-01 58 | 4.425970312013214891e-01 59 | 4.425970312013214891e-01 60 | 4.425970312013214891e-01 61 | 4.779035303932241407e-01 62 | 4.779035303932241407e-01 63 | 4.779035303932241407e-01 64 | 4.779035303932241407e-01 65 | 5.893995928644760740e-01 66 | 5.893995928644760740e-01 67 | 5.893995928644760740e-01 68 | 5.893995928644760740e-01 69 | 6.139794405091305585e-01 70 | 6.139794405091305585e-01 71 | 6.139794405091305585e-01 72 | 6.139794405091305585e-01 73 | 5.792230724063665015e-01 74 | 5.792230724063665015e-01 75 | 5.792230724063665015e-01 76 | 5.792230724063665015e-01 77 | 5.257190799701969564e-01 78 | 5.257190799701969564e-01 79 | 5.257190799701969564e-01 80 | 5.257190799701969564e-01 81 | 4.842742662061066961e-01 82 | 4.842742662061066961e-01 83 | 4.842742662061066961e-01 84 | 4.842742662061066961e-01 85 | 4.596751655490254884e-01 86 | 4.596751655490254884e-01 87 | 4.596751655490254884e-01 88 | 4.596751655490254884e-01 89 | 4.522291407337977187e-01 90 | 4.522291407337977187e-01 91 | 4.522291407337977187e-01 92 | 4.522291407337977187e-01 93 | 4.928079652818335710e-01 94 | 4.928079652818335710e-01 95 | 4.928079652818335710e-01 96 | 4.928079652818335710e-01 97 | 6.364280589043128655e-01 98 | 6.364280589043128655e-01 99 | 6.364280589043128655e-01 100 | 6.364280589043128655e-01 101 | 6.125749455561718682e-01 102 | 6.125749455561718682e-01 103 | 6.125749455561718682e-01 104 | 6.125749455561718682e-01 105 | 5.481242972649200684e-01 106 | 5.481242972649200684e-01 107 | 5.481242972649200684e-01 108 | 5.481242972649200684e-01 109 | 4.930026142909204045e-01 110 | 4.930026142909204045e-01 111 | 4.930026142909204045e-01 112 | 4.930026142909204045e-01 113 | 4.677793474092095671e-01 114 | 4.677793474092095671e-01 115 | 4.677793474092095671e-01 116 | 4.677793474092095671e-01 117 | 4.587254841868371180e-01 118 | 4.587254841868371180e-01 119 | 4.587254841868371180e-01 120 | 4.587254841868371180e-01 121 | 4.727120781481002898e-01 122 | 4.727120781481002898e-01 123 | 4.727120781481002898e-01 124 | 4.727120781481002898e-01 125 | 4.911517831683323010e-01 126 | 4.911517831683323010e-01 127 | 4.911517831683323010e-01 128 | 4.911517831683323010e-01 129 | 6.756260635814902438e-01 130 | 6.756260635814902438e-01 131 | 6.756260635814902438e-01 132 | 6.756260635814902438e-01 133 | 6.162356532342675441e-01 134 | 6.162356532342675441e-01 135 | 6.162356532342675441e-01 136 | 6.162356532342675441e-01 137 | 5.228586773573357105e-01 138 | 5.228586773573357105e-01 139 | 5.228586773573357105e-01 140 | 5.228586773573357105e-01 141 | 4.755536567487106403e-01 142 | 4.755536567487106403e-01 143 | 4.755536567487106403e-01 144 | 4.755536567487106403e-01 145 | 4.647331174593687386e-01 146 | 4.647331174593687386e-01 147 | 4.647331174593687386e-01 148 | 4.647331174593687386e-01 149 | 4.683842405229700079e-01 150 | 4.683842405229700079e-01 151 | 4.683842405229700079e-01 152 | 4.683842405229700079e-01 153 | 4.926221912392793056e-01 154 | 4.926221912392793056e-01 155 | 4.926221912392793056e-01 156 | 4.926221912392793056e-01 157 | 4.970446195753830398e-01 158 | 4.970446195753830398e-01 159 | 4.970446195753830398e-01 160 | 4.970446195753830398e-01 161 | 7.279336496736794615e-01 162 | 7.279336496736794615e-01 163 | 7.279336496736794615e-01 164 | 7.279336496736794615e-01 165 | 6.267204528238716765e-01 166 | 6.267204528238716765e-01 167 | 6.267204528238716765e-01 168 | 6.267204528238716765e-01 169 | 4.964838624136505008e-01 170 | 4.964838624136505008e-01 171 | 4.964838624136505008e-01 172 | 4.964838624136505008e-01 173 | 4.695561886674856078e-01 174 | 4.695561886674856078e-01 175 | 4.695561886674856078e-01 176 | 4.695561886674856078e-01 177 | 4.705968800112456663e-01 178 | 4.705968800112456663e-01 179 | 4.705968800112456663e-01 180 | 4.705968800112456663e-01 181 | 4.872432644698662108e-01 182 | 4.872432644698662108e-01 183 | 4.872432644698662108e-01 184 | 4.872432644698662108e-01 185 | 5.194655089198806364e-01 186 | 5.194655089198806364e-01 187 | 5.194655089198806364e-01 188 | 5.194655089198806364e-01 189 | 5.247854573771997266e-01 190 | 5.247854573771997266e-01 191 | 5.247854573771997266e-01 192 | 5.247854573771997266e-01 193 | 8.320463517501762718e-01 194 | 8.320463517501762718e-01 195 | 8.320463517501762718e-01 196 | 8.320463517501762718e-01 197 | 6.264556449859930432e-01 198 | 6.264556449859930432e-01 199 | 6.264556449859930432e-01 200 | 6.264556449859930432e-01 201 | 4.801885359125113162e-01 202 | 4.801885359125113162e-01 203 | 4.801885359125113162e-01 204 | 4.801885359125113162e-01 205 | 4.753583145346239047e-01 206 | 4.753583145346239047e-01 207 | 4.753583145346239047e-01 208 | 4.753583145346239047e-01 209 | 4.847828451346581358e-01 210 | 4.847828451346581358e-01 211 | 4.847828451346581358e-01 212 | 4.847828451346581358e-01 213 | 5.125477917089240609e-01 214 | 5.125477917089240609e-01 215 | 5.125477917089240609e-01 216 | 5.125477917089240609e-01 217 | 5.629882682192692833e-01 218 | 5.629882682192692833e-01 219 | 5.629882682192692833e-01 220 | 5.629882682192692833e-01 221 | 5.957318881846092040e-01 222 | 5.957318881846092040e-01 223 | 5.957318881846092040e-01 224 | 5.957318881846092040e-01 225 | 1.085094234530223023e+00 226 | 1.085094234530223023e+00 227 | 1.085094234530223023e+00 228 | 1.085094234530223023e+00 229 | 5.811388255973133354e-01 230 | 5.811388255973133354e-01 231 | 5.811388255973133354e-01 232 | 5.811388255973133354e-01 233 | 4.909767324906491037e-01 234 | 4.909767324906491037e-01 235 | 4.909767324906491037e-01 236 | 4.909767324906491037e-01 237 | 4.919318842063991060e-01 238 | 4.919318842063991060e-01 239 | 4.919318842063991060e-01 240 | 4.919318842063991060e-01 241 | 5.025844449503209521e-01 242 | 5.025844449503209521e-01 243 | 5.025844449503209521e-01 244 | 5.025844449503209521e-01 245 | 5.353921855159486931e-01 246 | 5.353921855159486931e-01 247 | 5.353921855159486931e-01 248 | 5.353921855159486931e-01 249 | 6.244201489120581039e-01 250 | 6.244201489120581039e-01 251 | 6.244201489120581039e-01 252 | 6.244201489120581039e-01 253 | 7.571138171512923343e-01 254 | 7.571138171512923343e-01 255 | 7.571138171512923343e-01 256 | 7.571138171512923343e-01 257 | 1.477467833197487534e+00 258 | 1.477467833197487534e+00 259 | 1.477467833197487534e+00 260 | 1.477467833197487534e+00 261 | 5.349983238039655031e-01 262 | 5.349983238039655031e-01 263 | 5.349983238039655031e-01 264 | 5.349983238039655031e-01 265 | 5.083661422372286465e-01 266 | 5.083661422372286465e-01 267 | 5.083661422372286465e-01 268 | 5.083661422372286465e-01 269 | 5.091617462007460571e-01 270 | 5.091617462007460571e-01 271 | 5.091617462007460571e-01 272 | 5.091617462007460571e-01 273 | 5.139564387653944300e-01 274 | 5.139564387653944300e-01 275 | 5.139564387653944300e-01 276 | 5.139564387653944300e-01 277 | 5.293023734976266548e-01 278 | 5.293023734976266548e-01 279 | 5.293023734976266548e-01 280 | 5.293023734976266548e-01 281 | 6.224996042798408569e-01 282 | 6.224996042798408569e-01 283 | 6.224996042798408569e-01 284 | 6.224996042798408569e-01 285 | 9.722432943850344289e-01 286 | 9.722432943850344289e-01 287 | 9.722432943850344289e-01 288 | 9.722432943850344289e-01 289 | 1.411007538038456577e+00 290 | 1.411007538038456577e+00 291 | 1.411007538038456577e+00 292 | 1.411007538038456577e+00 293 | 4.594659335127974642e-01 294 | 4.594659335127974642e-01 295 | 4.594659335127974642e-01 296 | 4.594659335127974642e-01 297 | 4.656311198874475421e-01 298 | 4.656311198874475421e-01 299 | 4.656311198874475421e-01 300 | 4.656311198874475421e-01 301 | 4.683549280313680785e-01 302 | 4.683549280313680785e-01 303 | 4.683549280313680785e-01 304 | 4.683549280313680785e-01 305 | 4.715516731935229799e-01 306 | 4.715516731935229799e-01 307 | 4.715516731935229799e-01 308 | 4.715516731935229799e-01 309 | 4.764755213712997817e-01 310 | 4.764755213712997817e-01 311 | 4.764755213712997817e-01 312 | 4.764755213712997817e-01 313 | 5.325909081367076192e-01 314 | 5.325909081367076192e-01 315 | 5.325909081367076192e-01 316 | 5.325909081367076192e-01 317 | 1.072238652304413398e+00 318 | 1.072238652304413398e+00 319 | 1.072238652304413398e+00 320 | 1.072238652304413398e+00 321 | 1.258522751365468428e+00 322 | 1.258522751365468428e+00 323 | 1.258522751365468428e+00 324 | 1.258522751365468428e+00 325 | 4.354463755154728277e-01 326 | 4.354463755154728277e-01 327 | 4.354463755154728277e-01 328 | 4.354463755154728277e-01 329 | 4.433663464520556929e-01 330 | 4.433663464520556929e-01 331 | 4.433663464520556929e-01 332 | 4.433663464520556929e-01 333 | 4.478507575935322116e-01 334 | 4.478507575935322116e-01 335 | 4.478507575935322116e-01 336 | 4.478507575935322116e-01 337 | 4.478114752271534771e-01 338 | 4.478114752271534771e-01 339 | 4.478114752271534771e-01 340 | 4.478114752271534771e-01 341 | 4.521604020564237714e-01 342 | 4.521604020564237714e-01 343 | 4.521604020564237714e-01 344 | 4.521604020564237714e-01 345 | 5.040937699485116275e-01 346 | 5.040937699485116275e-01 347 | 5.040937699485116275e-01 348 | 5.040937699485116275e-01 349 | 1.104705195027690268e+00 350 | 1.104705195027690268e+00 351 | 1.104705195027690268e+00 352 | 1.104705195027690268e+00 353 | 1.182908947095798524e+00 354 | 1.182908947095798524e+00 355 | 1.182908947095798524e+00 356 | 1.182908947095798524e+00 357 | 4.282926336386741473e-01 358 | 4.282926336386741473e-01 359 | 4.282926336386741473e-01 360 | 4.282926336386741473e-01 361 | 4.332924777815029271e-01 362 | 4.332924777815029271e-01 363 | 4.332924777815029271e-01 364 | 4.332924777815029271e-01 365 | 4.391361488628612308e-01 366 | 4.391361488628612308e-01 367 | 4.391361488628612308e-01 368 | 4.391361488628612308e-01 369 | 4.403377459434194563e-01 370 | 4.403377459434194563e-01 371 | 4.403377459434194563e-01 372 | 4.403377459434194563e-01 373 | 4.404992128255079686e-01 374 | 4.404992128255079686e-01 375 | 4.404992128255079686e-01 376 | 4.404992128255079686e-01 377 | 4.904592131852777426e-01 378 | 4.904592131852777426e-01 379 | 4.904592131852777426e-01 380 | 4.904592131852777426e-01 381 | 1.092417219135579654e+00 382 | 1.092417219135579654e+00 383 | 1.092417219135579654e+00 384 | 1.092417219135579654e+00 385 | 1.187037600879468302e+00 386 | 1.187037600879468302e+00 387 | 1.187037600879468302e+00 388 | 1.187037600879468302e+00 389 | 4.280640734538256886e-01 390 | 4.280640734538256886e-01 391 | 4.280640734538256886e-01 392 | 4.280640734538256886e-01 393 | 4.309451329165178146e-01 394 | 4.309451329165178146e-01 395 | 4.309451329165178146e-01 396 | 4.309451329165178146e-01 397 | 4.350802463926514707e-01 398 | 4.350802463926514707e-01 399 | 4.350802463926514707e-01 400 | 4.350802463926514707e-01 401 | 4.357657935998285881e-01 402 | 4.357657935998285881e-01 403 | 4.357657935998285881e-01 404 | 4.357657935998285881e-01 405 | 4.328632167992602087e-01 406 | 4.328632167992602087e-01 407 | 4.328632167992602087e-01 408 | 4.328632167992602087e-01 409 | 4.729167662160991270e-01 410 | 4.729167662160991270e-01 411 | 4.729167662160991270e-01 412 | 4.729167662160991270e-01 413 | 1.061095497617180250e+00 414 | 1.061095497617180250e+00 415 | 1.061095497617180250e+00 416 | 1.061095497617180250e+00 417 | 1.176668773920792832e+00 418 | 1.176668773920792832e+00 419 | 1.176668773920792832e+00 420 | 1.176668773920792832e+00 421 | 4.456238196052255685e-01 422 | 4.456238196052255685e-01 423 | 4.456238196052255685e-01 424 | 4.456238196052255685e-01 425 | 4.312282595379245964e-01 426 | 4.312282595379245964e-01 427 | 4.312282595379245964e-01 428 | 4.312282595379245964e-01 429 | 4.372366314337468585e-01 430 | 4.372366314337468585e-01 431 | 4.372366314337468585e-01 432 | 4.372366314337468585e-01 433 | 4.324630638024580254e-01 434 | 4.324630638024580254e-01 435 | 4.324630638024580254e-01 436 | 4.324630638024580254e-01 437 | 4.208787223251784226e-01 438 | 4.208787223251784226e-01 439 | 4.208787223251784226e-01 440 | 4.208787223251784226e-01 441 | 4.488063485218825033e-01 442 | 4.488063485218825033e-01 443 | 4.488063485218825033e-01 444 | 4.488063485218825033e-01 445 | 1.071147465949930266e+00 446 | 1.071147465949930266e+00 447 | 1.071147465949930266e+00 448 | 1.071147465949930266e+00 449 | 1.053968574040157646e+00 450 | 1.053968574040157646e+00 451 | 1.053968574040157646e+00 452 | 1.053968574040157646e+00 453 | 5.404783156402044320e-01 454 | 5.404783156402044320e-01 455 | 5.404783156402044320e-01 456 | 5.404783156402044320e-01 457 | 4.625055042863334132e-01 458 | 4.625055042863334132e-01 459 | 4.625055042863334132e-01 460 | 4.625055042863334132e-01 461 | 4.654812758243777049e-01 462 | 4.654812758243777049e-01 463 | 4.654812758243777049e-01 464 | 4.654812758243777049e-01 465 | 4.680014280553254080e-01 466 | 4.680014280553254080e-01 467 | 4.680014280553254080e-01 468 | 4.680014280553254080e-01 469 | 4.433927799828619176e-01 470 | 4.433927799828619176e-01 471 | 4.433927799828619176e-01 472 | 4.433927799828619176e-01 473 | 5.052805066833164771e-01 474 | 5.052805066833164771e-01 475 | 5.052805066833164771e-01 476 | 5.052805066833164771e-01 477 | 1.514374157236050955e+00 478 | 1.514374157236050955e+00 479 | 1.514374157236050955e+00 480 | 1.514374157236050955e+00 481 | 8.394175140301372018e-01 482 | 8.394175140301372018e-01 483 | 8.394175140301372018e-01 484 | 8.394175140301372018e-01 485 | 1.058087306122324600e+00 486 | 1.058087306122324600e+00 487 | 1.058087306122324600e+00 488 | 1.058087306122324600e+00 489 | 1.195961744140188632e+00 490 | 1.195961744140188632e+00 491 | 1.195961744140188632e+00 492 | 1.195961744140188632e+00 493 | 1.215348401579498194e+00 494 | 1.215348401579498194e+00 495 | 1.215348401579498194e+00 496 | 1.215348401579498194e+00 497 | 1.160023344949768331e+00 498 | 1.160023344949768331e+00 499 | 1.160023344949768331e+00 500 | 1.160023344949768331e+00 501 | 1.131214457828289444e+00 502 | 1.131214457828289444e+00 503 | 1.131214457828289444e+00 504 | 1.131214457828289444e+00 505 | 1.567504467415630653e+00 506 | 1.567504467415630653e+00 507 | 1.567504467415630653e+00 508 | 1.567504467415630653e+00 509 | 2.832586265936359204e+00 510 | 2.832586265936359204e+00 511 | 2.832586265936359204e+00 512 | 2.832586265936359204e+00 513 | -------------------------------------------------------------------------------- /tests/check/loc_kanemele_uniform_disorder.check: -------------------------------------------------------------------------------- 1 | 1.372756546963548985e+00 2 | 1.372756546963548985e+00 3 | 1.082495095642185046e+00 4 | 1.082495095642185046e+00 5 | 1.084561270811849498e+00 6 | 1.084561270811849498e+00 7 | 9.451476749228424623e-01 8 | 9.451476749228424623e-01 9 | 8.863192088091230714e-01 10 | 8.863192088091230714e-01 11 | 5.887178779709800747e-01 12 | 5.887178779709800747e-01 13 | 6.324478419111583261e-01 14 | 6.324478419111583261e-01 15 | 5.474238240979646397e-01 16 | 5.474238240979646397e-01 17 | 6.272140643130124094e-01 18 | 6.272140643130124094e-01 19 | 5.818792757059749743e-01 20 | 5.818792757059749743e-01 21 | 6.328255347676373654e-01 22 | 6.328255347676373654e-01 23 | 6.323789710867483427e-01 24 | 6.323789710867483427e-01 25 | 7.110304544836157925e-01 26 | 7.110304544836157925e-01 27 | 6.263991227736745993e-01 28 | 6.263991227736745993e-01 29 | 6.912909547900676355e-01 30 | 6.912909547900676355e-01 31 | 6.309309661511123268e-01 32 | 6.309309661511123268e-01 33 | 1.057150441487712644e+00 34 | 1.057150441487712644e+00 35 | 9.000207830854950464e-01 36 | 9.000207830854950464e-01 37 | 8.615838321373446851e-01 38 | 8.615838321373446851e-01 39 | 6.131220241095871604e-01 40 | 6.131220241095871604e-01 41 | 5.648894959956193285e-01 42 | 5.648894959956193285e-01 43 | 4.956497838305767845e-01 44 | 4.956497838305767845e-01 45 | 5.047076211460429507e-01 46 | 5.047076211460429507e-01 47 | 4.894308799566565171e-01 48 | 4.894308799566565171e-01 49 | 5.521397852373989279e-01 50 | 5.521397852373989279e-01 51 | 5.255460676353961302e-01 52 | 5.255460676353961302e-01 53 | 5.814132302078465209e-01 54 | 5.814132302078465209e-01 55 | 5.154185738722709686e-01 56 | 5.154185738722709686e-01 57 | 5.691758304931242574e-01 58 | 5.691758304931242574e-01 59 | 5.358243883665676499e-01 60 | 5.358243883665676499e-01 61 | 5.715738895165317635e-01 62 | 5.715738895165317635e-01 63 | 5.579325764202655025e-01 64 | 5.579325764202655025e-01 65 | 5.787579512405726101e-01 66 | 5.787579512405726101e-01 67 | 5.697752835434040097e-01 68 | 5.697752835434040097e-01 69 | 5.477766461360041861e-01 70 | 5.477766461360041861e-01 71 | 4.466317813825074201e-01 72 | 4.466317813825074201e-01 73 | 4.418955006192054058e-01 74 | 4.418955006192054058e-01 75 | 4.555606218168865573e-01 76 | 4.555606218168865573e-01 77 | 4.796274414242445716e-01 78 | 4.796274414242445716e-01 79 | 4.577426712773727813e-01 80 | 4.577426712773727813e-01 81 | 4.514240392551763792e-01 82 | 4.514240392551763792e-01 83 | 4.373027136347434896e-01 84 | 4.373027136347434896e-01 85 | 4.286728518224577344e-01 86 | 4.286728518224577344e-01 87 | 4.353419902022596100e-01 88 | 4.353419902022596100e-01 89 | 4.421910961183310729e-01 90 | 4.421910961183310729e-01 91 | 4.897157040327201893e-01 92 | 4.897157040327201893e-01 93 | 5.119093274468731192e-01 94 | 5.119093274468731192e-01 95 | 5.855722908767780899e-01 96 | 5.855722908767780899e-01 97 | 6.261180711865037551e-01 98 | 6.261180711865037551e-01 99 | 5.652029227523968080e-01 100 | 5.652029227523968080e-01 101 | 5.256596664630434068e-01 102 | 5.256596664630434068e-01 103 | 5.328233062274919662e-01 104 | 5.328233062274919662e-01 105 | 4.466419192274729832e-01 106 | 4.466419192274729832e-01 107 | 4.486739693000737494e-01 108 | 4.486739693000737494e-01 109 | 4.410117529468781661e-01 110 | 4.410117529468781661e-01 111 | 4.658186322951004543e-01 112 | 4.658186322951004543e-01 113 | 4.283056877073177504e-01 114 | 4.283056877073177504e-01 115 | 4.315454727259309120e-01 116 | 4.315454727259309120e-01 117 | 4.401334668435230024e-01 118 | 4.401334668435230024e-01 119 | 4.628140017287237229e-01 120 | 4.628140017287237229e-01 121 | 4.814906770032623129e-01 122 | 4.814906770032623129e-01 123 | 5.993394800518019316e-01 124 | 5.993394800518019316e-01 125 | 6.401228190612602287e-01 126 | 6.401228190612602287e-01 127 | 7.660032911740941586e-01 128 | 7.660032911740941586e-01 129 | 6.369395158306975224e-01 130 | 6.369395158306975224e-01 131 | 6.091520653113404737e-01 132 | 6.091520653113404737e-01 133 | 5.810635655875607819e-01 134 | 5.810635655875607819e-01 135 | 5.226724626831479315e-01 136 | 5.226724626831479315e-01 137 | 4.505429090548824789e-01 138 | 4.505429090548824789e-01 139 | 4.586682749368906631e-01 140 | 4.586682749368906631e-01 141 | 4.549508246702291259e-01 142 | 4.549508246702291259e-01 143 | 4.509611816544125129e-01 144 | 4.509611816544125129e-01 145 | 4.415135118752128163e-01 146 | 4.415135118752128163e-01 147 | 4.523551918505875902e-01 148 | 4.523551918505875902e-01 149 | 4.601843583844882346e-01 150 | 4.601843583844882346e-01 151 | 4.774457497003029571e-01 152 | 4.774457497003029571e-01 153 | 5.836521138223262906e-01 154 | 5.836521138223262906e-01 155 | 6.243926114951089401e-01 156 | 6.243926114951089401e-01 157 | 6.837805377548351604e-01 158 | 6.837805377548351604e-01 159 | 7.622637536073602060e-01 160 | 7.622637536073602060e-01 161 | 7.130371127586757618e-01 162 | 7.130371127586757618e-01 163 | 5.569945471054010833e-01 164 | 5.569945471054010833e-01 165 | 5.338904021486395868e-01 166 | 5.338904021486395868e-01 167 | 4.857897412716589702e-01 168 | 4.857897412716589702e-01 169 | 4.419182159651002251e-01 170 | 4.419182159651002251e-01 171 | 4.551150170108697046e-01 172 | 4.551150170108697046e-01 173 | 4.644585675310643480e-01 174 | 4.644585675310643480e-01 175 | 4.931543621996200555e-01 176 | 4.931543621996200555e-01 177 | 4.739524273572659485e-01 178 | 4.739524273572659485e-01 179 | 4.705566601831752127e-01 180 | 4.705566601831752127e-01 181 | 4.930267121391695984e-01 182 | 4.930267121391695984e-01 183 | 5.061071770425500382e-01 184 | 5.061071770425500382e-01 185 | 5.913423457443108822e-01 186 | 5.913423457443108822e-01 187 | 6.128597003839051371e-01 188 | 6.128597003839051371e-01 189 | 6.495845456546882613e-01 190 | 6.495845456546882613e-01 191 | 5.780619610359104543e-01 192 | 5.780619610359104543e-01 193 | 5.353851889739631442e-01 194 | 5.353851889739631442e-01 195 | 5.889407882008443895e-01 196 | 5.889407882008443895e-01 197 | 5.559001795990597961e-01 198 | 5.559001795990597961e-01 199 | 5.109302328130289617e-01 200 | 5.109302328130289617e-01 201 | 4.477881300153571109e-01 202 | 4.477881300153571109e-01 203 | 5.038520889470424757e-01 204 | 5.038520889470424757e-01 205 | 5.056859038495746805e-01 206 | 5.056859038495746805e-01 207 | 5.672215697002016555e-01 208 | 5.672215697002016555e-01 209 | 5.161639742519208429e-01 210 | 5.161639742519208429e-01 211 | 6.174042182646698462e-01 212 | 6.174042182646698462e-01 213 | 5.755872252008702450e-01 214 | 5.755872252008702450e-01 215 | 6.131076373777420985e-01 216 | 6.131076373777420985e-01 217 | 5.577306419102476820e-01 218 | 5.577306419102476820e-01 219 | 5.961246509932871529e-01 220 | 5.961246509932871529e-01 221 | 5.814369179290589384e-01 222 | 5.814369179290589384e-01 223 | 7.050958463824501532e-01 224 | 7.050958463824501532e-01 225 | 6.308188755322452490e-01 226 | 6.308188755322452490e-01 227 | 5.548631624750879343e-01 228 | 5.548631624750879343e-01 229 | 5.289213112804234118e-01 230 | 5.289213112804234118e-01 231 | 6.589639064190282447e-01 232 | 6.589639064190282447e-01 233 | 5.112899212474550925e-01 234 | 5.112899212474550925e-01 235 | 6.326644803896170899e-01 236 | 6.326644803896170899e-01 237 | 6.048337591046792916e-01 238 | 6.048337591046792916e-01 239 | 8.142797383731406047e-01 240 | 8.142797383731406047e-01 241 | 6.726311582031819780e-01 242 | 6.726311582031819780e-01 243 | 7.961990757429742160e-01 244 | 7.961990757429742160e-01 245 | 6.169265742814569187e-01 246 | 6.169265742814569187e-01 247 | 7.592604058246537058e-01 248 | 7.592604058246537058e-01 249 | 6.207876518628097084e-01 250 | 6.207876518628097084e-01 251 | 7.717716594037820066e-01 252 | 7.717716594037820066e-01 253 | 7.164969043829519935e-01 254 | 7.164969043829519935e-01 255 | 8.716999612938227671e-01 256 | 8.716999612938227671e-01 257 | -------------------------------------------------------------------------------- /tests/check/lscm_uniform_disorder.check: -------------------------------------------------------------------------------- 1 | 3.037639860856792273e-01 2 | 3.037639860856792273e-01 3 | 3.554380294979671007e-01 4 | 3.554380294979671007e-01 5 | 4.122227224349384045e-01 6 | 4.122227224349384045e-01 7 | 4.842551485290347291e-01 8 | 4.842551485290347291e-01 9 | 7.766579356147303992e-01 10 | 7.766579356147303992e-01 11 | 4.406735988095638046e-01 12 | 4.406735988095638046e-01 13 | 5.121267178876531823e-01 14 | 5.121267178876531823e-01 15 | 2.217685679081701777e-01 16 | 2.217685679081701777e-01 17 | 4.071480413864440040e-01 18 | 4.071480413864440040e-01 19 | 5.976164663711685393e-02 20 | 5.976164663711685393e-02 21 | 5.370801231713926427e-01 22 | 5.370801231713926427e-01 23 | 1.868099589551479034e-01 24 | 1.868099589551479034e-01 25 | 4.003905399944890364e-01 26 | 4.003905399944890364e-01 27 | 3.628104905890044973e-01 28 | 3.628104905890044973e-01 29 | 6.478943021737595398e-01 30 | 6.478943021737595398e-01 31 | 5.443166970198300980e-01 32 | 5.443166970198300980e-01 33 | 3.588098702415009611e-01 34 | 3.588098702415009611e-01 35 | 5.196292664858827015e-01 36 | 5.196292664858827015e-01 37 | 4.923964613503856169e-01 38 | 4.923964613503856169e-01 39 | 2.850664307428473210e-01 40 | 2.850664307428473210e-01 41 | 2.896908386528905255e-01 42 | 2.896908386528905255e-01 43 | 1.048768336132265000e-01 44 | 1.048768336132265000e-01 45 | 6.963166142892911192e-02 46 | 6.963166142892911192e-02 47 | 4.232705413212769496e-01 48 | 4.232705413212769496e-01 49 | 1.770132972923905146e-01 50 | 1.770132972923905146e-01 51 | 4.983303146237453296e-01 52 | 4.983303146237453296e-01 53 | 8.968566457873021480e-02 54 | 8.968566457873021480e-02 55 | 2.870027730874018523e-01 56 | 2.870027730874018523e-01 57 | 4.421303355843690663e-02 58 | 4.421303355843690663e-02 59 | 2.588282047354904455e-02 60 | 2.588282047354904455e-02 61 | 2.626373394282094376e-01 62 | 2.626373394282094376e-01 63 | 4.409118597755991020e-01 64 | 4.409118597755991020e-01 65 | 6.001581039466477030e-01 66 | 6.001581039466477030e-01 67 | 3.926781968356047869e-01 68 | 3.926781968356047869e-01 69 | 2.252569498119445512e-01 70 | 2.252569498119445512e-01 71 | 3.581984278387403964e-02 72 | 3.581984278387403964e-02 73 | 3.361265598257924814e-01 74 | 3.361265598257924814e-01 75 | 6.840124026073046704e-01 76 | 6.840124026073046704e-01 77 | 7.033717212366503713e-01 78 | 7.033717212366503713e-01 79 | 8.259084720983063121e-01 80 | 8.259084720983063121e-01 81 | 8.064293490216207783e-01 82 | 8.064293490216207783e-01 83 | 8.454617556560244385e-01 84 | 8.454617556560244385e-01 85 | 6.445125362179311423e-01 86 | 6.445125362179311423e-01 87 | 6.757202595516147436e-01 88 | 6.757202595516147436e-01 89 | 3.622046283861043992e-01 90 | 3.622046283861043992e-01 91 | 9.195460001692920549e-02 92 | 9.195460001692920549e-02 93 | 1.300276671060281442e-01 94 | 1.300276671060281442e-01 95 | 2.918008984990398957e-01 96 | 2.918008984990398957e-01 97 | 4.670511499879869133e-01 98 | 4.670511499879869133e-01 99 | 2.987978248521481195e-01 100 | 2.987978248521481195e-01 101 | 3.652626983539558614e-02 102 | 3.652626983539558614e-02 103 | 2.458352901397549972e-01 104 | 2.458352901397549972e-01 105 | 6.389553935739673562e-01 106 | 6.389553935739673562e-01 107 | 7.964338301347652083e-01 108 | 7.964338301347652083e-01 109 | 9.406344131639758910e-01 110 | 9.406344131639758910e-01 111 | 9.252512494553476463e-01 112 | 9.252512494553476463e-01 113 | 9.831897091216152962e-01 114 | 9.831897091216152962e-01 115 | 9.804976936756134576e-01 116 | 9.804976936756134576e-01 117 | 8.881259792751873272e-01 118 | 8.881259792751873272e-01 119 | 7.837716129184213454e-01 120 | 7.837716129184213454e-01 121 | 4.003354635013527951e-01 122 | 4.003354635013527951e-01 123 | 1.175805197012778081e-01 124 | 1.175805197012778081e-01 125 | 7.091192000063049894e-02 126 | 7.091192000063049894e-02 127 | 3.404992622421462167e-01 128 | 3.404992622421462167e-01 129 | 3.577521927454317963e-01 130 | 3.577521927454317963e-01 131 | 2.086155959851651032e-01 132 | 2.086155959851651032e-01 133 | 1.691909131923932663e-02 134 | 1.691909131923932663e-02 135 | 2.330103088848682336e-01 136 | 2.330103088848682336e-01 137 | 5.891041452263360290e-01 138 | 5.891041452263360290e-01 139 | 6.720087383962576322e-01 140 | 6.720087383962576322e-01 141 | 8.329047636357803652e-01 142 | 8.329047636357803652e-01 143 | 8.447047299327321568e-01 144 | 8.447047299327321568e-01 145 | 8.996960995852315568e-01 146 | 8.996960995852315568e-01 147 | 8.263061073500762577e-01 148 | 8.263061073500762577e-01 149 | 7.900113129452525085e-01 150 | 7.900113129452525085e-01 151 | 7.329040569315762310e-01 152 | 7.329040569315762310e-01 153 | 4.298013718393348670e-01 154 | 4.298013718393348670e-01 155 | 1.442187361853004002e-01 156 | 1.442187361853004002e-01 157 | 1.704404445463801598e-02 158 | 1.704404445463801598e-02 159 | 2.604902788923317836e-01 160 | 2.604902788923317836e-01 161 | 3.726579235186394112e-01 162 | 3.726579235186394112e-01 163 | 1.664013298806737984e-01 164 | 1.664013298806737984e-01 165 | 4.067676086642472294e-02 166 | 4.067676086642472294e-02 167 | 1.849742425261210743e-01 168 | 1.849742425261210743e-01 169 | 5.034230912327406493e-01 170 | 5.034230912327406493e-01 171 | 5.789620627181667478e-01 172 | 5.789620627181667478e-01 173 | 7.842229517095253843e-01 174 | 7.842229517095253843e-01 175 | 6.986502720895647611e-01 176 | 6.986502720895647611e-01 177 | 7.837635875777585470e-01 178 | 7.837635875777585470e-01 179 | 7.297804208890843469e-01 180 | 7.297804208890843469e-01 181 | 7.248646094435237108e-01 182 | 7.248646094435237108e-01 183 | 5.732920450046696814e-01 184 | 5.732920450046696814e-01 185 | 3.096748989394080831e-01 186 | 3.096748989394080831e-01 187 | 5.898948543385331561e-02 188 | 5.898948543385331561e-02 189 | 1.012759440693619395e-01 190 | 1.012759440693619395e-01 191 | 3.806186302253231624e-01 192 | 3.806186302253231624e-01 193 | 2.712409987005927059e-01 194 | 2.712409987005927059e-01 195 | 3.378285048238209853e-01 196 | 3.378285048238209853e-01 197 | 1.549420558940094450e-01 198 | 1.549420558940094450e-01 199 | 2.302455626657586019e-01 200 | 2.302455626657586019e-01 201 | 6.808931635371891222e-02 202 | 6.808931635371891222e-02 203 | 2.661120934605441107e-02 204 | 2.661120934605441107e-02 205 | 3.065396994770959171e-01 206 | 3.065396994770959171e-01 207 | 1.547537400559886311e-01 208 | 1.547537400559886311e-01 209 | 4.414766125589564272e-01 210 | 4.414766125589564272e-01 211 | 1.956358336986376845e-01 212 | 1.956358336986376845e-01 213 | 3.880373771266568683e-01 214 | 3.880373771266568683e-01 215 | 6.637947795774287729e-02 216 | 6.637947795774287729e-02 217 | 1.392609924194543845e-02 218 | 1.392609924194543845e-02 219 | 4.554363768689295711e-01 220 | 4.554363768689295711e-01 221 | 4.854337820679033300e-01 222 | 4.854337820679033300e-01 223 | 7.253121931941143297e-01 224 | 7.253121931941143297e-01 225 | 4.423531245832372227e-01 226 | 4.423531245832372227e-01 227 | 5.513135485548182890e-01 228 | 5.513135485548182890e-01 229 | 3.951658305777243640e-01 230 | 3.951658305777243640e-01 231 | 4.809521407962677464e-01 232 | 4.809521407962677464e-01 233 | 2.261247159540946683e-01 234 | 2.261247159540946683e-01 235 | 3.228312209471380090e-01 236 | 3.228312209471380090e-01 237 | 3.806477160475489618e-02 238 | 3.806477160475489618e-02 239 | 2.804081442820545167e-01 240 | 2.804081442820545167e-01 241 | 1.087761836586539563e-02 242 | 1.087761836586539563e-02 243 | 2.928253582038276570e-01 244 | 2.928253582038276570e-01 245 | 9.099218000154660202e-02 246 | 9.099218000154660202e-02 247 | 4.422626357852965651e-01 248 | 4.422626357852965651e-01 249 | 4.478954027302203267e-01 250 | 4.478954027302203267e-01 251 | 8.197973508212286209e-01 252 | 8.197973508212286209e-01 253 | 6.722382854292505705e-01 254 | 6.722382854292505705e-01 255 | 1.076979329541277952e+00 256 | 1.076979329541277952e+00 257 | -------------------------------------------------------------------------------- /tests/check/lz2m_uniform_disorder.check: -------------------------------------------------------------------------------- 1 | 2.983786510917689760e-01 2 | 2.983786510917689760e-01 3 | 3.489218275400843283e-01 4 | 3.489218275400843283e-01 5 | 4.046943972521447885e-01 6 | 4.046943972521447885e-01 7 | 4.720640080842642416e-01 8 | 4.720640080842642416e-01 9 | 7.540431668014832001e-01 10 | 7.540431668014832001e-01 11 | 4.372313619324146861e-01 12 | 4.372313619324146861e-01 13 | 5.066401139594871594e-01 14 | 5.066401139594871594e-01 15 | 2.259170746077079628e-01 16 | 2.259170746077079628e-01 17 | 4.032777561403982913e-01 18 | 4.032777561403982913e-01 19 | 6.613962269001558147e-02 20 | 6.613962269001558147e-02 21 | 5.244172341109037960e-01 22 | 5.244172341109037960e-01 23 | 1.860768488031349643e-01 24 | 1.860768488031349643e-01 25 | 3.936701324502650534e-01 26 | 3.936701324502650534e-01 27 | 3.584884718301929452e-01 28 | 3.584884718301929452e-01 29 | 6.293386795648551191e-01 30 | 6.293386795648551191e-01 31 | 5.249599607310706517e-01 32 | 5.249599607310706517e-01 33 | 3.502904834969958192e-01 34 | 3.502904834969958192e-01 35 | 4.945255778560092019e-01 36 | 4.945255778560092019e-01 37 | 4.708004967269846519e-01 38 | 4.708004967269846519e-01 39 | 2.810123620089302054e-01 40 | 2.810123620089302054e-01 41 | 2.917042290281273154e-01 42 | 2.917042290281273154e-01 43 | 9.185433460977868170e-02 44 | 9.185433460977868170e-02 45 | 6.363787593198019787e-02 46 | 6.363787593198019787e-02 47 | 4.125517695256078476e-01 48 | 4.125517695256078476e-01 49 | 1.739569605258564633e-01 50 | 1.739569605258564633e-01 51 | 4.887579515376767603e-01 52 | 4.887579515376767603e-01 53 | 8.862880926395798331e-02 54 | 8.862880926395798331e-02 55 | 2.802257704398933291e-01 56 | 2.802257704398933291e-01 57 | 4.832579572135170531e-02 58 | 4.832579572135170531e-02 59 | 2.741224972944796695e-02 60 | 2.741224972944796695e-02 61 | 2.482402848745960677e-01 62 | 2.482402848745960677e-01 63 | 4.320036945560509767e-01 64 | 4.320036945560509767e-01 65 | 5.600410528142885092e-01 66 | 5.600410528142885092e-01 67 | 3.874467134006061575e-01 68 | 3.874467134006061575e-01 69 | 2.210301064831218798e-01 70 | 2.210301064831218798e-01 71 | 2.532252802585806262e-02 72 | 2.532252802585806262e-02 73 | 3.111757936734902419e-01 74 | 3.111757936734902419e-01 75 | 6.445162283648563362e-01 76 | 6.445162283648563362e-01 77 | 6.836431297908194260e-01 78 | 6.836431297908194260e-01 79 | 8.087615602248181546e-01 80 | 8.087615602248181546e-01 81 | 7.892113224198482602e-01 82 | 7.892113224198482602e-01 83 | 8.292630321796241599e-01 84 | 8.292630321796241599e-01 85 | 6.260903972428315534e-01 86 | 6.260903972428315534e-01 87 | 6.603636187980159722e-01 88 | 6.603636187980159722e-01 89 | 3.513429977998674403e-01 90 | 3.513429977998674403e-01 91 | 9.376935322142480878e-02 92 | 9.376935322142480878e-02 93 | 1.202214309818473159e-01 94 | 1.202214309818473159e-01 95 | 2.677322748866726165e-01 96 | 2.677322748866726165e-01 97 | 4.583342840491367864e-01 98 | 4.583342840491367864e-01 99 | 3.017686892768661755e-01 100 | 3.017686892768661755e-01 101 | 4.355697366705855306e-02 102 | 4.355697366705855306e-02 103 | 2.144797366920642712e-01 104 | 2.144797366920642712e-01 105 | 6.016450458833020321e-01 106 | 6.016450458833020321e-01 107 | 7.727168807192288380e-01 108 | 7.727168807192288380e-01 109 | 9.261842611433148686e-01 110 | 9.261842611433148686e-01 111 | 9.140737194021308909e-01 112 | 9.140737194021308909e-01 113 | 9.713594971751038365e-01 114 | 9.713594971751038365e-01 115 | 9.628838247937239192e-01 116 | 9.628838247937239192e-01 117 | 8.729314298684853757e-01 118 | 8.729314298684853757e-01 119 | 7.708506180856707912e-01 120 | 7.708506180856707912e-01 121 | 3.924888227306285726e-01 122 | 3.924888227306285726e-01 123 | 1.220568921001098650e-01 124 | 1.220568921001098650e-01 125 | 5.935237628015364170e-02 126 | 5.935237628015364170e-02 127 | 3.211491959962968767e-01 128 | 3.211491959962968767e-01 129 | 3.513087082132672068e-01 130 | 3.513087082132672068e-01 131 | 2.119962940249594252e-01 132 | 2.119962940249594252e-01 133 | 2.617271692984038389e-02 134 | 2.617271692984038389e-02 135 | 2.147453772274493522e-01 136 | 2.147453772274493522e-01 137 | 5.617450296817572131e-01 138 | 5.617450296817572131e-01 139 | 6.450126688388502227e-01 140 | 6.450126688388502227e-01 141 | 8.065398565046899559e-01 142 | 8.065398565046899559e-01 143 | 8.260816155609902456e-01 144 | 8.260816155609902456e-01 145 | 8.907468343856712600e-01 146 | 8.907468343856712600e-01 147 | 8.174934188963914883e-01 148 | 8.174934188963914883e-01 149 | 7.770289593477222034e-01 150 | 7.770289593477222034e-01 151 | 7.202262169064562736e-01 152 | 7.202262169064562736e-01 153 | 4.277194356756456317e-01 154 | 4.277194356756456317e-01 155 | 1.503516970163711886e-01 156 | 1.503516970163711886e-01 157 | 6.843606882629228727e-03 158 | 6.843606882629228727e-03 159 | 2.583911593796910378e-01 160 | 2.583911593796910378e-01 161 | 3.584591643411983442e-01 162 | 3.584591643411983442e-01 163 | 1.619710129843761615e-01 164 | 1.619710129843761615e-01 165 | 3.496458143270726043e-02 166 | 3.496458143270726043e-02 167 | 1.695420131777772843e-01 168 | 1.695420131777772843e-01 169 | 4.818914831390977982e-01 170 | 4.818914831390977982e-01 171 | 5.649874710354066965e-01 172 | 5.649874710354066965e-01 173 | 7.648236516165051180e-01 174 | 7.648236516165051180e-01 175 | 6.853325369613210150e-01 176 | 6.853325369613210150e-01 177 | 7.764787653300179171e-01 178 | 7.764787653300179171e-01 179 | 7.247289314232596702e-01 180 | 7.247289314232596702e-01 181 | 7.121809025625237544e-01 182 | 7.121809025625237544e-01 183 | 5.690382494688233095e-01 184 | 5.690382494688233095e-01 185 | 3.106252593303849840e-01 186 | 3.106252593303849840e-01 187 | 5.709322059025993823e-02 188 | 5.709322059025993823e-02 189 | 1.078178067321716449e-01 190 | 1.078178067321716449e-01 191 | 3.833906917558415062e-01 192 | 3.833906917558415062e-01 193 | 2.553354675686763664e-01 194 | 2.553354675686763664e-01 195 | 3.213121239134887341e-01 196 | 3.213121239134887341e-01 197 | 1.592270727365957261e-01 198 | 1.592270727365957261e-01 199 | 2.369742512843191484e-01 200 | 2.369742512843191484e-01 201 | 5.648988552003181979e-02 202 | 5.648988552003181979e-02 203 | 2.709984122085798419e-02 204 | 2.709984122085798419e-02 205 | 3.068685646000125500e-01 206 | 3.068685646000125500e-01 207 | 1.633439284935591651e-01 208 | 1.633439284935591651e-01 209 | 4.387618477096487113e-01 210 | 4.387618477096487113e-01 211 | 1.932194231200036194e-01 212 | 1.932194231200036194e-01 213 | 3.815394665264538188e-01 214 | 3.815394665264538188e-01 215 | 6.870096534335770611e-02 216 | 6.870096534335770611e-02 217 | 1.077689876602172872e-02 218 | 1.077689876602172872e-02 219 | 4.442078537105755842e-01 220 | 4.442078537105755842e-01 221 | 4.798746724289694177e-01 222 | 4.798746724289694177e-01 223 | 7.253981339258528394e-01 224 | 7.253981339258528394e-01 225 | 4.210721771656497081e-01 226 | 4.210721771656497081e-01 227 | 5.381010227176049598e-01 228 | 5.381010227176049598e-01 229 | 3.837507617616944255e-01 230 | 3.837507617616944255e-01 231 | 4.670885893621830043e-01 232 | 4.670885893621830043e-01 233 | 2.217324778157157283e-01 234 | 2.217324778157157283e-01 235 | 3.127658220672070444e-01 236 | 3.127658220672070444e-01 237 | 3.120194796024659822e-02 238 | 3.120194796024659822e-02 239 | 2.762458836416943897e-01 240 | 2.762458836416943897e-01 241 | 8.974159381629865512e-03 242 | 8.974159381629865512e-03 243 | 2.867318513760821475e-01 244 | 2.867318513760821475e-01 245 | 8.244968603386473860e-02 246 | 8.244968603386473860e-02 247 | 4.058713243514253111e-01 248 | 4.058713243514253111e-01 249 | 4.258908066470770137e-01 250 | 4.258908066470770137e-01 251 | 8.052629447231341997e-01 252 | 8.052629447231341997e-01 253 | 6.655504948171351298e-01 254 | 6.655504948171351298e-01 255 | 1.055328224394657788e+00 256 | 1.055328224394657788e+00 257 | -------------------------------------------------------------------------------- /tests/check/pbclscm_uniform_disorder.check: -------------------------------------------------------------------------------- 1 | 8.610033220123487485e-01 2 | 8.610033220123487485e-01 3 | 8.861269676291679831e-01 4 | 8.861269676291679831e-01 5 | 9.198529103076780178e-01 6 | 9.198529103076780178e-01 7 | 9.010373756425769098e-01 8 | 9.010373756425769098e-01 9 | 9.909572366086351058e-01 10 | 9.909572366086351058e-01 11 | 9.493393746200031735e-01 12 | 9.493393746200031735e-01 13 | 9.734548956994890645e-01 14 | 9.734548956994890645e-01 15 | 9.988395105900709225e-01 16 | 9.988395105900709225e-01 17 | 1.068765196473109080e+00 18 | 1.068765196473109080e+00 19 | 1.034388678351073398e+00 20 | 1.034388678351073398e+00 21 | 1.049669256744072854e+00 22 | 1.049669256744072854e+00 23 | 9.790917986655751637e-01 24 | 9.790917986655751637e-01 25 | 1.034994397972515134e+00 26 | 1.034994397972515134e+00 27 | 1.034532811434047961e+00 28 | 1.034532811434047961e+00 29 | 9.557119642159976891e-01 30 | 9.557119642159976891e-01 31 | 8.109620624444227044e-01 32 | 8.109620624444227044e-01 33 | 9.140284382876473490e-01 34 | 9.140284382876473490e-01 35 | 9.906063663609807612e-01 36 | 9.906063663609807612e-01 37 | 8.968914338878029024e-01 38 | 8.968914338878029024e-01 39 | 9.505606896780001147e-01 40 | 9.505606896780001147e-01 41 | 1.074248742236833420e+00 42 | 1.074248742236833420e+00 43 | 1.124006203777221380e+00 44 | 1.124006203777221380e+00 45 | 1.060344560572505923e+00 46 | 1.060344560572505923e+00 47 | 1.034434407723218596e+00 48 | 1.034434407723218596e+00 49 | 1.024990138753628210e+00 50 | 1.024990138753628210e+00 51 | 1.013909597952731279e+00 52 | 1.013909597952731279e+00 53 | 1.013228792914324217e+00 54 | 1.013228792914324217e+00 55 | 1.104751440169029930e+00 56 | 1.104751440169029930e+00 57 | 1.078864915512623535e+00 58 | 1.078864915512623535e+00 59 | 1.062296992123117123e+00 60 | 1.062296992123117123e+00 61 | 9.451878639077149202e-01 62 | 9.451878639077149202e-01 63 | 9.527748111484568572e-01 64 | 9.527748111484568572e-01 65 | 1.033145583785911592e+00 66 | 1.033145583785911592e+00 67 | 9.796395284598988784e-01 68 | 9.796395284598988784e-01 69 | 9.449194175305113408e-01 70 | 9.449194175305113408e-01 71 | 9.790201195254542021e-01 72 | 9.790201195254542021e-01 73 | 1.049997384848823323e+00 74 | 1.049997384848823323e+00 75 | 9.689810044882617435e-01 76 | 9.689810044882617435e-01 77 | 9.898727737773640456e-01 78 | 9.898727737773640456e-01 79 | 9.929285745234045502e-01 80 | 9.929285745234045502e-01 81 | 1.042759435216406017e+00 82 | 1.042759435216406017e+00 83 | 9.946646694893999108e-01 84 | 9.946646694893999108e-01 85 | 9.780280067471056604e-01 86 | 9.780280067471056604e-01 87 | 9.832335999975325702e-01 88 | 9.832335999975325702e-01 89 | 1.032277993280197759e+00 90 | 1.032277993280197759e+00 91 | 1.094141327984907486e+00 92 | 1.094141327984907486e+00 93 | 1.056936508199812330e+00 94 | 1.056936508199812330e+00 95 | 1.023353254191954331e+00 96 | 1.023353254191954331e+00 97 | 1.017977765146015123e+00 98 | 1.017977765146015123e+00 99 | 9.930813227199658533e-01 100 | 9.930813227199658533e-01 101 | 1.075455153695675126e+00 102 | 1.075455153695675126e+00 103 | 1.011623838860757019e+00 104 | 1.011623838860757019e+00 105 | 1.040605128692200010e+00 106 | 1.040605128692200010e+00 107 | 1.087045755986743245e+00 108 | 1.087045755986743245e+00 109 | 1.079353327725307565e+00 110 | 1.079353327725307565e+00 111 | 1.038121405036235956e+00 112 | 1.038121405036235956e+00 113 | 1.066397157714034982e+00 114 | 1.066397157714034982e+00 115 | 1.045087611704363262e+00 116 | 1.045087611704363262e+00 117 | 1.043758537400107489e+00 118 | 1.043758537400107489e+00 119 | 9.921573000667021081e-01 120 | 9.921573000667021081e-01 121 | 1.080322375645737409e+00 122 | 1.080322375645737409e+00 123 | 1.041330256203571114e+00 124 | 1.041330256203571114e+00 125 | 1.064917459565744240e+00 126 | 1.064917459565744240e+00 127 | 1.019887249098594628e+00 128 | 1.019887249098594628e+00 129 | 9.909270995290337947e-01 130 | 9.909270995290337947e-01 131 | 9.791497994918041403e-01 132 | 9.791497994918041403e-01 133 | 9.485143829672912918e-01 134 | 9.485143829672912918e-01 135 | 9.458715547668778978e-01 136 | 9.458715547668778978e-01 137 | 1.036098471536454291e+00 138 | 1.036098471536454291e+00 139 | 1.003831638976502516e+00 140 | 1.003831638976502516e+00 141 | 1.021349511890359496e+00 142 | 1.021349511890359496e+00 143 | 9.990143739092964825e-01 144 | 9.990143739092964825e-01 145 | 9.729710863191605164e-01 146 | 9.729710863191605164e-01 147 | 8.962799630313531551e-01 148 | 8.962799630313531551e-01 149 | 9.338468729581537175e-01 150 | 9.338468729581537175e-01 151 | 9.962006119924775582e-01 152 | 9.962006119924775582e-01 153 | 9.830928231585491783e-01 154 | 9.830928231585491783e-01 155 | 1.005772785936029701e+00 156 | 1.005772785936029701e+00 157 | 1.098352815877196687e+00 158 | 1.098352815877196687e+00 159 | 1.052633711637237734e+00 160 | 1.052633711637237734e+00 161 | 1.035747269297054185e+00 162 | 1.035747269297054185e+00 163 | 9.720863823617231780e-01 164 | 9.720863823617231780e-01 165 | 1.020186987679525981e+00 166 | 1.020186987679525981e+00 167 | 9.438381232804691212e-01 168 | 9.438381232804691212e-01 169 | 1.023163508673022193e+00 170 | 1.023163508673022193e+00 171 | 1.064096660438295316e+00 172 | 1.064096660438295316e+00 173 | 1.084077771278727287e+00 174 | 1.084077771278727287e+00 175 | 9.840176027922946655e-01 176 | 9.840176027922946655e-01 177 | 9.972428334875969025e-01 178 | 9.972428334875969025e-01 179 | 9.691235524250747524e-01 180 | 9.691235524250747524e-01 181 | 9.980722943081519194e-01 182 | 9.980722943081519194e-01 183 | 9.754134985456028861e-01 184 | 9.754134985456028861e-01 185 | 9.558403164867181889e-01 186 | 9.558403164867181889e-01 187 | 1.010149939441951528e+00 188 | 1.010149939441951528e+00 189 | 1.103073309417863079e+00 190 | 1.103073309417863079e+00 191 | 1.035626961857826878e+00 192 | 1.035626961857826878e+00 193 | 9.592312929963374701e-01 194 | 9.592312929963374701e-01 195 | 9.823591228821852983e-01 196 | 9.823591228821852983e-01 197 | 9.451916770870747442e-01 198 | 9.451916770870747442e-01 199 | 1.032637376429359488e+00 200 | 1.032637376429359488e+00 201 | 1.126984478967320680e+00 202 | 1.126984478967320680e+00 203 | 1.038249844943194944e+00 204 | 1.038249844943194944e+00 205 | 9.703365355901235612e-01 206 | 9.703365355901235612e-01 207 | 1.025627538840703235e+00 208 | 1.025627538840703235e+00 209 | 9.667967784142212917e-01 210 | 9.667967784142212917e-01 211 | 9.412556164632852607e-01 212 | 9.412556164632852607e-01 213 | 1.057790885653172586e+00 214 | 1.057790885653172586e+00 215 | 1.071333276295941994e+00 216 | 1.071333276295941994e+00 217 | 1.053392081527182667e+00 218 | 1.053392081527182667e+00 219 | 1.099499570126432957e+00 220 | 1.099499570126432957e+00 221 | 1.066501828471345004e+00 222 | 1.066501828471345004e+00 223 | 9.584374731392546476e-01 224 | 9.584374731392546476e-01 225 | 9.781844849968746036e-01 226 | 9.781844849968746036e-01 227 | 8.924279933415394384e-01 228 | 8.924279933415394384e-01 229 | 9.969971872376021116e-01 230 | 9.969971872376021116e-01 231 | 9.895420879367313738e-01 232 | 9.895420879367313738e-01 233 | 1.098501527508938480e+00 234 | 1.098501527508938480e+00 235 | 1.040968837974246775e+00 236 | 1.040968837974246775e+00 237 | 1.062857386488895717e+00 238 | 1.062857386488895717e+00 239 | 1.000597695499495732e+00 240 | 1.000597695499495732e+00 241 | 1.029854785117635174e+00 242 | 1.029854785117635174e+00 243 | 1.035113316994682453e+00 244 | 1.035113316994682453e+00 245 | 1.010631807707845109e+00 246 | 1.010631807707845109e+00 247 | 1.042261106987714125e+00 248 | 1.042261106987714125e+00 249 | 1.113122133608497322e+00 250 | 1.113122133608497322e+00 251 | 1.068904243652869290e+00 252 | 1.068904243652869290e+00 253 | 9.942482510196997136e-01 254 | 9.942482510196997136e-01 255 | 9.359680527359719449e-01 256 | 9.359680527359719449e-01 257 | -------------------------------------------------------------------------------- /tests/check/pbclz2m_uniform_disorder.check: -------------------------------------------------------------------------------- 1 | 8.626243607843643302e-01 2 | 8.626243607843643302e-01 3 | 8.883949431144664288e-01 4 | 8.883949431144664288e-01 5 | 9.235793929601150420e-01 6 | 9.235793929601150420e-01 7 | 9.030372650972401383e-01 8 | 9.030372650972401383e-01 9 | 9.947331848349758587e-01 10 | 9.947331848349758587e-01 11 | 9.514254387378910938e-01 12 | 9.514254387378910938e-01 13 | 9.761963589376632111e-01 14 | 9.761963589376632111e-01 15 | 9.998805491924231958e-01 16 | 9.998805491924231958e-01 17 | 1.068420917142745452e+00 18 | 1.068420917142745452e+00 19 | 1.033980519709910562e+00 20 | 1.033980519709910562e+00 21 | 1.048313806639680212e+00 22 | 1.048313806639680212e+00 23 | 9.772760075458419848e-01 24 | 9.772760075458419848e-01 25 | 1.034566912308671371e+00 26 | 1.034566912308671371e+00 27 | 1.037668034900184111e+00 28 | 1.037668034900184111e+00 29 | 9.585709593051172650e-01 30 | 9.585709593051172650e-01 31 | 8.109372001267761698e-01 32 | 8.109372001267761698e-01 33 | 9.151945474009559600e-01 34 | 9.151945474009559600e-01 35 | 9.926101849697368529e-01 36 | 9.926101849697368529e-01 37 | 8.989335911701424875e-01 38 | 8.989335911701424875e-01 39 | 9.537796263237353633e-01 40 | 9.537796263237353633e-01 41 | 1.079513661597157892e+00 42 | 1.079513661597157892e+00 43 | 1.129662470340087044e+00 44 | 1.129662470340087044e+00 45 | 1.063455680856312924e+00 46 | 1.063455680856312924e+00 47 | 1.038943382767198997e+00 48 | 1.038943382767198997e+00 49 | 1.026768144303715768e+00 50 | 1.026768144303715768e+00 51 | 1.017281907137685515e+00 52 | 1.017281907137685515e+00 53 | 1.016976418023821882e+00 54 | 1.016976418023821882e+00 55 | 1.110003236459124576e+00 56 | 1.110003236459124576e+00 57 | 1.082294161665998011e+00 58 | 1.082294161665998011e+00 59 | 1.065381816259164616e+00 60 | 1.065381816259164616e+00 61 | 9.463318124527670960e-01 62 | 9.463318124527670960e-01 63 | 9.552493734063127739e-01 64 | 9.552493734063127739e-01 65 | 1.036906912968651007e+00 66 | 1.036906912968651007e+00 67 | 9.841610603616702813e-01 68 | 9.841610603616702813e-01 69 | 9.456499197854012495e-01 70 | 9.456499197854012495e-01 71 | 9.821556738952402776e-01 72 | 9.821556738952402776e-01 73 | 1.053486742410643995e+00 74 | 1.053486742410643995e+00 75 | 9.699342737422070870e-01 76 | 9.699342737422070870e-01 77 | 9.902620855296163649e-01 78 | 9.902620855296163649e-01 79 | 9.976777499760658419e-01 80 | 9.976777499760658419e-01 81 | 1.045557726310654356e+00 82 | 1.045557726310654356e+00 83 | 9.991747164295557981e-01 84 | 9.991747164295557981e-01 85 | 9.792648758904918260e-01 86 | 9.792648758904918260e-01 87 | 9.866158120896681982e-01 88 | 9.866158120896681982e-01 89 | 1.032607823539507086e+00 90 | 1.032607823539507086e+00 91 | 1.098666992809371079e+00 92 | 1.098666992809371079e+00 93 | 1.060509413786708155e+00 94 | 1.060509413786708155e+00 95 | 1.026875300309577854e+00 96 | 1.026875300309577854e+00 97 | 1.022358184249265500e+00 98 | 1.022358184249265500e+00 99 | 9.936823032362060992e-01 100 | 9.936823032362060992e-01 101 | 1.080540906031316251e+00 102 | 1.080540906031316251e+00 103 | 1.014763483683057910e+00 104 | 1.014763483683057910e+00 105 | 1.045629122376746878e+00 106 | 1.045629122376746878e+00 107 | 1.093300674933153527e+00 108 | 1.093300674933153527e+00 109 | 1.087199554249593803e+00 110 | 1.087199554249593803e+00 111 | 1.042693029481605027e+00 112 | 1.042693029481605027e+00 113 | 1.073335462345805347e+00 114 | 1.073335462345805347e+00 115 | 1.048728696748766120e+00 116 | 1.048728696748766120e+00 117 | 1.046304394729420384e+00 118 | 1.046304394729420384e+00 119 | 9.911348587356535456e-01 120 | 9.911348587356535456e-01 121 | 1.082938903231853933e+00 122 | 1.082938903231853933e+00 123 | 1.044901806693580681e+00 124 | 1.044901806693580681e+00 125 | 1.068815311367034226e+00 126 | 1.068815311367034226e+00 127 | 1.022163089345251130e+00 128 | 1.022163089345251130e+00 129 | 9.890440829946542944e-01 130 | 9.890440829946542944e-01 131 | 9.786150311646292232e-01 132 | 9.786150311646292232e-01 133 | 9.479291251166629406e-01 134 | 9.479291251166629406e-01 135 | 9.462347457717743548e-01 136 | 9.462347457717743548e-01 137 | 1.038896057681102603e+00 138 | 1.038896057681102603e+00 139 | 1.005974193172619824e+00 140 | 1.005974193172619824e+00 141 | 1.021871128048304600e+00 142 | 1.021871128048304600e+00 143 | 1.002719728374484642e+00 144 | 1.002719728374484642e+00 145 | 9.740025745535298984e-01 146 | 9.740025745535298984e-01 147 | 8.965387039264290925e-01 148 | 8.965387039264290925e-01 149 | 9.322188081090054812e-01 150 | 9.322188081090054812e-01 151 | 9.988043939401474169e-01 152 | 9.988043939401474169e-01 153 | 9.857490164155241485e-01 154 | 9.857490164155241485e-01 155 | 1.011133360869594711e+00 156 | 1.011133360869594711e+00 157 | 1.102356710256207739e+00 158 | 1.102356710256207739e+00 159 | 1.054193447266247308e+00 160 | 1.054193447266247308e+00 161 | 1.038138021076187911e+00 162 | 1.038138021076187911e+00 163 | 9.752581738455898819e-01 164 | 9.752581738455898819e-01 165 | 1.022764986323936309e+00 166 | 1.022764986323936309e+00 167 | 9.449145676487440415e-01 168 | 9.449145676487440415e-01 169 | 1.026122240631206273e+00 170 | 1.026122240631206273e+00 171 | 1.068577642575045505e+00 172 | 1.068577642575045505e+00 173 | 1.087791466887007674e+00 174 | 1.087791466887007674e+00 175 | 9.849626432586986446e-01 176 | 9.849626432586986446e-01 177 | 9.999110473687645717e-01 178 | 9.999110473687645717e-01 179 | 9.735288401648521939e-01 180 | 9.735288401648521939e-01 181 | 1.001126070007571922e+00 182 | 1.001126070007571922e+00 183 | 9.793050221264936184e-01 184 | 9.793050221264936184e-01 185 | 9.570840261130704185e-01 186 | 9.570840261130704185e-01 187 | 1.011985528940102075e+00 188 | 1.011985528940102075e+00 189 | 1.103916335086803091e+00 190 | 1.103916335086803091e+00 191 | 1.036487526486257860e+00 192 | 1.036487526486257860e+00 193 | 9.618671831346145007e-01 194 | 9.618671831346145007e-01 195 | 9.869511108595812043e-01 196 | 9.869511108595812043e-01 197 | 9.471502161114442320e-01 198 | 9.471502161114442320e-01 199 | 1.035630005077941895e+00 200 | 1.035630005077941895e+00 201 | 1.134429635995739982e+00 202 | 1.134429635995739982e+00 203 | 1.044098761643066808e+00 204 | 1.044098761643066808e+00 205 | 9.732319767720366555e-01 206 | 9.732319767720366555e-01 207 | 1.030868931957938717e+00 208 | 1.030868931957938717e+00 209 | 9.729042378051981910e-01 210 | 9.729042378051981910e-01 211 | 9.439423879530383088e-01 212 | 9.439423879530383088e-01 213 | 1.062054817600170509e+00 214 | 1.062054817600170509e+00 215 | 1.073182107817007847e+00 216 | 1.073182107817007847e+00 217 | 1.053965713790668612e+00 218 | 1.053965713790668612e+00 219 | 1.100025144932341270e+00 220 | 1.100025144932341270e+00 221 | 1.067543269817244456e+00 222 | 1.067543269817244456e+00 223 | 9.577452682171559983e-01 224 | 9.577452682171559983e-01 225 | 9.834817631512645653e-01 226 | 9.834817631512645653e-01 227 | 8.947351049855045702e-01 228 | 8.947351049855045702e-01 229 | 9.985685877752321638e-01 230 | 9.985685877752321638e-01 231 | 9.921225033942457916e-01 232 | 9.921225033942457916e-01 233 | 1.103496573448441875e+00 234 | 1.103496573448441875e+00 235 | 1.045496319958219456e+00 236 | 1.045496319958219456e+00 237 | 1.067028617762152631e+00 238 | 1.067028617762152631e+00 239 | 1.004281084043715744e+00 240 | 1.004281084043715744e+00 241 | 1.031924239097158580e+00 242 | 1.031924239097158580e+00 243 | 1.038017019332552415e+00 244 | 1.038017019332552415e+00 245 | 1.009172978130283393e+00 246 | 1.009172978130283393e+00 247 | 1.040692347894547787e+00 248 | 1.040692347894547787e+00 249 | 1.112521044145503790e+00 250 | 1.112521044145503790e+00 251 | 1.071132482474034031e+00 252 | 1.071132482474034031e+00 253 | 9.956973957922183871e-01 254 | 9.956973957922183871e-01 255 | 9.396068749424753008e-01 256 | 9.396068749424753008e-01 257 | -------------------------------------------------------------------------------- /tests/check/positions_haldane_heterostructure.check: -------------------------------------------------------------------------------- 1 | 0.000000000000000000e+00 0.000000000000000000e+00 2 | 5.000000000000000000e-01 2.886751345948128655e-01 3 | 5.000000000000000000e-01 8.660254037844385966e-01 4 | 1.000000000000000000e+00 1.154700538379251462e+00 5 | 1.000000000000000000e+00 1.732050807568877193e+00 6 | 1.500000000000000000e+00 2.020725942163690281e+00 7 | 1.500000000000000000e+00 2.598076211353316012e+00 8 | 2.000000000000000000e+00 2.886751345948128655e+00 9 | 2.000000000000000000e+00 3.464101615137754386e+00 10 | 2.500000000000000000e+00 3.752776749732567030e+00 11 | 2.500000000000000000e+00 4.330127018922192761e+00 12 | 3.000000000000000000e+00 4.618802153517005848e+00 13 | 3.000000000000000000e+00 5.196152422706632024e+00 14 | 3.500000000000000000e+00 5.484827557301444223e+00 15 | 3.500000000000000000e+00 6.062177826491070398e+00 16 | 4.000000000000000000e+00 6.350852961085882598e+00 17 | 1.000000000000000000e+00 0.000000000000000000e+00 18 | 1.500000000000000000e+00 2.886751345948128655e-01 19 | 1.500000000000000000e+00 8.660254037844385966e-01 20 | 2.000000000000000000e+00 1.154700538379251462e+00 21 | 2.000000000000000000e+00 1.732050807568877193e+00 22 | 2.500000000000000000e+00 2.020725942163690281e+00 23 | 2.500000000000000000e+00 2.598076211353316012e+00 24 | 3.000000000000000000e+00 2.886751345948128655e+00 25 | 3.000000000000000000e+00 3.464101615137754386e+00 26 | 3.500000000000000000e+00 3.752776749732567030e+00 27 | 3.500000000000000000e+00 4.330127018922192761e+00 28 | 4.000000000000000000e+00 4.618802153517005848e+00 29 | 4.000000000000000000e+00 5.196152422706632024e+00 30 | 4.500000000000000000e+00 5.484827557301444223e+00 31 | 4.500000000000000000e+00 6.062177826491070398e+00 32 | 5.000000000000000000e+00 6.350852961085882598e+00 33 | 2.000000000000000000e+00 0.000000000000000000e+00 34 | 2.500000000000000000e+00 2.886751345948128655e-01 35 | 2.500000000000000000e+00 8.660254037844385966e-01 36 | 3.000000000000000000e+00 1.154700538379251462e+00 37 | 3.000000000000000000e+00 1.732050807568877193e+00 38 | 3.500000000000000000e+00 2.020725942163690281e+00 39 | 3.500000000000000000e+00 2.598076211353316012e+00 40 | 4.000000000000000000e+00 2.886751345948128655e+00 41 | 4.000000000000000000e+00 3.464101615137754386e+00 42 | 4.500000000000000000e+00 3.752776749732567030e+00 43 | 4.500000000000000000e+00 4.330127018922192761e+00 44 | 5.000000000000000000e+00 4.618802153517005848e+00 45 | 5.000000000000000000e+00 5.196152422706632024e+00 46 | 5.500000000000000000e+00 5.484827557301444223e+00 47 | 5.500000000000000000e+00 6.062177826491070398e+00 48 | 6.000000000000000000e+00 6.350852961085882598e+00 49 | 3.000000000000000000e+00 0.000000000000000000e+00 50 | 3.500000000000000000e+00 2.886751345948128655e-01 51 | 3.500000000000000000e+00 8.660254037844385966e-01 52 | 4.000000000000000000e+00 1.154700538379251462e+00 53 | 4.000000000000000000e+00 1.732050807568877193e+00 54 | 4.500000000000000000e+00 2.020725942163690281e+00 55 | 4.500000000000000000e+00 2.598076211353316012e+00 56 | 5.000000000000000000e+00 2.886751345948128655e+00 57 | 5.000000000000000000e+00 3.464101615137754386e+00 58 | 5.500000000000000000e+00 3.752776749732567030e+00 59 | 5.500000000000000000e+00 4.330127018922192761e+00 60 | 6.000000000000000000e+00 4.618802153517005848e+00 61 | 6.000000000000000000e+00 5.196152422706632024e+00 62 | 6.500000000000000000e+00 5.484827557301444223e+00 63 | 6.500000000000000000e+00 6.062177826491070398e+00 64 | 7.000000000000000000e+00 6.350852961085882598e+00 65 | 4.000000000000000000e+00 0.000000000000000000e+00 66 | 4.500000000000000000e+00 2.886751345948128655e-01 67 | 4.500000000000000000e+00 8.660254037844385966e-01 68 | 5.000000000000000000e+00 1.154700538379251462e+00 69 | 5.000000000000000000e+00 1.732050807568877193e+00 70 | 5.500000000000000000e+00 2.020725942163690281e+00 71 | 5.500000000000000000e+00 2.598076211353316012e+00 72 | 6.000000000000000000e+00 2.886751345948128655e+00 73 | 6.000000000000000000e+00 3.464101615137754386e+00 74 | 6.500000000000000000e+00 3.752776749732567030e+00 75 | 6.500000000000000000e+00 4.330127018922192761e+00 76 | 7.000000000000000000e+00 4.618802153517005848e+00 77 | 7.000000000000000000e+00 5.196152422706632024e+00 78 | 7.500000000000000000e+00 5.484827557301444223e+00 79 | 7.500000000000000000e+00 6.062177826491070398e+00 80 | 8.000000000000000000e+00 6.350852961085882598e+00 81 | 5.000000000000000000e+00 0.000000000000000000e+00 82 | 5.500000000000000000e+00 2.886751345948128655e-01 83 | 5.500000000000000000e+00 8.660254037844385966e-01 84 | 6.000000000000000000e+00 1.154700538379251462e+00 85 | 6.000000000000000000e+00 1.732050807568877193e+00 86 | 6.500000000000000000e+00 2.020725942163690281e+00 87 | 6.500000000000000000e+00 2.598076211353316012e+00 88 | 7.000000000000000000e+00 2.886751345948128655e+00 89 | 7.000000000000000000e+00 3.464101615137754386e+00 90 | 7.500000000000000000e+00 3.752776749732567030e+00 91 | 7.500000000000000000e+00 4.330127018922192761e+00 92 | 8.000000000000000000e+00 4.618802153517005848e+00 93 | 8.000000000000000000e+00 5.196152422706632024e+00 94 | 8.500000000000000000e+00 5.484827557301444223e+00 95 | 8.500000000000000000e+00 6.062177826491070398e+00 96 | 9.000000000000000000e+00 6.350852961085882598e+00 97 | 6.000000000000000000e+00 0.000000000000000000e+00 98 | 6.500000000000000000e+00 2.886751345948128655e-01 99 | 6.500000000000000000e+00 8.660254037844385966e-01 100 | 7.000000000000000000e+00 1.154700538379251462e+00 101 | 7.000000000000000000e+00 1.732050807568877193e+00 102 | 7.500000000000000000e+00 2.020725942163690281e+00 103 | 7.500000000000000000e+00 2.598076211353316012e+00 104 | 8.000000000000000000e+00 2.886751345948128655e+00 105 | 8.000000000000000000e+00 3.464101615137754386e+00 106 | 8.500000000000000000e+00 3.752776749732567030e+00 107 | 8.500000000000000000e+00 4.330127018922192761e+00 108 | 9.000000000000000000e+00 4.618802153517005848e+00 109 | 9.000000000000000000e+00 5.196152422706632024e+00 110 | 9.500000000000000000e+00 5.484827557301444223e+00 111 | 9.500000000000000000e+00 6.062177826491070398e+00 112 | 1.000000000000000000e+01 6.350852961085882598e+00 113 | 7.000000000000000000e+00 0.000000000000000000e+00 114 | 7.500000000000000000e+00 2.886751345948128655e-01 115 | 7.500000000000000000e+00 8.660254037844385966e-01 116 | 8.000000000000000000e+00 1.154700538379251462e+00 117 | 8.000000000000000000e+00 1.732050807568877193e+00 118 | 8.500000000000000000e+00 2.020725942163690281e+00 119 | 8.500000000000000000e+00 2.598076211353316012e+00 120 | 9.000000000000000000e+00 2.886751345948128655e+00 121 | 9.000000000000000000e+00 3.464101615137754386e+00 122 | 9.500000000000000000e+00 3.752776749732567030e+00 123 | 9.500000000000000000e+00 4.330127018922192761e+00 124 | 1.000000000000000000e+01 4.618802153517005848e+00 125 | 1.000000000000000000e+01 5.196152422706632024e+00 126 | 1.050000000000000000e+01 5.484827557301444223e+00 127 | 1.050000000000000000e+01 6.062177826491070398e+00 128 | 1.100000000000000000e+01 6.350852961085882598e+00 129 | 8.000000000000000000e+00 0.000000000000000000e+00 130 | 8.500000000000000000e+00 2.886751345948128655e-01 131 | 8.500000000000000000e+00 8.660254037844385966e-01 132 | 9.000000000000000000e+00 1.154700538379251462e+00 133 | 9.000000000000000000e+00 1.732050807568877193e+00 134 | 9.500000000000000000e+00 2.020725942163690281e+00 135 | 9.500000000000000000e+00 2.598076211353316012e+00 136 | 1.000000000000000000e+01 2.886751345948128655e+00 137 | 1.000000000000000000e+01 3.464101615137754386e+00 138 | 1.050000000000000000e+01 3.752776749732567030e+00 139 | 1.050000000000000000e+01 4.330127018922192761e+00 140 | 1.100000000000000000e+01 4.618802153517005848e+00 141 | 1.100000000000000000e+01 5.196152422706632024e+00 142 | 1.150000000000000000e+01 5.484827557301444223e+00 143 | 1.150000000000000000e+01 6.062177826491070398e+00 144 | 1.200000000000000000e+01 6.350852961085882598e+00 145 | 9.000000000000000000e+00 0.000000000000000000e+00 146 | 9.500000000000000000e+00 2.886751345948128655e-01 147 | 9.500000000000000000e+00 8.660254037844385966e-01 148 | 1.000000000000000000e+01 1.154700538379251462e+00 149 | 1.000000000000000000e+01 1.732050807568877193e+00 150 | 1.050000000000000000e+01 2.020725942163690281e+00 151 | 1.050000000000000000e+01 2.598076211353316012e+00 152 | 1.100000000000000000e+01 2.886751345948128655e+00 153 | 1.100000000000000000e+01 3.464101615137754386e+00 154 | 1.150000000000000000e+01 3.752776749732567030e+00 155 | 1.150000000000000000e+01 4.330127018922192761e+00 156 | 1.200000000000000000e+01 4.618802153517005848e+00 157 | 1.200000000000000000e+01 5.196152422706632024e+00 158 | 1.250000000000000000e+01 5.484827557301444223e+00 159 | 1.250000000000000000e+01 6.062177826491070398e+00 160 | 1.300000000000000000e+01 6.350852961085882598e+00 161 | 1.000000000000000000e+01 0.000000000000000000e+00 162 | 1.050000000000000000e+01 2.886751345948128655e-01 163 | 1.050000000000000000e+01 8.660254037844385966e-01 164 | 1.100000000000000000e+01 1.154700538379251462e+00 165 | 1.100000000000000000e+01 1.732050807568877193e+00 166 | 1.150000000000000000e+01 2.020725942163690281e+00 167 | 1.150000000000000000e+01 2.598076211353316012e+00 168 | 1.200000000000000000e+01 2.886751345948128655e+00 169 | 1.200000000000000000e+01 3.464101615137754386e+00 170 | 1.250000000000000000e+01 3.752776749732567030e+00 171 | 1.250000000000000000e+01 4.330127018922192761e+00 172 | 1.300000000000000000e+01 4.618802153517005848e+00 173 | 1.300000000000000000e+01 5.196152422706632024e+00 174 | 1.350000000000000000e+01 5.484827557301444223e+00 175 | 1.350000000000000000e+01 6.062177826491070398e+00 176 | 1.400000000000000000e+01 6.350852961085882598e+00 177 | 1.100000000000000000e+01 0.000000000000000000e+00 178 | 1.150000000000000000e+01 2.886751345948128655e-01 179 | 1.150000000000000000e+01 8.660254037844385966e-01 180 | 1.200000000000000000e+01 1.154700538379251462e+00 181 | 1.200000000000000000e+01 1.732050807568877193e+00 182 | 1.250000000000000000e+01 2.020725942163690281e+00 183 | 1.250000000000000000e+01 2.598076211353316012e+00 184 | 1.300000000000000000e+01 2.886751345948128655e+00 185 | 1.300000000000000000e+01 3.464101615137754386e+00 186 | 1.350000000000000000e+01 3.752776749732567030e+00 187 | 1.350000000000000000e+01 4.330127018922192761e+00 188 | 1.400000000000000000e+01 4.618802153517005848e+00 189 | 1.400000000000000000e+01 5.196152422706632024e+00 190 | 1.450000000000000000e+01 5.484827557301444223e+00 191 | 1.450000000000000000e+01 6.062177826491070398e+00 192 | 1.500000000000000000e+01 6.350852961085882598e+00 193 | 1.200000000000000000e+01 0.000000000000000000e+00 194 | 1.250000000000000000e+01 2.886751345948128655e-01 195 | 1.250000000000000000e+01 8.660254037844385966e-01 196 | 1.300000000000000000e+01 1.154700538379251462e+00 197 | 1.300000000000000000e+01 1.732050807568877193e+00 198 | 1.350000000000000000e+01 2.020725942163690281e+00 199 | 1.350000000000000000e+01 2.598076211353316012e+00 200 | 1.400000000000000000e+01 2.886751345948128655e+00 201 | 1.400000000000000000e+01 3.464101615137754386e+00 202 | 1.450000000000000000e+01 3.752776749732567030e+00 203 | 1.450000000000000000e+01 4.330127018922192761e+00 204 | 1.500000000000000000e+01 4.618802153517005848e+00 205 | 1.500000000000000000e+01 5.196152422706632024e+00 206 | 1.550000000000000000e+01 5.484827557301444223e+00 207 | 1.550000000000000000e+01 6.062177826491070398e+00 208 | 1.600000000000000000e+01 6.350852961085882598e+00 209 | 1.300000000000000000e+01 0.000000000000000000e+00 210 | 1.350000000000000000e+01 2.886751345948128655e-01 211 | 1.350000000000000000e+01 8.660254037844385966e-01 212 | 1.400000000000000000e+01 1.154700538379251462e+00 213 | 1.400000000000000000e+01 1.732050807568877193e+00 214 | 1.450000000000000000e+01 2.020725942163690281e+00 215 | 1.450000000000000000e+01 2.598076211353316012e+00 216 | 1.500000000000000000e+01 2.886751345948128655e+00 217 | 1.500000000000000000e+01 3.464101615137754386e+00 218 | 1.550000000000000000e+01 3.752776749732567030e+00 219 | 1.550000000000000000e+01 4.330127018922192761e+00 220 | 1.600000000000000000e+01 4.618802153517005848e+00 221 | 1.600000000000000000e+01 5.196152422706632024e+00 222 | 1.650000000000000000e+01 5.484827557301444223e+00 223 | 1.650000000000000000e+01 6.062177826491070398e+00 224 | 1.700000000000000000e+01 6.350852961085882598e+00 225 | 1.400000000000000000e+01 0.000000000000000000e+00 226 | 1.450000000000000000e+01 2.886751345948128655e-01 227 | 1.450000000000000000e+01 8.660254037844385966e-01 228 | 1.500000000000000000e+01 1.154700538379251462e+00 229 | 1.500000000000000000e+01 1.732050807568877193e+00 230 | 1.550000000000000000e+01 2.020725942163690281e+00 231 | 1.550000000000000000e+01 2.598076211353316012e+00 232 | 1.600000000000000000e+01 2.886751345948128655e+00 233 | 1.600000000000000000e+01 3.464101615137754386e+00 234 | 1.650000000000000000e+01 3.752776749732567030e+00 235 | 1.650000000000000000e+01 4.330127018922192761e+00 236 | 1.700000000000000000e+01 4.618802153517005848e+00 237 | 1.700000000000000000e+01 5.196152422706632024e+00 238 | 1.750000000000000000e+01 5.484827557301444223e+00 239 | 1.750000000000000000e+01 6.062177826491070398e+00 240 | 1.800000000000000000e+01 6.350852961085882598e+00 241 | 1.500000000000000000e+01 0.000000000000000000e+00 242 | 1.550000000000000000e+01 2.886751345948128655e-01 243 | 1.550000000000000000e+01 8.660254037844385966e-01 244 | 1.600000000000000000e+01 1.154700538379251462e+00 245 | 1.600000000000000000e+01 1.732050807568877193e+00 246 | 1.650000000000000000e+01 2.020725942163690281e+00 247 | 1.650000000000000000e+01 2.598076211353316012e+00 248 | 1.700000000000000000e+01 2.886751345948128655e+00 249 | 1.700000000000000000e+01 3.464101615137754386e+00 250 | 1.750000000000000000e+01 3.752776749732567030e+00 251 | 1.750000000000000000e+01 4.330127018922192761e+00 252 | 1.800000000000000000e+01 4.618802153517005848e+00 253 | 1.800000000000000000e+01 5.196152422706632024e+00 254 | 1.850000000000000000e+01 5.484827557301444223e+00 255 | 1.850000000000000000e+01 6.062177826491070398e+00 256 | 1.900000000000000000e+01 6.350852961085882598e+00 257 | -------------------------------------------------------------------------------- /tests/check/positions_haldane_uniform.check: -------------------------------------------------------------------------------- 1 | 0.000000000000000000e+00 0.000000000000000000e+00 2 | 5.000000000000000000e-01 2.886751345948128655e-01 3 | 5.000000000000000000e-01 8.660254037844385966e-01 4 | 1.000000000000000000e+00 1.154700538379251462e+00 5 | 1.000000000000000000e+00 1.732050807568877193e+00 6 | 1.500000000000000000e+00 2.020725942163690281e+00 7 | 1.500000000000000000e+00 2.598076211353316012e+00 8 | 2.000000000000000000e+00 2.886751345948128655e+00 9 | 2.000000000000000000e+00 3.464101615137754386e+00 10 | 2.500000000000000000e+00 3.752776749732567030e+00 11 | 2.500000000000000000e+00 4.330127018922192761e+00 12 | 3.000000000000000000e+00 4.618802153517005848e+00 13 | 3.000000000000000000e+00 5.196152422706632024e+00 14 | 3.500000000000000000e+00 5.484827557301444223e+00 15 | 3.500000000000000000e+00 6.062177826491070398e+00 16 | 4.000000000000000000e+00 6.350852961085882598e+00 17 | 1.000000000000000000e+00 0.000000000000000000e+00 18 | 1.500000000000000000e+00 2.886751345948128655e-01 19 | 1.500000000000000000e+00 8.660254037844385966e-01 20 | 2.000000000000000000e+00 1.154700538379251462e+00 21 | 2.000000000000000000e+00 1.732050807568877193e+00 22 | 2.500000000000000000e+00 2.020725942163690281e+00 23 | 2.500000000000000000e+00 2.598076211353316012e+00 24 | 3.000000000000000000e+00 2.886751345948128655e+00 25 | 3.000000000000000000e+00 3.464101615137754386e+00 26 | 3.500000000000000000e+00 3.752776749732567030e+00 27 | 3.500000000000000000e+00 4.330127018922192761e+00 28 | 4.000000000000000000e+00 4.618802153517005848e+00 29 | 4.000000000000000000e+00 5.196152422706632024e+00 30 | 4.500000000000000000e+00 5.484827557301444223e+00 31 | 4.500000000000000000e+00 6.062177826491070398e+00 32 | 5.000000000000000000e+00 6.350852961085882598e+00 33 | 2.000000000000000000e+00 0.000000000000000000e+00 34 | 2.500000000000000000e+00 2.886751345948128655e-01 35 | 2.500000000000000000e+00 8.660254037844385966e-01 36 | 3.000000000000000000e+00 1.154700538379251462e+00 37 | 3.000000000000000000e+00 1.732050807568877193e+00 38 | 3.500000000000000000e+00 2.020725942163690281e+00 39 | 3.500000000000000000e+00 2.598076211353316012e+00 40 | 4.000000000000000000e+00 2.886751345948128655e+00 41 | 4.000000000000000000e+00 3.464101615137754386e+00 42 | 4.500000000000000000e+00 3.752776749732567030e+00 43 | 4.500000000000000000e+00 4.330127018922192761e+00 44 | 5.000000000000000000e+00 4.618802153517005848e+00 45 | 5.000000000000000000e+00 5.196152422706632024e+00 46 | 5.500000000000000000e+00 5.484827557301444223e+00 47 | 5.500000000000000000e+00 6.062177826491070398e+00 48 | 6.000000000000000000e+00 6.350852961085882598e+00 49 | 3.000000000000000000e+00 0.000000000000000000e+00 50 | 3.500000000000000000e+00 2.886751345948128655e-01 51 | 3.500000000000000000e+00 8.660254037844385966e-01 52 | 4.000000000000000000e+00 1.154700538379251462e+00 53 | 4.000000000000000000e+00 1.732050807568877193e+00 54 | 4.500000000000000000e+00 2.020725942163690281e+00 55 | 4.500000000000000000e+00 2.598076211353316012e+00 56 | 5.000000000000000000e+00 2.886751345948128655e+00 57 | 5.000000000000000000e+00 3.464101615137754386e+00 58 | 5.500000000000000000e+00 3.752776749732567030e+00 59 | 5.500000000000000000e+00 4.330127018922192761e+00 60 | 6.000000000000000000e+00 4.618802153517005848e+00 61 | 6.000000000000000000e+00 5.196152422706632024e+00 62 | 6.500000000000000000e+00 5.484827557301444223e+00 63 | 6.500000000000000000e+00 6.062177826491070398e+00 64 | 7.000000000000000000e+00 6.350852961085882598e+00 65 | 4.000000000000000000e+00 0.000000000000000000e+00 66 | 4.500000000000000000e+00 2.886751345948128655e-01 67 | 4.500000000000000000e+00 8.660254037844385966e-01 68 | 5.000000000000000000e+00 1.154700538379251462e+00 69 | 5.000000000000000000e+00 1.732050807568877193e+00 70 | 5.500000000000000000e+00 2.020725942163690281e+00 71 | 5.500000000000000000e+00 2.598076211353316012e+00 72 | 6.000000000000000000e+00 2.886751345948128655e+00 73 | 6.000000000000000000e+00 3.464101615137754386e+00 74 | 6.500000000000000000e+00 3.752776749732567030e+00 75 | 6.500000000000000000e+00 4.330127018922192761e+00 76 | 7.000000000000000000e+00 4.618802153517005848e+00 77 | 7.000000000000000000e+00 5.196152422706632024e+00 78 | 7.500000000000000000e+00 5.484827557301444223e+00 79 | 7.500000000000000000e+00 6.062177826491070398e+00 80 | 8.000000000000000000e+00 6.350852961085882598e+00 81 | 5.000000000000000000e+00 0.000000000000000000e+00 82 | 5.500000000000000000e+00 2.886751345948128655e-01 83 | 5.500000000000000000e+00 8.660254037844385966e-01 84 | 6.000000000000000000e+00 1.154700538379251462e+00 85 | 6.000000000000000000e+00 1.732050807568877193e+00 86 | 6.500000000000000000e+00 2.020725942163690281e+00 87 | 6.500000000000000000e+00 2.598076211353316012e+00 88 | 7.000000000000000000e+00 2.886751345948128655e+00 89 | 7.000000000000000000e+00 3.464101615137754386e+00 90 | 7.500000000000000000e+00 3.752776749732567030e+00 91 | 7.500000000000000000e+00 4.330127018922192761e+00 92 | 8.000000000000000000e+00 4.618802153517005848e+00 93 | 8.000000000000000000e+00 5.196152422706632024e+00 94 | 8.500000000000000000e+00 5.484827557301444223e+00 95 | 8.500000000000000000e+00 6.062177826491070398e+00 96 | 9.000000000000000000e+00 6.350852961085882598e+00 97 | 6.000000000000000000e+00 0.000000000000000000e+00 98 | 6.500000000000000000e+00 2.886751345948128655e-01 99 | 6.500000000000000000e+00 8.660254037844385966e-01 100 | 7.000000000000000000e+00 1.154700538379251462e+00 101 | 7.000000000000000000e+00 1.732050807568877193e+00 102 | 7.500000000000000000e+00 2.020725942163690281e+00 103 | 7.500000000000000000e+00 2.598076211353316012e+00 104 | 8.000000000000000000e+00 2.886751345948128655e+00 105 | 8.000000000000000000e+00 3.464101615137754386e+00 106 | 8.500000000000000000e+00 3.752776749732567030e+00 107 | 8.500000000000000000e+00 4.330127018922192761e+00 108 | 9.000000000000000000e+00 4.618802153517005848e+00 109 | 9.000000000000000000e+00 5.196152422706632024e+00 110 | 9.500000000000000000e+00 5.484827557301444223e+00 111 | 9.500000000000000000e+00 6.062177826491070398e+00 112 | 1.000000000000000000e+01 6.350852961085882598e+00 113 | 7.000000000000000000e+00 0.000000000000000000e+00 114 | 7.500000000000000000e+00 2.886751345948128655e-01 115 | 7.500000000000000000e+00 8.660254037844385966e-01 116 | 8.000000000000000000e+00 1.154700538379251462e+00 117 | 8.000000000000000000e+00 1.732050807568877193e+00 118 | 8.500000000000000000e+00 2.020725942163690281e+00 119 | 8.500000000000000000e+00 2.598076211353316012e+00 120 | 9.000000000000000000e+00 2.886751345948128655e+00 121 | 9.000000000000000000e+00 3.464101615137754386e+00 122 | 9.500000000000000000e+00 3.752776749732567030e+00 123 | 9.500000000000000000e+00 4.330127018922192761e+00 124 | 1.000000000000000000e+01 4.618802153517005848e+00 125 | 1.000000000000000000e+01 5.196152422706632024e+00 126 | 1.050000000000000000e+01 5.484827557301444223e+00 127 | 1.050000000000000000e+01 6.062177826491070398e+00 128 | 1.100000000000000000e+01 6.350852961085882598e+00 129 | -------------------------------------------------------------------------------- /tests/check/positions_kanemele_uniform.check: -------------------------------------------------------------------------------- 1 | 0.000000000000000000e+00 0.000000000000000000e+00 2 | 0.000000000000000000e+00 0.000000000000000000e+00 3 | 5.000000000000000000e-01 2.886751345948128655e-01 4 | 5.000000000000000000e-01 2.886751345948128655e-01 5 | 5.000000000000000000e-01 8.660254037844385966e-01 6 | 5.000000000000000000e-01 8.660254037844385966e-01 7 | 1.000000000000000000e+00 1.154700538379251462e+00 8 | 1.000000000000000000e+00 1.154700538379251462e+00 9 | 1.000000000000000000e+00 1.732050807568877193e+00 10 | 1.000000000000000000e+00 1.732050807568877193e+00 11 | 1.500000000000000000e+00 2.020725942163690281e+00 12 | 1.500000000000000000e+00 2.020725942163690281e+00 13 | 1.500000000000000000e+00 2.598076211353316012e+00 14 | 1.500000000000000000e+00 2.598076211353316012e+00 15 | 2.000000000000000000e+00 2.886751345948128655e+00 16 | 2.000000000000000000e+00 2.886751345948128655e+00 17 | 2.000000000000000000e+00 3.464101615137754386e+00 18 | 2.000000000000000000e+00 3.464101615137754386e+00 19 | 2.500000000000000000e+00 3.752776749732567030e+00 20 | 2.500000000000000000e+00 3.752776749732567030e+00 21 | 2.500000000000000000e+00 4.330127018922192761e+00 22 | 2.500000000000000000e+00 4.330127018922192761e+00 23 | 3.000000000000000000e+00 4.618802153517005848e+00 24 | 3.000000000000000000e+00 4.618802153517005848e+00 25 | 3.000000000000000000e+00 5.196152422706632024e+00 26 | 3.000000000000000000e+00 5.196152422706632024e+00 27 | 3.500000000000000000e+00 5.484827557301444223e+00 28 | 3.500000000000000000e+00 5.484827557301444223e+00 29 | 3.500000000000000000e+00 6.062177826491070398e+00 30 | 3.500000000000000000e+00 6.062177826491070398e+00 31 | 4.000000000000000000e+00 6.350852961085882598e+00 32 | 4.000000000000000000e+00 6.350852961085882598e+00 33 | 1.000000000000000000e+00 0.000000000000000000e+00 34 | 1.000000000000000000e+00 0.000000000000000000e+00 35 | 1.500000000000000000e+00 2.886751345948128655e-01 36 | 1.500000000000000000e+00 2.886751345948128655e-01 37 | 1.500000000000000000e+00 8.660254037844385966e-01 38 | 1.500000000000000000e+00 8.660254037844385966e-01 39 | 2.000000000000000000e+00 1.154700538379251462e+00 40 | 2.000000000000000000e+00 1.154700538379251462e+00 41 | 2.000000000000000000e+00 1.732050807568877193e+00 42 | 2.000000000000000000e+00 1.732050807568877193e+00 43 | 2.500000000000000000e+00 2.020725942163690281e+00 44 | 2.500000000000000000e+00 2.020725942163690281e+00 45 | 2.500000000000000000e+00 2.598076211353316012e+00 46 | 2.500000000000000000e+00 2.598076211353316012e+00 47 | 3.000000000000000000e+00 2.886751345948128655e+00 48 | 3.000000000000000000e+00 2.886751345948128655e+00 49 | 3.000000000000000000e+00 3.464101615137754386e+00 50 | 3.000000000000000000e+00 3.464101615137754386e+00 51 | 3.500000000000000000e+00 3.752776749732567030e+00 52 | 3.500000000000000000e+00 3.752776749732567030e+00 53 | 3.500000000000000000e+00 4.330127018922192761e+00 54 | 3.500000000000000000e+00 4.330127018922192761e+00 55 | 4.000000000000000000e+00 4.618802153517005848e+00 56 | 4.000000000000000000e+00 4.618802153517005848e+00 57 | 4.000000000000000000e+00 5.196152422706632024e+00 58 | 4.000000000000000000e+00 5.196152422706632024e+00 59 | 4.500000000000000000e+00 5.484827557301444223e+00 60 | 4.500000000000000000e+00 5.484827557301444223e+00 61 | 4.500000000000000000e+00 6.062177826491070398e+00 62 | 4.500000000000000000e+00 6.062177826491070398e+00 63 | 5.000000000000000000e+00 6.350852961085882598e+00 64 | 5.000000000000000000e+00 6.350852961085882598e+00 65 | 2.000000000000000000e+00 0.000000000000000000e+00 66 | 2.000000000000000000e+00 0.000000000000000000e+00 67 | 2.500000000000000000e+00 2.886751345948128655e-01 68 | 2.500000000000000000e+00 2.886751345948128655e-01 69 | 2.500000000000000000e+00 8.660254037844385966e-01 70 | 2.500000000000000000e+00 8.660254037844385966e-01 71 | 3.000000000000000000e+00 1.154700538379251462e+00 72 | 3.000000000000000000e+00 1.154700538379251462e+00 73 | 3.000000000000000000e+00 1.732050807568877193e+00 74 | 3.000000000000000000e+00 1.732050807568877193e+00 75 | 3.500000000000000000e+00 2.020725942163690281e+00 76 | 3.500000000000000000e+00 2.020725942163690281e+00 77 | 3.500000000000000000e+00 2.598076211353316012e+00 78 | 3.500000000000000000e+00 2.598076211353316012e+00 79 | 4.000000000000000000e+00 2.886751345948128655e+00 80 | 4.000000000000000000e+00 2.886751345948128655e+00 81 | 4.000000000000000000e+00 3.464101615137754386e+00 82 | 4.000000000000000000e+00 3.464101615137754386e+00 83 | 4.500000000000000000e+00 3.752776749732567030e+00 84 | 4.500000000000000000e+00 3.752776749732567030e+00 85 | 4.500000000000000000e+00 4.330127018922192761e+00 86 | 4.500000000000000000e+00 4.330127018922192761e+00 87 | 5.000000000000000000e+00 4.618802153517005848e+00 88 | 5.000000000000000000e+00 4.618802153517005848e+00 89 | 5.000000000000000000e+00 5.196152422706632024e+00 90 | 5.000000000000000000e+00 5.196152422706632024e+00 91 | 5.500000000000000000e+00 5.484827557301444223e+00 92 | 5.500000000000000000e+00 5.484827557301444223e+00 93 | 5.500000000000000000e+00 6.062177826491070398e+00 94 | 5.500000000000000000e+00 6.062177826491070398e+00 95 | 6.000000000000000000e+00 6.350852961085882598e+00 96 | 6.000000000000000000e+00 6.350852961085882598e+00 97 | 3.000000000000000000e+00 0.000000000000000000e+00 98 | 3.000000000000000000e+00 0.000000000000000000e+00 99 | 3.500000000000000000e+00 2.886751345948128655e-01 100 | 3.500000000000000000e+00 2.886751345948128655e-01 101 | 3.500000000000000000e+00 8.660254037844385966e-01 102 | 3.500000000000000000e+00 8.660254037844385966e-01 103 | 4.000000000000000000e+00 1.154700538379251462e+00 104 | 4.000000000000000000e+00 1.154700538379251462e+00 105 | 4.000000000000000000e+00 1.732050807568877193e+00 106 | 4.000000000000000000e+00 1.732050807568877193e+00 107 | 4.500000000000000000e+00 2.020725942163690281e+00 108 | 4.500000000000000000e+00 2.020725942163690281e+00 109 | 4.500000000000000000e+00 2.598076211353316012e+00 110 | 4.500000000000000000e+00 2.598076211353316012e+00 111 | 5.000000000000000000e+00 2.886751345948128655e+00 112 | 5.000000000000000000e+00 2.886751345948128655e+00 113 | 5.000000000000000000e+00 3.464101615137754386e+00 114 | 5.000000000000000000e+00 3.464101615137754386e+00 115 | 5.500000000000000000e+00 3.752776749732567030e+00 116 | 5.500000000000000000e+00 3.752776749732567030e+00 117 | 5.500000000000000000e+00 4.330127018922192761e+00 118 | 5.500000000000000000e+00 4.330127018922192761e+00 119 | 6.000000000000000000e+00 4.618802153517005848e+00 120 | 6.000000000000000000e+00 4.618802153517005848e+00 121 | 6.000000000000000000e+00 5.196152422706632024e+00 122 | 6.000000000000000000e+00 5.196152422706632024e+00 123 | 6.500000000000000000e+00 5.484827557301444223e+00 124 | 6.500000000000000000e+00 5.484827557301444223e+00 125 | 6.500000000000000000e+00 6.062177826491070398e+00 126 | 6.500000000000000000e+00 6.062177826491070398e+00 127 | 7.000000000000000000e+00 6.350852961085882598e+00 128 | 7.000000000000000000e+00 6.350852961085882598e+00 129 | 4.000000000000000000e+00 0.000000000000000000e+00 130 | 4.000000000000000000e+00 0.000000000000000000e+00 131 | 4.500000000000000000e+00 2.886751345948128655e-01 132 | 4.500000000000000000e+00 2.886751345948128655e-01 133 | 4.500000000000000000e+00 8.660254037844385966e-01 134 | 4.500000000000000000e+00 8.660254037844385966e-01 135 | 5.000000000000000000e+00 1.154700538379251462e+00 136 | 5.000000000000000000e+00 1.154700538379251462e+00 137 | 5.000000000000000000e+00 1.732050807568877193e+00 138 | 5.000000000000000000e+00 1.732050807568877193e+00 139 | 5.500000000000000000e+00 2.020725942163690281e+00 140 | 5.500000000000000000e+00 2.020725942163690281e+00 141 | 5.500000000000000000e+00 2.598076211353316012e+00 142 | 5.500000000000000000e+00 2.598076211353316012e+00 143 | 6.000000000000000000e+00 2.886751345948128655e+00 144 | 6.000000000000000000e+00 2.886751345948128655e+00 145 | 6.000000000000000000e+00 3.464101615137754386e+00 146 | 6.000000000000000000e+00 3.464101615137754386e+00 147 | 6.500000000000000000e+00 3.752776749732567030e+00 148 | 6.500000000000000000e+00 3.752776749732567030e+00 149 | 6.500000000000000000e+00 4.330127018922192761e+00 150 | 6.500000000000000000e+00 4.330127018922192761e+00 151 | 7.000000000000000000e+00 4.618802153517005848e+00 152 | 7.000000000000000000e+00 4.618802153517005848e+00 153 | 7.000000000000000000e+00 5.196152422706632024e+00 154 | 7.000000000000000000e+00 5.196152422706632024e+00 155 | 7.500000000000000000e+00 5.484827557301444223e+00 156 | 7.500000000000000000e+00 5.484827557301444223e+00 157 | 7.500000000000000000e+00 6.062177826491070398e+00 158 | 7.500000000000000000e+00 6.062177826491070398e+00 159 | 8.000000000000000000e+00 6.350852961085882598e+00 160 | 8.000000000000000000e+00 6.350852961085882598e+00 161 | 5.000000000000000000e+00 0.000000000000000000e+00 162 | 5.000000000000000000e+00 0.000000000000000000e+00 163 | 5.500000000000000000e+00 2.886751345948128655e-01 164 | 5.500000000000000000e+00 2.886751345948128655e-01 165 | 5.500000000000000000e+00 8.660254037844385966e-01 166 | 5.500000000000000000e+00 8.660254037844385966e-01 167 | 6.000000000000000000e+00 1.154700538379251462e+00 168 | 6.000000000000000000e+00 1.154700538379251462e+00 169 | 6.000000000000000000e+00 1.732050807568877193e+00 170 | 6.000000000000000000e+00 1.732050807568877193e+00 171 | 6.500000000000000000e+00 2.020725942163690281e+00 172 | 6.500000000000000000e+00 2.020725942163690281e+00 173 | 6.500000000000000000e+00 2.598076211353316012e+00 174 | 6.500000000000000000e+00 2.598076211353316012e+00 175 | 7.000000000000000000e+00 2.886751345948128655e+00 176 | 7.000000000000000000e+00 2.886751345948128655e+00 177 | 7.000000000000000000e+00 3.464101615137754386e+00 178 | 7.000000000000000000e+00 3.464101615137754386e+00 179 | 7.500000000000000000e+00 3.752776749732567030e+00 180 | 7.500000000000000000e+00 3.752776749732567030e+00 181 | 7.500000000000000000e+00 4.330127018922192761e+00 182 | 7.500000000000000000e+00 4.330127018922192761e+00 183 | 8.000000000000000000e+00 4.618802153517005848e+00 184 | 8.000000000000000000e+00 4.618802153517005848e+00 185 | 8.000000000000000000e+00 5.196152422706632024e+00 186 | 8.000000000000000000e+00 5.196152422706632024e+00 187 | 8.500000000000000000e+00 5.484827557301444223e+00 188 | 8.500000000000000000e+00 5.484827557301444223e+00 189 | 8.500000000000000000e+00 6.062177826491070398e+00 190 | 8.500000000000000000e+00 6.062177826491070398e+00 191 | 9.000000000000000000e+00 6.350852961085882598e+00 192 | 9.000000000000000000e+00 6.350852961085882598e+00 193 | 6.000000000000000000e+00 0.000000000000000000e+00 194 | 6.000000000000000000e+00 0.000000000000000000e+00 195 | 6.500000000000000000e+00 2.886751345948128655e-01 196 | 6.500000000000000000e+00 2.886751345948128655e-01 197 | 6.500000000000000000e+00 8.660254037844385966e-01 198 | 6.500000000000000000e+00 8.660254037844385966e-01 199 | 7.000000000000000000e+00 1.154700538379251462e+00 200 | 7.000000000000000000e+00 1.154700538379251462e+00 201 | 7.000000000000000000e+00 1.732050807568877193e+00 202 | 7.000000000000000000e+00 1.732050807568877193e+00 203 | 7.500000000000000000e+00 2.020725942163690281e+00 204 | 7.500000000000000000e+00 2.020725942163690281e+00 205 | 7.500000000000000000e+00 2.598076211353316012e+00 206 | 7.500000000000000000e+00 2.598076211353316012e+00 207 | 8.000000000000000000e+00 2.886751345948128655e+00 208 | 8.000000000000000000e+00 2.886751345948128655e+00 209 | 8.000000000000000000e+00 3.464101615137754386e+00 210 | 8.000000000000000000e+00 3.464101615137754386e+00 211 | 8.500000000000000000e+00 3.752776749732567030e+00 212 | 8.500000000000000000e+00 3.752776749732567030e+00 213 | 8.500000000000000000e+00 4.330127018922192761e+00 214 | 8.500000000000000000e+00 4.330127018922192761e+00 215 | 9.000000000000000000e+00 4.618802153517005848e+00 216 | 9.000000000000000000e+00 4.618802153517005848e+00 217 | 9.000000000000000000e+00 5.196152422706632024e+00 218 | 9.000000000000000000e+00 5.196152422706632024e+00 219 | 9.500000000000000000e+00 5.484827557301444223e+00 220 | 9.500000000000000000e+00 5.484827557301444223e+00 221 | 9.500000000000000000e+00 6.062177826491070398e+00 222 | 9.500000000000000000e+00 6.062177826491070398e+00 223 | 1.000000000000000000e+01 6.350852961085882598e+00 224 | 1.000000000000000000e+01 6.350852961085882598e+00 225 | 7.000000000000000000e+00 0.000000000000000000e+00 226 | 7.000000000000000000e+00 0.000000000000000000e+00 227 | 7.500000000000000000e+00 2.886751345948128655e-01 228 | 7.500000000000000000e+00 2.886751345948128655e-01 229 | 7.500000000000000000e+00 8.660254037844385966e-01 230 | 7.500000000000000000e+00 8.660254037844385966e-01 231 | 8.000000000000000000e+00 1.154700538379251462e+00 232 | 8.000000000000000000e+00 1.154700538379251462e+00 233 | 8.000000000000000000e+00 1.732050807568877193e+00 234 | 8.000000000000000000e+00 1.732050807568877193e+00 235 | 8.500000000000000000e+00 2.020725942163690281e+00 236 | 8.500000000000000000e+00 2.020725942163690281e+00 237 | 8.500000000000000000e+00 2.598076211353316012e+00 238 | 8.500000000000000000e+00 2.598076211353316012e+00 239 | 9.000000000000000000e+00 2.886751345948128655e+00 240 | 9.000000000000000000e+00 2.886751345948128655e+00 241 | 9.000000000000000000e+00 3.464101615137754386e+00 242 | 9.000000000000000000e+00 3.464101615137754386e+00 243 | 9.500000000000000000e+00 3.752776749732567030e+00 244 | 9.500000000000000000e+00 3.752776749732567030e+00 245 | 9.500000000000000000e+00 4.330127018922192761e+00 246 | 9.500000000000000000e+00 4.330127018922192761e+00 247 | 1.000000000000000000e+01 4.618802153517005848e+00 248 | 1.000000000000000000e+01 4.618802153517005848e+00 249 | 1.000000000000000000e+01 5.196152422706632024e+00 250 | 1.000000000000000000e+01 5.196152422706632024e+00 251 | 1.050000000000000000e+01 5.484827557301444223e+00 252 | 1.050000000000000000e+01 5.484827557301444223e+00 253 | 1.050000000000000000e+01 6.062177826491070398e+00 254 | 1.050000000000000000e+01 6.062177826491070398e+00 255 | 1.100000000000000000e+01 6.350852961085882598e+00 256 | 1.100000000000000000e+01 6.350852961085882598e+00 257 | -------------------------------------------------------------------------------- /tests/check/positions_vacancies.check: -------------------------------------------------------------------------------- 1 | 0.000000000000000000e+00 0.000000000000000000e+00 2 | 5.000000000000000000e-01 2.886751345948128655e-01 3 | 5.000000000000000000e-01 8.660254037844385966e-01 4 | 1.000000000000000000e+00 1.154700538379251462e+00 5 | 1.000000000000000000e+00 1.732050807568877193e+00 6 | 1.500000000000000000e+00 2.020725942163690281e+00 7 | 1.500000000000000000e+00 2.598076211353316012e+00 8 | 2.000000000000000000e+00 2.886751345948128655e+00 9 | 2.000000000000000000e+00 3.464101615137754386e+00 10 | 2.500000000000000000e+00 3.752776749732567030e+00 11 | 2.500000000000000000e+00 4.330127018922192761e+00 12 | 3.000000000000000000e+00 4.618802153517005848e+00 13 | 3.000000000000000000e+00 5.196152422706632024e+00 14 | 3.500000000000000000e+00 5.484827557301444223e+00 15 | 3.500000000000000000e+00 6.062177826491070398e+00 16 | 4.000000000000000000e+00 6.350852961085882598e+00 17 | 1.000000000000000000e+00 0.000000000000000000e+00 18 | 1.500000000000000000e+00 2.886751345948128655e-01 19 | 1.500000000000000000e+00 8.660254037844385966e-01 20 | 2.000000000000000000e+00 1.154700538379251462e+00 21 | 2.000000000000000000e+00 1.732050807568877193e+00 22 | 2.500000000000000000e+00 2.020725942163690281e+00 23 | 2.500000000000000000e+00 2.598076211353316012e+00 24 | 3.000000000000000000e+00 2.886751345948128655e+00 25 | 3.000000000000000000e+00 3.464101615137754386e+00 26 | 3.500000000000000000e+00 4.330127018922192761e+00 27 | 4.000000000000000000e+00 4.618802153517005848e+00 28 | 4.000000000000000000e+00 5.196152422706632024e+00 29 | 4.500000000000000000e+00 5.484827557301444223e+00 30 | 4.500000000000000000e+00 6.062177826491070398e+00 31 | 5.000000000000000000e+00 6.350852961085882598e+00 32 | 2.000000000000000000e+00 0.000000000000000000e+00 33 | 2.500000000000000000e+00 2.886751345948128655e-01 34 | 2.500000000000000000e+00 8.660254037844385966e-01 35 | 3.000000000000000000e+00 1.732050807568877193e+00 36 | 3.500000000000000000e+00 2.020725942163690281e+00 37 | 3.500000000000000000e+00 2.598076211353316012e+00 38 | 4.000000000000000000e+00 2.886751345948128655e+00 39 | 4.000000000000000000e+00 3.464101615137754386e+00 40 | 4.500000000000000000e+00 3.752776749732567030e+00 41 | 4.500000000000000000e+00 4.330127018922192761e+00 42 | 5.000000000000000000e+00 5.196152422706632024e+00 43 | 5.500000000000000000e+00 6.062177826491070398e+00 44 | 6.000000000000000000e+00 6.350852961085882598e+00 45 | 3.000000000000000000e+00 0.000000000000000000e+00 46 | 3.500000000000000000e+00 2.886751345948128655e-01 47 | 3.500000000000000000e+00 8.660254037844385966e-01 48 | 4.000000000000000000e+00 1.154700538379251462e+00 49 | 4.000000000000000000e+00 1.732050807568877193e+00 50 | 4.500000000000000000e+00 2.020725942163690281e+00 51 | 4.500000000000000000e+00 2.598076211353316012e+00 52 | 5.000000000000000000e+00 2.886751345948128655e+00 53 | 5.000000000000000000e+00 3.464101615137754386e+00 54 | 5.500000000000000000e+00 3.752776749732567030e+00 55 | 5.500000000000000000e+00 4.330127018922192761e+00 56 | 6.000000000000000000e+00 4.618802153517005848e+00 57 | 6.000000000000000000e+00 5.196152422706632024e+00 58 | 6.500000000000000000e+00 5.484827557301444223e+00 59 | 6.500000000000000000e+00 6.062177826491070398e+00 60 | 4.000000000000000000e+00 0.000000000000000000e+00 61 | 4.500000000000000000e+00 2.886751345948128655e-01 62 | 4.500000000000000000e+00 8.660254037844385966e-01 63 | 5.000000000000000000e+00 1.154700538379251462e+00 64 | 5.000000000000000000e+00 1.732050807568877193e+00 65 | 5.500000000000000000e+00 2.020725942163690281e+00 66 | 5.500000000000000000e+00 2.598076211353316012e+00 67 | 6.000000000000000000e+00 2.886751345948128655e+00 68 | 6.000000000000000000e+00 3.464101615137754386e+00 69 | 6.500000000000000000e+00 3.752776749732567030e+00 70 | 6.500000000000000000e+00 4.330127018922192761e+00 71 | 7.000000000000000000e+00 4.618802153517005848e+00 72 | 7.000000000000000000e+00 5.196152422706632024e+00 73 | 7.500000000000000000e+00 5.484827557301444223e+00 74 | 7.500000000000000000e+00 6.062177826491070398e+00 75 | 8.000000000000000000e+00 6.350852961085882598e+00 76 | 5.000000000000000000e+00 0.000000000000000000e+00 77 | 5.500000000000000000e+00 8.660254037844385966e-01 78 | 6.000000000000000000e+00 1.154700538379251462e+00 79 | 6.000000000000000000e+00 1.732050807568877193e+00 80 | 6.500000000000000000e+00 2.598076211353316012e+00 81 | 7.000000000000000000e+00 2.886751345948128655e+00 82 | 7.000000000000000000e+00 3.464101615137754386e+00 83 | 7.500000000000000000e+00 3.752776749732567030e+00 84 | 7.500000000000000000e+00 4.330127018922192761e+00 85 | 8.000000000000000000e+00 4.618802153517005848e+00 86 | 8.000000000000000000e+00 5.196152422706632024e+00 87 | 8.500000000000000000e+00 5.484827557301444223e+00 88 | 8.500000000000000000e+00 6.062177826491070398e+00 89 | 9.000000000000000000e+00 6.350852961085882598e+00 90 | 6.000000000000000000e+00 0.000000000000000000e+00 91 | 6.500000000000000000e+00 2.886751345948128655e-01 92 | 6.500000000000000000e+00 8.660254037844385966e-01 93 | 7.000000000000000000e+00 1.732050807568877193e+00 94 | 7.500000000000000000e+00 2.020725942163690281e+00 95 | 7.500000000000000000e+00 2.598076211353316012e+00 96 | 8.000000000000000000e+00 2.886751345948128655e+00 97 | 8.000000000000000000e+00 3.464101615137754386e+00 98 | 8.500000000000000000e+00 3.752776749732567030e+00 99 | 8.500000000000000000e+00 4.330127018922192761e+00 100 | 9.000000000000000000e+00 4.618802153517005848e+00 101 | 9.000000000000000000e+00 5.196152422706632024e+00 102 | 9.500000000000000000e+00 6.062177826491070398e+00 103 | 1.000000000000000000e+01 6.350852961085882598e+00 104 | 7.000000000000000000e+00 0.000000000000000000e+00 105 | 7.500000000000000000e+00 2.886751345948128655e-01 106 | 7.500000000000000000e+00 8.660254037844385966e-01 107 | 8.000000000000000000e+00 1.154700538379251462e+00 108 | 8.000000000000000000e+00 1.732050807568877193e+00 109 | 8.500000000000000000e+00 2.020725942163690281e+00 110 | 8.500000000000000000e+00 2.598076211353316012e+00 111 | 9.000000000000000000e+00 2.886751345948128655e+00 112 | 9.000000000000000000e+00 3.464101615137754386e+00 113 | 9.500000000000000000e+00 3.752776749732567030e+00 114 | 9.500000000000000000e+00 4.330127018922192761e+00 115 | 1.000000000000000000e+01 4.618802153517005848e+00 116 | 1.050000000000000000e+01 5.484827557301444223e+00 117 | 1.050000000000000000e+01 6.062177826491070398e+00 118 | 1.100000000000000000e+01 6.350852961085882598e+00 119 | -------------------------------------------------------------------------------- /tests/test_h.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | import math 3 | 4 | import os, sys 5 | currentdir = os.path.dirname(os.path.realpath(__file__)) 6 | parentdir = os.path.dirname(currentdir) 7 | sys.path.append(parentdir) 8 | 9 | from strawberrypy.supercell import Supercell 10 | 11 | from strawberrypy.example_models import haldane_pythtb, haldane_tbmodels 12 | 13 | def test_spcn(L=6, t=-4., t2=1., delta=2., pi_phi=-2., w=1.5): 14 | #inputs are: linear size of supercell LxL 15 | # t = first neighbours real hopping 16 | # t2 = second neighbours 17 | # delta = energy on site 18 | # pi_phi --> phi = pi/(pi_phi) where phi = second neighbours hopping phase 19 | # w = disorder stregth W/t 20 | # which_formula = choice of single point formula 'asymmetric', 'symmetric' or 'both' 21 | 22 | #Haldane model parameters 23 | phi = np.pi/pi_phi 24 | 25 | #create Haldane model in the primitive cell through PythTB package 26 | h_pythtb_model = haldane_pythtb(delta,t,t2,phi) 27 | 28 | #create Haldane model in the primitive cell through TBmodels package 29 | h_tbmodels_model = haldane_tbmodels(delta,t,t2,phi) 30 | 31 | #initialize supercell models 32 | system_tbm = Supercell(h_tbmodels_model, Lx=L, Ly=L, spinful=False) 33 | system_pytb = Supercell(h_pythtb_model, Lx=L, Ly=L, spinful=False) 34 | 35 | #add Anderson disorder 36 | system_pytb.add_onsite_disorder(w, seed=10) 37 | system_tbm.add_onsite_disorder(w, seed=10) 38 | 39 | # Single Point Chern Number (SPCN) calculation for models created with both packages, for the same disorder configuration 40 | 41 | chern_pythtb, ham_gap_pythtb = system_pytb.single_point_chern(formula='both', return_ham_gap=True) 42 | chern_tbmodels, ham_gap_tbmodels = system_tbm.single_point_chern(formula='both', return_ham_gap=True) 43 | 44 | print('PythTB package, supercell size L =', L, ' disorder strength = ', w, ' SPCN :', chern_pythtb['symmetric'] ) 45 | print('TBmodels package, supercell size L =', L, ' disorder strength = ', w, ' SPCN :', chern_tbmodels['symmetric'] ) 46 | 47 | assert math.isclose(chern_pythtb['asymmetric'],chern_tbmodels['asymmetric'],abs_tol=1e-10) 48 | assert math.isclose(chern_pythtb['symmetric'],chern_tbmodels['symmetric'],abs_tol=1e-10) 49 | assert math.isclose(ham_gap_pythtb,ham_gap_tbmodels,abs_tol=1e-10) -------------------------------------------------------------------------------- /tests/test_km.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | import math 3 | 4 | import os, sys 5 | currentdir = os.path.dirname(os.path.realpath(__file__)) 6 | parentdir = os.path.dirname(currentdir) 7 | sys.path.append(parentdir) 8 | 9 | from strawberrypy.supercell import Supercell 10 | from strawberrypy.example_models import kane_mele_pythtb, kane_mele_tbmodels 11 | 12 | def test_spscn(L=6, r=1., e=3., spin_o=0.3, w=2.): 13 | #inputs are: linear size of supercell LxL 14 | # r = rashba/spin_orb 15 | # e = e_onsite/spin_orb 16 | # w = disorder stregth W/t 17 | # spin_chern = choice of spin Chern number 'up' or 'down' 18 | # which_formula = choice of single point formula 'asymmetric', 'symmetric' or 'both' 19 | 20 | #create Kane-Mele model in the primitive cell through PythTB package 21 | km_pythtb = kane_mele_pythtb(r,e,spin_o) 22 | 23 | #create Kane-Mele model in the primitive cell through TBmodels package 24 | km_tbmodels = kane_mele_tbmodels(r,e,spin_o) 25 | 26 | #initialize supercell models 27 | system_pytb = Supercell(km_pythtb, Lx=L, Ly=L, spinful=True) 28 | system_tbm = Supercell(km_tbmodels, Lx=L, Ly=L, spinful=True) 29 | 30 | #add Anderson disorder 31 | system_tbm.add_onsite_disorder(w,seed=10) 32 | system_pytb.add_onsite_disorder(w,seed=10) 33 | 34 | # Single Point Spin Chern Number (SPSCN) calculation for models created with both packages, for the same disorder configuration 35 | 36 | spin_chern_pythtb, pszp_gap_pythtb, ham_gap_pythtb = system_pytb.single_point_spin_chern(formula='both', return_pszp_gap = True, return_ham_gap = True) 37 | spin_chern_tbmodels, pszp_gap_tbmodels, ham_gap_tbmodels = system_tbm.single_point_spin_chern(formula='both', return_pszp_gap = True, return_ham_gap = True) 38 | 39 | print('PythTB package, supercell size L =', L, ' disorder strength = ', w, ' SPSCN :', spin_chern_pythtb['symmetric'] ) 40 | print('TBmodels package, supercell size L =', L, ' disorder strength = ', w, ' SPSCN :', spin_chern_tbmodels['symmetric'] ) 41 | 42 | assert math.isclose(spin_chern_pythtb['asymmetric'],spin_chern_tbmodels['asymmetric'],abs_tol=1e-10) 43 | assert math.isclose(spin_chern_pythtb['symmetric'],spin_chern_tbmodels['symmetric'],abs_tol=1e-10) 44 | assert math.isclose(pszp_gap_pythtb,pszp_gap_tbmodels,abs_tol=1e-10) 45 | assert math.isclose(ham_gap_pythtb,ham_gap_tbmodels,abs_tol=1e-10) 46 | -------------------------------------------------------------------------------- /tests/test_obc_markers.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | import os, sys 3 | currentdir = os.path.dirname(os.path.realpath(__file__)) 4 | parentdir = os.path.dirname(currentdir) 5 | sys.path.append(parentdir) 6 | 7 | from strawberrypy import FiniteModel 8 | from strawberrypy.example_models import haldane_pythtb, haldane_tbmodels, kane_mele_pythtb, kane_mele_tbmodels 9 | from strawberrypy.utils import unique_vacancies 10 | 11 | def test_local_chern_marker_haldane_tbmodels_pythtb(): 12 | # Define the PBC models 13 | hmodel_ptb = haldane_pythtb(delta = 0.3, t = 1, t2 = 0.15, phi = np.pi / 2) 14 | hmodel_tbm = haldane_tbmodels(delta = 0.3, t = 1, t2 = 0.15, phi = np.pi / 2) 15 | 16 | # Build the finite model instance 17 | hmodel_ptb_finite = FiniteModel(tbmodel = hmodel_ptb, Lx = 8, Ly = 8, spinful = False) 18 | hmodel_tbm_finite = FiniteModel(tbmodel = hmodel_tbm, Lx = 8, Ly = 8, spinful = False) 19 | 20 | assert np.allclose(hmodel_ptb_finite.r, hmodel_tbm_finite.r) 21 | assert np.allclose(hmodel_ptb_finite.hamiltonian, hmodel_tbm_finite.hamiltonian) 22 | 23 | # Check equality for the local Chern marker in the pristine case 24 | lcm_ptb = hmodel_ptb_finite.local_chern_marker() 25 | lcm_tbm = hmodel_tbm_finite.local_chern_marker() 26 | assert np.allclose(lcm_ptb, lcm_tbm) 27 | 28 | # Set seed for disorder 29 | seed = 12345 30 | 31 | # Add onsite Anderson disorder 32 | hmodel_ptb_finite.add_onsite_disorder(w = 3, seed = seed) 33 | hmodel_tbm_finite.add_onsite_disorder(w = 3, seed = seed) 34 | 35 | # Check equality for the local Chern marker in the disordered case 36 | lcm_ptb = hmodel_ptb_finite.local_chern_marker(macroscopic_average = True, cutoff = 1.5) 37 | lcm_tbm = hmodel_tbm_finite.local_chern_marker(macroscopic_average = True, cutoff = 1.5) 38 | assert np.allclose(lcm_ptb, lcm_tbm) 39 | 40 | def test_local_chern_marker_haldane_static(): 41 | check_lcm = np.loadtxt("./tests/check/lcm_uniform_disorder.check") 42 | check_positions = np.loadtxt("./tests/check/positions_haldane_uniform.check") 43 | 44 | # Arbitrary order to check equality 45 | check_x, check_y, check_lcm = zip(*sorted(zip(check_positions[:, 0], check_positions[:, 1], check_lcm))) 46 | 47 | hmodel = haldane_tbmodels(delta = 0.3, t = 1, t2 = 0.15, phi = np.pi / 2) 48 | hmodel_finite = FiniteModel(tbmodel = hmodel, Lx = 8, Ly = 8, spinful = False) 49 | 50 | # Set seed for disorder 51 | seed = 12345 52 | hmodel_finite.add_onsite_disorder(w = 3, seed = seed) 53 | 54 | lcm = hmodel_finite.local_chern_marker(macroscopic_average = True, cutoff = 1.5) 55 | positions = hmodel_finite.cart_positions 56 | 57 | # Arbitrary order to check equality 58 | x, y, lcm = zip(*sorted(zip(positions[:, 0], positions[:, 1], lcm))) 59 | 60 | assert np.allclose(check_x, x) 61 | assert np.allclose(check_y, y) 62 | assert np.allclose(check_lcm, lcm) 63 | 64 | def test_local_chern_marker_haldane_heterostructure_static(): 65 | check_lcm = np.loadtxt("./tests/check/lcm_heterostructure.check") 66 | check_positions = np.loadtxt("./tests/check/positions_haldane_heterostructure.check") 67 | 68 | # Arbitrary order to check equality 69 | check_x, check_y, check_lcm = zip(*sorted(zip(check_positions[:, 0], check_positions[:, 1], check_lcm))) 70 | 71 | hmodel = haldane_tbmodels(delta = 0.3, t = 1, t2 = 0.15, phi = np.pi / 2) 72 | hmodel_finite = FiniteModel(tbmodel = hmodel, Lx = 16, Ly = 8, spinful = False) 73 | 74 | hmodel_2 = haldane_tbmodels(delta = 5.3, t = 1, t2 = 0.15, phi = np.pi / 2) 75 | hmodel_2_finite = FiniteModel(tbmodel = hmodel_2, Lx = 16, Ly = 8, spinful = False) 76 | 77 | # Build the heterostructure 78 | hmodel_finite.make_heterostructure(model2 = hmodel_2_finite, direction = 0, start = 0, stop = 7) 79 | 80 | lcm = hmodel_finite.local_chern_marker() 81 | positions = hmodel_finite.cart_positions 82 | 83 | # Arbitrary order to check equality 84 | x, y, lcm = zip(*sorted(zip(positions[:, 0], positions[:, 1], lcm))) 85 | 86 | assert np.allclose(check_x, x) 87 | assert np.allclose(check_y, y) 88 | assert np.allclose(check_lcm, lcm) 89 | 90 | def test_local_chern_marker_haldane_vacancies_static(): 91 | check_lcm = np.loadtxt("./tests/check/lcm_vacancies.check") 92 | check_positions = np.loadtxt("./tests/check/positions_vacancies.check") 93 | 94 | # Arbitrary order to check equality 95 | check_x, check_y, check_lcm = zip(*sorted(zip(check_positions[:, 0], check_positions[:, 1], check_lcm))) 96 | 97 | hmodel = haldane_tbmodels(delta = 0.3, t = 1, t2 = 0.15, phi = np.pi / 2) 98 | hmodel_finite = FiniteModel(tbmodel = hmodel, Lx = 8, Ly = 8, spinful = False) 99 | 100 | # Set seed for disorder 101 | seed = 12345 102 | vacancies = unique_vacancies(num = 10, Lx = 8, Ly = 8, basis = 2, seed = seed) 103 | hmodel_finite.add_vacancies(vacancies_list = vacancies) 104 | 105 | lcm = hmodel_finite.local_chern_marker(macroscopic_average = True, cutoff = 1.5) 106 | positions = hmodel_finite.cart_positions 107 | 108 | # Arbitrary order to check equality 109 | x, y, lcm = zip(*sorted(zip(positions[:, 0], positions[:, 1], lcm))) 110 | 111 | assert np.allclose(check_x, x) 112 | assert np.allclose(check_y, y) 113 | assert np.allclose(check_lcm, lcm) 114 | 115 | def test_localization_marker_haldane_tbmodels_pythtb(): 116 | # Define the PBC models 117 | hmodel_ptb = haldane_pythtb(delta = 0.3, t = 1, t2 = 0.15, phi = np.pi / 2) 118 | hmodel_tbm = haldane_tbmodels(delta = 0.3, t = 1, t2 = 0.15, phi = np.pi / 2) 119 | 120 | # Set seed for disorder 121 | seed = 1982458 122 | 123 | # Build the finite model instance 124 | hmodel_ptb_finite = FiniteModel(tbmodel = hmodel_ptb, Lx = 8, Ly = 8, spinful = False) 125 | hmodel_tbm_finite = FiniteModel(tbmodel = hmodel_tbm, Lx = 8, Ly = 8, spinful = False) 126 | 127 | assert np.allclose(hmodel_ptb_finite.r, hmodel_tbm_finite.r) 128 | assert np.allclose(hmodel_ptb_finite.hamiltonian, hmodel_tbm_finite.hamiltonian) 129 | 130 | # Check equality for the localization marker in the pristine case 131 | lm_ptb = hmodel_ptb_finite.localization_marker() 132 | lm_tbm = hmodel_tbm_finite.localization_marker() 133 | assert np.allclose(lm_ptb, lm_tbm) 134 | 135 | # Add onsite Anderson disorder 136 | hmodel_ptb_finite.add_onsite_disorder(w = 3, seed = seed) 137 | hmodel_tbm_finite.add_onsite_disorder(w = 3, seed = seed) 138 | 139 | # Check equality for the localization marker in the disordered case 140 | lm_ptb = hmodel_ptb_finite.localization_marker(macroscopic_average = True, cutoff = 1.5) 141 | lm_tbm = hmodel_tbm_finite.localization_marker(macroscopic_average = True, cutoff = 1.5) 142 | assert np.allclose(lm_ptb, lm_tbm) 143 | 144 | def test_localization_marker_haldane_static(): 145 | check_loc = np.loadtxt("./tests/check/loc_haldane_uniform_disorder.check") 146 | check_positions = np.loadtxt("./tests/check/positions_haldane_uniform.check") 147 | 148 | # Arbitrary order to check equality 149 | check_x, check_y, check_loc = zip(*sorted(zip(check_positions[:, 0], check_positions[:, 1], check_loc))) 150 | 151 | hmodel = haldane_tbmodels(delta = 0.3, t = 1, t2 = 0.15, phi = np.pi / 2) 152 | hmodel_finite = FiniteModel(tbmodel = hmodel, Lx = 8, Ly = 8, spinful = False) 153 | 154 | # Set seed for disorder 155 | seed = 12345 156 | hmodel_finite.add_onsite_disorder(w = 3, seed = seed) 157 | 158 | loc = hmodel_finite.localization_marker(macroscopic_average = True, cutoff = 1.5) 159 | positions = hmodel_finite.cart_positions 160 | 161 | # Arbitrary order to check equality 162 | x, y, loc = zip(*sorted(zip(positions[:, 0], positions[:, 1], loc))) 163 | 164 | assert np.allclose(check_x, x) 165 | assert np.allclose(check_y, y) 166 | assert np.allclose(check_loc, loc) 167 | 168 | def test_localization_marker_haldane_heterostructure_static(): 169 | check_loc = np.loadtxt("./tests/check/loc_haldane_heterostructure.check") 170 | check_positions = np.loadtxt("./tests/check/positions_haldane_heterostructure.check") 171 | 172 | # Arbitrary order to check equality 173 | check_x, check_y, check_loc = zip(*sorted(zip(check_positions[:, 0], check_positions[:, 1], check_loc))) 174 | 175 | hmodel = haldane_tbmodels(delta = 0.3, t = 1, t2 = 0.15, phi = np.pi / 2) 176 | hmodel_finite = FiniteModel(tbmodel = hmodel, Lx = 16, Ly = 8, spinful = False) 177 | 178 | hmodel_2 = haldane_tbmodels(delta = 5.3, t = 1, t2 = 0.15, phi = np.pi / 2) 179 | hmodel_2_finite = FiniteModel(tbmodel = hmodel_2, Lx = 16, Ly = 8, spinful = False) 180 | 181 | # Build the heterostructure 182 | hmodel_finite.make_heterostructure(model2 = hmodel_2_finite, direction = 0, start = 0, stop = 7) 183 | 184 | loc = hmodel_finite.localization_marker() 185 | positions = hmodel_finite.cart_positions 186 | 187 | # Arbitrary order to check equality 188 | x, y, loc = zip(*sorted(zip(positions[:, 0], positions[:, 1], loc))) 189 | 190 | assert np.allclose(check_x, x) 191 | assert np.allclose(check_y, y) 192 | assert np.allclose(check_loc, loc) 193 | 194 | def test_localization_marker_kane_mele_tbmodels_pythtb(): 195 | # Define the PBC models 196 | kmmodel_ptb = kane_mele_pythtb(rashba = 0.3, esite = 1, spin_orb = 0.1) 197 | kmmodel_tbm = kane_mele_tbmodels(rashba = 0.3, esite = 1, spin_orb = 0.1) 198 | 199 | # Set seed for disorder 200 | seed = 1982458 201 | 202 | # Build the finite model instance 203 | kmmodel_ptb_finite = FiniteModel(tbmodel = kmmodel_ptb, Lx = 8, Ly = 8, spinful = True) 204 | kmmodel_tbm_finite = FiniteModel(tbmodel = kmmodel_tbm, Lx = 8, Ly = 8, spinful = True) 205 | 206 | assert np.allclose(kmmodel_ptb_finite.r, kmmodel_tbm_finite.r) 207 | assert np.allclose(kmmodel_ptb_finite.hamiltonian, kmmodel_tbm_finite.hamiltonian) 208 | 209 | # Check equality for the localization marker in the pristine case 210 | lm_ptb = kmmodel_ptb_finite.localization_marker() 211 | lm_tbm = kmmodel_tbm_finite.localization_marker() 212 | assert np.allclose(lm_ptb, lm_tbm) 213 | 214 | # Add onsite Anderson disorder 215 | kmmodel_ptb_finite.add_onsite_disorder(w = 3, seed = seed) 216 | kmmodel_tbm_finite.add_onsite_disorder(w = 3, seed = seed) 217 | 218 | # Check equality for the localization marker in the disordered case 219 | lm_ptb = kmmodel_ptb_finite.localization_marker(macroscopic_average = True, cutoff = 1.5) 220 | lm_tbm = kmmodel_tbm_finite.localization_marker(macroscopic_average = True, cutoff = 1.5) 221 | assert np.allclose(lm_ptb, lm_tbm) 222 | 223 | def test_localization_marker_kanemele_static(): 224 | check_loc = np.loadtxt("./tests/check/loc_kanemele_uniform_disorder.check") 225 | check_positions = np.loadtxt("./tests/check/positions_kanemele_uniform.check") 226 | 227 | # Arbitrary order to check equality 228 | check_x, check_y, check_loc = zip(*sorted(zip(check_positions[:, 0], check_positions[:, 1], check_loc))) 229 | 230 | kmmodel = kane_mele_tbmodels(rashba = 0.3, esite = 1, spin_orb = 0.1) 231 | kmmodel_finite = FiniteModel(tbmodel = kmmodel, Lx = 8, Ly = 8, spinful = True) 232 | 233 | # Set seed for disorder 234 | seed = 12345 235 | kmmodel_finite.add_onsite_disorder(w = 3, seed = seed) 236 | 237 | loc = kmmodel_finite.localization_marker(macroscopic_average = True, cutoff = 1.5) 238 | positions = kmmodel_finite.cart_positions 239 | 240 | # Arbitrary order to check equality 241 | x, y, loc = zip(*sorted(zip(positions[:, 0], positions[:, 1], loc))) 242 | 243 | assert np.allclose(check_x, x) 244 | assert np.allclose(check_y, y) 245 | assert np.allclose(check_loc, loc) 246 | 247 | def test_localization_marker_kanemele_heterostructure_static(): 248 | check_loc = np.loadtxt("./tests/check/loc_kanemele_heterostructure.check") 249 | check_positions = np.loadtxt("./tests/check/positions_kanemele_heterostructure.check") 250 | 251 | # Arbitrary order to check equality 252 | check_x, check_y, check_loc = zip(*sorted(zip(check_positions[:, 0], check_positions[:, 1], check_loc))) 253 | 254 | kmmodel = kane_mele_tbmodels(rashba = 0.3, esite = 1, spin_orb = 0.1) 255 | kmmodel_finite = FiniteModel(tbmodel = kmmodel, Lx = 16, Ly = 8, spinful = True) 256 | 257 | kmmodel_2 = kane_mele_tbmodels(rashba = 0.3, esite = 5, spin_orb = 0.1) 258 | kmmodel_2_finite = FiniteModel(tbmodel = kmmodel_2, Lx = 16, Ly = 8, spinful = True) 259 | 260 | # Build the heterostructure 261 | kmmodel_finite.make_heterostructure(model2 = kmmodel_2_finite, direction = 0, start = 0, stop = 7) 262 | 263 | loc = kmmodel_finite.localization_marker() 264 | positions = kmmodel_finite.cart_positions 265 | 266 | # Arbitrary order to check equality 267 | x, y, loc = zip(*sorted(zip(positions[:, 0], positions[:, 1], loc))) 268 | 269 | assert np.allclose(check_x, x) 270 | assert np.allclose(check_y, y) 271 | assert np.allclose(check_loc, loc) -------------------------------------------------------------------------------- /tests/test_z2_markers.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | import os, sys 3 | currentdir = os.path.dirname(os.path.realpath(__file__)) 4 | parentdir = os.path.dirname(currentdir) 5 | sys.path.append(parentdir) 6 | 7 | from strawberrypy import FiniteModel, Supercell 8 | from strawberrypy.example_models import kane_mele_pythtb, kane_mele_tbmodels 9 | from strawberrypy.utils import unique_vacancies 10 | 11 | def test_local_spin_chern_marker_kanemele_static(): 12 | check_lscm = np.loadtxt("./tests/check/lscm_uniform_disorder.check") 13 | check_positions = np.loadtxt("./tests/check/positions_kanemele_uniform.check") 14 | 15 | # Arbitrary order to check equality 16 | check_x, check_y, check_lscm = zip(*sorted(zip(check_positions[:, 0], check_positions[:, 1], check_lscm))) 17 | 18 | kmmodel = kane_mele_tbmodels(rashba = 1.0, esite = 3.5, spin_orb = 0.3) 19 | kmmodel_finite = FiniteModel(tbmodel = kmmodel, Lx = 8, Ly = 8, spinful = True) 20 | 21 | # Set seed for disorder 22 | seed = 10 23 | kmmodel_finite.add_onsite_disorder(w = 3, seed = seed) 24 | 25 | lscm = kmmodel_finite.local_spin_chern_marker(macroscopic_average = True, cutoff = 1.5) 26 | positions = kmmodel_finite.cart_positions 27 | 28 | # Arbitrary order to check equality 29 | x, y, lscm = zip(*sorted(zip(positions[:, 0], positions[:, 1], lscm))) 30 | 31 | assert np.allclose(check_x, x) 32 | assert np.allclose(check_y, y) 33 | assert np.allclose(check_lscm, lscm) 34 | 35 | def test_pbc_local_spin_chern_marker_kanemele_static(): 36 | check_pbclscm = np.loadtxt("./tests/check/pbclscm_uniform_disorder.check") 37 | check_positions = np.loadtxt("./tests/check/positions_kanemele_uniform.check") 38 | 39 | # Arbitrary order to check equality 40 | check_x, check_y, check_pbclscm = zip(*sorted(zip(check_positions[:, 0], check_positions[:, 1], check_pbclscm))) 41 | 42 | kmmodel = kane_mele_tbmodels(rashba = 1.0, esite = 3.5, spin_orb = 0.3) 43 | kmmodel_supercell = Supercell(tbmodel = kmmodel, Lx = 8, Ly = 8, spinful = True) 44 | 45 | # Set seed for disorder 46 | seed = 10 47 | kmmodel_supercell.add_onsite_disorder(w = 3, seed = seed) 48 | 49 | pbclscm = kmmodel_supercell.pbc_local_spin_chern_marker(macroscopic_average = True, cutoff = 1.5) 50 | positions = kmmodel_supercell.cart_positions 51 | 52 | # Arbitrary order to check equality 53 | x, y, pbclscm = zip(*sorted(zip(positions[:, 0], positions[:, 1], pbclscm))) 54 | 55 | assert np.allclose(check_x, x) 56 | assert np.allclose(check_y, y) 57 | assert np.allclose(check_pbclscm, pbclscm) 58 | 59 | def test_local_z2_marker_kanemele_static(): 60 | check_lz2m = np.loadtxt("./tests/check/lz2m_uniform_disorder.check") 61 | check_positions = np.loadtxt("./tests/check/positions_kanemele_uniform.check") 62 | 63 | # Arbitrary order to check equality 64 | check_x, check_y, check_lz2m = zip(*sorted(zip(check_positions[:, 0], check_positions[:, 1], check_lz2m))) 65 | 66 | kmmodel = kane_mele_tbmodels(rashba = 1.0, esite = 3.5, spin_orb = 0.3) 67 | kmmodel_finite = FiniteModel(tbmodel = kmmodel, Lx = 8, Ly = 8, spinful = True) 68 | 69 | # Set seed for disorder 70 | seed = 10 71 | kmmodel_finite.add_onsite_disorder(w = 3, seed = seed) 72 | 73 | lz2m = kmmodel_finite.local_z2_marker(macroscopic_average = True, cutoff = 1.5) 74 | positions = kmmodel_finite.cart_positions 75 | 76 | # Arbitrary order to check equality 77 | x, y, lz2m = zip(*sorted(zip(positions[:, 0], positions[:, 1], lz2m))) 78 | 79 | assert np.allclose(check_x, x) 80 | assert np.allclose(check_y, y) 81 | assert np.allclose(check_lz2m, lz2m) 82 | 83 | def test_pbc_local_z2_marker_kanemele_static(): 84 | check_pbclz2m = np.loadtxt("./tests/check/pbclz2m_uniform_disorder.check") 85 | check_positions = np.loadtxt("./tests/check/positions_kanemele_uniform.check") 86 | 87 | # Arbitrary order to check equality 88 | check_x, check_y, check_pbclz2m = zip(*sorted(zip(check_positions[:, 0], check_positions[:, 1], check_pbclz2m))) 89 | 90 | kmmodel = kane_mele_tbmodels(rashba = 1.0, esite = 3.5, spin_orb = 0.3) 91 | kmmodel_supercell = Supercell(tbmodel = kmmodel, Lx = 8, Ly = 8, spinful = True) 92 | 93 | # Set seed for disorder 94 | seed = 10 95 | kmmodel_supercell.add_onsite_disorder(w = 3, seed = seed) 96 | 97 | pbclz2m = kmmodel_supercell.pbc_local_z2_marker(macroscopic_average = True, cutoff = 1.5) 98 | positions = kmmodel_supercell.cart_positions 99 | 100 | # Arbitrary order to check equality 101 | x, y, pbclz2m = zip(*sorted(zip(positions[:, 0], positions[:, 1], pbclz2m))) 102 | 103 | assert np.allclose(check_x, x) 104 | assert np.allclose(check_y, y) 105 | assert np.allclose(check_pbclz2m, pbclz2m) --------------------------------------------------------------------------------