# Finite Pressure Temperature Elasticity (FPTE) package
<a href="https://ibb.co/gJpS7Js"><img src="https://i.ibb.co/VTZgNTX/Stress-Strain.jpg" alt="Stress-Strain" border="0" /></a>
## 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 c<sub>ijkl</sub> and s<sub>ijkl</sub> are called the elastic
stiffness coefficients and elastic compliance constants respectively. Here we deal with elastic
stiffness coefficients c<sub>ijkl</sub>, 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 (c<sub>ij</sub>), 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
$$ $$
<br>
and
$$ $$
where the stress components are σ<sub>1</sub> = σ<sub>xx</sub> ; σ<sub>2</sub>
= σ<sub>yy</sub> ; σ<sub>3</sub> = σ<sub>zz</sub> ; σ<sub>4</sub> =
σ<sub>yz</sub> ; σ<sub>5</sub> = σ<sub>zx</sub> ; σ<sub>6</sub> =
σ<sub>xy</sub>, and the strain components are ε<sub>1</sub> = ε<sub>
xx</sub> ; ε<sub>2</sub> = ε<sub>yy</sub> ; ε<sub>3</sub> =
ε<sub>zz</sub> ; ε<sub>4</sub> = ε<sub>yz</sub> ; ε<sub>5</sub>
= ε<sub>zx</sub> ; ε<sub>6</sub> = ε<sub>xy</sub>. When a crystal
lattice is deformed with strain (ε), new lattice vectors a are related to old vectors **
a**<sub>0</sub> by **a** = (I + ε) **a**<sub>0</sub>, 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<sub>
ij</sub> . A cubic crystal having highest symmetry is characterized by the lowest number (only
three) of independent elastic constants, c<sub>11</sub>, c<sub>12</sub> and c<sub>44</sub>,
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: <br>
1. 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.
2. Karki, Bijaya B. “High-Pressure Structure and Elasticity of the Major Silicate and Oxide
Minerals of the Earth’s Lower Mantle,” 1997.
3. Barron, THK, and ML Klein. “Second-Order Elastic Constants of a Solid under Stress.”
Proceedings of the Physical Society 85, no. 3 (1965): 523.