Exemplo n.º 1
0
    optics[-1][-1]['harmonic number'] = 2.0
    optics[-1][-1]['frequency band'] = (0.9, 1.1)
    optics[-1][-1]['efficiency'] = 0.05
    optics[-1][-1]['radius'] = 0.5 / inch
    optics[-1][-1]['origin'] = (0.0, 0.0, -80 / cm)
    optics[-1][-1]['euler angles'] = (0., 0., 0.)

    optics[-1].append({})
    optics[-1][-1]['object'] = surface.EikonalProfiler('start')
    optics[-1][-1]['frequency band'] = (0, 3)
    optics[-1][-1]['size'] = (10 * r00, 10 * r00)
    optics[-1][-1]['origin'] = (0., 0., prop_range[0] - 1 / mm)
    optics[-1][-1]['euler angles'] = (0., 0., 0.)

    optics[-1].append({})
    optics[-1][-1]['object'] = volume.AnalyticBox('air')
    optics[-1][-1]['propagator'] = 'uppe'
    optics[-1][-1]['ionizer'] = ionizer
    optics[-1][-1]['wave coordinates'] = 'cylindrical'
    optics[-1][-1]['wave grid'] = (2049, 256, 1, 21)
    optics[-1][-1]['radial modes'] = 128
    optics[-1][-1]['density reference'] = ngas
    optics[-1][-1]['density function'] = '1.0'
    optics[-1][-1]['density lambda'] = lambda x, y, z, r2: np.ones(r2.shape)
    optics[-1][-1]['frequency band'] = band
    optics[-1][-1]['nonlinear band'] = (0.0, 0.5)
    optics[-1][-1]['subcycles'] = 1
    optics[-1][-1]['minimum step'] = 1.0
    optics[-1][-1]['dispersion inside'] = air
    optics[-1][-1]['dispersion outside'] = dispersion.Vacuum()
    optics[-1][-1]['chi3'] = chi3 * float(irun)
Exemplo n.º 2
0
        '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.0, 3 * r00, 0.0, 2 * np.pi, -2 * t00, 2 * t00)
    })

    optics.append([{
        'object': surface.EikonalProfiler('start'),
        'size': (f / 8, f / 8),
        'origin': (0., 0., 0.),
        'euler angles': (0., 0., 0.)
    }, {
        'object': volume.AnalyticBox('vacuum'),
        'density function': '1.0',
        'density lambda': lambda x, y, z, r2: np.ones(x.shape),
        'density multiplier': 1.0,
        'frequency band': band,
        'wave grid': (64, 256, 256, 9),
        'wave coordinates': 'cartesian',
        'dispersion inside': dispersion.Vacuum(),
        'dispersion outside': dispersion.Vacuum(),
        'size': (36 * waist, 36 * waist, 8 * zR),
        'origin': (0., 0., f),
        'euler angles': (0., 0., 0.),
        'propagator': 'paraxial',
        'subcycles': 1
    }, {
        'object': surface.EikonalProfiler('exit'),
Exemplo n.º 3
0
        '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.0, 3 * r00, 0.0, 2 * np.pi, -2 * t00, 2 * t00)
    })

    optics.append([{
        'object': surface.EikonalProfiler('start'),
        'size': (6 * r00, 6 * r00),
        'origin': (0., 0., -0.5),
        'euler angles': (0., 0., 0.)
    }, {
        'object': volume.AnalyticBox('glass'),
        'propagator': 'uppe',
        'wave coordinates': 'cylindrical',
        'wave grid': (1025, 64, 1, 9),
        'density function': '1.0',
        'density lambda': lambda x, y, z, r2: np.ones(x.shape),
        'density multiplier': 1.0,
        'frequency band': band,
        'subcycles': 1,
        'dispersion inside': glass,
        'dispersion outside': dispersion.Vacuum(),
        'chi3': chi3,
        'size': (6 * r00, 6 * r00, Lprop),
        'origin': (0., 0., Lprop / 2),
        'euler angles': (0., 0., 0.),
        'window speed': glass.GroupVelocityMagnitude(1.0)
Exemplo n.º 4
0
wave[-1]['k0'] = (w00,0.0,0.0,w00) # 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,-1.0)
wave[-1]['supergaussian exponent'] = 2

optics.append({})
optics[-1]['object'] = surface.EikonalProfiler('start')
optics[-1]['frequency band'] = (0,3)
optics[-1]['size'] = (6*r00,6*r00)
optics[-1]['origin'] = (0.,0.,-0.5)
optics[-1]['euler angles'] = (0.,0.,0.)

optics.append({})
optics[-1]['object'] = volume.AnalyticBox('glass')
optics[-1]['propagator'] = 'uppe'
optics[-1]['wave coordinates'] = 'cylindrical'
optics[-1]['wave grid'] = (1025,64,1,7)
optics[-1]['radial modes'] = 64
optics[-1]['density reference'] = 1.0
optics[-1]['density function'] = '1.0'
optics[-1]['density lambda'] = lambda x,y,z,r2 : np.ones(r2.shape)
optics[-1]['frequency band'] = band
optics[-1]['nonlinear band'] = (0.0,0.5)
optics[-1]['subcycles'] = 4
optics[-1]['minimum step'] = .3/um
optics[-1]['dispersion inside'] = glass
optics[-1]['dispersion outside'] = dispersion.Vacuum()
optics[-1]['chi3'] = chi3
optics[-1]['size'] = (6*r00,6*r00,Lprop)
Exemplo n.º 5
0
        # Ray box is always put at the origin
        # It will be transformed appropriately by SeaRay to start in the wave
        'box':
        band + (0.0, 3 * r00, 0.0, 2 * np.pi, -2 * t00, 2 * t00)
    })

    optics.append([{
        'object': surface.SphericalCap('M1'),
        'reflective': True,
        'radius of sphere': 2 / mks_length,
        'radius of edge': .0125 / mks_length,
        'origin': (0., 0., -1 / mks_length),
        'euler angles': (0., 0., 0.)
    }, {
        'object':
        volume.AnalyticBox('air'),
        'propagator':
        'uppe',
        'ionizer':
        ionizer,
        'wave coordinates':
        'cylindrical',
        'wave grid': (2049, 128, 1, 7),
        'density function':
        'exp(-4*x.s3*x.s3/' + str(L**2) + ')',
        'density lambda':
        lambda x, y, z, r2: np.exp(-4 * z**2 / L**2),
        'density multiplier':
        1.0,
        'frequency band':
        band,
Exemplo n.º 6
0
wave.append({})
wave[-1]['a0'] = (0.0, a00, 0.0, 0.0)
wave[-1]['r0'] = (t00, r00, r00, t00)
wave[-1]['k0'] = (w00, 0.0, 0.0, w00)
wave[-1]['focus'] = (1.001 * f, 0.0, 0.0, f)
wave[-1]['supergaussian exponent'] = 2

optics.append({})
optics[-1]['object'] = surface.EikonalProfiler('start')
optics[-1]['size'] = (f / 8, f / 8)
optics[-1]['origin'] = (0., 0., 0.)
optics[-1]['euler angles'] = (0., 0., 0.)

optics.append({})
optics[-1]['object'] = volume.AnalyticBox('vacuum')
optics[-1]['density reference'] = 1.0
optics[-1]['density function'] = '1.0'
optics[-1]['density lambda'] = lambda x, y, z, r2: np.ones(x.shape)
optics[-1]['frequency band'] = band
optics[-1]['wave grid'] = (64, 128, 128, 9)
optics[-1]['wave coordinates'] = 'cartesian'
optics[-1]['dispersion inside'] = dispersion.Vacuum()
optics[-1]['dispersion outside'] = dispersion.Vacuum()
optics[-1]['size'] = (36 * waist, 36 * waist, 8 * zR)
optics[-1]['origin'] = (0., 0., f)
optics[-1]['euler angles'] = (0., 0., 0.)
optics[-1]['propagator'] = 'paraxial'
optics[-1]['subcycles'] = 1

optics.append({})