COMPASS  5.0.0
End-to-end AO simulation tool using GPU acceleration
closed_loop_mpi Namespace Reference

Functions

def loop (n)
 

Variables

 rank = int(os.environ['OMPI_COMM_WORLD_RANK'])
 
 c = ch.carmaWrap_context()
 
 comm = MPI.COMM_WORLD
 
 comm_size = comm.Get_size()
 
string error = 'command line should be:"python test.py parameters_filename"\n with "parameters_filename" the path to the parameters file'
 
 param_file = sys.argv[1]
 
 filename = param_file.split('/')[-1]
 
 param_path = param_file.split(filename)[0]
 
string simul_name = ""
 
dictionary matricesToLoad = {}
 
int clean = 1
 
 param_dict = h5u.params_dictionary(config)
 
 wfs
 
 tel
 
 atm
 
 dms = ao.dm_init(config.p_dms, config.p_wfss, wfs, config.p_geom, config.p_tel)
 
 tar
 
 rtc
 
int mimg = 0.
 

Function Documentation

◆ loop()

def closed_loop_mpi.loop (   n)

Definition at line 120 of file closed_loop_mpi.py.

120 def loop(n):
121  # if(rank==0):
122  #fig,((turbu,image),(shak,defMir))=pl.subplots(2,2, figsize=(15,15))
123  # pl.ion()
124  # pl.show()
125 
126  t0 = time.time()
127  for i in range(n):
128  if (rank == 0):
129  atm.move_atmos()
130  for t in range(config.p_target.ntargets):
131  tar.atmos_trace(t, atm, tel)
132  tar.dmtrace(t, dms)
133  for w in range(len(config.p_wfss)):
134  wfs.sensors_trace(w, "all", tel, atm, dms)
135  wfs.Bcast_dscreen()
136  for w in range(len(config.p_wfss)):
137  wfs.sensors_compimg(w)
138  wfs.gather_bincube(w)
139  if (rank == 0):
140  rtc.docentroids(0)
141  rtc.docontrol(0)
142  rtc.applycontrol(0, dms)
143 
144  if ((i + 1) % 50 == 0):
145  # s=rtc.get_centroids(0)
146  if (rank == 0):
147  """ FOR DEBUG PURPOSE
148  turbu.clear()
149  image.clear()
150  shak.clear()
151  defMir.clear()
152 
153  screen=atm.get_screen(0.)
154 
155  im=tar.get_image(0,"se")
156  im=np.roll(im,im.shape[0]/2,axis=0)
157  im=np.roll(im,im.shape[1]/2,axis=1)
158 
159  #sh=wfs.get_binimg(0)
160 
161  dm=dms.get_dm("pzt",0.)
162 
163  f1=turbu.matshow(screen,cmap='Blues_r')
164  f2=image.matshow(im,cmap='Blues_r')
165  #f3=shak.matshow(sh,cmap='Blues_r')
166  f4=defMir.matshow(dm)
167  pl.draw()
168 
169 
170  c=rtc.get_command(0)
171  v=rtc.get_voltages(0)
172 
173  sh_file="dbg/shak_"+str(i)+"_np_"+str(comm.Get_size())+".npy"
174  im_file="dbg/imag_"+str(i)+"_np_"+str(comm.Get_size())+".npy"
175  dm_file="dbg/DM_"+str(i)+"_np_"+str(comm.Get_size())+".npy"
176  s_file="dbg/cent_"+str(i)+"_np_"+str(comm.Get_size())+".npy"
177  c_file="dbg/comm_"+str(i)+"_np_"+str(comm.Get_size())+".npy"
178  v_file="dbg/volt_"+str(i)+"_np_"+str(comm.Get_size())+".npy"
179 
180  np.save(sh_file,sh)
181  np.save(im_file,im)
182  np.save(dm_file,dm)
183  np.save(s_file,s)
184  np.save(c_file,c)
185  np.save(v_file,v)
186  """
187 
188  strehltmp = tar.get_strehl(0)
189  print("%5d" % (i + 1), " %1.5f" % strehltmp[0],
190  " %1.5f" % strehltmp[1])
191 
192  t1 = time.time()
193  print(rank, "| loop execution time:", t1 - t0, " (", n, "iterations), ",
194  (t1 - t0) / n, "(mean) ", n / (t1 - t0), "Hz")
195 
196 
197 loop(config.p_loop.niter)

Variable Documentation

◆ atm

closed_loop_mpi.atm
Initial value:
1 = ao.atmos_init(c, config.p_atmos, config.p_tel, config.p_geom, config.p_loop,
2  rank=rank, load=matricesToLoad)

Definition at line 76 of file closed_loop_mpi.py.

◆ c

closed_loop_mpi.c = ch.carmaWrap_context()

Definition at line 13 of file closed_loop_mpi.py.

◆ clean

int closed_loop_mpi.clean = 1

Definition at line 61 of file closed_loop_mpi.py.

◆ comm

closed_loop_mpi.comm = MPI.COMM_WORLD

Definition at line 22 of file closed_loop_mpi.py.

◆ comm_size

closed_loop_mpi.comm_size = comm.Get_size()

Definition at line 23 of file closed_loop_mpi.py.

◆ dms

closed_loop_mpi.dms = ao.dm_init(config.p_dms, config.p_wfss, wfs, config.p_geom, config.p_tel)

Definition at line 81 of file closed_loop_mpi.py.

◆ error

string closed_loop_mpi.error = 'command line should be:"python test.py parameters_filename"\n with "parameters_filename" the path to the parameters file'

Definition at line 29 of file closed_loop_mpi.py.

◆ filename

closed_loop_mpi.filename = param_file.split('/')[-1]

Definition at line 35 of file closed_loop_mpi.py.

◆ matricesToLoad

closed_loop_mpi.matricesToLoad = {}

Definition at line 59 of file closed_loop_mpi.py.

◆ mimg

int closed_loop_mpi.mimg = 0.

Definition at line 115 of file closed_loop_mpi.py.

◆ param_dict

closed_loop_mpi.param_dict = h5u.params_dictionary(config)

Definition at line 64 of file closed_loop_mpi.py.

◆ param_file

closed_loop_mpi.param_file = sys.argv[1]

Definition at line 33 of file closed_loop_mpi.py.

◆ param_path

closed_loop_mpi.param_path = param_file.split(filename)[0]

Definition at line 36 of file closed_loop_mpi.py.

◆ rank

closed_loop_mpi.rank = int(os.environ['OMPI_COMM_WORLD_RANK'])

Definition at line 12 of file closed_loop_mpi.py.

◆ rtc

closed_loop_mpi.rtc
Initial value:
1 = ao.rtc_init(tel, wfs, config.p_wfss, dms, config.p_dms, config.p_geom,
2  config.p_rtc, config.p_atmos, atm, config.p_tel, config.p_loop,
3  clean=clean, simul_name=simul_name, load=matricesToLoad)

Definition at line 90 of file closed_loop_mpi.py.

◆ simul_name

string closed_loop_mpi.simul_name = ""

Definition at line 52 of file closed_loop_mpi.py.

◆ tar

closed_loop_mpi.tar
Initial value:
1 = ao.target_init(c, tel, config.p_target, config.p_atmos, config.p_geom,
2  config.p_tel, config.p_dms)

Definition at line 85 of file closed_loop_mpi.py.

◆ tel

closed_loop_mpi.tel

Definition at line 71 of file closed_loop_mpi.py.

◆ wfs

closed_loop_mpi.wfs

Definition at line 71 of file closed_loop_mpi.py.