Benjamin M. Schwartz wrote:
asadollahbaik a. (aa306) wrote:
Dear Meep Users,
I am about to start running the most important simulation of my PhD:
There is this very complicated 3D structure consisting of 40 cosine-shape
structures on a block of dielectric (it will be expanded to bigger number).
The eps-averaging part of making the geometry is taking ages:
With the resolution of 40 and 60hours of modelling only 10%of eps-averaging was
done!
Is there anyway to reduce this length of time?! Or I just need to be patient!
Perhaps you are using the guile/scheme interface? This interface is
interpreted, and dramatically slows down the averaging process because the
interpreted functions must be called many times. You should see much
faster performance for the eps-averaging step if you rewrite your object
description using the C++ interface
This isn't quite correct. The libctl interface can perform the subpixel
averaging with higher accuracy
since it computes material averages analytically, but only for
predefined geometric objects (ie., cylinders, blocks, spheres). The C++
interface, on the other hand, always computes the averages numerically
using finer and finer sampling of the material function within the pixel
until some threshold is reached (more on this below).
In the particular case described above involving user-defined
(cosine-shape) structures, both the libctl and C++ are performing
subpixel averaging numerically which is why it is taking longer. To
speed up the subpixel averaging using the libctl or the C++ interface,
simply use a larger tolerance (subpixel-tol, default 1e-4) and smaller
maxeval (subpixel-maxeval, default 100000) when invoking the set_epsilon
member function of the structure class or the constructor (see Meep
reference page on wiki). But of course, this will reduce the accuracy of
your simulation, and you will have to determine how much accuracy you
want to trade for time.
Ardavan
_______________________________________________
meep-discuss mailing list
[email protected]
http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/meep-discuss