COMPASS  5.4.4
End-to-end AO simulation tool using GPU acceleration
yao/dm.py
1 YAO_DMTYPE={"pzt":"\"stackarray\"",
2  "tt" :"\"tiptilt\""}
3 
4 def init_dm(file_name):
5  """ Initialise dm entry in yao parameter file
6 
7  Args:
8  file_name : (str) : yao parameter file name
9  """
10  f = open(file_name, "a+")
11  f.write("\n\n//------------------------------")
12  f.write("\n//DM parameters")
13  f.write("\n//------------------------------")
14  f.close()
15  return 0
16 
17 def write_dm(file_name, dm, index, *, sub_system=1):
18  """Write (append) dm parameter to file for YAO use for a single dm
19 
20  Args:
21  file_name : (str) : name of the file to append the parameter to
22 
23  dm : (Param_dm) : compass dm parameters
24 
25  index : (int) : YAO index for dm
26 
27  sub_system : (int) : (optional), default 1 index of yao sub-system
28  """
29  obj = "dm(" + str(index) + ")"
30  f = open(file_name,"a+")
31  f.write("\ngrow,dm,dms;")
32  f.write("\n" + obj + ".type = " + YAO_DMTYPE[dm.type] + ";")
33  f.write("\n" + obj + ".subsystem = " + str(sub_system) + ";")
34  f.write("\n" + obj + ".iffile = \"\"; // not set by compass")
35  f.write("\n" + obj + ".alt = " + str(dm.alt) + ";")
36  f.write("\n" + obj + ".unitpervolt = " + str(dm.unitpervolt) + ";")
37  f.write("\n" + obj + ".push4imat = " + str(dm.push4imat) + ";")
38 
39  if(dm.type != "tt"):
40  f.write("\n" + obj + ".nxact = " + str(dm.nact) + ";")
41  f.write("\n" + obj + ".pitch = " + str(dm._pitch) + ";")
42  f.write("\n" + obj + ".thresholdresp = " + str(dm.thresh) + ";")
43  f.write("\n" + obj + ".pitchMargin = " + str(2.2) + "; // not set by compass")
44  f.write("\n" + obj + ".elt = " + str(1) + "; // not set by compass")
45  f.write("\n" + obj + ".coupling = " + str(dm.coupling) + ";")
46  f.close()
47 
48 def write_dms(file_name, dms, *, sub_system=1, offset=0):
49  """Write (append) dm parameter to file for YAO
50 
51  Args:
52  file_name : str : name of the file to append the parameter to
53 
54  dms : list[Param_dm] : compass dm parameters list
55 
56  Kwargs:
57  sub_system : (int) : (optional), default 1 index of yao sub-system
58 
59  offset : (int) : (optional), default 0 yao dm index offset
60 
61  Returns:
62  n_dm : (int) : number of dm passed to yao
63  """
64  f = open(file_name,"a+")
65 
66  i = 1
67  for d in dms:
68  f.write("\n\n//DM " + str(i + offset))
69  f.flush()
70  write_dm(file_name, d, i + offset, sub_system=sub_system)
71  i += 1
72 
73  f.close()
74  return len(dms)
75 
76 def finish_dm(file_name, n_dm):
77  """ Finalize wfs section in yao parameter file
78 
79  Args:
80  file_name : (str) : yao parameter file name
81 
82  n_dm : (int) : number of ngs written to yao parameter file
83  """
84  f=open(file_name, "a+")
85  f.write("\n\nndm = " + str(n_dm) + ";")
86  f.close()
def init_dm(file_name)
Initialise dm entry in yao parameter file.
Definition: yao/dm.py:9
def finish_dm(file_name, n_dm)
Finalize wfs section in yao parameter file.
Definition: yao/dm.py:83
def write_dms(file_name, dms, *sub_system=1, offset=0)
Write (append) dm parameter to file for YAO.
Definition: yao/dm.py:63
def write_dm(file_name, dm, index, *sub_system=1)
Write (append) dm parameter to file for YAO use for a single dm.
Definition: yao/dm.py:28