Source code for comnumpy.optical.links

import logging

import numpy as np
from dataclasses import dataclass, field
from typing import Any, Callable, Dict, Literal, Optional
from comnumpy._backend import fftfreq  # cupy-compatible (D3)
from comnumpy.core import Processor
from .devices import ErbiumDopedFiberAmplifier
from .fiber import FiberSpec
from .raman import RamanSolution
from .constants import PLANCK_CONSTANT
from .utils import (get_linear_step_size, get_logarithmic_step_size, compute_erbium_doped_fiber_amplifier_gain,
                    compute_erbium_doped_fiber_N_ase, apply_kerr_nonlinearity,
                    is_polarization_pair, manakov_kerr, watt_to_dbm,
                    step_transfers, apply_frequency_response, TransferKey)

__all__ = ["FiberLink"]

logger = logging.getLogger(__name__)