-
Notifications
You must be signed in to change notification settings - Fork 199
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
DSMC: Add impact ionization #5654
base: development
Are you sure you want to change the base?
DSMC: Add impact ionization #5654
Conversation
for more information, see https://pre-commit.ci
…nto ionization_dsmc_ci
for more information, see https://pre-commit.ci
Signed-off-by: roelof-groenewald <[email protected]>
for more information, see https://pre-commit.ci
Signed-off-by: roelof-groenewald <[email protected]>
At this point the existing DSMC test (as part of the capactive discharge test) succeeds, indicating that the existing DSMC functionality is not broken. |
Signed-off-by: roelof-groenewald <[email protected]>
The results on the comparison to the global model look about as good as we were able to get with MCC, so that's good. I'm still curious why we're off from the theory. I can't think of any missing physics that we're not accounting for. Also, it's a bit strange that we get higher densities in DSMC vs MCC, as MCC doesn't permit neutrals to be depleted and should have an overall higher ionization rate. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could we extract the max process count into a compile-time constant that the user could specify (i.e. -DWARPX_MAX_SCATTERING_PROCS=10
or the like?) Or set the number much larger than five? While we're doing this PR it would also be good to actually address this in the constructor like the comment says we should.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It looks like a change to template the max number of processes was partly overwritten in this PR. I fixed that now.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for getting this close to the finish line! I think this looks pretty good. In the spirit of cleanliness I think it would be good to go ahead and move the process count check to the constructor. I also think it would be worth exploring increasing the max process count (see prev comment), but I don't have a good enough understanding of what the performance implications would be to say. That could perhaps wait for a second PR, however.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this looks good for now. We agree with the model in early times before any potential deviations from Maxwellian occur. A better test which accounts for that deviation could be added in a followup PR
This PR extends the work already done by @RemiLehe and @oshapoval in #5524.
Some changes were made to how the ionization process is initialized, for example, the user must now specify the
target_species
(i.e., the species which undergoes ionization) as well as theproduct_species
. The product species can include the colliding species (for example electron + neutral -> 2 x electron + ion), but does not have to (for example H$^+$ + D -> H$^+$ + D$^+$ + electron).The test created by @archermarx is now passing (at least early on):
![image](https://private-user-images.githubusercontent.com/40245517/412212547-344476b8-bc63-4395-92c1-d795183048b9.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk1MzcxMzEsIm5iZiI6MTczOTUzNjgzMSwicGF0aCI6Ii80MDI0NTUxNy80MTIyMTI1NDctMzQ0NDc2YjgtYmM2My00Mzk1LTkyYzEtZDc5NTE4MzA0OGI5LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE0VDEyNDAzMVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWE2OTUxZGVkZTFmMGM0MzBjZTI3YmNkNGZlMTI4NDE5NWZiZjNlZDMxMWMyYTE0ZDlkMDBkYzgyODcwMTllNGEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.Y8VlfQ1AbHfM6gkvoZCb9tt8dEjsCo-NjcTPSFuHwAk)
Todo: