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.4.0.tar.gz (871.8 kB view details)

Uploaded Source

Built Distributions

brille-0.4.0-cp38-cp38-manylinux2010_x86_64.whl (12.6 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.12+ x86-64

brille-0.4.0-cp37-cp37m-manylinux2010_x86_64.whl (12.8 MB view details)

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

brille-0.4.0-cp36-cp36m-manylinux2010_x86_64.whl (12.8 MB view details)

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

File details

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

File metadata

  • Download URL: brille-0.4.0.tar.gz
  • Upload date:
  • Size: 871.8 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.4.0.tar.gz
Algorithm Hash digest
SHA256 a26a2e912224e276eca2d9c4a1ec35ea74c727244f4072d0c87de8587a6a5a0d
MD5 eb24828f0e19e83ab043bcd2f9bb6a63
BLAKE2b-256 6865bbf9dbe99dcd35adf99205b027944ac3ef916dbe3587ad6eb828541306fa

See more details on using hashes here.

File details

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

File metadata

  • Download URL: brille-0.4.0-cp38-cp38-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 12.6 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.4.0-cp38-cp38-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 21190a02f25f86e58b32575288983b76d9b60da3345ef0551d49163ce1309e88
MD5 1ecd798be765552fda3c297242d84848
BLAKE2b-256 d6ac47a34403d06c7f250bd7fd539c35617fca4a820dd283720e87e502d4f3b4

See more details on using hashes here.

File details

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

File metadata

  • Download URL: brille-0.4.0-cp37-cp37m-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 12.8 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.4.0-cp37-cp37m-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 169cbd713eea9fc12932c3408914af871cc03ee32b6d4bb33df84d9c9abe1bb3
MD5 aa537dad94902a447165f18f17d1b527
BLAKE2b-256 e5660da9f48c6a0a31915483ebd299bf22c576b5d26427fa5d7cf81c645d3a7e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: brille-0.4.0-cp36-cp36m-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 12.8 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.4.0-cp36-cp36m-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 33b686df8e73e8d927e15b6b5fd3a3e0504aef968c1f73723345aaf92cd42b3e
MD5 863863c660806c45904590526ec7fbe7
BLAKE2b-256 e65ee58fd52cf34c424482c09e92d25a08d0132bd77394e34a643a0342f8b19c

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