Skip to content

Commit

Permalink
Merge pull request #25 from ojdf/master
Browse files Browse the repository at this point in the history
Set random seed for phasescreen
  • Loading branch information
Andrew Reeves committed May 23, 2017
2 parents f3c70bf + 8f35acc commit 3eea83e
Showing 1 changed file with 7 additions and 5 deletions.
12 changes: 7 additions & 5 deletions aotools/turbulence/phasescreen.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
except NameError:
xrange = range

def ft_sh_phase_screen(r0, N, delta, L0, l0, FFT=None):
def ft_sh_phase_screen(r0, N, delta, L0, l0, FFT=None, seed=None):
'''
Creates a random phase screen with Von Karmen statistics with added
sub-harmonics to augment tip-tilt modes.
Expand All @@ -26,12 +26,13 @@ def ft_sh_phase_screen(r0, N, delta, L0, l0, FFT=None):
ndarray: numpy array representing phase screen
'''
R = random.SystemRandom(time.time())
seed = int(R.random()*100000)
if seed is None:
seed = int(R.random()*100000)
numpy.random.seed(seed)

D = N*delta
# high-frequency screen from FFT method
phs_hi = ft_phase_screen(r0, N, delta, L0, l0, FFT)
phs_hi = ft_phase_screen(r0, N, delta, L0, l0, FFT, seed=seed)

# spatial grid [m]
coords = numpy.arange(-N/2,N/2)*delta
Expand Down Expand Up @@ -101,7 +102,7 @@ def ift2(G, delta_f ,FFT=None):

return g

def ft_phase_screen(r0, N, delta, L0, l0, FFT=None):
def ft_phase_screen(r0, N, delta, L0, l0, FFT=None, seed=None):
'''
Creates a random phase screen with Von Karmen statistics.
(Schmidt 2010)
Expand All @@ -122,7 +123,8 @@ def ft_phase_screen(r0, N, delta, L0, l0, FFT=None):
l0 = float(l0)

R = random.SystemRandom(time.time())
seed = int(R.random()*100000)
if seed is None:
seed = int(R.random()*100000)
numpy.random.seed(seed)

del_f = 1./(N*delta)
Expand Down

0 comments on commit 3eea83e

Please sign in to comment.