Mathematica 9 is now available
Student Support Forum
-----
Student Support Forum: 'Converting FDTD from Matlab' topicStudent Support Forum > General > "Converting FDTD from Matlab"

Next Comment >Help | Reply To Topic
Author Comment/Response
Walter
10/29/10 11:04pm

Hi, I'm trying to convert a simple program from Matlab into Mathematica to get some practice learning Mathematica. I'm having some problems duplicating the results. Its a simple 2D FDTD program that has a simple pulse propagate from the middle of the grid. It should propagate in a circle, and it does in Matlab. But it has some weird error somewhere and it propagates in a square which is wrong. Also, the code in Mathematica runs ultra slow, can you suggest a way to speed it up a bit. I've been working on this all day and I would appreciate a second set of eyes on this. Thanks!

I attached the Mathematica Code Notebook

Here's the code from Matlab that works

clc; % clear command window
clear; % clear variables
c=2.99792458e8; % speed of light
mu=4.0*pi*1.0e-7; % free space def
eps=1.0/(c*c*mu);
freq=1e8; % frequency
ie = 100; % grids
je = 100;
steps = 2; % number of time steps to simulate
lambda = 1/freq;
dx = lambda / 20;
dy = lambda / 20;
dt = 1 / (c * sqrt(1 / dx^2 + 1 / dy^2));
% updating coefficients
ca = 1;
cb = dt/(eps*dx);
da = 1;
db = dt/(mu*dx);
% setup arrays
ez = zeros(ie+1,je+1);
hx = zeros(ie+1,je+1);
hy = zeros(ie+1,je+1);
%fdtd algorithm
for n=1:steps
ez(2:ie,2:je)=ca*ez(2:ie,2:je) + cb*(hx(2:ie,1:je-1)-hx(2:ie,2:je) + hy(2:ie,2:je)-hy(1:ie-1,2:je));
% source
ez(ie/2,je/2) = exp(-((n-20)/10)^2) - exp(-((n-40)/10)^2);
hx(2:ie,1:je)=hx(2:ie,1:je) + db*(ez(2:ie,1:je)-ez(2:ie,2:je+1));
hy(1:ie,2:je)=hy(1:ie,2:je) + db*(ez(2:ie+1,2:je)-ez(1:ie,2:je));
end;
%plot ez at last step
figure('position',[100,100,600,500]);
plot(ez),pcolor(ez);
shading flat;
caxis([-.4 0.4]);
colorbar;
axis image;
title(['ez']);
xlabel('i coordinate');
ylabel('j coordinate');



Attachment: fdtd_1d.nb, URL: ,

Subject (listing for 'Converting FDTD from Matlab')
Author Date Posted
Converting FDTD from Matlab Walter 10/29/10 11:04pm
Re: Converting FDTD from Matlab Walter 11/01/10 11:13am
Re: Converting FDTD from Matlab chy 09/04/13 07:51am
Next Comment >Help | Reply To Topic