Source code for lasy.profiles.transverse.plane_wave_profile
from lasy.backend import xp
from .transverse_profile import TransverseProfile
[docs]
class PlaneWaveProfile(TransverseProfile):
r"""
Class representing a plane wave.
Specifically, the transverse profile will be represented by a constant value.
Note that using this profile will force the number of points in each transverse
dimension to 1. Additionally, it will force the area of the transverse plane to
1 m^2.
"""
def __init__(self):
super().__init__()
self.__update_is_plane_wave__(True)
def _evaluate(self, x, y):
"""
Return the transverse envelope.
Parameters
----------
x, y : ndarrays of floats
Define points on which to evaluate the envelope
These arrays need to all have the same shape.
Returns
-------
envelope : ndarray of complex numbers
Contains the value of the envelope at the specified points
This array has the same shape as the arrays x, y
"""
return xp.ones_like(x**2 + y**2)