forte2.integrals.libcint_utils#

Module Contents#

forte2.integrals.libcint_utils.c_double_p#
forte2.integrals.libcint_utils.c_int_p#
forte2.integrals.libcint_utils.c_null_ptr#
forte2.integrals.libcint_utils.PLAIN = 0#
forte2.integrals.libcint_utils.HERMITIAN = 1#
forte2.integrals.libcint_utils.ANTIHERMI = 2#
forte2.integrals.libcint_utils.SYMMETRIC = 3#
forte2.integrals.libcint_utils.CHARGE_OF = 0#
forte2.integrals.libcint_utils.PTR_COORD = 1#
forte2.integrals.libcint_utils.NUC_MOD_OF = 2#
forte2.integrals.libcint_utils.PTR_ZETA = 3#
forte2.integrals.libcint_utils.PTR_FRAC_CHARGE = 4#
forte2.integrals.libcint_utils.PTR_RADIUS = 5#
forte2.integrals.libcint_utils.ATM_SLOTS = 6#
forte2.integrals.libcint_utils.ATOM_OF = 0#
forte2.integrals.libcint_utils.ANG_OF = 1#
forte2.integrals.libcint_utils.NPRIM_OF = 2#
forte2.integrals.libcint_utils.NCTR_OF = 3#
forte2.integrals.libcint_utils.RADI_POWER = 3#
forte2.integrals.libcint_utils.KAPPA_OF = 4#
forte2.integrals.libcint_utils.SO_TYPE_OF = 4#
forte2.integrals.libcint_utils.PTR_EXP = 5#
forte2.integrals.libcint_utils.PTR_COEFF = 6#
forte2.integrals.libcint_utils.BAS_SLOTS = 8#
forte2.integrals.libcint_utils.PTR_EXPCUTOFF = 0#
forte2.integrals.libcint_utils.PTR_COMMON_ORIG = 1#
forte2.integrals.libcint_utils.PTR_RINV_ORIG = 4#
forte2.integrals.libcint_utils.PTR_RINV_ZETA = 7#
forte2.integrals.libcint_utils.PTR_RANGE_OMEGA = 8#
forte2.integrals.libcint_utils.PTR_F12_ZETA = 9#
forte2.integrals.libcint_utils.PTR_GTG_ZETA = 10#
forte2.integrals.libcint_utils.NGRIDS = 11#
forte2.integrals.libcint_utils.PTR_GRIDS = 12#
forte2.integrals.libcint_utils.AS_RINV_ORIG_ATOM = 17#
forte2.integrals.libcint_utils.AS_ECPBAS_OFFSET = 18#
forte2.integrals.libcint_utils.AS_NECPBAS = 19#
forte2.integrals.libcint_utils.PTR_ENV_START = 20#
forte2.integrals.libcint_utils.NUC_POINT = 1#
forte2.integrals.libcint_utils.NUC_GAUSS = 2#
forte2.integrals.libcint_utils.NUC_FRAC_CHARGE = 3#
forte2.integrals.libcint_utils.NUC_ECP = 4#
forte2.integrals.libcint_utils.NORMALIZE_GTO = True#
forte2.integrals.libcint_utils.make_env(atoms, basis, pre_env=[], nucmod={})#

Generate the input arguments for libcint library based on internal format Mole._atom and Mole._basis

forte2.integrals.libcint_utils.make_atm_env(atom, ptr=0, nuclear_model=NUC_POINT, nucprop={})#

Convert the internal format Mole._atom to the format required by libcint integrals

forte2.integrals.libcint_utils.make_bas_env(basis_add, atom_id=0, ptr=0)#

Convert Mole.basis to the argument bas for libcint integrals

forte2.integrals.libcint_utils.gaussian_int(n, alpha)#

int_0^inf x^n exp(-alpha x^2) dx

forte2.integrals.libcint_utils.dyall_nuc_mod(nuc_charge, nucprop={})#

Generate the nuclear charge distribution parameter zeta rho(r) = nuc_charge * Norm * exp(-zeta * r^2)

Ref. L. Visscher and K. Dyall, At. Data Nucl. Data Tables, 67, 207 (1997)

forte2.integrals.libcint_utils.gto_norm(l, expnt)#

Normalized factor for GTO radial part \(g=r^l e^{-\alpha r^2}\)

\[\frac{1}{\sqrt{\int g^2 r^2 dr}} = \sqrt{\frac{2^{2l+3} (l+1)! (2a)^{l+1.5}}{(2l+2)!\sqrt{\pi}}}\]

Ref: H. B. Schlegel and M. J. Frisch, Int. J. Quant. Chem., 54(1995), 83-87.

Args:
l (int):

angular momentum

expnt :

exponent \(\alpha\)

Returns:

normalization factor

Examples:

>>> print(gto_norm(0, 1))
2.5264751109842591
forte2.integrals.libcint_utils.len_spinor(l, kappa)#

The number of spinor associated with given angular momentum and kappa. If kappa is 0, return 4l+2

forte2.integrals.libcint_utils.flatten(lst)#

flatten nested lists x[0] + x[1] + x[2] + …

Examples:

>>> flatten([[0, 2], [1], [[9, 8, 7]]])
[0, 2, 1, [9, 8, 7]]
forte2.integrals.libcint_utils.conc_env(atm1, bas1, env1, atm2, bas2, env2)#

Concatenate two sets of libcint input arguments for cross integrals

forte2.integrals.libcint_utils.basis_to_cint_envs(system, basis, common_origin=None)#

Convert a Forte2 Basis object to libcint atm, bas, env objects.

Parameters:
systemforte2.System

The system object containing the geometry and basis set.

basisforte2.Basis

The basis object to be converted.