AutoCat is a suite of python tools for sequential learning for materials applications and automating structure generation for DFT catalysis studies.
Development of this package stems from ACED, as part of the ARPA-E DIFFERENTIATE program.
Below we provide an overview of the key functionalities of AutoCat. For additional details please see the User Guide, Tutorials, and API sections.
One of the core philosophies of AutoCat is to provide modular and extensible tooling to facilitate closed-loop computational materials discovery workflows. Within this submodule are classes for defining a design space, featurization, regression, selecting candidate systems, and defining a closed-loop sequential learning iterator. The key classes intended for each of these purposes are:
DesignSpace: define a design space to explore
Featurizer: featurize the systems for regression
Predictor: a regressor for predicting materials properties
CandidateSelector: propose candidate system(s) for evaluation
SequentialLearner: define a closed-loop iterator
This submodule contains functions for automating atomic structure generation within the context of a catalysis study using density functional theory. Specifically, this includes generating bulk structures, surfaces, and placing adsorbates. In addition, functions for generating the single-atom alloys material class are also included. These functions are organized within AutoCat as follows:
autocat.bulk: generation of periodic mono-elemental bulk structures
autocat.surface: mono-elemental surface slab generation
autocat.adsorption: placement of adsorbates onto surfaces
autocat.saa: generation of single-atom alloy surfaces
Structures generated or read with this package are typically of the form of
When opting to write structures to
disk using these functions, they are automatically organized into a clean, scalable directory organization.
All structures are written in the
For further details on the directory structure, see the User Guide.
There are two options for installation, either via
pip or from the repo directly.
If you are planning on strictly using AutoCat rather than contributing to development,
we recommend using
pip within a virtual environment (e.g.
). This can be done
pip install autocat
Github (for developers)
Alternatively, if you would like to contribute to the development of this software,
AutoCat can be installed via a clone from Github. First, you'll need to clone the
github repo to your local machine (or wherever you'd like to use AutoCat) using
git clone. Once the repo has been cloned, you can install AutoCat as an editable
package by changing into the created directory (the one with
setup.py) and installing
pip install -e .
Contributions through issues, feature requests, and pull requests are welcome. Guidelines are provided here.
The code presented herein was funded by the Advanced Research Projects Agency-Energy (ARPA-E), U.S. Department of Energy, under Award Number DE-AR0001211 and in part by the National Science Foundation, under Award Number CBET-1554273. The views and opinions of authors expressed herein do not necessarily state or reflect those of the United States Government or any agency thereof.