Axiprop Propagators#
- class lasy.propagators.AxipropPropagator[source]#
Axiprop’s non-paraxial propagator.
This class wraps around Axiprop’s PropagatorFFT2 and PropagatorResampling, for 3D cartesian and 2D cylindrical, respectively.
- propagate(grid_in, dim, omega0, distance=None, grid_out=None, verbose=True, nr_boundary=0)[source]#
Propagate laser pulse in z direction by a given distance.
Currently, the propagation is assumed to take place in vacuum. This propagator is non-paraxial.
- Parameters:
- grid_inGrid
Grid object containing the laser to propagate.
- dimstring
Dimensionality of the array. Options are: -
'xyt': Laser pulse represented on a 3D Cartesian grid. -'rt': Laser pulse represented on a 2D cylindrical grid.- omega0float (in rad.s^-1)
The main frequency \(\omega_0\), which is defined by the laser wavelength \(\lambda_0\), as \(\omega_0 = 2\pi c/\lambda_0\).
- distancescalar (optional)
Distance by which the laser is propagated.
- grid_outGrid object (optional)
Grid object on which the propagated laser pulse is defined. Can be different from laser grid before propagation. Only supported for ‘rt’ geometry.
- verboseboolean (optional, default False)
Whether to print intermediate steps.
- nr_boundaryint (optional, default 0)
Number of grid points for absorbing boundary condition.
- Returns:
- Grid object with laser data after propagation.
- update(dim, omega0, containers_in, grid_out=None, verbose=False)[source]#
Initialize or update the propagator if needed.
- Parameters:
- dimstring
Dimensionality of the array. Options are: -
'xyt': Laser pulse represented on a 3D Cartesian grid. -'rt': Laser pulse represented on a 2D cylindrical grid.- omega0float (in rad.s^-1)
The main frequency \(\omega_0\), which is defined by the laser wavelength \(\lambda_0\), as \(\omega_0 = 2\pi c/\lambda_0\).
- containers_inAxiprop container(s)
An Axiprop container (dim=’xyt’), or list of containers (dim=’rt’, 1 element per mode), with the data of laser to propagate.
- grid_outGrid object (optional)
Grid object on which the propagated laser pulse is defined. Can be different from laser grid before propagation. Only supported for rt geometry.
- verboseboolean (optional)
Whether to print intermediate steps.
- class lasy.propagators.AxipropFresnelPropagator[source]#
Axiprop’s paraxial Fresnel propagator.
This class wraps around Axiprop’s PropagatorFFT2Fresnel and PropagatorResamplingFresnel, for 3D cartesian and 2D cylindrical, respectively.
- propagate(grid_in, dim, omega0, distance=None, grid_out=None, verbose=True, nr_boundary=0)[source]#
Propagate laser pulse in z direction by a given distance.
Currently, the propagation is assumed to take place in vacuum. This is a Fresnel, paraxial propagator.
- Parameters:
- distancescalar
Distance by which the laser is propagated.
- grid_inGrid
Grid object containing the laser to propagate.
- dimstring
Dimensionality of the array. Options are: -
'xyt': Laser pulse represented on a 3D Cartesian grid. -'rt': Laser pulse represented on a 2D cylindrical grid.- omega0float (in rad.s^-1)
The main frequency \(\omega_0\), which is defined by the laser wavelength \(\lambda_0\), as \(\omega_0 = 2\pi c/\lambda_0\).
- grid_outGrid object (optional)
Grid object on which the propagated laser pulse is defined. Can be different from laser grid before propagation.
- verboseboolean (optional, default False)
Whether to print intermediate steps.
- nr_boundaryint (optional, default 0)
Number of grid points for absorbing boundary condition.
- Returns:
- Grid object with laser data after propagation.
- update(distance, dim, omega0, containers_in, grid_out, verbose=False)[source]#
Initialize or update the propagator if needed.
- Parameters:
- distancescalar
Distance over which to propagate the laser pulse.
- dimstring
Dimensionality of the array. Options are: -
'xyt': Laser pulse represented on a 3D Cartesian grid. -'rt': Laser pulse represented on a 2D cylindrical grid.- omega0float (in rad.s^-1)
The main frequency \(\omega_0\), which is defined by the laser wavelength \(\lambda_0\), as \(\omega_0 = 2\pi c/\lambda_0\).
- containers_inAxiprop container(s)
An Axiprop container (dim=’xyt’), or list of containers (dim=’rt’, 1 element per mode), with the data of laser to propagate.
- grid_outGrid object
Grid object on which the propagated laser pulse is defined. Can be different from laser grid before propagation.
- verboseboolean (optional)
Whether to print intermediate steps.