pyscf.solvent.grad package#

Submodules#

pyscf.solvent.grad.ddcosmo_grad module#

Analytical nuclear gradients for domain decomposition COSMO

See also

[1] Fast Domain Decomposition Algorithm for Continuum Solvation Models: Energy and First Derivatives. F. Lipparini, B. Stamm, E. Cances, Y. Maday, B. Mennucci J. Chem. Theory Comput., 9, 3637-3648 (2013) http://dx.doi.org/10.1021/ct400280b

[2] Quantum, classical, and hybrid QM/MM calculations in solution: General implementation of the ddCOSMO linear scaling strategy. F. Lipparini, G. Scalmani, L. Lagardere, B. Stamm, E. Cances, Y. Maday, J.-P.Piquemal, M. J. Frisch, B. Mennucci J. Chem. Phys., 141, 184108 (2014) http://dx.doi.org/10.1063/1.4901304

class pyscf.solvent.grad.ddcosmo_grad.WithSolventGrad(grad_method)[source]#

Bases: object

kernel(*args, dm=None, **kwargs)[source]#
undo_solvent()[source]#
pyscf.solvent.grad.ddcosmo_grad.kernel(pcmobj, dm, verbose=None)[source]#
pyscf.solvent.grad.ddcosmo_grad.make_L1(pcmobj, r_vdw, ylm_1sph, fi)[source]#
pyscf.solvent.grad.ddcosmo_grad.make_e_psi1(pcmobj, dm, r_vdw, ui, ylm_1sph, cached_pol, Xvec, L)[source]#
pyscf.solvent.grad.ddcosmo_grad.make_fi1(pcmobj, r_vdw)[source]#
pyscf.solvent.grad.ddcosmo_grad.make_grad_object(grad_method)[source]#

For grad_method in vacuum, add nuclear gradients of solvent pcmobj

pyscf.solvent.grad.ddcosmo_grad.make_phi1(pcmobj, dm, r_vdw, ui, ylm_1sph)[source]#
pyscf.solvent.grad.ddcosmo_grad.multipoles1(r, lmax, reorder_dipole=True)[source]#
pyscf.solvent.grad.ddcosmo_grad.regularize_xt1(t, eta)[source]#

pyscf.solvent.grad.pcm module#

Gradient of PCM family solvent models, copied from GPU4PySCF with modifications

class pyscf.solvent.grad.pcm.WithSolventGrad(grad_method)[source]#

Bases: object

kernel(*args, dm=None, atmlst=None, **kwargs)[source]#
to_gpu()[source]#
undo_solvent()[source]#
pyscf.solvent.grad.pcm.get_dD_dS(surface, dF, with_S=True, with_D=False)[source]#

derivative of D and S w.r.t grids, partial_i D_ij = -partial_j D_ij S is symmetric, D is not

pyscf.solvent.grad.pcm.get_dF_dA(surface)[source]#
  1. Chem. Phys. 133, 244111 (2010), Appendix C

pyscf.solvent.grad.pcm.grad_nuc(pcmobj, dm)[source]#
pyscf.solvent.grad.pcm.grad_qv(pcmobj, dm)[source]#

contributions due to integrals

pyscf.solvent.grad.pcm.grad_solver(pcmobj, dm)[source]#

dE = 0.5*v* d(K^-1 R) v + q*dv v^T d(K^-1 R)v = v^T*K^-1(dR - dK K^-1R)v = v^T K^-1(dR - dK q)

pyscf.solvent.grad.pcm.grad_switch_h(x)[source]#

first derivative of h(x)

pyscf.solvent.grad.pcm.gradgrad_switch_h(x)[source]#

2nd derivative of h(x)

pyscf.solvent.grad.pcm.make_grad_object(grad_method)[source]#

For grad_method in vacuum, add nuclear gradients of solvent pcmobj

pyscf.solvent.grad.smd module#

Gradient of SMD solvent model, copied from GPU4PySCF with modification for CPU

class pyscf.solvent.grad.smd.WithSolventGrad(grad_method)[source]#

Bases: object

kernel(*args, dm=None, atmlst=None, **kwargs)[source]#
to_gpu()[source]#
undo_solvent()[source]#
pyscf.solvent.grad.smd.get_cds(smdobj)[source]#
pyscf.solvent.grad.smd.grad_solver(pcmobj, dm)[source]#

dE = 0.5*v* d(K^-1 R) v + q*dv v^T d(K^-1 R)v = v^T*K^-1(dR - dK K^-1R)v = v^T K^-1(dR - dK q)

pyscf.solvent.grad.smd.make_grad_object(grad_method)[source]#

For grad_method in vacuum, add nuclear gradients of solvent pcmobj

pyscf.solvent.grad.smd_experiment module#

Module contents#