# -*- coding: utf-8 -*-
# -------------------------------------------------------------
# Two-probe Configuration
# -------------------------------------------------------------
filename = '../0K-zero-bias.py/0K-zero-bias.py.hdf5'
filename_dynmat = '../dyn-mat/ff-device-si.hdf5'
filesave = '300K-zero-bias.py.hdf5'
device_configuration = nlread(filename, DeviceConfiguration)[-1]
dynamical_matrix = nlread(filename_dynmat,DynamicalMatrix)[-1]
T = 300

device_configuration_STD = SpecialThermalDisplacement(device_configuration, dynamical_matrix=dynamical_matrix, temperature=T*Kelvin)
device_configuration_STD.update()
nlsave(filesave,device_configuration_STD)

# -------------------------------------------------------------
# Projected Local Density Of States
# -------------------------------------------------------------
kpoint_grid = MonkhorstPackGrid(
    na=21,
    nb=21,
    )

projected_local_density_of_states = ProjectedLocalDensityOfStates(
    configuration=device_configuration_STD,
    method=DeviceDensityOfStates,
    energies=numpy.linspace(-1, 1, 101)*eV,
    kpoints=kpoint_grid,
    contributions=All,
    self_energy_calculator=RecursionSelfEnergy(),
    energy_zero_parameter=AverageFermiLevel,
    infinitesimal=1e-06*eV,
    )
nlsave(filesave, projected_local_density_of_states)
