[gpaw-users] Memory Usage for NEB Calculations

Hongliang Xin hxin at umich.edu
Tue Dec 14 00:13:00 CET 2010


Dear All,

My NEB calculation is crashing the computer node due to oversubscribing the
memory. I checked the output text file, and found that Initial Overhead
memory estimate for consecutive images keeps increasing, and eventually
crashes the node.

Can anyone tell what the problem is?  I pasted some relevant code of my
calculation below.

initial = read('Initial/initial.gpw',index=-1,format='gpw')
io.write('InitialGeom.xyz',initial,format='xyz')

final = read('Final/final.gpw',index=-1,format='gpw')
io.write('FinalGeom.xyz',final,format='xyz')

# Construct a list of images:
images = [initial]
for i in range(4):
    images.append(initial.copy())
for i in range(4):
    images.append(final.copy())
images.append(final)

# Make a mask of zeros and ones that select fixed atoms (the
# bottom layers):
mask = []
for i in range(len(initial)):
    pos = initial.get_positions()[i]
    if pos[2]> 6.0:
        mask.append(0)
    else:
        mask.append(1)
constraint = constraints.FixAtoms(mask=mask)

for image in images:
    # Let all images use an EMT calculator:
    name = 'image_'+str(i)
    calc = GPAW(mode = 'fd',
                basis = 'dzp',
                nbands = -25,
                xc = 'RPBE',
                kpts = (6,3,1),
                occupations=FermiDirac(0.1),
                eigensolver='rmm-diis',
                convergence={'energy': 1.0e-3,
                             'density': 1.0e-4,
                             'eigenstates': 1.0e-9,
                             'bands': 'occupied'},
                spinpol = True,
                maxiter = 200,
                usesymm = False,
                h = 0.18,
                txt=name+'.txt',
                verbose=False)
    image.set_calculator(calc)
    image.set_constraint(constraint)
    image.set_initial_magnetic_moments([1.0 for a in image])
    print image.get_initial_magnetic_moments()

# Create a Nudged Elastic Band:
neb = NEB(images, parallel=False)

# Mak a starting guess for the minimum energy path (a straight line
# from the initial to the final state):
neb.interpolate()

# Relax the NEB path:
qn = optimize.QuasiNewton(neb, logfile='qn.log', trajectory='neb.traj')
qn.run(fmax=0.1)

write('NEB.traj', images)



Thanks,

Hongliang

-- 
Hongliang Xin
Ph.D. Candidate
Dept. of Chemical Engineering
University of Michigan
3166 HH Dow
2300 Hayward
Ann Arbor, MI 48109
Phone: (734) 647-8051
E-mail: hxin at umich.edu
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://listserv.fysik.dtu.dk/pipermail/gpaw-users/attachments/20101213/97249eb7/attachment.html 


More information about the gpaw-users mailing list