dm[s,p,p]=1 #Control the 3d occupancy for CrO... if (el=='Cr'): for i,d in enumerate(TM_3d_orbitals): #These are the 3d orbitals we want to fill to get the correct symmetry if ( ('xy' in aos[d]) or ('yz' in aos[d]) or ('z^2' in aos[d]) or ('x2-y2' in aos[d]) ): print('We are singly filling this d-orbital: '+np.str(aos[d]) ) dm[0,d,d]=1 m.chkfile=el+basis+"_r"+str(r)+"_s"+str(S[run])+"_"+method+"_"+str(run)+".chk" m.irrep_nelec = symm_dict[run] m.max_cycle=100 m = addons.remove_linear_dep_(m) m.conv_tol=1e-6 #Only need an initial guess for CrO and CuO... if (el=='Cr' or el=='Cu'): total_energy=m.kernel(dm) else: total_energy=m.kernel() #Compute the Mulliken orbital occupancies... m.analyze() assert(np.sum(m.mo_occ)==25) #Once we get past the vdz basis, just read-in the existing chk file... else: ############################################################################################## if("U" in method):
m=UKS(mol) m.xc=method[1:] else: if(method=="ROHF"): m=ROHF(mol) else: m=ROKS(mol) m.xc=method if basis=='vdz': #m=m.newton() m.chkfile=el+basis+"_r"+str(r)+"_s"+str(S)+"_"+method+"_"+str(run)+"mirror.chk" m.irrep_nelec = symm_dict[run] m.max_cycle=100 m = addons.remove_linear_dep_(m) m.conv_tol=1e-5 m.diis=scf.ADIIS() total_energy=m.kernel() #Compute the Mulliken orbital occupancies... m.analyze() #m.stability(external=True) assert(np.sum(m.mo_occ)==25) #Once we get past the vdz basis, just read-in the existingmirror.chk file... else: dm=m.from_chk(el+'vdz'+"_r"+str(r)+"_s"+str(S)+"_"+method+"_"+str(run)+"mirror.chk") m.chkfile=el+basis+"_r"+str(r)+"_s"+str(S)+"_"+method+"_"+str(run)+"mirror.chk" m.irrep_nelec = symm_dict[run] m.max_cycle=100 m = addons.remove_linear_dep_(m)