Source code for tidy3d.components.base_sim.source
"""Abstract base for classes that define simulation sources."""
from __future__ import annotations
from abc import ABC, abstractmethod
import pydantic.v1 as pydantic
from ..base import Tidy3dBaseModel
from ..validators import validate_name_str
from ..viz import PlotParams
[docs]
class AbstractSource(Tidy3dBaseModel, ABC):
    """Abstract base class for all sources."""
    name: str = pydantic.Field(None, title="Name", description="Optional name for the source.")
[docs]
    @abstractmethod
    def plot_params(self) -> PlotParams:
        """Default parameters for plotting a Source object.""" 
    _name_validator = validate_name_str()