Exemplo n.º 1
0
def test_vasp2w90(
        configure_with_daemon,  # pylint: disable=unused-argument
        sample,
        get_gaas_process_inputs,  # pylint: disable=redefined-outer-name
        assert_finished):
    """Vasp2w90 unit test"""
    from aiida.work.run import run
    from aiida.orm import DataFactory
    from aiida.orm.data.base import List

    process, inputs = get_gaas_process_inputs(
        calculation_string='vasp.vasp2w90',
        parameters={
            'ncore': 1,
            'isym': -1,
            'icharg': 11,
            'lwave': False
        })
    charge_density = DataFactory('vasp.chargedensity')()
    charge_density.set_file(sample('GaAs/CHGCAR'))
    inputs.charge_density = charge_density

    wannier_input_parameters = dict(
        dis_num_iter=1000,
        num_bands=24,
        num_iter=0,
        num_wann=14,
        spinors=True,
    )
    inputs.wannier_parameters = DataFactory('parameter')(
        dict=wannier_input_parameters)

    wannier_projections = List()
    wannier_projections.extend(['Ga : s; px; py; pz', 'As : px; py; pz'])
    inputs.wannier_projections = wannier_projections

    output, pid = run(process, _return_pid=True, **inputs)
    assert all(key in output for key in [
        'retrieved', 'kpoints', 'wannier_parameters', 'wannier_kpoints',
        'wannier_projections'
    ])
    # check that the input parameters are preserved
    wannier_output_parameters = output['wannier_parameters'].get_dict()
    for key, value in wannier_input_parameters.items():
        assert key in wannier_output_parameters
        out_value = eval(
            wannier_output_parameters[key].strip('.').capitalize())  # pylint: disable=eval-used
        assert value == out_value
    # check that the projections block is preserved
    assert wannier_projections.get_attr(
        'list') == output['wannier_projections'].get_attr('list')

    assert_finished(pid)
Exemplo n.º 2
0
    def _get_wavecar(self):
        """Create a DB Node for the WAVECAR file"""

        wfn = self.get_file('WAVECAR')

        if wfn is None:
            return {'wavecar': None}

        wfnode = DataFactory('vasp.wavefun')()
        wfnode.set_file(wfn)

        return {'wavecar': wfnode}
Exemplo n.º 3
0
    def _get_chgcar(self):
        """Create a DB Node for the CHGCAR file"""

        chgc = self.get_file('CHGCAR')

        if chgc is None:
            return {'chgcar': None}

        chgnode = DataFactory('vasp.chargedensity')()
        chgnode.set_file(chgc)

        return {'chgcar': chgnode}
Exemplo n.º 4
0
def test_vasp2w90(
        configure_with_daemon,  # pylint: disable=unused-argument
        sample,
        get_gaas_process_inputs,  # pylint: disable=redefined-outer-name
        assert_finished):
    """Vasp2W90 unit test"""
    from aiida.work.run import run
    from aiida.orm import DataFactory
    from aiida.orm.data.base import List

    process, inputs = get_gaas_process_inputs(
        calculation_string='vasp.vasp2w90',
        parameters={
            'ncore': 1,
            'isym': -1,
            'icharg': 11,
            'lwave': False
        })
    charge_density = DataFactory('vasp.chargedensity')()
    charge_density.set_file(sample('GaAs/CHGCAR'))
    inputs.charge_density = charge_density

    wannier_parameters = DataFactory('parameter')(dict=dict(
        dis_num_iter=1000,
        num_bands=24,
        num_iter=0,
        num_wann=14,
        spinors=True,
    ))
    inputs.wannier_parameters = wannier_parameters

    wannier_projections = List()
    wannier_projections.extend(['Ga : s; px; py; pz', 'As : px; py; pz'])
    inputs.wannier_projections = wannier_projections

    output, pid = run(process, _return_pid=True, **inputs)
    assert all(key in output for key in [
        'retrieved', 'kpoints', 'wannier_parameters', 'wannier_kpoints',
        'wannier_projections'
    ])
    assert_finished(pid)
Exemplo n.º 5
0
 def get_wavecar(self):
     wfn = self.get_file('WAVECAR')
     wfnode = DataFactory('vasp.wavefun')()
     wfnode.set_file(wfn)
     return wfnode
Exemplo n.º 6
0
 def get_chgcar(self):
     chgc = self.get_file('CHGCAR')
     chgnode = DataFactory('vasp.chargedensity')()
     chgnode.set_file(chgc)
     return chgnode