[gpaw-users] RuntimeError: Atoms objects on different processors are not identical!
Jens Jørgen Mortensen
jensj at fysik.dtu.dk
Thu Jan 10 16:42:33 CET 2013
Den 14-12-2012 13:34, Juho Arjoranta skrev:
> Hi,
>
> I encountered this error for a couple of calculations:
>
> RuntimeError: RuntimeError: Atoms objects on different processors are
> not identical!
> 'are not identical!')
> Atoms objects on different processors are not identical!
> RuntimeError: GPAW CLEANUP (node 54): <type 'exceptions.RuntimeError'>
> occurred. Calling MPI_Abort!
>
>
> First rounds of iteration went nicely but then it just gives this
> error message and stops. I encountered the same in FD-mode also. What
> could cause this? Here's my input:
I think this problem might have been fixed in revision 9617:
https://trac.fysik.dtu.dk/projects/gpaw/changeset/9617
Could you try again with the latest developer version of GPAW?
Jens Jørgen
> #Fcc is just gives the positions for the atoms, the cellsize and
> counts the atoms.
>
> from Fcc import Fcc
> from ase.parallel import paropen
> from ase import Atoms
> from gpaw import GPAW, Mixer, FermiDirac
> from gpaw.poisson import PoissonSolver
> from gpaw.dipole_correction import DipoleCorrection
> from ase.constraints import FixAtoms
> from ase.optimize import QuasiNewton
> from numpy import zeros
>
> resultfile = paropen('4x4x4LCAO-results.txt', 'w')
>
> # Parameters for the Poisson solver
>
> ps = PoissonSolver(nn = 3, relax = 'J')
> correction = DipoleCorrection(ps, 2)
>
> a = 3.639
>
> asdf = Fcc(a,a,a)
> pos = asdf.makeFCC(4,4,4)
> cell = asdf.getCell(4,4,4)
>
> number = asdf.getNumber()
> copper = 'Cu%i' % number
>
> vac = 4.3002
>
> name = 'vacuum-%.4f' % vac
>
> # Grid to correspond a grid spacing h = 0.1654
>
> grid = (44, 44, 96)
>
> calc = GPAW(gpts = grid,
> mode = 'lcao',
> basis = 'dzp',
> txt = name + '.txt',
> xc = 'PBE',
> nbands = 192,
> parallel = {'sl_default': (5,5,54)},
> convergence = dict(density=1e-5),
> occupations = FermiDirac(width = 0.15),
> poissonsolver = correction,
> mixer=Mixer(beta=0.1, nmaxold=5, weight=100.0), # Pulay mixer
> kpts = (6, 6, 1))
>
> surface = Atoms(copper,
> positions = pos,
> cell=[[cell[0], 0, 0],
> [0, cell[1], 0],
> [0, 0, cell[2] + 2*vac]])
>
> surface.pbc = (True, True, False)
> surface.set_calculator(calc)
>
> # Fixing of the layers with 'fix' as the number of the layers to be fixed
>
> fix = 2
>
> array = zeros([number])
> for i in range(0, number):
> if (pos[i][2] < fix * a / 2):
> array[i] = 1
> surface.set_tags(array)
> c = FixAtoms(mask=[atom.tag == 1 for atom in surface])
> surface.set_constraint(c)
>
> surface.center(axis = 2) # Center the system in z-direction
> and add vacuum
>
> # Relaxation of the bulk
>
> relax = QuasiNewton(surface, trajectory = name + '.traj')
> relax.run(fmax = 0.05)
>
> energy = surface.get_potential_energy()
>
> finalpositions = surface.get_positions()
>
> # Print the results into the result file
>
> print >> resultfile, finalpositions, name, energy
>
> # Save the state of the calculation
>
> calc.write(name + '.gpw')
>
>
> _______________________________________________
> gpaw-users mailing list
> gpaw-users at listserv.fysik.dtu.dk
> https://listserv.fysik.dtu.dk/mailman/listinfo/gpaw-users
More information about the gpaw-users
mailing list