예제 #1
0
def _wavefunction_pawpy(bs, ibands, planewave_cutoff, ikpoints,
                        **pawpy_kwargs):
    from amset.wavefunction.pawpyseed import (
        get_converged_encut,
        get_wavefunction,
        get_wavefunction_coefficients,
    )

    wf = get_wavefunction(**pawpy_kwargs)
    if not planewave_cutoff:
        click.echo("******* Automatically choosing plane wave cutoff *******")
        planewave_cutoff = get_converged_encut(
            wf,
            bs,
            iband=ibands,
            ikpoints=ikpoints,
            max_encut=600,
            n_samples=2000,
            std_tol=0.02,
        )
        click.echo("\nUsing cutoff: {} eV".format(planewave_cutoff))

    return get_wavefunction_coefficients(wf,
                                         bs,
                                         iband=ibands,
                                         ikpoints=ikpoints,
                                         encut=planewave_cutoff)
예제 #2
0
def _wavefunction_vasp(ibands, planewave_cutoff, ikpoints, **kwargs):
    from amset.wavefunction.vasp import (
        get_converged_encut,
        get_wavefunction,
        get_wavefunction_coefficients,
    )

    directory = kwargs.pop("directory")
    wavecar = kwargs.pop("wavecar")
    vasp_type = kwargs.pop("vasp_type")
    wf = get_wavefunction(wavecar=wavecar,
                          directory=directory,
                          vasp_type=vasp_type)

    if not planewave_cutoff:
        click.echo("******* Automatically choosing plane wave cutoff *******")
        planewave_cutoff = get_converged_encut(wf,
                                               iband=ibands,
                                               ikpoints=ikpoints,
                                               n_samples=2000,
                                               std_tol=0.02)
        click.echo("\nUsing cutoff: {} eV".format(planewave_cutoff))

    return get_wavefunction_coefficients(wf,
                                         iband=ibands,
                                         ikpoints=ikpoints,
                                         encut=planewave_cutoff)