Determine TRISO Locations

Good morning,

I am using a modified input of the OpenMC fuel compact from Cardinal (Multiphysics for a TRISO Gas Cooled Compact | Cardinal). I would like to extract the TRISO particle locations for the entire compact, however, I am only able to find the original TRISO locations in the lattice. Any suggestions on how to find the TRISO locations throughout the compact? Thanks!

-Ryan

Hi Ryan,

I’ve also been looking into modeling TRISO recently. Have you come across this OpenMC python notebook? I believe they would be stored in the variable centers from this example, which calls the openmc.model.pack_spheres method. It seems a similar variable exists, named rand_spheres, in the Cardinal tutorial.

Let me know if this answered your question,

Lewis

Hi Lewis,

Thank you for the reply! So I can grab the pebble locations for my original fuel universe that I create by looping over the the openmc.model.pack_spheres method. We then take these TRISO and fill multiple universes with them (i.e. TRISO filled cylinders in a compact). This results in us having multiple regions with TRISO particles in them (as we axially stack these compacts as well). I am trying to figure out if I can access the centers of each TRISO throughout the entire compact so that I can use this information in a coupled simulation with Bison in the future.

I have been trying to loop over the various cell/universes to obtain this information, but all of the TRISO particles seem to have the same locations.

So I can grab the TRISO locations in the original universe (thanks again for this), but I am not sure how to grab the TRISO locations in the various compacts that are created to make a full HTGR compact. Any ideas there?

-Ryan

Are you able to share the exact script you are using? It is a bit hard to say why they all have the same location without seeing your exact code. My guess is you are repeatedly printinig out the original universe, as opposed to the ones instantiated throughout your problem. You should have some line similar to this
trisos = [openmc.model.TRISO(r_PyC_outer, triso_univ, center) for center in centers], which is a list of initialized TRISO particles. You can print them, e.g. print(trisos[0]) to get information about their position. Is this what you are doing?

Hi Ryan,

Yes, you are correct that there are a single-compact’s worth of TRISO coordinates (and cells) in the OpenMC model. These do not get duplicated - instead, when we fill them into multiple universes in a lattice, the neutron’s coordinates just get translated to a different reference frame with that single-compact’s-worth-of-TRISOs.

If you know the centroid of each of the lattice elements, you could make a loop over those centroids, and just copy the TRISO coordinates (shifted to the lattice centroid) to get unique coordinates for all of the actual TRISOs.

Would that work for your use case?

-April

1 Like

Hi April,

Wonderful, I was wondering if this might have been the case. Thank you for letting me know. Yes, we ended up just copying the TRISO coordinates and shifting them accordingly. This method was simple and easy to use, thanks for the suggestion!

-Ryan