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.

need help for 3d simulation of ultrasound using FDTD

Status
Not open for further replies.

RAHUL2011

Newbie level 5
Joined
Jul 13, 2010
Messages
9
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Location
CHENNAI
Activity points
1,361
hello friends..
i am writing a code for 3D simulation of ultrasound using FDTD technique..
for 2D simulation the code worked fine but it seems to get diverged for 3D case ..:cry::cry:
if anybody familiar to it kindly help me.
thanks in advance
reply me on rahul_sharma_aero@yahoo.co.in
 

Probably a bug in you absorbing boundary conditions. Most likely in one of the corners :).
Seriously, even the most experienced FDTD practitioner could not help you with the amount
of information you supplied.

Also, I for one dislike private mails for such discussions. The point is that several people can
make suggestion and in the end (if there is a solution) the solution remains visible for all and
will help the next person with the same problem.
 

thanx for your response iyami..
i just gave my mail id so that it will be another way of discussion ...
even i do agree with u that we should discuss things on the forum itself,which can help others too at some stage.

even if i m trying to run a code without applying the absorbing boundary conditions, the code is getting diverged...


dv_x/dt = 1/ρ (〖dσ〗_xx/dx + 〖dσ〗_xy/dy+ 〖dσ〗_xz/dz)

dv_y/dt = 1/ρ (〖dσ〗_xy/dx + 〖dσ〗_yy/dy+ 〖dσ〗_yz/dz)

dv_z/dt = 1/ρ (〖dσ〗_xz/dx + 〖dσ〗_yz/dy+ 〖dσ〗_zz/dz)

〖dσ〗_xy/dt =µ (dv_x/dy + dv_y/dx)
〖dσ〗_xz/dt =µ (dv_x/dz + dv_z/dx)
〖dσ〗_yz/dt =µ (dv_y/dz + dv_z/dy)
〖dσ〗_xx/dt = (λ+2µ) dv_x/dx + λ (dv_y/dy + dv_z/dz)
〖dσ〗_zz/dt = λ (dv_x/dx + dv_y/dy) +(λ+2µ) dv_z/dz
〖dσ〗_zz/dt = λdv_x/dx + (λ+2µ) dv_y/dy + λdv_z/dz

these are the 9,coupled partial differential equations which m trying to solve using FDTD method .. using a gaussian waveform source ,, and satisfied the courant stability condition.

by neglecting the Z-component and solving it for 2d, it gives quiet reasonable results... but it doesn't work well for 3d case .
do you have any codes for such a given problem?
if yes , plz share it.

thanx
 

I don't know if you were using the formulas exactly as you stated them
in your mail. But if you did you have to change them. See corrections below.
Otherwise, you would actually have to show your code or anything else which
may make it possible to infer your problem, e.g. snapshots of the field values at various time steps. You could also try inserting sources near all corners to check if the corners of the ABCs work differently etc.

thanx for your response iyami..
i just gave my mail id so that it will be another way of discussion ...
even i do agree with u that we should discuss things on the forum itself,which can help others too at some stage.

even if i m trying to run a code without applying the absorbing boundary conditions, the code is getting diverged...


dv_x/dt = 1/ρ (〖dσ〗_xx/dx + 〖dσ〗_xy/dy+ 〖dσ〗_xz/dz)

dv_y/dt = 1/ρ (〖dσ〗_xy/dx + 〖dσ〗_yy/dy+ 〖dσ〗_yz/dz)

dv_y/dt=1/ρ (〖dσ〗_yx/dx +〖dσ〗_yy/dy+〖dσ〗_yz/dz)
dv_z/dt = 1/ρ (〖dσ〗_xz/dx + 〖dσ〗_yz/dy+ 〖dσ〗_zz/dz)
dv_z/dt = 1/ρ (〖dσ〗_zx/dx + 〖dσ〗_zy/dy+ 〖dσ〗_zz/dz)
〖dσ〗_xy/dt =µ (dv_x/dy + dv_y/dx)
〖dσ〗_xz/dt =µ (dv_x/dz + dv_z/dx)
〖dσ〗_yz/dt =µ (dv_y/dz + dv_z/dy)
〖dσ〗_xx/dt = (λ+2µ) dv_x/dx + λ (dv_y/dy + dv_z/dz)
〖dσ〗_zz/dt = λ (dv_x/dx + dv_y/dy) +(λ+2µ) dv_z/dz
〖dσ〗_zz/dt = λdv_x/dx + (λ+2µ) dv_y/dy + λdv_z/dz
〖dσ〗_yy/dt = λdv_x/dx + (λ+2µ) dv_y/dy + λdv_z/dz
these are the 9,coupled partial differential equations which m trying to solve using FDTD method .. using a gaussian waveform source ,, and satisfied the courant stability condition.

by neglecting the Z-component and solving it for 2d, it gives quiet reasonable results... but it doesn't work well for 3d case .
do you have any codes for such a given problem?

Unfortunately not, but in any case writing your own code and understanding it properly is always better in the long run I believe

if yes , plz share it.

thanx
 
thanx once again iyami,

actually the corrections which u told like
dv_y/dt = 1/ρ (〖dσ〗_xy/dx + 〖dσ〗_yy/dy+ 〖dσ〗_yz/dz) to be as

dv_y/dt=1/ρ (〖dσ〗_yx/dx +〖dσ〗_yy/dy+〖dσ〗_yz/dz)

does'nt affect coz both the stress matrix r same xy=yx

as i have defined initially in my code
tau_xx = zeros(yDim,xDim,zDim);
tau_yy = zeros(yDim,xDim,zDim);
tau_zz = zeros(yDim,xDim,zDim);
tau_xy = zeros(yDim-1,xDim-1,zDim);
tau_yz = zeros(yDim-1,xDim,zDim-1);
tau_xz = zeros(yDim,xDim-1,zDim-1);
ux = zeros(yDim,xDim-1,zDim);
uy = zeros(yDim-1,xDim,zDim);
uz = zeros(yDim,xDim,zDim-1);

but i will try once again using your advice.

i m not getting any clue why is the problem arising ....

---------- Post added at 09:32 ---------- Previous post was at 09:13 ----------

i got the bug... something like as u asked me to check ...
thanx man ... i really appreciate your help..

the code is converging now
 

hiii
i have written a code for 3d simulation of ultrasound .. now i want to apply pml layer at the boundaries ..
can anybody suggest me how to incorporate the absorbing conditions using matlab..
the generalised equations which i am using for simulation r given as

dv_x/dt = 1/ρ (〖dσ〗_xx/dx + 〖dσ〗_xy/dy+ 〖dσ〗_xz/dz)

dv_y/dt = 1/ρ (〖dσ〗_xy/dx + 〖dσ〗_yy/dy+ 〖dσ〗_yz/dz)

dv_z/dt = 1/ρ (〖dσ〗_xz/dx + 〖dσ〗_yz/dy+ 〖dσ〗_zz/dz)

〖dσ〗_xy/dt =µ (dv_x/dy + dv_y/dx)
〖dσ〗_xz/dt =µ (dv_x/dz + dv_z/dx)
〖dσ〗_yz/dt =µ (dv_y/dz + dv_z/dy)
〖dσ〗_xx/dt = (λ+2µ) dv_x/dx + λ (dv_y/dy + dv_z/dz)
〖dσ〗_zz/dt = λ (dv_x/dx + dv_y/dy) +(λ+2µ) dv_z/dz
〖dσ〗_zz/dt = λdv_x/dx + (λ+2µ) dv_y/dy + λdv_z/dz


thanks
rahul
 

hiii
i have written a code for 3d simulation of ultrasound .. now i want to apply pml layer at the boundaries ..
can anybody suggest me how to incorporate the absorbing conditions using matlab..

...

thanks
rahul


I think the attached paper is quite reasonable.

AN EFFICIENT PML ABSORBING MEDIUM IN FDTD SIMULATIONS
OF ACOUSTIC SCATTERING IN LOSSY MEDIA
Theodoros K. Katsibas and Christos S. Antonopoulos
 

Attachments

  • Katsibas2002.pdf
    241.1 KB · Views: 110

Here is a tutorial containing 1d matlab code with pml. (I have not checked the program)
 

Attachments

  • Implementing FDTD Tutorial.doc
    140.5 KB · Views: 162

thanx iyami ,
i have already gone through this tutorial , there seems to b some problem in the derivation of pml equations..
actually i want to simulate ultrasound in metals where stresses will come into picture.. these equations are only based on pressure..

one more thing i am defining all the variables as a matrix initially , then how to simulate for an arbitrary geometry..
 

Do you have any textbook or paper or whatever else you use as the basis for your program basis?

I always wanted to learn more details about FDTD for acoustics but never mangaed to find the time. My experience is mostly from electromagnetics but I may have some time now.
 

these are few of the papers which i am referring for my work..
u plz use your valuable experience and plzzzzzzzzzzz try to help me out...
 

Attachments

  • hastings96.pdf
    402.8 KB · Views: 100
  • getPDF.pdf
    237.4 KB · Views: 109
  • 2.pdf
    330.1 KB · Views: 92
  • 1.pdf
    3.3 MB · Views: 89

these are few of the papers which i am referring for my work..
u plz use your valuable experience and plzzzzzzzzzzz try to help me out...

Whether my experience is valuable or not, remains to be seen. In any case I will have a look at the papers and let you know once I feel I have something worthwile to say.
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top