On Tue, 15 May 2007, Chris wrote:
> I am trying to extend the "holey waveguide" example to 3D ( as part of
> an incremental effort to model more complex structures. )
>
> When I try to run meep on the new 3D structure, I get the message
> "meep: Could not determine normal direction for given volume."

You need to modify the flux plane.

In the 2d example, the flux plane is just a line:

(define trans ; transmitted flux
         (add-flux fcen df nfreq
                   (make flux-region
                     (center (- (* 0.5 sx) dpml 0.5) 0) (size 0 (* w 2)))))

Note that the size is (size 0 (* w 2)) which defines a line segment of 
length 2w.

If you use the same command in 3d, Meep will give an error because it 
can't figure out what direction of flux you want to compute -- given a 
line, there isn't a unique normal vector.

You could specify a particular direction explicitly by using (make 
flux-region (direction X) ...).  However, this is probably not what you 
want.  In 3d, you probably want to compute the transmitted flux through a 
2d region, i.e. with some thickness in the z direction.  To do this, just 
specify a z-component for the (size ...) giving the thickness of the flux 
plane in z.  Meep can then unambiguously determine the flux direction from 
the normal to this plane.

Steven

_______________________________________________
meep-discuss mailing list
[email protected]
http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/meep-discuss

Reply via email to