1#!/usr/bin/env python 2 3''' 4Optimize molecular geometry within the environment of QM/MM charges. 5''' 6 7import numpy 8from pyscf import gto, scf, cc, qmmm 9 10mol = gto.M(atom=''' 11C 1.1879 -0.3829 0.0000 12C 0.0000 0.5526 0.0000 13O -1.1867 -0.2472 0.0000 14H -1.9237 0.3850 0.0000 15H 2.0985 0.2306 0.0000 16H 1.1184 -1.0093 0.8869 17H 1.1184 -1.0093 -0.8869 18H -0.0227 1.1812 0.8852 19H -0.0227 1.1812 -0.8852 20 ''', 21 basis='3-21g') 22 23numpy.random.seed(1) 24coords = numpy.random.random((5,3)) * 10 25charges = (numpy.arange(5) + 1.) * -.001 26mf = qmmm.mm_charge(scf.RHF(mol), coords, charges) 27#mf.verbose=4 28#mf.kernel() 29mol1 = mf.Gradients().optimizer(solver='berny').kernel() 30# or 31#from pyscf.geomopt import berny_solver 32#mol1 = berny_solver.optimize(mf) 33 34mycc = cc.CCSD(mf) 35mol1 = mycc.Gradients().optimizer().kernel() 36# or 37#from pyscf.geomopt import geometric_solver 38#mol1 = geometric_solver.optimize(mycc) 39