def no_relax(vasp: Vasp, structure=None): vasp.ibrion = 3 vasp.potim = 0 vasp.nelmin = 5 vasp.nsw = 5000 vasp.nelm = 200 vasp.ediff = 1e-5 vasp.ediffg = 1e-4 vasp.add_keyword('lmaxmix', None) vasp.add_keyword('iopt', 0) return vasp
def single_point(vasp: Vasp, structure=None): vasp.istart = 1 vasp.icharg = 1 vasp.ibrion = 3 vasp.potim = 0 vasp.nelmin = 3 vasp.nsw = 5000 vasp.nelm = 30 vasp.ediff = 1e-5 vasp.ediffg = 1e-5 vasp.add_keyword('lmaxmix', None) vasp.add_keyword('iopt', 0) return vasp
def hse06(vasp: Vasp, structure=None): vasp.nelmdl = 0 vasp.nelm = 1000 vasp.add_keyword('lhfcalc', True) vasp.precfock = 'Fast' vasp.add_keyword('hfscreen', 0.2) vasp.algo = 'All' vasp.npar = None vasp.ldau = False vasp.lwave = True vasp.lcharg = True vasp.ismear = 0 vasp.add_keyword('metagga', False) vasp.add_keyword('ncore', 8) return vasp
def full_converge(vasp: Vasp, structure=None): # Start vasp.istart = 1 vasp.icharg = 1 # Electronic vasp.prec = "Accurate" vasp.nelm = 200 vasp.ediff = 1e-6 vasp.nelmdl = 0 # Ionic vasp.nsw = 5000 vasp.ediffg = -0.02 # Output vasp.lwave = True vasp.lcharg = True return vasp
def get_eigen(vasp: Vasp, structure=None): # Start vasp.istart = 1 vasp.icharg = 1 # Electronic vasp.prec = "Accurate" vasp.nelm = 200 vasp.ediff = 1e-5 vasp.nelmdl = 0 # Ionic vasp.nsw = 5000 vasp.ediffg = -0.05 # Output vasp.lwave = True vasp.lcharg = True return vasp
def get_eigen_nospin(vasp: Vasp, structure=None): # Start vasp.istart = 0 vasp.icharg = 2 vasp.ispin = 1 # Electronic vasp.prec = "Accurate" vasp.nelm = 200 vasp.ediff = 5e-4 vasp.nelmdl = -15 # Ionic vasp.nsw = 5 vasp.ediffg = -1 # Output vasp.lwave = True vasp.lcharg = True return vasp
def rough_converge(vasp: Vasp, structure=None): # Start vasp.istart = 0 vasp.icharg = 2 # Electronic vasp.prec = "Accurate" vasp.nelm = 60 vasp.nelmin = 8 vasp.ediff = 5e-4 vasp.nelmdl = -15 # Ionic vasp.nsw = 5000 vasp.ediffg = -0.1 # Output vasp.lwave = False vasp.lcharg = False return vasp
def awful_converge(vasp: Vasp, structure=None): # Start vasp.istart = 0 vasp.icharg = 2 # Electronic vasp.prec = "Normal" vasp.nelm = 60 vasp.nelmin = 12 vasp.ediff = 1e-4 vasp.nelmdl = -15 # Ionic vasp.nsw = 5000 vasp.ediffg = -0.5 # Output vasp.lwave = False vasp.lcharg = False return vasp
def bulk_standard(vasp: Vasp, structure): # Electronic vasp.add_keyword('GGA', 'PS') vasp.ismear = -5 vasp.prec = "Accurate" vasp.nelm = 60 vasp.ediff = 1e-5 vasp.nelmdl = 0 # Ionic vasp.nsw = 5000 vasp.ediffg = -0.02 # Output vasp.lwave = True vasp.lcharg = True #TODO: Get these automatically x=2; y=2 ; z=2 packing = 'Gamma' vasp.kpoints = "Gamma_Mesh\n0\n{}\n{} {} {}".format(packing, x, y, z) return vasp
def mnte_standard(vasp: Vasp, structure): # Electronic vasp.add_keyword('METAGGA', 'SCAN') vasp.ismear = -5 vasp.prec = "Accurate" vasp.nelm = 200 vasp.ediff = 1e-5 vasp.nelmdl = 0 vasp.add_keyword('KPAR', 2) vasp.ispin = 2 vasp.encut=800 # Ionic vasp.nsw = 5000 vasp.ediffg = -0.02 # Output vasp.lwave = True vasp.lcharg = True #TODO: Get these automatically x=22 ; y='' ; z='' packing = 'Auto' vasp.kpoints = "Automatic\n0\n{}\n{} {} {}".format(packing, x, y, z) return vasp
def set_nelm_200(vasp: Vasp, structure=None): vasp.nelm = 200 return vasp
def set_nelm_9999(vasp: Vasp, structure=None): vasp.nelm = 9999 return vasp