# Sources API

Complete API reference for all electromagnetic sources in Prismo.

## Base Classes

### Source

```{eval-rst}
.. autoclass:: prismo.sources.base.Source
   :members:
   :undoc-members:
   :show-inheritance:
```

## Waveforms

### Waveform

```{eval-rst}
.. autoclass:: prismo.sources.waveform.Waveform
   :members:
   :undoc-members:
   :show-inheritance:
```

### GaussianPulse

```{eval-rst}
.. autoclass:: prismo.sources.waveform.GaussianPulse
   :members:
   :undoc-members:
   :show-inheritance:
```

### ContinuousWave

```{eval-rst}
.. autoclass:: prismo.sources.waveform.ContinuousWave
   :members:
   :undoc-members:
   :show-inheritance:
```

## Point Sources

### ElectricDipole

```{eval-rst}
.. autoclass:: prismo.sources.point.ElectricDipole
   :members:
   :undoc-members:
   :show-inheritance:
```

### MagneticDipole

```{eval-rst}
.. autoclass:: prismo.sources.point.MagneticDipole
   :members:
   :undoc-members:
   :show-inheritance:
```

## Plane Wave Sources

### PlaneWaveSource

```{eval-rst}
.. autoclass:: prismo.sources.plane_wave.PlaneWaveSource
   :members:
   :undoc-members:
   :show-inheritance:
```

### TFSFSource

```{eval-rst}
.. autoclass:: prismo.sources.tfsf.TFSFSource
   :members:
   :undoc-members:
   :show-inheritance:
```

## Gaussian Sources

### GaussianSource

```{eval-rst}
.. autoclass:: prismo.sources.gaussian.GaussianSource
   :members:
   :undoc-members:
   :show-inheritance:
```

## Mode Sources

### ModeSource

```{eval-rst}
.. autoclass:: prismo.sources.mode.ModeSource
   :members:
   :undoc-members:
   :show-inheritance:
```

### ModeLauncher

```{eval-rst}
.. autoclass:: prismo.sources.mode.ModeLauncher
   :members:
   :undoc-members:
   :show-inheritance:
```

## See Also

- {doc}`../user_guide/sources_monitors` - Source usage guide
- {doc}`../tutorials/basic_simulation` - Tutorial using sources
- {doc}`../user_guide/mode_ports` - Mode source guide

