Ejemplo n.º 1
0
def load_default_vasp(vasp: Vasp, structure=None):
    vasp.has_nlep = False
    vasp.maxiter = 100
    if not vasp.kpoints:
        if structure == None:
            vasp.kpoints = "\n0\nAuto\n14"
        else:
            kpoints_density = 4000
            vasp.kpoints = pylada.gen_kpts(structure, kpoints_density)
    vasp.program = '$VASP_PYLADA'  # default vasp program
    try:
        vasp.npar = int(os.environ['PBS_NUM_NODES'])
    except:
        vasp.npar = int(os.environ['SLURM_JOB_NUM_NODES'])
    vasp.prec = "accurate"
    vasp.ediff = 1.0e-6  # total, not per atom
    vasp.ediffg = -0.02
    vasp.addgrid = True
    vasp.ismear = 0
    vasp.sigma = 0.01
    vasp.lwave = True
    vasp.lcharg = True
    vasp.lmaxmix = 4
    vasp.convergence = 1.0e-5
    vasp.algo = "Normal"
    vasp.lorbit = 11
    vasp.nsw = 5000
    return (vasp)
Ejemplo n.º 2
0
def set_gamma(vasp: Vasp, structure=None):
    x = 1
    y = 1
    z = 1
    packing = 'Gamma'
    vasp.kpoints = "Gamma_Mesh\n0\n{}\n{} {} {}".format(packing, x, y, z)
    vasp.ismear = 0
    vasp.add_keyword('kpar', 1)
    return vasp
Ejemplo n.º 3
0
def single_point_hse(vasp: Vasp, structure=None):
    vasp.istart = 1
    vasp.icharg = 1
    vasp.ibrion = -1
    vasp.nelmin = 3
    vasp.nsw = 0
    vasp.potim = 0
    vasp.ediff = 1e-5
    vasp.ismear = -5
    vasp.algo = 'Damped'
    vasp.add_keyword('lmaxmix', None)
    vasp.add_keyword('iopt', 0)
    return vasp
Ejemplo n.º 4
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
Ejemplo n.º 5
0
def set_kpoints_auto_20(vasp: Vasp, structure=None):
    x = 20
    packing = 'Auto'
    vasp.kpoints = "Automatic\n0\n{}\n{}".format(packing, x)
    kpoint_str = vasp.kpoints.split('\n')[3]
    kpoints = [int(x) for x in kpoint_str.split()]
    if len(kpoints) > 1:
        num_kpoints = kpoints[0] * kpoints[1] * kpoints[2]
    else:
        density = kpoints[0]
        num_kpoints = math.ceil(
            density / np.linalg.norm(structure.cell[:, 0])) * math.ceil(
                density / np.linalg.norm(structure.cell[:, 1])) * math.ceil(
                    density / np.linalg.norm(structure.cell[:, 2]))
    if num_kpoints < 4:
        vasp.ismear = 0
    return vasp
Ejemplo n.º 6
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
Ejemplo n.º 7
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
Ejemplo n.º 8
0
def tetrahedron(vasp: Vasp, structure=None):
    vasp.ismear = -5
    return vasp
Ejemplo n.º 9
0
def set_nkred_221(vasp: Vasp, structure=None):
    vasp.add_keyword('nkredx', 2)
    vasp.add_keyword('nkredy', 2)
    vasp.add_keyword('kpar', 1)
    vasp.ismear = 0
    return vasp
Ejemplo n.º 10
0
def set_nkred_333(vasp: Vasp, structure=None):
    vasp.add_keyword('nkred', 3)
    vasp.add_keyword('kpar', 1)
    vasp.ismear = 0
    return vasp
Ejemplo n.º 11
0
def set_nkred_222(vasp: Vasp, structure=None):
    vasp.add_keyword('nkred', 2)
    vasp.ismear = 0
    vasp.add_keyword('kpar', 1)
    return vasp
Ejemplo n.º 12
0
def set_ismear_1(vasp: Vasp, structure=None):
    vasp.ismear = 1
    return vasp