@@ -193,6 +193,8 @@ class Settings:
193
193
The type of calculation to perform (default is 'eigenvalue')
194
194
seed : int
195
195
Seed for the linear congruential pseudorandom number generator
196
+ stride : int
197
+ Number of random numbers allocated for each source particle history
196
198
source : Iterable of openmc.SourceBase
197
199
Distribution of source sites in space, angle, and energy
198
200
sourcepoint : dict
@@ -338,6 +340,7 @@ def __init__(self, **kwargs):
338
340
self ._ptables = None
339
341
self ._uniform_source_sampling = None
340
342
self ._seed = None
343
+ self ._stride = None
341
344
self ._survival_biasing = None
342
345
343
346
# Shannon entropy mesh
@@ -614,6 +617,16 @@ def seed(self, seed: int):
614
617
cv .check_greater_than ('random number generator seed' , seed , 0 )
615
618
self ._seed = seed
616
619
620
+ @property
621
+ def stride (self ) -> int :
622
+ return self ._stride
623
+
624
+ @stride .setter
625
+ def stride (self , stride : int ):
626
+ cv .check_type ('random number generator stride' , stride , Integral )
627
+ cv .check_greater_than ('random number generator stride' , stride , 0 )
628
+ self ._stride = stride
629
+
617
630
@property
618
631
def survival_biasing (self ) -> bool :
619
632
return self ._survival_biasing
@@ -1336,6 +1349,11 @@ def _create_seed_subelement(self, root):
1336
1349
element = ET .SubElement (root , "seed" )
1337
1350
element .text = str (self ._seed )
1338
1351
1352
+ def _create_stride_subelement (self , root ):
1353
+ if self ._stride is not None :
1354
+ element = ET .SubElement (root , "stride" )
1355
+ element .text = str (self ._stride )
1356
+
1339
1357
def _create_survival_biasing_subelement (self , root ):
1340
1358
if self ._survival_biasing is not None :
1341
1359
element = ET .SubElement (root , "survival_biasing" )
@@ -1763,6 +1781,11 @@ def _seed_from_xml_element(self, root):
1763
1781
if text is not None :
1764
1782
self .seed = int (text )
1765
1783
1784
+ def _stride_from_xml_element (self , root ):
1785
+ text = get_text (root , 'stride' )
1786
+ if text is not None :
1787
+ self .stride = int (text )
1788
+
1766
1789
def _survival_biasing_from_xml_element (self , root ):
1767
1790
text = get_text (root , 'survival_biasing' )
1768
1791
if text is not None :
@@ -2014,6 +2037,7 @@ def to_xml_element(self, mesh_memo=None):
2014
2037
self ._create_plot_seed_subelement (element )
2015
2038
self ._create_ptables_subelement (element )
2016
2039
self ._create_seed_subelement (element )
2040
+ self ._create_stride_subelement (element )
2017
2041
self ._create_survival_biasing_subelement (element )
2018
2042
self ._create_cutoff_subelement (element )
2019
2043
self ._create_entropy_mesh_subelement (element , mesh_memo )
@@ -2122,6 +2146,7 @@ def from_xml_element(cls, elem, meshes=None):
2122
2146
settings ._plot_seed_from_xml_element (elem )
2123
2147
settings ._ptables_from_xml_element (elem )
2124
2148
settings ._seed_from_xml_element (elem )
2149
+ settings ._stride_from_xml_element (elem )
2125
2150
settings ._survival_biasing_from_xml_element (elem )
2126
2151
settings ._cutoff_from_xml_element (elem )
2127
2152
settings ._entropy_mesh_from_xml_element (elem , meshes )
0 commit comments