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).
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).
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.