Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Connective boundary of 2D FDTD PML

Status
Not open for further replies.

maggie

Newbie level 4
Joined
Jun 17, 2006
Messages
5
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Activity points
1,327
Hi every 1 :

I'm working with FDTD recently. I want to work out the result like the pic

uplaoded . it's add in connective boundary with resultant field and scattered field.

How can I code it? I have already wrote some, but it's not correct . I guess it's

be correlated with adding the source . Is it different as usuall~?

someone tell me~ :cry:

Added after 14 minutes:

THis is for 2 dimension code~(I wrote~~~~)

Code:
%100x100

iblcb=11;             % array index of connective boundary, left %
ibrcb=ib-10;                                       % right %
jbfcb=11;                                           % front %
jbbcb=jb-10;                                      % back %

for n=1:7.0*tau
 source(n)=10*(-(2/tau^2)*n+6/tau)*exp(-((n-delay)^2/tau^2));  %gauss%
end

ez(12,50)=source(n);

% connective boundary  with Hx & Hy

    hx(iblcb:ibrcb,jbfcb)=hx(iblcb:ibrcb,jbfcb)...             
       -dt/muz*((ez(iblcb:ibrcb,jbfcb)-ez(iblcb:ibrcb,jbfcb-1))/dx)+dt/muz/dx*ez(iblcb:ibrcb,jbfcb);                     % front CB %
    
    hx(iblcb:ibrcb,jbbcb+1)=hx(iblcb:ibrcb,jbbcb+1)...         
       -dt/muz*((ez(iblcb:ibrcb,jbbcb+1)-ez(iblcb:ibrcb,jbbcb))/dx)-dt/muz/dx*ez(iblcb:ibrcb,jbbcb);                    % back CB %
    
    hy(iblcb,jbfcb:jbbcb)=hy(iblcb,jbfcb:jbbcb)...              
       +dt/muz*((ez(iblcb,jbfcb:jbbcb)-ez(iblcb-1,jbfcb:jbbcb))/dx)-dt/muz/dx*ez(iblcb,jbfcb:jbbcb);                   % left CB %
    
    hy(ibrcb+1,jbfcb:jbbcb)=hy(ibrcb+1,jbfcb:jbbcb)...     
        +dt/muz*((ez(ibrcb+1,jbfcb:jbbcb)-ez(ibrcb,jbfcb:jbbcb))/dx)+dt/muz/dx*ez(ibrcb,jbfcb:jbbcb);                   % right CB %



% connective boundary   with  Ez

    ez(iblcb,jbfcb:jbbcb)=ez(iblcb,jbfcb:jbbcb)+dt/epsz*((hy(iblcb+1,jbfcb:jbbcb)-hy(iblcb,jbfcb:jbbcb))/dx...
             -(hx(iblcb,jbfcb+1:jbbcb+1)-hx(iblcb,jbfcb:jbbcb))/dx)-(dt/epsz/dx)*hy(iblcb,jbfcb:jbbcb);                                  % left CB %
           
    ez(ibrcb,jbfcb:jbbcb)=ez(ibrcb,jbfcb:jbbcb)+dt/epsz*((hy(ibrcb+1,jbfcb:jbbcb)-hy(ibrcb,jbfcb:jbbcb))/dx...
             -(hx(ibrcb,jbfcb+1:jbbcb+1)-hx(ibrcb,jbfcb:jbbcb))/dx)+(dt/epsz/dx)*hy(ibrcb+1,jbfcb:jbbcb);                             % right CB %
          
    ez(iblcb:ibrcb,jbfcb)=ez(iblcb:ibrcb,jbfcb)+dt/epsz*((hy(iblcb+1:ibrcb+1,jbfcb)-hy(iblcb:ibrcb,jbfcb))/dx...
             -(hx(iblcb:ibrcb,jbfcb+1)-hx(iblcb:ibrcb,jbfcb))/dx)+(dt/epsz/dx)*hx(iblcb:ibrcb,jbfcb);                                  % front CB %
          
    ez(iblcb:ibrcb,jbbcb)=ez(iblcb:ibrcb,jbbcb)+dt/epsz*((hy(iblcb+1:ibrcb+1,jbbcb)-hy(iblcb:ibrcb,jbbcb))/dx...
             -(hx(iblcb:ibrcb,jbbcb+1)-hx(iblcb:ibrcb,jbbcb))/dx)-(dt/epsz/dx)*hx(iblcb:ibrcb,jbbcb+1);                              % back CB %


% 4 corners

    ez(iblcb,jbfcb)=ez(iblcb,jbfcb)+dt/epsz*((hy(iblcb+1,jbfcb)-hy(iblcb,jbfcb))/dx...
       -(hx(iblcb,jbfcb+1)-hx(iblcb,jbfcb))/dx)-(dt/epsz/dx)*hy(iblcb,jbfcb)+(dt/epsz/dx)*hx(iblcb,jbfcb);
    
    ez(iblcb,jbbcb)=ez(iblcb,jbbcb)+dt/epsz*((hy(iblcb+1,jbbcb)-hy(iblcb,jbbcb))/dx...
       -(hx(iblcb,jbbcb+1)-hx(iblcb,jbbcb))/dx)-(dt/epsz/dx)*hy(iblcb,jbbcb)-(dt/epsz/dx)*hx(iblcb,jbbcb+1);
    
    ez(ibrcb,jbbcb)=ez(ibrcb,jbbcb)+dt/epsz*((hy(ibrcb+1,jbbcb)-hy(ibrcb,jbbcb))/dx...
       -(hx(ibrcb,jbbcb+1)-hx(ibrcb,jbbcb))/dx)+(dt/epsz/dx)*hy(ibrcb+1,jbbcb)-(dt/epsz/dx)*hx(ibrcb,jbbcb+1);
    
    ez(ibrcb,jbfcb)=ez(ibrcb,jbfcb)+dt/epsz*((hy(ibrcb+1,jbfcb)-hy(ibrcb,jbfcb))/dx...
       -(hx(ibrcb,jbfcb+1)-hx(ibrcb,jbfcb))/dx)+(dt/epsz/dx)*hy(ibrcb+1,jbfcb)+(dt/epsz/dx)*hx(ibrcb,jbfcb);

did i forgot something~?

16_1169213763.JPG
 

You can see the FDTD2D code of Taflove A. Computational electrodynamics. Finite Difference Time Domain Method (Artech House, 1995).

ByE
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top