pyscf.eph package#

Submodules#

pyscf.eph.eph_fd module#

electron-phonon matrix from finite difference

pyscf.eph.eph_fd.gen_moles(mol, disp)[source]#

From the given equilibrium molecule, generate 3N molecules with a shift on + displacement(mol_a) and - displacement(mol_s) on each Cartesian coordinates

pyscf.eph.eph_fd.get_mode(mf, cutoff_frequency=80, keep_imag_frequency=False)[source]#
pyscf.eph.eph_fd.get_vmat(mf, mfset, disp)[source]#
pyscf.eph.eph_fd.kernel(mf, disp=0.0001, mo_rep=False, cutoff_frequency=80, keep_imag_frequency=False)[source]#
pyscf.eph.eph_fd.run_mfs(mf, mols_a, mols_b)[source]#

pyscf.eph.rhf module#

Analytical electron-phonon matrix for restricted hartree fock

class pyscf.eph.rhf.EPH(scf_method, cutoff_frequency=80, keep_imag_frequency=False)[source]#

Bases: Hessian

EPH for restricted Hartree Fock

Attributes:
cutoff_frequencyfloat or int

cutoff frequency in cm-1. Default is 80

keep_imag_frequencybool

Whether to keep imaginary frequencies in the output. Default is False

Saved results

omeganumpy.ndarray

Vibrational frequencies in au.

vecnumpy.ndarray

Polarization vectors of the vibration modes

ephnumpy.ndarray

Electron phonon matrix eph[j,a,b] (j in nmodes, a,b in norbs)

get_eph(mo1, omega, vec, mo_rep)#
get_mode(mol=None, de=None)#
kernel(mo_energy=None, mo_coeff=None, mo_occ=None, mo_rep=False)#

Kernel function is the main driver of a method. Every method should define the kernel function as the entry of the calculation. Note the return value of kernel function is not strictly defined. It can be anything related to the method (such as the energy, the wave-function, the DFT mesh grids etc.).

vnuc_generator(mol)#
pyscf.eph.rhf.get_eph(ephobj, mo1, omega, vec, mo_rep)[source]#
pyscf.eph.rhf.get_mode(ephobj, mol=None, de=None)[source]#
pyscf.eph.rhf.kernel(ephobj, mo_energy=None, mo_coeff=None, mo_occ=None, mo_rep=False)[source]#
pyscf.eph.rhf.rhf_deriv_generator(mf, mo_coeff, mo_occ)[source]#
pyscf.eph.rhf.solve_hmat(mol, hmat, cutoff_frequency=80, keep_imag_frequency=False)[source]#
pyscf.eph.rhf.vnuc_generator(ephobj, mol)[source]#

pyscf.eph.rks module#

Analytical electron-phonon matrix for restricted kohm sham

class pyscf.eph.rks.EPH(scf_method, cutoff_frequency=80, keep_imag_frequency=False)[source]#

Bases: Hessian

EPH for restricted DFT

Attributes:
cutoff_frequencyfloat or int

cutoff frequency in cm-1. Default is 80

keep_imag_frequencybool

Whether to keep imaginary frequencies in the output. Default is False

Saved results

omeganumpy.ndarray

Vibrational frequencies in au.

vecnumpy.ndarray

Polarization vectors of the vibration modes

ephnumpy.ndarray

Electron phonon matrix eph[j,a,b] (j in nmodes, a,b in norbs)

get_eph(mo1, omega, vec, mo_rep)#
get_mode(mol=None, de=None)#
kernel(mo_energy=None, mo_coeff=None, mo_occ=None, mo_rep=False)#

Kernel function is the main driver of a method. Every method should define the kernel function as the entry of the calculation. Note the return value of kernel function is not strictly defined. It can be anything related to the method (such as the energy, the wave-function, the DFT mesh grids etc.).

vnuc_generator(mol)#
pyscf.eph.rks.get_eph(ephobj, mo1, omega, vec, mo_rep)[source]#

pyscf.eph.uhf module#

Analytical electron-phonon matrix for unrestricted hartree fock

class pyscf.eph.uhf.EPH(scf_method, cutoff_frequency=80, keep_imag_frequency=False)[source]#

Bases: Hessian

EPH for unrestricted Hartree Fock

Attributes:
cutoff_frequencyfloat or int

cutoff frequency in cm-1. Default is 80

keep_imag_frequencybool

Whether to keep imaginary frequencies in the output. Default is False

Saved results

omeganumpy.ndarray

Vibrational frequencies in au.

vecnumpy.ndarray

Polarization vectors of the vibration modes

ephnumpy.ndarray

Electron phonon matrix eph[spin,j,a,b] (j in nmodes, a,b in norbs)

get_eph(mo1, omega, vec, mo_rep)#
get_mode(mol=None, de=None)#
kernel(mo_energy=None, mo_coeff=None, mo_occ=None, mo_rep=False)#

Kernel function is the main driver of a method. Every method should define the kernel function as the entry of the calculation. Note the return value of kernel function is not strictly defined. It can be anything related to the method (such as the energy, the wave-function, the DFT mesh grids etc.).

vnuc_generator(mol)#
pyscf.eph.uhf.get_eph(ephobj, mo1, omega, vec, mo_rep)[source]#
pyscf.eph.uhf.uhf_deriv_generator(mf, mo_coeff, mo_occ)[source]#

pyscf.eph.uks module#

Analytical electron-phonon matrix for unrestricted kohn sham

class pyscf.eph.uks.EPH(scf_method, cutoff_frequency=80, keep_imag_frequency=False)[source]#

Bases: Hessian

EPH for unrestricted DFT

Attributes:
cutoff_frequencyfloat or int

cutoff frequency in cm-1. Default is 80

keep_imag_frequencybool

Whether to keep imaginary frequencies in the output. Default is False

Saved results

omeganumpy.ndarray

Vibrational frequencies in au.

vecnumpy.ndarray

Polarization vectors of the vibration modes

ephnumpy.ndarray

Electron phonon matrix eph[spin,j,a,b] (j in nmodes, a,b in norbs)

get_eph(mo1, omega, vec, mo_rep)#
get_mode(mol=None, de=None)#
kernel(mo_energy=None, mo_coeff=None, mo_occ=None, mo_rep=False)#

Kernel function is the main driver of a method. Every method should define the kernel function as the entry of the calculation. Note the return value of kernel function is not strictly defined. It can be anything related to the method (such as the energy, the wave-function, the DFT mesh grids etc.).

vnuc_generator(mol)#
pyscf.eph.uks.get_eph(ephobj, mo1, omega, vec, mo_rep)[source]#

Module contents#

First order electron phonon matrix#

Simple usage::
>>> from pyscf import gto, dft, eph
>>> mol = gto.M(atom='N 0 0 0; N 0 0 2.100825', basis='def2-svp', verbose=4, unit="bohr")
>>> mf = dft.RKS(mol, xc='pbe,pbe')
>>> mf.run()
>>> myeph = eph.EPH(mf)
>>> mat, omega = myeph.kernel()
pyscf.eph.EPH(mf, **kwargs)[source]#