Пример #1
0
 def __init__(self, name):
     self.name = name
     self.orientation = v3.basis()
     self.P_ref = np.array([0, 0, 0]).astype(np.double)
     self.disp_in = dispersion.Vacuum()
     self.disp_out = dispersion.Vacuum()
     self.surfaces = []
     self.propagator = 'eikonal'
Пример #2
0
def ConfigureRayOrientation(xp, eikonal, vg, wave_dict_list):
    '''Uses the first wave dictionary to orient the rays.
	This implies that superposition waves must be oriented the same way.'''
    A4 = np.array(wave_dict_list[0]['a0'])
    K4 = np.array(wave_dict_list[0]['k0'])
    F4 = np.array(wave_dict_list[0]['focus'])
    orientation = v3.basis()
    orientation.Create(A4[1:], K4[1:])
    orientation.ExpressRaysInStdBasis(xp, eikonal, vg)
    xp[:, :, 1:4] += F4[1:4]
Пример #3
0
 def __init__(self, name):
     self.name = name
     self.clip = -0.1
     # orientation vector w is the surface normal
     self.orientation = v3.basis()
     # a reference point somewhere on the surface
     self.P_ref = np.array([0, 0, 0]).astype(np.double)
     # dispersion data on either side of surface
     # the surface normal points toward disp2
     self.disp1 = dispersion.Vacuum()
     self.disp2 = dispersion.Vacuum()
     self.reflective = False