summaryrefslogtreecommitdiff
path: root/python-brille.spec
diff options
context:
space:
mode:
Diffstat (limited to 'python-brille.spec')
-rw-r--r--python-brille.spec233
1 files changed, 233 insertions, 0 deletions
diff --git a/python-brille.spec b/python-brille.spec
new file mode 100644
index 0000000..655852f
--- /dev/null
+++ b/python-brille.spec
@@ -0,0 +1,233 @@
+%global _empty_manifest_terminate_build 0
+Name: python-brille
+Version: 0.7.0
+Release: 1
+Summary: Irreducible Brillouin zone symmetry and interpolation.
+License: GNU Affero General Public License v3 or later (AGPLv3+)
+URL: https://github.com/brille/brille
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/eb/55/ccf2095ba62d55d397c270405ea8feb7746aa4d7efcc0fc6d67805fa9128/brille-0.7.0.tar.gz
+
+Requires: python3-matplotlib
+Requires: python3-pyglet
+Requires: python3-vispy
+
+%description
+# ![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](https://github.com/pybind/pybind11).
+
+[brille]: https://raw.githubusercontent.com/brille/brille/master/brille.svg
+
+## 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`](https://github.com/atztogo/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.,
+
+```python
+ 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](http://tetgen.org) 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](https://github.com/catchorg/Catch2) based tests can be built directly using `cmake`.
+
+
+%package -n python3-brille
+Summary: Irreducible Brillouin zone symmetry and interpolation.
+Provides: python-brille
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+BuildRequires: python3-cffi
+BuildRequires: gcc
+BuildRequires: gdb
+%description -n python3-brille
+# ![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](https://github.com/pybind/pybind11).
+
+[brille]: https://raw.githubusercontent.com/brille/brille/master/brille.svg
+
+## 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`](https://github.com/atztogo/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.,
+
+```python
+ 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](http://tetgen.org) 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](https://github.com/catchorg/Catch2) based tests can be built directly using `cmake`.
+
+
+%package help
+Summary: Development documents and examples for brille
+Provides: python3-brille-doc
+%description help
+# ![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](https://github.com/pybind/pybind11).
+
+[brille]: https://raw.githubusercontent.com/brille/brille/master/brille.svg
+
+## 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`](https://github.com/atztogo/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.,
+
+```python
+ 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](http://tetgen.org) 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](https://github.com/catchorg/Catch2) based tests can be built directly using `cmake`.
+
+
+%prep
+%autosetup -n brille-0.7.0
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-brille -f filelist.lst
+%dir %{python3_sitearch}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Wed May 10 2023 Python_Bot <Python_Bot@openeuler.org> - 0.7.0-1
+- Package Spec generated