The FPTE package is a collection of tools for finite pressure temperature elastic constants calculation. Features include, but are not limited to stress-strain method for getting second order elastic tensors using DFT package VASP as well as, ab initio molecular dynamic method for temperaturedependent elastic constants.
Project description
Finite Pressure Temperature Elasticity (FPTE) package
Installation
Dependencies
FPTE requires:
- Python (>= 3.7)
- NumPy (>= 1.16.5)
- Pandas (>= 0.25.3)
- Matplotlib (>= 2.2.4)
- joblib (>= 0.11)
FPTE 1.2.0 and later require Python 3.7 or newer. FPTE 1.1.0 and later require Python 3.4 or newer.
FPTE plotting capabilities (i.e., functions start with plot_
and classes end with "Display")
require Matplotlib (>= 2.2.4).
User installation
If you already have a working installation of numpy and scipy, the easiest way to install FPTE
is using pip
:
pip install -U FPTE
or install from source
:
git clone https://github.com/MahdiDavari/FPTE
cd FPTE
python setup.py install
In order to check your installation you can use:
python -m pip show FPTE # to see which version and where FPTE is installed
python -m pip freeze # to see all packages installed in the active virtualenv
python -c "import FPTE; print(FPTE.__version__)"
Note that in order to avoid potential conflicts with other packages it is strongly recommended to use a virtual environment (venv).
Theory
Elastic Stifness Coefficients from Stress-Strain Relations:
According to Hooke's law, the second-rank stress and strain tensors for a slightly deformed crystal are related by
$$ $$
where the fourth rank tensors cijkl and sijkl are called the elastic stiffness coefficients and elastic compliance constants respectively. Here we deal with elastic stiffness coefficients cijkl, which govern the proper stress-strain relations at nite strain. In general, we can write
$$ $$
where X and x are the coordinates before and after the deformation. There are 81 independent stiffness coefficients in general; however, this number is reduced to 21 by the requirement of the complete Voigt symmetry. In Voigt notation (cij), the elastic constants form a symmetric 6x6 matrix
$$ $$
In single suffix notation (running from 1 to 6), we can also use the matrix representations for stress and strain
$$ $$
and
$$ $$
where the stress components are σ1 = σxx ; σ2 = σyy ; σ3 = σzz ; σ4 = σyz ; σ5 = σzx ; σ6 = σxy, and the strain components are ε1 = ε xx ; ε2 = εyy ; ε3 = εzz ; ε4 = εyz ; ε5 = εzx ; ε6 = εxy. When a crystal lattice is deformed with strain (ε), new lattice vectors a are related to old vectors ** a**0 by a = (I + ε) a0, where I is identity matrix. The stress-strain relations are then simply given by
$$ $$
The presence of the symmetry in the crystal reduces further the number of independent c ij . A cubic crystal having highest symmetry is characterized by the lowest number (only three) of independent elastic constants, c11, c12 and c44, which in matrix notation is
$$ $$
Crystal System | Space Group Number | No. of Elastic Constants |
---|---|---|
Cubic |
195-230 | 3 |
Hexagonal |
168-194 | 5 |
Trigonal |
143-167 | 6-7 |
Tetragonal |
75-142 | 6-7 |
Orthorhombic |
16-74 | 9 |
Monoclinic |
3-15 | 13 |
Triclinic |
1 and 2 | 21 |
Note: For more information regarding the second-order elastic constant see reference:
-
Golesorkhtabar, Rostam, et al., “ElaStic: A Tool for Calculating Second-Order Elastic Constants from First Principles.” Computer Physics Communications 184, no. 8 (2013): 1861–73.
-
Karki, Bijaya B. “High-Pressure Structure and Elasticity of the Major Silicate and Oxide Minerals of the Earth’s Lower Mantle,” 1997.
-
Barron, THK, and ML Klein. “Second-Order Elastic Constants of a Solid under Stress.” Proceedings of the Physical Society 85, no. 3 (1965): 523.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.