# \[ANN\] SymmetryReduceBZ.jl: reduce the Brillouin zone by symmetry

**URL:** https://discourse.julialang.org/t/ann-symmetryreducebz-jl-reduce-the-brillouin-zone-by-symmetry/64603
**Category:** Package Announcements
**Tags:** package, announcement, materials-science
**Created:** [July 13, 2021, 9:09pm UTC](https://discourse.julialang.org/t/ann-symmetryreducebz-jl-reduce-the-brillouin-zone-by-symmetry/64603 "2021-07-13T21:09:46Z")
**Posts on this page:** 4
**Page:** 1

<div class="post-metadata">

### Author: ![jerjorg](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jerjorg/32/15100_2.png) [@jerjorg](https://discourse.julialang.org/u/jerjorg)
#### Post date: [July 13, 2021, 9:09pm UTC](https://discourse.julialang.org/t/ann-symmetryreducebz-jl-reduce-the-brillouin-zone-by-symmetry/64603/1 "2021-07-13T21:09:47Z")

</div>

Calculating the properties of crystalline materials requires numeric integration. The function integrated is costly to evaluate, so symmetry is used to reduce the number of function evaluations. [SymmetryReduceBZ.jl](https://github.com/jerjorg/SymmetryReduceBZ.jl) is a package that calculates a symmetrically unique integration domain for any crystalline material—the irreducible Brillouin zone (IBZ). Integration meshes over the IBZ have the maximum possible symmetry reduction and consequently are the most computationally efficient for the calculation of properties of materials.

`SymmetryReduceBZ.jl` calculates the irreducible Brillouin zone for any 2D or 3D crystal structure (any 2D or 3D Bravais lattice and space group); the user simply provides the lattice vectors and atomic basis. It also contains methods for visualization. Details of the algorithm can be found [here](https://arxiv.org/abs/2104.05856).

---

<div class="post-metadata">

### Author: ![antoine-levitt](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/antoine-levitt/32/4008_2.png) [@antoine-levitt](https://discourse.julialang.org/u/antoine-levitt)
#### Post date: [July 14, 2021, 9:28am UTC](https://discourse.julialang.org/t/ann-symmetryreducebz-jl-reduce-the-brillouin-zone-by-symmetry/64603/2 "2021-07-14T09:28:41Z")

</div>

Nice! Two Brillouin zone packages in a few hours, did you guys coordinate with @tchr or was it pure coincidence? Is this plain Monkhorst-Pack grids, or is there something more fancy going on?

We currently use Monkhorst-Pack and symmetry reduction via spglib in [https://github.com/JuliaMolSim/DFTK.jl/](https://github.com/JuliaMolSim/DFTK.jl/), it could be nice to replace it with this - although coding up symmetry stuff is very error-prone and so I’m a bit reluctant to change the currently working solution.

---

<div class="post-metadata">

### Author: ![mfh](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mfh/32/13787_2.png) [@mfh](https://discourse.julialang.org/u/mfh)
#### Post date: [July 14, 2021, 10:50am UTC](https://discourse.julialang.org/t/ann-symmetryreducebz-jl-reduce-the-brillouin-zone-by-symmetry/64603/3 "2021-07-14T10:50:51Z")

</div>

Related to what @antoine-levitt said: Did you make a comparison / verification with spglib for example? I remember from discussions with the spglib author that there can be quite tricky cases for determining the symmetries (e.g. when you have supercells) and that there are hidden assumptions that your input is reasonably nice in the library. What I am getting at is: Is there the chance for a drop-in replacement of spglib with SymmetryReduceBZ or would one expect differences in behaviour from both packages?

---

<div class="post-metadata">

### Author: ![jerjorg](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jerjorg/32/15100_2.png) [@jerjorg](https://discourse.julialang.org/u/jerjorg)
#### Post date: [August 14, 2021, 8:54pm UTC](https://discourse.julialang.org/t/ann-symmetryreducebz-jl-reduce-the-brillouin-zone-by-symmetry/64603/4 "2021-08-14T20:54:43Z")

</div>

I didn’t compare symmetries with spglib, but it is possible to use those symmetries instead during the calculation and reduction of the Brillouin zone.
