示例#1
0
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
示例#2
0
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
示例#3
0
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
示例#4
0
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
示例#5
0
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
示例#6
0
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
示例#7
0
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
示例#8
0
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
示例#9
0
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
示例#10
0
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
示例#11
0
def set_nelm_200(vasp: Vasp, structure=None):
    vasp.nelm = 200
    return vasp
示例#12
0
def set_nelm_9999(vasp: Vasp, structure=None):
    vasp.nelm = 9999
    return vasp