Cylinder: Coupling vs Diameter#

This example demonstrates how to compute and visualize the coupling efficiency as a function of diameter for cylindrical scatterers using PyMieSim.

Importing the package dependencies: numpy, PyMieSim

import numpy as np
from TypedUnit import ureg

from PyMieSim.experiment.detector import Photodiode
from PyMieSim.experiment.scatterer import Sphere
from PyMieSim.experiment.source import Gaussian
from PyMieSim.experiment import Setup

Defining the source

source = Gaussian(
    wavelength=[100, 1200] * ureg.nanometer,  # 1200 nm
    polarization=90 * ureg.degree,  # Polarization angle in ureg.degrees
    optical_power=1e-3 * ureg.watt,  # 1 milliureg.watt
    NA=0.2 * ureg.AU,  # Numerical Aperture
)

Defining the scatterer distribution

scatterer = Sphere(
    diameter=np.linspace(100, 300, 200)
    * ureg.nanometer,  # Diameters ranging from 100 nm to 3000 nm
    property=[1.4] * ureg.RIU,  # Material of the cylinder
    medium_property=1.0 * ureg.RIU,  # Refractive index of the surrounding medium
    source=source,
)

Defining the detector

detector = Photodiode(
    NA=[0.1] * ureg.AU,  # Numerical Apertures for the detector
    phi_offset=[-180.0] * ureg.degree,  # Phi offset in ureg.degrees
    gamma_offset=[0.0] * ureg.degree,  # Gamma offset in ureg.degrees
    sampling=600 * ureg.AU,  # Number of sampling points
    polarization_filter=None,  # No polarization filter
)

Setting up the experiment

experiment = Setup(scatterer=scatterer, source=source, detector=detector)

Measuring the coupling efficiency

dataframe = experiment.get("coupling")

Plotting the results Visualizing how the coupling efficiency varies with the cylinder diameter.

dataframe.plot(x="scatterer:diameter")
cylinder coupling vs diameter
<Figure size 800x500 with 1 Axes>

Total running time of the script: (0 minutes 0.333 seconds)

Gallery generated by Sphinx-Gallery