Hi, Oscar, this is rather straightforward. The dielectric function
used by MEEP is given by the well-known Lorentz formula. (I have
verified it numerically, but this is a bit longer to explain.)
In Python, I use the following function for the material. As an
example I will give the SiO2 definition for broad spectral range. I
hope it will be readable even for non-Python users:
class material_SiO2():#{{{
""" Amorphous SiO2
Optical resonances fitted manually to experimental spectra
Note: Discrete Lorentzian oscillators used predict higher losses
in the mid-IR region
Note2: crystalline SiO2 should be similar, but is slightly birefringent
From Gunde, M. K.: "Vibrational modes in amorphous silicon dioxide"
Physica B: Physics of Condensed Matter, Volume 292, Issue 3-4,
p. 286-295.
"""
def __init__(self, where=None, sigmafactor=1):
self.eps = 1
percm = 3e8/1e-2
self.pol = [
{'omega': 447*percm, 'gamma': 49*percm, 'sigma':.923},
{'omega': 811*percm, 'gamma': 69*percm, 'sigma':.082},
{'omega':1064*percm, 'gamma': 75*percm, 'sigma':.663},
{'omega':1165*percm, 'gamma': 80*percm, 'sigma':.058},
{'omega':1228*percm, 'gamma': 65*percm, 'sigma':.017},
{'omega': 2.6e15, 'gamma': .5e15, 'sigma': .5},
{'omega': 2.8e15, 'gamma': .2e15, 'sigma': .55},
]
self.name = "Amorphous silica glass (SiO2) for IR range"
self.shortname = "SiO2 (IR)"
self.where = where
#}}}
def analytic_eps(mat, freq):
complex_eps = mat.eps
for polariz in mat.pol:
complex_eps += polariz['sigma'] * polariz['omega']**2 /
(polariz['omega']**2 - freq**2 - 1j*freq*polariz['gamma'])
return complex_eps
See also http://fzu.cz/~dominecf/misc/eps/
Regards,
Filip
2013/5/24, Oscar Garcia <[email protected]>:
> Dear MEEP users,
>
>
>
> I´m wondering if it is possible to get the value (n,k) from a dispersive
> defined material for a particular frequency. For example, if you have the
> following material:
>
>
>
> (define-param silicon (make dielectric (epsilon 1.5) (E-susceptibilities
>
>
> (make lorentzian-susceptibility (frequency 3.64) (gamma 0) (sigma 8))
>
>
> (make lorentzian-susceptibility (frequency 2.76) (gamma (* 0.063 2)) (sigma
> 2.85))
>
>
> (make lorentzian-susceptibility (frequency 1.73) (gamma (* 2.5 2)) (sigma
> -0.107))
>
>
> )))
>
> Is it possible to do something like this:
>
>
>
> get_n_real(frequency=1, material=silicon)
>
> get_n_img (frequency=1, material=silicon)
>
>
>
> Someone knows an easy way to implement this function in MEEP?
>
>
>
> Thank you very much and best regards,
>
>
>
> Oscar García
>
> FideNa
>
> 8 <http://www.fidena.es/> www.fidena.es | ' +34 948166177 | 6 +34
> 948166211
>
> Tanto el presente mensaje como cualquier material adjunto a él han sido
> enviados por FideNa, y son propiedad de FideNa o han sido utilizados por
> FideNa con permiso de sus propietarios. Es por tanto material
> potencialmente
> confidencial que no se difundirá ni utilizará en manera alguna sin el
> consentimiento escrito previo de FideNa.
>
>
>
>
>
>
_______________________________________________
meep-discuss mailing list
[email protected]
http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/meep-discuss