ZacrosIO
This project is a collective of tools for the preparation of input files for Zacros.
## Installation
pip install zacrosio
git clone https://github.com/hprats/ZacrosIO.git
## Dependencies
Pandas, Scipy
## Example
In this example, we create the ZACROS input files for many KMC simulations scanning a wide range of partial pressures and temperatures for the CO oxidation.
import numpy as np import pandas as pd from zacrosio.kmc_job import NewKMCJob
- job = NewKMCJob(df_gas=pd.read_csv(f’gas_data.csv’, index_col=0),
df_mechanism=pd.read_csv(f’mechanism.csv’, index_col=0), df_energetics=pd.read_csv(f’energetics.csv’, index_col=0), lattice_path=”lattice_input.dat”)
- for T in np.linspace(500, 1000, 6):
- for pCO in np.logspace(-4, 0, 10):
- for pO in np.logspace(-4, 0, 10):
- job.create_job_dir(path=f”./co_oxidation_T_{T}_pCO_{pCO}_pO_{pO}”,
T=T, dict_pressure={‘CO’: pCO, ‘O’: pO}, reporting=’on time 5.0e-1’, stopping={‘max_steps’: ‘infinity’, ‘max_time’: ‘infinity’, ‘wall_time’: 36000}, repeat_cell=[10, 10], list_auto_scaling=[‘O_diffusion’])
## Dataframes required
The user must prepare three following Pandas dataframes in advance:
### 1. df_gas.csv
This dataframe contains information about the gas-phase species. Each row corresponds to a gas-phase species, and the following columns are required: - type (str): ‘linear’ or ‘non_linear’ - gas_molec_weight (float): molecular weight in g/mol, e.g. 16.04 - sym_number (int): symmetry number, e.g. 1 - degeneracy (int): degeneracy of the ground state, for the calculation of the electronic partition function, e.g. 1 - inertia_list (list of floats): moments of intertia in amu*Å2 (1 or 3 elements for linear or non-linear molecules, respectively), e.g. [8.9] # can be obtained from ase.Atoms.get_moments_of_inertia() - gas_energy (float): formation energy in eV, e.g. -0.42
### 2. df_mechanism.csv
This dataframe contains information about the steps included in the reaction model, where each row of corresponds to a reversible elementary step. The following columns are required: - site_types (str): type of adsorption sites, e.g. tM tC - neighboring (str): connectivity between sites involved, e.g. 1-2. Optional (default: None) - initial (list): initial configuration, e.g. [‘1 * 1’,’2 CH3** 1’,’2 CH3** 2’] - final (list): final configuration, e.g. [‘1 H_tC* 1’,’2 CH2** 1’,’2 CH2** 2’] - activ_eng (float): activation energy in eV, e.g. 1.02 - prox_factor (float): proximity factor, e.g. 0.2. Optional (default: 0.5) - angles (str): angle between sites, e.g. 1-2-3:180. Optional (default: None) - vib_list_is (list of floats): list of vibrational modes in meV for the initial state in meV, e.g. [332.7, 196.2, 70.5] - vib_list_ts (list of floats): list of vibrational modes in meV for the transition state in meV, e.g. [332.7, 196.2]. For non-activated adsorption, define this as an empty list i.e. [] - vib_list_fs (list of floats): list of vibrational modes in meV for the final state in meV, e.g. [332.7, 196.2, 70.5]
Additional required columns for adsorption steps: - molecule (str): gas-phase molecule involved, e.g. CO - A_site (float): area of the adsoption site in Å, e.g. 4.28
### 3. df_energetics.csv
This dataframe contains information about the clusters included in the cluster expansion, where each row of corresponds to a cluster. The entries corresponding to point clusters and pairwise lateral interactions must end in ‘_point’ and ‘_pair’, respectively (e.g. CH3_point, CH2+H_pair) and the following columns are required: - cluster_eng (float): cluster formation energy, e.g. -1.23 - site_types (str): type of adsorption sites, e.g. top top - neighboring (str): connectivity between sites involved, e.g. 1-2 - lattice_state (list): cluster configuration, e.g. [‘1 CO* 1’,’2 CO* 1’] - angles (str): angle between sites, e.g. 1-2-3:180. Optional (default: None) - graph_multiplicity (int): symmetry number of the cluster, e.g. 2. Optional (default: None)
### 4. lattice_path (str)
Path were the lattice_input.dat file is located. This file has to be generated manually in advance.
## Contributors
Hector Prats Garcia
Metadata
Release files for zacrosio 1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| zacrosio-1.0.tar.gz | 6.2 kB | Without provenance | Details for zacrosio-1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| zacrosio-1.0-py3-none-any.whl | Python 3 | none | any | Details for zacrosio-1.0-py3-none-any.whl |
Total release size: 13.1 kB
Release files / zacrosio-1.0.tar.gz
| Download URL | zacrosio-1.0.tar.gz |
|---|---|
| Size | 6.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c51151938173400e85694d6a2c95652caec01f5938e7f9ce72112e9830f216b5
|
|
BLAKE2b-256 checksum How to use checksums |
d2677b8776522fe294e594860771fcbe8c5966499b14fe8733038a5fb2e56cdd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.0.0 CPython/3.12.2
|
Release files / zacrosio-1.0-py3-none-any.whl
| Download URL | zacrosio-1.0-py3-none-any.whl |
|---|---|
| Size | 6.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8c304bd84d43dca3b4d87bbb5324d6af41c926865c3a8c59ca58bd972b90887e
|
|
BLAKE2b-256 checksum How to use checksums |
90919f633f34e148192c85a64ac561056d1277a1de431fbd505662cb11f6731f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.0.0 CPython/3.12.2
|
Security for zacrosio 1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.