Esempio n. 1
0
def spectral_dens_from_corrfce(self):
    #params = world.params
    
    params = {"ftype":    world.ctype,
              "reorg":    world.reorg,
              "cortime":  world.ctime,
              "T":        world.temp,
              "matsubara":world.mats}
    ta = world.ta
    
    with energy_units(world.e_units):
        cf = CorrelationFunction(ta,params)
        
    world.sd = cf.get_SpectralDensity()
Esempio n. 2
0
vals = numpy.zeros(2000, dtype=numpy.complex)
l = 1
while k > 0:
    vals[l] = cF.data[k] * numpy.exp(-wa.data[k] / (kB_int * temperature))
    l += 1
    k -= 1

tf = DFunction(wa, vals)

tf.plot(ylabel=r'$\tilde{C}(\omega)$ [rad$\cdot$fs$^{-1}$]',
        axis=[-0.1, 0.1, -0.005,
              numpy.max(numpy.real(cF.data)) * 1.1],
        real_only=False)

# Get spectral density
sd = cf.get_SpectralDensity()

with energy_units("1/cm"):
    sd1 = SpectralDensity(ta, params)
    cf1 = CorrelationFunction(ta, params)
    cf1n = sd1.get_CorrelationFunction()
    sd1n = cf1.get_SpectralDensity()

cf1.plot(real_only=False, show=False)
cf1n.plot()

lamb_cfm = cf1.measure_reorganization_energy()
lamb_def = cf1.get_reorganization_energy()
lamb_sdm = sd1.measure_reorganization_energy()
print(lamb_cfm, lamb_def, lamb_sdm)
print(numpy.allclose(lamb_cfm, lamb_def, rtol=1.0e-3))
l = 1
while k > 0:
    vals[l] = cF.data[k]*numpy.exp(-wa.data[k]/(kB_int*temperature))
    l += 1
    k -= 1
    
tf = DFunction(wa,vals)

if _show_plots_:
    tf.plot(ylabel=r'$\tilde{C}(\omega)$ [rad$\cdot$fs$^{-1}$]',
            axis=[-0.1,0.1,-0.005,numpy.max(numpy.real(cF.data))*1.1],
            real_only=False)
    

 # Get spectral density       
sd = cf.get_SpectralDensity()

with energy_units("1/cm"):
    sd1 = SpectralDensity(ta,params)
    cf1 = CorrelationFunction(ta, params)
    cf1n = sd1.get_CorrelationFunction()
    sd1n = cf1.get_SpectralDensity()

if _show_plots_:
    cf1.plot(real_only=False,show=False)
    cf1n.plot()

lamb_cfm = cf1.measure_reorganization_energy()
lamb_def = cf1.get_reorganization_energy()
lamb_sdm = sd1.measure_reorganization_energy()
print(lamb_cfm, lamb_def, lamb_sdm)