Help with a code writing

I want to create a code that simulates multiple particles coliding with the walls of a box but I dont want the particles to colide with each other.
I alredy made a script for one particle, but Im having trouble making one for multiple ones.
Can someone help me please?

6 comentarios

Jayant
Jayant el 27 de Mzo. de 2020
you can post a snapof ur code or your script, it will be helpfull to tell u the changes. Where to add what...
PS
PS el 27 de Mzo. de 2020
Editada: PS el 27 de Mzo. de 2020
OK sorry I forgot about it thank you.
Here's the main script:
a=20;
b=10;
R=0.5;
dt=0.1;
np=3; %Number of particles
rx=a*rand(1,np);
ry=b*rand(1,np);
r=[rx;ry];
v=5*(2*rand(2,np)-1);
tmax=100;
t=0;
while (t<tmax)
for i=1:1:np
deltat(1,i)=(R-r(1,i))/v(1,i); deltat(2,i)=(a-R-r(1,i))/v(1,i);
deltat(3,i)=(R-r(2,i))/v(2,i); deltat(4,i)=(b-R-r(2,i))/v(2,i);
if deltat(1,i)<=4*eps
deltat(1,i)=1e6;
end
if deltat(2,i)<=4*eps
deltat(2,i)=1e6;
end
if deltat(3,i)<=4*eps
deltat(3,i)=1e6;
end
if deltat(4,i)<=4*eps
deltat(4,i)=1e6;
end
deltat_wall=[deltat(1,i),deltat(2,i),deltat(3,i),deltat(4,i)];
[deltat, column]=min(deltat_wall,[],2);
[deltat,particle]=min(deltat);
wall=column(particle);
animacion(r,v,a,b,R,dt,deltat) % the function is just to plot the box and the posicion of the particles
r=r+v*deltat;
ep=[[1;0],[-1;0],[0;1],[0;-1]];
v=v-2*dot(v,ep(:,wall))*ep(:,wall);
t=t+deltat;
end
end
Here´s the function:
function []= animacion(r,v,a,b,R,dt,deltat)
x1=0;
x2=a;
y1=0;
y2=b;
side_a=[x1,x2,x2,x1,x1];
side_b=[y1,y1,y2,y2,y1];
for t=0:dt:deltat
plot(side_a,side_b,'b-','Linewidth',2)
hold on
plot(r(1,:),r(2,:),'ko','MarkerFaceColor','k', 'MarkerSize',28*R)
xlim([-10,30])
ylim([-10,20])
drawnow
hold off
r=r+v*dt;
end
end
Hope its better now
darova
darova el 27 de Mzo. de 2020
See this question
PS
PS el 27 de Mzo. de 2020
Thank you for your answer but I still cannot understand how to do it for more particles using my script
darova
darova el 27 de Mzo. de 2020
I can't run your script. I have some errors. Do you have errors?
PS
PS el 27 de Mzo. de 2020
yes I have.If you take the cicle for and the i's on deltat you should see the animation with one particle.

Iniciar sesión para comentar.

Respuestas (0)

Categorías

Más información sobre Programming en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

PS
el 27 de Mzo. de 2020

Comentada:

PS
el 27 de Mzo. de 2020

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by