Как применить преобразование Крамерса-Кронига к спектру отражения или поглощения NiO?Python

Программы на Python
Ответить Пред. темаСлед. тема
Гость
 Как применить преобразование Крамерса-Кронига к спектру отражения или поглощения NiO?

Сообщение Гость »


У меня есть экспериментальный спектр поглощения NiO, записанный по полному выходу электронов на M-крае Ni. Я хотел бы извлечь мнимую (и действительную) часть показателя преломления (которая также зависит от энергии). Кроме того, у меня есть спектр отражения NiO, и мне также хотелось бы знать, как извлечь действительную и мнимую часть показателя преломления.
Вот что я пробовал на Python:
[*]Я попытался подогнать пики спектра отражения (или поглощения) к функции, полученной следующим образом: -Я смоделировал действительную и мнимую часть диэлектрической функции с помощью функции осциллятора Лоренца. -Используя действительную и мнимую часть диэлектрической функции, я вывел функцию действительной и мнимой части показателя преломления -Используя мнимую часть показателя преломления, я вывел коэффициент поглощения в виде -Затем я использовал суперпозицию этих коэффициентов с различными коэффициентами масштабирования, чтобы учесть пики в спектрах поглощения. Параметрами аппроксимации являются коэффициенты масштабирования и параметры лоренцевой модели. Вот небольшой обзор моих функций:
energy_scale=np.arange(0,100, 0,001) def real_comp2(w, w_p, w_0, nu): вп = 8.854187817e-12 вернуть vp+ (vp*w_p**2*(-w**2+w_0**2))/((w**2-w_0**2)**2+w**2*nu**2) def imag_comp2(w, w_p, w_0, nu): вп = 8.854187817e-12 return -(vp*w_p**2*w*nu/((w**2-w_0**2)**2+w**2*nu**2)) def real_refr(w, w_p, w_0, nu): #vacuum_permittivity = 8.854187817e-12 #Фарад на метр # srvp = np.sqrt(vacuum_permittivity) return 0,707* np.sqrt(real_comp2(w, w_p, w_0, nu)+np.sqrt((real_comp2(w, w_p, w_0, nu))**2+(imag_comp2(w, w_p, w_0, nu)) **2)) def imag_refr(w, w_p, w_0, nu): #vacuum_permittivity = 8.854187817e-12 #Фарад на метр # srvp = np.sqrt(vacuum_permittivity) return 0,707* np.sqrt(-real_comp2(w, w_p, w_0, nu)+np.sqrt((real_comp2(w, w_p, w_0, nu))**2+(imag_comp2(w, w_p, w_0, nu) )**2)) def Reflectivity2(w, w_p, w_0, nu): return ((real_refr(w, w_p, w_0, nu)-1)**2+imag_refr(w, w_p, w_0, nu)**2)/((real_refr(w, w_p, w_0, nu)+1) **2+imag_refr(w, w_p, w_0, nu)**2) def Reflectivity2_norm(w, w_p, w_0, nu, A,c): return c+-A*(reflectivity2(w, w_p, w_0, nu) - отражательная способность2(w, w_p, w_0, nu).min())/(reflectivity2(w, w_p, w_0, nu).max() - отражательная способность2 (w, w_p, w_0, nu).min()) def Absorb_coeff(w, w_p, w_0, nu): return 4*np.pi*0.08*1e7*w_0*imag_refr(w, w_p, w_0, nu) def Absorb_coeff_norm(w, w_p, w_0, nu, A): return A*(absorbion_coeff(w, w_p, w_0, nu) - Absorb_coeff(w, w_p, w_0, nu).min())/(absorbion_coeff(w, w_p, w_0, nu).max() - Absorb_coeff(w) , w_p, w_0, nu).min()) def abs_superposition(w, w_p1, w_01, nu1, A1, w_p2, w_02, nu2, A2, w_p3, w_03, nu3, A3, c): #, w_p4, w_04, nu4, A4, c): return c+ Absorb_coeff_norm(w, w_p1, w_01, nu1, A1)+ Absorb_coeff_norm(w, w_p2, w_02, nu2, A2) + Absorb_coeff_norm(w, w_p3, w_03, nu3, A3)# + Absorb_coeff_norm(w, w_p4, w_04, ну4, А4) def Reflectivity_superposition(w, w_p1, w_01, nu1, w_p2, w_02, nu2, w_p3, w_03, nu3): вернуть отражательную способность2(w, w_p1, w_01, nu1) + отражательную способность2(w, w_p2, w_02, nu2) + отражательную способность2(w, w_p3, w_03, nu3) Даже если в моем коде есть проблемы с размерностями, я считаю, что мой подход логически неверен. Я не думаю, что смогу просто определить, какие пики (и сколько) соответствуют спектру поглощения (или спектру отражения) и сделать случайную суперпозицию для модельной функции. Вероятно, мне следует также вычесть фон и принять во внимание геометрию эксперимента (выпас).

Есть ли лучший способ сделать это? Может быть какой-то исходник или программа, которая всё учитывает? Я скачал Larch, но не знаю, как это сделать с помощью этой программы. Большое спасибо за Вашу помощь! Если вам нужна дополнительная информация, я рад предоставить ее в комментариях.
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»