-
Notifications
You must be signed in to change notification settings - Fork 3
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
Integrate NeutronTransport.jl into FUSE #367
Comments
If the test case is only a few lines of code, you could include those commands here. Otherwise, you could put the notebook in FUSE/playground |
Ok, I created a file here. This method also requires a nuclear data file that currently is about 380 MB. Do you guys have thoughts on where that should go? That file size can probably be reduced by a lot because it includes cross sections for lots of materials that we won't actually need (e.g. acetone, 20+ different kinds of concrete, and others). |
where does that nuclear data file come from? can we download it openly from the web? |
If it's not openly accessible, it could probably live on saturn/omega somewhere in the |
The nuclear data file was generated using OpenMC and a small package I made, mgxs_generator. So no, this particular nuclear data file can't be downloaded from the web. For the time being I put it on Omega at |
I think the slowness is related to all the runtime typing. |
Nevermind my previous comment. There was an enormous performance hit caused by
Thus, this vector couldn't communicate what elType was to the compiler and |
Here's the profiling of the full run after this change. Most of the time is still spent in There is allocation/runtime dispatching happening in |
In NeutronTransport.jl, changing
You need to add a dependency for LinearAlgebra.jl and then import This makes the |
Nice work @bclyons12! Can't wait to see the deterministic neutronics package in action with these updates! |
There's also a performance hit in
|
Thank you @bclyons12, this looks like major improvement! I plan to dive back into this later today or tomorrow |
Mention PR #389 |
Wow, I hope I had the time to improve my NeutronTransport.jl package. It is very nice to see that someone has used it. Thanks! |
I am working to integrate NeutronTransport.jl into FUSE to do neutron transport calculations. I have a pull request on NeutronTransport.jl to add fixed source calculations, and also have a new branch on FUSE with some simple functions that call NeutronTransport.jl, that I plan to expand to couple FUSE and NeutronTransport.jl.
Right now I am struggling for speed with some of the functions in NeutronTransport.jl. In particular, in mocsolver.jl, there are several functions with lots of nested for loops that use many allocations, such as _solve(), compute_q!() and compute_φ!(). It would be helpful to get some additional eyes on some of these functions, as I believe there are ways we could possibly speed this up.
Let me know what other info I could provide. Also, where would be a good place to put a Jupyter notebook with a test case that we could use to compare speeds?
Thanks!
The text was updated successfully, but these errors were encountered: