Moreover, since c = 1 in Meep units, a (or a / c) is our unit of time as well. In particular, the frequency ω in Meep (corresponding to a time dependence e − iωt) is always specified in units of 2πc / a, which is equivalent to specifying ω as 1 / T: the inverse of the optical period T in units of a / c. This, in turn, is equivalent to specifying ω as a / λ where λ is the vacuum wavelength. (A similar scheme is used in MPB.)

For example, suppose we are describing some nanophotonic structure at infrared frequencies, where it is convenient to specify distances in microns. Thus, we let a = 1μm. Then, if we want to specify a source corresponding to λ = 1.55μm, we specify the frequency ω as 1/1.55 = 0.6452. If we want to run our simulation for 100 periods, we then run it for 155 time units (= 100 / ω).

On a computer, we can only simulate a finite region of space, which means that we must terminate our simulation with some boundary conditions. Three basic types of terminations are supported in Meep: Bloch-periodic boundaries, metallic walls, and PML absorbing layers. Also, one can exploit symmetries of a problem to further reduce the computational requirements.

perfectly matched layers (PML)PML is, strictly speaking, not a boundary condition—rather, it is a special absorbing material placed adjacent to the boundaries. PML is actually a fictitious (non-physical) material, designed to have zero reflections at its interface. Although PML is reflectionless in the theoretical continous system, in the actual discretized system it has some small reflections which make it imperfect. For this reason, one always gives the PML some finite thickness in which the absorption gradually "turns on".

Perhaps the most common task to which FDTD is applied is that of computing the transmission or scattering spectra from some finite structure, such as a resonant cavity, in response to some stimulus.


The use of Meep revolves around the control file, abbreviated "ctl" and typically called something like foo.ctl (although you can use any file name you wish). The ctl file specifies the geometry you wish to study, the current sources, the outputs computed, and everything else specific to your calculation. The ctl file is actually implemented on top of the libctl library, a set of utilities that are in turn built on top of the Scheme language. Thus, there are three sources of possible commands and syntax for a ctl file:

Comments

Popular posts from this blog

到德国开公司你必须要知道这些

[其他] 中国人如何在德国成立公司以及新公司经营

李鹏身世疑云