rendered paste body#!/usr/bin/env pythonimport osfrom ase.constraints import FixAtomsfrom ase.optimize.bfgs import BFGSfrom ase.io import readfrom gpaw import GPAW, setup_paths, mpifrom gpaw import Mixerfrom gpaw.poisson import PoissonSolver#from bfgs import BFGS as NEWBFGSif not os.path.isdir('nanobasis') and mpi.world.rank == 0: cwdir = os.getcwd() os.mkdir('nanobasis') os.chdir('nanobasis') #assert os.system('gpaw-basis -f RPBE Pd N H -t dzp') == 0 assert os.system('gpaw-basis -f LDA Pd N H -t sz') == 0 os.chdir(cwdir)mpi.world.barrier()setup_paths.insert(0, 'nanobasis')atoms = read('nanoparticle.xyz')constraint = FixAtoms(mask=[a.symbol == 'Pd' for a in atoms])atoms.set_constraint(constraint)calc = GPAW(gpts=(48,48,48), #h=0.18, gives 52x48x48 mode='lcao', basis='sz', #'dzp', nbands=-5, #-10, xc='LDA', #'RPBE', width=0.1, mixer=Mixer(beta=0.2, nmaxold=8, weight=80.0), # beta<0.3 ! poissonsolver=PoissonSolver(nn='M', relax='GS'), convergence={'energy':1e-4, 'bands':-3}, stencils=(2,3), #(3,3), #makes no difference? txt='nanoparticle-qn.txt')atoms.center(vacuum=3.0) #vacuum=4.0atoms.set_pbc(False)atoms.set_calculator(calc)atoms.get_potential_energy()#"""relax = BFGS(atoms, logfile='nanoparticle-qn.log', trajectory='nanoparticle-qn.traj')#relax.attach(calc.write, 1, filename + '.gpw')relax.run(fmax=0.02)#calc.write('nanoparticle_relax.gpw', mode='all')#"""