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

Reply via email to