On Tue, 18 Dec 2007, Manoj Rajagopalan wrote:
>   I was trying to understand the MEEP C++ interface by reading the
> sources and I had a question:
>
>   What is the "chunk" concept? How does the "fields" class differ from
> the "fields_chunk" class, the "structure" class from the
> "structure_chunk" class? What is "dft_chunk"?

A "chunk" is a contiguous rectangular portion of the computational grid. 
For example, when Meep runs on a parallel system, each process gets one or 
more disjoint chunks of the grid.

So, for example, the fields class encapsulates the simulated fields over 
the entire grid, and one of its members is an array of fields_chunk 
variables that the grid is divided into.  The fields_chunk variables are 
where the field is actually stored.  Every parallel process has an 
~identical fields variable with an ~identical list of chunks (although 
chunks on one process corresponding to another process do not store
their fields arrays, and are just placeholders).

If a given material or field is not present in a given chunk, it need not 
be stored.  For this region, the PML boundary regions are separated into 
their own chunks, even on one processor, in order that the extra data for 
PML need not be stored for the whole grid.

In the future, we may also implement support for different chunks with 
different resolution, to allow nonuniform spatial resolution.

Similarly for structure vs. structure_chunk, except that it is only for 
materials parameters (epsilon etc.) and not for simulated fields.

dft_chunk stores accumulated Fourier-transformed fields corresponding to a 
given chunk.

Regards,
Steven G. Johnson

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

Reply via email to