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

Reply via email to