{"id":21973378,"url":"https://github.com/mineralscloud/cij","last_synced_at":"2025-04-28T13:43:18.342Z","repository":{"id":62562186,"uuid":"177018704","full_name":"MineralsCloud/cij","owner":"MineralsCloud","description":"Semiemperical quasiharmonic thermal elasticity","archived":false,"fork":false,"pushed_at":"2024-04-19T14:17:43.000Z","size":10727,"stargazers_count":18,"open_issues_count":1,"forks_count":5,"subscribers_count":3,"default_branch":"dev","last_synced_at":"2025-04-12T19:17:16.653Z","etag":null,"topics":["ab-initio","elasticity","high-pressure","phonon","python","scientific","scientific-computing","solid-state-physics"],"latest_commit_sha":null,"homepage":"https://mineralscloud.github.io/cij","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MineralsCloud.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2019-03-21T20:26:02.000Z","updated_at":"2025-01-24T22:19:34.000Z","dependencies_parsed_at":"2023-01-23T20:00:40.691Z","dependency_job_id":"8bec3b51-737e-4823-a276-11d33c44ad7e","html_url":"https://github.com/MineralsCloud/cij","commit_stats":{"total_commits":230,"total_committers":1,"mean_commits":230.0,"dds":0.0,"last_synced_commit":"27442975750a4ba061a202c9e6bf659a907a82eb"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MineralsCloud%2Fcij","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MineralsCloud%2Fcij/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MineralsCloud%2Fcij/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MineralsCloud%2Fcij/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MineralsCloud","download_url":"https://codeload.github.com/MineralsCloud/cij/tar.gz/refs/heads/dev","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251321438,"owners_count":21570739,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ab-initio","elasticity","high-pressure","phonon","python","scientific","scientific-computing","solid-state-physics"],"created_at":"2024-11-29T15:26:50.549Z","updated_at":"2025-04-28T13:43:18.321Z","avatar_url":"https://github.com/MineralsCloud.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# \u003ci\u003eC\u003csub\u003eij\u003c/sub\u003e\u003c/i\u003e: Semiemperical thermal elasticity\n\nCalculate high temperature thermal elasticity in Python.\n\n## Installation\n\nThe package can be installed with `pip` package manager.\n\n### Install from PyPI (Python package index)\n\n```shell\n$ python3 -m pip install cij\n```\n\n### Manual install\n\nAt the command prompt, one should navigate to the directory that contains the\n`setup.py` script and execute `pip install .`. Then, the package should be ready for use.\n\n## Usage\n\n### Command-line programs\n\nAfter installation, the Cij program can be started by typing `cij` at your \ncommand prompt:\n\n```\nUsage: cij [OPTIONS] COMMAND [ARGS]...\n\nOptions:\n  --version  Show the version and exit.\n  --help     Show this message and exit.\n\nCommands:\n  extract           Create data table at specific P or T.\n  extract-geotherm  Create data table at geotherm PT.\n  fill              Fill non-zero Cij terms based on symmetry.\n  modes             Plot interpolated mode frequency vs volume.\n  plot              Plot SAM-Cij calculation results.\n  run               Perform SAM-Cij calculation.\n  run-static        Calculate elastic moduli and acoustic velocities.\n```\n\n### SAM-Cij calculations with `cij run`\n\n#### Calculation settings file and example\n\nThe `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.\n\n```yml\nqha:\n  input: input01\n  settings:\n    # similar to settings in qha\n    DT: 100\n    P_MIN: 0\n    DELTA_P: 0.5\n    NTV: 81\n    order: 3\n    static_only: False\n    T_MIN: 0\n    NT: 31\n    DT_SAMPLE: 100\n    DELTA_P_SAMPLE: 5\n    volume_ratio: 1.2\nelast:\n  input: elast.dat\n  settings:\n    mode_gamma:\n      interpolator: spline\n      order: 3\n    symmetry:\n      system: cubic\noutput:\n  pressure_base:\n    - cij\n    - vs\n    - vp\n    - bm_V\n    - bm_R\n    - bm_VRH\n    - G_V\n    - G_R\n    - G_VRH\n    - v\n  volume_base:\n    - p\n    # ...\n\n```\n\n#### Input data\n\nInput 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`](./examples) folder for detailed example.\n\n#### Command line arguments\n\n```txt\nUsage: cij run [OPTIONS] SETTINGS_FILENAME\n\n  Perform SAM-Cij calculation.\n\nOptions:\n  --version                       Show the version and exit.\n  --debug [CRITICAL|ERROR|WARNING|INFO|DEBUG|NOTSET]\n                                  Logging level\n  --help                          Show this message and exit.\n```\n\n\n## Structure of the `cij` package\n\nThe cij package is written in Python 3. The Python source code is located in the `cij` sub-folder.\nInput for three examples in the `examples` sub-folder, documentation in the `docs` sub-folder, and the installation script `setup.py`.\n\nThe Python code is organized into several modules:\n\n- **`cij.core`**: Core functionalities\n\t- `calculator`: The calculator that controls the workflow.\n\t- `mode_gamma`: Interpolate phonon frequencies and calculate mode Grüneisen parameters.\n\t- `phonon_contribution`: Calculate phonon *c\u003csub\u003eij\u003c/sub\u003e*\u003csup\u003eph\u003c/sup\u003e.\n\tfull_modulus – Interpolate *c\u003csub\u003eij\u003c/sub\u003e*\u003csup\u003est\u003c/sup\u003e vs. *V*, and calculate *c\u003csub\u003eij\u003c/sub\u003e\u003csup\u003eS\u003c/sup\u003e* and *c\u003csub\u003eij\u003c/sub\u003e\u003csup\u003eT\u003c/sup\u003e*.\ntasks – Handles the ordering of *c\u003csub\u003eij\u003c/sub\u003e*\u003csup\u003eph\u003c/sup\u003e calculation.\n- **`cij.util`**: Methods used in the main program\n\t- `voigt`: Convert between Voigt (*c\u003csub\u003eij\u003c/sub\u003e*) and regular (*c\u003csub\u003eijkl\u003c/sub\u003e*) notations of elastic coefficients.\n\t- `units`: Handle unit conversion.\n- **`cij.io`**: Input output functions and classes.\n- **`cij.plot`**: Plotting functionalities.\n- **`cij.cli`**: Command-line programs\n\t- `cij run` (`main.py`) – Perform a SAM-Cij calculation.\n\t- `cij run-static` (`static.py`) – Calculate static elastic properties.\n\t- `cij extract` (`extract.py`) – Extract calculation results for a specific *T* or *P* to a table.\n\t- `cij extract-geotherm` (`geotherm.py`) – Extract calculation results along geotherm *PT* (given as input) to a table.\n\t- `cij plot` (`plot.py`) – Convert output data table to PNG plot.\n\t- `cij modes` (`modes.py`) – Plot phonon frequency interpolation results.\n  - `cij fill` (`fill.py`) – Fill all the non-zero terms for elastic coefficients given the constraint of a crystal system.\n- **`cij.data`**: Data distributed with the program, e.g., the relationship between *c\u003csub\u003eij\u003c/sub\u003e*’s for different crystal systems, the naming scheme for output files, etc.\n- **`cij.misc`**: Miscellaneous functionalities that are not used in the main program, e.g., methods that facilitate the preparation of input files.\n\n## Author\n\nThe code in this repo is initially authored by [Chenxing Luo][1].\n\n[1]: https://github.com/chazeon\n\n## Documentation\n\nSee [GitHub pages][2].\n\n[2]: https://mineralscloud.github.io/cij\n\n## Build status\n\n![GitHub Actions](https://github.com/MineralsCloud/cij/actions/workflows/main.yml/badge.svg)\n[![codecov](https://codecov.io/gh/MineralsCloud/cij/branch/dev/graph/badge.svg?token=Ln1Fo4vNBE)](https://codecov.io/gh/MineralsCloud/cij)\n[![pypi](https://img.shields.io/pypi/v/cij.svg)](https://pypi.org/project/cij/)\n[![pypi](https://img.shields.io/pypi/dm/cij.svg)](https://pypi.org/project/cij/)\n\n## How to cite\n\nIf you use this software in any publication, please cite:\n\nLuo, C., Deng, X., Wang, W., Shukla, G., Wu, Z., \u0026 Wentzcovitch, R. M. (2021). cij: A Python code for quasiharmonic thermoelasticity. *Computer Physics Communications*, 108067. https://doi.org/10.1016/j.cpc.2021.108067\n\nThe paper is also available from arXiv: https://arxiv.org/abs/2101.12596\n\n## Licence\n\nReleased under [GNU GPLv3](./LICENCE) license.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmineralscloud%2Fcij","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmineralscloud%2Fcij","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmineralscloud%2Fcij/lists"}