Exemplo n.º 1
0
def get_insb_input(configure, sample, get_queue_name_from_code):  # pylint: disable=unused-argument
    """
    Create input for the VASP InSb sample.
    """
    from aiida.plugins import DataFactory
    from aiida.orm import Code
    from aiida.orm import Dict

    res = dict()

    structure = orm.StructureData()
    structure.set_ase(read_vasp(sample('InSb/POSCAR')))
    res['structure'] = structure

    PotcarData = DataFactory('vasp.potcar')  # pylint: disable=invalid-name
    res['potentials'] = {
        'In': PotcarData.find_one(family='pbe', symbol='In_d'),
        'Sb': PotcarData.find_one(family='pbe', symbol='Sb')
    }

    res['parameters'] = Dict(dict=dict(
        ediff=1e-3,
        lsorbit=True,
        isym=0,
        ismear=0,
        sigma=0.05,
        gga='PE',
        encut=380,
        magmom='600*0.0',
        nbands=36,
        kpar=4,
        nelmin=0,
        lwave=False,
        aexx=0.25,
        lhfcalc=True,
        hfscreen=0.23,
        algo='N',
        time=0.4,
        precfock='normal',
    ))

    res['code'] = Code.get_from_string('vasp')
    res['calculation_kwargs'] = dict(
        options=dict(resources={
            'num_machines': 2,
            'num_mpiprocs_per_machine': 18
        },
                     queue_name=get_queue_name_from_code('vasp'),
                     withmpi=True,
                     max_wallclock_seconds=1200))
    return res