mirror of
https://github.com/openmc-dev/openmc.git
synced 2026-07-29 06:35:48 -04:00
Modify deplete.integrator.predictor to store, write process time
Use new timed_deplete wrapper func to obtain process time. Pass process time to modifed openmc.deplete.Results.save to be reduced and written to depletion file. test_deplete_predictor is modified to ensure that the shape of the resulting "depletion time" vector is correct
This commit is contained in:
parent
2ecca7bff6
commit
e291725b6b
2 changed files with 11 additions and 4 deletions
|
|
@ -3,7 +3,7 @@
|
|||
import copy
|
||||
from collections.abc import Iterable
|
||||
|
||||
from .cram import deplete
|
||||
from .cram import timed_deplete
|
||||
from ..results import Results
|
||||
|
||||
|
||||
|
|
@ -53,6 +53,8 @@ def predictor(operator, timesteps, power=None, power_density=None,
|
|||
if not isinstance(power, Iterable):
|
||||
power = [power]*len(timesteps)
|
||||
|
||||
proc_time = None
|
||||
|
||||
# Generate initial conditions
|
||||
with operator as vec:
|
||||
# Initialize time and starting index
|
||||
|
|
@ -74,7 +76,7 @@ def predictor(operator, timesteps, power=None, power_density=None,
|
|||
op_results = [operator(x[0], p)]
|
||||
|
||||
# Create results, write to disk
|
||||
Results.save(operator, x, op_results, [t, t + dt], p, i_res + i)
|
||||
Results.save(operator, x, op_results, [t, t + dt], p, i_res + i, proc_time)
|
||||
else:
|
||||
# Get initial concentration
|
||||
x = [operator.prev_res[-1].data[0]]
|
||||
|
|
@ -89,7 +91,8 @@ def predictor(operator, timesteps, power=None, power_density=None,
|
|||
op_results[0].rates *= ratio_power[0]
|
||||
|
||||
# Deplete for full timestep
|
||||
x_end = deplete(chain, x[0], op_results[0].rates, dt, print_out)
|
||||
proc_time, x_end = timed_deplete(
|
||||
chain, x[0], op_results[0].rates, dt, print_out)
|
||||
|
||||
# Advance time, update vector
|
||||
t += dt
|
||||
|
|
@ -100,4 +103,4 @@ def predictor(operator, timesteps, power=None, power_density=None,
|
|||
op_results = [operator(x[0], power[-1])]
|
||||
|
||||
# Create results, write to disk
|
||||
Results.save(operator, x, op_results, [t, t], p, i_res + len(timesteps))
|
||||
Results.save(operator, x, op_results, [t, t], p, i_res + len(timesteps), proc_time)
|
||||
|
|
|
|||
|
|
@ -35,3 +35,7 @@ def test_predictor(run_in_tmpdir):
|
|||
|
||||
assert y1[2] == approx(s2[0])
|
||||
assert y2[2] == approx(s2[1])
|
||||
|
||||
# Test structure of depletion time dataset
|
||||
|
||||
assert res.get_depletion_time().shape == (len(dt), 1)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue