High temperature thermal elasticity
Project description
Cij: Semiemperical thermal elasticity
Calculate high temperature thermal elasticity in Python.
Installation
The package can be installed with pip
package manager.
Install from PyPI (Python package index)
$ python3 -m pip install cij
Manual install
At the command prompt, one should navigate to the directory that contains the
setup.py
script and execute pip install .
. Then, the package should be ready for use.
Usage
Command-line programs
After installation, the Cij program can be started by typing cij
at your
command prompt:
Usage: cij [OPTIONS] COMMAND [ARGS]...
Options:
--version Show the version and exit.
--help Show this message and exit.
Commands:
extract Create data table at specific P or T.
extract-geotherm Create data table at geotherm PT.
fill Fill non-zero Cij terms based on symmetry.
modes Plot interpolated mode frequency vs volume.
plot Plot SAM-Cij calculation results.
run Perform SAM-Cij calculation.
run-static Calculate elastic moduli and acoustic velocities.
SAM-Cij calculations with cij run
Calculation settings file and example
The settings.yaml
file is home to all calculation settings. One needs to specify calculation parameters, such as thermal EoS fitting parameters, phonon interpolation settings, input data location, and output variables to store in YAML format. The following is an example settings file.
qha:
input: input01
settings:
# similar to settings in qha
DT: 100
P_MIN: 0
DELTA_P: 0.5
NTV: 81
order: 3
static_only: False
T_MIN: 0
NT: 31
DT_SAMPLE: 100
DELTA_P_SAMPLE: 5
volume_ratio: 1.2
elast:
input: elast.dat
settings:
mode_gamma:
interpolator: spline
order: 3
symmetry:
system: cubic
output:
pressure_base:
- cij
- vs
- vp
- bm_V
- bm_R
- bm_VRH
- G_V
- G_R
- G_VRH
- v
volume_base:
- p
# ...
Input data
Input data include a QHA input data file (input01
) and a static elasticity input data (elast.dat
). See the paper or detailed documentation for description and the examples
folder for detailed example.
Command line arguments
Usage: cij run [OPTIONS] SETTINGS_FILENAME
Perform SAM-Cij calculation.
Options:
--version Show the version and exit.
--debug [CRITICAL|ERROR|WARNING|INFO|DEBUG|NOTSET]
Logging level
--help Show this message and exit.
Structure of the cij
package
The cij package is written in Python 3. The Python source code is located in the cij
sub-folder.
Input for three examples in the examples
sub-folder, documentation in the docs
sub-folder, and the installation script setup.py
.
The Python code is organized into several modules:
cij.core
: Core functionalitiescalculator
: The calculator that controls the workflow.mode_gamma
: Interpolate phonon frequencies and calculate mode Grüneisen parameters.phonon_contribution
: Calculate phonon cijph. full_modulus – Interpolate cijst vs. V, and calculate cijS and cijT. tasks – Handles the ordering of cijph calculation.
cij.util
: Methods used in the main programvoigt
: Convert between Voigt (cij) and regular (cijkl) notations of elastic coefficients.units
: Handle unit conversion.
cij.io
: Input output functions and classes.cij.plot
: Plotting functionalities.cij.cli
: Command-line programscij run
(main.py
) – Perform a SAM-Cij calculation.cij run-static
(static.py
) – Calculate static elastic properties.cij extract
(extract.py
) – Extract calculation results for a specific T or P to a table.cij extract-geotherm
(geotherm.py
) – Extract calculation results along geotherm PT (given as input) to a table.cij plot
(plot.py
) – Convert output data table to PNG plot.cij modes
(modes.py
) – Plot phonon frequency interpolation results.cij fill
(fill.py
) – Fill all the non-zero terms for elastic coefficients given the constraint of a crystal system.
cij.data
: Data distributed with the program, e.g., the relationship between cij’s for different crystal systems, the naming scheme for output files, etc.cij.misc
: Miscellaneous functionalities that are not used in the main program, e.g., methods that facilitate the preparation of input files.
Author
The code in this repo is initially authored by Chenxing Luo.
Documentation
See GitHub pages.
Build status
How to cite
If you use this software in any publication, please cite:
Luo, C., Deng, X., Wang, W., Shukla, G., Wu, Z., & Wentzcovitch, R. M. (2021). cij: A Python code for quasiharmonic thermoelasticity. Computer Physics Communications, 108067. https://doi.org/10.1016/j.cpc.2021.108067
The paper is also available from arXiv: https://arxiv.org/abs/2101.12596
Licence
Released under GNU GPLv3 license.
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.
Source Distribution
Built Distribution
File details
Details for the file cij-1.0.0b4.tar.gz
.
File metadata
- Download URL: cij-1.0.0b4.tar.gz
- Upload date:
- Size: 59.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c85083a2d993ffa398fe48bc7ede798ba235f973843d48d839b639fe087927ca |
|
MD5 | 316564f6a9e81f0f79b1bd760c8e279f |
|
BLAKE2b-256 | d35ac4bafc22e38e197bf3d6c32c5f74f629a5f739d4cfdfebf690e73d4d1e0c |
File details
Details for the file cij-1.0.0b4-py3-none-any.whl
.
File metadata
- Download URL: cij-1.0.0b4-py3-none-any.whl
- Upload date:
- Size: 70.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e5c091a47b2b0859dada20869a0954596b0d6a36a0e44c1d4325c8dd423c0241 |
|
MD5 | 473fb436510e046874c24bd35d407496 |
|
BLAKE2b-256 | a5730c4fe86962fe0373cf22cff9747733d8c983ddcf212fc4374b886b88eef2 |