hi Shiv, These are the functions I use to convert from real units to the meep system. cc-ing the Meep mailing list should anyone else want to comment or correct these:
(define C_0 299792458.0); m/s (define (meepify-length real-length lscale) (/ real-length lscale)) (define (meepify-velocity real-velocity) (/ real-velocity C_0)) (define (meepify-time real-time lscale) (meepify-length (* C_0 real-time) lscale)) (define (meepify-ang-freq real-omega lscale) (/ (* real-omega lscale) (* 2.0 PI C_0))); actually expressed as real frequency \nu=1/T Length is specified as the "number of" 'a' units where 'a' is your length-scale, usually a wavelength. Velocities are specified as the "number" of c, where c is the speed of light in vacuum. These two scales therefore fix the time-scale - time is specified as the "number of" a/c. So if a=1um, then time is specified as the "number of" a/c=(1e-6/3e8) second intervals. If you have a monochromatic source with time-period T expressed in the Meep scale, i.e., T*a/c is the actual period in seconds, then 1/T is the frequency in Meep units Meep internally multiplies this by 2\pi to convert it to angular frequency. We as users never need to explicitly provide this 2\pi value because the actual frequency and angular frequency are equivalent through this scaling transform. I believe the Meep documentation would be much clearer if it avoids mentioning angular frequency when requiring the real frequency as input. The resolution is the number of intervals (Yee-cells) you want each spatial unit 'a' to be divided into. Suppose you choose 'n' for your resolution and your simulation "volume" to be v spatial units long. Then you actually have n*v intervals in your simulation - the E and H fields are distributed on the boundaries according to Yee's scheme. Each Yee cell is therefore 1/n Meep units long which corresponds to real length of a/n. In FDTD, no signal travels faster than speed of light in vacuum, c. Therefore signals from one point can reach a neighbouring point only at or after (a/n)/c = (a/cn) seconds. In Meep units, divide by (a/c) to get 1/n to be this minimum time interval. So you see how spatial resolution affects the time-resolution also. Neighbouring points must be spaced so that this causality is respected. Now, in FDTD, E fields affect H and H fields affect E. So the signal relationships are actually between field values that are displaced by half the extent of the Yee-cell (in each dim). So the dt now becomes 0.5/n instead of 1/n. Each FDTD iteration updates the H fields and then updates the E fields. You could refer to this as two time steps with one for H and one for E, or as one time-step with half for H and half for E. I'm not sure which convention Meep adopts. For numerical stability a "Courant factor" multiples the 0.5/n. This takes into account the deviation of the speed of light from its vaccuum value of 'c' due to refractive index effects. So your time step now is 0.5S/n where S is the Courant factor. My extrapolation of Meep units: absolute permittivity and permeability are specified in units of \eps_0 and \mu_0, the values for free-space. These quantities involve dimensions of mass and charge in addition to length and time. Therefore, these units presumably fix the mass-scale and charge-scale as well but since we don't explicitly deal with these in usual FDTD problems, we don't "see" these scales. cheers! Manoj shiv chawla wrote: > Helo Manoj > > I now understand a fair amount of meep for my > purpose. The next thing which is puzzling me is units > in meep. I have set the the meep parameter 'a' ,say to > be,1 micrometer(1 um). Now, I donot understand about > the base time units and frequency units. I think that > a=1 um, sets, time = 1e-15 s. Am I interpreting it > correctly? Also how resolution affects the time step > and spatial step of yee's algroithm? Can you help me > with this by an example. > > Thanks > > Regards > Shiv _______________________________________________ meep-discuss mailing list [email protected] http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/meep-discuss

