This is paccs, a colloidal crystal structure analysis, generation, optimization, and visualization library written in Python. It supports stochastic optimization of periodic multicomponent systems in two and three dimensions, as well as the generation of candidate structures in two dimensions using wallpaper groups. A module is included to permit simple parallelization of large generation and optimization jobs, as well as the collection and filtering of the output of these jobs into a single database.
Once you've obtained a copy of the repository for yourself, take note that:
- As well as an installation of Python 3, paccs requires the presence of
some additional packages listed in therequirements.txt
file. We recommend
installing these dependencies by obtaining a distribution of
Miniconda and using
conda install ...
; note that python-constraint is unavailable throughconda
and must be installed with pip.
$ cat requirements.txt
cython
mayavi
numpy
plotly
python-constraint
scikit-learn
scipy
sphinx
sphinx_rtd_theme
-
It is recommended that you use the latest version of Python 3 as well as the latest versions of all of the requirements. You can leave out one or both of
mayavi
andplotly
if you don't want to use the visualization frontends enabled when they are present. -
Building the paccs package can be accomplished by executing the shell script
install
in the package root directory. With no options, the package will be built and tested automatically. A few options are available to skip parts of the build or control build options for testing purposes; seeinstall -h
for a list.
$ ./install -h
Accepted options:
-c Skip compilation
-d Skip documentation generation
-u Skip unit testing
-p Compile with Cython profiling information
- The compiled modules will be placed in the
lib
directory. This is the directory you should add to yourPYTHONPATH
to use paccs.
To start working, you can either import paccs
or from paccs import *
once
the libraries are in your path, or use the script bin/paccssh
. This script
will find and load paccs and then start a Python interactive session (or an
IPython interactive session if IPython is available).
The build process automatically creates HTML documentation inside
docs/build/html
. Information on the paccs API, as well as how to use
paccs to accomplish various common tasks, is available here.
Please see the LICENSE
file for package license information.