10 import hdf5_util
as h5u
13 print(
"TEST SHESHA\n closed loop: call loop(int niter)")
15 if (len(sys.argv) != 2):
16 error =
'command line should be:"python -i test.py parameters_filename"\n with "parameters_filename" the path to the parameters file'
17 raise Exception(error)
20 param_file = sys.argv[1]
21 if (param_file.split(
'.')[-1] ==
"py"):
22 filename = param_file.split(
'/')[-1]
23 param_path = param_file.split(filename)[0]
24 sys.path.insert(0, param_path)
25 exec(
"import %s as config" % filename.split(
".py")[0])
26 sys.path.remove(param_path)
27 elif (param_file.split(
'.')[-1] ==
"h5"):
28 sys.path.insert(0, os.environ[
"SHESHA_ROOT"] +
"/data/par/par4bench/")
29 import scao_sh_16x16_8pix
as config
30 sys.path.remove(os.environ[
"SHESHA_ROOT"] +
"/data/par/par4bench/")
31 h5u.configFromH5(param_file, config)
33 raise ValueError(
"Parameter file extension must be .py or .h5")
35 print(
"param_file is", param_file)
37 if (hasattr(config,
"simul_name")):
38 if (config.simul_name
is None):
41 simul_name = config.simul_name
42 print(
"simul name is", simul_name)
49 config.p_geom.set_pupdiam(500)
57 c = ch.carmaWrap_context(devices=config.p_loop.devices)
61 wfs, tel = ao.wfs_init(config.p_wfss, config.p_atmos, config.p_tel, config.p_geom,
None,
62 config.p_loop, config.p_dms)
66 atm = ao.atmos_init(c, config.p_atmos, config.p_tel, config.p_geom, config.p_loop,
67 config.p_wfss, wfs,
None, clean=clean, load=matricesToLoad)
71 dms = ao.dm_init(config.p_dms, config.p_wfss, wfs, config.p_geom, config.p_tel)
72 ao.correct_dm(config.p_dms, dms, config.p_controller0, config.p_geom,
73 np.ones((config.p_wfs0._nvalid, config.p_dm0._ntotact), dtype=np.float32),
77 h5u.validDataBase(os.environ[
"SHESHA_ROOT"] +
"/data/", matricesToLoad)
79 print(
"====================")
81 print(
"====================")
82 print(
"objects initialzed on GPU:")
83 print(
"--------------------------------------------------------")
92 print(
"----------------------------------------------------")
93 print(
"iter# | S.E. SR | L.E. SR | Est. Rem. | framerate")
94 print(
"----------------------------------------------------")
99 for w
in range(len(config.p_wfss)):
100 wfs.sensors_trace(w, b
"all", tel, atm, dms)
103 print(
" loop execution time:", t1 - t0,
" (", n,
"iterations), ", (t1 - t0) / n,
104 "(mean) ", n / (t1 - t0),
"Hz")