pyscf.semiempirical package¶
Submodules¶
pyscf.semiempirical.am1 module¶
pyscf.semiempirical.mindo3 module¶
MINDO/3
Ref: [1] R. C. Bingham, M. J. Dewar, D. H. Lo, J. Am. Chem. Soc., 97, 1285 (1975) [2] D. F. Lewis, Chem. Rev. 86, 1111 (1986).
-
class
pyscf.semiempirical.mindo3.
RMINDO3
(mol)¶ Bases:
pyscf.scf.hf.RHF
RHF-MINDO/3 for closed-shell systems
-
build
(mol=None)¶
-
density_fit
= None¶
-
energy_nuc
()¶
-
energy_tot
(dm=None, h1e=None, vhf=None)¶ Total Hartree-Fock energy, electronic part plus nuclear repulstion See
scf.hf.energy_elec()
for the electron partNote this function has side effects which cause mf.scf_summary updated.
-
get_hcore
(mol=None)¶
-
get_init_guess
(mol=None, key='minao')¶
-
get_jk
(mol=None, dm=None, hermi=1, with_j=True, with_k=True)¶ Compute J, K matrices for all input density matrices
- Args:
mol : an instance of
Mole
- dmndarray or list of ndarrays
A density matrix or a list of density matrices
- Kwargs:
- hermiint
Whether J, K matrix is hermitian
0 : not hermitian and not symmetric1 : hermitian or symmetric2 : anti-hermitian- vhfopt :
A class which holds precomputed quantities to optimize the computation of J, K matrices
- with_jboolean
Whether to compute J matrices
- with_kboolean
Whether to compute K matrices
- omegafloat
Parameter of range-seperated Coulomb operator: erf( omega * r12 ) / r12. If specified, integration are evaluated based on the long-range part of the range-seperated Coulomb operator.
- Returns:
Depending on the given dm, the function returns one J and one K matrix, or a list of J matrices and a list of K matrices, corresponding to the input density matrices.
Examples:
>>> from pyscf import gto, scf >>> from pyscf.scf import _vhf >>> mol = gto.M(atom='H 0 0 0; H 0 0 1.1') >>> dms = numpy.random.random((3,mol.nao_nr(),mol.nao_nr())) >>> j, k = scf.hf.get_jk(mol, dms, hermi=0) >>> print(j.shape) (3, 2, 2)
-
get_occ
(mo_energy=None, mo_coeff=None)¶ Label the occupancies for each orbital
- Kwargs:
- mo_energy1D ndarray
Obital energies
- mo_coeff2D ndarray
Obital coefficients
Examples:
>>> from pyscf import gto, scf >>> mol = gto.M(atom='H 0 0 0; F 0 0 1.1') >>> mf = scf.hf.SCF(mol) >>> energy = numpy.array([-10., -1., 1, -2., 0, -3]) >>> mf.get_occ(energy) array([2, 2, 0, 2, 2, 2])
-
get_ovlp
(mol=None)¶
-
nuc_grad_method
()¶ Hook to create object for analytical nuclear gradients.
-
reset
(mol=None)¶ Reset mol and relevant attributes associated to the old mol object
-
sfx2c1e
= None¶
-
x2c
= None¶
-
x2c1e
= None¶
-
-
class
pyscf.semiempirical.mindo3.
UMINDO3
(mol)¶ Bases:
pyscf.scf.uhf.UHF
UHF-MINDO/3 for open-shell systems
-
build
(mol=None)¶
-
density_fit
= None¶
-
energy_nuc
()¶
-
energy_tot
(dm=None, h1e=None, vhf=None)¶ Total Hartree-Fock energy, electronic part plus nuclear repulstion See
scf.hf.energy_elec()
for the electron partNote this function has side effects which cause mf.scf_summary updated.
-
get_hcore
(mol=None)¶
-
get_init_guess
(mol=None, key='minao')¶
-
get_jk
(mol=None, dm=None, hermi=1, with_j=True, with_k=True)¶ Compute J, K matrices for all input density matrices
- Args:
mol : an instance of
Mole
- dmndarray or list of ndarrays
A density matrix or a list of density matrices
- Kwargs:
- hermiint
Whether J, K matrix is hermitian
0 : not hermitian and not symmetric1 : hermitian or symmetric2 : anti-hermitian- vhfopt :
A class which holds precomputed quantities to optimize the computation of J, K matrices
- with_jboolean
Whether to compute J matrices
- with_kboolean
Whether to compute K matrices
- omegafloat
Parameter of range-seperated Coulomb operator: erf( omega * r12 ) / r12. If specified, integration are evaluated based on the long-range part of the range-seperated Coulomb operator.
- Returns:
Depending on the given dm, the function returns one J and one K matrix, or a list of J matrices and a list of K matrices, corresponding to the input density matrices.
Examples:
>>> from pyscf import gto, scf >>> from pyscf.scf import _vhf >>> mol = gto.M(atom='H 0 0 0; H 0 0 1.1') >>> dms = numpy.random.random((3,mol.nao_nr(),mol.nao_nr())) >>> j, k = scf.hf.get_jk(mol, dms, hermi=0) >>> print(j.shape) (3, 2, 2)
-
get_occ
(mo_energy=None, mo_coeff=None)¶ Label the occupancies for each orbital
- Kwargs:
- mo_energy1D ndarray
Obital energies
- mo_coeff2D ndarray
Obital coefficients
Examples:
>>> from pyscf import gto, scf >>> mol = gto.M(atom='H 0 0 0; F 0 0 1.1') >>> mf = scf.hf.SCF(mol) >>> energy = numpy.array([-10., -1., 1, -2., 0, -3]) >>> mf.get_occ(energy) array([2, 2, 0, 2, 2, 2])
-
get_ovlp
(mol=None)¶
-
nuc_grad_method
()¶ Hook to create object for analytical nuclear gradients.
-
sfx2c1e
= None¶
-
x2c
= None¶
-
x2c1e
= None¶
-
-
pyscf.semiempirical.mindo3.
energy_nuc
(mol)¶
-
pyscf.semiempirical.mindo3.
energy_tot
(mf, dm=None, h1e=None, vhf=None)¶
-
pyscf.semiempirical.mindo3.
get_hcore
(mol)¶ Core Hamiltonian
Examples:
>>> from pyscf import gto, scf >>> mol = gto.M(atom='H 0 0 0; H 0 0 1.1') >>> scf.hf.get_hcore(mol) array([[-0.93767904, -0.59316327], [-0.59316327, -0.93767904]])
-
pyscf.semiempirical.mindo3.
get_init_guess
(mol)¶ Average occupation density matrix
-
pyscf.semiempirical.mindo3.
get_jk
(mol, dm)¶ Compute J, K matrices for all input density matrices
- Args:
mol : an instance of
Mole
- dmndarray or list of ndarrays
A density matrix or a list of density matrices
- Kwargs:
- hermiint
Whether J, K matrix is hermitian
0 : not hermitian and not symmetric1 : hermitian or symmetric2 : anti-hermitian- vhfopt :
A class which holds precomputed quantities to optimize the computation of J, K matrices
- with_jboolean
Whether to compute J matrices
- with_kboolean
Whether to compute K matrices
- omegafloat
Parameter of range-seperated Coulomb operator: erf( omega * r12 ) / r12. If specified, integration are evaluated based on the long-range part of the range-seperated Coulomb operator.
- Returns:
Depending on the given dm, the function returns one J and one K matrix, or a list of J matrices and a list of K matrices, corresponding to the input density matrices.
Examples:
>>> from pyscf import gto, scf >>> from pyscf.scf import _vhf >>> mol = gto.M(atom='H 0 0 0; H 0 0 1.1') >>> dms = numpy.random.random((3,mol.nao_nr(),mol.nao_nr())) >>> j, k = scf.hf.get_jk(mol, dms, hermi=0) >>> print(j.shape) (3, 2, 2)
pyscf.semiempirical.mopac_param module¶
MINDO3.py: Dewar’s MINDO/3 Semiempirical Method
This program is part of the PyQuante quantum chemistry program suite.
Copyright (c) 2004, Richard P. Muller. All Rights Reserved.
PyQuante version 1.2 and later is covered by the modified BSD license. Please see the file LICENSE that is part of this distribution.
pyscf.semiempirical.rmindo3_grad module¶
-
pyscf.semiempirical.rmindo3_grad.
Grad
¶
-
class
pyscf.semiempirical.rmindo3_grad.
Gradients
(method)¶ Bases:
pyscf.grad.rhf.Gradients
-
get_hcore
= None¶
-
get_jk
(mol=None, dm=None, hermi=0)¶ J = ((-nabla i) j| kl) D_lk K = ((-nabla i) j| kl) D_jk
-
get_ovlp
(mol=None)¶
-
grad_elec
(mo_energy=None, mo_coeff=None, mo_occ=None, atmlst=None)¶ Electronic part of RHF/RKS gradients
- Args:
mf_grad : grad.rhf.Gradients or grad.rks.Gradients object
-
grad_nuc
(mol=None, atmlst=None)¶
-
hcore_generator
(mol=None)¶
-
-
pyscf.semiempirical.rmindo3_grad.
get_jk
(mol, dm)¶
-
pyscf.semiempirical.rmindo3_grad.
grad_nuc
(mol, atmlst=None)¶
-
pyscf.semiempirical.rmindo3_grad.
hcore_generator
(mf_grad, mol=None)¶
pyscf.semiempirical.umindo3_grad module¶
-
pyscf.semiempirical.umindo3_grad.
Grad
¶
-
class
pyscf.semiempirical.umindo3_grad.
Gradients
(method)¶ Bases:
pyscf.grad.uhf.Gradients
-
get_hcore
= None¶
-
get_jk
(mol=None, dm=None, hermi=0)¶ J = ((-nabla i) j| kl) D_lk K = ((-nabla i) j| kl) D_jk
-
get_ovlp
(mol=None)¶
-
grad_elec
(mo_energy=None, mo_coeff=None, mo_occ=None, atmlst=None)¶ Electronic part of UHF/UKS gradients
- Args:
mf_grad : grad.uhf.Gradients or grad.uks.Gradients object
-
grad_nuc
(mol=None, atmlst=None)¶
-
hcore_generator
(mol=None)¶
-