Skip to main content

Extrapolation methods for complete basis sets

Project description


packaging-extrapolation Manual

Static Badge Static Badge Static Badge doi

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.

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.

Ten Extrapolation Schemes

Method Two-point From Name Reference
Klopper-1986 $E_{CBS}=\frac{E(Y)e^{-α\sqrt{X}}-E(X)e^{-α\sqrt{Y}}}{e^{-α\sqrt{X}}-e^{-α\sqrt{Y}}}$ Klopper_1986 https://doi.org/10.1016/0166-1280(86)80068-9
Feller-1992 $E_{CBS}=\frac{E(Y)e^{-αX}-E(X)e^{-αY}}{e^{-αX}-e^{-αY}}$ Feller_1992 https://doi.org/10.1063/1.462652
Truhlar-1998 (Hartree-Fock) $E_{CBS}=\frac{E(Y)X^{-\alpha}-E(X)Y^{-\alpha}}{X^{-\alpha}-Y^{-\alpha}}$ Truhlar_1998 https://doi.org/10.1016/S0009-2614(98)00866-5
Jensen-2001 $E_{CBS}=\frac{E(Y)(X+1)e^{-α\sqrt{X}}-E(X)(Y+1))e^{-α\sqrt{Y}}}{(X+1)e^{-α\sqrt{X}}-(Y+1)e^{-α\sqrt{Y}}}$ Jensen_2001 https://doi.org/10.1063/1.1413524
Schwenke-2005 $E_{CBS}=[E(Y)-E(X)]\alpha+E(X)$ Schwenke_2005 https://doi.org/10.1063/1.1824880
Martin-1996 $E_{CBS}=\frac{E(Y)(X+1/2)^{-\beta}-E(X)(Y+1/2)^{-\beta}}{(X+1/2)^{-\beta}-(Y+1/2)^{-\beta}}$ Martin_1996 https://doi.org/10.1016/0009-2614(96)00898-6
Truhlar-1998 (Correlation) $E_{CBS}=\frac{E(Y)X^{-\beta}-E(X)Y^{-\beta}}{X^{-\beta}-Y^{-\beta}}$ Truhlar_1998 https://doi.org/10.1016/S0009-2614(98)00866-5
Huh-2003 $E_{CBS}=\frac{E(Y)(X+\beta)^{-3}-E(X)(Y+\beta)^{-3}}{(X+\beta)^{-3}-(Y+\beta)^{-3}}$ HuhLee_2003 https://doi.org/10.1063/1.1534091
Bakowies-2007 $E_{CBS}=\frac{E(Y)(X+1)^{-\beta}-E(X)(Y+1)^{-\beta}}{(X+1)^{-\beta}-(Y+1)^{-\beta}}$ Bkw_2007 https://doi.org/10.1063/1.2749516
OAN(C) $E_{CBS}=\frac{3^3E(Y)-\beta^3E(X)}{3^3-\beta^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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

packaging-extrapolation-1.0.3.tar.gz (24.8 kB view details)

Uploaded Source

Built Distribution

packaging_extrapolation-1.0.3-py3-none-any.whl (25.7 kB view details)

Uploaded Python 3

File details

Details for the file packaging-extrapolation-1.0.3.tar.gz.

File metadata

File hashes

Hashes for packaging-extrapolation-1.0.3.tar.gz
Algorithm Hash digest
SHA256 50575eae56c79c2678b15fd638565459fcde573d9ef4899aa2eb70b72faa107f
MD5 7ebafe922e1c07b0f813d619984fc662
BLAKE2b-256 1f6f132685b1e8a420aa827293209652d75b27f0cf639e816b9685df0927d511

See more details on using hashes here.

File details

Details for the file packaging_extrapolation-1.0.3-py3-none-any.whl.

File metadata

File hashes

Hashes for packaging_extrapolation-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 19f73dfebeafd5ccf3f31c9005a9935192234b58b4263a941d9970693068a8eb
MD5 d91d8f3a17dee91ea1bec1de832366b4
BLAKE2b-256 8a3b4791bc546a385d44f5ac007dbac5cc6dc7dd80366bc0f3bc26061e3271c7

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page