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.

FDFD method to solve eigen value problem

Status
Not open for further replies.

pudding

Member level 2
Joined
Aug 23, 2006
Messages
43
Helped
3
Reputation
6
Reaction score
1
Trophy points
1,288
Activity points
1,605
fdfd method

Hi Everyone,
I am using FDFD method to solve eigen value problem, like a microstrip line. The software I am using is Matlab. But when I refine the mesh, say 200 by 120, the final matrix would be 143041 by 143041. The matlab cannot handle that. Anyone have a good idea to solve that? Thanks!
pudding
 

what is fdfd

well, as an idea, you could try to split the matrix down into smaller ones, lets say 10 or 100 maybe. the problem though is to get these matrices tackled. you certainly cannot use implemented functions then as i.e. in Mathematica the EigenSystem[] or similar calls. this may not help at all afterall.

the other way to handle matrices of this size is to go to fortran and use the lapack which has eigensolver routines for many purposes ready for use. ( well documented and free downloadable, just google for it )

i'd guess if there is really no way to get the matrix smaller then you would need to switch to fortran to manage it from there on. an idea would be to use the matlab routine as far as it can be used ( i.e. when you don't need to update the matrix in evry n'th iteration of the FDTD loop ), output it to file an read it in from fortran to tackle it from there. if you need to update the matrix evry iteration... well... i don't know how to get this done without writing your own program then if matlab can't handle this size. ( or maybe you wanna go larger in future? )

btw, are you doing ZCZ-FDTD? just curious ;)

hope it was a litte helpful at least, janK
 

    pudding

    Points: 2
    Helpful Answer Positive Rating
eigen value using matlab

I am using FDFD method to solve eigen value problem, like a microstrip line. The software I am using is Matlab. But when I refine the mesh, say 200 by 120, the final matrix would be 143041 by 143041.

But lots of those entries are = 0 because in FDFD only nearby cells affect each other. Look for help
on sparse matrices. By the way where does the number 143041 come from?
 

    pudding

    Points: 2
    Helpful Answer Positive Rating
fdfd method

Janklinux: Thanks for your advise. I am using FDFD to analyse some microwave device. I have another questions. How to specify the boundary condition for a microstrip line? Thanks!
Iyami: since I use all the 6 field components. The total number of the equations is 143041. Thanks!
 

6 field components

Iyami: since I use all the 6 field components. The total number of the equations is 143041. Thanks!

I understand that 200 x 120 x 6 = 144000. What I meant is that you went to some trouble to
figure out exactly how many (you came up with 959) values of those you can exclude from the
set (I as presume you counted boundary fields) but I was surprised that you did not use the fact
that half the field values can be ignored in any case because 2d simulations split into TE and TM
mode and the fact that there are only a few neighboring fields needed for each field value
 

how to solve tm mode

Hi Iyami
I am sorry to tell you that I am analyzing the magnetic material. So I guess it is not easy to split it into TE and TM modes. And I didn't include the boundary fields. Yet I am very interested in how to split into TE and TM, and how to combine them. Do you get two matrixs and solve them seperately? Is there any book talking about that? Thanks!
pudding
 

solving eigen equations

as for the book
Computational Electrodynamics The Finite-Difference Time-Domain Method 2d ed- A. Taflove
covers all of that.
Well, as I see it splitting one 1k/1k matrix into one TM and one TE matrix wouldn't make much diffrence because you're still left with 2 matrices at the same size, just the entries correspond to TE or TM respectivly. So that does not do the trick to reduce the matrix's size if I think it over correctly.

Why is the matrix that huge in the first place? Is the modeled material that huge? Is it homogenous material or do you have i.e. magnetic phase transitions or things that make the material inhomogenous at some points?

As an Idea to get smaller matrices would be just to reduce the size of the material or, if thats not an option, try to split the material into smaller blocks and interpolate at the block boundaries.

I still would recommend going into fortran and using the lapack. Might be faster after all although you might have to write much of the code again. But I can't make a guess how long it will take to get this tackled in the other way as you have to do much code in addidtion anyway.

so long, janK
 

    pudding

    Points: 2
    Helpful Answer Positive Rating
fdfd solve

I am sorry to tell you that I am analyzing the magnetic material. So I guess it is not easy to split it into TE and TM modes.

Why? Look at Maxwell's equations. If you restrict to 2d-models then they give to two independent
sets of equations. The only way this fails is if the D=>E or B=>H conversion introduces dependencies.
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top