Esempio n. 1
0
wave.append({})
wave[-1]['a0'] = (0.0, a00 * np.cos(theta), 0.0, -a00 * np.sin(theta)
                  )  # EM 4-potential (eA/mc^2) , component 0 not used
wave[-1]['r0'] = (t00, r00, r00, t00
                  )  # 4-vector of pulse metrics: duration,x,y,z 1/e spot sizes
wave[-1]['k0'] = (w00, w00 * np.sin(theta), 0.0, w00 * np.cos(theta)
                  )  # 4-wavenumber: omega,kx,ky,kz
# 0-component of focus is time at which pulse reaches focal point.
# If time=0 use paraxial wave, otherwise use spherical wave.
# Thus in the paraxial case the pulse always starts at the waist.
wave[-1]['focus'] = (0.0, 0.0, 0.0, -6 / mm)
wave[-1]['supergaussian exponent'] = 8

optics.append({})
optics[-1]['object'] = volume.AnalyticCylinder('plasma')
optics[-1]['dispersion inside'] = dispersion.ColdPlasma()
optics[-1]['dispersion outside'] = dispersion.Vacuum()
optics[-1]['radius'] = Rlens
optics[-1]['length'] = Lch
optics[-1]['origin'] = (0., 0., 0.)
optics[-1]['euler angles'] = (0., 0., 0.)
optics[-1]['density function'] = str(c0) + '+' + str(c2) + '*r2+' + str(
    c4) + '*r2*r2'
optics[-1]['density lambda'] = lambda x, y, z, r2: c0 + c2 * r2 + c4 * r2 * r2
optics[-1]['dt'] = Lch / 1000
# Use enough steps to make sure rays reach end of box.
# Too many steps is OK, SeaRay can adjust down automatically.
# Too few steps is not OK.
optics[-1]['steps'] = 1200
optics[-1]['subcycles'] = 10
Esempio n. 2
0
					'k0' : (w00,0.0,0.0,w00) ,
					# 0-component of focus is time at which pulse reaches focal point.
					# If time=0 use paraxial wave, otherwise use spherical wave.
					# Thus in the paraxial case the pulse always starts at the waist.
					'focus' : (0.0,0.0,0.0,-.006/mks_length),
					'supergaussian exponent' : 8})

	ray.append({	'number' : (32,128,4,1),
					'bundle radius' : (.001*r00,.001*r00,.001*r00,.001*r00),
					'loading coordinates' : 'cylindrical',
					# Ray box is always put at the origin
					# It will be transformed appropriately by SeaRay to start in the wave
					'box' : band + (0,1.5*r00,0.0,2*np.pi,-2*t00,2*t00)})

	optics.append([
		{	'object' : volume.AnalyticCylinder('plasma'),
			'dispersion inside' : dispersion.ColdPlasma(),
			'dispersion outside' : dispersion.Vacuum(),
			'radius' : Rlens,
			'length' : Lch,
			'origin' : (0.,0.,0.),
			'euler angles' : (0.,0.,0.),
			'density function' : str(c0)+'+'+str(c2)+'*r2+'+str(c4)+'*r2*r2',
			'density lambda' : lambda x,y,z,r2 : c0 + c2*r2 + c4*r2*r2,
			'dt' : Lch/1000,
			# Use enough steps to make sure rays reach end of box.
			# Too many steps is OK, SeaRay can adjust down automatically.
			# Too few steps is not OK.
			'steps' : 1200,
			'subcycles' : 10},