Dear all,
I am trying to use meep to compare the back scattering properties of
various paricles (spheres, hollow spheres etc). I set up a computational
cell with PML all around, because the field was building up to very high
levels (long after the pulse stopped) and increased unstoppable if I have a
PML at two edges.
I set up flux regions all around the sphere in shape of a box close to the
cell edge. From this I try to get the back scattering but I can't figure
out how to get reasonable results. For the side regions the flux seems to
be positive for some frequencies and negative for others.
How would I would I have to set up to calculate the total back scattered
light? Without the flux regions at the cell edge perpendicular to the
source there would be some intensity undetected which gets absorbed by the
PML.
Below is the ctl file I wrote.
Thanks in advance!
Olf
-----------------------------------------------------------------------------------------------------------------------------------------------------------
(define-param sx 8) ; size of cell in X direction
(define-param sy 20) ; size of cell in Y direction
(define-param pad 2) ; distance of the flux region to cell edge
(define-param rOut 2) ; outer radius of the spheres
(define-param rIn 1); inner radius of the spheres
(define-param sourceSize (- sy (* 0 pad)))
(set! geometry-lattice (make lattice (size sx sy no-size)))
(define-param no-struct? true)
(define-param plot? false)
(set! geometry
(if no-struct?
(list
(make sphere (center 0 0) (material (make dielectric (epsilon
1))) (radius rOut)))
(list
(make sphere (center 0 0) (material (make dielectric (epsilon
2.25))) (radius rOut))
(make sphere (center 0 0) (material (make dielectric (epsilon
1))) (radius rIn))
)
)
)
(define-param fcen 0.2) ; pulse center frequency
(define-param df 0.25) ; pulse width (in frequency)
(define-param nfreq 100) ; number of frequencies at which to compute flux
(set! sources (list (make source (src (make gaussian-src (frequency fcen)
(fwidth df)))(component Ez)(center (+ 1.5 (* -0.5 sx)) 0)(size 0
sourceSize))))
(set! pml-layers (list (make pml (thickness 1.0) )))
(set-param! resolution 10)
(define incident (add-flux fcen df nfreq (make flux-region (center (+ (/ sx
-2) pad) 0) (size 0 sy))))
(define refl1 (add-flux fcen df nfreq (make flux-region (center (+ (/ sx
-2) pad) 0) (size 0 sy))))
(define refl2 (add-flux fcen df nfreq (make flux-region (center (+ (/ sx
-4) (/ pad 2)) pad) (size (- (/ sx 2) pad) 0))))
(define refl3 (add-flux fcen df nfreq (make flux-region (center (+ (/ sx
-4) (/ pad 2)) pad) (size (- (/ sx 2) pad) 0))))
(define trans1 (add-flux fcen df nfreq (make flux-region (center (- (/ sx
2) pad) 0) (size 0 sy))))
(define trans2 (add-flux fcen df nfreq (make flux-region (center (- (/ sx
4) (/ pad 2)) pad) (size (- (/ sx 2) pad) 0))))
(define trans3 (add-flux fcen df nfreq (make flux-region (center (+ (/ sx
-4) (/ pad 2)) pad) (size (- (/ sx 2) pad) 0))))
(if (not no-struct?) (load-minus-flux "refl-flux1" refl1))
(run-sources+ (stop-when-fields-decayed 50 Ez (vector3 (- (/ sx 2) pad) 0)
1e-6))
(if no-struct? (save-flux "refl-flux1" refl1))
(if no-struct? (save-flux "refl-flux2" refl2))
(if no-struct? (save-flux "refl-flux3" refl2))
(display-fluxes incident trans1 trans2 trans3 refl1 refl2 refl3)
-----------------------------------------------------------------------------------------------------------------------------------------------------------
_______________________________________________
meep-discuss mailing list
[email protected]
http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/meep-discuss