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 part

Note 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 symmetric
1 : hermitian or symmetric
2 : 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 part

Note 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 symmetric
1 : hermitian or symmetric
2 : 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 symmetric
1 : hermitian or symmetric
2 : 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

alias of pyscf.semiempirical.rmindo3_grad.Gradients

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

alias of pyscf.semiempirical.umindo3_grad.Gradients

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)

Module contents

pyscf.semiempirical.MINDO3(mol)