Skip to main content
Help us improve PyPI by participating in user testing. All experience levels needed!

Semiconducting Materials by Analogy and Chemical Theory

Project description


**Semiconducting Materials from Analogy and Chemical Theory** (SMACT) is a collection of fast screening tools from elemental data.


*If you torture the data enough, nature will always confess* - Roland Coase (from 'How should economists choose?')

[![Documentation Status](](



* **smact** library containing:
* ****
* **** A collection of functions providing elemental properties.
* **** Given the sites, multiplicities and possible oxidation states
at those sites, this reads from the database and generates all possible
* **** Builds some common lattice structures, given the chemical
* **** A collection of functions for enumerating and then
substituting on inequivalent sites of a sub-lattice.


The main language is Python 2.7 with Numpy, Scipy and Matplotlib.
The [Atomic Simulation Environment](
(ASE) is required for some components, as is [spglib](

The [chemlab]( project is not
currently used, but is considered "friendly"; we will try to avoid
namespace clashes and it may be used for some features in the future.
Needed modifications will be made in [ajjackson's
but are expected to make it upstream fairly rapidly.


On a unix-like system, simply add the directory containing this README file
to your PYTHONPATH. e.g. in ~/.bashrc

export PYTHONPATH="/home/username/src/smact:$PYTHONPATH"


SMACT's features are
accessed through Python scripts, importing classes and functions as needed.
In addition to the `examples` folder, some practical applications using are also available from [](

License and attribution

SMACT is produced by the Walsh Materials Design group. Python code
and original data tables are licensed under the GNU General Public
License (GPL) v3.

The following files have their own licenses: **data/elements.txt** is
from the [OpenBabel]( project and licensed under the GPL v2, which is
included in the parent folder.


[D. W. Davies et al,
"Computational Screening of All Stoichiometric Inorganic Materials" *Chem* **1**, 617 (2016)](

[K. T. Butler et al,
"Computational materials design of crystalline solids", *Chemical Society Reviews* (2016)](

[B. R. Pamplin, "A systematic method of deriving new semiconducting
compounds by structural analogy", *J. Phys. Chem. Solids*
**25**, 675 (1964)](

[Mendeley "Materials Design" Reading List](

Development notes

Code style should comply with [PEP
8]( where possible.
[Google's house
is also helpful, including a good model for docstrings.
Please use comments liberally when adding nontrivial features, and
take the chance to clean up other people's code while looking at it.

Although the project is based in Python 2.7.x, please use new-style classes and
string formatting; as well as enjoying their elegance and power, this will make
it much easier to port to Python 3 if this is ever desired.

Testing modules should be pass/fail and wrapped into **tests/**.
Tests need to be run from the main directory (i.e. with `python tests/`).

Project details

Release history Release notifications

This version
History Node


History Node


History Node


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
SMACT-1.2-py2.py3-none-any.whl (57.8 kB) Copy SHA256 hash SHA256 Wheel any Feb 6, 2017
SMACT-1.2.tar.gz (47.4 kB) Copy SHA256 hash SHA256 Source None Feb 6, 2017

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page