Thanks again Steven. But I then have difficulty in reproducing E field from H field by doing the curl operation in the FFT manner. The discrepancy occurs at the media interfaces. So what does MPB really do with the epsilon tensor epsilon_inverse? Isn't it right to first multiply each Fourier coefficient of H with (k+G) and then do the inverse FFT to transform curl H to the spatial domain, and then multiply it with tensor epsilon_inverse to get the E field? I took a look at the function "assign_symmatrix_vector" but couldn't find the information how "CACCUMULATE_SUM_MULT" and "CACUMULATE_SUM_CONJ_MULT" are implemented.
Best regards, Minghui Han On 10/10/06 7:55 PM, "Steven G. Johnson" <[EMAIL PROTECTED]> wrote: > On Tue, 10 Oct 2006, Minghui Han wrote: >> in MPB. It really solved my puzzle. I have another quick question here if >> you don't mind. Since MPB uses the same grid for E and H field, how does it >> actually calculate the derivatives? Suppose it wants to know the curl of H >> field at point A, does it just calculate the differences between its >> neighboring points and then divide by 2dr? In addition, is the output tensor > > MPB is based on a planewave (Fourier series) expansion. It doesn't use > finite differences to compute derivatives, it uses the analytical > derivative of the Fourier series terms. Because of this, it has no need > for a staggered grid to compute E from H or vice versa. > > (See also the paper linked to from the MPB web site.) > > Steven > > _______________________________________________ > mpb-discuss mailing list > [email protected] > http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/mpb-discuss _______________________________________________ mpb-discuss mailing list [email protected] http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/mpb-discuss
