Skip to main content

Irreducible Brillouin zone symmetry and interpolation.

Project description

brille for Horace

brille

A C++ library for symmetry operations and linear interpolation within an irreducible part of the first Brillouin zone. Wrapped for use in python using pybind11.

irreducible polyhedron

When provided with the lattice parameters or basis vectors of a real space spacegroup and its Hall symbol or number as determined by, e.g., Spglib, brille can

  • construct the first Brillouin zone
  • determine its high symmetry points
  • find a irreducible polyhedron and verify that its conforms to the pointgroup symmetry of the spacegroup.

Constructing and irreducible Brillouin zone polyhedron for a face centered cubic lattice can be accomplished with, e.g.,

	import brille

	direct_lattice = brille.Direct((4.96, 4.96, 4.96), (90, 90, 90), 'Fd-3m')
	brillouin_zone = brille.BrillouinZone(direct_lattice.star)

interpolation

Interpolating eigenvalues and eigenvectors across a degenerate point could lead to misidentified equivalent modes. Since the eigenvectors are distinguishable at all points away from the high-symmetry directions, a hybrid orthogonal/triangulated grid defined in an irreducible part of the Brillouin zone can be used to avoid mode misidentification.

brille can construct

  • an orthogonal grid guaranteed to contain the first Brillouin zone
  • a triangulated set of points filling an irreducible polyhedron or the first Brillouin zone
  • or a hybrid orthogonal/triangulated grid where only the surface cells are triangulated to improve point location time while preserving polyhedral conformity.

Of these options the third is most appropriate for the interpolation of models used in the analysis of inelastic neutron scattering data is the hybrid grid.

Dependencies

TetGen

A modified version of TetGen is used to create refined tetrahedral meshes in the irreducible portion of the first Brillouin zone.

The modified version is included as part of this repository.

Installation

From the root folder of this repository use Python 3 to build and install this library.

python setup.py install

Alternatively, the python module, C++ library, and catch2 based tests can be built directly using cmake.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

brille-0.3.1.tar.gz (966.6 kB view details)

Uploaded Source

Built Distributions

brille-0.3.1-cp38-cp38-manylinux2010_x86_64.whl (13.2 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.12+ x86-64

brille-0.3.1-cp37-cp37m-manylinux2010_x86_64.whl (13.5 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.12+ x86-64

brille-0.3.1-cp36-cp36m-manylinux2010_x86_64.whl (13.5 MB view details)

Uploaded CPython 3.6m manylinux: glibc 2.12+ x86-64

File details

Details for the file brille-0.3.1.tar.gz.

File metadata

  • Download URL: brille-0.3.1.tar.gz
  • Upload date:
  • Size: 966.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.8.3

File hashes

Hashes for brille-0.3.1.tar.gz
Algorithm Hash digest
SHA256 ddcb5c56c12b92ef58ec09a67b0044fbd5400afafc1eb38781b40224dee8b2b5
MD5 4d80e1de6e5597f1fb57e8e3348e8cba
BLAKE2b-256 425c5cfb140108704daa1bb6db3ac378968f8fb00d58581ef48c2759e97b27b6

See more details on using hashes here.

File details

Details for the file brille-0.3.1-cp38-cp38-manylinux2010_x86_64.whl.

File metadata

  • Download URL: brille-0.3.1-cp38-cp38-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 13.2 MB
  • Tags: CPython 3.8, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.8.3

File hashes

Hashes for brille-0.3.1-cp38-cp38-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 11bb3326a62f135381ae992a1d3a7258cea479db91b0df46a6a8e0ba11be35f8
MD5 477ae94bda1a1ce0ae926354d03374f6
BLAKE2b-256 7c6290caad028e9b9098bbdb648155d6134e087921c055c77b03a5537f46954c

See more details on using hashes here.

File details

Details for the file brille-0.3.1-cp37-cp37m-manylinux2010_x86_64.whl.

File metadata

  • Download URL: brille-0.3.1-cp37-cp37m-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 13.5 MB
  • Tags: CPython 3.7m, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.8.3

File hashes

Hashes for brille-0.3.1-cp37-cp37m-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 9f497d8a220327b62f872130bde9b5338430d2ff3eb0f28f43eb81521ee12753
MD5 92fce18897446ddfd6eee958592d7bbd
BLAKE2b-256 707bed746954117e6ef2e19645723a6940cd47295fdca1556a8d92c49d6ac7b9

See more details on using hashes here.

File details

Details for the file brille-0.3.1-cp36-cp36m-manylinux2010_x86_64.whl.

File metadata

  • Download URL: brille-0.3.1-cp36-cp36m-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 13.5 MB
  • Tags: CPython 3.6m, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.8.3

File hashes

Hashes for brille-0.3.1-cp36-cp36m-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 e6aadb2b64790a18d72aa6b4c2c36767f26de4097ea1434325aa925afd8aee97
MD5 fb6a7cae03a752d3bd0c46bb98fc1e78
BLAKE2b-256 1986994c3971f8de064faa89db34df3c3bf63dd3ca232b050d73bd2e40e90a9b

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page