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.2.tar.gz (13.8 kB view details)

Uploaded Source

Built Distribution

packaging_extrapolation-1.0.2-py3-none-any.whl (12.8 kB view details)

Uploaded Python 3

File details

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

File metadata

File hashes

Hashes for packaging-extrapolation-1.0.2.tar.gz
Algorithm Hash digest
SHA256 4e87086b8cff6f8ce11ee07e938d778034c4d1fc09ab3333b8c4bc71e4eb9902
MD5 c0a1c01dcedbe6f55b098c09eb1e75a5
BLAKE2b-256 cc7d87f6d6264dfbc5c9e962d28be70d9269390cbb3a66ed630f5a5d1513f320

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for packaging_extrapolation-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 2f0f234173c841ba608c831c9a42b928ba5e395eb9ab5df1246c0ec809f01239
MD5 ed7a912c7bf2eea897122af3bb548008
BLAKE2b-256 d1288899d6be89e11104df473e9a390ad93c860570afbc78b27f3c8eed340580

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