# Complete Basis Set

Code author: Lori A. Burns, Daniel G. A. Smith and Peter Kraus

Section author: Lori A. Burns and Peter Kraus

The `psi4.cbs()` function described below is powerful but complicated, requiring many options. For most common calculations, a shorthand can be accessed directly though `psi4.energy()`, `psi4.gradient()`, etc. For example, a MP2 single-point DT extrapolation can be accessed through the first item below more conveniently than the equivalent second or third items.

- `energy('mp2/cc-pv[dt]z')`
- `energy(cbs, corl_wfn='mp2', corl_basis='cc-pv[dt]z')`
- `energy(cbs, cbs_metadata=[{"wfn": "hf", "basis": "cc-pvtz"}, {"wfn": "mp2", "basis": "cc-pv[dt]z"}])`

A CCSD(T) DT coupled-cluster correction atop a TQ MP2 extrapolation geometry optimization can also be accessed through the first item below more conveniently than the equivalent second and third items.

- `optimize('mp2/cc-pv[tq]z + D:ccsd(t)/cc-pvdz')`
- `optimize(cbs, corl_wfn='mp2', corl_basis='cc-pv[tq]z', delta_wfn='ccsd(t)', delta_basis='cc-pvdz')`
- `optimize(cbs, cbs_metadata=[{"wfn": "hf", "basis": "cc-pvqz"}, {"wfn": "mp2", "basis": "cc-pv[tq]z"}, {"wfn": "ccsd(t)", "basis": "cc-pvdz"}])`

Many examples can be found at cbs-xtpl-energy, cbs-xtpl-gradient, cbs-xtpl-opt, cbs-xtpl-freq, cbs-xtpl-func, cbs-xtpl-wrapper, cbs-xtpl-dict.

`psi4.``cbs`(name[, scf_basis, scf_scheme, corl_wfn, corl_basis, corl_scheme, delta_wfn, delta_wfn_lesser, delta_basis, delta_scheme, delta2_wfn, delta2_wfn_lesser, delta2_basis, delta2_scheme, cbs_metadata])

  Function to define a multistage energy method from combinations of basis set extrapolations and delta corrections and condense the components into a minimum number of calculations.

  Aliases: | complete_basis_set()
  Returns: | (float) – Total electronic energy in Hartrees
  PSI variables: |

  `CBS TOTAL ENERGY` `CBS REFERENCE ENERGY` `CBS CORRELATION ENERGY` `CURRENT ENERGY` `CURRENT REFERENCE ENERGY` `CURRENT CORRELATION ENERGY`

  Caution

  Some features are not yet implemented. Buy a developer a coffee.

  - No way to tell function to boost fitting basis size for all calculations.
  - Need to add more extrapolation schemes

  As represented in the equation below, a CBS energy method is defined in several sequential stages (scf, corl, delta1, delta2, … ) covering treatment of the reference total energy, the correlation energy, a delta correction to the correlation energy, and a second delta correction, etc.. Each is activated by its stage_wfn keyword, or as a field in the ``cbs_metadata`` list, and is only allowed if all preceding stages are active.

  - Energy Methods

      The presence of a stage_wfn keyword is the indicator to incorporate (and check for stage_basis and stage_scheme keywords) and compute that stage in defining the CBS energy.

      The cbs() function requires, at a minimum, `name='scf'` and `scf_basis` keywords to be specified for reference-step only jobs and `name` and `corl_basis` keywords for correlated jobs.

      The following energy methods have been set up for cbs().

      scf hf mp2 mp2.5 mp3 mp4(sdq) mp4 mpn | omp2 omp2.5 omp3 olccd lccd lccsd cepa(0) cepa(1) | cepa(3) acpf aqcc qcisd cc2 ccsd fno-ccsd bccd | cc3 qcisd(t) ccsd(t) fno-ccsd(t) bccd(t) cisd cisdt | cisdtq cin fci mrccsd mrccsd(t) mrccsdt mrccsdt(q)

  Parameters: | name (str) – `'scf'` || `'ccsd'` || etc. First argument, usually unlabeled. Indicates the computational method for the correlation energy, unless only reference step to be performed, in which case should be `'scf'`. Overruled if stage_wfn keywords supplied. scf_wfn (str) – \(\Rightarrow\) `'scf'` \(\Leftarrow\) || `'c4-scf'` || etc. Indicates the energy method for which the reference energy is to be obtained. Generally unnecessary, as ‘scf’ is the scf in PSI4 but can be used to direct lone scf components to run in PSI4 or Cfour in a mixed-program composite method. corl_wfn (str) – `'mp2'` || `'ccsd(t)'` || etc. Indicates the energy method for which the correlation energy is to be obtained. Can also be specified with `name` or as the unlabeled first argument to the function. delta_wfn (str) – `'ccsd'` || `'ccsd(t)'` || etc. Indicates the (superior) energy method for which a delta correction to the correlation energy is to be obtained. delta_wfn_lesser (str) – \(\Rightarrow\) `corl_wfn` \(\Leftarrow\) || `'mp2'` || etc. Indicates the inferior energy method for which a delta correction to the correlation energy is to be obtained. delta2_wfn (str) – `'ccsd'` || `'ccsd(t)'` || etc. Indicates the (superior) energy method for which a second delta correction to the correlation energy is to be obtained. delta2_wfn_lesser (str) – \(\Rightarrow\) `delta_wfn` \(\Leftarrow\) || `'ccsd(t)'` || etc. Indicates the inferior energy method for which a second delta correction to the correlation energy is to be obtained.

  - Basis Sets

      Currently, the basis set set through `set` commands have no influence on a cbs calculation.

  Parameters: | scf_basis (basis string) – \(\Rightarrow\) `corl_basis` \(\Leftarrow\) || `'cc-pV[TQ]Z'` || `'jun-cc-pv[tq5]z'` || `'6-31G*'` || etc. Indicates the sequence of basis sets employed for the reference energy. If any correlation method is specified, `scf_basis` can default to `corl_basis`. corl_basis (basis string) – `'cc-pV[TQ]Z'` || `'jun-cc-pv[tq5]z'` || `'6-31G*'` || etc. Indicates the sequence of basis sets employed for the correlation energy. delta_basis (basis string) – `'cc-pV[TQ]Z'` || `'jun-cc-pv[tq5]z'` || `'6-31G*'` || etc. Indicates the sequence of basis sets employed for the delta correction to the correlation energy. delta2_basis (basis string) – `'cc-pV[TQ]Z'` || `'jun-cc-pv[tq5]z'` || `'6-31G*'` || etc. Indicates the sequence of basis sets employed for the second delta correction to the correlation energy.

  - Schemes

      Transformations of the energy through basis set extrapolation for each stage of the CBS definition. A complaint is generated if number of basis sets in stage_basis does not exactly satisfy requirements of stage_scheme. An exception is the default, `'xtpl_highest_1'`, which uses the best basis set available. See sec:cbs_xtpl for all available schemes.

  - Parameters: | scf_scheme (function) – \(\Rightarrow\) `xtpl_highest_1` \(\Leftarrow\) || `scf_xtpl_helgaker_3` || etc. Indicates the basis set extrapolation scheme to be applied to the reference energy. Defaults to `scf_xtpl_helgaker_3()` if three valid basis sets present in `scf_basis`, `scf_xtpl_helgaker_2()` if two valid basis sets present in `scf_basis`, and `xtpl_highest_1()` otherwise.
    xtpl_highest_1 scf_xtpl_helgaker_3 scf_xtpl_helgaker_2 scf_xtpl_truhlar_2 scf_xtpl_karton_2
  - corl_scheme (function) – \(\Rightarrow\) `xtpl_highest_1` \(\Leftarrow\) || `corl_xtpl_helgaker_2` || etc. Indicates the basis set extrapolation scheme to be applied to the correlation energy. Defaults to `corl_xtpl_helgaker_2()` if two valid basis sets present in `corl_basis` and `xtpl_highest_1()` otherwise.
    xtpl_highest_1 corl_xtpl_helgaker_2
  - delta_scheme (function) – \(\Rightarrow\) `xtpl_highest_1` \(\Leftarrow\) || `corl_xtpl_helgaker_2` || etc. Indicates the basis set extrapolation scheme to be applied to the delta correction to the correlation energy. Defaults to `corl_xtpl_helgaker_2()` if two valid basis sets present in `delta_basis` and `xtpl_highest_1()` otherwise.
    xtpl_highest_1 corl_xtpl_helgaker_2
  - delta2_scheme (function) – \(\Rightarrow\) `xtpl_highest_1` \(\Leftarrow\) || `corl_xtpl_helgaker_2` || etc. Indicates the basis set extrapolation scheme to be applied to the second delta correction to the correlation energy. Defaults to `corl_xtpl_helgaker_2()` if two valid basis sets present in `delta2_basis` and `xtpl_highest_1()` otherwise.
    xtpl_highest_1 corl_xtpl_helgaker_2

  - Combined interface

  - Others

  Parameters: | molecule (molecule) – `h2o` || etc. The target molecule, if not the last molecule defined.
  Examples: |

      >>> # [1] replicates with cbs() the simple model chemistry scf/cc-pVDZ: set basis cc-pVDZ energy('scf')
      >>> energy(cbs, scf_wfn='scf', scf_basis='cc-pVDZ')

      >>> # [2] replicates with cbs() the simple model chemistry mp2/jun-cc-pVDZ: set basis jun-cc-pVDZ energy('mp2')
      >>> energy(cbs, corl_wfn='mp2', corl_basis='jun-cc-pVDZ')

      >>> # [3] DTQ-zeta extrapolated scf reference energy
      >>> energy(cbs, scf_wfn='scf', scf_basis='cc-pV[DTQ]Z', scf_scheme=scf_xtpl_helgaker_3)

      >>> # [4] DT-zeta extrapolated mp2 correlation energy atop a T-zeta reference
      >>> energy(cbs, corl_wfn='mp2', corl_basis='cc-pv[dt]z', corl_scheme=corl_xtpl_helgaker_2)

      >>> # [5] a DT-zeta extrapolated coupled-cluster correction atop a TQ-zeta extrapolated mp2 correlation energy atop a Q-zeta reference (both equivalent)
      >>> energy(cbs, corl_wfn='mp2', corl_basis='aug-cc-pv[tq]z', delta_wfn='ccsd(t)', delta_basis='aug-cc-pv[dt]z')
      >>> energy(cbs, corl_wfn='mp2', corl_basis='aug-cc-pv[tq]z', corl_scheme=corl_xtpl_helgaker_2, delta_wfn='ccsd(t)', delta_basis='aug-cc-pv[dt]z', delta_scheme=corl_xtpl_helgaker_2)

      >>> # [6] a D-zeta ccsd(t) correction atop a DT-zeta extrapolated ccsd cluster correction atop a TQ-zeta extrapolated mp2 correlation energy atop a Q-zeta reference
      >>> energy(cbs, corl_wfn='mp2', corl_basis='aug-cc-pv[tq]z', corl_scheme=corl_xtpl_helgaker_2, delta_wfn='ccsd', delta_basis='aug-cc-pv[dt]z', delta_scheme=corl_xtpl_helgaker_2, delta2_wfn='ccsd(t)', delta2_wfn_lesser='ccsd', delta2_basis='aug-cc-pvdz')

      >>> # [7] a Q5-zeta MP2 calculation, corrected by CCSD(T) at the TQ-zeta extrapolated level, and all-electron CCSD(T) correlation at T-zeta level
      >>> energy(cbs, cbs_metadata=[{"wfn": "hf", "basis": "cc-pv5z"}, {"wfn": "mp2", "basis": "cc-pv[q5]z"}, {"wfn": "ccsd(t)", "basis": "cc-pv[tq]z"}, {"wfn": "ccsd(t)", "basis": "cc-pvtz", "options": {"freeze_core": "False"}}])

      >>> # [8] cbs() coupled with database()
      >>> TODO database('mp2', 'BASIC', subset=['h2o','nh3'], symm='on', func=cbs, corl_basis='cc-pV[tq]z', corl_scheme=corl_xtpl_helgaker_2, delta_wfn='ccsd(t)', delta_basis='sto-3g')

      >>> # [9] cbs() coupled with optimize()
      >>> TODO optimize('mp2', corl_basis='cc-pV[DT]Z', corl_scheme=corl_xtpl_helgaker_2, func=cbs)

Note

As of October 2018, only two explicit ``deltaN_[wfn,basis,scheme]`` sets of options are active; if more delta functions are required, use the ``cbs_metadata`` interface. Also, temporarily extrapolations are performed on differences of target and scf total energies, rather than on correlation energies directly. This doesn’t affect the extrapolated values of the particular formulas defined here (though it does affect the betas, which are commented out), but it is sloppy and temporary and could affect any user-defined corl extrapolations.

## Output

At the beginning of a cbs() job is printed a listing of the individual energy calculations which will be performed. The output snippet below is from the example job [2] above. It shows first each model chemistry needed to compute the aggregate model chemistry requested through cbs(). Then, since, for example, an `energy('ccsd(t)')` yields CCSD(T), CCSD, MP2, and SCF energy values, the wrapper condenses this task list into the second list of minimum number of calculations which will actually be run.

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    Naive listing of computations required.
            scf / aug-cc-pvqz              for  SCF TOTAL ENERGY
            mp2 / aug-cc-pvtz              for  MP2 CORRELATION ENERGY
            mp2 / aug-cc-pvqz              for  MP2 CORRELATION ENERGY
        ccsd(t) / aug-cc-pvdz              for  CCSD(T) CORRELATION ENERGY
        ccsd(t) / aug-cc-pvtz              for  CCSD(T) CORRELATION ENERGY
            mp2 / aug-cc-pvdz              for  MP2 CORRELATION ENERGY
            mp2 / aug-cc-pvtz              for  MP2 CORRELATION ENERGY

    Enlightened listing of computations required.
            mp2 / aug-cc-pvqz              for  MP2 CORRELATION ENERGY
        ccsd(t) / aug-cc-pvdz              for  CCSD(T) CORRELATION ENERGY
        ccsd(t) / aug-cc-pvtz              for  CCSD(T) CORRELATION ENERGY

At the end of a cbs() job is printed a summary section like the one below. First, in the components section, are listed the results for each model chemistry available, whether required for the cbs job (*) or not. Next, in the stages section, are listed the results for each extrapolation. The energies of this section must be dotted with the weightings in column Wt to get the total cbs energy. Finally, in the CBS section, are listed the results for each stage of the cbs procedure. The stage energies of this section sum outright to the total cbs energy.

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    ==> Components <==

    ----------------------------------------------------------------------------------
                   Method / Basis            Rqd   Energy [H]   Variable
    ----------------------------------------------------------------------------------
                      scf / aug-cc-pvqz        *  -1.11916375   SCF TOTAL ENERGY
                      mp2 / aug-cc-pvqz        *  -0.03407997   MP2 CORRELATION ENERGY
                      scf / aug-cc-pvdz           -1.11662884   SCF TOTAL ENERGY
                      mp2 / aug-cc-pvdz        *  -0.02881480   MP2 CORRELATION ENERGY
                  ccsd(t) / aug-cc-pvdz        *  -0.03893812   CCSD(T) CORRELATION ENERGY
                     ccsd / aug-cc-pvdz           -0.03893812   CCSD CORRELATION ENERGY
                      scf / aug-cc-pvtz           -1.11881134   SCF TOTAL ENERGY
                      mp2 / aug-cc-pvtz        *  -0.03288936   MP2 CORRELATION ENERGY
                  ccsd(t) / aug-cc-pvtz        *  -0.04201004   CCSD(T) CORRELATION ENERGY
                     ccsd / aug-cc-pvtz           -0.04201004   CCSD CORRELATION ENERGY
    ----------------------------------------------------------------------------------

    ==> Stages <==

    ----------------------------------------------------------------------------------
     Stage         Method / Basis             Wt   Energy [H]   Scheme
    ----------------------------------------------------------------------------------
       scf            scf / aug-cc-pvqz        1  -1.11916375   highest_1
      corl            mp2 / aug-cc-pv[tq]z     1  -0.03494879   corl_xtpl_helgaker_2
     delta        ccsd(t) / aug-cc-pv[dt]z     1  -0.04330347   corl_xtpl_helgaker_2
     delta            mp2 / aug-cc-pv[dt]z    -1  -0.03460497   corl_xtpl_helgaker_2
    ----------------------------------------------------------------------------------

    ==> CBS <==

    ----------------------------------------------------------------------------------
     Stage         Method / Basis                  Energy [H]   Scheme
    ----------------------------------------------------------------------------------
       scf            scf / aug-cc-pvqz           -1.11916375   highest_1
      corl            mp2 / aug-cc-pv[tq]z        -0.03494879   corl_xtpl_helgaker_2
     delta  ccsd(t) - mp2 / aug-cc-pv[dt]z        -0.00869851   corl_xtpl_helgaker_2
     total            CBS                         -1.16281105
    ----------------------------------------------------------------------------------

## Extrapolation Schemes

`psi4.driver.driver_cbs.``xtpl_highest_1`(functionname, zHI, valueHI, verbose=True, **kwargs)

  Scheme for total or correlation energies with a single basis or the highest zeta-level among an array of bases. Used by `cbs()`.

  Parameters: | functionname (string) – Name of the CBS component. zHI (int) – Zeta-level, only used for printing. valueHI (float) – Value of the CBS component.
  Returns: | Returns \(E_{total}^{\infty}\) which is equal to valueHI.
  Return type: | float

  Notes

  \[E_{total}^X = E_{total}^{\infty}\]

`psi4.driver.driver_cbs.``scf_xtpl_helgaker_2`(functionname, zLO, valueLO, zHI, valueHI, verbose=True, alpha=None)

  Extrapolation scheme using exponential form for reference energies with two adjacent zeta-level bases. Used by `cbs()`.

  Parameters: | functionname (string) – Name of the CBS component. zLO (int) – Lower zeta level. valueLO (float) – Lower value used for extrapolation. zHI (int) – Higher zeta level. Should be equal to zLO + 1. valueHI (float) – Higher value used for extrapolation. alpha (float, optional) – Overrides the default \(\alpha = 1.63\)
  Returns: | Returns \(E_{total}^{\infty}\), see below.
  Return type: | float

  Notes

  The extrapolation is calculated according to [1]: \(E_{total}^X = E_{total}^{\infty} + \beta e^{-\alpha X}, \alpha = 1.63\)

  References

  [1] | Halkier, Helgaker, Jorgensen, Klopper, & Olsen, Chem. Phys. Lett. 302 (1999) 437-446, DOI: 10.1016/S0009-2614(99)00179-7

`psi4.driver.driver_cbs.``scf_xtpl_truhlar_2`(functionname, zLO, valueLO, zHI, valueHI, verbose=True, alpha=None)

  Extrapolation scheme using power form for reference energies with two adjacent zeta-level bases. Used by `cbs()`.

  Parameters: | functionname (string) – Name of the CBS component. zLO (int) – Lower zeta level. valueLO (float) – Lower value used for extrapolation. zHI (int) – Higher zeta level. Should be equal to zLO + 1. valueHI (float) – Higher value used for extrapolation. alpha (float, optional) – Overrides the default \(\alpha = 3.4\)
  Returns: | Returns \(E_{total}^{\infty}\), see below.
  Return type: | float

  Notes

  The extrapolation is calculated according to [2]: \(E_{total}^X = E_{total}^{\infty} + \beta X^{-\alpha}, \alpha = 3.4\)

  References

  [2] | Truhlar, Chem. Phys. Lett. 294 (1998) 45-48, DOI: 10.1016/S0009-2614(98)00866-5

`psi4.driver.driver_cbs.``scf_xtpl_karton_2`(functionname, zLO, valueLO, zHI, valueHI, verbose=True, alpha=None)

  Extrapolation scheme using root-power form for reference energies with two adjacent zeta-level bases. Used by `cbs()`.

  Parameters: | functionname (str) – Name of the CBS component. zLO (int) – Lower zeta level. valueLO (float) – Lower value used for extrapolation. zHI (int) – Higher zeta level. Should be equal to zLO + 1. valueHI (float) – Higher value used for extrapolation. alpha (float, optional) – Overrides the default \(\alpha = 6.3\)
  Returns: | Returns \(E_{total}^{\infty}\), see below.
  Return type: | float

  Notes

  The extrapolation is calculated according to [3]: \(E_{total}^X = E_{total}^{\infty} + \beta e^{-\alpha\sqrt{X}}, \alpha = 6.3\)

  References

  [3] | Karton, Martin, Theor. Chem. Acc. 115 (2006) 330-333, DOI: 10.1007/s00214-005-0028-6

`psi4.driver.driver_cbs.``scf_xtpl_helgaker_3`(functionname, zLO, valueLO, zMD, valueMD, zHI, valueHI, verbose=True, alpha=None)

  Extrapolation scheme for reference energies with three adjacent zeta-level bases. Used by `cbs()`.

  Parameters: | functionname (str) – Name of the CBS component. zLO (int) – Lower zeta level. valueLO (float) – Lower value used for extrapolation. zMD (int) – Intermediate zeta level. Should be equal to zLO + 1. valueMD (float) – Intermediate value used for extrapolation. zHI (int) – Higher zeta level. Should be equal to zLO + 2. valueHI (float) – Higher value used for extrapolation. alpha (float, optional) – Not used.
  Returns: | Returns \(E_{total}^{\infty}\), see below.
  Return type: | float

  Notes

  The extrapolation is calculated according to [4]: \(E_{total}^X = E_{total}^{\infty} + \beta e^{-\alpha X}, \alpha = 3.0\)

  References

  [4] | Halkier, Helgaker, Jorgensen, Klopper, & Olsen, Chem. Phys. Lett. 302 (1999) 437-446, DOI: 10.1016/S0009-2614(99)00179-7

`psi4.driver.driver_cbs.``corl_xtpl_helgaker_2`(functionname, zLO, valueLO, zHI, valueHI, verbose=True, alpha=None)

  Extrapolation scheme for correlation energies with two adjacent zeta-level bases. Used by `cbs()`.

  Parameters: | functionname (str) – Name of the CBS component. zLO (int) – Lower zeta level. valueLO (float) – Lower value used for extrapolation. zHI (int) – Higher zeta level. Should be equal to zLO + 1. valueHI (float) – Higher value used for extrapolation. alpha (float, optional) – Overrides the default \(\alpha = 3.0\)
  Returns: | Returns \(E_{total}^{\infty}\), see below.
  Return type: | float

  Notes

  The extrapolation is calculated according to [5]: \(E_{corl}^X = E_{corl}^{\infty} + \beta X^{-alpha}\)

  References

  [5] | Halkier, Helgaker, Jorgensen, Klopper, Koch, Olsen, & Wilson, Chem. Phys. Lett. 286 (1998) 243-252, DOI: 10.1016/S0009-2614(99)00179-7

`psi4.driver.driver_cbs.``_get_default_xtpl`(nbasis, xtpl_type)

  A helper function to determine default extrapolation type.

  Parameters: | nbasis (int) – Number of basis sets xtpl_type ({'scf', 'corl'}) – Extrapolation type: ‘scf’ for the total energy, ‘corl’ for just the correlation component.
  Returns: | Extrapolation function to be used.
  Return type: | function

## Aliases

When a particular composite method or its functional form is going to be reused often, it is convenient to define an alias to it. A convenient place for such Python code to reside is in psi4/psi4/driver/aliases.py (source location) or `psi4/lib/psi4/driver/aliases.py` (installed location). No recompilation is necessary after defining an alias. Some existing examples are below.

`psi4.driver.aliases.``sherrill_gold_standard`(func, label, **kwargs)

  Function to call the quantum chemical method known as ‘Gold Standard’ in the Sherrill group. Uses `complete_basis_set()` to evaluate the following expression. Two-point extrapolation of the correlation energy performed according to `corl_xtpl_helgaker_2()`.

  \[E_{total}^{\text{Au\_std}} = E_{total,\; \text{SCF}}^{\text{aug-cc-pVQZ}} \; + E_{corl,\; \text{MP2}}^{\text{aug-cc-pV[TQ]Z}} \; + \delta_{\text{MP2}}^{\text{CCSD(T)}}\big\vert_{\text{aug-cc-pVTZ}}\]

      >>> # [1] single-point energy by this composite method
      >>> energy('sherrill_gold_standard')

      >>> # [2] finite-difference geometry optimization
      >>> optimize('sherrill_gold_standard')

      >>> # [3] finite-difference geometry optimization, overwriting some pre-defined sherrill_gold_standard options
      >>> optimize('sherrill_gold_standard', corl_basis='cc-pV[DT]Z', delta_basis='3-21g')

`psi4.driver.aliases.``allen_focal_point`(func, label, **kwargs)

  Function to call Wes Allen-style Focal Point Analysis. JCP 127 014306. Uses `complete_basis_set()` to evaluate the following expression. SCF employs a three-point extrapolation according to `scf_xtpl_helgaker_3()`. MP2, CCSD, and CCSD(T) employ two-point extrapolation performed according to `corl_xtpl_helgaker_2()`. CCSDT and CCSDT(Q) are plain deltas. This wrapper requires Kallay’s MRCC code.

  \[E_{total}^{\text{FPA}} = E_{total,\; \text{SCF}}^{\text{cc-pV[Q56]Z}} \; + E_{corl,\; \text{MP2}}^{\text{cc-pV[56]Z}} \; + \delta_{\text{MP2}}^{\text{CCSD}}\big\vert_{\text{cc-pV[56]Z}} \; + \delta_{\text{CCSD}}^{\text{CCSD(T)}}\big\vert_{\text{cc-pV[56]Z}} \; + \delta_{\text{CCSD(T)}}^{\text{CCSDT}}\big\vert_{\text{cc-pVTZ}} \; + \delta_{\text{CCSDT}}^{\text{CCSDT(Q)}}\big\vert_{\text{cc-pVDZ}}\]

      >>> # [1] single-point energy by this composite method
      >>> energy('allen_focal_point')

      >>> # [2] finite-difference geometry optimization embarrasingly parallel
      >>> optimize('allen_focal_point', mode='sow')