# -*- coding: utf-8 -*-
# -------------------------------------------------------------
# Analysis from File
# -------------------------------------------------------------
path = u'transmission_V-0.4.hdf5'
configuration = nlread(path, object_id='DeviceConfiguration_0')[0]

# -------------------------------------------------------------
# Analysis from File
# -------------------------------------------------------------
path = u'dynmat.hdf5'
dynamical_matrix = nlread(path, object_id='DynamicalMatrix_0')[0]

# -------------------------------------------------------------
# Analysis from File
# -------------------------------------------------------------
path = u'dHdR_V-0.4.hdf5'
hamiltonian_derivatives = nlread(path, object_id='HamiltonianDerivatives_0')[0]

# -------------------------------------------------------------
# Inelastic Transmission Spectrum
# -------------------------------------------------------------
kpoints = RegularKpointGrid(
    ka_range=[-0.2, 0.2],
    kb_range=[-0.2, 0.2],
    kc_range=[0.0, 0.0],
    na=3,
    nb=3,
    nc=1,
    )

qpoints = RegularKpointGrid(
    ka_range=[-0.5, 0.5],
    kb_range=[-0.5, 0.5],
    kc_range=[0.0, 0.0],
    na=9,
    nb=9,
    nc=1,
    )

inelastic_transmission_spectrum = InelasticTransmissionSpectrum(
    configuration=configuration,
    dynamical_matrix=dynamical_matrix,
    hamiltonian_derivatives=hamiltonian_derivatives,
    energies=numpy.linspace(-0.5, 0.5, 25)*eV,
    kpoints=kpoints,
    qpoints=qpoints,
    self_energy_calculator=RecursionSelfEnergy(),
    energy_zero_parameter=AverageFermiLevel,
    infinitesimal=1e-06*eV,
    phonon_modes=All,
    method=XLOE,
    spectral_representation=True,
    electrode_extensions=[0, 0],
)
nlsave('xloe_V-0.4.hdf5', inelastic_transmission_spectrum)
