packaging-extrapolation 1.1.0

Creator: railscoder56

Last updated:

Add to Cart

Description:

packagingextrapolation 1.1.0

packaging-extrapolation Manual




About

This package contains partial extrapolation methods in quantum chemistry, written using the extrapolation method proposed in the literature. Extrapolation to the CBS limit can be done by entering two successive energies.
Additionally, the web calculator is availble at the internet: https://xizaokaiz-1324489885.cos.ap-shanghai.myqcloud.com/homepage.html
If you found this site useful for your work please cite it as: Xi, Z.; Ding, Y.; Tian, X. Building a New Platform for Significantly Improving Performance of Hartree–Fock and CCSD(T) Correlation Energy Based on Two-Point Complete Basis Set Extrapolation Schemes. J. Phys. Chem. A 2024, 128 (18), 3742–3749. https://doi.org/10.1021/acs.jpca.4c01712

Quickly Use

Please use the pip command to install: pip install packaging-extrapolation or python3 -m pip install packaging-extrapolation
Please make sure the package is the latest: pip install --upgrade packaging-extrapolation
After installation, test the example in src/packaging_extrapolation/examples/examples_energy.py to see if you get results.

Extrapolation Method Calls: python examples_energy.py -m "Klopper_1986" -xe -76.0411795 -ye -76.0603284 -low 2 -high 3 -a 4.25
-m: extrapolation method name.
-xe: energy for E(X).
-ye: energy for E(Y).
-low: cardinal number for X.
-high: cardinal number for Y.
-a: extrapolation parameter alpha/beta.



Tow-Point Extrapolation Schemes



Method
Two-point From
Name
Reference




Klopper-1986
ECBS=E(Y)e−αX−E(X)e−αYe−αX−e−αY
Klopper_1986
https://doi.org/10.1016/0166-1280(86)80068-9


Feller-1992
ECBS=E(Y)e−αX−E(X)e−αYe−αX−e−αY
Feller_1992
https://doi.org/10.1063/1.462652


Truhlar-1998 (Hartree-Fock)
ECBS=E(Y)X−α−E(X)Y−αX−α−Y−α
Truhlar_1998
https://doi.org/10.1016/S0009-2614(98)00866-5


Jensen-2001
ECBS=E(Y)(X+1)e−αX−E(X)(Y+1))e−αY(X+1)e−αX−(Y+1)e−αY
Jensen_2001
https://doi.org/10.1063/1.1413524


Schwenke-2005
ECBS=[E(Y)−E(X)]α+E(X)
Schwenke_2005
https://doi.org/10.1063/1.1824880


Martin-1996
ECBS=E(Y)(X+1/2)−β−E(X)(Y+1/2)−β(X+1/2)−β−(Y+1/2)−β
Martin_1996
https://doi.org/10.1016/0009-2614(96)00898-6


Truhlar-1998 (Correlation)
ECBS=E(Y)X−β−E(X)Y−βX−β−Y−β
Truhlar_1998
https://doi.org/10.1016/S0009-2614(98)00866-5


Huh-2003
ECBS=E(Y)(X+β)−3−E(X)(Y+β)−3(X+β)−3−(Y+β)−3
HuhLee_2003
https://doi.org/10.1063/1.1534091


Bakowies-2007
ECBS=E(Y)(X+1)−β−E(X)(Y+1)−β(X+1)−β−(Y+1)−β
Bkw_2007
https://doi.org/10.1063/1.2749516


OAN(C)
ECBS=33E(Y)−β3E(X)33−β3
OAN_C
https://doi.org/10.1002/jcc.23896



Another Use

If you need to calculate the extrapolation energy of more systems, please refer to the following examples:

from packaging_extrapolation import UtilTools
from packaging_extrapolation.Extrapolation import FitMethod
import pandas as pd
import numpy as np

"""
Calculate more systems.
"""

if __name__ == "__main__":
# Input file.
data = pd.read_csv('../data/hf.CSV')

# Extrapolation model.
model = FitMethod()
# The E(X) and E(Y).
x_energy_list, y_energy_list = data['aug-cc-pvdz'], data['aug-cc-pvtz']
# Using Klopper-1986 method and alpha=4.25, extrapolate to the CBS limit at the AV {D, T}Z basis set pair.
low_card, high_card, alpha, method_name = 2, 3, 4.25, 'Klopper_1986'
result = UtilTools.train_alpha(model=model,
method=method_name,
x_energy_list=x_energy_list,
y_energy_list=y_energy_list,
low_card=low_card,
high_card=high_card,
alpha=alpha)
for i in range(len(result)):
print(result[i], 'Eh')
df = pd.DataFrame()
df['CBS Energy'] = result
# Output file.
df.to_csv('CBS_Energy.csv', index=False)


The input file should be in .csv format and have the following content:

mol,aug-cc-pvdz,aug-cc-pvtz
HCN,-92.8880397,-92.9100033
HCO,-113.2672513,-113.2947633
HNO,-129.8114596,-129.8401888
HO2,-150.2024221,-150.239531
N2O,-183.7105405,-183.7530387
NH2,-55.5749363,-55.5878344
NH3,-56.1972947,-56.2127423
NO2,-204.0664514,-204.1137363




Functions




UtilTools.calc_MAD(y_true, y_pred): Calculate the Mean Absolute Deviation (kcal/mol).


UtilTools.calc_max_MAD(y_true, y_pred): Calculate the Maximum Absolute Deviation (kcal/mol).


UtilTools.calc_min_MAD(y_true, y_pred): Calculate the Minimum Absolute Deviation (kcal/mol).


UtilTools.calc_RMSE(y_true, y_pred): Calculate the Root Mean Square Deviation (kcal/mol).


UtilTools.calc_MSD(y_true, y_pred): Calculate the Mean Square Deviation (kcal/mol).


UtilTools.calc_MaxPosMAD(y_true, y_pred): Calculate the Maximum Positive Deviation (kcal/mol).


UtilTools.train_alpha(*, model, method, x_energy_list, y_energy_list, alpha, low_card, high_card): Calculate extrapolated energy.


UtilLog.extract_energy(input_path, output_path): Extracting energy from many log files.


UtilLog.train_all(*, model, method, x_energy_list, y_energy_list, low_card, high_card, limit_list, init_guess=0.001, temp='RMSD') : Optimizing extrapolation parameters with RMSD or MAD.

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.