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.

Help with FDTD Mur Boundary Conditions (ABCs)

Status
Not open for further replies.

somada141

Member level 1
Joined
Mar 13, 2008
Messages
34
Helped
5
Reputation
10
Reaction score
1
Trophy points
1,288
Activity points
1,610
mur boundary condition

Hi everyone,

I am currently struggling with my thesis project which has to do with 3D FDTD code on open geometries.

As it implied I need some ABCs to simulate free space and the standard solution for FDTD is the 2nd Order Mur Absorbing Boundary Conditions.

However even after reading Tavlove's Book on FDTD (including the chapter about ABCs) I am still at a loss as to how to use them.

To be more specific I have programmed my FDTD code without ABCs and it works like a charm. However the moment I try to enforce boundary conditions everything goes awry.

Does anyone has any experience with such codes so he can help me or guide me to some helpful (and preferrably understandable) Mur codes?

There are points in the Mur formulas where I ahve not grapsed the idea. E.g. how are we supposed to program the 3 time steps required and where do we put the Mur code in the standard FDTD formulae?

If some can help please either reply here or contact via email at somada141@yahoo.gr

Any help would be appreciated,
Adam

PS Here is the pure FDTD part of my code (Python) :

Code:
    #Hx
    for i in xrange(1,Hx.shape[0]-1):
        for j in xrange(1,Hx.shape[1]-1):
            for k in xrange(1,Hx.shape[2]-1):
                Hx[i,j,k]=Da*Hx[i,j,k]+Db*(Ey[i,j,k]-Ey[i,j,k-1]-Ez[i,j,k]+Ez[i,j-1,k])
                
    

    #Hy
    for j in xrange(1,Hy.shape[1]-1):
        for i in xrange(1,Hy.shape[0]-1):
            for k in xrange(1,Hy.shape[2]-1):
                Hy[i,j,k]=Da*Hy[i,j,k]+Db*(Ez[i,j,k]-Ez[i-1,j,k]-Ex[i,j,k]+Ex[i,j,k-1])


    #Hz    
    for k in xrange(1,Hz.shape[2]-1):
        for i in xrange(1,Hz.shape[0]-1):
            for j in xrange(1,Hz.shape[1]-1):
                Hz[i,j,k]=Da*Hz[i,j,k]+Db*(Ex[i,j,k]-Ex[i,j-1,k]-Ey[i,j,k]+Ey[i-1,j,k])

    #Ex
    for i in xrange(Ex.shape[0]):
        for j in xrange(Ex.shape[1]):
            for k in xrange(Ex.shape[2]):
                
                ii=i-1
                if (ii==-1):
                    ii=0
                    
                Ex[i,j,k]=Ca[ii,j,k]*Ex[i,j,k]+Cb[ii,j,k]*(Hz[i,j+1,k]-Hz[i,j,k]-Hy[i,j,k+1]+Hy[i,j,k])

    #Ey
    for i in xrange(Ey.shape[0]):
        for j in xrange(Ey.shape[1]):
            for k in xrange(Ey.shape[2]):
                
                jj=j-1
                if (jj==-1):
                    jj=0

                Ey[i,j,k]=Ca[i,jj,k]*Ey[i,j,k]+Cb[i,jj,k]*(Hx[i,j,k+1]-Hx[i,j,k]-Hz[i+1,j,k]+Hz[i,j,k])    

    #Ez
    for i in xrange(Ez.shape[0]):
        for j in xrange(Ez.shape[1]):
            for k in xrange(Ez.shape[2]):
                
                kk=k-1
                if (kk==-1):
                    kk=0
                
                Ez[i,j,k]=Ca[i,j,kk]*Ez[i,j,k]+Cb[i,j,kk]*(Hy[i+1,j,k]-Hy[i,j,k]-Hx[i,j+1,k]+Hx[i,j,k])

I need to enfore ABCs on the H field.
 

fdtd mur

hi

you should only programm ABC equations. but now all researchers uses PML.

snd me un email i you like discussing these point
 

absorbing boundary conditions mur

I agree. The PML is now the standard, but Mur can still outperform in some cases. You will not have a problem finding example code with PML boundary conditions.

-Tip
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top