Hi All,
We are running multiple Meep jobs (say 40) in parallel on a linux
cluster and whenever a job completes, we will be submitting a new Meep
job. This iterates till we execute say 10000 Meep jobs.
Problem faced:
While executing these Meep jobs, it is requesting a lot of file
operation which is hammering my HOME directory. This is holding me back
in getting some results. So I would like to know if Meep internally uses
any auxiliary files during execution.
Note: The Meep code does a field integral the electric field at a
specified point for the given structure.
Below is the meep code:
;;;;;;;;;;;;;Parameter Definement;;;;;;;;;;;;;;;;;;
(print "Job Started=" "<"JobID">" "\n");
(define edge0 0) ; edge0 is always 0
(define-param dx1 0.796078431372549);
(define-param dy1 0.5098039215686274);
(define edge1 (+ edge0 dx1 dy1));
(define-param dx2 0.2509803921568627);
(define-param dy2 0.9333333333333333);
(define edge2 (+ edge1 dx2 dy2));
(define-param dx3 0.007843137254901961);
(define-param dy3 0.5254901960784314);
(define edge3 (+ edge2 dx3 dy3));
(define-param dx4 0.592156862745098);
(define-param dy4 0.6313725490196078);
(define edge4 (+ edge3 dx4 dy4));
(define-param dx5 0.403921568627451);
(define-param dy5 0.04705882352941176);
(define edge5 (+ edge4 dx5 dy5));
(define-param dx6 0.3019607843137255);
(define-param dy6 0.1803921568627451);
(define edge6 (+ edge5 dx6 dy6));
(define-param dx7 0.4470588235294118);
(define-param dy7 0.7411764705882353);
(define edge7 (+ edge6 dx7 dy7));
(define-param dx8 0.4392156862745098);
(define-param dy8 0.7490196078431373);
(define edge8 (+ edge7 dx8 dy8));
(define-param dx9 0.5254901960784314);
(define-param dy9 0.3411764705882353);
(define edge9 (+ edge8 dx9 dy9));
(define-param dx10 0.1843137254901961);
(define-param dy10 0.1607843137254902);
(define edge10 (+ edge9 dx10 dy10));
(define-param thick 0.2803921568627451);
(define-param grat_size 10); size of grating
(define-param a 0.01);
(print "a=" a "\n");
(define-param source_to_grat 4); the distance from the upper side of the
grating to the source
(define-param test_to_grat 2); the distance from the lower side of the
grating to the test surface
(define-param padr 2)
(define-param padz_up 0.5)
(define-param padz_down 0.5)
(define-param dpml 1) ; pml thickness
(define-param sr (+ grat_size padr dpml) )
(define-param sz (+ dpml padz_down test_to_grat thick source_to_grat
padz_up dpml))
(print "\n")
(print "edge10=" edge10 "\n")
(print "sr=" sr "\n")
(print "sz=" sz "\n")
(define low_z (- 0 (/ sz 2)))
(define grat_center (+ low_z dpml padz_down test_to_grat (/ thick 2)));
center of the grating structure
(define source_z (+ grat_center (/ thick 2) source_to_grat)); position
of the source
(define test_z (- grat_center (/ thick 2) test_to_grat))
(define-param eps (* 30 30) ) ; dielectric constant of slab
(define-param eps_background (* 10 10)) ; dielectric constant of
environment
;;;;;;;;;;;;;Parameter Definement Done;;;;;;;;;;;;;;;;;;
(set! dimensions CYLINDRICAL)
(set-param! m 0)
(set! geometry-lattice (make lattice (size sr no-size sz)))
(set! default-material (make dielectric (epsilon eps_background)))
(define (groove edge dx dy)
(list
(make block (center (+ edge dx (* .5 dy)) 0 grat_center)
(size dy infinity (* 2 thick))
(material (make dielectric (epsilon
eps_background)))
)
(make block (center (- 0 (+ edge dx (* .5 dy))) 0 grat_center)
(size dy infinity (* 2 thick))
(material (make dielectric (epsilon
eps_background)))
)
)
)
(set! geometry
(append
(list
(make block (center 0 0 grat_center)
(size (* grat_size 2) infinity
thick)
(material (make dielectric
(epsilon eps)))
)
)
(groove edge0 dx1 dy1)
(groove edge1 dx2 dy2)
(groove edge2 dx3 dy3)
(groove edge3 dx4 dy4)
(groove edge4 dx5 dy5)
(groove edge5 dx6 dy6)
(groove edge6 dx7 dy7)
(groove edge7 dx8 dy8)
(groove edge8 dx9 dy9)
(groove edge9 dx10 dy10)
)
)
(define-param fcen 0.06525); pulse center frequency ~(1.96GHz or 2GHz)
(define-param temporal_width 10); Temporal width of the sinusoidal source
(define-param source_size (+ grat_size padr)); size of the magnetic current
(define lambda0 (/ 1 fcen)); Wavelength, in MEEP unit
(define-param gb_w0 (* grat_size 0.8))
(define gb_z0 (* (* pi gb_w0 gb_w0) fcen))
(define gb_wzi (* gb_w0 (sqrt (+ 1 (/ (* source_to_grat source_to_grat)
(* gb_z0 gb_z0))))))
(define gb_rzi (+ source_to_grat (/ (* gb_z0 gb_z0) source_to_grat)))
(define gb_pcoef (/ pi (/ gb_rzi fcen)))
(define gb_mcoef (/ -1.0 (* gb_wzi gb_wzi)))
(print "pcoef=" gb_pcoef "\n")
(print "mcoef=" gb_mcoef "\n")
(define (source_amp p)
(exp (* (+ gb_mcoef (* 0+1i gb_pcoef)) (* (vector3-x p) (vector3-x p))))
)
(set! force-complex-fields? true)
(set! sources
(list
(make source
(src (make continuous-src (frequency fcen) (width
temporal_width) ) )
(component Hp)
(center 0 0 source_z) (size source_size infinity 0)
(amp-func source_amp)
)
)
)
(set! pml-layers (list (make pml (thickness dpml))))
(set-param! resolution 20)
(define-param tim 1000) ;running time
(define (ESquare r Er Ez) (+ (* (magnitude Er) (magnitude Er)) (*
(magnitude Ez) (magnitude Ez)) ));
(define (ESquare_max_output)
(print "ESquare maximum: "
(max-abs-field-function (list Er Ez) ESquare (volume (size (*
grat_size 2) infinity 0) (center 0 0 test_z))
)
"\n"
)
)
(define (ESquare_Integral)
(print "ESquare Integral: "
(integrate-field-function (list Er Ez) ESquare (volume (size (*
grat_size 2) infinity 0) (center 0 0 test_z))
)
"\n"
)
)
(define (cond?) (> (meep-round-time) 600))
(begin
(run-until cond?
(at-end
ESquare_max_output
ESquare_Integral
)
)
)
(print "Job Done")
_______________________________________________
meep-discuss mailing list
[email protected]
http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/meep-discuss