Похожие презентации:
Workshop (1)
1.
Задача №1. Восстановление диэлектрических характеристик методомтонкопленочной аппроксимации. Написание кода в Python
1. Подготовить спектры от образца и референса в форматах txt в заданной папке
2. Загрузить библиотеки в Python
3. Прописать пути к файлам
задав переменные
ref_name и sample_name
4. Загрузить данные через фукцию
loadtxt из библиотеки numpy задав
переменные data_ref и data_sample
import pylab
import numpy
import scipy
ref_name ="C:/.../ref3_13_52_mbar_8_10_-2.txt"
sample_name ="C:.../sample_1f-60%_13_37_mbar_8_10_-2.txt"
data_ref = numpy.loadtxt(ref_name).T
data_sample = numpy.loadtxt(sample_name).T
5. Загрузить данные через переменные x, e_ref, e_sample
x = data_sample[0,:]
e_ref = data_ref[1,:]
e_sample = data_sample[1,:]
2.
Задача №1. Восстановление диэлектрических характеристик методомтонкопленочной аппроксимации. Написание кода в Python
6. Используя библиотеку scipy и rfft, rfftfreq сделать
преобразование Фурье:
- определить длину массива fftlen =len()
- перевести мм в пс по формуле ps=mm*0.1499
- dt - отпределить шаг дискретизации по времени
- сделать быстрое преобразование Фурье через rfft,
rfftfreq
7. Построить амплитуду и фазу после преобразования Фурье
от частоты в терагерцах
8. Ввести необходимые физические константы необходимые c, e0
9. Рассчитать и построить комплексные
показатель преломления, проводимость и диэлектрическую функцию
считая что толщина пленок 100 нм.
10. Произвести запись в фаил
txt c помощью numpy.column_stack
fftlen = len(e_sample)
dt = abs(x[-1] - x[0]) / (fftlen - 1)
e_sample_f = np.abs(rfft(e_sample))
e_sample_f[1:-1] *= 2
e_ref_f = np.abs(rfft(e_ref))
e_ref_f[1:-1] *= 2
freq = rfftfreq(fftlen, d=dt)
c=3*10**8
e0=8.85*10**(-5)
sigma=(c*e0*2)*(1/t-1)/100
output_txt = "C:/.../fft_results.txt"
numpy.savetxt(output_txt, data_to_save,
header=header, delimiter=',',
comments='', fmt='%.6e', encoding='utf8-sig')
3.
Задача №2. Восстановление диэлектрических характеристик методомтонкопленочной аппроксимации. Написание кода в Python
1. Подготовить спектры проводимости от
образца и референса в форматах txt в
заданной папке
2. Загрузить библиотеки в Python: lmfit,
numpy, pylab
3. Загрузить данные из файлов
4. Задание функции Drude-Plasmon,
Drude, Plasmon
def Drude(pars, Freq):
через pars.valuesdict()
output_txt = "C:/Users/user/Desktop/fft_results.txt"
numpy.savetxt(output_txt, data_to_save, header=header, delimiter=',',
comments='', fmt='%.6e', encoding='utf-8-sig')
from lmfit import Parameters, minimize, fit_report
from numpy import random, linspace, pi, exp, sin, sign, loadtxt
from pylab import text, plot, show, real, imag, title, xlabel, ylabel, ylim, xlim,
subplot
Freq = dataCond[:,0]
ReCondExp = dataCond[:,1]
ImagCondExp = dataCond[:,2]
def Drude(pars, Freq):
vals = pars.valuesdict()
sigmaD = vals['sigmaD']
gammaD = vals['gammaD']
omega=2*pi*Freq*1e12
cond =
ph.i*gammaD*sigmaD/(omega+ph.i*ga
mmaD)
return cond
def plasmon(pars, Freq):
vals = pars.valuesdict()
sigmap1 = vals['sigmap1']
gammap1 = vals['gammap1']
omega01 = vals['omega01']
vals['gammaD1']
omega=2*pi*Freq*1e12
cond =
ph.i*sigmap1*omega*gammap1/(omega**2omega01**2+ph.i*omega*gammap1)
return cond
4.
Задача №2. Восстановление диэлектрических характеристикметодом тонкопленочной аппроксимации. Написание кода в
Python
5. Функция Residual возвращает разность между
моделью и данными в квадрате. Введем 3
функции - как действительной, мнимой части,
так и обеих частей
def residualReal(pars, Freq, data=None):
def residualImag(pars, Freq, data=None):
def residualBoth(pars, Freq, data=None)
6. Инициализируем фитирующие параметры
def residualReal(pars, Freq, data=None):
cond=drudeCond(pars, Freq)
model = real(cond)
if data is None:
return model
return (model - real(data))**2
fit_params = Parameters()
# initial guess
fit_params.add('sigmaD', value=0.86+0.63 , min =0, vary = False)
fit_params.add('gammaD', value=9.364970e+12 , min =0, vary =
False)
fit_params.add('sigmaD1', value=0.86 , vary = True)
fit_params.add('gammaD1', value=2.138e+13 , vary = True)
fit_params = Parameters()
fit_params.add('sigmaD', value= , min =, vary = )
7. Запустить комплексное фитирование
out = minimize(residualBoth, fit_params, args=(Freq,),
kws={'data':data})
5.
Задача №2. Восстановление диэлектрических характеристик методомтонкопленочной аппроксимации. Написание кода в Python
5. Функция Residual возвращает разность между
моделью и данными в квадрате. Введем 3
функции - как действительной, мнимой части,
так и обеих частей
def residualReal(pars, Freq, data=None):
def residualImag(pars, Freq, data=None):
def residualReal(pars, Freq, data=None):
cond=drudeCond(pars, Freq)
model = real(cond)
if data is None:
return model
return (model - real(data))
def residualBoth(pars, Freq, data=None)
6. Инициализируем фитирующие параметры
fit_params = Parameters()
fit_params.add('sigmaD', value= , min =, vary = )
fit_params = Parameters()
# initial guess
fit_params.add('sigmaD', value=0.86+0.63 , min =0, vary = False)
fit_params.add('gammaD', value=9.364970e+12 , min =0, vary =
False)
fit_params.add('sigmaD1', value=0.86 , vary = True)
fit_params.add('gammaD1', value=2.138e+13 , vary = True)
7. Запустить комплексное фитирование
out = minimize(residualBoth, fit_params, args=(Freq,),
kws={'data':data})
6.
Задача №2. Восстановление диэлектрических характеристикметодом тонкопленочной аппроксимации. Написание кода в
Python
5. Вывести фитирующие параметры
6. Задать дипазон частот для модельной
фукции через linspace
7. пределить модельные функции на
заданном частотном диапазоне
print(fit_report(out))
freq2=linspace(0.1,3,1000)
fittedCond=drudeCond(out.params, freq2)
fittedDrude=drude(out.params, freq2)
fittedDrude1=drude1(out.params, freq2)
fittedDrude2=drude2(out.params, freq2)
fittedDrude=drude(out.params, freq2)
8. сделать построение экпериментальных
данных и модельных данных
out = minimize(residualBoth, fit_params, args=(Freq,),
kws={'data':data})
7.
Задача №3. Изучение широкоплосных спектральныххарактеристик УНТ на основе готовых данных
100
1. Построить выданные данные в
OriginLab. Сделайте построение
пропускания от длины волны, частоты
(рад/c) и энергии в эВ.
80
Transmittance, %
2. Определите по положению пика
эффективную длину нанотрубок
VIS/IR
90
Aerosol - SWCNT
UV
70
60
CVD - DWCNT
50
THz
40
30
20
CoMoCAT - SWCNT
10
1000
10000
100000
Wavelength, (nm)
1000000
8.
Задача №5. Использование широкополосных спектров амплитуды функциипропускания для восстановления фазы пропускания по методу КрамерсаКронига. Написание кода в Python
1. Загрузить выданные данные в Python.
name = "C:/Users/Maria/Desktop/test-1.txt"
phy_name = "D:/THz-Lab/KK/phy.txt"
data = numpy.loadtxt(name).T
phy_data = numpy.loadtxt(name).T
2. Преобразовать длину волны
в нм в частоту в рад/с
omega = data[0, :]
t = data[1, :]
3. Использовать преобразование Крамерса-Кронига
для восстановления фазы в широком спектральном
дианазоне
9.
Задача №5. Использование широкополосных спектров амплитуды функциипропускания для восстановления фазы пропускания по методу КрамерсаКронига. Написание кода в Python
4. Зададим интегрирование с учетом особенной точки
в интеграле Коши по методу трапеций numpy.trapz
def principal(omegadash, omega, lntdash, lnt):
5. Отладить код на небольшом участке частот.
6. Сделать счетчик перемещения по частотам.
7. Прорядить данные для ускорения вычислений.
def principal(omegadash, omega, lntdash, lnt):
integrand = 0.0 * omegadash
for m in range(len(omegadash)):
if omega != omegadash[m]:
integrand[m] = (lntdash[m] - lnt) /
(omegadash[m] ** 2 - omega ** 2)
else :
integrand[m] = 0
p = numpy.trapz(x = omegadash, y =
integrand)
return p
omega_cut = 2e12
N = 10
mask = omega < omega_cut
omega = numpy.hstack([omega[mask][::N], omega[~mask]])
t = numpy.hstack([t[mask][::N], t[~mask]])
10.
Задача №6. Сравнение данных с литературой11.
Задача №7. Подготовка презентации1. Придумать название вашей работе
2. Определить проблемы, цели и задачи проекта. Любая научная работа основана на
глобальной проблеме, которая решается. Какая проблема решается в вашем проекте? Почему
изучение УНТ важно? что дает терагерцовая спектроскопия и в чем ее преимущества?
3. Представить фотографии изучаемых образцов (с микроскопа, с пропускающего
электронного микроскопа). Пояснить, что из себя представлял образец - объект исследования.
4. Показать восстановленные диэлектрические характеристики. Сделать вывод о разнице
между разными образцами
5. Сделать вывод о полученных параметрах Друде проводимости, и плазмоне
6. Сравнить с литературой