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 Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

brille-0.2.1-cp38-cp38-manylinux2010_x86_64.whl (13.0 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.12+ x86-64

brille-0.2.1-cp37-cp37m-manylinux2010_x86_64.whl (13.3 MB view details)

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

brille-0.2.1-cp36-cp36m-manylinux2010_x86_64.whl (13.3 MB view details)

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

File details

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

File metadata

  • Download URL: brille-0.2.1-cp38-cp38-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 13.0 MB
  • Tags: CPython 3.8, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.8.2

File hashes

Hashes for brille-0.2.1-cp38-cp38-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 5e49285d5c5b9742bcb6ddfb7e4aad38362b9696f97118a120b167f7dd46d25a
MD5 f50ded5d2c452cb38a11fa113f66941b
BLAKE2b-256 9f3cb8dec4265d4fa650b9923c174b8c1ea6a148d2c16c143511d831107fe557

See more details on using hashes here.

File details

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

File metadata

  • Download URL: brille-0.2.1-cp37-cp37m-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 13.3 MB
  • Tags: CPython 3.7m, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.8.2

File hashes

Hashes for brille-0.2.1-cp37-cp37m-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 a302b57f292d65d68f5c27766f95b11f10f1202c2142c6891753bf8d239a126d
MD5 1679eaeda22ed847e9857c9c549487b5
BLAKE2b-256 67e09258e4afde7f3a68eb5df0af427321bf3ef7ab7bc3c839b199a6d17b16d8

See more details on using hashes here.

File details

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

File metadata

  • Download URL: brille-0.2.1-cp36-cp36m-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 13.3 MB
  • Tags: CPython 3.6m, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.8.2

File hashes

Hashes for brille-0.2.1-cp36-cp36m-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 da5a638d94d6f3ca4bfd2277c79ddb2dd8c68bd4d1bce2523ba710acebb3e25c
MD5 b59c65941cc6f7d17ab1015f73edf263
BLAKE2b-256 98ec971e563f127057e00a7cc330cf65734e02cf1717f176d92482be479b332f

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