THz Time-domain modelling
Using a single Lorentz-Oscillator model we model the responce of a materials with a variable thickneses
Download original notebookEvaluate initialization cells first
f[ω_, eps_, ω0_, ωp_, γ_] := eps + (*FB[*)(((*SpB[*)Power[ωp(*|*),(*|*)2](*]SpB*))(*,*)/(*,*)((*SpB[*)Power[ω0(*|*),(*|*)2](*]SpB*) - (*SpB[*)Power[ω(*|*),(*|*)2](*]SpB*) + I γ ω))(*]FB*)
n[ω_, params__] := (*SqB[*)Sqrt[f[ω, params]](*]SqB*) e[ω_, L_, params__] := Exp[- (*FB[*)((I 2π (*SpB[*)Power[10(*|*),(*|*)12](*]SpB*) ω n[ω, params] L)(*,*)/(*,*)(c cm2THz))(*]FB*) ] /.{c -> 3.0 (*SpB[*)Power[10(*|*),(*|*)10](*]SpB*), cm2THz -> 33.4}
Material parameters ( and )
Plot[n[x, 9.8, 28.66, 15, 1.5] // ReIm // Evaluate, {x,28.66 - 20, 28.66 + 20}, FrameLabel->{"wavenumber (cm^{-1})"}, Frame->True ]
(*VB[*)(FrontEndRef["908feaa6-cf0d-4ef9-9daa-f48b005a8f11"])(*,*)(*"1:eJxTTMoPSmNkYGAoZgESHvk5KRCeEJBwK8rPK3HNS3GtSE0uLUlMykkNVgEKWxpYpKUmJprpJqcZpOiapKZZ6lqmJCbqpplYJBkYmCZapBkaAgCXxhZl"*)(*]VB*)
A responce of a material to a short pulse ( - function)
tds[params__] := (Join[#, Reverse[#]] &@ Table[e[ω, params], {ω, 0,100,0.1}]) // Fourier
Make it interactive
evaluate this after initialization cells
udata = {{0,0}, {500,0}}; thick = ""; Graphics[{ ColorData[97][1], Line[udata // Offload], Black, Text[thick // Offload, {300, 2.5}] }, PlotRange->{{0,400}, {-3,3}}, TransitionDuration->30, TransitionType->"Linear", Axes->True, Frame->True, FrameLabel->{"time, ps", "Electric field, nA"} ]
(*VB[*)(Graphics[{RGBColor[0.368417, 0.506779, 0.709798], Line[Offload[udata]], GrayLevel[0], Text[Offload[thick], {300, 2.5}]}, PlotRange -> {{0, 400}, {-3, 3}}, TransitionDuration -> 30, TransitionType -> "Linear", Axes -> True, Frame -> True, FrameLabel -> {"time, ps", "Electric field, nA"}])(*,*)(*"1:eJxTTMoPSmNkYGAoZgESHvk5KWnsIB4HkHAvSizIyEwuTmOByftkFpekMcPkg9ydnPNz8ouKCqZNeqoy5bp9keG0l9M7zB/YFx1vmeG9atsze4TRPpl5qRAeyHz/tLSc/MSUYlYguzQlsSQRIsUJsbXSJ7UsNScTyGFIY4IZEJJaUYLdgBKgI7MRCkGOzNQBqixiAAMWB4RcUGlOKtiWgJz8kqDEvPRUVH1opoC0Z05gRHYGWPzv////M5lRnAc2WQjkzqLEvOLMksz8PJfSokQQnSmHqZIPRWVIZUFqMBs0lBKL0NSCGI4VqcWQYCgqTUWTB4WBW1FibiouBVwwBT6JSak5qH4JBsVkSWZuqo5CQXEwyAOuOanJJUWZyQppmak5KToKeY4AuzGBgQ=="*)(*]VB*)
Try to drag this slider
EventHandler[InputRange[0.001, 0.1, 0.002, "Label"->"Thickness"], Function[thickness, udata = {Range[Length[#]], #} &@ (Drop[#, -Length[#]/2//Ceiling] &@ tds[thickness, 9.8, 28., 15., 0.05] // Re) // Transpose; thick = ToString[thickness]<>" cm"; ]]
(*VB[*)(EventObject[<|"Id" -> "bdc36f4c-5a9e-4480-8e4a-2c51001f6424", "Initial" -> 0.05, "View" -> "4216f183-6df1-4eba-8202-f39ec1c0354c"|>])(*,*)(*"1:eJxTTMoPSmNkYGAoZgESHvk5KRCeEJBwK8rPK3HNS3GtSE0uLUlMykkNVgEKmxgZmqUZWhjrmqWkGeqapCYl6loYGRjpphlbpiYbJhsYm5okAwB8XxVo"*)(*]VB*)