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

