Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

[MatLab] Edit Delete Help with ion beam with many charge states

  1. Feb 23, 2012 #1
    I'm simulating an ion beam with different charge states passing through two pinholes. I'm using random angles, from an external function, to evaluate the velocity components along the axes and solving the differential equation:

    O=[0 0 0]';
    f = @(t,ys) [ys(4:6); O];
    [t,ys] = ode23t(f,tspan,y_sorgente(i,:),options);

    for the particle motion. The external function get some points from a sferic surface and uses their coordinates as direction cosine to get the velocity components from its modulus.

    The problem I have is that only few particle with charge state 1+ can pass the pinhole, all the others can not and it doesn't make any sense if each particle has the same modulus of velocity. I'm doing something wrong, but I can't understand what, any suggestion?
  2. jcsd
  3. Feb 23, 2012 #2


    User Avatar
    Gold Member

    you haven't shown us y_sorgente or Event_Stop_Sorgente which are the two custom files specific to the ODE you're working on. You also haven't explained what your inputs (ys) are and what ys(4:6) consists of.

    Just posting the code won't garner much replies though, either, you really have to debug a bit and nail your problem down so that you can ask a more specific question. Try tracking your problem down. You may even solve it without our help!
  4. Feb 23, 2012 #3
    Sorry, I made a mistake in the title.
    It was supposed to be "Help with ion beam with many charge states"
    I don't know where "edit delete" comes from... :(
  5. Feb 23, 2012 #4
    I don't have problem in the ode solver. I posted it just to say that I was solving the motion in a drift zone, with no field applied on the particles. it works fine for a beam with 0 angular spread.
    Anyway y_sorgente is the initial condition vector it looks like: y_sorgente=[0 0 0 v_x v_y v_z]
    Event_Stop is a function to stop the ode solver when the particles reach a certain point.

    My problem is with the random extraction of direction cosines, I think.

    P.S.: sorry for disturbing, you can delete this thread if it bothers you, I don't care.
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook