def __call__(self, name, atoms): calculator = GPAWFactory.__call__(self, name, atoms) calculator.set(nbands=-2) if name.split('-')[0] in ['Ne', 'Ar', 'Kr', 'Xe', 'Rn', 'K', 'Ca', 'Cs', 'Ba', 'Sr', 'Rb']: # MDTMP: not enough orbitals - use dzp! calculator.set(nbands=-1) calculator.set(basis='dzp') if name.split('-')[0] in ['Rb']: calculator.set(nbands=-1) if name.split('-')[0] in ['In', 'Cs', 'Sb', 'Ni', 'Ta', 'As', 'V', 'Ni', 'Li', 'Rb', 'Tl']: calculator.set(nbands=-3) if name.split('-')[0] in ['Ca', 'Zn', 'Zr', 'Pb', 'Sr', 'Xe', 'Rn', 'Ru', 'N', 'Os', 'Cl', 'Cd']: calculator.set(nbands=-4) if name.split('-')[0] in ['Sc']: calculator.set(nbands=-5) if name.split('-')[0] in ['Ba', 'Os']: calculator.set(nbands=-6) if name.split('-')[0] in ['K']: calculator.set(nbands=-7) if name.split('-')[0] in ['Ne', 'Ar', 'Kr']: calculator.set(nbands=-8) if name.split('-')[0] in ['Cr']: calculator.set(nbands=-10) if name.split('-')[0] in ['Ti', 'Cr', 'Fe', 'Y', 'Nb', 'Mo', 'Te', 'Hf', 'Re', 'Hg', 'Sb', 'Ca', 'Pd', 'Ni', 'Ta', 'Ru', 'Rh', 'V', 'Ag', 'Ir', 'W', 'Pt', 'Mn', 'Sn', 'Zn', 'Os', 'Mg', 'Zn', 'Na', 'Bi', 'Sc', 'Zr', ]: calculator.set(eigensolver='cg') calculator.set(parallel={'band': 1}) if name.split('-')[0] in ['Li', 'Na']: # https://listserv.fysik.dtu.dk/pipermail/gpaw-developers/2012-May/002870.html calculator.set(h=0.05) if name.split('-')[0] in ['Cs']: calculator.set(usesymm=False) calculator.set(eigensolver='cg') calculator.set(parallel={'band': 1}) if name.split('-')[0] in ['Mn']: calculator.set(mixer=MixerDif()) calculator.set(maxiter=450) if name.split('-')[0] in ['Cr']: calculator.set(mixer=MixerDif()) calculator.set(maxiter=650) return calculator
def __call__(self, name, atoms): calculator = GPAWFactory.__call__(self, name, atoms) if name.split('-')[0] in ['Li', 'Na']: # https://listserv.fysik.dtu.dk/pipermail/gpaw-developers/2012-May/002870.html calculator.set(h=0.11) if self.inititer > 0: try: calculator.set(eigensolver='cg') calculator.set(maxiter=self.inititer) atoms.set_calculator(calculator) atoms.get_potential_energy() except ConvergenceError: pass calculator.set(maxiter=self.maxiter) calculator.set(eigensolver=self.eigensolver) return calculator
def __call__(self, name, atoms): calculator = GPAWFactory.__call__(self, name, atoms) calculator.set(nbands=-2) if name.split('-')[0] in [ 'Ne', 'Ar', 'Kr', 'Xe', 'Rn', 'K', 'Ca', 'Cs', 'Ba', 'Sr', 'Rb' ]: # MDTMP: not enough orbitals - use dzp! calculator.set(nbands=-1) calculator.set(basis='dzp') if name.split('-')[0] in ['Rb']: calculator.set(nbands=-1) if name.split('-')[0] in [ 'In', 'Cs', 'Sb', 'Ni', 'Ta', 'As', 'V', 'Ni', 'Li', 'Rb', 'Tl' ]: calculator.set(nbands=-3) if name.split('-')[0] in [ 'Ca', 'Zn', 'Zr', 'Pb', 'Sr', 'Xe', 'Rn', 'Ru', 'N', 'Os', 'Cl', 'Cd' ]: calculator.set(nbands=-4) if name.split('-')[0] in ['Sc']: calculator.set(nbands=-5) if name.split('-')[0] in ['Ba', 'Os']: calculator.set(nbands=-6) if name.split('-')[0] in ['K']: calculator.set(nbands=-7) if name.split('-')[0] in ['Ne', 'Ar', 'Kr']: calculator.set(nbands=-8) if name.split('-')[0] in ['Cr']: calculator.set(nbands=-10) if name.split('-')[0] in [ 'Ti', 'Cr', 'Fe', 'Y', 'Nb', 'Mo', 'Te', 'Hf', 'Re', 'Hg', 'Sb', 'Ca', 'Pd', 'Ni', 'Ta', 'Ru', 'Rh', 'V', 'Ag', 'Ir', 'W', 'Pt', 'Mn', 'Sn', 'Zn', 'Os', 'Mg', 'Zn', 'Na', 'Bi', 'Sc', 'Zr', ]: calculator.set(eigensolver='cg') calculator.set(parallel={'band': 1}) if name.split('-')[0] in ['Li', 'Na']: # https://listserv.fysik.dtu.dk/pipermail/gpaw-developers/2012-May/002870.html calculator.set(h=0.05) if name.split('-')[0] in ['Cs']: calculator.set(symmetry='off') calculator.set(eigensolver='cg') calculator.set(parallel={'band': 1}) if name.split('-')[0] in ['Mn']: calculator.set(mixer=MixerDif()) calculator.set(maxiter=450) if name.split('-')[0] in ['Cr']: calculator.set(mixer=MixerDif()) calculator.set(maxiter=650) return calculator