Volume Calculation Taking a Long Time

I am trying to run a volume calculation on a pincell for a HTGR. The PinCell contains triso fuel, so it’s not actually 2D, I have made it 1cm long with reflective boundary conditions. Initially I tried to do this with the TRISOs included, but the I ran out of memory when I allocated the job 250GB, then I tried to do it neglecting TRISOs, with just the fuel compact, sleeve, and coolant, but it is still running out of memory. Am I doing something wrong that is causing it to take up so much memory?
Below is a screenshot of the pincell I am modelling, and a snippet of my code where I call the volume calculation.

#ic is inner coolant, oc is outer coolant, ooc is coolant between sleeve and hexagon
volume_calc = openmc.VolumeCalculation([ic, oc, sleeve, ooc, noTriCompact, outer_pin_cell], 1000, lower_left, upper_right)

vol_calc.set_trigger(1e-05, 'std_dev')
settings.volume_calculations =[vol_calc]

MicrosoftTeams-image (1)

Hi @am4020,

For such a small pincell model that’s a lot of memory! How many TRISO particles end up being in the model in the explicit case?

It’s hard to say without seeing the model generation script why it would take up that much space, but I can take a look if it’s possible to provide it.

Best,

-Patrick

The packing fraction is 30%, so when modelled explicitly there are 224 TRISO particles.
I have attached the generation script for the explicit model, I am trying to calculate the volumes of each region to compare with the analytical volumes, because I am 400 pcm off of my Serpent equivalent pincell model. Any help would be greatly appreciated - thanks!

PinCell6.ipynb (9.3 KB)

I think something else might be going on with your run. I ran the notebook you provided on my laptop this evening without an issue. I get the impression that you’re running this remotely on an HPC system from your mention of a job memory allocation. Is there a log that might contain some additional information?

Hi,
Thanks for your reply, I realised I originally attached the run file rather than the file I was using for volume calculations. Below is the file I’ve been using on the HPC, as well as the error code it is outputting when it times out.

HPC Error Output:

=>> PBS: job killed: walltime 28815 exceeded limit 28800

PinCell5VolumeCalcs2.py (9.5 KB)

This is the Volume Calculation file that times out on the HPC:
PinCell5VolumeCalcs2.py (9.5 KB)

Ah I see. Thanks for sharing that script with me.

Please see this post on applying triggers for volume calculations

The gist is that use of a trigger on the standard deviation of volume values can lead to extremely long run times due to the large number of samples required, particularly for a problem involving TRISO particles. You may be better off using relative error as a metric for your trigger or reducing your requirement for the maximum standard deviation on your current trigger.

1 Like

Ok great, thanks for this I will give that a go. Do you have any recommendations as to what magnitude of relative error is generally acceptable for this sort of calculation? Similarly, how many samples would you recommend to be appropriate for a PinCell of this size?
Thanks!

That’s really problem-dependent. It depends on the total fuel volume and how . It’s generally best to compute the volumes analytically if possible. If you know how many TRISOs are in the geometry, I believe you can do so. If some of them get clipped by the cell containing the TRISO compact, then this might be more difficult.

As far as how many samples to use, I would run a short calculation and use the \frac{1}{\sqrt{N_{samples}}} relationship for the relative error to determine approximately how many samples you’ll need to reach an acceptable relative error for your use case.