Symm32 is a Crystal (programming language) library for working with the 32 crystallographic point groups. It provides classes, isometries, and other logic related to exploring their symmetries.
Add this to your application's
dependencies: symm32: gitlab: crystal-symmetry/symm32
To use the Symm32 library, you need only require it like so:
This gives you access to
Symm32::POINT_GROUPS an array of the 32 point groups, as well as a helper method for selecting a point group by name:
Symm32.point_group(name). Please see the docs for more details.
Contributions are welcome! To get things started you can open an issue and post a comment, correction, or feature request. From there we can talk about how best to incorporate (or not) your feedback.
Please note! Your contribution should include tests and be well documented. If you're new to crystal then you might want to at least read this section of the docs: Writing Shards. Also, beware, the docs are generated in this project like so:
crystal docs src/symm32.cr since the initialization of this module is order-dependent.
In general, if you want, you can just pull this code down, start hacking on it, and then push it back here as a "Pull Request", then we can discuss your proposed changes.
git checkout -b my-new-feature)
git commit -am 'Add some feature')
git push origin my-new-feature)
But I recommend you start off by opening an issue so that you don't waste time on a potentially unwelcome change.