pyscf.hessian package#
Submodules#
pyscf.hessian.dispersion module#
Hessian of dispersion correction for HF and DFT
pyscf.hessian.rhf module#
Non-relativistic RHF analytical Hessian
- class pyscf.hessian.rhf.Hessian(scf_method)[source]#
Bases:
HessianBase
- hess_elec(mo_energy=None, mo_coeff=None, mo_occ=None, mo1=None, mo_e1=None, h1ao=None, atmlst=None, max_memory=4000, verbose=None)#
- make_h1(mo_coeff, mo_occ, chkfile=None, atmlst=None, verbose=None)#
- partial_hess_elec(mo_energy=None, mo_coeff=None, mo_occ=None, atmlst=None, max_memory=4000, verbose=None)#
Partial derivative
- class pyscf.hessian.rhf.HessianBase(scf_method)[source]#
Bases:
StreamObject
Non-relativistic restricted Hartree-Fock hessian
- gen_hop(mo_energy=None, mo_coeff=None, mo_occ=None, verbose=None)#
- get_dispersion(disp=None, with_3body=None)#
- hess(mo_energy=None, mo_coeff=None, mo_occ=None, atmlst=None)#
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.).
- kernel(mo_energy=None, mo_coeff=None, mo_occ=None, atmlst=None)[source]#
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.).
- level_shift = 0#
- max_cycle = 50#
- pyscf.hessian.rhf.hess_elec(hessobj, mo_energy=None, mo_coeff=None, mo_occ=None, mo1=None, mo_e1=None, h1ao=None, atmlst=None, max_memory=4000, verbose=None)[source]#
- pyscf.hessian.rhf.make_h1(hessobj, mo_coeff, mo_occ, chkfile=None, atmlst=None, verbose=None)[source]#
- pyscf.hessian.rhf.partial_hess_elec(hessobj, mo_energy=None, mo_coeff=None, mo_occ=None, atmlst=None, max_memory=4000, verbose=None)[source]#
Partial derivative
- pyscf.hessian.rhf.solve_mo1(mf, mo_energy, mo_coeff, mo_occ, h1ao, fx=None, atmlst=None, max_memory=4000, verbose=None, max_cycle=50, level_shift=0)[source]#
Solve the first order equation
- Kwargs:
- fxfunction(dm_mo) => v1_mo
A function to generate the induced potential. See also the function gen_vind.
pyscf.hessian.rks module#
Non-relativistic RKS analytical Hessian
- class pyscf.hessian.rks.Hessian(mf)[source]#
Bases:
HessianBase
Non-relativistic RKS hessian
- hess_elec(mo_energy=None, mo_coeff=None, mo_occ=None, mo1=None, mo_e1=None, h1ao=None, atmlst=None, max_memory=4000, verbose=None)#
- make_h1(mo_coeff, mo_occ, chkfile=None, atmlst=None, verbose=None)#
- partial_hess_elec(mo_energy=None, mo_coeff=None, mo_occ=None, atmlst=None, max_memory=4000, verbose=None)#
- pyscf.hessian.rks.contract_d2rhodAdB_d2gammadAdB(d3mu_dr3, d2mu_dr2, dmu_dr, mu, drho_dr, dm0, aoslices, fw_rho, fw_gamma)[source]#
- pyscf.hessian.rks.get_d2rho_dAdr_grid_response(d2mu_dr2, dmu_dr, mu, dm0, atom_to_grid_index_map=None, i_atom=None)[source]#
- pyscf.hessian.rks.get_d2rhodAdB_d2gammadAdB(mol, grids_coords, dm0)[source]#
This function should never be used in practice. It requires crazy amount of memory, and it’s left for debug purpose only. Use the contract function instead.
- pyscf.hessian.rks.get_drhodA_dgammadA_grid_response(d2mu_dr2, dmu_dr, mu, drho_dr, dm0, atom_to_grid_index_map=None, i_atom=None)[source]#
- pyscf.hessian.rks.get_drhodA_dgammadA_orbital_response(d2mu_dr2, dmu_dr, mu, drho_dr, dm0, aoslices)[source]#
- pyscf.hessian.rks.get_vnlc_resp(mf, mol, mo_coeff, mo_occ, dm1s, max_memory)[source]#
Equation notation follows: Liang J, Feng X, Liu X, Head-Gordon M. Analytical harmonic vibrational frequencies with VV10-containing density functionals: Theory, efficient implementation, and benchmark assessments. J Chem Phys. 2023 May 28;158(20):204109. doi: 10.1063/5.0152838.
mo_coeff, mo_occ are 0-th order dm1s is first order
TODO: check the effect of different grid, using mf.nlcgrids right now
pyscf.hessian.thermo module#
Thermochemistry analysis.
- Ref:
psi4/psi4/driver/qcdb/vib.py http://gaussian.com/vib/
- pyscf.hessian.thermo.harmonic_analysis(mol, hess, exclude_trans=True, exclude_rot=True, imaginary_freq=True, mass=None)[source]#
Each column is one mode
imaginary_freq (boolean): save imaginary_freq as complex number (if True) or negative real number (if False)
- pyscf.hessian.thermo.rotation_const(mass, atom_coords, unit='GHz')[source]#
Rotational constants to characterize rotational spectra
- Kwargs:
unit (string) : One of GHz, wavenumber
- pyscf.hessian.thermo.rotational_symmetry_number(mol)[source]#
Number of unique orientations of the rigid molecule that only interchange identical atoms.
Source http://cccbdb.nist.gov/thermo.asp (search “symmetry number”)
pyscf.hessian.uhf module#
Non-relativistic UHF analytical Hessian
- class pyscf.hessian.uhf.Hessian(scf_method)[source]#
Bases:
HessianBase
Non-relativistic UHF hessian
- gen_hop(mo_energy=None, mo_coeff=None, mo_occ=None, verbose=None)#
- hess_elec(mo_energy=None, mo_coeff=None, mo_occ=None, mo1=None, mo_e1=None, h1ao=None, atmlst=None, max_memory=4000, verbose=None)#
- make_h1(mo_coeff, mo_occ, chkfile=None, atmlst=None, verbose=None)#
- partial_hess_elec(mo_energy=None, mo_coeff=None, mo_occ=None, atmlst=None, max_memory=4000, verbose=None)#
- pyscf.hessian.uhf.hess_elec(hessobj, mo_energy=None, mo_coeff=None, mo_occ=None, mo1=None, mo_e1=None, h1ao=None, atmlst=None, max_memory=4000, verbose=None)[source]#
- pyscf.hessian.uhf.make_h1(hessobj, mo_coeff, mo_occ, chkfile=None, atmlst=None, verbose=None)[source]#
pyscf.hessian.uks module#
Non-relativistic UKS analytical Hessian
- class pyscf.hessian.uks.Hessian(mf)[source]#
Bases:
HessianBase
Non-relativistic UKS hessian
- gen_hop(mo_energy=None, mo_coeff=None, mo_occ=None, verbose=None)#
- hess_elec(mo_energy=None, mo_coeff=None, mo_occ=None, mo1=None, mo_e1=None, h1ao=None, atmlst=None, max_memory=4000, verbose=None)#
- make_h1(mo_coeff, mo_occ, chkfile=None, atmlst=None, verbose=None)#
- partial_hess_elec(mo_energy=None, mo_coeff=None, mo_occ=None, atmlst=None, max_memory=4000, verbose=None)#