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

Uploaded Source

Built Distributions

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

Uploaded CPython 3.8 manylinux: glibc 2.12+ x86-64

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

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

brille-0.3.0-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.0.tar.gz.

File metadata

  • Download URL: brille-0.3.0.tar.gz
  • Upload date:
  • Size: 734.3 kB
  • Tags: Source
  • 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.1 CPython/3.8.3

File hashes

Hashes for brille-0.3.0.tar.gz
Algorithm Hash digest
SHA256 b115ff57d01b932e825d91cbdb16080cfa13cbd531dd7bc0f996e4a8fca1f219
MD5 e145ae50cd0c39e5ed5c4849e904a32a
BLAKE2b-256 cd8977a0e4a7f3198cbedd699aaef824f5e746815951b7697f11579a8628a796

See more details on using hashes here.

File details

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

File metadata

  • Download URL: brille-0.3.0-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.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.8.3

File hashes

Hashes for brille-0.3.0-cp38-cp38-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 4c60ea22f9d04397c89d2a7a763a017db216bb5b5a78a1ed57b0fc1daf948f90
MD5 6dd319e382ee28ca1aff6c61637ff4de
BLAKE2b-256 e0db60f745d9d93f4379476aa8522e512fb8ccc43c1f6fade2ec06fd085d25bc

See more details on using hashes here.

File details

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

File metadata

  • Download URL: brille-0.3.0-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.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.8.3

File hashes

Hashes for brille-0.3.0-cp37-cp37m-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 a8f8275cce118de2b4d4f882c0399e43f4b87456d9cab8710a9b2a00f7d17abe
MD5 f70a526b9c764265be0f9af735835504
BLAKE2b-256 6620012b1b7c1676ae460715b4427b2c86a4b13665d809667c456dc5403d7719

See more details on using hashes here.

File details

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

File metadata

  • Download URL: brille-0.3.0-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.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.8.3

File hashes

Hashes for brille-0.3.0-cp36-cp36m-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 3d6e16d30897cdb6e8a038803eb6410c9ef40a8a2dee5d161ab2ab9aa246d85c
MD5 0509ec693aa5d913b03e3c07c52e31fb
BLAKE2b-256 7100c8c94df66f380184d75a93da2a07ff7742b395f5a7effd20d02fa7ef9347

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