Model a circle using finite difference equation in matlab

Join the discussion
Ask a follow-up here, or get your own question answered by working scientists, mathematicians and engineers — people, not an autocomplete.
Real named experts · corrections over time · the nuance an AI answer skips
2 replies · 3K views
tomallan
Messages
20
Reaction score
0
hello. I have a MATLAB skeleton provided because i want to model a distribution with a circular geometry. all in all, i want the 3d graph of the code to be some type of cylinder. This is the code:

% flat step condition
for ii=1:nHi,
for jj=1:nHj,
if (X(ii)/R_P)<1 & (Y(ii)/R_P)<1,
h(ii,jj)=h_init+h_step;
else,
h(ii,jj)=h_init;
end
end
end

nHi is the maximum size of nodes in X direction and nHj is the maximum size in Y direction while R_P is the radius of the circle. I am struggling with this code because when I execute this, it only appears with a rectangular graph, instead of a circle-ish, when viewed from the top.

what the code is trying to say is,
if node is less than the diameter (x or y node),
thickness is initial+step
else,
thickness is initial.

Any tips will be greatly appreciated.
 
Physics news on Phys.org
Just a hunch, have you tried replacing this:

if (X(ii)/R_P)<1 & (Y(ii)/R_P)<1

with this?

if ((X(ii) - Xm)^2 + (Y(ii) - Ym)^2 < R_P^2)

where Xm and Ym are the coordinates of the center of the circle.
 
  • Like
Likes   Reactions: 1 person
Are you trying to embed a circle to a square domain or are you trying to make a circle domain? Why not do it in polar coordinates?