# Simulating particle motion in real time

1. ### Niles

Hi

I am trying to simulate N particles evaporating from an oven, after which they propagate and eventually hit a wall. it is all classically, no quantum behavior. So far my approach has been the following:

I pick a random Gaussianly distribution number, which I say is the velocity of the particle. Then the particle moves and hits the wall at some point. After a run I know how many particles have left the oven and how many atoms have hit the wall and where.

I would like to refine my simulation, such that I know e.g. the flux of atoms hitting the wall. I'm not sure how to do this most properly, because ultimately I guess it requires for me to keep track of the time as well - which I am not doing currently.

Can anyone give me a hint/suggestion to how I can do this? I would be very happy in that case.

Best,
Niles.

2. ### bigfooted

419
To me it's a bit unclear what you want to simulate exactly. You say you don't want to do quantum mechanics yet you're talking about atoms. Do you want to solve the heat/diffusion equation of a gas in a box (your oven) using a Monte Carlo method?
First, you must make sure then that your Gaussian distribution matches the binary diffusion coefficient of the gas. As for fluxes, you cannot use the 'one-particle-at-a-time' approach. You have to simulate a lot of particles at the same time to get this. just loop over N (say,1000) particles and solve a Langevin equation for each of them, calculating their new velocity and position. After each iteration, calculate for each cell in your domain the quantities you're interested in. Test your implementation using an exact solution of the heat equation

Hope this helps

3. ### Niles

Hi

Thanks for replying so fast. OK, I'll elaborate on my OP: I want to simulate the behavior of some atoms that effuse from an oven, but I assume that I can do it classically. So no QM for now. I want to do it such that I can get quantities like the flux, but you said that a "one-particle-at-a-time"-approach is not an option. I did not know that, thanks for that!

The problem now is that I am not sure how to assign a velocity vector to an atom, after it leaves the oven. The component must depend on the oven aperture (I would intuitively expect that), but I am not sure what distribution describes the three components.

Thanks for the help so far.

Best,
Niles.

4. ### bigfooted

419
I think effusion is modeled the same as Brownian motion (as in: you can use a Langevin equation for both processes), except with a different stochastic component. If you choose the variance of the Wiener increment (the Gaussian random factor) to be equal to the expected effusion rms (sqrt(3kBT/M) according to the wiki page) than you'll be fine. I guess for the drag of the effusing particles you can use Stokes' law, like for Brownian particles.

5. ### Niles

Sorry for my late reply, but I've been thinking about this for a while. Your latest suggestion requires that I also keep track of atoms inside the iven and that is way beyond what I am trying to do. Rather I am interested in the "end result", i.e. if I have e.g. 10.000 particles emerging from the oven, then how are their (vx, vy, vz) distributed.