Add wyckoff analysis/generation code
This is a pull request to add the Wyckoff analysis and generation code originally authored by @schinavro in !1035 (closed), with a fix for space group 230.
From the original (closed) merge request:
This code is basically a python version of RandSpg: “RandSpg: An Open-Source Program for Generating Atomistic Crystal Structures with Specific Spacegroups.” Computer Physics Communications 213 (2017): 208–16. https://doi.org/10.1016/j.cpc.2016.12.005
`wyckpos.dat` contains the information of Wyckoff positions. `wyckoff.py` reads the `wyckpos.dat` and stores the information user needed. `xtal2.py` is a simmilar code with `xtal.py` but generate the crystal using Wyckoff position.
I have tested various cases of crystal generation and compared with Spacegroup module. It matches very well.
This code is quite useful for our defects research, and I would like to use this code in our defects modelling package (https://github.com/SMTG-UCL/doped), so it would be great if it was implemented in ase
and we could use it as a dependency!