@@ -178,8 +178,15 @@ def make_initial_screen(self):
178
178
Makes the initial screen usign FFT method that can be extended
179
179
"""
180
180
181
+ # phase screen will make it *really* random if no seed at all given.
182
+ # If a seed is here, screen must be repeatable wiht same seed
183
+ if self .random_seed is not None :
184
+ seed = numpy .random .randint (0 , 2 ** 32 - 1 )
185
+ else :
186
+ seed = None
187
+
181
188
self ._scrn = phasescreen .ft_phase_screen (
182
- self .r0 , self .stencil_length , self .pixel_scale , self .L0 , 1e-10
189
+ self .r0 , self .stencil_length , self .pixel_scale , self .L0 , 1e-10 , seed = seed
183
190
)
184
191
185
192
self ._scrn = self ._scrn [:, :self .nx_size ]
@@ -274,6 +281,8 @@ def __init__(self, nx_size, pixel_scale, r0, L0, random_seed=None, n_columns=2):
274
281
self .stencil_length_factor = 1
275
282
self .stencil_length = self .nx_size
276
283
284
+ self .random_seed = random_seed
285
+
277
286
if random_seed is not None :
278
287
numpy .random .seed (random_seed )
279
288
@@ -380,6 +389,7 @@ def __init__(self, nx_size, pixel_scale, r0, L0, random_seed=None, stencil_lengt
380
389
self .L0 = L0
381
390
self .stencil_length_factor = stencil_length_factor
382
391
self .stencil_length = stencil_length_factor * self .nx_size
392
+ self .random_seed = random_seed
383
393
384
394
if random_seed is not None :
385
395
numpy .random .seed (random_seed )
0 commit comments