All pastes #2081412 Raw Edit

naromero

public text v1 · immutable
#2081412 ·published 2011-09-19 20:18 UTC
rendered paste body
from ase import Atoms, PickleTrajectory, readfrom ase.optimize.lbfgs import LBFGS, LBFGSLineSearchfrom gpaw import GPAW, Mixer, MixerSum, ConvergenceError, PoissonSolverfrom gpaw.poisson import PoissonSolverfrom gpaw.eigensolvers.rmm_diis import RMM_DIISps = PoissonSolver(nn='M', relax='GS', eps=1e-9)es = RMM_DIIS(keep_htpsit=False)from gpaw.hs_operators import MatrixOperator# Makes Python traceback appear only on the root processorimport sysfrom gpaw.mpi import worldfrom ase.utils import devnull# if world.rank != 0:#     sys.stderr = devnulla = 4.08bulk = Atoms('Au4', positions=((0, 0 ,0),                               (0.5, 0.25, 0), # wrong y position                               (0.5, 0, 0.5),                               (0, 0.5, 0.5)), pbc=True)bulk.set_cell((a,a,a), scale_atoms=True)calc = GPAW(h=0.18,            maxiter=200,            mode = 'fd',            poissonsolver = ps,            nbands = 25,            spinpol = False,            xc = 'LDA',            width = 0.01,            mixer = Mixer(0.10, 5, 100.0),             # mixer = MixerSum(0.10, 5, 100.0), # spinpol = True            eigensolver = es,            txt = 'Au_bulk.out')bulk.set_calculator(calc)# spinpol = True# magmom = 2.0# mms = [magmom for i in range(len(bulk))]# bulk.set_initial_magnetic_memonts(mms)world.barrier() # make sure things are synchronizedclass OptimizerLogger:    def __init__(self, atoms, basefile=None, step=0):        if basefile == None:            self.basefile = 'gpaw'        else:            self.basefile = basefile        self.step = step        self.calc = atoms.get_calculator()    def __call__(self):        filename = self.basefile + '.' + str(self.step) + '.hdf5'        self.calc.write(filename)        self.step = self.step + 1        savehdf5 = OptimizerLogger(bulk,'foobar')mode = 'w'traj = PickleTrajectory('qn.traj', mode, bulk)traj.post_write_attach(savehdf5, 1)relax = LBFGS(bulk, logfile = 'qn.log', trajectory = traj, restart= 'qn.pckl')relax.run(fmax=0.05, steps=3)