-
Notifications
You must be signed in to change notification settings - Fork 12
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
s-wave collisions #14
Comments
Worth noting that collision length isn't really a per-atom quantity - it's defined between a pair of atoms - so we can't really have a component for it. How to store collision lengths for calculations? I would suggest we have a table which holds the collision lengths for all species, and index this table using per-atom |
@d-garrick Note that a more general implementation can't just swap velocities, it needs to swap momenta in the COM frame. Also, it can't just swap momenta in the COM frame either - otherwise that would imply all x-components of velocities are decoupled from all the y-components, which is unphysical. Look up references and prev work to see what model is best to use. |
Hi @d-garrick , I'm Maurice and I'm currently doing the dipole-force branch. Since we are ultimately interested in simulating evaporation (for example in a dipole trap) - I wanted to ask if you are interested in a brief meeting about the collisions. I have implemented a really lame version of them in python beforehand (just to get a feeling for it) and I'd be interested to learn how you implemented them and how to use them. Anyway, I think it would be great to meet so we are aware of what everyone is doing, what do you think? Greetings, |
Hi Maurice,
We can have a meeting about this - the collisions code is still
unfinished and requires more testing, but I'm happy to have a chat about
it with you. I can probably chat on teams tomorrow (Thursday) or Friday.
When are you free?
David
…------ Original Message ------
From: "Maurice Zeuner" ***@***.***>
To: "TeamAtomECS/AtomECS" ***@***.***>
Cc: "d-garrick" ***@***.***>; "Mention"
***@***.***>
Sent: Tuesday, 23 Mar, 2021 At 20:52
Subject: Re: [TeamAtomECS/AtomECS] s-wave collisions (#14)
Hi @d-garrick <https://github.com/d-garrick> ,
I'm Maurice and I'm currently doing the dipole-force branch. Since we
are ultimately interested in simulating evaporation (for example in a
dipole trap) - I wanted to ask if you are interested in a brief meeting
about the collisions. I have implemented a really lame version of them
in python beforehand (just to get a feeling for it) and I'd be
interested to learn how you implemented them and how to use them.
Of course, I can also give you the outline of how the dipole force
will work - although it is very similar to the cooling light and forces
functionality already in the master branch.
Anyway, I think it would be great to meet so we are aware of what
everyone is doing, what do you think?
Greetings,
Maurice
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#14 (comment)>
, or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AST4AXYLLOK6NJQGS55WAVLTFD5QHANCNFSM4XY6IOCA>
.
|
Hi David, great, thanks! I am very flexible tomorrow - Friday before noon as well. Would you like to suggest a time that works best for you? Best wishes, |
Shall we say 11am tomorrow on Teams?
David
…------ Original Message ------
From: "Maurice Zeuner" ***@***.***>
To: "TeamAtomECS/AtomECS" ***@***.***>
Cc: "d-garrick" ***@***.***>; "Mention"
***@***.***>
Sent: Wednesday, 24 Mar, 2021 At 19:30
Subject: Re: [TeamAtomECS/AtomECS] s-wave collisions (#14)
Hi David,
great, thanks! I am very flexible tomorrow - Friday before noon as well.
Would you like to suggest a time that works best for you?
Best wishes,
Maurice
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#14 (comment)>
, or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AST4AX5F7KXNLWTHEE7L6QLTFI4TTANCNFSM4XY6IOCA>
.
|
Sounds good - I think we don't have a common teams channel yet. You should be able to find me by my name "Maurice Zeuner" or ----. See you, |
This graph shows agreement of the MC approach with theoretical rates as a function of collisions/timestep/box and atoms/box. Note that even 30% difference is expected due to inaccuracies in the numerical calculation of the 'expected' rate (I'm using only approximate factors from kinetic theory, there's a few factors missing). |
(The above simulation is for a box trap simulation domain with 10 boxes along each axis for 1000 boxes total.) |
Is there a minimum example that shows how to use the collisions? I'd be very interested to throw some particles into a dipole trap and evaporate. |
@DavidGarrick is still working on it |
I can add a simple example to the collisions branch tomorrow. It produces accurate collision rates for thermal clouds but haven't tested evaporation yet. |
@DavidGarrick I know we spoke a few times today, could you post a brief update here? :) |
It's also worth mentioning that at the moment at least, the user has to spend some time figuring out good parameters to use to ensure accuracy of the simulation. For example, the timestep must be significantly less than the average (or possibly the smallest, in the case of inhomogeneous density) collision time, at least 10 times less. I have also read in the literature that the timestep needs to be much smaller than the mean transit time; that is, the average time taken for a particle to cross a collision box. However, I have not personally noticed any unphysical effects due to this, and I am actually not sure why it would matter on a theoretical basis. |
Can you produce a 2D plot like the one above to show when it breaks down? Graph looks great! |
@DavidGarrick discussed in slack the advantages of making a PR for these early collision features, with more configurations exposed/optimisations in a second PR. |
@DavidGarrick ready to pull? |
Hi David, I think you mentioned some unit-tests still failing - just to check: collision_rate() --> fails Also, there is a panick that I don't understand where it actually occurs:
Is that the currently "correct" behaviour or did I mess something up while merging? |
The unit tests are very unfinished so I can't comment much on which particular ones are failing, they won't be done until I try and merge collisions (which I'll try and work on soon in between lab work). |
I saw @d-garrick working on this again today |
Just out of interest (and when the experiment is operational again) - did you ever take a more detailed set of data for the evap ramp and try fitting to see what the most realistic cross section for Rb is? eg, ~100 different values for atom number, find the cross section which gives best agreement with experimental data. Then compare that to the expected cross section from theory? |
I haven't taken that data - might take it once the experiment is working again. Could try, rather than evap, damping rate of a breathing oscillation? |
Any chance to revisit that data now the experiment is operational? |
Tagging @BrianBostwick (hope it lets me) |
To simulate evaporation in optical/magnetic traps, AtomECS requires a way to calculate the effects of short-ranged (eg, s-wave) collisions.
Given that the collisions are short-ranged, all methods used should a spatial binning method for speed.
Beyond that, there are subtle variations in the implementation details, and we could support a number of approaches:
Monte-Carlo method: determine a number of collisions to occur within a box, eg based on density and mean velocity. Perform collisions between velocities of random atomic pairs.
'Pair-wise' Monte-Carlo method; Iterate over each pair within a box. Calculate the chance for a collision to occur, then draw a random number to determine if it did.
All models should also have the ability to specify some kind of 'macro atom', so that the behaviour of a large number of atoms can be represented by a numerically tractable ensemble. There's a few ways we could do this:
MacroAtom
components.I like the global scaling parameter because it is straight forward. Also, I can see how we might be able to simulate multiple orders of magnitude of atom loss by rescaling the parameter as atoms are lost. For instance, this could allow one to start with 1e4 atoms representing 1e10 atoms and end with 1e4 atoms representing 1e4 atoms.
The text was updated successfully, but these errors were encountered: