Ejemplo n.º 1
0
        def nuc_grad_method(self):
            logger.warn(self, '''
Approximate gradients are evaluated here. A small error may be expected in the
gradients which corresponds to the contribution of
  DM * Vpcm[d/dX DM] + Vpcm[DM] * d/dX DM
''')
            from pyscf.solvent.ddcosmo_grad import make_grad_object
            grad_method = old_method.nuc_grad_method(self)
            return make_grad_object(grad_method)
Ejemplo n.º 2
0
        def nuc_grad_method(self):
            logger.warn(self, '''
The code for CASCI gradients was based on variational CASCI wavefunction.
However, the ddCOSMO-CASCI energy was not computed variationally.
Approximate gradients are evaluated here. A small error may be expected in the
gradients which corresponds to the contribution of
  MCSCF_DM * Vpcm[d/dX MCSCF_DM] + Vpcm[MCSCF_DM] * d/dX MCSCF_DM
''')
            from pyscf.solvent.ddcosmo_grad import make_grad_object
            grad_method = oldCAS.nuc_grad_method(self)
            return make_grad_object(grad_method)
Ejemplo n.º 3
0
 def nuc_grad_method(self, grad_method):
     '''For grad_method in vacuum, add nuclear gradients of solvent
     '''
     from pyscf import tdscf
     from pyscf.solvent import ddcosmo_grad, _ddcosmo_tdscf_grad
     if self.frozen:
         raise RuntimeError('Frozen solvent model is not supported for '
                            'energy gradients')
     if isinstance(grad_method.base, (tdscf.rhf.TDA, tdscf.rhf.TDHF)):
         return _ddcosmo_tdscf_grad.make_grad_object(grad_method)
     else:
         return ddcosmo_grad.make_grad_object(grad_method)
Ejemplo n.º 4
0
 def nuc_grad_method(self):
     from pyscf.solvent._ddcosmo_tdscf_grad import make_grad_object
     grad_method = old_method.nuc_grad_method(self)
     return make_grad_object(grad_method)