Dear meep users, 

I have tried various things now that might make the problem a bit clearer and 
maybe somebody now knows how to help:


1. The problem does not seem to be the source function itself. I have tried a 
continuous source and the electric field amplitude also shows a strange 
amplitude offset there... Do I lack some basic understanding here? (and should 
be ashamed? ;-)   

2. The second thing is that the position of the source does not matter either. 
It doesn't matter whether it's far away or close to the PML, the problem 
persists.  

3. The PML are rather thin in my setup but I tried making them a bit thicker 
and that didn't help either. Apart from the PML there is really nothing in the 
setup that could influence the fields, it's all air. 

It is also interesting that the frequency-dependent excitation correction term 
in the source has the desired effect in 2D but not in 3D. Its purpose is to 
compensate for the fact that the electric field amplitude excited by a current 
decreases with frequency. 

Does anyone have an idea what the problem could be? 
Best regards
Andrea

 


 previous post:
Subject: [Meep-discuss] Problem with Customized Source (Chirp) in 3D


 Dear meep-users, 


I am new to meep and have only been using it for 2Dsimulations so far. In the 
problem I work with, a chirp source is necessary. The pulse from this source 
shall last 200 time steps and after this the source current should be 0. 

When I simulated the fields caused by this source current in 2D, the results 
were as desired: after 200 time steps the relevant field component was 0. 
Now I used this same source in a 3D simulation and although the measured field 
component stays constant after 200 time steps, the field component is not 0 but 
has a constant amplitude >0.

I have tried to figure out what is different now that I work in 3D but have not 
found a solution yet, so suggestions would be greatly appreciated. 
The ctl-file looks as follows, with the definition of the source function at 
the beginning, note that the variables pmlarray, pmlayers and h are handed over 
by another program.

 (define (chirp t)
    (let* ((f0  0.0233) ; 
       (f1  0.1033) ;
       (t1  200) ; 
       (alpha (/ (- f1 f0) t1))
       (fi (+ f0 (* 0.5 (* alpha t)))) 
       (iphase (+ 0.25 (* fi t))) 
       (iphi (* (* 2 pi) iphase)) 
       (excor (/ 1 fi)) ;excitation correction term
       (if (< t t1)
       (* excor (cos iphi ))
        0 )))

(define gridsizex (+ (* 2 pmlayers) 304.8))
(define gridsizey (+ (* 2 pmlayers) 350))
(define gridsizez (+ (* 2 pmlayers) h))

(set! geometry-lattice (make lattice (size gridsizex gridsizey gridsizez)))

(set! geometry (list)) 

(define arrayy (- (+ pmlayers pmlarray) (/ gridsizey 2)))
                         
(set! sources (list
               (make source
         (src (make custom-src (src-func chirp) (start-time 0)))
                 (component Ez)
                 (center 0 arrayy 0))))

(set! pml-layers (list (make pml (thickness pmlayers))))
(set! resolution 1)
(run-until s
       (to-appended "chirp" (at-every 1 (in-point (vector3 0 arrayy 0) 
output-efield-z)))) 


I would extremely appreciate your help. Thank you!
Andrea 

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

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

Reply via email to