SymmSpecies

SymmSpecies is a Crystal (programming language) library for working with the 212 non-magnetic Aizu species. i.e. we are interested in the specific, symmetrically distinct, orientations of the crystallographic point groups (see Symm32) "within" one another.

Installation

Add this to your application's shard.yml:

dependencies:
  symm_species:
    gitlab: gitlab/symm_species

Usage

require "symm_species"

Your application will now have available to it the array SymmSpecies::LIST and the helper methods SymmSpecies.number(num) to get a species by number and SymmSpecies.species_for(parent: parent, child: child) for accessing the species where the point group parent is a parent and the point group child is a child. Since this is named tuple, both arguments are optional. If you provide only child, all species where that group is a child will be returned without regard for parent (for example).

Examples of Crystal applications that use this shard:

For further documentation, please see the docs.

Contributing

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/symm_species.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.

  1. Fork it (<https://gitlab.com/crystal-symmetry/symm_base/forks/new>)
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

But I recommend you start off by opening an issue so that you don't waste time on a potentially unwelcome change.

Contributors