Hi everyone,
I am currently working on a
3d FDTD code using UPML to truncate the physical
domain. Nevertheless, when generating a plane wave
(wave vector linear to z), it appears that the wavefront
in the UPML becomes quickly angled, which results
in large errors at late times. The algorithm I use
for source generation is :
IF (Nt.LE.200)
THEN DO J=1,Ny DO ii=1,Nx Ex(ii,J,Nz/2)=Ex(ii,J,Nz/2)+(kappax(ii)-I*sigmax(ii)*30./(2.*Pi))/(kappay(j)-I*sigmay(j)*30./(2.*Pi))*(dcos(2.*pi*Nt/30.)+I*dsin(2.*pi*Nt/30.))*dexp(dble(-(Nt-200.)*(Nt-200.)/4000.))
ENDDO ENDDO ELSE DO J=1,Ny DO II=1,Nx
Ex(II,J,Nz/2)=Ex(II,J,Nz/2)+(kappax(ii)-I*sigmax(ii)*30./(2.*Pi))/(kappay(j)-I*sigmay(j)*30./(2.*Pi))*(dcos(2.*pi*Nt/30.)+I*dsin(2.*pi*Nt/30.))
ENDDO ENDDO ENDIF
You can notice that
the electric field checks the conservation of the
normal component of electric induction D at the
interface with UPML. Nevertheless, this does not
work well. Did someone experience similar problems
with a FDTD code ? How did you solve them ? Thanks
very much,
M.
|